{"version":3,"sources":["webpack:///./src/js/modules/legacy/complexEvents.js","webpack:///./src/js/components/dropdown.js"],"names":["Module","this","dom","dropdown","el","querySelector","Dropdown","on","handleOptionChange","bind","e","window","location","href","target","value","Component","options","style","dataset","search","searchTimeout","buildDropdown","document","addEventListener","handleClickOutside","handleOptionSelect","trigger","handleTriggerClick","handleTriggerKeydown","parentNode","hideDropdownList","list","childNodes","forEach","item","selectItem","event","callback","Event","createEvent","initEvent","dispatchEvent","wrapper","contains","innerHTML","getPlaceholder","option","setAttribute","isDevice","getAttribute","showDropdownList","key","which","keyCode","activeItem","preventDefault","stopPropagation","nextElement","previousElementSibling","focusItem","focusLast","nextElementSibling","focusFirst","findItemToFocus","character","String","fromCharCode","trim","items","querySelectorAll","clearTimeout","find","textContent","innerText","toLowerCase","startsWith","setTimeout","element","removeAttribute","defocusItem","scrollHeight","clientHeight","scrollBottom","scrollTop","elementBottom","offsetTop","offsetHeight","firstItem","length","classList","add","open","duration","close","remove","placeholder","selectedOptionLabel","listId","uuidv4","createElement","insertBefore","appendChild","label","id","map","text","join","nextSibling","parent","removeChild","destroy","setupDefaults","addListeners"],"mappings":"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","file":"38.eae7a997628ab35f9c5e.js","sourcesContent":["import { Component } from '@verndale/core';\nimport Dropdown from '../../components/dropdown';\n\nclass Module extends Component {\n  setupDefaults() {\n    this.dom = {\n      dropdown: this.el.querySelector('.mobile_tab_dropdown')\n    };\n\n    this.dropdown = new Dropdown(this.dom.dropdown);\n  }\n\n  addListeners() {\n    this.dropdown.on('option', this.handleOptionChange.bind(this));\n  }\n\n  handleOptionChange(e) {\n    window.location.href = e.target.value;\n  }\n}\n\nexport default Module;\n","import { Component } from '@verndale/core';\nimport { isDevice, open, close } from '../helpers';\nimport { v4 as uuidv4 } from 'uuid';\n\nclass Module extends Component {\n  setupDefaults() {\n    this.options = [...this.el];\n    this.style = this.el.dataset.style;\n    this.search = '';\n    this.searchTimeout = null;\n\n    this.buildDropdown();\n  }\n\n  addListeners() {\n    document.addEventListener('click', this.handleClickOutside.bind(this));\n    this.el.addEventListener('change', this.handleOptionSelect.bind(this));\n    this.dom.trigger.addEventListener(\n      'click',\n      this.handleTriggerClick.bind(this)\n    );\n    this.dom.trigger.addEventListener(\n      'keydown',\n      this.handleTriggerKeydown.bind(this)\n    );\n    this.dom.trigger.parentNode.addEventListener(\n      'blur',\n      this.hideDropdownList.bind(this)\n    );\n    this.dom.list.childNodes.forEach(item => {\n      item.addEventListener('click', () => this.selectItem(item));\n    });\n  }\n\n  on(event, callback) {\n    this.el.addEventListener(event, callback);\n  }\n\n  setValue(value) {\n    let event;\n\n    if (typeof Event === 'function') {\n      event = new Event('change');\n    } else {\n      event = document.createEvent('Event');\n      event.initEvent('change', true, true);\n    }\n\n    this.el.value = value;\n    this.el.dispatchEvent(event);\n  }\n\n  getValue() {\n    return this.el.value;\n  }\n\n  handleClickOutside(e) {\n    if (this.dom.wrapper !== e.target && !this.dom.wrapper.contains(e.target)) {\n      this.hideDropdownList();\n    }\n  }\n\n  handleOptionSelect() {\n    let event;\n\n    if (typeof Event === 'function') {\n      event = new Event('option');\n    } else {\n      event = document.createEvent('Event');\n      event.initEvent('option', true, true);\n    }\n\n    this.dom.trigger.innerHTML = this.getPlaceholder(this.el.value);\n\n    this.options.forEach(option => {\n      if (option.value === this.el.value) {\n        option.setAttribute('aria-selected', true);\n      } else {\n        option.setAttribute('aria-selected', false);\n      }\n    });\n\n    this.dom.list.childNodes.forEach(item => {\n      if (item.dataset.value === this.el.value) {\n        item.setAttribute('aria-selected', true);\n      } else {\n        item.setAttribute('aria-selected', false);\n      }\n    });\n\n    this.el.dispatchEvent(event);\n  }\n\n  handleTriggerClick() {\n    if (isDevice()) {\n      return;\n    }\n\n    if (!this.dom.trigger.getAttribute('aria-expanded')) {\n      this.showDropdownList();\n    } else {\n      this.hideDropdownList();\n    }\n  }\n\n  handleTriggerKeydown(e) {\n    if (isDevice()) return;\n\n    const key = e.which || e.keyCode;\n\n    switch (key) {\n      case 13: // ENTER\n        if (this.dom.trigger.getAttribute('aria-expanded')) {\n          if (this.activeItem) {\n            e.preventDefault();\n            e.stopPropagation();\n            this.selectItem(this.activeItem);\n          }\n        }\n        break;\n      case 38: // UP\n        e.preventDefault();\n        if (this.dom.trigger.getAttribute('aria-expanded') !== 'true') {\n          this.showDropdownList();\n        }\n\n        if (this.activeItem) {\n          const nextElement = this.activeItem.previousElementSibling;\n\n          if (nextElement) {\n            this.focusItem(nextElement);\n          } else {\n            this.focusLast();\n          }\n        } else {\n          this.focusLast();\n        }\n\n        break;\n      case 40: // DOWN\n        e.preventDefault();\n        if (this.dom.trigger.getAttribute('aria-expanded') !== 'true') {\n          this.showDropdownList();\n        }\n\n        if (this.activeItem) {\n          const nextElement = this.activeItem.nextElementSibling;\n\n          if (nextElement) {\n            this.focusItem(nextElement);\n          } else {\n            this.focusFirst();\n          }\n        } else {\n          this.focusFirst();\n        }\n\n        break;\n      case 36:\n        e.preventDefault();\n        this.focusFirst();\n        break;\n      case 35:\n        e.preventDefault();\n        this.focusLast();\n        break;\n      default:\n        this.findItemToFocus(key);\n        break;\n    }\n  }\n\n  findItemToFocus(key) {\n    const character = String.fromCharCode(key).trim();\n    const items = this.dom.list.querySelectorAll('[role=\"option\"]');\n\n    if (!character) return;\n\n    if (!this.dom.trigger.getAttribute('aria-expanded')) {\n      this.showDropdownList();\n    }\n\n    if (this.searchTimeout) {\n      clearTimeout(this.searchTimeout);\n    }\n\n    this.search += character;\n\n    [...items].find(option => {\n      const label = option.textContent || option.innerText || '';\n\n      if (label.trim().toLowerCase().startsWith(this.search.toLowerCase())) {\n        this.focusItem(option);\n        return true;\n      }\n    });\n\n    this.searchTimeout = setTimeout(() => {\n      this.search = '';\n    }, 500);\n  }\n\n  selectItem(item) {\n    this.el.value = item.dataset.value;\n    this.handleOptionSelect();\n    this.hideDropdownList();\n  }\n\n  defocusItem(element) {\n    if (!element) return;\n    element.removeAttribute('aria-selected');\n  }\n\n  focusItem(element) {\n    this.defocusItem(this.activeItem);\n    element.setAttribute('aria-selected', 'true');\n    this.activeItem = element;\n\n    if (this.dom.list.scrollHeight > this.dom.list.clientHeight) {\n      const scrollBottom = this.dom.list.clientHeight + this.dom.list.scrollTop;\n      const elementBottom = element.offsetTop + element.offsetHeight;\n      if (elementBottom > scrollBottom) {\n        this.dom.list.scrollTop = elementBottom - this.dom.list.clientHeight;\n      } else if (element.offsetTop < this.dom.list.scrollTop) {\n        this.dom.list.scrollTop = element.offsetTop;\n      }\n    }\n  }\n\n  focusFirst() {\n    const firstItem = this.dom.list.querySelector('[role=\"option\"]');\n    if (firstItem) {\n      this.focusItem(firstItem);\n    }\n  }\n\n  focusLast() {\n    const items = this.dom.list.querySelectorAll('[role=\"option\"]');\n\n    if (items.length) {\n      this.focusItem(items[items.length - 1]);\n    }\n  }\n\n  showDropdownList() {\n    this.dom.trigger.setAttribute('aria-expanded', true);\n    this.dom.wrapper.classList.add('open');\n    open({ element: this.dom.list, duration: 0.6 });\n  }\n\n  hideDropdownList() {\n    close({\n      element: this.dom.list,\n      duration: 0.6\n    });\n    this.dom.trigger.removeAttribute('aria-expanded');\n    this.dom.wrapper.classList.remove('open');\n    this.defocusItem(this.activeItem);\n    this.activeItem = null;\n  }\n\n  getPlaceholder(value) {\n    const placeholder = this.el.getAttribute('placeholder');\n    const selectedOptionLabel = this.options.find(\n      option => option.value === value\n    ).innerHTML;\n\n    if (placeholder) {\n      return `${\n        selectedOptionLabel\n          ? `<span>${placeholder}:</span>`\n          : `<span>${placeholder}</span>`\n      } ${selectedOptionLabel}<svg><use xlink:href=\"#chevron-right\" /></svg>`;\n    }\n\n    return `${selectedOptionLabel}<svg><use xlink:href=\"#chevron-right\" /></svg>`;\n  }\n\n  buildDropdown() {\n    const listId = uuidv4();\n    this.dom.wrapper = document.createElement('div');\n    this.el.setAttribute('aria-hidden', true);\n    this.el.setAttribute('tabindex', '-1');\n    this.el.parentNode.insertBefore(this.dom.wrapper, this.el);\n    this.dom.wrapper.classList.add('dropdown');\n\n    if (this.style) {\n      this.dom.wrapper.classList.add(`dropdown--${this.style}`);\n    }\n\n    if (isDevice()) {\n      this.dom.wrapper.classList.add('dropdown--native');\n    }\n    this.dom.wrapper.appendChild(this.el);\n\n    this.dom.trigger = document.createElement('button');\n    this.dom.trigger.classList.add('dropdown__trigger');\n    this.dom.trigger.setAttribute('type', 'button');\n    this.dom.trigger.setAttribute('role', 'combobox');\n    this.dom.trigger.setAttribute('aria-haspopup', 'listbox');\n    this.dom.trigger.setAttribute('aria-controls', `${listId}`);\n\n    // Get label\n    const label = document.querySelector(`label[for=\"${this.el.id}\"]`);\n\n    if (label) {\n      this.dom.trigger.setAttribute('aria-label', label.textContent);\n    }\n\n    this.dom.trigger.innerHTML = this.getPlaceholder(this.el.value);\n\n    this.dom.wrapper.appendChild(this.dom.trigger);\n\n    this.dom.list = document.createElement('ul');\n    this.dom.list.id = listId;\n    this.dom.list.classList.add('dropdown__list');\n    this.dom.list.setAttribute('role', 'listbox');\n    this.dom.list.setAttribute(\n      'aria-label',\n      this.el.getAttribute('aria-label')\n    );\n    this.dom.list.innerHTML = this.options\n      .map(\n        option =>\n          `<li class=\"dropdown__list__option\" role=\"option\" data-value=\"${\n            option.value\n          }\" aria-selected=\"${option.value === this.el.value}\">${option.text}\n            <span clasS=\"dropdown__list__option-decorator\">\n              <span></span>\n            </span>\n          </li>`\n      )\n      .join('');\n    this.el.parentNode.insertBefore(this.dom.list, this.el.nextSibling);\n    this.dom.wrapper.appendChild(this.dom.list);\n  }\n\n  destroy() {\n    const parent = this.el.parentNode;\n    parent.removeChild(this.el);\n    parent.parentNode.insertBefore(this.el, parent);\n    parent.parentNode.removeChild(parent);\n  }\n\n  update() {\n    this.destroy();\n    this.setupDefaults();\n    this.addListeners();\n  }\n}\n\nexport default Module;\n"],"sourceRoot":""}