This commit is contained in:
root
2025-11-13 19:52:28 +03:00
parent 8aeeb05b7d
commit 807dec3b6c
4646 changed files with 163445 additions and 626017 deletions

View File

@@ -1,225 +0,0 @@
/**
* Chart Pies wrapper.
*
* @author Htmlstream
* @version 1.0
* @requires appear.js (v1.0.3), circles.js (v0.0.6)
*
*/
;
(function ($) {
'use strict';
$.HSCore.components.HSChartPie = {
/**
*
*
* @var Object _baseConfig
*/
_baseConfig: {
bounds: -100,
debounce: 10,
rtl: false,
wrpClass: 'circles-wrp',
textClass: 'circles-text',
valueStrokeClass: 'circles-valueStroke',
maxValueStrokeClass: 'circles-maxValueStroke',
styleWrapper: true,
styleText: true
},
/**
*
*
* @var jQuery pageCollection
*/
pageCollection: $(),
/**
*
*
* @var
*/
appearCollectionIds: [],
/**
* Initialization of ChartPie wrapper.
*
* @param String selector (optional)
* @param Object config (optional)
*
* @return jQuery pageCollection - collection of initialized items.
*/
init: function (selector, config) {
this.collection = selector && $(selector).length ? $(selector) : $();
if (!$(selector).length) return;
this.config = config && $.isPlainObject(config) ?
$.extend({}, this._baseConfig, config) : this._baseConfig;
this.config.itemSelector = selector;
this.initCircles();
return this.pageCollection;
},
/**
* Initialization of each Circle of the page.
*
* @return undefined
*/
initCircles: function () {
var lastItem = this.pageCollection.last(),
lastId = 0,
self = this;
if (lastItem.length) {
lastId = +lastItem.attr('id').substring(lastItem.attr('id').lastIndexOf('-') + 1);
}
this.collection.each(function (i, el) {
var $this = $(el),
id = 'hs-pie-' + (lastId + (i + 1)),
value = 0;
$this.attr('id', id);
if (!$this.data('circles-scroll-animate')) {
value = $this.data('circles-value') || 0;
} else {
$this.data('reminded-value', $this.data('circles-value') || 0);
self.appearCollectionIds.push('#' + id);
}
var circle = Circles.create({
id: id,
radius: $this.data('circles-radius') || 80,
value: value,
maxValue: $this.data('circles-max-value') || 100,
width: $this.data('circles-stroke-width') || 10,
text: function (value) {
if ($this.data('circles-type') == 'iconic') {
return $this.data('circles-icon');
} else {
return value + ($this.data('circles-additional-text') || '');
}
},
colors: [$this.data('circles-bg-color') || '#72c02c', $this.data('circles-fg-color') || '#eeeeee'],
duration: $this.data('circles-duration') || 1000,
wrpClass: self.config['wrpClass'],
textClass: self.config['textClass'],
valueStrokeClass: self.config['valueStrokeClass'],
maxValueStrokeClass: self.config['maxValueStrokeClass'],
styleWrapper: self.config['styleWrapper'],
styleText: self.config['styleText']
});
$this.data('circle', circle);
$this.find('.' + self.config['textClass']).css({
'font-size': $this.data('circles-font-size'),
'font-weight': $this.data('circles-font-weight'),
'color': $this.data('circles-color')
});
if (self.config['rtl']) {
$this.find('svg').css('transform', 'matrix(-1, 0, 0, 1, 0, 0)');
}
self.pageCollection = self.pageCollection.add($this);
});
if (self.appearCollectionIds.length) self._initAppear();
},
/**
* Updates value of the chart pie when an item has appeared in the visible region.
*
* @return undefined
*/
_initAppear: function () {
var self = this;
appear({
bounds: self.config['bounds'],
debounce: self.config['debounce'],
elements: function () {
return document.querySelectorAll(self.appearCollectionIds.join(','));
},
appear: function (element) {
element = $(element);
element.data('circle').update(element.data('reminded-value'));
}
});
},
/**
* Returns item by index or entire collection in case when index has not been passed.
*
* @param Number index
*
* @return jQuery
*/
get: function (index) {
if (index && $.isNumeric(index)) return this.pageCollection.eq(index);
return this.pageCollection;
},
/**
* Returns item by id.
*
* @param String id
*
* @return circle
*/
getById: function (id) {
if (id && this.pageCollection.filter('#' + id).length) return this.pageCollection.filter('#' + id);
return null;
},
/**
* Returns object of circle class (for the access to circle API) by index.
*
* @param Number index
*
* @return circle
*/
getCircleAPI: function (index) {
if (index && $.isNumeric(index) && this.pageCollection.eq(index).length) return this.pageCollection.eq(index).data('circle');
return null;
},
/**
* Returns object of circle class (for the access to circle API) by id.
*
* @param String id
*
* @return circle
*/
getCircleAPIById: function (id) {
if (id && this.pageCollection.filter('#' + id).length) return this.pageCollection.filter('#' + id).data('circle');
return null;
}
}
})(jQuery);

