{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./theme/js/core/sette.js","webpack:///./theme/js/components/index.js","webpack:///./theme/js/components/contacts.js","webpack:///./theme/js/components/lightbox-overlay.js","webpack:///./theme/js/components/nav-menu.js","webpack:///./theme/js/components/product-detail.js","webpack:///./theme/js/components/posts-grid.js","webpack:///./theme/js/components/products-grid.js","webpack:///./theme/js/components/top-header.js","webpack:///./theme/js/store/index.js","webpack:///./theme/js/modules/components.js","webpack:///./theme/js/modules/media-queries.js","webpack:///./theme/js/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","init","params","Promise","resolve","then","domInit","modulesInit","console","log","error","includes","document","readyState","addEventListener","e","target","constructor","entries","map","moduleObj","all","Contacts","data","errors","form","firstName","lastName","company","telephone","email","address","city","province","request","privacy","marketing","methods","toggleCheckbox","param","this","validate","push","match","length","submit","$refs","LightboxOverlay","display","htmlContent","watch","created","window","sette","emitter","$on","onLightboxToggle","beforeDestroy","$off","togglePlayback","video","$el","querySelector","play","pause","currentTime","NavMenu","active","toggle","ProductDetail","mounted","slider","$options","Swipe","startSlide","auto","draggable","autoRestart","continuous","disableScroll","stopPropagation","imagesWrapper","Array","from","querySelectorAll","forEach","img","mouseHandler","prev","next","type","mouseDownTimestamp","Date","now","cloneNode","removeAttribute","$emit","outerHTML","PostsGrid","page","noMorePosts","intObserver","IntersectionObserver","entry","isIntersecting","loadMore","threshold","observe","pageUrl","location","href","replace","isCategory","fetch","response","text","html","posts","DOMParser","parseFromString","post","appendChild","ProductsGrid","filterActive","filterValue","searchValue","computed","categoryDescription","cat","categories","filter","id","description","filterLabel","productsFiltered","products","trim","nameRegex","RegExp","product","selectFilter","TopHeader","toggleNav","Vue","use","Vuex","store","Store","state","mediaQueries","mutations","add","remove","splice","indexOf","contentElement","config","contentSelector","componentAttribute","componentId","instances","components","customContentSelector","assign","parse","setTimeout","pageLoader","hook","onBeforeContentReplace","onAfterContentReplace","registerPageLoaderHooks","componentsEls","el","getAttribute","componentsSet","component","_","cloneDeep","scope","parentEl","parentNode","keys","externalData","externalDataScript","removeChild","template","elClone","replaceAttributesToVueTemplate","hasAttributes","elAttributes","attributes","attribute","toLowerCase","attrName","attrValue","vueAttributeName","bindMatch","onMatch","setAttribute","children","nodeToVueTemplate","componentInstance","$mount","$destroy","Node","Element","node","nodes","childNodes","nodeType","mq","mql","matchMedia","mediaQuery","mqlListener","documentElement","classList","matches","commit","addListener","listener","Components","MediaQueries","ua","navigator","userAgent","body"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export default {\n modules: {},\n\n // initialize framework\n init(params) {\n return Promise.resolve()\n .then(() => this.domInit())\n .then(() => this.modulesInit(params.modules))\n .then(() => {\n console.log(\"sette init\");\n })\n .catch(console.error)\n },\n\n // wait for the dom\n domInit() {\n return new Promise(resolve => {\n if ([\"interactive\", \"complete\"].includes(document.readyState)) {\n resolve()\n } else {\n document.addEventListener(\"readystatechange\", e => {\n if ([\"interactive\", \"complete\"].includes(e.target.readyState)) {\n resolve()\n }\n })\n }\n })\n },\n\n // initialize sette modules\n modulesInit(modules) {\n if (!(typeof modules === \"object\" && modules.constructor === Object)) {\n return Promise.resolve()\n }\n\n const modulesInit = Object.entries(modules).map(moduleObj => {\n const key = moduleObj[0]\n const module = moduleObj[1].module\n const params = moduleObj[1].params\n\n this.modules[key] = module\n\n if (module.init && typeof module.init === \"function\") {\n return module.init(this, params)\n } else {\n return Promise.resolve()\n }\n })\n\n return Promise.all(modulesInit)\n }\n}","import Contacts from \"./contacts.js\";\nimport LightboxOverlay from \"./lightbox-overlay.js\";\nimport NavMenu from \"./nav-menu.js\";\nimport ProductDetail from \"./product-detail.js\";\nimport ProductsGrid from \"./products-grid.js\";\nimport PostsGrid from \"./posts-grid.js\";\nimport TopHeader from \"./top-header.js\";\n\nexport default {\n Contacts,\n LightboxOverlay,\n NavMenu,\n ProductDetail,\n PostsGrid,\n ProductsGrid,\n TopHeader\n}","export default {\n name: \"Contacts\",\n\n data: {\n errors: [],\n form: {\n firstName: \"\",\n lastName: \"\",\n company: \"\",\n telephone: \"\",\n email: \"\",\n address: \"\",\n city: \"\",\n province: \"\",\n request: \"\",\n privacy: false,\n marketing: false\n }\n },\n\n methods: {\n toggleCheckbox(param) {\n this.form[param] = !this.form[param];\n },\n\n validate() {\n this.errors = [];\n const emailRegex = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n\n if (!this.form.firstName) {\n this.errors.push(\"firstName\");\n }\n\n if (!this.form.lastName) {\n this.errors.push(\"lastName\");\n }\n\n if (!this.form.telephone) {\n this.errors.push(\"telephone\");\n }\n\n if (!this.form.email.match(emailRegex)) {\n this.errors.push(\"email\");\n }\n\n if (!this.form.address) {\n this.errors.push(\"address\");\n }\n\n if (!this.form.city) {\n this.errors.push(\"city\");\n }\n\n if (!this.form.province) {\n this.errors.push(\"province\");\n }\n\n if (!this.form.request) {\n this.errors.push(\"request\");\n }\n\n if (!this.form.privacy) {\n this.errors.push(\"privacy\");\n }\n\n return !this.errors.length;\n },\n\n submit() {\n if (this.validate()) {\n this.$refs.form.submit();\n }\n }\n }\n};","export default {\n name: \"LightboxOverlay\",\n\n data: {\n display: \"hidden\",\n htmlContent: \"\"\n },\n\n watch: {\n display() {\n // this.togglePlayback();\n }\n },\n\n created() {\n console.log(window.sette.emitter)\n window.sette.emitter.$on(\"lightbox.toggle\", this.onLightboxToggle);\n },\n\n beforeDestroy() {\n window.sette.emitter.$off(\"lightbox.toggle\", this.onLightboxToggle);\n },\n\n methods: {\n onLightboxToggle(htmlContent) {\n if (htmlContent) {\n this.htmlContent = htmlContent;\n }\n console.log(htmlContent)\n this.display = (this.display === \"hidden\") ? \"visible\" : \"hidden\";\n },\n\n togglePlayback() {\n const video = this.$el.querySelector(\"video\");\n if (!video) {\n return;\n }\n if (this.display === \"visible\") {\n video.play();\n } else {\n video.pause();\n video.currentTime = 0;\n }\n }\n }\n};","export default {\n name: \"NavMenu\",\n\n data: {\n active: false\n },\n\n created() {\n window.sette.emitter.$on(\"NavMenu.toggle\", this.toggle)\n },\n\n methods: {\n toggle() {\n this.active = !this.active;\n }\n }\n};","export default {\n name: \"ProductDetail\",\n\n mounted() {\n if (this.$refs.slider) {\n this.$options.slider = new Swipe(this.$refs.slider, {\n startSlide: 0,\n auto: 6000,\n draggable: true,\n autoRestart: false,\n continuous: true,\n disableScroll: true,\n stopPropagation: true,\n // callback: function(index, element) {},\n // transitionEnd: function(index, element) {}\n });\n }\n\n if (this.$refs.imagesWrapper) {\n Array\n .from(this.$refs.imagesWrapper.querySelectorAll(\"img\"))\n .forEach(img => {\n img.addEventListener(\"mousedown\", this.mouseHandler);\n img.addEventListener(\"mouseup\", this.mouseHandler);\n });\n }\n },\n\n methods: {\n prev() {\n this.$options.slider.prev();\n },\n\n next() {\n this.$options.slider.next();\n },\n\n mouseHandler(e) {\n if (e.type === \"mousedown\") {\n this.$options.mouseDownTimestamp = Date.now()\n }\n if (e.type === \"mouseup\") {\n if (!this.$options.mouseDownTimestamp) {\n return;\n }\n const timestampDiff = Date.now() - this.$options.mouseDownTimestamp;\n if (timestampDiff <= 80) {\n const img = e.target.cloneNode(true);\n img.removeAttribute(\"style\");\n img.removeAttribute(\"data-index\");\n window.sette.emitter.$emit(\"lightbox.toggle\", img.outerHTML);\n }\n }\n }\n }\n};","export default {\n name: \"PostsGrid\",\n\n data: {\n page: 1,\n noMorePosts: false\n },\n\n mounted() {\n this.$options.intObserver = new IntersectionObserver(entries => {\n const entry = entries[0];\n if (entry && entry.isIntersecting && !this.noMorePosts) {\n this.loadMore();\n }\n }, { threshold: 0.3 });\n this.$options.intObserver.observe(this.$refs.loadMore);\n },\n\n methods: {\n loadMore() {\n this.page++;\n const pageUrl = window.location.href.replace(/\\d+\\/$/, \"\") + (this.isCategory ? `page/${this.page}/` : `${this.page}/`)\n fetch(pageUrl)\n .then(response => response.text())\n .then(html => {\n const parser = new DOMParser();\n const doc = parser.parseFromString(html, \"text/html\");\n const posts = doc.querySelectorAll(\".posts-grid__post\");\n if (posts.length) {\n Array.from(posts).forEach(post => {\n this.$refs.posts.appendChild(post);\n });\n } else {\n this.noMorePosts = true;\n }\n });\n }\n }\n}","export default {\n name: \"ProductsGrid\",\n\n data: {\n filterActive: false,\n filterValue: null,\n searchValue: \"\"\n },\n\n computed: {\n categoryDescription() {\n if (this.filterValue) {\n const cat = this.categories.filter(cat => cat.id === this.filterValue)[0];\n if (cat) {\n return cat.description;\n }\n }\n return null;\n },\n\n filterLabel() {\n if (this.filterValue === null) {\n return \"Filtra\";\n } else {\n return this.categories.filter(cat => cat.id === this.filterValue)[0].name;\n }\n },\n\n productsFiltered() {\n let products = this.products;\n\n if (this.searchValue.trim().length > 3) {\n const nameRegex = new RegExp(`${this.searchValue.trim()}`, 'i');\n products = products.filter(product => !!product.name.match(nameRegex));\n }\n\n if (typeof this.filterValue === \"number\") {\n products = products.filter(product => product.categories.map(cat => cat.id).includes(this.filterValue));\n }\n\n return products;\n }\n },\n\n methods: {\n selectFilter(id) {\n this.filterValue = (this.filterValue === id) ? null : id;\n }\n }\n}","export default {\n name: \"TopHeader\",\n\n methods: {\n toggleNav() {\n window.sette.emitter.$emit(\"NavMenu.toggle\");\n }\n }\n};","Vue.use(Vuex);\n\nconst store = new Vuex.Store({\n state: {\n mediaQueries: []\n },\n mutations: {\n mediaQueries(state, params) {\n if (params.add && typeof params.add === \"string\" && !state.mediaQueries.includes(params.remove)) {\n state.mediaQueries.push(params.add);\n }\n if (params.remove && typeof params.remove === \"string\" && state.mediaQueries.includes(params.remove)) {\n state.mediaQueries.splice(state.mediaQueries.indexOf(params.remove), 1);\n }\n }\n }\n})\n\nexport default store;","import componentsSet from \"../components/index.js\"\nimport store from \"../store/index.js\"\n\nlet contentElement = null\n\nlet config = {\n contentSelector: \"#content\",\n componentAttribute: \"data-component\",\n componentId: \"data-id\"\n}\n\nconst instances = []\n\nconst components = {\n init(sette, params) {\n let customContentSelector = false\n\n // merge config\n if (typeof params === \"object\" && params.constructor === Object) {\n if (params.contentSelector) {\n customContentSelector = true\n }\n config = Object.assign(config, params)\n }\n\n // if is provided a new content element selector use it, otherwise take the content element from pageLoader\n if (customContentSelector) {\n contentElement = document.querySelector(config.contentSelector)\n this.parse()\n } else {\n // wait for every module to be set\n setTimeout(() => {\n if (sette.modules.pageLoader) {\n contentElement = sette.modules.pageLoader.contentElement()\n if (!contentElement) {\n contentElement = document.querySelector(config.contentSelector)\n }\n // register page loader hooks\n registerPageLoaderHooks(sette)\n } else {\n contentElement = document.querySelector(config.contentSelector)\n }\n this.parse()\n }, 0)\n }\n },\n\n parse() {\n const componentsEls = document.querySelectorAll(`[${config.componentAttribute}]`)\n Array.prototype.forEach.call(componentsEls, el => {\n const name = el.getAttribute(config.componentAttribute)\n const id = el.getAttribute(config.componentId)\n\n if (componentsSet[name]) {\n let component = _.cloneDeep(componentsSet[name])\n\n // test if component is global or not\n let scope = \"global\"\n let parentEl = el\n\n while (parentEl && parentEl.parentNode) {\n if (parentEl === contentElement) {\n scope = \"content\"\n parentEl = null\n } else {\n parentEl = parentEl.parentNode\n }\n }\n\n\n\n // clone deep objects and arrays, only first level\n Object.keys(component).forEach(key => {\n if (typeof component[key] === \"object\") {\n component[key] = Object.assign(new component[key].constructor, component[key]);\n }\n })\n\n component.store = store\n\n // inject scope & id in component data\n if (component.data) {\n if (typeof component.data === \"function\") {\n component.data = component.data();\n }\n component.data.scope = scope\n component.data.id = id\n } else {\n component.data = { id, scope }\n }\n\n // set external data & remove window object\n const externalData = window[`__${id}`]\n if (externalData && typeof externalData === \"object\" && externalData.constructor === Object) {\n component.data = Object.assign(component.data, externalData)\n delete window[`__${id}`]\n\n // remove data script\n const externalDataScript = el.parentNode.querySelector(`script[data-id=\"${id}\"]`)\n if (externalDataScript) {\n externalDataScript.parentNode.removeChild(externalDataScript)\n }\n }\n\n // set template\n component.template = nodeToVueTemplate(el)\n\n // create component and then mount the element\n const componentInstance = new Vue(component)\n componentInstance.$mount(el)\n\n // remove component attribute / id\n componentInstance.$el.removeAttribute(config.componentAttribute)\n componentInstance.$el.removeAttribute(config.componentId)\n\n // add the instance to the set\n instances.push(componentInstance)\n }\n })\n }\n}\n\nfunction nodeToVueTemplate(el) {\n const elClone = el.cloneNode(true)\n replaceAttributesToVueTemplate(elClone)\n return elClone.outerHTML.replace(/\\s\\s+/g, \" \")\n}\n\nfunction replaceAttributesToVueTemplate(el) {\n // replace attributes\n if (el.hasAttributes()) {\n // map attributes before replace\n const elAttributes = Array.prototype.map.call(el.attributes, function (attribute) {\n return {\n name: attribute.name.toLowerCase(),\n value: attribute.value\n }\n })\n\n for (let i = elAttributes.length - 1; i >= 0; i--) {\n const attrName = elAttributes[i].name\n const attrValue = elAttributes[i].value\n let vueAttributeName = null\n\n // replace element\n if (attrName === \"data-interpolation\") {\n el.outerHTML = `{{ ${attrValue} }}`\n }\n\n // other directives\n switch (attrName) {\n case \"data-cloak\":\n vueAttributeName = \"v-cloak\"\n break;\n\n case \"data-else\":\n vueAttributeName = \"v-else\"\n break;\n\n case \"data-else-if\":\n vueAttributeName = \"v-else-if\"\n break;\n\n case \"data-for\":\n vueAttributeName = \"v-for\"\n break;\n\n case \"data-html\":\n vueAttributeName = \"v-html\"\n break;\n\n case \"data-if\":\n vueAttributeName = \"v-if\"\n break;\n\n case \"data-is\":\n vueAttributeName = \"is\"\n break;\n\n case \"data-key\":\n vueAttributeName = \"key\"\n break;\n\n case \"data-model\":\n vueAttributeName = \"v-model\"\n break;\n\n case \"data-once\":\n vueAttributeName = \"v-once\"\n break;\n\n case \"data-pre\":\n vueAttributeName = \"v-pre\"\n break;\n\n case \"data-ref\":\n vueAttributeName = \"ref\"\n break;\n\n case \"data-show\":\n vueAttributeName = \"v-show\"\n break;\n\n case \"data-slot\":\n vueAttributeName = \"slot\"\n break;\n\n case \"data-slot-scope\":\n vueAttributeName = \"slot-scope\"\n break;\n\n case \"data-text\":\n vueAttributeName = \"v-text\"\n break;\n }\n\n // bind directive\n if (!vueAttributeName) {\n const bindMatch = attrName.match(/^data\\-bind\\-(.+)$/)\n if (bindMatch && bindMatch[1]) {\n vueAttributeName = `v-bind:${bindMatch[1]}`\n }\n }\n\n // on directive\n if (!vueAttributeName) {\n const onMatch = attrName.match(/^data\\-on\\-(.+)$/)\n if (onMatch && onMatch[1]) {\n vueAttributeName = `v-on:${onMatch[1]}`\n }\n }\n\n // asssign attribute\n if (vueAttributeName) {\n el.removeAttribute(attrName)\n el.setAttribute(vueAttributeName, attrValue)\n }\n }\n }\n\n // recursively convert children attributes\n if (el.children.length) {\n for (let i = el.children.length - 1; i >= 0; i--) {\n replaceAttributesToVueTemplate(el.children[i])\n }\n }\n}\n\nfunction registerPageLoaderHooks(sette) {\n sette.modules.pageLoader.hook(\"beforeContentReplace\", onBeforeContentReplace)\n sette.modules.pageLoader.hook(\"afterContentReplace\", onAfterContentReplace)\n}\n\nfunction onBeforeContentReplace() {\n // destroy and remove content components\n instances.forEach((component, i) => {\n if (component.scope === \"content\") {\n component.$destroy()\n instances.splice(i, 1)\n }\n })\n\n return Promise.resolve()\n}\n\nfunction onAfterContentReplace() {\n components.parse()\n return Promise.resolve()\n}\n\nexport default components;\n\n// ie11 polyfill\n\n//make sure we have Node.children and Element.children available\n(function (constructor) {\n if (constructor &&\n constructor.prototype &&\n constructor.prototype.children == null) {\n Object.defineProperty(constructor.prototype, 'children', {\n get: function () {\n var i = 0, node, nodes = this.childNodes, children = [];\n //iterate all childNodes\n while (node = nodes[i++]) {\n //remenber those, that are Node.ELEMENT_NODE (1)\n if (node.nodeType === 1) { children.push(node); }\n }\n return children;\n }\n });\n }\n//apply the fix to all HTMLElements (window.Element) and to SVG/XML (window.Node)\n})(window.Node || window.Element);","import store from \"../store/index.js\"\n\nconst mediaQueries = {\n init(sette, params) {\n if (params.mediaQueries && params.mediaQueries.length) {\n params.mediaQueries.forEach(mq => {\n mq.mql = window.matchMedia(mq.mediaQuery)\n\n const mqlListener = function (mql) {\n window.document.documentElement.classList[mql.matches ? \"add\" : \"remove\"](`mq-${mq.name}`)\n store.commit(\"mediaQueries\", { [mql.matches ? \"add\" : \"remove\"]: mq.name })\n }\n\n mq.mql.addListener(mqlListener)\n mqlListener(mq.mql)\n\n if (typeof mq.listener === \"function\") {\n mq.mql.addListener(mq.listener)\n }\n })\n }\n }\n}\n\nexport default mediaQueries","import sette from \"./core/sette.js\";\nimport Components from \"./modules/components.js\";\nimport MediaQueries from \"./modules/media-queries.js\";\n// import PageLoader from \"./modules/page-loader.js\";\n\nsette.init({\n modules: {\n components: {\n module: Components,\n params: {}\n },\n mediaQueries: {\n module: MediaQueries,\n params: {\n mediaQueries: [\n {\n name: \"small\",\n mediaQuery: \"screen and (max-width: 768px)\"\n },\n {\n name: \"medium\",\n mediaQuery: \"screen and (min-width: 769px) and (max-width: 1024px)\"\n },\n {\n name: \"large\",\n mediaQuery: \"screen and (min-width: 1025px) and (max-width: 1440px)\"\n },\n {\n name: \"wide\",\n mediaQuery: \"screen and (min-width: 1441px)\"\n }\n ]\n }\n },\n // pageLoader: {\n // module: PageLoader,\n // params: {\n // active: true\n // }\n // }\n }\n});\n\nsette.emitter = new Vue();\n\nwindow.sette = sette;\n\nconst ua = window.navigator.userAgent;\nif (ua.indexOf('MSIE ') || ua.indexOf('Trident/')) {\n document.body.classList.add('is-ie')\n}"],"sourceRoot":""}