{"version":3,"file":"chunks/combobox.js?v=fd39c4ef5ba78f328b0d","mappings":"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","sources":["webpack://Alster/./app/components/form/combobox-editable.js","webpack://Alster/./app/components/form/combobox-select.js","webpack://Alster/./app/components/form/combobox-utils.js","webpack://Alster/./app/components/form/combobox.js"],"sourcesContent":["import {\n MenuActions,\n filterOptions,\n getActionFromKey,\n getUpdatedIndex,\n isScrollable,\n maintainScrollVisibility\n} from './combobox-utils.js';\n\n/*\n * ARIA 1.2 Filtered Combobox code\n */\nconst ComboboxFilter = function (el, options) {\n // element refs\n this.el = el;\n this.inputEl = el.querySelector('input');\n this.valueInputEl = el.querySelector('[js-combobox-post-value]');\n this.listboxEl = el.querySelector('[role=listbox]');\n\n // data\n this.idBase = this.inputEl.id;\n this.options = options;\n this.filteredOptions = options;\n\n // state\n this.hasInitValue = !!this.valueInputEl.value;\n this.activeId = this.hasInitValue ? this.valueInputEl.value : [...this.options.keys()][0];\n this.open = false;\n}\n\nComboboxFilter.prototype.init = function () {\n this.inputEl.addEventListener('input', this.onInput.bind(this));\n this.inputEl.addEventListener('blur', this.onInputBlur.bind(this));\n this.inputEl.addEventListener('click', () => this.updateMenuState(true));\n this.inputEl.addEventListener('keydown', this.onInputKeyDown.bind(this));\n \n if (this.hasInitValue) {\n this.onOptionChange(this.activeId);\n this.selectOption(this.activeId);\n }\n\n [...this.options].map(([optionId, optionLabel], index) => {\n const optionEl = document.createElement('div');\n optionEl.setAttribute('role', 'option');\n optionEl.id = optionId;\n optionEl.className =\n (this.hasInitValue && this.activeId === optionEl.id)\n ? 'combo-option option-current'\n : (!this.hasInitValue && index === 0)\n ? 'combo-option option-current'\n : 'combo-option';\n\n optionEl.setAttribute('aria-selected', (this.hasInitValue && this.activeId === optionEl.id) ? 'true' : 'false');\n optionEl.innerText = optionLabel;\n\n optionEl.addEventListener('click', () => { this.onOptionClick(optionId); });\n optionEl.addEventListener('mousedown', this.onOptionMouseDown.bind(this));\n\n this.listboxEl.appendChild(optionEl);\n });\n}\n\nComboboxFilter.prototype.filterOptions = function (value) {\n this.filteredOptions = filterOptions(this.options, value);\n\n // hide/show options based on filtering\n const options = this.el.querySelectorAll('[role=option]');\n [...options].forEach((optionEl) =>\n (this.filteredOptions.has(optionEl.id))\n ? optionEl.style.display = 'block'\n : optionEl.style.display = 'none'\n );\n}\n\nComboboxFilter.prototype.onInput = function () {\n const curValue = this.inputEl.value;\n this.filterOptions(curValue);\n\n // if active option is not in filtered options, set it to first filtered option\n if (!this.filteredOptions.has(this.activeId) && this.filteredOptions.size > 0) {\n const [firstFilteredId] = this.filteredOptions.entries().next().value\n this.onOptionChange(firstFilteredId);\n }\n\n const menuState = this.filteredOptions.size > 0;\n if (this.open !== menuState) {\n this.updateMenuState(menuState, false);\n }\n}\n\nComboboxFilter.prototype.onInputKeyDown = function (event) {\n const action = getActionFromKey(event, this.open);\n\n switch (action) {\n case MenuActions.Next:\n case MenuActions.Last:\n case MenuActions.First:\n case MenuActions.Previous:\n event.preventDefault();\n const filteredOptionsArray = [...this.filteredOptions];\n const max = filteredOptionsArray.length - 1;\n const nextFilteredIndex = getUpdatedIndex(\n filteredOptionsArray.findIndex(([id]) => id === this.activeId),\n max,\n action\n );\n const [id] = filteredOptionsArray[nextFilteredIndex];\n\n return this.onOptionChange(id);\n case MenuActions.CloseSelect:\n event.preventDefault();\n this.selectOption(this.activeId);\n return this.updateMenuState(false);\n case MenuActions.Close:\n event.preventDefault();\n return this.updateMenuState(false);\n case MenuActions.Open:\n return this.updateMenuState(true);\n }\n}\n\nComboboxFilter.prototype.onInputBlur = function () {\n if (this.ignoreBlur) {\n this.ignoreBlur = false;\n return;\n }\n if (this.open) {\n this.updateMenuState(false, false);\n }\n}\n\nComboboxFilter.prototype.onOptionChange = function (id) {\n this.activeId = id;\n this.valueInputEl.value = id;\n this.inputEl.setAttribute('aria-activedescendant', id);\n\n // update active style\n const options = this.el.querySelectorAll('[role=option]');\n\n [...options].forEach((optionEl) => {\n if (optionEl.id === id) {\n // todo dubbelkolla så att allt tas bort och läggs till rätt\n optionEl.classList.add('option-current');\n\n if (this.open && isScrollable(this.listboxEl)) {\n maintainScrollVisibility(optionEl, this.listboxEl);\n }\n return;\n }\n return optionEl.classList.remove('option-current');\n });\n}\n\nComboboxFilter.prototype.onOptionClick = function (id) {\n this.onOptionChange(id);\n this.selectOption(id);\n this.updateMenuState(false);\n}\n\nComboboxFilter.prototype.onOptionMouseDown = function () {\n this.ignoreBlur = true;\n}\n\nComboboxFilter.prototype.selectOption = function (id) {\n const selected = this.options.get(id);\n this.valueInputEl.value = id;\n this.inputEl.value = selected;\n\n // update aria-selected\n const options = this.el.querySelectorAll('[role=option]');\n [...options].forEach((optionEl) => {\n optionEl.setAttribute('aria-selected', 'false');\n\n if (optionEl.id === id) {\n optionEl.setAttribute('aria-selected', 'true');\n }\n });\n}\n\nComboboxFilter.prototype.updateMenuState = function (open, callFocus = true) {\n this.open = open;\n\n this.inputEl.setAttribute('aria-expanded', `${open}`);\n open ? this.el.classList.add('open') : this.el.classList.remove('open');\n callFocus && this.inputEl.focus();\n}\n\nexport default ComboboxFilter;\n\n/* example usage \n // replace [id] with the id of the combobox, ie competence in \"Kontaka oss\" filter input\n \n
\n \n
\n \n \n
\n*/\n","import {\n MenuActions,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n isScrollable,\n maintainScrollVisibility\n} from './combobox-utils';\n\n/*\n * Read-only select code\n */\nconst Select = function (el, options) {\n // element refs\n this.el = el;\n this.comboEl = el.querySelector('[role=combobox]');\n this.valueEl = this.comboEl.querySelector('span');\n this.listboxEl = el.querySelector('[role=listbox]');\n\n // data\n this.idBase = this.comboEl.id;\n this.options = options;\n\n // state\n this.activeIndex = 0;\n this.open = false;\n this.searchString = '';\n this.searchTimeout = null;\n this.postValue = el.querySelector('[js-combobox-post-value]');\n\n this.hasInitValue = !!this.valueEl.innerHTML;\n}\n\nSelect.prototype.init = function () {\n this.comboEl.addEventListener('blur', this.onComboBlur.bind(this));\n this.comboEl.addEventListener('click', () => this.updateMenuState(true));\n this.comboEl.addEventListener('keydown', this.onComboKeyDown.bind(this));\n\n this.valueEl.innerHTML = this.options[0][1] || '';\n\n if (!!this.valueEl.innerHTML) {\n //if label is set, make sure value same value is set in postValue input \n this.postValue.value = this.options[0][0];\n }\n\n this.options.map(([value, label], index) => {\n const optionEl = document.createElement('div');\n optionEl.setAttribute('role', 'option');\n optionEl.id = `${this.idBase}-${index}`;\n optionEl.className = index === 0 ? 'combo-option option-current' : 'combo-option';\n optionEl.setAttribute('aria-selected', `${index === 0}`);\n optionEl.innerText = label;\n if(value) {\n optionEl.setAttribute('value', value)\n }\n\n optionEl.addEventListener('click', (event) => {\n event.stopPropagation();\n this.onOptionClick(index);\n });\n optionEl.addEventListener('mousedown', this.onOptionMouseDown.bind(this));\n this.listboxEl.appendChild(optionEl);\n });\n}\n\nSelect.prototype.getSearchString = function (char) {\n if (typeof this.searchTimeout === 'number') {\n window.clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = window.setTimeout(() => {\n this.searchString = '';\n }, 1000);\n\n this.searchString += char;\n return this.searchString;\n}\n\nSelect.prototype.onComboKeyDown = function (event) {\n const { key } = event;\n const max = this.options.length - 1;\n\n const action = getActionFromKey(event, this.open);\n\n switch (action) {\n case MenuActions.Next:\n case MenuActions.Last:\n case MenuActions.First:\n case MenuActions.Previous:\n event.preventDefault();\n return this.onOptionChange(getUpdatedIndex(this.activeIndex, max, action));\n case MenuActions.CloseSelect:\n case MenuActions.Space:\n event.preventDefault();\n this.selectOption(this.activeIndex);\n case MenuActions.Close:\n event.preventDefault();\n return this.updateMenuState(false);\n case MenuActions.Type:\n this.updateMenuState(true);\n console.log('type');\n var searchString = this.getSearchString(key);\n return this.onOptionChange(Math.max(0, getIndexByLetter(this.options, searchString)));\n case MenuActions.Open:\n event.preventDefault();\n return this.updateMenuState(true);\n }\n}\n\nSelect.prototype.onComboBlur = function () {\n if (this.ignoreBlur) {\n this.ignoreBlur = false;\n return;\n }\n\n if (this.open) {\n this.selectOption(this.activeIndex);\n this.updateMenuState(false, false);\n }\n}\n\nSelect.prototype.onOptionChange = function (index) {\n this.activeIndex = index;\n this.comboEl.setAttribute('aria-activedescendant', `${this.idBase}-${index}`);\n\n // update active style\n const options = this.el.querySelectorAll('[role=option]');\n [...options].forEach((optionEl) => {\n optionEl.classList.remove('option-current');\n });\n options[index].classList.add('option-current');\n\n if (isScrollable(this.listboxEl)) {\n maintainScrollVisibility(options[index], this.listboxEl);\n }\n}\n\nSelect.prototype.onOptionClick = function (index) {\n this.onOptionChange(index);\n this.selectOption(index);\n this.updateMenuState(false);\n}\n\nSelect.prototype.onOptionMouseDown = function () {\n this.ignoreBlur = true;\n}\n\nSelect.prototype.selectOption = function (index) {\n const [value, label] = this.options[index];\n this.valueEl.innerHTML = label;\n this.postValue.value = value;\n\n this.activeIndex = index;\n\n // update aria-selected\n const options = this.el.querySelectorAll('[role=option]');\n [...options].forEach((optionEl) => {\n optionEl.setAttribute('aria-selected', 'false');\n });\n options[index].setAttribute('aria-selected', 'true');\n}\n\nSelect.prototype.updateMenuState = function (open, callFocus = true) {\n this.open = open;\n\n this.comboEl.setAttribute('aria-expanded', `${open}`);\n open ? this.el.classList.add('open') : this.el.classList.remove('open');\n callFocus && this.comboEl.focus();\n\n // update activedescendant\n const activeID = open ? `${this.idBase}-${this.activeIndex}` : this.valueEl.id;\n this.comboEl.setAttribute('aria-activedescendant', activeID);\n}\n\nexport default Select;\n\n\n/* HTML example\n\n
\n \n \n
\n \n\n*/","/*\n * Helper constants and functions\n */\n\n// make it easier for ourselves by putting some values in objects\n// in TypeScript, these would be enums\nconst Keys = {\n Backspace: 'Backspace',\n Clear: 'Clear',\n Down: 'ArrowDown',\n End: 'End',\n Enter: 'Enter',\n Escape: 'Escape',\n Home: 'Home',\n Left: 'ArrowLeft',\n PageDown: 'PageDown',\n PageUp: 'PageUp',\n Right: 'ArrowRight',\n Space: ' ',\n Tab: 'Tab',\n Up: 'ArrowUp'\n}\n\nconst MenuActions = {\n Close: 0,\n CloseSelect: 1,\n First: 2,\n Last: 3,\n Next: 4,\n Open: 5,\n Previous: 6,\n Select: 7,\n Space: 8,\n Type: 9\n}\n\n// filter an array of options against an input string\n// returns an Map of options that begin with the filter string, case-independent\nfunction filterOptions(options = new Map, filter, exclude = []) {\n return new Map([...options].filter(([id, label]) => {\n const matches = label.trimStart().toLowerCase().startsWith(filter.trimStart().toLowerCase());\n return matches && exclude.indexOf(label) < 0;\n }));\n}\n\n// return combobox action from key press\nfunction getActionFromKey(event, menuOpen) {\n const { key, altKey, ctrlKey, metaKey } = event;\n // handle opening when closed\n if (!menuOpen && (key === Keys.Down || key === Keys.Enter || key === Keys.Space)) {\n return MenuActions.Open;\n }\n\n // handle keys when open\n if (key === Keys.Down) {\n return MenuActions.Next;\n }\n else if (key === Keys.Up) {\n return MenuActions.Previous;\n }\n else if (key === Keys.Home) {\n return MenuActions.First;\n }\n else if (key === Keys.End) {\n return MenuActions.Last;\n }\n else if (key === Keys.Escape) {\n return MenuActions.Close;\n }\n else if (key === Keys.Enter) {\n return MenuActions.CloseSelect;\n }\n else if (key === Keys.Space) {\n return MenuActions.Space;\n }\n else if (key === Keys.Backspace || key === Keys.Clear || (key.length === 1 && !altKey && !ctrlKey && !metaKey)) {\n return MenuActions.Type;\n }\n}\n\n// get index of option that matches a string\n// if the filter is multiple iterations of the same letter (e.g \"aaa\"),\n// then return the nth match of the single letter\nfunction getIndexByLetter(options, filter) {\n const nej = new Map(options);\n const firstMatch = filterOptions(nej, filter).entries().next().value;\n const allSameLetter = (array) => array.every((letter) => letter === array[0]);\n if (firstMatch) {\n return options.findIndex(([value, label], index) =>\n (label === firstMatch[1]) && index\n );\n } else if (allSameLetter(filter.split(''))) {\n // todo: this is not working\n /* \n const matches = [...filterOptions(nej, filter[0])];\n const matchIndex = (filter.length - 1) % matches.length;\n return options.indexOf(matches[matchIndex]); \n */\n } else {\n return -1;\n }\n}\n\n// get updated option index\nfunction getUpdatedIndex(current, max, action) {\n switch (action) {\n case MenuActions.First:\n return 0;\n case MenuActions.Last:\n return max;\n case MenuActions.Previous:\n return Math.max(0, current - 1);\n case MenuActions.Next:\n return Math.min(max, current + 1);\n default:\n return current;\n }\n}\n\n// check if an element is currently scrollable\nfunction isScrollable(element) {\n return element && element.clientHeight < element.scrollHeight;\n}\n\n// ensure given child element is within the parent's visible scroll area\nfunction maintainScrollVisibility(activeElement, scrollParent) {\n const { offsetHeight, offsetTop } = activeElement;\n const { offsetHeight: parentOffsetHeight, scrollTop } = scrollParent;\n\n const isAbove = offsetTop < scrollTop;\n const isBelow = (offsetTop + offsetHeight) > (scrollTop + parentOffsetHeight);\n\n if (isAbove) {\n scrollParent.scrollTo(0, offsetTop);\n }\n else if (isBelow) {\n scrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n }\n}\n\nexport {\n MenuActions,\n filterOptions,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n isScrollable,\n maintainScrollVisibility\n}","import ComboboxFilter from './combobox-editable';\nimport Select from './combobox-select';\n\nexport default class Combobox {\n constructor(elem) {\n //strip away jquery with the [0]\n this.combobox = elem[0];\n\n const options = new Map();\n [...this.combobox.querySelectorAll('[js-combobox-data] > option')].forEach(option =>\n options.set(option.value, option.text)\n );\n\n if (!options.size) return;\n if (this.combobox.getAttribute('js-combobox-filter') !== null) {\n return new ComboboxFilter(this.combobox, options).init();\n } else if (this.combobox.getAttribute('js-select') !== null) {\n return new Select(this.combobox, [...options]).init();\n }\n }\n}"],"names":["MenuActions","filterOptions","getActionFromKey","getUpdatedIndex","isScrollable","maintainScrollVisibility","ComboboxFilter","el","options","inputEl","querySelector","valueInputEl","listboxEl","idBase","id","filteredOptions","hasInitValue","value","activeId","keys","open","prototype","init","addEventListener","onInput","bind","onInputBlur","updateMenuState","onInputKeyDown","onOptionChange","selectOption","map","_ref","index","optionId","optionLabel","optionEl","document","createElement","setAttribute","className","innerText","onOptionClick","onOptionMouseDown","appendChild","querySelectorAll","forEach","has","style","display","curValue","size","firstFilteredId","entries","next","menuState","event","action","Next","Last","First","Previous","preventDefault","filteredOptionsArray","max","length","nextFilteredIndex","findIndex","_ref2","CloseSelect","Close","Open","ignoreBlur","classList","add","remove","selected","get","callFocus","arguments","undefined","focus","getIndexByLetter","Select","comboEl","valueEl","activeIndex","searchString","searchTimeout","postValue","innerHTML","onComboBlur","onComboKeyDown","label","stopPropagation","getSearchString","char","window","clearTimeout","setTimeout","key","Space","Type","console","log","Math","activeID","Keys","Backspace","Clear","Down","End","Enter","Escape","Home","Left","PageDown","PageUp","Right","Tab","Up","Map","filter","exclude","matches","trimStart","toLowerCase","startsWith","indexOf","menuOpen","altKey","ctrlKey","metaKey","nej","firstMatch","allSameLetter","array","every","letter","split","current","min","element","clientHeight","scrollHeight","activeElement","scrollParent","offsetHeight","offsetTop","parentOffsetHeight","scrollTop","isAbove","isBelow","scrollTo","Combobox","constructor","elem","combobox","option","set","text","getAttribute"],"sourceRoot":""}