View File

@@ -1,353 +0,0 @@
/**
* Progress Bar wrapper.
*
* @author Htmlstream
* @version 1.0
* @requires appear.js (v1.0.3)
*
*/
;(function($){
'use strict';
$.HSCore.components.HSProgressBar = {
/**
*
*
* @var Object _baseConfig
*/
_baseConfig : {
bounds: -100,
debounce: 10,
time: 1000,
fps: 60,
rtl: false,
direction: 'horizontal',
useProgressElement: false,
indicatorSelector: 'progress-bar-indicator',
moveElementSelector: false,
moveElementTo: 'currentPosition',
onChange: function(value){},
beforeUpdate: function(){},
afterUpdate: function(){},
onMoveElementChange: function(value){},
beforeMoveElementUpdate: function(){},
afterMoveElementUpdate: function(){}
},
/**
*
*
* @var jQuery _pageCollection
*/
_pageCollection : $(),
/**
* Initialization of Progress Bar wrapper.
*
* @param String selector (optional)
* @param Object config (optional)
*
* @return jQuery currentCollection - collection of initialized items.
*/
init: function(selector, config){
if(!(selector && $(selector).length)) return;
this.extendHorizontalProgressBar();
this.extendVerticalProgressBar();
return this._initProgressBar(selector, config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig);
},
/**
*
* Initialization of each Progress Bar of the page.
*
* @return undefined
*/
_initProgressBar: function(selector, config) {
var self = this,
currentCollection = $();
appear({
bounds: config['bounds'],
debounce: config['debounce'],
init: function() {
$(selector).each(function(i, el) {
var $this = $(el);
if(config['direction'] === 'horizontal') {
$this.data('ProgressBar', new self.HorizontalProgressBar($this, config));
}
else {
$this.data('ProgressBar', new self.VerticalProgressBar($this, config));
}
currentCollection = currentCollection.add($this);
self._pageCollection = self._pageCollection.add($this);
});
},
elements: function() {
return document.querySelectorAll(selector);
},
appear: function(el) {
// console.log( $(el).data('ProgressBar'), $(el).data('value') );
$(el).data('ProgressBar').update($(el).data('value'));
}
});
return currentCollection;
},
/**
* Constructor Function of Horizontal Progress Bar
*
* @param jQuery element
* @param Object config
*
*/
HorizontalProgressBar: function(element, config) {
this.element = element;
this.indicator = this.element.find( config.indicatorSelector );
this.config = config;
this.moveElement = config['moveElementSelector'] ? element.parent().find(config['moveElementSelector']) : $();
if(this.moveElement.length) {
if(config['rtl']) {
this.moveElement.css({
'left': 'auto',
'right': 0,
'margin-right': this.moveElement.outerWidth() / -2
});
}
else {
this.moveElement.css({
'left': 0,
'margin-left': this.moveElement.outerWidth() / -2
});
}
}
if(this.config.useProgressElement) {
this.element.data( 'value', this.element.attr( 'value' ) );
this.element.attr('value', 0);
}
else {
this.element.data(
'value',
this.indicator.length ? Math.round( this.indicator.outerWidth() / this.element.outerWidth() * 100 ) : 0
);
this.indicator.css('width', '0%');
}
},
/**
* Constructor Function of Vertical Progress Bar
*
* @param jQuery element
* @param Object config
*
*/
VerticalProgressBar: function(element, config) {
this.element = element;
this.config = config;
this.indicator = element.find(config['indicatorSelector']);
if(!this.indicator.length) return;
element.data('value', parseInt(this.indicator.css('height'), 10) / this.indicator.parent().outerHeight() * 100);
this.indicator.css('height', 0);
},
/**
* Extends HorizontalProgressBar.
*
* @return undefined
*/
extendHorizontalProgressBar: function() {
/**
* Sets new value of the Progress Bar.
*
* @param Number value
*
* @return undefined
*/
this.HorizontalProgressBar.prototype.update = function(value) {
var self = this;
if( this.config.useProgressElement ) {
var fps = (this.config['time'] / this.config['fps']),
iterationValue = parseInt(value / fps, 10),
counter = 0,
self = this;
if(iterationValue == 0) iterationValue = 1;
this.config.beforeUpdate.call(this.element);
if(this.moveElement.length) this.config.beforeMoveElementUpdate.call(this.moveElement);
if(self.config.moveElementSelector && self.config['moveElementTo'] == 'end') {
var mCounter = 0,
mIterationValue = parseInt(100 / fps, 10);
if(mIterationValue == 0) mIterationValue = 1;
var mCounterId = setInterval(function() {
self.moveSubElement(mCounter+=mIterationValue);
if(self.moveElement.length) self.config.onMoveElementChange.call(self.moveElement, mCounter+=mIterationValue);
if(mCounter > 100) {
clearInterval(mCounterId);
self.moveSubElement(100);
if(self.moveElement.length) self.config.afterMoveElementUpdate.call(self.moveElement);
}
}, fps);
}
this.element.data('intervalId', setInterval(function(){
var currentValue = counter += iterationValue;
self.element.attr('value', currentValue);
self.config.onChange.call(self.element, currentValue);
if(self.config.moveElementSelector && self.config['moveElementTo'] == 'currentPosition') self.moveSubElement(currentValue);
if(counter > value) {
self.element.attr('value', value);
if(self.config.moveElementSelector && self.config['moveElementTo'] == 'currentPosition') self.moveSubElement(value);
clearInterval(self.element.data('intervalId'));
self.config.afterUpdate.call(self.element);
}
}, fps));
}
else {
if( this.indicator.length ) {
this.indicator.stop().animate({
'width': value + '%'
}, {
duration: self.config.time,
complete: function() {
self.config.afterUpdate.call(self.element);
}
});
}
}
};
/**
*
*
* @param
*
* @return
*/
this.HorizontalProgressBar.prototype.moveSubElement = function(value, duration) {
if(!this.moveElement.length) return;
var self = this;
this.moveElement.css(this.config['rtl'] ? 'right' : 'left', value + '%');
};
},
/**
* Extends VerticalProgressBars.
*
*
* @return undefined
*/
extendVerticalProgressBar: function() {
/**
* Sets new value of the Progress Bar.
*
* @param Number value
*
* @return undefined
*/
this.VerticalProgressBar.prototype.update = function(value) {
this.indicator.stop().animate({
height: value + '%'
});
}
},
/**
* Returns full collection of all initialized progress bars.
*
*
* @return jQuery _pageCollection
*/
get: function() {
return this._pageCollection;
},
/**
* Returns API of the progress bar by index in collection.
*
* @param Number index
*
* @return HorizontalProgressBar | VerticalProgressBar
*/
getAPI: function(index) {
if(this._pageCollection.eq(index).length) return this._pageCollection.eq(index).data('ProgressBar');
return null;
}
};
})(jQuery);

