(window["webpackJsonp_name_"] = window["webpackJsonp_name_"] || []).push([[40,52,69],{ /***/ 173: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function Loader() { var loaderArray = []; // default, dots var addLoader = function addLoader() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default'; var parent = arguments[1]; var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'dots'; if (!parent) { throw new Error('parent is undefined!'); } var loader = document.createElement('div'); loader.classList.add('loader-' + type); switch (type) { case 'dots': { loader.innerHTML = ''.repeat(3); break; } default: } parent.appendChild(loader); if (!loaderArray[id]) { loaderArray[id] = []; } loaderArray[id].push(loader); }; var removeLoader = function removeLoader(id) { if (!loaderArray[id] || !loaderArray[id].length) { return false; } loaderArray[id].forEach(function (loader) { loader.parentNode.removeChild(loader); delete loaderArray[id]; }); }; return { addLoader: addLoader, removeLoader: removeLoader }; } exports.default = Loader(); /***/ }), /***/ 198: /***/ (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; }; }(); __webpack_require__(422); var _global = __webpack_require__(52); var _global2 = _interopRequireDefault(_global); var _Loader = __webpack_require__(173); var _Loader2 = _interopRequireDefault(_Loader); var _SmoothAnchor = __webpack_require__(83); var _SmoothAnchor2 = _interopRequireDefault(_SmoothAnchor); var _inputControllerLoad = __webpack_require__(53); var _inputControllerLoad2 = _interopRequireDefault(_inputControllerLoad); 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"); } } /** * WpWay Grid */ var WpWayGrid = function () { function WpWayGrid() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; _classCallCheck(this, WpWayGrid); this.allIsLoaded = false; this.isLoading = false; this._params = props; this.elem = document.querySelector('.' + this.key); if (this.elem) { this.elem.classList.add('project-grid_' + (this.setting['grid_type'] || 'default')); this.init(); } } _createClass(WpWayGrid, [{ key: 'init', value: function init() { if (!this.elem) { return false; } this.contentWrapper = this.elem.querySelector('[data-id="' + this.key + '"]'); // load type switch (this.setting['pagination_type']) { case 'plain': { this._initPlain(); break; } case 'button': { this._initLoadMore(); break; } case 'lazy': { this._initLazy(); break; } } } }, { key: '_setScrollBox', value: function _setScrollBox() { if (document.body.classList.contains('wpw-custom-scroll') && window.innerWidth > 991) { this.scrollBox = _global2.default.lumericMain; } else { this.scrollBox = document; } } }, { key: '_initPlain', value: function _initPlain() { var _this = this; var nav = this.elem.querySelector('.nav-links'); if (!nav) { return false; } var offset = 0; var currentPage = this.currentPage = 1; nav.addEventListener('click', function (event) { event.preventDefault(); var target = event.target; if (target.classList.contains('prev')) { var current = event.currentTarget.querySelector('.current'); currentPage = parseInt(current.getAttribute('data-page'), 10); if (currentPage <= 1) { return false; } currentPage = currentPage - 1; var nextPage = event.currentTarget.querySelector('[data-page="' + currentPage + '"]'); if (!nextPage) { return false; } current.classList.remove('current'); nextPage.classList.add('current'); offset = (currentPage - 1) * _this.setting['items_per_page']; _this.setting['raw_config'].offset = offset; } else if (target.classList.contains('next')) { var _current = event.currentTarget.querySelector('.current'); currentPage = parseInt(_current.getAttribute('data-page'), 10); currentPage = currentPage + 1; var _nextPage = event.currentTarget.querySelector('[data-page="' + currentPage + '"]'); if (!_nextPage) { return false; } _current.classList.remove('current'); _nextPage.classList.add('current'); offset = (currentPage - 1) * _this.setting['items_per_page']; _this.setting['raw_config'].offset = offset; } else { var action = target.getAttribute('data-action'); if (action) { if (target.classList.contains('current')) { return false; } [].forEach.call(event.currentTarget.querySelectorAll('.current'), function (link) { link.classList.remove('current'); }); target.classList.add('current'); var page = target.getAttribute('data-page') || 1; currentPage = page; offset = (page - 1) * _this.setting['items_per_page']; _this.setting['raw_config'].offset = offset; } } var next = event.currentTarget.querySelector('.next'); var prev = event.currentTarget.querySelector('.prev'); if (prev) { if (currentPage <= 1) { prev.classList.add('no-display'); } else { prev.classList.remove('no-display'); } } if (next) { if (currentPage >= parseInt(_this.setting['posts_count']) / parseInt(_this.setting['items_per_page'], 10)) { next.classList.add('no-display'); } else { next.classList.remove('no-display'); } } _Loader2.default.addLoader(_this.key, event.currentTarget); _this.currentPage = currentPage; _this._sendRequest(function () { new _SmoothAnchor2.default({ scroll: _global2.default.scrollBox }).scrollTo(_this.elem, 600, 200); }); }); } }, { key: '_initLoadMore', value: function _initLoadMore() { var _this2 = this; var button = this.elem.querySelector('[data-action="load-more"]'); if (!button) { return false; } this.currentPage = 1; var offset = parseInt(this.setting['items_per_page'], 10); var eventClick = function eventClick(event) { if (_this2.allIsLoaded) { return false; } var postCount = _this2.setting['raw_config']['quantity'] > _this2.setting['posts_count'] ? _this2.setting['posts_count'] : _this2.setting['raw_config']['quantity']; _this2.setting['raw_config'].offset = offset; _this2.currentPage = _this2.currentPage + 1; offset += parseInt(_this2.setting['items_per_page'], 10); button.parentNode.classList.add('loading-post'); _Loader2.default.addLoader(_this2.key, button.parentNode); _this2._sendRequest(function () { button.parentNode.classList.remove('loading-post'); if (offset >= postCount) { button.removeEventListener('click', eventClick.bind(_this2)); button.parentNode.removeChild(button); button = null; _this2.allIsLoaded = true; } }); }; button.addEventListener('click', eventClick.bind(this)); } }, { key: '_initLazy', value: function _initLazy() { var _this3 = this; this._setScrollBox(); var lazy = this.elem.querySelector('.project-grid__lazy'); if (!lazy) { return false; } this.currentPage = 1; var offset = parseInt(this.setting['items_per_page'], 10); var pos = lazy.getBoundingClientRect(); if (pos.bottom < window.innerHeight) { this.setting['raw_config'].offset = offset; this.currentPage = this.currentPage + 1; this._sendRequest(); offset += parseInt(this.setting['items_per_page'], 10); } var scrollFunction = function scrollFunction(event) { if (_this3.allIsLoaded) { _this3.scrollBox.removeEventListener('scroll', scrollFunction.bind(_this3)); return false; } if (_this3.isLoading) { return false; } var pos = lazy.getBoundingClientRect(); if (pos.bottom < window.innerHeight) { var postCount = _this3.setting['raw_config']['quantity'] > _this3.setting['posts_count'] ? _this3.setting['posts_count'] : _this3.setting['raw_config']['quantity']; _this3.setting['raw_config'].offset = offset; _this3.currentPage = _this3.currentPage + 1; _Loader2.default.addLoader(_this3.key, lazy); _this3._sendRequest(); offset += parseInt(_this3.setting['items_per_page'], 10); if (offset >= postCount) { _this3.scrollBox.removeEventListener('scroll', scrollFunction.bind(_this3)); _this3.allIsLoaded = true; } } }; this.scrollBox.addEventListener('scroll', scrollFunction.bind(this)); window.addEventListener('resize', function () { if (_this3.allIsLoaded) { return false; } _this3._setScrollBox(); _this3.scrollBox.removeEventListener('scroll', scrollFunction.bind(_this3)); _this3.scrollBox.addEventListener('scroll', scrollFunction.bind(_this3)); }); } }, { key: '_sendRequest', value: function _sendRequest(callback) { var _this4 = this; if (this.isLoading) { return false; } this.isLoading = true; this.setting['raw_config'].page = this.currentPage; window.wp && wp.ajax.send('grid_pagination', { data: { 'raw_config': this.setting['raw_config'] }, success: function success(response) { _Loader2.default.removeLoader(_this4.key); _this4.isLoading = false; try { switch (_this4.setting['pagination_type']) { case 'plain': { _this4.contentWrapper.innerHTML = response.items; break; } case 'lazy': case 'button': { _this4.contentWrapper.innerHTML = _this4.contentWrapper.innerHTML + response.items; break; } } if (typeof callback === 'function') { callback(); } (0, _inputControllerLoad2.default)(); //LumericScrollBox && LumericScrollBox.resize(); } catch (error) { throw new Error(error); } }, error: function error(response) { this.isLoading = false; _Loader2.default.removeLoader(this.key); alert(response); } }); } }, { key: 'key', get: function get() { return this._params.key; } }, { key: 'setting', get: function get() { return this._params.setting; } }, { key: 'LumericScrollBox', get: function get() { return this._params.LumericScrollBox; } }]); return WpWayGrid; }(); exports.default = WpWayGrid; /***/ }), /***/ 422: /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(441); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(167)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /***/ 441: /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(168)(false); // imports // module exports.push([module.i, "@media (min-width:992px){.project-grid_modern .project-grid__item{width:50%!important;left:16.66667%!important}.project-grid_modern .project-grid__item:nth-child(odd){left:33.332%!important}}.project-grid_modern .load-more-wrapper{display:flex;flex-direction:column-reverse;align-items:center;justify-content:center}.project-grid_modern .load-more-wrapper [data-action=load-more]{display:inline-flex;transition:opacity .2s ease}.project-grid_modern .load-more-wrapper.loading-post [data-action=load-more]{pointer-events:none;opacity:.5}.load-more-wrapper{text-align:center}", ""]); // exports /***/ }) }]);