File: /var/www/quadcode/frontend/node_modules/custom-select/build/index.js.map
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * custom-select\n * A lightweight JS script for custom select creation.\n * Needs no dependencies.\n *\n * v0.0.1\n * (https://github.com/custom-select/custom-select)\n *\n * Copyright (c) 2016 Gionatan Lombardi & Marco Nucara\n * MIT License\n */\n\nimport 'custom-event-polyfill';\n\nconst defaultParams = {\n containerClass: 'custom-select-container',\n openerClass: 'custom-select-opener',\n panelClass: 'custom-select-panel',\n optionClass: 'custom-select-option',\n optgroupClass: 'custom-select-optgroup',\n isSelectedClass: 'is-selected',\n hasFocusClass: 'has-focus',\n isDisabledClass: 'is-disabled',\n isOpenClass: 'is-open',\n};\n\nfunction builder(el, builderParams) {\n const containerClass = 'customSelect';\n let isOpen = false;\n let uId = '';\n const select = el;\n let container;\n let opener;\n let focusedElement;\n let selectedElement;\n let panel;\n let currLabel;\n\n let resetSearchTimeout;\n let searchKey = '';\n\n //\n // Inner Functions\n //\n\n // Sets the focused element with the neccessary classes substitutions\n function setFocusedElement(cstOption) {\n if (focusedElement) {\n focusedElement.classList.remove(builderParams.hasFocusClass);\n }\n if (typeof cstOption !== 'undefined') {\n focusedElement = cstOption;\n focusedElement.classList.add(builderParams.hasFocusClass);\n // Offset update: checks if the focused element is in the visible part of the panelClass\n // if not dispatches a custom event\n if (isOpen) {\n if (cstOption.offsetTop < cstOption.offsetParent.scrollTop\n || cstOption.offsetTop >\n (cstOption.offsetParent.scrollTop + cstOption.offsetParent.clientHeight)\n - cstOption.clientHeight) {\n cstOption.dispatchEvent(new CustomEvent('custom-select:focus-outside-panel', { bubbles: true }));\n }\n }\n } else {\n focusedElement = undefined;\n }\n }\n\n // Reassigns the focused and selected custom option\n // Updates the opener text\n // IMPORTANT: the setSelectedElement function doesn't change the select value!\n function setSelectedElement(cstOption) {\n if (selectedElement) {\n selectedElement.classList.remove(builderParams.isSelectedClass);\n selectedElement.removeAttribute('id');\n opener.removeAttribute('aria-activedescendant');\n }\n if (typeof cstOption !== 'undefined') {\n cstOption.classList.add(builderParams.isSelectedClass);\n cstOption.setAttribute('id', `${containerClass}-${uId}-selectedOption`);\n opener.setAttribute('aria-activedescendant', `${containerClass}-${uId}-selectedOption`);\n selectedElement = cstOption;\n opener.children[0].textContent = selectedElement.customSelectOriginalOption.text;\n } else {\n selectedElement = undefined;\n opener.children[0].textContent = '';\n }\n setFocusedElement(cstOption);\n }\n\n function setValue(value) {\n // Gets the option with the provided value\n let toSelect = select.querySelector(`option[value='${value}']`);\n // If no option has the provided value get the first\n if (!toSelect) {\n [toSelect] = select.options;\n }\n // The option with the provided value becomes the selected one\n // And changes the select current value\n toSelect.selected = true;\n\n setSelectedElement(select.options[select.selectedIndex].customSelectCstOption);\n }\n\n function moveFocuesedElement(direction) {\n // Get all the .custom-select-options\n // Get the index of the current focused one\n const currentFocusedIndex =\n [].indexOf.call(select.options, focusedElement.customSelectOriginalOption);\n // If the next or prev custom option exist\n // Sets it as the new focused one\n if (select.options[currentFocusedIndex + direction]) {\n setFocusedElement(select.options[currentFocusedIndex + direction].customSelectCstOption);\n }\n }\n\n // Open/Close function (toggle)\n function open(bool) {\n // Open\n if (bool || typeof bool === 'undefined') {\n // If present closes an opened instance of the plugin\n // Only one at time can be open\n const openedCustomSelect =\n document.querySelector(`.${containerClass}.${builderParams.isOpenClass}`);\n if (openedCustomSelect) {\n openedCustomSelect.customSelect.open = false;\n }\n\n // Opens only the clicked one\n container.classList.add(builderParams.isOpenClass);\n\n // aria-expanded update\n container.classList.add(builderParams.isOpenClass);\n opener.setAttribute('aria-expanded', 'true');\n\n // Updates the scrollTop position of the panel in relation with the focused option\n if (selectedElement) {\n panel.scrollTop = selectedElement.offsetTop;\n }\n\n // Dispatches the custom event open\n container.dispatchEvent(new CustomEvent('custom-select:open'));\n\n // Sets the global state\n isOpen = true;\n\n // Close\n } else {\n // Removes the css classes\n container.classList.remove(builderParams.isOpenClass);\n\n // aria-expanded update\n opener.setAttribute('aria-expanded', 'false');\n\n // Sets the global state\n isOpen = false;\n\n // When closing the panel the focused custom option must be the selected one\n setFocusedElement(selectedElement);\n\n // Dispatches the custom event close\n container.dispatchEvent(new CustomEvent('custom-select:close'));\n }\n return isOpen;\n }\n\n function clickEvent(e) {\n // Opener click\n if (e.target === opener || opener.contains(e.target)) {\n if (isOpen) {\n open(false);\n } else {\n open();\n }\n // Custom Option click\n } else if (\n e.target.classList\n && e.target.classList.contains(builderParams.optionClass)\n && panel.contains(e.target)) {\n setSelectedElement(e.target);\n // Sets the corrisponding select's option to selected updating the select's value too\n selectedElement.customSelectOriginalOption.selected = true;\n open(false);\n // Triggers the native change event of the select\n select.dispatchEvent(new CustomEvent('change'));\n // click on label or select (click on label corrispond to select click)\n } else if (e.target === select) {\n // if the original select is focusable (for any external reason) let the focus\n // else trigger the focus on opener\n if (opener !== document.activeElement && select !== document.activeElement) {\n opener.focus();\n }\n // Click outside the container closes the panel\n } else if (isOpen && !container.contains(e.target)) {\n open(false);\n }\n }\n\n function mouseoverEvent(e) {\n // On mouse move over and options it bacames the focused one\n if (e.target.classList && e.target.classList.contains(builderParams.optionClass)) {\n setFocusedElement(e.target);\n }\n }\n\n function keydownEvent(e) {\n if (!isOpen) {\n // On \"Arrow down\", \"Arrow up\" and \"Space\" keys opens the panel\n if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 32) {\n open();\n }\n } else {\n switch (e.keyCode) {\n case 13:\n case 32:\n // On \"Enter\" or \"Space\" selects the focused element as the selected one\n setSelectedElement(focusedElement);\n // Sets the corrisponding select's option to selected updating the select's value too\n selectedElement.customSelectOriginalOption.selected = true;\n // Triggers the native change event of the select\n select.dispatchEvent(new CustomEvent('change'));\n open(false);\n break;\n case 27:\n // On \"Escape\" closes the panel\n open(false);\n break;\n\n case 38:\n // On \"Arrow up\" set focus to the prev option if present\n moveFocuesedElement(-1);\n break;\n case 40:\n // On \"Arrow down\" set focus to the next option if present\n moveFocuesedElement(+1);\n break;\n default:\n // search in panel (autocomplete)\n if (e.keyCode >= 48 && e.keyCode <= 90) {\n // clear existing reset timeout\n if (resetSearchTimeout) {\n clearTimeout(resetSearchTimeout);\n }\n\n // reset timeout for empty search key\n resetSearchTimeout = setTimeout(() => {\n searchKey = '';\n }, 1500);\n\n // update search keyword appending the current key\n searchKey += String.fromCharCode(e.keyCode);\n\n // search the element\n for (let i = 0, l = select.options.length; i < l; i++) {\n // removed cause not supported by IE:\n // if (options[i].text.startsWith(searchKey))\n if (select.options[i].text.toUpperCase().substr(0, searchKey.length) === searchKey) {\n setFocusedElement(select.options[i].customSelectCstOption);\n break;\n }\n }\n }\n break;\n }\n }\n }\n\n function changeEvent() {\n const index = select.selectedIndex;\n const element = index === -1 ? undefined : select.options[index].customSelectCstOption;\n\n setSelectedElement(element);\n }\n\n // When the option is outside the visible part of the opened panel, updates the scrollTop position\n // This is the default behaviour\n // To block it the plugin user must\n // add a \"custom-select:focus-outside-panel\" eventListener on the panel\n // with useCapture set to true\n // and stopPropagation\n function scrollToFocused(e) {\n const currPanel = e.currentTarget;\n const currOption = e.target;\n // Up\n if (currOption.offsetTop < currPanel.scrollTop) {\n currPanel.scrollTop = currOption.offsetTop;\n // Down\n } else {\n currPanel.scrollTop = (currOption.offsetTop + currOption.clientHeight)\n - currPanel.clientHeight;\n }\n }\n\n function addEvents() {\n document.addEventListener('click', clickEvent);\n panel.addEventListener('mouseover', mouseoverEvent);\n panel.addEventListener('custom-select:focus-outside-panel', scrollToFocused);\n select.addEventListener('change', changeEvent);\n container.addEventListener('keydown', keydownEvent);\n }\n\n function removeEvents() {\n document.removeEventListener('click', clickEvent);\n panel.removeEventListener('mouseover', mouseoverEvent);\n panel.removeEventListener('custom-select:focus-outside-panel', scrollToFocused);\n select.removeEventListener('change', changeEvent);\n container.removeEventListener('keydown', keydownEvent);\n }\n\n function disabled(bool) {\n if (bool && !select.disabled) {\n container.classList.add(builderParams.isDisabledClass);\n select.disabled = true;\n opener.removeAttribute('tabindex');\n container.dispatchEvent(new CustomEvent('custom-select:disabled'));\n removeEvents();\n } else if (!bool && select.disabled) {\n container.classList.remove(builderParams.isDisabledClass);\n select.disabled = false;\n opener.setAttribute('tabindex', '0');\n container.dispatchEvent(new CustomEvent('custom-select:enabled'));\n addEvents();\n }\n }\n\n // Form a given select children DOM tree (options and optgroup),\n // Creates the corresponding custom HTMLElements list (divs with different classes and attributes)\n function parseMarkup(children) {\n const nodeList = children;\n const cstList = [];\n\n if (typeof nodeList.length === 'undefined') {\n throw new TypeError('Invalid Argument');\n }\n\n for (let i = 0, li = nodeList.length; i < li; i++) {\n if (nodeList[i] instanceof HTMLElement && nodeList[i].tagName.toUpperCase() === 'OPTGROUP') {\n const cstOptgroup = document.createElement('div');\n cstOptgroup.classList.add(builderParams.optgroupClass);\n cstOptgroup.setAttribute('data-label', nodeList[i].label);\n\n // IMPORTANT: Stores in a property of the created custom option group\n // a hook to the the corrisponding select's option group\n cstOptgroup.customSelectOriginalOptgroup = nodeList[i];\n\n // IMPORTANT: Stores in a property of select's option group\n // a hook to the created custom option group\n nodeList[i].customSelectCstOptgroup = cstOptgroup;\n\n const subNodes = parseMarkup(nodeList[i].children);\n for (let j = 0, lj = subNodes.length; j < lj; j++) {\n cstOptgroup.appendChild(subNodes[j]);\n }\n\n cstList.push(cstOptgroup);\n } else if (nodeList[i] instanceof HTMLElement\n && nodeList[i].tagName.toUpperCase() === 'OPTION') {\n const cstOption = document.createElement('div');\n cstOption.classList.add(builderParams.optionClass);\n cstOption.textContent = nodeList[i].text;\n cstOption.setAttribute('data-value', nodeList[i].value);\n cstOption.setAttribute('role', 'option');\n\n // IMPORTANT: Stores in a property of the created custom option\n // a hook to the the corrisponding select's option\n cstOption.customSelectOriginalOption = nodeList[i];\n\n // IMPORTANT: Stores in a property of select's option\n // a hook to the created custom option\n nodeList[i].customSelectCstOption = cstOption;\n\n // If the select's option is selected\n if (nodeList[i].selected) {\n setSelectedElement(cstOption);\n }\n cstList.push(cstOption);\n } else {\n throw new TypeError('Invalid Argument');\n }\n }\n return cstList;\n }\n\n function append(nodePar, appendIntoOriginal, targetPar) {\n let target;\n if (typeof targetPar === 'undefined'\n || (targetPar === select)) {\n target = panel;\n } else if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n\n // If the node provided is a single HTMLElement it is stored in an array\n const node = nodePar instanceof HTMLElement ? [nodePar] : nodePar;\n\n // Injects the options|optgroup in the select\n if (appendIntoOriginal) {\n for (let i = 0, l = node.length; i < l; i++) {\n if (target === panel) {\n select.appendChild(node[i]);\n } else {\n target.customSelectOriginalOptgroup.appendChild(node[i]);\n }\n }\n }\n\n // The custom markup to append\n const markupToInsert = parseMarkup(node);\n\n // Injects the created DOM content in the panel\n for (let i = 0, l = markupToInsert.length; i < l; i++) {\n target.appendChild(markupToInsert[i]);\n }\n\n return node;\n }\n\n function insertBefore(node, targetPar) {\n let target;\n if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTION'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOption;\n } else if (targetPar instanceof HTMLElement\n && targetPar.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(targetPar)) {\n target = targetPar.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n\n // The custom markup to append\n const markupToInsert = parseMarkup(node.length ? node : [node]);\n\n target.parentNode.insertBefore(markupToInsert[0], target);\n\n // Injects the option or optgroup node in the original select and returns the injected node\n return targetPar.parentNode.insertBefore(node.length ? node[0] : node, targetPar);\n }\n\n function remove(node) {\n let cstNode;\n if (node instanceof HTMLElement\n && node.tagName.toUpperCase() === 'OPTION'\n && select.contains(node)) {\n cstNode = node.customSelectCstOption;\n } else if (node instanceof HTMLElement\n && node.tagName.toUpperCase() === 'OPTGROUP'\n && select.contains(node)) {\n cstNode = node.customSelectCstOptgroup;\n } else {\n throw new TypeError('Invalid Argument');\n }\n cstNode.parentNode.removeChild(cstNode);\n const removedNode = node.parentNode.removeChild(node);\n changeEvent();\n return removedNode;\n }\n\n function empty() {\n const removed = [];\n while (select.children.length) {\n panel.removeChild(panel.children[0]);\n removed.push(select.removeChild(select.children[0]));\n }\n setSelectedElement();\n return removed;\n }\n\n function destroy() {\n for (let i = 0, l = select.options.length; i < l; i++) {\n delete select.options[i].customSelectCstOption;\n }\n const optGroup = select.getElementsByTagName('optgroup');\n for (let i = 0, l = optGroup.length; i < l; i++) {\n delete optGroup.customSelectCstOptgroup;\n }\n\n removeEvents();\n\n return container.parentNode.replaceChild(select, container);\n }\n //\n // Custom Select DOM tree creation\n //\n\n // Creates the container/wrapper\n container = document.createElement('div');\n container.classList.add(builderParams.containerClass, containerClass);\n\n // Creates the opener\n opener = document.createElement('span');\n opener.className = builderParams.openerClass;\n opener.setAttribute('role', 'combobox');\n opener.setAttribute('aria-autocomplete', 'list');\n opener.setAttribute('aria-expanded', 'false');\n opener.innerHTML = `<span>\n ${(select.selectedIndex !== -1 ? select.options[select.selectedIndex].text : '')}\n </span>`;\n\n // Creates the panel\n // and injects the markup of the select inside\n // with some tag and attributes replacement\n panel = document.createElement('div');\n // Create random id\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (let i = 0; i < 5; i++) {\n uId += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n panel.id = `${containerClass}-${uId}-panel`;\n panel.className = builderParams.panelClass;\n panel.setAttribute('role', 'listbox');\n opener.setAttribute('aria-owns', panel.id);\n\n append(select.children, false);\n\n // Injects the container in the original DOM position of the select\n container.appendChild(opener);\n select.parentNode.replaceChild(container, select);\n container.appendChild(select);\n container.appendChild(panel);\n\n // ARIA labelledby - label\n if (document.querySelector(`label[for=\"${select.id}\"]`)) {\n currLabel = document.querySelector(`label[for=\"${select.id}\"]`);\n } else if (container.parentNode.tagName.toUpperCase() === 'LABEL') {\n currLabel = container.parentNode;\n }\n if (typeof currLabel !== 'undefined') {\n currLabel.setAttribute('id', `${containerClass}-${uId}-label`);\n opener.setAttribute('aria-labelledby', `${containerClass}-${uId}-label`);\n }\n\n // Event Init\n if (select.disabled) {\n container.classList.add(builderParams.isDisabledClass);\n } else {\n opener.setAttribute('tabindex', '0');\n select.setAttribute('tabindex', '-1');\n addEvents();\n }\n\n // Stores the plugin public exposed methods and properties, directly in the container HTMLElement\n container.customSelect = {\n get pluginOptions() { return builderParams; },\n get open() { return isOpen; },\n set open(bool) {\n open(bool);\n },\n get disabled() { return select.disabled; },\n set disabled(bool) {\n disabled(bool);\n },\n get value() { return select.value; },\n set value(val) {\n setValue(val);\n },\n append: (node, target) => append(node, true, target),\n insertBefore: (node, target) => insertBefore(node, target),\n remove,\n empty,\n destroy,\n opener,\n select,\n panel,\n container,\n };\n\n // Stores the plugin directly in the original select\n select.customSelect = container.customSelect;\n\n // Returns the plugin instance, with the public exposed methods and properties\n return container.customSelect;\n}\n\nexport default function customSelect(element, customParams) {\n // Overrides the default options with the ones provided by the user\n const nodeList = [];\n const selects = [];\n\n return (function init() {\n // The plugin is called on a single HTMLElement\n if (element && element instanceof HTMLElement && element.tagName.toUpperCase() === 'SELECT') {\n nodeList.push(element);\n // The plugin is called on a selector\n } else if (element && typeof element === 'string') {\n const elementsList = document.querySelectorAll(element);\n for (let i = 0, l = elementsList.length; i < l; ++i) {\n if (elementsList[i] instanceof HTMLElement\n && elementsList[i].tagName.toUpperCase() === 'SELECT') {\n nodeList.push(elementsList[i]);\n }\n }\n // The plugin is called on any HTMLElements list (NodeList, HTMLCollection, Array, etc.)\n } else if (element && element.length) {\n for (let i = 0, l = element.length; i < l; ++i) {\n if (element[i] instanceof HTMLElement\n && element[i].tagName.toUpperCase() === 'SELECT') {\n nodeList.push(element[i]);\n }\n }\n }\n\n // Launches the plugin over every HTMLElement\n // And stores every plugin instance\n for (let i = 0, l = nodeList.length; i < l; ++i) {\n selects.push(builder(nodeList[i], Object.assign({}, defaultParams, customParams)));\n }\n\n // Returns all plugin instances\n return selects;\n }());\n}\n"]}