View File

@@ -1,20 +0,0 @@
;(function() {
"use strict";
BX.addCustomEvent("BX.Landing.Block:init", function(event) {
var selector = event.makeRelativeSelector(".js-hr-progress-bar");
if($(selector).length > 0)
{
$.HSCore.components.HSProgressBar.init('.js-hr-progress-bar', {
direction: 'horizontal',
indicatorSelector: '.js-hr-progress-bar-indicator'
});
}
});
BX.addCustomEvent("BX.Landing.Block:Node:update", function(event) {
// dbg: test update attributes
});
})();

View File

@@ -438,6 +438,7 @@
'g-bg-primary--hover',
'g-rounded-50x',
'g-opacity-0_8--hover',
'g-color-black--hover',
//set old classes, not use now in slider
'g-bg-gray-light-v3',
];
@@ -480,6 +481,10 @@
{
addClasses = ['g-color-gray-light-v1', 'g-color-primary--hover'];
}
if (BX.Dom.attr(sliderNode.parentNode, 'data-slider-arrows') === 8)
{
addClasses = ['g-color-gray-light-v1', 'g-color-black--hover', 'g-bg-white', 'g-bg-white--hover', 'g-rounded-50x'];
}
addClasses.forEach(function(addedClass) {
newArrowClassesArr.push(addedClass);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,22 +0,0 @@
;(function() {
"use strict";
BX.addCustomEvent("BX.Landing.Block:init", function(event) {
var selector = event.makeRelativeSelector(".js-pie");
if($(selector).length > 0)
{
$.HSCore.components.HSChartPie.init('.js-pie');
}
});
BX.addCustomEvent("BX.Landing.Block:Node:update", function(event) {
// var selector = event.makeRelativeSelector(".cbp");
//
// if($(selector).length > 0)
// {
// $.HSCore.components.HSCubeportfolio.init('.cbp');
// }
});
})();

View File

@@ -1,23 +0,0 @@
;(function() {
"use strict";
BX.addCustomEvent("BX.Landing.Block:init", function(event) {
var selector = event.makeRelativeSelector(".cbp");
if($(selector).length > 0)
{
$.HSCore.components.HSCubeportfolio.init('.cbp');
}
});
BX.addCustomEvent("BX.Landing.Block:Node:update", function(event) {
var selector = event.makeRelativeSelector(".cbp");
if($(selector).length > 0)
{
$.HSCore.components.HSCubeportfolio.init('.cbp');
}
});
})();

View File

@@ -105,7 +105,7 @@
if (formParams.length === 1)
{
// can't ajax load params in public
if (BX.Landing.getMode() === 'view')
if (BX.Landing.getMode() !== 'edit')
{
return;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,131 +0,0 @@
;(function ()
{
"use strict";
BX.namespace("BX.Landing");
var onCustomEvent = BX.Landing.Utils.onCustomEvent;
BX.Landing.BlockHeaderSidebar = function ()
{
/**
* @type {BX.Landing.BlockHeaderEntry[]}
*/
this.entries = [];
this.observer = new IntersectionObserver(
BX.Landing.BlockHeaderSidebar.onIntersection,
this.getObserverOptions()
);
};
/**
* @param {IntersectionObserverEntry[]} entries
*/
BX.Landing.BlockHeaderSidebar.onIntersection = function(entries)
{
entries.forEach(function(entry)
{
// var headerHeight = null
// // find headers for offset
// document.querySelectorAll('.u-header.js-header-on-top').forEach(function(header){
// headerHeight = Math.max(headerHeight, header.offsetHeight);
// });
//
// if(headerHeight)
// {
// entry.target.style.top = headerHeight + 'px';
// }
});
}
BX.Landing.BlockHeaderSidebar.prototype = {
getObserverOptions: function ()
{
return {threshold: [0, 1]};
},
/**
* Create entity by node and add in collection
* @param {HTMLElement} node
*/
add: function (node)
{
this.node = node;
this.wrapper = BX.findParent(this.node, {className: 'block-wrapper'});
this.wrapper.style.position = 'sticky';
this.wrapper.style.top = '-1px';
this.wrapper.style.transitionProperty = 'top';
this.wrapper.style.transitionDuration = '.2s';
this.observer.observe(this.wrapper);
onCustomEvent("BX.Landing.BlockAssets.Header:onSetOnTop", function (event)
{
console.log("event set", event.data.height);
this.wrapper.style.top = event.data.height + 'px';
}.bind(this));
onCustomEvent("BX.Landing.BlockAssets.Header:onUnsetOnTop", function (event)
{
console.log("event UNSET", event.data.height);
this.wrapper.style.top = event.data.height + 'px';
}.bind(this));
onCustomEvent("BX.Landing.BlockAssets.Header:onSetInFlow", function (event)
{
console.log("event onSetInFlow", event.data.height);
this.wrapper.style.top = '0px';
}.bind(this));
},
/**
* Get entry by node
* @param {HTMLElement} node
* @returns {BX.Landing.BlockHeaderEntry}
*/
getEntryByIntersectionTarget: function (node)
{
var result = null;
this.entries.forEach(function (entry)
{
if (node === entry.getNodeForObserve())
{
result = entry;
return true;
}
});
return result;
},
hidePrevEntriess: function ()
{
// todo: how show hidden entries when then in viewport?
}
};
BX.Landing.BlockHeaderSidebar.getInstance = function ()
{
return (
BX.Landing.BlockHeaderSidebar.instance ||
(BX.Landing.BlockHeaderSidebar.instance = new BX.Landing.BlockHeaderSidebar())
);
};
var headersSidebar = BX.Landing.BlockHeaderSidebar.getInstance();
onCustomEvent("BX.Landing.Block:init", function (event)
{
var headerSelector = event.makeRelativeSelector('.landing-block-node-navbar');
// in edit mode menu must be like a usual block
if (BX.Landing.getMode() === "view" && event.block.querySelectorAll(headerSelector).length > 0)
{
headersSidebar.add(event.block.querySelector('.landing-block-node-navbar'));
}
// todo: scroll-nav (scrollspy)
// todo: scroll to top (with animate)
});
})();

View File

@@ -1,307 +0,0 @@
;(function ()
{
"use strict";
BX.addCustomEvent(window, "BX.Landing.Block:init", function (event)
{
initHeaderHandler(event);
initScrollNavHandler(event);
initNavbarNavHandler(event);
initModalAlertHandler(event);
initMenuMultilevelHandler(event);
});
// on Cards:update will be called multi Node:update event. Debounce to preserve this
BX.addCustomEvent("BX.Landing.Block:Node:update", BX.debounce(initNavbarNavHandler, 200));
BX.addCustomEvent("BX.Landing.Block:Cards:update", function (event)
{
initNavbarNavHandler(event);
});
BX.addCustomEvent("BX.Landing.Block:Card:add", function (event)
{
initNavbarNavHandler(event);
});
BX.addCustomEvent("BX.Landing.Block:Card:remove", function (event)
{
initNavbarNavHandler(event);
});
function initHeaderHandler(event)
{
var headerSelector = event.makeRelativeSelector('.u-header');
if (event.block.querySelectorAll(headerSelector).length > 0)
{
// in edit mode menu must be like a usual block
if (BX.Landing.getMode() === "view")
{
$.HSCore.components.HSHeader.init($(headerSelector));
}
}
}
function initScrollNavHandler(event)
{
var scrollNavSelector = event.makeRelativeSelector('.js-scroll-nav');
if (event.block.querySelectorAll(scrollNavSelector).length > 0)
{
$.HSCore.components.HSScrollNav.init($(scrollNavSelector), {
duration: 400,
easing: 'easeOutExpo'
});
}
}
function initNavbarNavHandler(event)
{
var navbarNavSelector = event.makeRelativeSelector('.navbar-nav');
if (event.block.querySelectorAll(navbarNavSelector).length > 0)
{
removeAllActive(navbarNavSelector);
markActive(navbarNavSelector);
}
}
function initModalAlertHandler(event)
{
var navbarModal = event.block.querySelector(event.makeRelativeSelector('.navbar.u-navbar-modal'));
if (navbarModal && BX.Landing.getMode() == "edit")
{
BX.adjust(navbarModal,
{
children: [
BX.create("div", {
props: {className: "u-navbar-modal-alert"},
html: BX.message('LANDING_NAVBAR_MODAL_ALERT'),
})
]
}
);
}
}
function initMenuMultilevelHandler(event)
{
if (BX.Landing.getMode() !== "edit")
{
var menuMultilevel = event.block.querySelector('.g-menu-multilevel');
if (menuMultilevel)
{
addMultilevelToggler(menuMultilevel);
}
}
}
/**
* Find and check active link(s) in navbar
* @param selector
*/
function markActive(selector)
{
if (BX.Landing.getMode() == "edit")
{
if (!markActiveByLid(selector))
{
// just mark first
addActive(document.querySelector(selector).querySelector('.nav-item'));
}
}
else
{
markActiveByLocation(selector)
}
}
/**
* For editor - find by lid
* @param selector
* @returns {boolean}
*/
function markActiveByLid(selector)
{
var marked = false;
var lid = landingParams['LANDING_ID'];
if (lid === undefined || lid === null)
{
return false;
}
var nav = document.querySelector(selector);
var links = [].slice.call(nav.getElementsByTagName('a'));
if (!!links && links.length)
{
var pageLinkMatcher = new RegExp("#landing([0-9]+)");
links.forEach(function (link)
{
var matches = link.href.match(pageLinkMatcher);
if (matches !== null && matches[1] == lid)
{
addActive(BX.findParent(link, {className: "nav-item"}));
marked = true;
}
});
}
return marked;
}
/**
* For public - find by document.location
* @param selector
* @returns {boolean}
*/
function markActiveByLocation(selector)
{
var marked = false;
var pageUrl = document.location;
var nav = document.querySelector(selector);
var links = [].slice.call(nav.getElementsByTagName('a'));
if (!!links && links.length)
{
links.forEach(function (link)
{
// if href has hash - it link to block and they was be processed by scroll nav
if (
link.hasAttribute("href") &&
link.getAttribute("href") !== "" &&
link.pathname === pageUrl.pathname &&
link.hostname === pageUrl.hostname &&
link.hash === ''
)
{
var navItem = BX.findParent(link, {className: "nav-item"});
addActive(navItem);
marked = true;
}
});
}
return marked;
}
/**
* @param node Node - LI node
*/
function addActive(node)
{
node.classList.add('active');
BX.adjust(node,
{
children: [
BX.create("span", {
props: {className: "sr-only"},
text: '(current)'
})
]
}
);
}
/**
* Remove all .active and sr-only
* @param selector
*/
function removeAllActive(selector)
{
var nav = document.querySelector(selector);
var navItems = [].slice.call(nav.querySelectorAll('.nav-item'));
if (!!navItems && navItems.length)
{
navItems.forEach(function (navItem)
{
removeActive(navItem)
});
}
}
/**
* Remove once .active
* @param node Node - LI node
*/
function removeActive(node)
{
node.classList.remove('active');
BX.remove(node.querySelector('span.sr-only'));
}
function addMultilevelToggler(menuMultilevel)
{
var subMenus = [].slice.call(menuMultilevel.querySelectorAll('.g-menu-sublevel'));
subMenus.forEach(function (subMenu)
{
var parentNavLink = BX.findPreviousSibling(subMenu, {class: 'nav-link'});
if (!parentNavLink)
{
return;
}
hideLevel(parentNavLink);
// open all branch for .active
if (subMenu.querySelector('.nav-item.active'))
{
showLevel(parentNavLink);
}
BX.addClass(parentNavLink, 'g-menu-sublevel-toggler--parent');
BX.adjust(parentNavLink,
{
children: [
BX.create("span", {
props: {className: "g-menu-sublevel-toggler"},
html: '<span class="is-hide-text">'
+ BX.message('LANDING_NAVBAR_TOGGLER_SHOW')
+ '</span><span class="is-show-text">'
+ BX.message('LANDING_NAVBAR_TOGGLER_HIDE')
+ '</span>',
events: {
click: function (event)
{
event.preventDefault();
event.stopPropagation();
toggleLevel(BX.findParent(event.target, {class: 'nav-link'}));
}
}
})
]
}
);
});
}
function toggleLevel(parentNavLink)
{
if (BX.hasClass(parentNavLink, 'g-menu-sublevel-toggler--parent-hide'))
{
showLevel(parentNavLink);
}
else
{
hideLevel(parentNavLink);
}
}
function hideLevel(parentNavLink)
{
BX.addClass(parentNavLink, 'g-menu-sublevel-toggler--parent-hide');
var subMenu = BX.findNextSibling(parentNavLink, {class: 'g-menu-sublevel'});
if (subMenu)
{
BX.addClass(subMenu, 'g-menu-sublevel--hide');
}
}
function showLevel(parentNavLink)
{
BX.removeClass(parentNavLink, 'g-menu-sublevel-toggler--parent-hide');
var subMenu = BX.findNextSibling(parentNavLink, {class: 'g-menu-sublevel'});
if (subMenu)
{
BX.removeClass(subMenu, 'g-menu-sublevel--hide');
}
}
})();

View File

@@ -1,57 +0,0 @@
;(function ()
{
"use strict";
var observerOptions = {
// rootMargin: document.documentElement.clientHeight + 'px'
};
var observer = new IntersectionObserver(onIntersection, observerOptions);
var loadedMap = new WeakMap();
var slice = BX.Landing.Utils.slice;
var onCustomEvent = BX.Landing.Utils.onCustomEvent;
var bgHideStyleString = "[style*='background-image:']{background-image: none !important;}";
onCustomEvent("BX.Landing.Block:init", function (event)
{
observer.observe(event.block);
});
/**
* @param {IntersectionObserverEntry[]} entries
*/
function onIntersection(entries)
{
entries.forEach(function (entry)
{
if (entry.isIntersecting && !loadedMap.has(entry.target))
{
loadedMap.set(entry.target, true);
// load <img>
var observableImgs = slice(entry.target.querySelectorAll('[data-lazy-src]'));
observableImgs.forEach(function(img) {
var src = BX.data(img, 'lazy-src');
BX.adjust(img, {
attrs: {
'src': src,
'data-lazy-src': ""
}
});
});
//load bg
var firstChild = entry.target.firstElementChild;
if(
firstChild.tagName == 'STYLE' &&
firstChild.innerText.indexOf(bgHideStyleString) !== 0
)
{
BX.remove(firstChild);
}
}
});
}
})();

View File

@@ -1 +0,0 @@
{"version":3,"file":"table.map.js","names":["document","querySelector","BX","addCustomEvent","event","block","querySelectorAll","forEach","element","setAttribute"],"sources":["table.js"],"mappings":"CAAA,WACC,aAEA,GAAIA,SAASC,cAAc,wBAA0B,KACrD,CACCC,GAAGC,eAAe,yBAA0BC,IAC3CA,EAAMC,MAAMC,iBAAiB,qBAAqBC,SAASC,IAC1DA,EAAQC,aAAa,QAAS,GAAG,GAChC,GAEJ,CACA,EAXD"}

View File

@@ -1,2 +0,0 @@
(function(){"use strict";if(document.querySelector(".landing-edit-mode")===null){BX.addCustomEvent("BX.Landing.Block:init",(t=>{t.block.querySelectorAll(".landing-table-td").forEach((t=>{t.setAttribute("title","")}))}))}})();
//# sourceMappingURL=table.map.js

View File

@@ -1,68 +0,0 @@
;(function ()
{
"use strict";
BX.namespace("BX.Landing.VideoBGHelper");
var videoBG = BX.Landing.VideoBGHelper;
BX.Landing.VideoBGHelper.config = {
videoIframeClass: "js-videobg",
videoLinkClass: "js-videobg-link",
videoContainerClass: "js-videobg-container",
dataLink: "video-url"
};
BX.Landing.VideoBGHelper.init = function (node, type, params)
{
if (node.querySelectorAll('.js-videobg-link').length > 0)
{
// todo: foreach link node for multiple videos in one blocks
var linkNode = node.querySelector('.' + videoBG.config.videoLinkClass);
var href = BX.data(linkNode, videoBG.config.dataLink),
container = linkNode.querySelector('.' + videoBG.config.videoContainerClass);
// todo: not work in PUBLIC
var ServiceFactory = new BX.Landing.MediaService.Factory();
var mediaService = ServiceFactory.create(href, params);
// incorrect link
if (!mediaService)
{
BX.adjust(container, {'html': 'incorrect link'});
return;
}
var iframe = mediaService.getEmbedElement();
BX.adjust(iframe, {
'props': {'className': 'embed-responsive-item' + ' ' + videoBG.config.videoIframeClass},
'attrs': {
webkitallowfullscreen: true,
mozallowfullscreen: true,
allowfullscreen: true
}
});
BX.adjust(container, {'children': [iframe]});
// unique ID for player container
if (iframe.id === "")
{
// todo: rand_id for multiple videos in one blocks
BX.adjust(iframe, {attrs: {'id': type + '_player_' + node.id}});
}
// save players objects
if (!window["videobg_" + type])
{
window["videobg_" + type] = {};
}
// add current iblock to list
if (!window["videobg_" + type]["containers"])
{
window["videobg_" + type]["containers"] = {};
}
window["videobg_" + type]["containers"][type + '_player_' + node.id] = {
id: type + '_player_' + node.id
};
}
};
})();

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
@font-face{font-family:'hs-icons';src:url('/bitrix/templates/landing24/assets/vendor/icon-hs/fonts/hs-icons.woff') format('woff');font-weight:normal;font-style:normal}.hs-icon{font-family:'hs-icons'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hs-icon-arrow-bottom:before{content:"\e900"}.hs-icon-arrow-left:before{content:"\e901"}.hs-icon-arrow-right:before{content:"\e902"}.hs-icon-arrow-top:before{content:"\e903"}.hs-icon-close:before{content:"\e904"}.hs-icon-hamburger-2:before{content:"\e905"}.hs-icon-hamburger:before{content:"\e906"}.hs-icon-lula-kebab-h:before{content:"\e907"}.hs-icon-lula-kebab-v:before{content:"\e908"}.hs-icon-magnifier:before{content:"\e909"}.hs-icon-music:before{content:"\e90a"}.hs-icon-photo:before{content:"\e90b"}.hs-icon-play:before{content:"\e90c"}.hs-icon-plus:before{content:"\e90d"}.hs-icon-unzoom:before{content:"\e90e"}.hs-icon-video:before{content:"\e90f"}.hs-icon-zoom:before{content:"\e910"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,68 +0,0 @@
/*!
* Font Awesome Pro 6.0.0-beta1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face {
font-family: 'Font Awesome 6 Pro';
font-style: normal;
font-weight: 300;
font-display: block;
src: url("/bitrix/templates/landing24/assets/vendor/icon/fal/font.woff2") format("woff2");
}
.fal {
font-family: 'Font Awesome 6 Pro';
font-weight: 300;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("/bitrix/templates/landing24/assets/vendor/icon/far/font.woff2") format("woff2");
}
.fa,
.far {
font-family: 'Font Awesome 6 Pro';
font-weight: 400;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
font-style: normal;
font-weight: 900;
font-display: block;
src: url("/bitrix/templates/landing24/assets/vendor/icon/fas/font.woff2") format("woff2");
}
.fas {
font-family: 'Font Awesome 6 Pro';
font-weight: 900;
}
@font-face {
font-family: 'Font Awesome 6 Pro';
font-style: normal;
font-weight: 100;
font-display: block;
src: url("/bitrix/templates/landing24/assets/vendor/icon/fat/font.woff2") format("woff2");
}
.fat {
font-family: 'Font Awesome 6 Pro';
font-weight: 100;
}
.fa,
.fas,
.far,
.fal,
.fat,
.fab {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
display: var(--fa-display, inline-block);
font-style: normal;
font-variant: normal;
line-height: 1;
text-rendering: auto;
}

View File

@@ -1,204 +0,0 @@
@charset 'UTF-8';
/* Slider */
.slick-loading .slick-list
{
background: #fff url('./ajax-loader.gif') center center no-repeat;
}
/* Icons */
@font-face
{
font-family: 'slick';
font-weight: normal;
font-style: normal;
src: url('./fonts/slick.eot');
src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
}
/* Arrows */
.slick-prev,
.slick-next
{
font-size: 0;
line-height: 0;
position: absolute;
top: 50%;
display: block;
width: 20px;
height: 20px;
padding: 0;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
cursor: pointer;
color: transparent;
border: none;
outline: none;
background: transparent;
}
.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
color: transparent;
outline: none;
background: transparent;
}
.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
opacity: .25;
}
.slick-prev:before,
.slick-next:before
{
font-family: 'slick';
font-size: 20px;
line-height: 1;
opacity: .75;
color: white;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-prev
{
left: -25px;
}
[dir='rtl'] .slick-prev
{
right: -25px;
left: auto;
}
.slick-prev:before
{
content: '←';
}
[dir='rtl'] .slick-prev:before
{
content: '→';
}
.slick-next
{
right: -25px;
}
[dir='rtl'] .slick-next
{
right: auto;
left: -25px;
}
.slick-next:before
{
content: '→';
}
[dir='rtl'] .slick-next:before
{
content: '←';
}
/* Dots */
.slick-dotted.slick-slider
{
margin-bottom: 30px;
}
.slick-dots
{
position: absolute;
bottom: -25px;
display: block;
width: 100%;
padding: 0;
margin: 0;
list-style: none;
text-align: center;
}
.slick-dots li
{
position: relative;
display: inline-block;
width: 20px;
height: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button
{
font-size: 0;
line-height: 0;
display: block;
width: 20px;
height: 20px;
padding: 5px;
cursor: pointer;
color: transparent;
border: 0;
outline: none;
background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus
{
outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
opacity: 1;
}
.slick-dots li button:before
{
font-family: 'slick';
font-size: 6px;
line-height: 20px;
position: absolute;
top: 0;
left: 0;
width: 20px;
height: 20px;
content: '•';
text-align: center;
opacity: .25;
color: black;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before
{
opacity: .75;
color: black;
}

File diff suppressed because it is too large Load Diff