{
  "version": 3,
  "sources": ["/cdn/shop/t/328/assets/search-drawer.js?q=%24%7Bsuggestion.replace%28%2F%28%3C%28%5B%5E%3E%5D+%29%3E%29%2Fgi%2C"],
  "sourcesContent": ["/* eslint-disable import/no-unresolved */\nimport {\n  KlevuConfig,\n  KlevuFetch,\n  suggestions,\n} from 'https://cdn.skypack.dev/pin/@klevu/core@v1.1.5-0q1n6dBIy9DgOZifPmpX/mode=imports,min/optimized/@klevu/core.js'\n\n/* eslint-enable import/no-unresolved */\nconst { debounce, trapFocus } = window.BAO.Utils\n\nconst config = {\n  apiKey: `${window.theme.klevu.apiKey}`,\n  url: `//${window.theme.klevu.url}/cs/v2/search`,\n}\n\nKlevuConfig.init(config)\n\nclass SearchDrawer extends window.BAO.CustomElement() {\n  connectedCallback () {\n    super.connectedCallback()\n\n    this.isTicking = false\n\n    this.load()\n  }\n\n  setupListeners () {\n    super.setupListeners()\n\n    this.requestTick = this.requestTick.bind(this)\n    this.updateEl = this.updateEl.bind(this)\n    this.onResize = this.onResize.bind(this)\n\n    window.addEventListener('resize', this.onResize, { passive: true })\n\n    this.listeners.add(document, 'drawerOpen', this.onDrawerOpen.bind(this))\n\n    this.listeners.add(\n      this.els.searchField.element,\n      'input',\n      debounce(this.onSearchType.bind(this), 100),\n    )\n\n    this.listeners.add(\n      this.els.filterTrigger.element,\n      'click',\n      this.onFilterTriggerClick.bind(this),\n    )\n\n    this.listeners.add(\n      this.els.viewTrigger.element,\n      'click',\n      this.onViewTriggerClick.bind(this),\n    )\n\n    if (this.els.imageLink?.exists) {\n      this.listeners.add(\n        this.els.imageLink.element,\n        'click',\n        this.onImageLinkClick.bind(this),\n      )\n    }\n  }\n\n  onResize () {\n    this.requestTick()\n  }\n\n  requestTick () {\n    if (!this.isTicking) requestAnimationFrame(this.updateEl)\n\n    this.isTicking = true\n  }\n\n  updateEl () {\n    this.isTicking = false\n\n    this.measureDrawerWidth()\n  }\n\n  measureDrawerWidth () {\n    setTimeout(() => {\n      if (!this.parentDrawer.classList.contains(this.drawerActiveClass)) return\n\n      document.documentElement.style.setProperty(\n        '--SearchDrawer_ColumnWidth',\n        `${this.offsetWidth}px`,\n      )\n    }, 1000)\n  }\n\n  onSuggestionClick (e) {\n    e.preventDefault()\n\n    this.loadAutoSuggestions(e.target.dataset.content)\n  }\n\n  load () {\n    const queryParams = new URLSearchParams(window.location.search)\n\n    if (queryParams.has('q')) {\n      document\n        .querySelector('.drw-Search_Loader')\n        .setAttribute('aria-hidden', false)\n\n      this.loadAutoSuggestions(queryParams.get('q'))\n    }\n  }\n\n  async loadAutoSuggestions (term) {\n    const result = await KlevuFetch(suggestions(term))\n\n    this.suggestions =\n      result.suggestionsById('suggestions')?.suggestions.map(i => i.suggest) ??\n      []\n\n    this.els.suggestionWrapper.element.setAttribute(\n      'aria-hidden',\n      this.suggestions.length === 0,\n    )\n\n    const map = this.suggestions\n      .map(suggestion => {\n        return `<li tabindex=\"-1\"><a target=\"_self\" href=\"?q=${suggestion.replace(\n          /(<([^>]+)>)/gi,\n          '',\n        )}\" data-content=\"${suggestion.replace(\n          /(<([^>]+)>)/gi,\n          '',\n        )}\" class=\"klevu-track-click\" data-search-drawer-el=\"suggestion\">${suggestion}</a></li>`\n      })\n      .join('')\n\n    this.els.suggestionList.element.innerHTML = map\n\n    document\n      .querySelectorAll('[data-search-drawer-el=\"suggestion\"]')\n      .forEach(el => {\n        this.listeners.add(el, 'click', this.onSuggestionClick.bind(this))\n      })\n  }\n\n  onSearchType (e) {\n    this.loadAutoSuggestions(e.target.value)\n  }\n\n  onViewTriggerClick () {\n    if (document.querySelector('.drw-Drawer-search')) {\n      document\n        .querySelector('.drw-Drawer-search')\n        .classList.toggle('drw-Drawer-singleProducts')\n    }\n  }\n\n  onImageLinkClick () {\n    window.dataLayer.push({\n      event: 'searchImageClicked',\n    })\n  }\n\n  onFilterTriggerClick () {\n    this.toggleFiltersDrawer()\n    this.focusFiltersDrawer()\n    this.handleFiltersDrawerClose()\n    this.handleFilterDrawerFocus()\n  }\n\n  toggleFiltersDrawer () {\n    // Open filters drawer\n    const searchDrawer = document.querySelector('.drw-Drawer-search')\n    searchDrawer?.classList.toggle('drw-Drawer-filtersOpen')\n  }\n\n  focusFiltersDrawer () {\n    // Apply focus to filters drawer\n    const filtersDrawer = document.querySelector('.kuFilters')\n    if (!filtersDrawer) return\n    filtersDrawer.focus()\n    trapFocus(filtersDrawer)\n  }\n\n  handleFiltersDrawerClose () {\n    const searchDrawer = document.querySelector('.drw-Drawer-search')\n    if (!searchDrawer) return\n\n    const handlefiltersDrawerCloseClick = e => {\n      // If element is close button\n      if (!e.target.matches('[data-close-ku-filters]')) return\n\n      // Refocus search drawer\n      searchDrawer.focus()\n      trapFocus(searchDrawer)\n\n      // Remove event listener\n      document.removeEventListener('click', handlefiltersDrawerCloseClick)\n    }\n\n    document.addEventListener('click', handlefiltersDrawerCloseClick)\n  }\n\n  handleFilterDrawerFocus () {\n    const filtersDrawer = document.querySelector('.kuFilters')\n    if (!filtersDrawer) return\n\n    const handleOptionClick = e => {\n      // If the element is an option, the filter button, or the clear all button...\n      if (\n        !e.target.matches(\n          '.kuFilters :is(.klevuFilterOption, .kuFiltersSelectedFilterButton, .kuFilterTagClearAllQuick)',\n        )\n      ) {\n        return\n      }\n\n      // Remove event listener\n      filtersDrawer.removeEventListener('click', handleOptionClick)\n\n      // Wait for elements to reload, refocus and re-run this method to re-apply event listener\n      window.setTimeout(() => {\n        this.focusFiltersDrawer()\n        this.handleFilterDrawerFocus()\n      }, 1000)\n    }\n\n    filtersDrawer.addEventListener('click', handleOptionClick)\n  }\n\n  onDrawerOpen (event) {\n    if (event.detail.key !== 'search') return\n\n    this.measureDrawerWidth()\n\n    const interval = setInterval(() => {\n      if (this.els.searchField.element === document.activeElement) {\n        clearInterval(interval)\n      }\n\n      this.els.searchField.element.focus()\n    }, 100)\n  }\n\n  get parentDrawer () {\n    return this.externalEls['parent-drawer']?.element\n  }\n\n  get drawerActiveClass () {\n    return `drw-Drawer-active`\n  }\n}\n\nif (!customElements.get('search-drawer')) {\n  customElements.define('search-drawer', SearchDrawer)\n}\n"],
  "mappings": "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",
  "names": []
}
