{
  "version": 3,
  "sources": ["/cdn/shop/t/254/assets/algolia_instant_search.js?enable_js_minification=1"],
  "sourcesContent": ["/* eslint-disable object-shorthand */\n/* eslint-disable prefer-arrow-callback */\n/* eslint-disable vars-on-top */\n/* eslint-disable strict */\n/* eslint-disable no-var */\n/* eslint-disable complexity */\n(function(algolia) {\n  'use strict';\n  var instantsearch = algolia.externals.instantsearch;\n  var algoliasearch = algolia.externals.algoliasearch;\n  var searchBox = algolia.externals.widgets.searchBox;\n  var stats = algolia.externals.widgets.stats;\n  var sortBy = algolia.externals.widgets.sortBy;\n  var clearRefinements = algolia.externals.widgets.clearRefinements;\n  var panel = algolia.externals.widgets.panel;\n  var hits = algolia.externals.widgets.hits;\n  var pagination = algolia.externals.widgets.pagination;\n  var configure = algolia.externals.widgets.configure;\n  var connectCurrentRefinements =\n    algolia.externals.connectors.connectCurrentRefinements;\n  var aa = algolia.externals.aa;\n\n  var collectionPageEnabled =\n    algolia.is_collection_results_page &&\n    algolia.config.instant_search_enabled_on_collection;\n\n  if (!algolia.full_results && !algolia.is_collection_results_page) {\n    /**\n     * If we aren't on the search page and neither on a collection page,\n     * then there's no need to proceed\n     */\n    return;\n  } else if (algolia.full_results) {\n    /**\n     * If we are on the search page and instant search isn't enabled,\n     * then there's no need to proceed\n     */\n    if (!algolia.config.instant_search_enabled) {\n      return;\n    }\n  } else if (algolia.is_collection_results_page) {\n    /**\n     * If we are on a collection page and instant search on collection isn't\n     * enabled, then there's no need to proceed\n     */\n    if (!algolia.config.instant_search_enabled_on_collection) {\n      return;\n    }\n  }\n\n  /**\n   * Array which will contain all filters to be applied while initiating the\n   * search API call.\n   */\n  var searchFilters = [];\n\n  var collectionFacetFilter = null;\n  var collectionRulesContextValue = null;\n  var collectionHandle = null;\n\n  if (collectionPageEnabled) {\n    var matches = window.location.pathname.match(/\\/collections\\/([^/]+)/i);\n    collectionHandle =\n      Boolean(matches) && matches.length === 2 ? matches[1] : null;\n\n    if (algolia.config.collection_id_indexing) {\n      collectionFacetFilter = algolia.current_collection_id\n        ? 'collection_ids:\"' + algolia.current_collection_id + '\"'\n        : null;\n    } else {\n      collectionFacetFilter = 'collections:\"' + collectionHandle + '\"';\n    }\n\n    // Add the collection filter to the list of search filters\n    searchFilters.push(collectionFacetFilter);\n\n    collectionRulesContextValue = algolia.config.collection_id_query_rules\n      ? algolia.current_collection_id\n      : collectionHandle;\n  }\n\n  // Filters for stock policy\n  var stockPolicyFilter = null;\n  if (algolia.config.stock_policy) {\n    if (algolia.config.stock_policy === 'allow') {\n      /**\n       * For 'allow', we don't need to add any filter as we want to continue\n       * displaying all out of stock items.\n       */\n    } else if (algolia.config.stock_policy === 'deny') {\n      // For 'deny' we will filter out all items based on inventory quantity\n      stockPolicyFilter = 'inventory_quantity > 0';\n    } else if (algolia.config.stock_policy === 'continue') {\n      /**\n       * For 'continue' we will filter on `inventory_available` attribute whose\n       * value is dependent on:\n       * `inventory_quantity > 0 OR inventory_policy == 'continue'`\n       */\n      stockPolicyFilter = 'inventory_available:true';\n    }\n\n    // Add the stock policy filter to the list of search filters\n    if (stockPolicyFilter) {\n      searchFilters.push(stockPolicyFilter);\n    }\n  }\n\n  var results_selector = collectionPageEnabled\n    ? algolia.config.collection_css_selector\n    : algolia.config.results_selector;\n\n  var activeSortOrders =\n    collectionPageEnabled && algolia.collectionSortOrders\n      ? algolia.collectionSortOrders\n      : algolia.sortOrders;\n\n  results_selector += ', .algolia-shopify-instantsearch';\n\n  /* Custom logic to modify sort orders */\n  const onCollectionPage = window.location.pathname.match(/\\/collections\\/([^/]+)/i);\n  if (onCollectionPage) {\n    const collectionHandle = window.location.pathname.split('/').pop().split('?')[0];\n    \n    if (collectionHandle.includes('kirja')) {\n      // books, remove _date because it's for events.\n      activeSortOrders = activeSortOrders.filter(o => o.value.includes('_date') == false);\n    } else {\n      // events, remove _release because it's for books.\n      activeSortOrders = activeSortOrders.filter(o => o.value.includes('_release') == false);\n    }\n\n    // move first item to third (relevance).\n    const orderToMove = activeSortOrders.splice(0,1);\n    activeSortOrders.splice(2, 0, orderToMove[0]);\n\n    if (window.sessionStorage) {\n      // do some url magic. local storage must be set to prevent annoyances\n      if (window.location.search === \"\" && !sessionStorage.getItem('_kk_last_visited')) {\n        \n        const urlParams = new URLSearchParams(window.location.search);\n        if (collectionHandle.includes('kirja')) {\n          urlParams.set('sortBy', activeSortOrders[0].value);\n        } else {\n          urlParams.set('sortBy', activeSortOrders[0].value);\n        }\n        \n       console.log(activeSortOrders)\n        window.location.search = urlParams;\n        sessionStorage.setItem('_kk_last_visited', urlParams);\n      } else {\n        sessionStorage.removeItem('_kk_last_visited');\n      }\n    }\n  }\n\n  function getTrackedUiState(uiState) {\n    var trackedUiState = {};\n    Object.keys(uiState).forEach(function(k) {\n      if (k === 'configure' || k === 'query' || k === 'q') {\n        return;\n      }\n      trackedUiState[k] = uiState[k];\n    });\n    return trackedUiState;\n  }\n\n  /**\n   * List of URL params which are \"allowed\" by InstantSearch.\n   * These parameters won't be overwritten when the search state is written\n   * to the URL.\n   */\n  var ALLOWED_FOREIGN_PARAMS = [\n    'utm_source',\n    'utm_medium',\n    'utm_campaign',\n    'utm_term',\n    'utm_content',\n  ];\n  var foreignRouteState;\n\n  function singleIndex(indexName) {\n    return {\n      /**\n       * `stateToRoute` method transforms the `uiState` object from InstantSearch\n       * into an object that will then be serialized to construct the URL.\n       */\n      stateToRoute: function(uiState) {\n        var route = getTrackedUiState(uiState[indexName] || {});\n        route.q = uiState[indexName].query;\n        return Object.assign({}, foreignRouteState, route);\n      },\n\n      /**\n       * `routeToState` method transforms the route object into a `uiState` object\n       * so that InstantSearch is initialized with the correct state from the\n       * URL.\n       */\n      routeToState: function(routeState) {\n        /**\n         * Backup parameters from `routeState` into a different object\n         * `foreignRouteState` so that we can re-inject them into the object\n         * returned within `stateToRoute`.\n         * This allows us to preserve the parameters specified in `ALLOWED_FOREIGN_PARAMS`\n         * array.\n         */\n        if (!foreignRouteState) {\n          foreignRouteState = ALLOWED_FOREIGN_PARAMS.reduce(function(acc, key) {\n            acc[key] = routeState[key];\n            return acc;\n          }, {});\n        }\n\n        var state = {};\n        state[indexName] = getTrackedUiState(routeState || {});\n        state[indexName].query = routeState.q;\n        return state;\n      },\n    };\n  }\n\n  var instant = {\n    colors: algolia.config.colors,\n    distinct: Boolean(algolia.config.show_products),\n    facets: {\n      hidden:\n        collectionPageEnabled && algolia.collectionHiddenFacets\n          ? algolia.collectionHiddenFacets\n          : algolia.hiddenFacets,\n      shown:\n        collectionPageEnabled && algolia.collectionShownFacets\n          ? algolia.collectionShownFacets\n          : algolia.shownFacets,\n      list:\n        collectionPageEnabled && algolia.collectionFacets\n          ? algolia.collectionFacets\n          : algolia.facets,\n      widgets:\n        collectionPageEnabled && algolia.collectionFacetsWidgets\n          ? algolia.collectionFacetsWidgets\n          : algolia.facetsWidgets,\n    },\n    hitsPerPage:\n      collectionPageEnabled &&\n      algolia.config.collections_full_results_hits_per_page\n        ? algolia.config.collections_full_results_hits_per_page\n        : algolia.config.products_full_results_hits_per_page,\n    poweredBy: algolia.config.powered_by,\n    search: instantsearch({\n      searchClient: algoliasearch(\n        algolia.config.app_id,\n        algolia.config.search_api_key\n      ),\n      indexName: algolia.config.index_prefix + 'products',\n      routing: {\n        stateMapping: singleIndex(algolia.config.index_prefix + 'products'),\n      },\n      searchFunction: function(searchFunctionHelper) {\n        // Set query parameters here because they're not kept when someone\n        // presses the Back button if set in the `init` function of a custom widget\n        var page = searchFunctionHelper.getPage();\n        searchFunctionHelper.setQueryParameter(\n          'highlightPreTag',\n          '<span class=\"ais-highlight\">'\n        );\n        searchFunctionHelper.setQueryParameter('highlightPostTag', '</span>');\n        if (instant.distinct) {\n          searchFunctionHelper.setQueryParameter('distinct', true);\n        }\n\n        // Assign any required filters\n        if (searchFilters.length) {\n          searchFunctionHelper.setQueryParameter(\n            'filters',\n            searchFilters.join(' AND ')\n          );\n        }\n\n        // Assign any required `ruleContexts` which are required for query rules\n        // targeting collection pages\n        if (collectionPageEnabled) {\n          // Collection page merchandising:\n          // If we are on a collection page, `collectionRulesContextValue` is defined\n          if (collectionRulesContextValue) {\n            searchFunctionHelper.setQueryParameter('ruleContexts', [\n              collectionRulesContextValue.toString(),\n            ]);\n          } else {\n            searchFunctionHelper.setQueryParameter('ruleContexts', []);\n          }\n        }\n\n        searchFunctionHelper.setPage(page);\n        searchFunctionHelper.search();\n      },\n    }),\n    selector: results_selector + ', .algolia-shopify-instantsearch',\n    sortOrders: activeSortOrders,\n    storeName: algolia.storeName,\n    templates: {\n      currentItem: algolia.getTemplate(\n        'instant_search_current_refined_values_item'\n      ),\n      empty: algolia.getTemplate('instant_search_no_result'),\n      page: algolia.compileTemplate('instant_search'),\n      product: algolia.getTemplate('instant_search_product'),\n      stats: algolia.getTemplate('instant_search_stats'),\n      style: algolia.compileTemplate('instant_search.css'),\n    },\n  };\n\n  algolia.instantsearch = instant;\n\n  if (instant.poweredBy) {\n    // eslint-disable-next-line no-console\n    console.log('Algolia: Instant-Search');\n  }\n\n  function readjust() {\n    var width = instant.$results.offsetWidth;\n\n    var suffix = 'lg';\n    if (width < 400) suffix = 'xs';\n    else if (width < 800) suffix = 'sm';\n    else if (width < 1200) suffix = 'md';\n\n    instant.$results.classList.remove('ais-results-size-xs');\n    instant.$results.classList.remove('ais-results-size-sm');\n    instant.$results.classList.remove('ais-results-size-md');\n    instant.$results.classList.remove('ais-results-size-lg');\n    instant.$results.classList.add('ais-results-size-' + suffix);\n  }\n\n  // Bind helpers\n  var helpers = algolia.assign(\n    {},\n    algolia.helpers,\n    algolia.translation_helpers\n  );\n  Object.keys(helpers).forEach(function(name) {\n    var helper = helpers[name];\n    instant.search.templatesConfig.helpers[name] = helper;\n  });\n  instant.search.templatesConfig.compileOptions = algolia.hoganOptions;\n\n  algolia.appendStyle(\n    algolia.render(instant.templates.style, {\n      distinct: instant.distinct,\n      colors: instant.colors,\n    })\n  );\n\n  if (collectionPageEnabled) {\n    if (\n      document.querySelectorAll(algolia.config.collection_css_selector)\n        .length === 0\n    ) {\n      throw new Error(\n        'Instant search CSS selector for collection page is incorrect\\nFor more info see: https://www.algolia.com/doc/integration/shopify/advanced-customization/collection-search-page/#css-selector'\n      );\n    }\n  } else if (\n    document.querySelectorAll(algolia.config.results_selector).length === 0\n  ) {\n    throw new Error(\n      'Instant search CSS selector is incorrect\\nFor more info see: https://www.algolia.com/doc/integration/shopify/building-search-ui/instant-search/#css-selector'\n    );\n  }\n\n  instant.$results = document.querySelector(instant.selector);\n\n  instant.$results.innerHTML = algolia.render(instant.templates.page, {\n    facets: instant.facets.list,\n    storeName: instant.storeName,\n    translations: algolia.translations,\n    multipleSortOrders: activeSortOrders.length > 1,\n  });\n\n  readjust();\n\n  window.addEventListener('resize', function() {\n    readjust();\n  });\n\n  // Mobile facets display\n  instant.search.addWidgets([\n    {\n      init: function() {\n        var $button = document.querySelector('.ais-facets-button');\n        $button.role = \"button\";\n        $button.tabIndex = 0;\n        $button.addEventListener('click', function() {\n          var $facets = document.querySelector('.ais-facets');\n\n          if ($facets.classList.contains('ais-facets__shown')) {\n            $button.textContent = 'N\u00E4yt\u00E4 rajaustoiminnot';\n            $button.ariaLabel = 'N\u00E4yt\u00E4 rajaustoiminnot';\n            $facets.classList.remove('ais-facets__shown');\n          } else {\n            $button.textContent = 'Piilota rajaustoiminnot';\n            $button.ariaLabel = 'Piilota rajaustoiminnot';\n            $facets.classList.add('ais-facets__shown');\n          }\n        });\n        $button.addEventListener(\"keydown\", (e) => {\n          if (e.key === \"Enter\" || e.key === \" \") {\n            e.preventDefault();\n            $button.click();\n          }\n        });\n      },\n    },\n  ]);\n\n  instant.search.addWidgets([\n    configure({\n      hitsPerPage: instant.hitsPerPage,\n      clickAnalytics: true,\n      facetingAfterDistinct: Boolean(algolia.config.show_products),\n      maxValuesPerFacet: algolia.config.instant_search_max_values_per_facet,\n    }),\n  ]);\n\n  // Search input\n  instant.search.addWidgets([\n    searchBox({\n      container: '.ais-search-box-container',\n      placeholder: algolia.translations.searchForProduct,\n      showReset: false,\n      showSubmit: false,\n    }),\n  ]);\n\n  // Logo & clear\n  instant.search.addWidgets([\n    {\n      init: function(opts) {\n        if (!instant.poweredBy) {\n          document.querySelector('.ais-algolia-icon').style.display = 'none';\n        }\n        document\n          .querySelector('.ais-clear-input-icon')\n          .addEventListener('click', function() {\n            opts.helper.setQuery('').search();\n            var input = document.querySelector('.ais-search-box--input');\n            input.value = '';\n            input.focus();\n          });\n        var resetQuery = document.querySelector('.ais-SearchBox-reset');\n        resetQuery.ariaLabel = 'Tyhjenn\u00E4 haku';\n        resetQuery.title = 'Tyhjenn\u00E4 haku';\n        var submitButton = document.querySelector('button.ais-SearchBox-submit');\n        if (submitButton) {\n          // Remove button-specific attributes and behaviors\n          submitButton.removeAttribute('type');\n          submitButton.setAttribute('role', 'presentation');\n          submitButton.setAttribute('tabindex', '-1');\n          submitButton.setAttribute('aria-hidden', 'true');\n        }\n      },\n      render: function(opts) {\n        if (!opts.state.query) {\n          if (instant.poweredBy) {\n            document.querySelector('.ais-algolia-icon').style.display = '';\n          }\n          document.querySelector('.ais-clear-input-icon').style.display =\n            'none';\n        } else {\n          document.querySelector('.ais-clear-input-icon').style.display = '';\n          document.querySelector('.ais-algolia-icon').style.display = 'none';\n        }\n      },\n    },\n  ]);\n\n  // Stats\n  instant.search.addWidgets([\n    stats({\n      container: '.ais-stats-container',\n      templates: {\n        text: instant.templates.stats,\n      },\n    }),\n  ]);\n\n  // Sort orders\n  if (activeSortOrders.length > 1) {\n    instant.search.addWidgets([\n      sortBy({\n        container: '.ais-sort-orders-container',\n        items: instant.sortOrders,\n      }),\n    ]);\n  }\n\n  // Change display\n  instant.search.addWidgets([\n    {\n      init: function() {\n        document\n          .querySelector('.ais-search-header .ais-change-display-block')\n          .addEventListener('click', function() {\n            document\n              .querySelector(\n                '.ais-change-display-block:not(.ais-change-display-selected)'\n              )\n              .classList.add('ais-change-display-selected');\n            document\n              .querySelector(\n                '.ais-change-display-list.ais-change-display-selected'\n              )\n              .classList.remove('ais-change-display-selected');\n            document\n              .querySelector('.ais-results-as-list')\n              .classList.replace('ais-results-as-list', 'ais-results-as-block');\n          });\n        document\n          .querySelector('.ais-search-header .ais-change-display-list')\n          .addEventListener('click', function() {\n            document\n              .querySelector(\n                '.ais-change-display-list:not(.ais-change-display-selected)'\n              )\n              .classList.add('ais-change-display-selected');\n            document\n              .querySelector(\n                '.ais-change-display-block.ais-change-display-selected'\n              )\n              .classList.remove('ais-change-display-selected');\n            document\n              .querySelector('.ais-results-as-block')\n              .classList.replace('ais-results-as-block', 'ais-results-as-list');\n          });\n      },\n    },\n  ]);\n\n  // Hidden facets\n  var list = instant.facets.hidden.map(function(facet) {\n    return facet.name;\n  });\n  instant.search.addWidgets([\n    {\n      getConfiguration: function() {\n        return {\n          facets: list,\n          disjunctiveFacets: list,\n        };\n      },\n      init: function() {},\n    },\n  ]);\n\n  // Create the render function\n  var createDataAttribtues = function(refinement) {\n    return Object.keys(refinement)\n      .map(function(key) {\n        const content = algolia.helpers.fullEscapedAttribute(refinement[key]).replace(/\\\"/g, '\\'') || '';\n        return 'data-' + key + '=\"' + content + '\"';\n      })\n      .join(' ');\n  };\n\n  var renderListItem = function(item) {\n    var facet = instant.facets.list.find(function(f) {\n      return f.name === item.label;\n    });\n\n    return item.refinements\n      .map(function(refinement) {\n        if (algolia.helpers.fullEscapedAttribute(refinement.label) !== refinement.label) return '';\n        return (\n          '<li class=\"ais-current-refined-values--item\">' +\n          '<a ' + createDataAttribtues(refinement) + \n          ' class=\"ais-current-refined-values--link\"  tabindex=\"0\" role=\"button\">' +\n          '<div>' +\n          '<div class=\"ais-current-refined-values--label\">' +\n          algolia.helpers.fullEscapedAttribute(facet.title) +\n          '</div>: ' + algolia.helpers.fullEscapedAttribute(refinement.label) +\n          '</div>' +\n          '</a>' +\n          '</li>'\n        );\n      })\n      .join('');\n  };\n\n  var renderCurrentRefinements = function(renderOptions) {\n    var items = renderOptions.items;\n    var refine = renderOptions.refine;\n    var widgetParams = renderOptions.widgetParams;\n\n    // if renderListItem is empty, empty the widget container and return from function...\n    if (items.map(renderListItem).join('') === '') {\n      widgetParams.container.innerHTML = ''\n      return;\n    }\n    \n    widgetParams.container.innerHTML =\n      '<div class=\"ais-current-refined-values--header ais-facet--header ais-header\">Rajaukset</div>' +\n      '<div class=\"ais-root ais-current-refined-values ais-facet\">' +\n      '  <ul class=\"ais-current-refined-values--list\">' +\n      items.map(renderListItem).join('') +\n      '  </ul>' +\n      '</div>';\n\n    Array.prototype.slice\n      .call(\n        widgetParams.container.querySelectorAll(\n          '.ais-current-refined-values--link'\n        )\n      )\n      .forEach(function(element) {\n        element.addEventListener('click', function(event) {\n          var item = Object.keys(event.currentTarget.dataset).reduce(function(\n            acc,\n            key\n          ) {\n            var itemData = {};\n            itemData[key] = decodeURIComponent(event.currentTarget.dataset[key]);\n            return algolia.assign({}, acc, itemData);\n          },\n          {});\n\n          refine(item);\n        });\n        element.addEventListener(\"keydown\", (e) => {\n          if (e.key === \"Enter\" || e.key === \" \") {\n            e.preventDefault();\n            element.click();\n          }\n        });\n      });\n  };\n\n  // Create the custom widget\n  var customCurrentRefinements = connectCurrentRefinements(\n    renderCurrentRefinements\n  );\n\n  var hasRefinements = function(helper, facetsList) {\n    return facetsList.some(function(f) {\n      var isConjunctiveFacetRefined =\n        helper.state.isConjunctiveFacet(f.name) &&\n        helper.state.isFacetRefined(f.name);\n      var isDisjunctiveFacetRefined =\n        helper.state.isDisjunctiveFacet(f.name) &&\n        helper.state.isDisjunctiveFacetRefined(f.name);\n      var isHierarchicalFacetRefined =\n        helper.state.isHierarchicalFacet(f.name) &&\n        helper.state.isHierarchicalFacetRefined(f.name);\n\n      var numericRefinements = helper.state.getNumericRefinements(f.name);\n      var isNumericFacetRefined = Object.keys(numericRefinements).some(function(\n        operator\n      ) {\n        return numericRefinements[operator].length > 0;\n      });\n\n      return (\n        isNumericFacetRefined ||\n        isConjunctiveFacetRefined ||\n        isDisjunctiveFacetRefined ||\n        isHierarchicalFacetRefined\n      );\n    });\n  };\n\n  /**\n   * Decides whether the given `facetName` has any facet values available in\n   * the current result set by checking the available `facets`,\n   * `disjunctiveFacets` and `hierarchicalFacets`.\n   */\n  var hasFacetValues = function(resultState, facetName) {\n    var isFacetValueAvailable = resultState.facets.some(function(facet) {\n      return facet.name === facetName;\n    });\n    var isDisjunctiveFacetValueAvailable = resultState.disjunctiveFacets.some(\n      function(facet) {\n        return facet.name === facetName;\n      }\n    );\n    var isHierarchicalFacetValueAvailable = resultState.hierarchicalFacets.some(\n      function(facet) {\n        return facet.name === facetName;\n      }\n    );\n\n    return (\n      isFacetValueAvailable ||\n      isDisjunctiveFacetValueAvailable ||\n      isHierarchicalFacetValueAvailable\n    );\n  };\n\n  var customCurrentRefinementsWithPanel = panel({\n    hidden: function(options) {\n      return !hasRefinements(options.helper, instant.facets.list);\n    },\n  })(customCurrentRefinements);\n\n  var clearRefinementsWithPanel = panel({\n    hidden: function(options) {\n      return !hasRefinements(options.helper, instant.facets.list);\n    },\n  })(clearRefinements);\n\n  instant.search.addWidgets([\n    clearRefinementsWithPanel({\n      container: document.querySelector('.ais-clear-refinements-container'),\n      templates: {\n        resetLabel: algolia.translations.clearAll,\n      },\n    }),\n    customCurrentRefinementsWithPanel({\n      container: document.querySelector(\n        '.ais-current-refined-values-container'\n      ),\n    }),\n  ]);\n\n  /**\n   * Setup the facets for search.\n   * We are using a `panel` with a custom `hidden` function which will allow\n   * us to hide the parent container of the facet if there are no facet values\n   * available for that particular facet.\n   */\n  instant.facets.widgets.forEach(function(widget) {\n    var facetWithPanel = panel({\n      hidden: function(options) {\n        var hide = !hasFacetValues(options.results, widget.params.attribute);\n        var displayStyle = hide ? 'none' : '';\n\n        /**\n         * Replacing any \".\" and \"%\" in the class name with \"\\.\" and \"\\%\" so that querySelector\n         * can work as expected. \".\" is supposed to be present for named tags\n         * and metafield based facet names and \"%\" is present when the facet name has a space\n         * in it because of the encoding.\n         */\n        var parentContainerClassName = '.ais-facet-' + encodeURIComponent(\n          widget.params.attribute\n        ).replace(/\\./g, '\\\\.').replace(/\\%/g, '\\\\%');\n        var parentContainer = document.querySelector(parentContainerClassName);\n\n        if (parentContainer) {\n          parentContainer.style.display = displayStyle;\n        }\n\n        return hide;\n      },\n    })(widget.widget);\n\n    instant.search.addWidgets([facetWithPanel(widget.params)]);\n  });\n\n  // Hits\n  instant.search.addWidgets([\n    hits({\n      container: '.ais-hits-container',\n      templates: {\n        empty: instant.templates.empty,\n        item: instant.templates.product,\n      },\n      transformItems: function(products) {\n        return products.map(function(product) {\n          return algolia.assign({}, product, {\n            _distinct: instant.distinct,\n            can_order:\n              product.inventory_management !== 'shopify' ||\n              product.inventory_policy === 'continue' ||\n              product.inventory_quantity > 0,\n            translations: algolia.translations,\n            queryID: product.__queryID,\n            productPosition: product.__position,\n            index: instant.search.mainIndex.getIndexName(),\n          });\n        });\n      },\n    }),\n  ]);\n\n  // Redirect to product on click\n  instant.search.addWidgets([\n    {\n      init: function() {\n        var container = document.querySelector('.ais-hits-container');\n        container.addEventListener('click', function(e) {\n          var el = e.target;\n          var hit;\n          do {\n            if (el.matches('.ais-hit')) {\n              hit = el;\n              break;\n            }\n            el = el.parentNode;\n          } while (el && el !== container);\n          if (!hit) {\n            return;\n          }\n          var $this = hit;\n          var productHandle = $this.dataset.handle;\n          var variant_id = $this.dataset.variantId;\n          var distinct = $this.dataset.distinct;\n\n          // Construct the link we should redirect to\n          var link = '';\n\n          // If we're on a collection page and the handle is available\n          // then prefix the product link with the collection handle\n          if (collectionPageEnabled && collectionHandle) {\n            link = '/collections/' + collectionHandle;\n          }\n\n          // Add the product handle to the link\n          link = link + '/products/' + productHandle;\n\n          // Add the variant ID details to redirect to a specific\n          // variant ID if we are showing variants and not products\n          if (distinct !== 'true') {\n            link += '?variant=' + variant_id;\n          }\n\n          if (algolia.config.analytics_enabled) {\n            var clickData = {\n              index: hit.dataset.algoliaIndex,\n              eventName: 'click',\n              queryID: hit.dataset.algoliaQueryid,\n              objectIDs: [hit.dataset.algoliaObjectid],\n              positions: [Number(hit.dataset.algoliaPosition)],\n            };\n\n            // Send the click event\n            aa.clickedObjectIDsAfterSearch(clickData);\n            /**\n             * Uncomment the following function call to start storing data in\n             * local storage for conversion tracking\n             */\n            // algolia.saveForConversionTracking(clickData);\n          }\n          window.location.href = link;\n        });\n      },\n    },\n  ]);\n\n  // Add to cart\n  instant.search.addWidgets([\n    {\n      init: function() {\n        var container = document.querySelector('.ais-hits-container');\n        container.addEventListener('click', function(e) {\n          var el = e.target;\n          var cartButton;\n          do {\n            if (el.matches('.ais-hit--cart-button')) {\n              cartButton = el;\n              break;\n            }\n            el = el.parentNode;\n          } while (el && el !== container);\n          if (!cartButton) {\n            return;\n          }\n\n          e.stopPropagation();\n          var $this = cartButton;\n          var formId = $this.dataset.formId;\n\n          if (formId) {\n            document.getElementById(formId).submit();\n          }\n        });\n      },\n    },\n  ]);\n\n  // No result actions\n  instant.search.addWidgets([\n    {\n      init: function(opts) {\n        var container = document.querySelector('.ais-hits-container');\n        container.addEventListener('click', function(e) {\n          var el = e.target;\n          var clearFilters;\n          do {\n            if (el.matches('.ais-hit-empty--clear-filters')) {\n              clearFilters = el;\n              break;\n            }\n            el = el.parentNode;\n          } while (el && el !== container);\n          if (!clearFilters) {\n            return;\n          }\n\n          var helper = opts.helper;\n          helper.clearTags();\n          instant.facets.list.forEach(function(facet) {\n            helper.clearRefinements(facet.name);\n          });\n          helper.search();\n        });\n\n        container.addEventListener('click', function(e) {\n          var el = e.target;\n          var clearInput;\n          do {\n            if (el.matches('.ais-hit-empty--clear-input')) {\n              clearInput = el;\n              break;\n            }\n            el = el.parentNode;\n          } while (el && el !== container);\n          if (!clearInput) {\n            return;\n          }\n\n          opts.helper.setQuery('').search();\n          var input = document.querySelector('.ais-search-box--input');\n          input.value = '';\n          input.focus();\n        });\n      },\n    },\n  ]);\n\n  // Pagination\n  instant.search.addWidgets([\n    pagination({\n      container: '.ais-pagination-container',\n      padding: 2,\n      maxPages: 20,\n    }),\n  ]);\n\n  // Add ARIA labels to pagination links\n  instant.search.addWidgets([{\n    render: function() {\n      var nextPage = document.querySelector('.ais-Pagination-item--nextPage .ais-Pagination-link');\n      if (nextPage) {\n        nextPage.setAttribute(\"aria-label\", 'Seuraava');\n      }\n      var prevPage = document.querySelector('.ais-Pagination-item--previousPage .ais-Pagination-link');\n      if (prevPage) {\n        prevPage.setAttribute(\"aria-label\", 'Edellinen');\n      }\n      var firstPage = document.querySelector('.ais-Pagination-item--firstPage .ais-Pagination-link');\n      if (firstPage) {\n        firstPage.setAttribute(\"aria-label\", 'Ensimm\u00E4inen');\n      }\n      var lastPage = document.querySelector('.ais-Pagination-item--lastPage .ais-Pagination-link');\n      if (lastPage) {\n        lastPage.setAttribute(\"aria-label\", 'Viimeinen');\n      }\n      var sortBy = document.querySelector('.ais-sort-orders-container .ais-SortBy .ais-SortBy-select');\n      if (sortBy) {\n        sortBy.setAttribute(\"aria-label\", 'J\u00E4rjestys:');\n      }\n    }\n  }\n  ]);\n\n  // Main\n  instant.search.start();\n\n  algolia.contentHide.parentNode.removeChild(algolia.contentHide);\n})(window.algoliaShopify);\n"],
  "mappings": "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",
  "names": ["collectionHandle", "sortBy"]
}
