{
  "version": 3,
  "sources": ["/cdn/shop/t/254/assets/algolia_autocomplete.js?enable_js_minification=1"],
  "sourcesContent": ["(function(algolia) {\n  'use strict';\n  if (!algolia.config.autocomplete_enabled) return;\n\n  var algoliasearch = algolia.externals.algoliasearch;\n  var autocomplete = algolia.externals.autocomplete;\n  var aa = algolia.externals.aa;\n\n  var client = algoliasearch(\n    algolia.config.app_id,\n    algolia.config.search_api_key\n  );\n\n  function createMultiQuerySource() {\n    let queue = [];\n    let lastResults = [];\n    let lastSearch = Promise.resolve();\n\n    function requestSearch(index) {\n      return Promise.resolve()\n        .then(() => {\n          if (queue.length) {\n            lastSearch = client.search(queue);\n            queue = [];\n          }\n          return lastSearch;\n        })\n        .then((result) => {\n          if (result) {\n            lastResults = result.results;\n          }\n          return lastResults[index];\n        });\n    }\n\n  return function multiQuerySource(singleIndex, params, extendHits = null) {\n      return function search(query, cb) {\n        const index =\n          queue.push({ indexName: singleIndex.indexName, query, params }) - 1;\n        requestSearch(index)\n        .then((res) => {\n          var extendedHits = [];\n          if (extendHits) {\n            extendedHits = extendHits(res);\n          } else {\n            extendedHits = res.hits\n          }\n          return cb(extendedHits, res);\n        })\n          .catch((err) => cb([], err));\n      };\n    };\n  }\n\n  var multiQuerySource = createMultiQuerySource();\n\n  function index(name) {\n    return client.initIndex('' + algolia.config.index_prefix + name);\n  }\n\n  function autocompleteSection(config, section) {\n    var params = config[section];\n\n    var templates = {\n      empty: function displayEmptyResultSet(props) {\n        return algolia.render(\n          params.templates.empty,\n          algolia.assign({}, props, { translations: algolia.translations })\n        );\n      },\n      suggestion: function displaySuggestion(hit) {\n        return algolia.render(\n          params.templates.hit,\n          algolia.assign({ _distinct: params.distinct }, hit, {\n            translations: algolia.translations,\n          })\n        );\n      },\n    };\n\n    if (params.templates.footer) {\n      templates.footer = function displayFooter(props, content) {\n        if (content.nbHits <= params.hitsPerPage) return null;\n        if (!algolia.config.instant_search_enabled) return null;\n\n        return algolia.render(params.templates.footer, {\n          query: props.query,\n          nbHits: content.nbHits,\n          translations: algolia.translations,\n          helpers: algolia.helpers,\n        });\n      };\n    }\n\n    // Filters for stock policy\n    var stockPolicyFilter = null;\n\n    /**\n     * Filters for stock policy are valid only if:\n     * - stock policy has been defined, AND\n     * - we are targeting products search index\n     */\n    if (algolia.config.stock_policy && section === 'products') {\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\n    var searchOpts = {\n      clickAnalytics: true,\n      hitsPerPage: params.hitsPerPage,\n      highlightPreTag: '<span class=\"aa-highlight\">',\n      highlightPostTag: '</span>',\n    };\n    if (params.distinct) {\n      searchOpts.distinct = true;\n    }\n\n    // Add the stock policy filter if applicable\n    if (stockPolicyFilter) {\n      searchOpts.filters = stockPolicyFilter;\n    }\n\n    function extendHits(answer) {\n      return answer.hits.map(function(hit, i) {\n        return algolia.assign({}, hit, {\n          _position: i + 1,\n          _queryID: answer.queryID,\n          _index: algolia.config.index_prefix + section,\n        });\n      });\n    };\n\n    return {\n      name: section,\n      source: multiQuerySource(index(section), searchOpts, extendHits),\n      displayKey: 'title',\n      templates: templates,\n    };\n  }\n\n  function readjust($this, data) {\n    if (!data) return;\n    var $node = data.$node.get(0);\n    var $dropdown = data.dropdown.$menu.get(0);\n\n    var width = $this.offsetWidth;\n    var vpWidth = document.body.clientWidth;\n    var rect = $this.getBoundingClientRect();\n    var offset = {\n      top: rect.top + document.body.scrollTop,\n      left: rect.left + document.body.scrollLeft,\n    };\n    var left = offset.left;\n    var right = vpWidth - width - left;\n    var top = offset.top;\n    var height = $this.offsetHeight;\n\n    var align = left < right ? 'left' : 'right';\n    var dist = Math.min(left, right);\n\n    // For small centered inputs, take half the screen\n    if (4 * dist > vpWidth) {\n      align = 'left';\n      dist = Math.round(vpWidth / 4);\n    }\n\n    var newWidth = vpWidth - 2 * dist;\n\n    // For big inputs, follow the input\n    if (width >= 600) {\n      align = 'left';\n      dist = left;\n      newWidth = width;\n    }\n\n    $node.style.left = '';\n    $node.style.right = '';\n    $node.style.top = top + height + 8 + 'px';\n    $node.style[align] = dist + 'px';\n    $node.style.width = newWidth + 'px';\n\n    var suffix = 'lg';\n    if (newWidth < 300) suffix = 'xs';\n    else if (newWidth < 600) suffix = 'sm';\n    else if (newWidth < 900) suffix = 'md';\n\n    $dropdown.classList.remove(\n      'aa-dropdown-menu-size-xs',\n      'aa-dropdown-menu-size-sm',\n      'aa-dropdown-menu-size-md',\n      'aa-dropdown-menu-size-lg',\n      'aa-dropdown-menu-size-lg'\n    );\n    $dropdown.classList.add('aa-dropdown-menu-size-' + suffix);\n  }\n\n  var config = {\n    articles: {\n      hitsPerPage: algolia.config.articles_autocomplete_hits_per_page,\n      index: index('articles'),\n      templates: {\n        empty: algolia.compileTemplate('autocomplete_articles_empty'),\n        hit: algolia.compileTemplate('autocomplete_article'),\n      },\n    },\n    pages: {\n      hitsPerPage: algolia.config.pages_autocomplete_hits_per_page,\n      index: index('pages'),\n      templates: {\n        empty: algolia.compileTemplate('autocomplete_pages_empty'),\n        hit: algolia.compileTemplate('autocomplete_page'),\n      },\n    },\n    collections: {\n      hitsPerPage: algolia.config.collections_autocomplete_hits_per_page,\n      index: index('collections'),\n      templates: {\n        empty: algolia.compileTemplate('autocomplete_collections_empty'),\n        hit: algolia.compileTemplate('autocomplete_collection'),\n      },\n    },\n    products: {\n      distinct: algolia.config.show_products,\n      hitsPerPage: algolia.config.products_autocomplete_hits_per_page,\n      index: index('products'),\n      templates: {\n        empty: algolia.compileTemplate('autocomplete_products_empty'),\n        footer: algolia.compileTemplate('autocomplete_footer'),\n        hit: algolia.compileTemplate('autocomplete_product'),\n      },\n    },\n  };\n\n  if (algolia.config.powered_by) {\n    // eslint-disable-next-line no-console\n    console.log('Algolia: Autocomplete');\n  }\n\n  algolia.appendStyle(\n    algolia.render(algolia.compileTemplate('autocomplete.css'), {\n      colors: algolia.config.colors,\n    })\n  );\n\n  var autocompleteInstance = autocomplete(\n    algolia.config.input_selector + ', .algolia-shopify-autocomplete',\n    {\n      debug: algolia.config.autocomplete_debug,\n      hint: false,\n      appendTo: 'body',\n      templates: {\n        dropdownMenu: algolia.render(algolia.compileTemplate('autocomplete'), {\n          storeName: algolia.storeName,\n          with: {\n            articles: algolia.config.index_articles,\n            collections: algolia.config.index_collections,\n            pages: algolia.config.index_pages,\n            footer: algolia.config.instant_search_enabled,\n            poweredBy: algolia.config.powered_by,\n            products: algolia.config.index_products,\n          },\n        }),\n        empty: '<div></div>',\n      },\n    },\n    [\n      algolia.config.index_collections &&\n        autocompleteSection(config, 'collections'),\n      algolia.config.index_articles && autocompleteSection(config, 'articles'),\n      algolia.config.index_pages && autocompleteSection(config, 'pages'),\n      algolia.config.index_products && autocompleteSection(config, 'products'),\n    ].filter(function(x) {\n      return Boolean(x);\n    })\n  );\n\n  // Hack to handle buggy onclick event on iOS\n  autocompleteInstance.each(function(i) {\n    var data = autocompleteInstance.eq(i).data('aaAutocomplete');\n    var suggestionClass =\n      '.' +\n      data.dropdown.cssClasses.prefix +\n      '-' +\n      data.dropdown.cssClasses.suggestion;\n    var onSuggestionClick = data.dropdown._onSuggestionClick.bind(\n      data.dropdown\n    );\n\n    var touchmoved;\n    data.dropdown.$menu\n      .on('touchend', suggestionClass, function(e) {\n        if (touchmoved === false) {\n          e.preventDefault();\n          e.stopPropagation();\n          onSuggestionClick.apply(this, arguments);\n        }\n      })\n      .on('touchmove', function() {\n        touchmoved = true;\n      })\n      .on('touchstart', function() {\n        touchmoved = false;\n      });\n  });\n\n  // Event listeners\n  autocompleteInstance.on('autocomplete:selected', function(obj, datum, name) {\n    if (algolia.config.analytics_enabled) {\n      var clickData = {\n        index: datum._index,\n        eventName: 'click',\n        queryID: datum._queryID,\n        objectIDs: [datum.objectID],\n        positions: [datum._position],\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    switch (name) {\n      case 'products': {\n        var addVariantId =\n          !algolia.config.show_products && datum.objectID !== datum.id;\n        window.location.href =\n          '/' +\n          name +\n          '/' +\n          datum.handle +\n          (addVariantId ? '?variant=' + datum.objectID : '');\n        break;\n      }\n      case 'articles':\n        window.location.href =\n          '/blogs/' + datum.blog.handle + '/' + datum.handle;\n        break;\n      default:\n        window.location.href = '/' + name + '/' + datum.handle;\n    }\n  });\n\n  autocompleteInstance.on('autocomplete:redrawn', function() {\n    var that = this;\n    var i;\n    autocompleteInstance.each(function(j, item) {\n      if (item === that) {\n        i = j;\n        return false;\n      }\n      return true;\n    });\n    readjust(this, autocompleteInstance.eq(i).data('aaAutocomplete'));\n  });\n\n  window.addEventListener('resize', function() {\n    autocompleteInstance.each(function(i) {\n      readjust(this, autocompleteInstance.eq(i).data('aaAutocomplete'));\n    });\n  });\n})(window.algoliaShopify);\n"],
  "mappings": "CAAC,SAAS,QAAS,CACjB,aACA,GAAI,CAAC,QAAQ,OAAO,qBAAsB,OAE1C,IAAI,cAAgB,QAAQ,UAAU,cAClC,aAAe,QAAQ,UAAU,aACjC,GAAK,QAAQ,UAAU,GAEvB,OAAS,cACX,QAAQ,OAAO,OACf,QAAQ,OAAO,cACjB,EAEA,SAAS,wBAAyB,CAChC,IAAI,MAAQ,CAAC,EACT,YAAc,CAAC,EACf,WAAa,QAAQ,QAAQ,EAEjC,SAAS,cAAcA,OAAO,CAC5B,OAAO,QAAQ,QAAQ,EACpB,KAAK,KACA,MAAM,SACR,WAAa,OAAO,OAAO,KAAK,EAChC,MAAQ,CAAC,GAEJ,WACR,EACA,KAAM,SACD,SACF,YAAc,OAAO,SAEhB,YAAYA,MAAK,EACzB,CACL,CAEF,OAAO,SAA0B,YAAa,OAAQ,WAAa,KAAM,CACrE,OAAO,SAAgB,MAAO,GAAI,CAChC,MAAMA,OACJ,MAAM,KAAK,CAAE,UAAW,YAAY,UAAW,MAAO,MAAO,CAAC,EAAI,EACpE,cAAcA,MAAK,EAClB,KAAM,KAAQ,CACb,IAAI,aAAe,CAAC,EACpB,OAAI,WACF,aAAe,WAAW,GAAG,EAE7B,aAAe,IAAI,KAEd,GAAG,aAAc,GAAG,CAC7B,CAAC,EACE,MAAO,KAAQ,GAAG,CAAC,EAAG,GAAG,CAAC,CAC/B,CACF,CACF,CAEA,IAAI,iBAAmB,uBAAuB,EAE9C,SAAS,MAAM,KAAM,CACnB,OAAO,OAAO,UAAU,GAAK,QAAQ,OAAO,aAAe,IAAI,CACjE,CAEA,SAAS,oBAAoBC,QAAQ,QAAS,CAC5C,IAAI,OAASA,QAAO,OAAO,EAEvB,UAAY,CACd,MAAO,SAA+B,MAAO,CAC3C,OAAO,QAAQ,OACb,OAAO,UAAU,MACjB,QAAQ,OAAO,CAAC,EAAG,MAAO,CAAE,aAAc,QAAQ,YAAa,CAAC,CAClE,CACF,EACA,WAAY,SAA2B,IAAK,CAC1C,OAAO,QAAQ,OACb,OAAO,UAAU,IACjB,QAAQ,OAAO,CAAE,UAAW,OAAO,QAAS,EAAG,IAAK,CAClD,aAAc,QAAQ,YACxB,CAAC,CACH,CACF,CACF,EAEI,OAAO,UAAU,SACnB,UAAU,OAAS,SAAuB,MAAO,QAAS,CAExD,OADI,QAAQ,QAAU,OAAO,aACzB,CAAC,QAAQ,OAAO,uBAA+B,KAE5C,QAAQ,OAAO,OAAO,UAAU,OAAQ,CAC7C,MAAO,MAAM,MACb,OAAQ,QAAQ,OAChB,aAAc,QAAQ,aACtB,QAAS,QAAQ,OACnB,CAAC,CACH,GAIF,IAAI,kBAAoB,KAOpB,QAAQ,OAAO,cAAgB,UAAY,aACzC,QAAQ,OAAO,eAAiB,UAKzB,QAAQ,OAAO,eAAiB,OAEzC,kBAAoB,yBACX,QAAQ,OAAO,eAAiB,aAMzC,kBAAoB,8BAIxB,IAAI,WAAa,CACf,eAAgB,GAChB,YAAa,OAAO,YACpB,gBAAiB,8BACjB,iBAAkB,SACpB,EACI,OAAO,WACT,WAAW,SAAW,IAIpB,oBACF,WAAW,QAAU,mBAGvB,SAAS,WAAW,OAAQ,CAC1B,OAAO,OAAO,KAAK,IAAI,SAAS,IAAK,EAAG,CACtC,OAAO,QAAQ,OAAO,CAAC,EAAG,IAAK,CAC7B,UAAW,EAAI,EACf,SAAU,OAAO,QACjB,OAAQ,QAAQ,OAAO,aAAe,OACxC,CAAC,CACH,CAAC,CACH,CAEA,MAAO,CACL,KAAM,QACN,OAAQ,iBAAiB,MAAM,OAAO,EAAG,WAAY,UAAU,EAC/D,WAAY,QACZ,SACF,CACF,CAEA,SAAS,SAAS,MAAO,KAAM,CAC7B,GAAK,KACL,KAAI,MAAQ,KAAK,MAAM,IAAI,CAAC,EACxB,UAAY,KAAK,SAAS,MAAM,IAAI,CAAC,EAErC,MAAQ,MAAM,YACd,QAAU,SAAS,KAAK,YACxB,KAAO,MAAM,sBAAsB,EACnC,OAAS,CACX,IAAK,KAAK,IAAM,SAAS,KAAK,UAC9B,KAAM,KAAK,KAAO,SAAS,KAAK,UAClC,EACI,KAAO,OAAO,KACd,MAAQ,QAAU,MAAQ,KAC1B,IAAM,OAAO,IACb,OAAS,MAAM,aAEf,MAAQ,KAAO,MAAQ,OAAS,QAChC,KAAO,KAAK,IAAI,KAAM,KAAK,EAG3B,EAAI,KAAO,UACb,MAAQ,OACR,KAAO,KAAK,MAAM,QAAU,CAAC,GAG/B,IAAI,SAAW,QAAU,EAAI,KAGzB,OAAS,MACX,MAAQ,OACR,KAAO,KACP,SAAW,OAGb,MAAM,MAAM,KAAO,GACnB,MAAM,MAAM,MAAQ,GACpB,MAAM,MAAM,IAAM,IAAM,OAAS,EAAI,KACrC,MAAM,MAAM,KAAK,EAAI,KAAO,KAC5B,MAAM,MAAM,MAAQ,SAAW,KAE/B,IAAI,OAAS,KACT,SAAW,IAAK,OAAS,KACpB,SAAW,IAAK,OAAS,KACzB,SAAW,MAAK,OAAS,MAElC,UAAU,UAAU,OAClB,2BACA,2BACA,2BACA,2BACA,0BACF,EACA,UAAU,UAAU,IAAI,yBAA2B,MAAM,EAC3D,CAEA,IAAI,OAAS,CACX,SAAU,CACR,YAAa,QAAQ,OAAO,oCAC5B,MAAO,MAAM,UAAU,EACvB,UAAW,CACT,MAAO,QAAQ,gBAAgB,6BAA6B,EAC5D,IAAK,QAAQ,gBAAgB,sBAAsB,CACrD,CACF,EACA,MAAO,CACL,YAAa,QAAQ,OAAO,iCAC5B,MAAO,MAAM,OAAO,EACpB,UAAW,CACT,MAAO,QAAQ,gBAAgB,0BAA0B,EACzD,IAAK,QAAQ,gBAAgB,mBAAmB,CAClD,CACF,EACA,YAAa,CACX,YAAa,QAAQ,OAAO,uCAC5B,MAAO,MAAM,aAAa,EAC1B,UAAW,CACT,MAAO,QAAQ,gBAAgB,gCAAgC,EAC/D,IAAK,QAAQ,gBAAgB,yBAAyB,CACxD,CACF,EACA,SAAU,CACR,SAAU,QAAQ,OAAO,cACzB,YAAa,QAAQ,OAAO,oCAC5B,MAAO,MAAM,UAAU,EACvB,UAAW,CACT,MAAO,QAAQ,gBAAgB,6BAA6B,EAC5D,OAAQ,QAAQ,gBAAgB,qBAAqB,EACrD,IAAK,QAAQ,gBAAgB,sBAAsB,CACrD,CACF,CACF,EAEI,QAAQ,OAAO,YAEjB,QAAQ,IAAI,uBAAuB,EAGrC,QAAQ,YACN,QAAQ,OAAO,QAAQ,gBAAgB,kBAAkB,EAAG,CAC1D,OAAQ,QAAQ,OAAO,MACzB,CAAC,CACH,EAEA,IAAI,qBAAuB,aACzB,QAAQ,OAAO,eAAiB,kCAChC,CACE,MAAO,QAAQ,OAAO,mBACtB,KAAM,GACN,SAAU,OACV,UAAW,CACT,aAAc,QAAQ,OAAO,QAAQ,gBAAgB,cAAc,EAAG,CACpE,UAAW,QAAQ,UACnB,KAAM,CACJ,SAAU,QAAQ,OAAO,eACzB,YAAa,QAAQ,OAAO,kBAC5B,MAAO,QAAQ,OAAO,YACtB,OAAQ,QAAQ,OAAO,uBACvB,UAAW,QAAQ,OAAO,WAC1B,SAAU,QAAQ,OAAO,cAC3B,CACF,CAAC,EACD,MAAO,aACT,CACF,EACA,CACE,QAAQ,OAAO,mBACb,oBAAoB,OAAQ,aAAa,EAC3C,QAAQ,OAAO,gBAAkB,oBAAoB,OAAQ,UAAU,EACvE,QAAQ,OAAO,aAAe,oBAAoB,OAAQ,OAAO,EACjE,QAAQ,OAAO,gBAAkB,oBAAoB,OAAQ,UAAU,CACzE,EAAE,OAAO,SAAS,EAAG,CACnB,MAAO,EAAQ,CACjB,CAAC,CACH,EAGA,qBAAqB,KAAK,SAAS,EAAG,CACpC,IAAI,KAAO,qBAAqB,GAAG,CAAC,EAAE,KAAK,gBAAgB,EACvD,gBACF,IACA,KAAK,SAAS,WAAW,OACzB,IACA,KAAK,SAAS,WAAW,WACvB,kBAAoB,KAAK,SAAS,mBAAmB,KACvD,KAAK,QACP,EAEI,WACJ,KAAK,SAAS,MACX,GAAG,WAAY,gBAAiB,SAAS,EAAG,CACvC,aAAe,KACjB,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,kBAAkB,MAAM,KAAM,SAAS,EAE3C,CAAC,EACA,GAAG,YAAa,UAAW,CAC1B,WAAa,EACf,CAAC,EACA,GAAG,aAAc,UAAW,CAC3B,WAAa,EACf,CAAC,CACL,CAAC,EAGD,qBAAqB,GAAG,wBAAyB,SAAS,IAAK,MAAO,KAAM,CAC1E,GAAI,QAAQ,OAAO,kBAAmB,CACpC,IAAI,UAAY,CACd,MAAO,MAAM,OACb,UAAW,QACX,QAAS,MAAM,SACf,UAAW,CAAC,MAAM,QAAQ,EAC1B,UAAW,CAAC,MAAM,SAAS,CAC7B,EAGA,GAAG,4BAA4B,SAAS,CAM1C,CACA,OAAQ,KAAM,CACZ,IAAK,WAAY,CACf,IAAI,aACF,CAAC,QAAQ,OAAO,eAAiB,MAAM,WAAa,MAAM,GAC5D,OAAO,SAAS,KACd,IACA,KACA,IACA,MAAM,QACL,aAAe,YAAc,MAAM,SAAW,IACjD,KACF,CACA,IAAK,WACH,OAAO,SAAS,KACd,UAAY,MAAM,KAAK,OAAS,IAAM,MAAM,OAC9C,MACF,QACE,OAAO,SAAS,KAAO,IAAM,KAAO,IAAM,MAAM,MACpD,CACF,CAAC,EAED,qBAAqB,GAAG,uBAAwB,UAAW,CACzD,IAAI,KAAO,KACP,EACJ,qBAAqB,KAAK,SAAS,EAAG,KAAM,CAC1C,OAAI,OAAS,MACX,EAAI,EACG,IAEF,EACT,CAAC,EACD,SAAS,KAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAClE,CAAC,EAED,OAAO,iBAAiB,SAAU,UAAW,CAC3C,qBAAqB,KAAK,SAAS,EAAG,CACpC,SAAS,KAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAClE,CAAC,CACH,CAAC,CACH,GAAG,OAAO,cAAc",
  "names": ["index", "config"]
}
