{"version":3,"file":"2.CnY1iQkm.js","sources":["../../../../../../src/lib/modals/RemoveModal.svelte","../../../../../../src/lib/modals/StockModal.svelte","../../../../../../src/lib/modals/ErrorModal.svelte","../../../../../../src/lib/components/common/menu/CategoriesBtn.svelte","../../../../../../src/lib/components/common/menu/ShopsBtn.svelte","../../../../../../src/lib/components/menu/UniverseSubcats.svelte","../../../../../../src/lib/modals/search/SearchbarSimple.svelte","../../../../../../src/lib/components/common/menu/HeaderMenu.svelte","../../../../../../src/lib/components/menu/TabCatsDesktop.svelte","../../../../../../src/lib/components/universes/UniversesMenu.svelte","../../../../../../src/lib/components/common/menu/DesktopMenu.svelte","../../../../../../src/lib/components/common/menu/HeroMenu.svelte","../../../../../../src/lib/components/common/menu/InfoMenu.svelte","../../../../../../src/lib/components/common/menu/AccountMenu.svelte","../../../../../../src/lib/components/common/SiteHeader.svelte","../../../../../../src/lib/js/magento/newsletter.ts","../../../../../../src/lib/components/common/Subfooter.svelte","../../../../../../src/lib/components/common/SiteFooter.svelte","../../../../../../node_modules/@material/switch/constants.js","../../../../../../node_modules/@material/base/observer.js","../../../../../../node_modules/@material/base/observer-foundation.js","../../../../../../node_modules/@material/switch/foundation.js","../../../../../../node_modules/@smui/switch/dist/Switch.svelte","../../../../../../src/lib/components/common/CookieNotice.svelte","../../../../../../src/lib/components/common/Analytics.svelte","../../../../../../src/lib/components/product/ProductCartCard.svelte","../../../../../../src/lib/components/cart/MiniCart.svelte","../../../../../../src/lib/components/menu/TabCatsUniverse.svelte","../../../../../../src/lib/components/menu/TabUniverses.svelte","../../../../../../src/lib/components/menu/TabUs.svelte","../../../../../../src/lib/components/common/menu/MobileMenu.svelte","../../../../../../src/lib/modals/search/RecommendedProds.svelte","../../../../../../src/lib/modals/search/Searchbar.svelte","../../../../../../src/lib/modals/SearchModal.svelte","../../../../../../src/lib/modals/ChatModal.svelte","../../../../../../src/lib/js/seo.ts","../../../../../../src/lib/components/common/Snackbar.svelte","../../../../../../src/routes/[lang]/+layout.svelte"],"sourcesContent":["\n\n\n $storeRemoveModal = 0}\" type=\"adapted\">\n
\n
\n

{$t`Do you want to remove the product?`}

\n
\n \n \n
\n
\n
\n
\n\n\n\n","\n\n ($storeStockModal = '')} type=\"adapted\">\n\t
\n\t\t
\n\t\t\t

{$t`There's not enough stock`}

\n\t\t\t

\n\t\t\t\t{@html `Actualmente disponemos en total de ${$storeStockModal} unidades de este producto.`}\n\t\t\t

\n\t\t
\n\t
\n
\n\n\n","\n\n\n $storeCartError = ''}\" type=\"adapted\">\n
\n
\n

