(window["webpackJsonp_name_"] = window["webpackJsonp_name_"] || []).push([[48,7,47],{ /***/ 174: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); exports.getProperty = getProperty; exports.setVideoBg = setVideoBg; var _global = __webpack_require__(52); var _global2 = _interopRequireDefault(_global); var _index = __webpack_require__(69); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /* * Navbar Container */ var NavbarBehaviour = function () { function NavbarBehaviour(args) { _classCallCheck(this, NavbarBehaviour); this.defaultTop = 0; this.scrollTop = 0; this.isSticked = false; this._args = Object.assign({}, args); this.setPosition(); setVideoBg(this.wrapper.elem, this.wrapperSettings, 'default', getProperty(this.wrapperSettings, 'default', 'visible')); // setVideoBg(this.content.elem, this.contentSettings, 'default'); // if (this.position === 'bottom') { // this.onScroll = this.onBottomScroll; // } this._onScroll = this.onScroll.bind(this); this.onScroll(); NavbarBehaviour.scrollBox && NavbarBehaviour.scrollBox.addEventListener('scroll', this._onScroll); this._resize(); } _createClass(NavbarBehaviour, [{ key: 'setPosition', value: function setPosition() { var defaultTop = this.wrapper.elem.getBoundingClientRect(); var scrollTop = getProperty(this.wrapperSettings, 'scroll', 'position'); if (typeof scrollTop === 'string') { try { scrollTop = scrollTop.decode().toJSON().top; if (scrollTop && scrollTop['units'] === '%') { console.warn("Use 'px' instead '%'"); } scrollTop = +scrollTop['number']; } catch (err) { scrollTop = ''; } } if (!scrollTop) { scrollTop = 0; } scrollTop = +scrollTop; this.wrapperClone = this.positionType === 'relative' ? this.wrapper.elem.cloneNode() : null; var currentTop = _global2.default.scrollBox && _global2.default.scrollBox instanceof Document && _global2.default.scrollBox.documentElement.scrollTop || _global2.default.scrollBox && _global2.default.scrollBox instanceof HTMLElement && _global2.default.scrollBox.scrollTop || 0; this.defaultTop = defaultTop.top + currentTop - scrollTop; } }, { key: 'onScroll', value: function onScroll(event) { var target = event && event.target || _global2.default.scrollBox; // let scrollTop = (target instanceof Document && target.documentElement.scrollTop) || target.scrollTop || 0; var scrollTop = target.documentElement && target.documentElement.scrollTop || target.scrollTop || 0; if (!this.isSticked && scrollTop + NavbarBehaviour._adminPanelHeight >= this.defaultTop + 1) { this.setScrollState(); } else if (this.isSticked && scrollTop + NavbarBehaviour._adminPanelHeight < this.defaultTop + 1) { this.clearScrollState(); } } }, { key: 'onAsideScroll', value: function onAsideScroll(event) {} // private onBottomScroll(event?) { // const target = (event && event.target) || GlobalVariables.scrollBox; // let scrollTop = (target instanceof Document && target.documentElement.scrollTop) || target.scrollTop || 0; // if (!this.isSticked && scrollTop >= this.defaultTop + 1) { // this.clearScrollState(); // } else if (this.isSticked && scrollTop < this.defaultTop + 1) { // this.setScrollState(); // } // } }, { key: 'setScrollState', value: function setScrollState() { this.wrapper.elem.classList.add('scroll-state'); this.wrapperClone && this.wrapper.elem.insertAdjacentElement('afterend', this.wrapperClone); setVideoBg(this.wrapper.elem, this.wrapperSettings, 'scroll', getProperty(this.wrapperSettings, 'default', 'visible')); this.isSticked = true; } }, { key: 'clearScrollState', value: function clearScrollState() { this.wrapper.elem.classList.remove('scroll-state'); if (this.wrapperClone) { var parent = this.wrapperClone.parentNode; parent && parent.removeChild(this.wrapperClone); } if (checkBgUrlExist(this.wrapperSettings['scroll'])) { setVideoBg(this.wrapper.elem, this.wrapperSettings, 'default', getProperty(this.wrapperSettings, 'scroll', 'visible')); } this.isSticked = false; } }, { key: '_resize', value: function _resize() { var _this = this; var time = void 0; window.addEventListener('resize', function (event) { clearInterval(time); time = setTimeout(function () { _this.clearScrollState(); _this.setPosition(); _this.onScroll(); _index.getSize; NavbarBehaviour.scrollBox && NavbarBehaviour.scrollBox.removeEventListener('scroll', _this._onScroll); NavbarBehaviour.scrollBox = _global2.default.scrollBox; NavbarBehaviour.scrollBox && NavbarBehaviour.scrollBox.addEventListener('scroll', _this._onScroll); }, 200); }); } }, { key: 'wrapper', get: function get() { return this._args.wrapper; } }, { key: 'content', get: function get() { return this._args.content; } }, { key: 'wrapperSettings', get: function get() { return this.wrapper.settings; } }, { key: 'contentSettings', get: function get() { return this.content.settings; } }, { key: 'position', get: function get() { return this._args.position; } }, { key: 'positionType', get: function get() { return this._args.positionType; } }]); return NavbarBehaviour; }(); exports.default = NavbarBehaviour; NavbarBehaviour.scrollBox = _global2.default.scrollBox; NavbarBehaviour._adminPanelHeight = getAdminPanel() instanceof HTMLElement ? 32 : 0; // function getSize(): string { // let ww = window.innerWidth; // return ww >= 992 ? 'md' : ww >= 768 ? 'sm' : 'xs'; // } /** * * @param config * @param type - default | scroll * @param name - propery key */ function getProperty(config, type, name) { if (!['default', 'scroll'].includes(type) || !config || !name) { return false; } var sizes = ['md', 'sm', 'xs']; var size = (0, _index.getSize)(); var index = sizes.indexOf(size); if (index < 0) { return false; } do { if (config[type][size] && config[type][size].has(name)) { return config[type][size].get(name); } index--; } while (index > 0); return false; } /** * * @param elem - wrapper of video * @param settings - navbar wrapper setting * @param type - defalult | scroll * @param isVisible - on | off, is navbar visible */ function setVideoBg(elem, settings, type) { var isVisible = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'on'; var bgWrapper = elem.querySelector('.background > .video-layer'); if (!bgWrapper) { return false; } if (isVisible === 'off') { bgWrapper.innerHTML = ''; return false; } // if(checkBgUrlExist(settings[type])) { // return false; // } var mp4 = settings[type].videoBg.get('mp4') || null; var ogg = settings[type].videoBg.get('ogg') || null; var webm = settings[type].videoBg.get('webm') || null; if (!mp4 && !ogg && !webm) { return false; } bgWrapper.innerHTML = '\n \n '; } function checkBgUrlExist(setting) { return ['mp3', 'ogg', 'webm'].some(function (key) { return setting.videoBg.get(key); }); } function getAdminPanel() { return document.getElementById('wpadminbar'); } /***/ }), /***/ 201: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _importCss2 = __webpack_require__(46); var _importCss3 = _interopRequireDefault(_importCss2); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _NavbarBehaviour = __webpack_require__(174); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } String.prototype.decode = function () { try { return decodeURIComponent(this); } catch (err) { throw new Error(err); } }; String.prototype.toJSON = function () { try { return JSON.parse(this); } catch (err) { throw new Error(err); } }; /* * Navbar */ var Navbar = function () { function Navbar(args) { _classCallCheck(this, Navbar); this._args = Object.assign({}, args); this._init(); } _createClass(Navbar, [{ key: '_init', value: function _init() { var config = this.settings['config']; var configKeys = Object.keys(config); var isScroll = config['behaviour'] === 'fix_on_scroll' && config['position_type'] !== 'fixed'; var _elem = document.querySelector('.navbar-' + this.id); var _content = _elem.querySelector('.navbar-content'); var isValid = _elem instanceof HTMLElement && _content instanceof HTMLElement && configKeys.length; var sortedConfig = isValid ? Object.freeze(Navbar._getSortedCondig(config, _elem, _content)) : null; if (!isScroll && sortedConfig) { var bgWrapper = _elem.querySelector('.background > .video-layer'); if (bgWrapper) { (0, _NavbarBehaviour.setVideoBg)(_elem, sortedConfig.wrapper.settings, 'default', (0, _NavbarBehaviour.getProperty)(sortedConfig.wrapper.settings, 'default', 'visible')); } this._resize(_elem, isScroll, sortedConfig); return this; } if (isValid && sortedConfig) { Promise.all([Promise.resolve(/* import() */).then(function() { var module = __webpack_require__(174); return typeof module === "object" && module && module.__esModule ? module : Object.assign({/* fake namespace object */}, typeof module === "object" && module, { "default": module }); }), (0, _importCss3.default)('NavbarBehaviour')]).then(function (proms) { return proms[0]; }).then(function (NavbarBehaviour) { new NavbarBehaviour.default(sortedConfig); }); } return this; } }, { key: '_resize', value: function _resize(elem, isScroll, sortedConfig) { if (!sortedConfig) { return false; } if (!isScroll) { var time = void 0; window.addEventListener('resize', function () { clearInterval(time); time = setTimeout(function () { (0, _NavbarBehaviour.setVideoBg)(elem, sortedConfig.wrapper.settings, 'default', (0, _NavbarBehaviour.getProperty)(sortedConfig.wrapper.settings, 'default', 'visible')); }, 200); }); } } }, { key: 'id', get: function get() { return this._args.id; } }, { key: 'settings', get: function get() { return this._args.settings; } }]); return Navbar; }(); // private _elem: HTMLElement; exports.default = Navbar; Navbar._getSortedCondig = function (config, _elem, _content) { var configKeys = Object.keys(config); return { wrapper: { elem: _elem, settings: { default: getAndSortSetting(config, configKeys.filter(function (key) { return !/_?content_?/g.test(key) && /_?default_?/g.test(key); })), scroll: getAndSortSetting(config, configKeys.filter(function (key) { return !/_?content_?/g.test(key) && /_?scroll_?/g.test(key); })) } }, content: { elem: _content, settings: { default: getAndSortSetting(config, configKeys.filter(function (key) { return (/_?content_?/g.test(key) && /_?default_?/g.test(key) ); })), scroll: getAndSortSetting(config, configKeys.filter(function (key) { return (/_?content_?/g.test(key) && /_?scroll_?/g.test(key) ); })) } }, position: config['position'], positionType: config['position_type'] }; }; function getAndSortSetting(config, filter) { var obj = { md: new Map(), sm: new Map(), xs: new Map(), videoBg: new Map() }; filter.forEach(function (item) { var object = void 0; if (item.includes('bg_video')) { object = obj.videoBg; } else { object = /_?md_?/.test(item) ? obj.md : /_?sm_?/.test(item) ? obj.sm : obj.xs; } object.set(item.replace(/_?(md|sm|xs|default|scroll|content|navigation|dynamic|bg_video)/g, '').replace(/^_|_$/, ''), config[item]); }); return obj; } /***/ }), /***/ 69: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSize = getSize; function getSize() { var ww = window.innerWidth; return ww >= 992 ? 'md' : ww >= 768 ? 'sm' : 'xs'; } /***/ }) }]);