{\"Se ha producido un error\"}

\n

{@html $storeCartError}

\n
\n
\n
\n\n\n","\n\n\n\n\n{#if innerWidth > 1024}\n \n{:else if innerWidth > 768}\n \n{/if}\n\n\n","\n\n\n\n\n{#if innerWidth > 1024}\n \n{:else if innerWidth > 768}\n \n{/if}\n\n\n","\n\n\n{#if\n\tcategory\n\t&& $storeHeroMenu === \"subcats\"\n\t&& cleanCats\n}\n\t
\n\t\t
\n\t\t\t hideMenu()}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t{#each cleanCats as child_cat}\n\t\t\t\t\t\t optionFirstHovered(child_cat)}\n\t\t\t\t\t\t>{child_cat.name}\n\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t
\n\n\t\t\t\t{#if is_set_array(catActive)}\n\t\t\t\t\t
\n\t\t\t\t\t\t{#each catActive as child_cat_2}\n\t\t\t\t\t\t\t{#if child_cat_2.product_count > 0}\n\t\t\t\t\t\t\t\t{child_cat_2.name}\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t\n\t\t
\n\t
\n{/if}\n\n\n","\n\n openSearch()}\n\tplaceholder={$t`Search for a product...`}\n/>\n\n\n\n","\n\n\n\n\n{#key $page.data}\n\t
\n\n\t\t
\n\t\t\t{#if universe_info}\n\t\t\t\t\n\t\t\t{/if}\n\n\t\t\t\n\n\t\t\t{#if $page.data.mobile === false || innerWidth > 768}\n\t\t\t\t\n\t\t\t{/if}\n\t\t
\n\n\t\t
\n\t\t\t\n\n\t\t\t\n\t\t
\n\t
\n\n\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t
\n\t\t\t\n\t\t
\n\t{/if}\n{/key}\n\n\n\n","\n\n\n
\n {#if !universe_info && ($page.route.id !== \"/[lang]/p/[prod_url]\" && $page.route.id !== \"/[lang]/c/[...cat_url]\")}\n
\n {#each firstLevel as option}\n optionFirstHovered(option.id)}\n on:click={() => closeMenu()}\n >{option.name}\n {/each}\n
\n {/if}\n\n
\n {#each secondLevel as option}\n {#if option.parent_id === firstActive}\n optionSecondHovered(option.id)}\n on:click={() => closeMenu()}\n >{option.name}\n {/if}\n {/each}\n
\n\n
\n {#each thirdLevel as option}\n {#if option.parent_id === secondActive}\n closeMenu()}\n >{option.name}\n {/if}\n {/each}\n
\n
\n\n\n\n","\n\n\n
\n\t
\n\t\t{#each universes as option}\n\t\t\t optionFirstHovered(option)}\n\t\t\t\ton:click={() => closeMenu()}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t{#if current === parseInt(option.cat_id)}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t

{option.description}

\n\t\t\t\n\t\t{/each}\n\t
\n\n\t
\n\t\t{#each secondLevel as option}\n\t\t\t{#if option.parent_id === firstActive}\n\t\t\t\t optionSecondHovered(option.id)}\n\t\t\t\t\ton:click={() => closeMenu()}\n\t\t\t\t>{option.name}\n\t\t\t{/if}\n\t\t{/each}\n\t
\n\n\t
\n\t\t{#each thirdLevel as option}\n\t\t\t{#if option.parent_id === secondActive}\n\t\t\t\t closeMenu()}>{option.name}\n\t\t\t{/if}\n\t\t{/each}\n\t
\n
\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n\n\n\n{#if $storeHeroMenu && is_set_array(menu_levels.firstLevel)}\n {#if innerWidth > 1024}\n \n {/if}\n{/if}\n","\n\n\n\n\n\n\n","\n\n\n\t\t{/if}\n\n\t\t{#each options as option}\n\t\t\t closeMenu()}>{option.text}\n\t\t{/each}\n\n\t\t\n\t\n\n\n\n","\n\n\n\n
\n\t
\n\t\t
\n\t\t\t{#if universe_info}\n\t\t\t\t{#if $page.data.mobile === false || innerWidth > 768}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t{/if}\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t\t\t\t\t ($storeHeroMenu = 'mobile')}\n\t\t\t\t\t\t\taria-label={$t`All categories`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{:else if !universe_info}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\n\t\t\t\t{#if !universe_info}\n\t\t\t\t\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\n\t\t\t\t{#if $page.data.mobile === false || innerWidth > 768}\n\t\t\t\t\t ($storeHeroMenu = '')}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\n\t\t\t\t{#if universe_info}\n\t\t\t\t\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\n\t\t\t\t\n\t\t\t\t\t{/if}\n\n\t\t\t\t\t openCart()}\n\t\t\t\t\t\ton:mouseenter={() => ($storeInfoMenu = '')}\n\t\t\t\t\t\taria-label=\"Minicart\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{cartItems}\n\t\t\t\t\t\n\n\t\t\t\t\t{#if $storeInfoMenu === 'info'}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else if $storeInfoMenu === 'account'}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n\n","import { PUBLIC_MAGENTO_ENDPOINT } from '$env/static/public';\n\n\n/**\n * Subscribe an email to the newsletter.\n */\nexport async function subscribeToNewsletter(email: string) {\n await fetch(\n // TODO[i18n]: how do we subscribe them to the right scope? If you subscribe on /es/ you should\n\t\t// not get the French newsletter.\n\t\t`${PUBLIC_MAGENTO_ENDPOINT}/rest/V1/newsletter/subscription/${email}`,\n { method: \"POST\", headers: { \"Content-Type\": \"application/json\", Accept: 'application/json' } }\n );\n}\n","\n\n\n
\n
\n
\n\n
\n \n
\n\n
\n

{subfooter.shipping_text}

\n
\n \n
\n
\n
\n
\n
\n\n\n\n","\n\n
\n\t\n\t{#if !$page.url.pathname.includes('customer/account') && !$page.url.pathname.includes('customer/address') && !$page.url.pathname.includes('sales/order') && !$page.url.pathname.includes('stripe/customer')}\n\t\t\n\t{/if}\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{#each footer.column as col}\n\t\t\t\t\t
\n\t\t\t\t\t\t

{col.title}

\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{#each col.list as list}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t{#if list.link.indexOf('https') === -1}\n\t\t\t\t\t\t\t\t\t\t{list.item}\n\t\t\t\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t\t\t\t{list.item}\n\t\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t{/each}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t\t{@html $t`We are Bixoto, a startup from Barcelona and the first fully European, close and sustainable e-commerce. We work to put at your disposal a wide catalog of quality products at the best prices.`}\n\t\t\t\t

\n\t\t\t\t

\n\t\t\t\t\t{@html $t`At Bixoto we offer you more than 500,000 products of all kinds online and an unbeatable shopping experience.`}\n\t\t\t\t

\n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t
\n\t\t\t\t\"Bandera\n\t\t\t\t\"Bandera\n\t\t\t
\n\t\t\tCopyright {new Date().getFullYear()} - BIXOTO IBERIA SL - {$t`All rights reserved`}\n\t\t
\n\t
\n
\n\n\n","/**\n * @license\n * Copyright 2021 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * CSS classes used for switch.\n */\nexport var CssClasses;\n(function (CssClasses) {\n CssClasses[\"PROCESSING\"] = \"mdc-switch--processing\";\n CssClasses[\"SELECTED\"] = \"mdc-switch--selected\";\n CssClasses[\"UNSELECTED\"] = \"mdc-switch--unselected\";\n})(CssClasses || (CssClasses = {}));\n/**\n * Query selectors used for switch.\n */\nexport var Selectors;\n(function (Selectors) {\n Selectors[\"RIPPLE\"] = \".mdc-switch__ripple\";\n})(Selectors || (Selectors = {}));\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2021 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends, __read, __spreadArray, __values } from \"tslib\";\n/**\n * Mixin to add `MDCObserver` functionality to an optional base class.\n *\n * @deprecated Prefer MDCObserverFoundation for stricter closure compliance.\n * @template C Optional base class constructor type.\n * @param baseClass - Optional base class.\n * @return A class that extends the optional base class with `MDCObserver`\n * functionality.\n */\nexport function mdcObserver(baseClass) {\n if (baseClass === void 0) { baseClass = /** @class */ (function () {\n function class_1() {\n }\n return class_1;\n }()); }\n // Mixin classes cannot use private members and Symbol() cannot be used in 3P\n // for IE11.\n var unobserveMap = new WeakMap();\n return /** @class */ (function (_super) {\n __extends(MDCObserver, _super);\n function MDCObserver() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MDCObserver.prototype.observe = function (target, observers) {\n var e_1, _a;\n var _this = this;\n var cleanup = [];\n try {\n for (var _b = __values(Object.keys(observers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var property = _c.value;\n var observer = observers[property].bind(this);\n cleanup.push(observeProperty(target, property, observer));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var unobserve = function () {\n var e_2, _a;\n try {\n for (var cleanup_1 = __values(cleanup), cleanup_1_1 = cleanup_1.next(); !cleanup_1_1.done; cleanup_1_1 = cleanup_1.next()) {\n var cleanupFn = cleanup_1_1.value;\n cleanupFn();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (cleanup_1_1 && !cleanup_1_1.done && (_a = cleanup_1.return)) _a.call(cleanup_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var unobserves = unobserveMap.get(_this) || [];\n var index = unobserves.indexOf(unobserve);\n if (index > -1) {\n unobserves.splice(index, 1);\n }\n };\n var unobserves = unobserveMap.get(this);\n if (!unobserves) {\n unobserves = [];\n unobserveMap.set(this, unobserves);\n }\n unobserves.push(unobserve);\n return unobserve;\n };\n MDCObserver.prototype.setObserversEnabled = function (target, enabled) {\n setObserversEnabled(target, enabled);\n };\n MDCObserver.prototype.unobserve = function () {\n var e_3, _a;\n // Iterate over a copy since unobserve() will remove themselves from the\n // array\n var unobserves = unobserveMap.get(this) || [];\n try {\n for (var _b = __values(__spreadArray([], __read(unobserves))), _c = _b.next(); !_c.done; _c = _b.next()) {\n var unobserve = _c.value;\n unobserve();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n return MDCObserver;\n }(baseClass));\n}\n/**\n * Observe a target's property for changes. When a property changes, the\n * provided `Observer` function will be invoked with the properties current and\n * previous values.\n *\n * The returned cleanup function will stop listening to changes for the\n * provided `Observer`.\n *\n * @template T The observed target type.\n * @template K The observed property.\n * @param target - The target to observe.\n * @param property - The property of the target to observe.\n * @param observer - An observer function to invoke each time the property\n * changes.\n * @return A cleanup function that will stop observing changes for the provided\n * `Observer`.\n */\nexport function observeProperty(target, property, observer) {\n var targetObservers = installObserver(target, property);\n var observers = targetObservers.getObservers(property);\n observers.push(observer);\n return function () {\n observers.splice(observers.indexOf(observer), 1);\n };\n}\n/**\n * A Map of all `TargetObservers` that have been installed.\n */\nvar allTargetObservers = new WeakMap();\n/**\n * Installs a `TargetObservers` for the provided target (if not already\n * installed), and replaces the given property with a getter and setter that\n * will respond to changes and call `TargetObservers`.\n *\n * Subsequent calls to `installObserver()` with the same target and property\n * will not override the property's previously installed getter/setter.\n *\n * @template T The observed target type.\n * @template K The observed property to create a getter/setter for.\n * @param target - The target to observe.\n * @param property - The property to create a getter/setter for, if needed.\n * @return The installed `TargetObservers` for the provided target.\n */\nfunction installObserver(target, property) {\n var observersMap = new Map();\n if (!allTargetObservers.has(target)) {\n allTargetObservers.set(target, {\n isEnabled: true,\n getObservers: function (key) {\n var observers = observersMap.get(key) || [];\n if (!observersMap.has(key)) {\n observersMap.set(key, observers);\n }\n return observers;\n },\n installedProperties: new Set()\n });\n }\n var targetObservers = allTargetObservers.get(target);\n if (targetObservers.installedProperties.has(property)) {\n // The getter/setter has already been replaced for this property\n return targetObservers;\n }\n // Retrieve (or create if it's a plain property) the original descriptor from\n // the target...\n var descriptor = getDescriptor(target, property) || {\n configurable: true,\n enumerable: true,\n value: target[property],\n writable: true\n };\n // ...and create a copy that will be used for the observer.\n var observedDescriptor = __assign({}, descriptor);\n var descGet = descriptor.get, descSet = descriptor.set;\n if ('value' in descriptor) {\n // The descriptor is a simple value (not a getter/setter).\n // For our observer descriptor that we copied, delete the value/writable\n // properties, since they are incompatible with the get/set properties\n // for descriptors.\n delete observedDescriptor.value;\n delete observedDescriptor.writable;\n // Set up a simple getter...\n var value_1 = descriptor.value;\n descGet = function () { return value_1; };\n // ...and setter (if the original property was writable).\n if (descriptor.writable) {\n descSet = function (newValue) {\n value_1 = newValue;\n };\n }\n }\n if (descGet) {\n observedDescriptor.get = function () {\n // `this as T` needed for closure conformance\n return descGet.call(this);\n };\n }\n if (descSet) {\n observedDescriptor.set = function (newValue) {\n var e_4, _a;\n // `thus as T` needed for closure conformance\n var previous = descGet ? descGet.call(this) : newValue;\n descSet.call(this, newValue);\n if (targetObservers.isEnabled && (!descGet || newValue !== previous)) {\n try {\n for (var _b = __values(targetObservers.getObservers(property)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer(newValue, previous);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n };\n }\n targetObservers.installedProperties.add(property);\n Object.defineProperty(target, property, observedDescriptor);\n return targetObservers;\n}\n/**\n * Retrieves the descriptor for a property from the provided target. This\n * function will walk up the target's prototype chain to search for the\n * descriptor.\n *\n * @template T The target type.\n * @template K The property type.\n * @param target - The target to retrieve a descriptor from.\n * @param property - The name of the property to retrieve a descriptor for.\n * @return the descriptor, or undefined if it does not exist. Keep in mind that\n * plain properties may not have a descriptor defined.\n */\nexport function getDescriptor(target, property) {\n var descriptorTarget = target;\n var descriptor;\n while (descriptorTarget) {\n descriptor = Object.getOwnPropertyDescriptor(descriptorTarget, property);\n if (descriptor) {\n break;\n }\n // Walk up the instance's prototype chain in case the property is declared\n // on a superclass.\n descriptorTarget = Object.getPrototypeOf(descriptorTarget);\n }\n return descriptor;\n}\n/**\n * Enables or disables all observers for a provided target. Changes to observed\n * properties will not call any observers when disabled.\n *\n * @template T The observed target type.\n * @param target - The target to enable or disable observers for.\n * @param enabled - True to enable or false to disable observers.\n */\nexport function setObserversEnabled(target, enabled) {\n var targetObservers = allTargetObservers.get(target);\n if (targetObservers) {\n targetObservers.isEnabled = enabled;\n }\n}\n//# sourceMappingURL=observer.js.map","/**\n * @license\n * Copyright 2021 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends, __read, __spreadArray, __values } from \"tslib\";\nimport { MDCFoundation } from './foundation';\nimport { observeProperty, setObserversEnabled } from './observer';\nvar MDCObserverFoundation = /** @class */ (function (_super) {\n __extends(MDCObserverFoundation, _super);\n function MDCObserverFoundation(adapter) {\n var _this = _super.call(this, adapter) || this;\n /** A set of cleanup functions to unobserve changes. */\n _this.unobserves = new Set();\n return _this;\n }\n MDCObserverFoundation.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unobserve();\n };\n /**\n * Observe a target's properties for changes using the provided map of\n * property names and observer functions.\n *\n * @template T The target type.\n * @param target - The target to observe.\n * @param observers - An object whose keys are target properties and values\n * are observer functions that are called when the associated property\n * changes.\n * @return A cleanup function that can be called to unobserve the\n * target.\n */\n MDCObserverFoundation.prototype.observe = function (target, observers) {\n var e_1, _a;\n var _this = this;\n var cleanup = [];\n try {\n for (var _b = __values(Object.keys(observers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var property = _c.value;\n var observer = observers[property].bind(this);\n cleanup.push(this.observeProperty(target, property, observer));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var unobserve = function () {\n var e_2, _a;\n try {\n for (var cleanup_1 = __values(cleanup), cleanup_1_1 = cleanup_1.next(); !cleanup_1_1.done; cleanup_1_1 = cleanup_1.next()) {\n var cleanupFn = cleanup_1_1.value;\n cleanupFn();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (cleanup_1_1 && !cleanup_1_1.done && (_a = cleanup_1.return)) _a.call(cleanup_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n _this.unobserves.delete(unobserve);\n };\n this.unobserves.add(unobserve);\n return unobserve;\n };\n /**\n * Observe a target's property for changes. When a property changes, the\n * provided `Observer` function will be invoked with the properties current\n * and previous values.\n *\n * The returned cleanup function will stop listening to changes for the\n * provided `Observer`.\n *\n * @template T The observed target type.\n * @template K The observed property.\n * @param target - The target to observe.\n * @param property - The property of the target to observe.\n * @param observer - An observer function to invoke each time the property\n * changes.\n * @return A cleanup function that will stop observing changes for the\n * provided `Observer`.\n */\n MDCObserverFoundation.prototype.observeProperty = function (target, property, observer) {\n return observeProperty(target, property, observer);\n };\n /**\n * Enables or disables all observers for the provided target. Disabling\n * observers will prevent them from being called until they are re-enabled.\n *\n * @param target - The target to enable or disable observers for.\n * @param enabled - Whether or not observers should be called.\n */\n MDCObserverFoundation.prototype.setObserversEnabled = function (target, enabled) {\n setObserversEnabled(target, enabled);\n };\n /**\n * Clean up all observers and stop listening for property changes.\n */\n MDCObserverFoundation.prototype.unobserve = function () {\n var e_3, _a;\n try {\n // Iterate over a copy since unobserve() will remove themselves from the set\n for (var _b = __values(__spreadArray([], __read(this.unobserves))), _c = _b.next(); !_c.done; _c = _b.next()) {\n var unobserve = _c.value;\n unobserve();\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n return MDCObserverFoundation;\n}(MDCFoundation));\nexport { MDCObserverFoundation };\n//# sourceMappingURL=observer-foundation.js.map","/**\n * @license\n * Copyright 2021 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { MDCObserverFoundation } from '@material/base/observer-foundation';\nimport { CssClasses } from './constants';\n/**\n * `MDCSwitchFoundation` provides a state-only foundation for a switch\n * component.\n *\n * State observers and event handler entrypoints update a component's adapter's\n * state with the logic needed for switch to function.\n */\nvar MDCSwitchFoundation = /** @class */ (function (_super) {\n __extends(MDCSwitchFoundation, _super);\n function MDCSwitchFoundation(adapter) {\n var _this = _super.call(this, adapter) || this;\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n /**\n * Initializes the foundation and starts observing state changes.\n */\n MDCSwitchFoundation.prototype.init = function () {\n this.observe(this.adapter.state, {\n disabled: this.stopProcessingIfDisabled,\n processing: this.stopProcessingIfDisabled,\n });\n };\n /**\n * Event handler for switch click events. Clicking on a switch will toggle its\n * selected state.\n */\n MDCSwitchFoundation.prototype.handleClick = function () {\n if (this.adapter.state.disabled) {\n return;\n }\n this.adapter.state.selected = !this.adapter.state.selected;\n };\n MDCSwitchFoundation.prototype.stopProcessingIfDisabled = function () {\n if (this.adapter.state.disabled) {\n this.adapter.state.processing = false;\n }\n };\n return MDCSwitchFoundation;\n}(MDCObserverFoundation));\nexport { MDCSwitchFoundation };\n/**\n * `MDCSwitchRenderFoundation` provides a state and rendering foundation for a\n * switch component.\n *\n * State observers and event handler entrypoints update a component's\n * adapter's state with the logic needed for switch to function.\n *\n * In response to state changes, the rendering foundation uses the component's\n * render adapter to keep the component's DOM updated with the state.\n */\nvar MDCSwitchRenderFoundation = /** @class */ (function (_super) {\n __extends(MDCSwitchRenderFoundation, _super);\n function MDCSwitchRenderFoundation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the foundation and starts observing state changes.\n */\n MDCSwitchRenderFoundation.prototype.init = function () {\n _super.prototype.init.call(this);\n this.observe(this.adapter.state, {\n disabled: this.onDisabledChange,\n processing: this.onProcessingChange,\n selected: this.onSelectedChange,\n });\n };\n /**\n * Initializes the foundation from a server side rendered (SSR) component.\n * This will sync the adapter's state with the current state of the DOM.\n *\n * This method should be called after `init()`.\n */\n MDCSwitchRenderFoundation.prototype.initFromDOM = function () {\n // Turn off observers while setting state\n this.setObserversEnabled(this.adapter.state, false);\n this.adapter.state.selected = this.adapter.hasClass(CssClasses.SELECTED);\n // Ensure aria-checked is set if attribute is not present\n this.onSelectedChange();\n this.adapter.state.disabled = this.adapter.isDisabled();\n this.adapter.state.processing =\n this.adapter.hasClass(CssClasses.PROCESSING);\n // Re-observe state\n this.setObserversEnabled(this.adapter.state, true);\n this.stopProcessingIfDisabled();\n };\n MDCSwitchRenderFoundation.prototype.onDisabledChange = function () {\n this.adapter.setDisabled(this.adapter.state.disabled);\n };\n MDCSwitchRenderFoundation.prototype.onProcessingChange = function () {\n this.toggleClass(this.adapter.state.processing, CssClasses.PROCESSING);\n };\n MDCSwitchRenderFoundation.prototype.onSelectedChange = function () {\n this.adapter.setAriaChecked(String(this.adapter.state.selected));\n this.toggleClass(this.adapter.state.selected, CssClasses.SELECTED);\n this.toggleClass(!this.adapter.state.selected, CssClasses.UNSELECTED);\n };\n MDCSwitchRenderFoundation.prototype.toggleClass = function (addClass, className) {\n if (addClass) {\n this.adapter.addClass(className);\n }\n else {\n this.adapter.removeClass(className);\n }\n };\n return MDCSwitchRenderFoundation;\n}(MDCSwitchFoundation));\nexport { MDCSwitchRenderFoundation };\n//# sourceMappingURL=foundation.js.map"," instance && instance.handleClick()}\n {...inputProps}\n {...exclude($$restProps, ['icons$'])}\n>\n
\n
\n
\n
\n
\n
\n
\n {#if icons}\n \n \n \n \n \n \n \n
\n {/if}\n
\n
\n {#if focusRing}\n
\n
\n
\n {/if}\n\n\n\n","\n\n\n
\n\t
\n\t\t
\n\t\t\t

{$t`Cookies & privacy`}

\n\t\t
\n\n\t\t{#if configure}\n\t\t\t
\n\t\t\t\t{$t`If you require more information about how bixoto and third parties manage your data when accepting cookies, you can consult our`}\n\t\t\t\t\t{$t`cookies policy`}\n\t\t\t\t\t{$t`or`}\n\t\t\t\t\t{$t`Google's data processing policy`}.

\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t
\n\n\t\t\t\t\t{$t`A collection of cookies to gather information about website usage statistics without individually identifying visitors.`}

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t
\n\n\t\t\t\t\t{$t`Advertising cookies are used to track and monitor visitor actions on the website to provide a personalized user experience.`}

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n \n \n\t\t\t\t\t
\n\n\t\t\t\t\t{$t`These cookies are essential for the correct functionality of the website, therefore they can not be deactivated.`}

\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t{:else}\n\t\t\t

{$t`We use our own and third-party cookies for the correct functioning of the website and for the purpose of compiling statistical information and showing you personalized advertising through the analysis of your browsing.`}

\n\t\t\t
\n\t\t\t

{$t`You can configure the cookies according to your preferences by clicking on the \"Configure\" button. This allows you to select which types of cookies to enable or disable. You can also accept or reject them all.`}

\n\t\t\t
\n\t\t\t

{$t`Find more information in our`} {$t`privacy policy`} {$t`and`}\n\t\t\t\t{$t`cookies policy`}.

\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t{/if}\n\t
\n
\n\n\n\n","\n\n\n\n","\n\n
\n\t
\n\t\t
\n
\n\n\n","\n\n
\n\t
\n\n\t\t\t{#key update_cart}\n\t\t\t\t{#if is_set_array($storeCartItems)}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{#each $storeCartItems as product}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/each}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t{:else}\n\t\t\t\t\t
\n\t\t\t\t\t\t

{$t`Your cart is empty`}

\n\t\t\t\t\t
\n\t\t\t\t{/if}\n\t\t\t{/key}\n\t\t
\n\n\t\t\n\t
\n
\n\n\n","\n\n\n
\n
\n closeMenu()}\n >{$t`Go to bixoto`} {universe_info.name} \n\n {#each secondLevel as option}\n {#if option.parent_id === firstActive}\n optionSecondSelected(option)}\n >{option.name}\n {/if}\n {/each}\n
\n\n
\n \n\n closeMenu()}\n >{$t`View ${parentSecondActive.name}`} \n\n {#each thirdLevel as option}\n {#if option.parent_id === secondActive}\n closeMenu()}\n >{option.name} \n {/if}\n {/each}\n
\n
\n\n\n\n","\n\n\n
\n \n
\n\n\n","\n\n\n
\n\t
\n\t\t{#each pages as page}\n\t\t\t $storeHeroMenu = ''}>\n\t\t\t\t{page.text}\n\t\t\t\n\t\t{/each}\n\t
\n
\n\n\n","\n\n\n
\n
\n \n\n
\n \n\n
\n {#each tabs as tab}\n {#if universe_info || (!universe_info && tab.id !== \"cats\")}\n selectedTab = tab.id}\n >\n \n {tab.name}\n \n {/if}\n {/each}\n
\n
\n\n
\n {#if selectedTab === \"cats\"}\n \n {:else if selectedTab === \"universes\"}\n \n {:else if selectedTab === \"us\"}\n \n {/if}\n
\n
\n
\n\n\n\n","\n\n\n
\n\t{#if is_set_array($storeRecentSearches)}\n\t\t

{$t`Recent searches`}

\n\t\t
    \n\t\t\t{#each $storeRecentSearches as search}\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t{/each}\n\t\t
\n\t{:else}\n\t\t

{$t`Most searched`}

\n\t\t
    \n\t\t\t{#each defaultSearches as search}\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t{/each}\n\t\t
\n\t{/if}\n
\n\n{#if is_set_array(recommended_products)}\n\t
\n\t\t\n\t
\n{/if}\n\n\n\n","\n\n\n\n
\n\t
\n\t\t
\n\t\t\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t {\n\t\t\t\t\tif (timeout_id) {\n\t\t\t\t\t\tclearTimeout(timeout_id)\n\t\t\t\t\t}\n\t\t\t\t\ttimeout_id = setTimeout(async () => {\n\t\t\t\t\t\tconst result = await executeSearch($storeSearchedText, {scope: scope})\n\t\t\t\t\t\tproducts = result?.products\n\t\t\t\t\t\toptions = result?.options\n\t\t\t\t\t\t// We add the search to history\n\t\t\t\t\t\t$page.url.searchParams.set('search', $storeSearchedText)\n\t\t\t\t\t\tdoPush($page.url.href)\n\t\t\t\t\t}, 300)\n\t\t\t\t}}\n\t\t\t\tbind:value={$storeSearchedText}\n\t\t\t\tplaceholder={$t`Search for a product...`}\n\t\t\t/>\n\t\t\t{#if $page.data.mobile === true || innerWidth <= 768}\n\t\t\t\t{#if $storeSearchedText.length > 0}\n\t\t\t\t\t {\n\t\t\t\t\t\t\t$storeSearchedText = ''\n\t\t\t\t\t\t}}>\n\t\t\t\t{/if}\n\t\t\t{/if}\n\t\t
\n\t\t{#if $page.data.mobile !== true || innerWidth >= 768}\n\t\t\t\n\t\t{/if}\n\t
\n\n\t
\n\t\t{#if $storeSearchFilters.suggestions && is_set_array($storeSearchFilters.suggestions) && $storeSearchedText && $storeSearchedText.length > 2}\n\t\t\t\n\t\t\t\t{#each $storeSearchFilters.suggestions as suggestion}\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsuggestionAction(suggestion)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{suggestion.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t\n\t\t{/if}\n\t
\n\t
\n\t\t
\n\t\t\t{#if $storeCategorySearchFilter}\n\t\t\t\t{$t`Searching in category:`}\n\t\t\t\t{$storeCategorySearchFilter.name}\n\t\t\t\t {\n\t\t\t\t\t\tremoveCategory()\n\t\t\t\t\t}}>\n\t\t\t{/if}\n\t\t
\n\t\t
\n\t\t\t{#if $storeBrandSearchFilter}\n\t\t\t\t{$t`Searching in brand:`}\n\t\t\t\t{$storeBrandSearchFilter.page_title}\n\t\t\t\t {\n\t\t\t\t\t\tremoveBrand()\n\t\t\t\t\t}}>\n\t\t\t{/if}\n\t\t
\n\t
\n
\n\n\n","\n\n closeModal(e)}\n\ton:keydown={(e) => closeModal(e)}\n\trole=\"button\"\n\ttabindex=\"0\"\n>\n\t
\n\t\t
\n\t\t\t\n\n\t\t\t
\n\t\t\t\t{#key $storeSearchUpdated}\n\t\t\t\t\t{#if $storeSearchUpdated > 0 && is_set_object($storeSearchFilters)\n\t\t\t\t\t&& (($storeSearchedText && $storeSearchedText.length > 2) || (products && products.length > 0))}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{#if is_set_array(products)}\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tloadingProds = true\n\t\t\t\t\t\t\t\t\t\t\tstart = start + 50\n\t\t\t\t\t\t\t\t\t\t\toptions.start = start\n\n\t\t\t\t\t\t\t\t\t\t\tawait getMoreSearchProducts(options, {scope: scope}).then((response) => {\n\t\t\t\t\t\t\t\t\t\t\t\tallResults = false\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (response.length === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tallResults = true\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (is_set_array(products) && is_set_array(response)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tproducts = products.concat(response)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\t\t\t\tloadingProds = false\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/if}\n\n\t\t\t\t\t\t\t\t{#if loadingProds}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{#key $page.url.pathname}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/key}\n\t\t\t\t\t\t
\n\t\t\t\t\t{/if}\n\n\t\t\t\t\t{#if is_set_array(products)}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t{/key}\n\t\t\t
\n\t\t
\n\t
\n
\n\n\n","\n\n\n\n
\n\t
\n\t\t
\n\t\t\t

{$t`Welcome to Bixoto!`}

\n\t\t\t\n\t\t
\n\t\t

{$t`We are here to help you. Please tell us what you need today:`}

\n\n\t\t
\n\t\t\t{#if !activeCard}\n\t\t\t\t{#each HelpCards as card}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tactiveCard = card\n\t\t\t\t\t\t\tregisterClickEvent(card.action, 'chat')\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{card.heading}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{:else}\n\t\t\t\t\n\n\t\t\t\t{#each activeCard.subactions as subaction}\n\t\t\t\t\t ($storeChatModal = false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{subaction.title} \n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/if}\n\t\t
\n\n\t\t
\n\t\t\t registerClickEvent('whatsapp', 'chat')}\n\t\t\t>\n\t\t\t\t{$t`Contact by WhatsApp`}\n\t\t\t\n\t\t
\n\t
\n
\n\n\n","import { is_set_object } from '$lib/js/helpers'\nimport type { Page } from '@sveltejs/kit'\nimport { gt } from 'svelte-i18n-lingui'\n\n/**\n * Return page title.\n */\nexport function getPageTitle(page_info: Page): string {\n const pageName = (page_info.route.id || '').substring(1)\n\n const meta_title =\n page_info.data.page_data?.meta_title ||\n page_info.data.page_info?.meta_title ||\n page_info.data.homepage?.meta_title ||\n page_info.data.help_center?.meta_title\n\n if (meta_title) {\n return meta_title\n }\n\n let path = page_info.url.pathname\n\n if (path.includes('blog/c/')) {\n return gt`Bixoto.com - ${page_info.params.cat_name} - Blog`\n }\n if (path.includes('blog/')) {\n return gt`${page_info.data.page_data?.page_title} - Bixoto.com`\n }\n if (pageName.includes('/jobs/[job_url]')) {\n return gt`Job offer - ${page_info.data.page_data?.title} - Bixoto.com`\n }\n if (path.includes('jobs/')) {\n return gt`Job offers in Bixoto.com`\n }\n if (path.includes('/p/')) {\n if (is_set_object(page_info.data.product)) {\n return gt`${page_info.data.product.name} - Bixoto.com`\n }\n }\n if (path.includes('/b/all')) {\n if (is_set_object(page_info.data.category)) {\n return gt`All our brands in ${page_info.data.category.name} - Bixoto.com`\n }\n }\n if (path.includes('/b/')) {\n if (is_set_object(page_info.data.category) && is_set_object(page_info.data.brand)) {\n return (\n gt`${page_info.data.category.name}: the best products of ${page_info.data.brand.page_title} - Bixoto.com`\n )\n }\n }\n if (path.includes('/c/')) {\n if (page_info.data.universe) {\n return page_info.data.universe?.title\n }\n if (is_set_object(page_info.data.category)) {\n return gt`Buy ${page_info.data.category.name} - Bixoto.com`\n }\n }\n if (path.includes('/u/')) {\n if (page_info.data.universe) {\n return page_info.data.universe?.meta_title\n }\n }\n if (path.includes('/catalogsearch/') && is_set_object(page_info.url.searchParams.get('q'))) {\n return gt`Buy ${page_info.url.searchParams.get('q')} - Bixoto.com`\n }\n if (path.includes('/brands/') && page_info.data.brand) {\n return `${page_info.data.brand?.page_title} - Bixoto.com`\n }\n if (path.endsWith('/brands')) {\n return gt`Our brands - Bixoto.com`\n }\n if (pageName.includes('/opiniones')) {\n return gt`Reviews and ratings of clients - Bixoto.com`\n }\n\n // Help center SEO\n // Postventa\n if (path.includes('/centro-de-ayuda/postventa/devoluciones')) {\n return gt`Return (withdrawal) of order - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/postventa/incidencias')) {\n return gt`Manage issues with my order - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/postventa/solicitar-factura')) {\n return gt`Request bill of my order - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/postventa')) {\n return gt`Manage queries and incidents with your products - Bixoto.com`\n }\n // Seguimiento\n if (path.includes('/centro-de-ayuda/seguimiento/cancelacion-pedido')) {\n return gt`Order cancellation - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/seguimiento/estado-pedido')) {\n return gt`Order tracking - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/seguimiento/corregir-datos')) {\n return gt`Correct my order data - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/seguimiento')) {\n return gt`Questions and actions on an order - Bixoto.com`\n }\n // Preventa\n if (path.includes('/centro-de-ayuda/preventa/consultas-producto')) {\n return gt`Questions about a product - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/preventa/informacion-de-compra')) {\n return gt`Purchase information (pre-sale) - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/preventa/informacion-generica')) {\n return gt`General information (pre-sale) - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda/preventa')) {\n return gt`Pre-sale - Help Center - Bixoto.com`\n }\n // Generales\n if (path.includes('/centro-de-ayuda/otras-cuestiones')) {\n return gt`Contact us - Bixoto.com`\n }\n if (path.includes('/centro-de-ayuda')) {\n return gt`Help, support and contact center - Bixoto.com`\n }\n\n return gt`Bixoto your sustainable, conscious and five-star store`\n}\n\n/**\n * Get page meta description.\n */\nexport function getMetaDescription(page_info: Page): string {\n let pageName = (page_info.route.id || '').substring(1)\n let meta_description =\n page_info.data.page_data?.meta_description ||\n page_info.data.page_info?.meta_description ||\n page_info.data.homepage?.meta_description ||\n page_info.data.help_center?.meta_description\n\n if (meta_description) {\n return meta_description\n }\n\n let path = page_info.url.pathname\n\n if (pageName.includes('/blog/[post_url]')) {\n return page_info.data.page_data?.post_excerpt\n }\n if (path.includes('blog/c/')) {\n return page_info.params.cat_name\n }\n if (pageName.includes('/jobs/[job_url]')) {\n return page_info.data.page_data?.description\n }\n if (path.includes('jobs/')) {\n return gt`Do you want to be part of the Bixoto team? Check out all our job offers and don't hesitate to contact us.`\n }\n if (path.includes('/p/') && is_set_object(page_info.data.product)) {\n return (\n gt`Buy ${page_info.data.product.name} at the best price and we will send it to you wherever you want. CO2-neutral shipping within 24/48 hours!`\n )\n }\n if (path.includes('/b/all') && is_set_object(page_info.data.category)) {\n return (\n gt`Check out all our brands at ${page_info.data.category.name}. Exclusive promotions and products. Visit us and take advantage of our CO2-neutral 24/48h shipping.`\n )\n }\n if (\n path.includes('/b/') &&\n is_set_object(page_info.data.category) &&\n is_set_object(page_info.data.brand)\n ) {\n return (\n gt`The best selection of ${page_info.data.brand?.page_title} in ${page_info.data.category.name}. Exclusive promotions and products. Visit us and take advantage of our CO2-neutral 24/48h shipping.`\n )\n }\n if (path.includes('/c/')) {\n if (page_info.data.universe) {\n return page_info.data.universe?.description\n }\n if (is_set_object(page_info.data.category)) {\n return gt`The best selection in ${page_info.data.category.name}. Exclusive promotions and products. Visit us and take advantage of our CO2-neutral 24/48h shipping.`\n }\n }\n if (path.includes('/u/')) {\n if (page_info.data.universe) {\n return page_info.data.universe?.meta_description\n }\n }\n if (path.includes('/brands') && page_info.data.brand) {\n return gt`The best selection of ${page_info.data.brand?.page_title} products. Visit us and discover the latest news from ${page_info.data.brand?.page_title} at the best price.`\n }\n if (path.includes('/catalogsearch/') && is_set_object(page_info.url.searchParams.get('q'))) {\n return gt`Exclusive promotions on ${page_info.url.searchParams.get('q')}. Discover the latest trends. Visit us and take advantage of our CO2-neutral 24/48h shipping.`\n }\n if (pageName.includes('/opiniones')) {\n return gt`All our customers' opinions and ratings on Google, Trustpilot and Reviews.io. Check out their reviews of Bixoto and leave yours too!`\n }\n\n // Help center SEO\n // Postventa\n if (path.includes('/centro-de-ayuda/postventa/devoluciones')) {\n return gt`Please note that you have 14 calendar days from the date of delivery of the order to cancel and return any product, and that the products must be in perfect condition.`\n }\n if (path.includes('/centro-de-ayuda/postventa/incidencias')) {\n return gt`Manage incidents with your order here: missing products, damaged products, malfunctions, wrong products, etc.`\n }\n if (path.includes('/centro-de-ayuda/postventa/solicitar-factura')) {\n return gt`Request an invoice for your order here. To download an invoice, you must be logged into your Bixoto account. If you do not have an account yet, you can create one now.`\n }\n if (path.includes('/centro-de-ayuda/postventa')) {\n return gt`Resolve your queries and issues with your order here. Request your invoice, manage incidents or make a return.`\n }\n // Seguimiento\n if (path.includes('/centro-de-ayuda/seguimiento/cancelacion-pedido')) {\n return gt`Cancel your order here if it has not yet been shipped. Please note that orders that have already been shipped cannot be cancelled.`\n }\n if (path.includes('/centro-de-ayuda/seguimiento/estado-pedido')) {\n return gt`Access your order tracking page here. On this page you can check the status of your order, track the shipment and manage incidents.`\n }\n if (path.includes('/centro-de-ayuda/seguimiento/corregir-datos')) {\n return gt`If you have entered incorrect data or your order is missing information (shipping address, email, etc.), please contact us here.`\n }\n if (path.includes('/centro-de-ayuda/seguimiento')) {\n return gt`Solve your queries or issues regarding the status of your order here. Correct order details or check its status.`\n }\n // Preventa\n if (path.includes('/centro-de-ayuda/preventa/consultas-producto')) {\n return gt`Contact us by email or WhatsApp and a member of our team will contact you to answer your questions.`\n }\n if (path.includes('/centro-de-ayuda/preventa/informacion-de-compra')) {\n return gt`All the information about purchasing at Bixoto. How to buy, shipping costs, returns, etc.`\n }\n if (path.includes('/centro-de-ayuda/preventa/informacion-generica')) {\n return gt`Find all the information about Bixoto here. Who we are, our mission, vision and values, and our commitment to the environment.`\n }\n if (path.includes('/centro-de-ayuda/preventa')) {\n return gt`Find all the information you need before purchasing from Bixoto here. Learn about the company, purchase conditions or ask a question about a product.`\n }\n // Generales\n if (path.includes('/centro-de-ayuda/otras-cuestiones')) {\n return gt`If you can't find the information you need, or you don't know how to resolve your problem, contact us here.`\n }\n if (path.includes('/centro-de-ayuda')) {\n return gt`In the bixoto help center you can resolve your queries and incidents quickly and efficiently. Contact our support team here in an agile manner.`\n }\n\n return gt`More than 500,000 products at your fingertips. Buy all cosmetics, home, kitchen, garden, computer and many more products online at the best price.`\n}\n","\n\n
\n\t{message}\n\t
\n\n\n","\n\n\n\t{meta_title}\n\t\n\t\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\t{#if PUBLIC_PROD && parseInt(PUBLIC_PROD) !== 1}\n\t\t\n\t\t\n\t{/if}\n\n\n\n\n\n\t
\n\t\t\n\n\t\t
\n\t\t\t\n\t\t
\n\t
\n\n\t\n\n\t\n\n\t{#if $storeChatModal}\n\t\t\n\t{/if}\n\n\t\n\t{#if !$page.url.pathname.includes('checkout/cart')}\n\t\t\n\t{/if}\n\n\t{#if !$storeCookieSelection || $storeCookieSelection === 'not-selected'}\n\t\t\n\t{/if}\n\n\t{#if $storeRemoveModal}\n\t\t\n\t{/if}\n\n\t{#if $storeStockModal !== ''}\n\t\t\n\t{/if}\n\n\t{#if $storeCartError}\n\t\t\n\t{/if}\n\n\t{#if $storeHeroMenu && firstLevel.length > 0}\n\t\t{#if innerWidth <= 1024}\n\t\t\t\n\t\t{/if}\n\t{/if}\n\n\t{#if $storeSearchModal}\n\t\t\n\t{/if}\n\n\n\n{#if PUBLIC_PROD === '1'}\n\t\n{/if}\n\n{#if $storeCheckoutIframe === true && PUBLIC_PROD === '1'}\n\t\n\t