@iamproperty/components 7.6.4--beta2 → 7.6.4--beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/multiselect.preload.css +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/tag.component.css +1 -1
- package/assets/css/components/tag.component.css.map +1 -1
- package/assets/css/components/tag.preload.css +1 -1
- package/assets/css/components/tag.preload.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
- package/assets/js/components/address-lookup/address-lookup.component.js +11 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +2 -2
- package/assets/js/components/card/card.component.min.js +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/content/content.component.min.js +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/form/form.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.min.js +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.js +1 -1
- package/assets/js/components/modal/modal.component.min.js +2 -2
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.js +9 -76
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +2 -2
- package/assets/js/components/split-button/split-button.component.min.js +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.js +39 -2
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +10 -9
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/components/tag/tag.component.js +6 -1
- package/assets/js/components/tag/tag.component.min.js +4 -4
- package/assets/js/components/tag/tag.component.min.js.map +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/dropdown.js +97 -4
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/_components.scss +0 -2
- package/assets/sass/_elements.scss +1 -0
- package/assets/sass/components/multiselect.preload.scss +0 -55
- package/assets/sass/components/multiselect.scss +172 -174
- package/assets/sass/components/tag.component.scss +38 -57
- package/assets/sass/components/tag.preload.scss +1 -26
- package/assets/sass/elements/dropdown.scss +87 -0
- package/assets/sass/elements/forms.scss +6 -0
- package/assets/ts/components/address-lookup/address-lookup.component.ts +12 -5
- package/assets/ts/components/modal/modal.component.ts +1 -1
- package/assets/ts/components/multiselect/multiselect.component.ts +10 -78
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +51 -2
- package/assets/ts/components/tag/tag.component.ts +8 -11
- package/assets/ts/modules/dropdown.ts +117 -5
- package/dist/components.es.js +28 -28
- package/dist/components.umd.js +219 -212
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiselect.component.min.js","sources":["../../modules/dropdown.js","multiselect.component.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from 'js-cookie';\nexport const filterList = (component, search) => {\n Array.from(component.querySelectorAll(`label:not([slot=\"checked\"])`)).forEach((label) => {\n const checkbox = label.querySelector('input');\n const searchValue = checkbox.value;\n const labelText = label.textContent;\n if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||\n labelText.toLowerCase().includes(search.value.toLowerCase())) {\n label.removeAttribute('slot');\n }\n else {\n label.setAttribute('slot', 'notmatched');\n }\n });\n};\nexport const searchAjax = (component, search, callback) => __awaiter(void 0, void 0, void 0, function* () {\n const searchterm = search.value;\n const ajaxURL = component.getAttribute('data-url');\n const firstInput = component.querySelector('input');\n console.log(firstInput);\n const inputType = firstInput.getAttribute('type');\n const inputName = firstInput.getAttribute('name');\n const searchAjaxURL = `${ajaxURL}?search_query=${encodeURI(searchterm)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n if (!component.querySelector(`[value=\"${response['data'][i].value}\"]`))\n items += `<label class=\"tag\"><input type=\"${inputType}\" name=\"${component.hasAttribute('data-name') ? component.getAttribute('data-name') : inputName}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n component.insertAdjacentHTML('beforeend', `${items}`);\n callback(component, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const setTag = (tag) => {\n const input = tag.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n tag.setAttribute('slot', 'checked');\n tag.setAttribute('data-content', tag.textContent);\n let tags = [];\n if (localStorage.getItem('tags-' + inputName) != null)\n tags = JSON.parse(localStorage.getItem('tags-' + inputName));\n if (!tags.includes(tag.textContent)) {\n tags.push(tag.textContent);\n localStorage.setItem('tags-' + inputName, JSON.stringify(tags));\n }\n let tagIndex = tags.indexOf(tag.textContent) + 1;\n if (tagIndex > 23)\n tagIndex = 1;\n tag === null || tag === void 0 ? void 0 : tag.classList.add(`wider-colour-${tagIndex + 1}`);\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from 'js-cookie';\nimport { filterList } from '../../modules/dropdown.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'mutliselect',\n});\nclass iamMultiselect extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/multiselect.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <label for=\"search\" class=\"mb-0\"><span class=\"inner-label label\"></span> <slot name=\"feedback\"></slot>\n <div class=\"outer\">\n <div class=\"wrapper\">\n \n <slot name=\"checked\"></slot>\n <input name=\"search\" id=\"search\" autocomplete=\"off\" required part=\"search-input\"/>\n <span class=\"admin-panel feedback\">This field is required</span>\n <div class=\"admin-panel dropdown\" part=\"dropdown\">\n <slot></slot>\n </div>\n <button id=\"clear\" class=\"btn btn-action \"><span class=\"visually-hidden\">Clear</span></button>\n </div>\n </div>\n </label>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const multiselect = this;\n const form = this.closest('form');\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const search = multiselect.shadowRoot.querySelector('#search');\n const button = multiselect.shadowRoot.querySelector('#clear');\n let order = 0;\n const innerLabel = multiselect.shadowRoot.querySelector('label .inner-label');\n const ajaxURL = this.getAttribute('data-url');\n innerLabel.innerHTML = multiselect.getAttribute('data-label');\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n multiselect.setAttribute('data-error', 'true');\n // If in form and is required lets watch for the form being submitted\n if (form && multiselect.hasAttribute('data-is-required')) {\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n const targetElement = mutationRecord.target;\n if (targetElement.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n });\n });\n if (form.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n observer.observe(form, {\n attributes: true,\n attributeFilter: ['style', 'class'],\n });\n }\n // Set the correct attributes\n function setItem(inputToSet) {\n if (inputToSet.checked == false) {\n inputToSet.closest('label').removeAttribute('slot');\n inputToSet.closest('label').removeAttribute('style');\n inputToSet.closest('label').removeAttribute('data-order');\n }\n else {\n order++;\n inputToSet.closest('label').setAttribute('slot', 'checked');\n inputToSet.closest('label').setAttribute('style', `--order:${order};`);\n inputToSet.closest('label').setAttribute('data-order', order);\n if (inputToSet.closest('[data-value]')) {\n inputToSet.closest('[data-value]').setAttribute('data-value', inputToSet.closest('label').textContent);\n }\n }\n // check for errors\n if (multiselect.querySelector('label[slot=\"checked\"]')) {\n wrapper.classList.add('filled');\n multiselect.removeAttribute('data-error');\n search.removeAttribute('placeholder');\n }\n else {\n wrapper.classList.remove('filled');\n multiselect.setAttribute('data-error', 'true');\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n }\n }\n // Set on load\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n search.addEventListener('input', () => {\n if (multiselect.hasAttribute('data-url')) {\n if (search.value.length == 3) {\n searchAjax(search.value);\n }\n }\n else {\n filterList(multiselect, search);\n }\n });\n // Add a delayed hover effect for non hover devices\n let hoverTimeout;\n multiselect.addEventListener('focus', () => {\n multiselect.classList.add('hover');\n clearTimeout(hoverTimeout);\n });\n search.addEventListener('blur', (event) => {\n setTimeout(function () {\n const activeElement = document.activeElement;\n if (activeElement.getAttribute('type') != 'checkbox') {\n if (multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`)) {\n multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`).checked = true;\n setItem(multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`));\n }\n search.value = '';\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n }\n if (multiselect.hasAttribute('data-url')) {\n Array.from(multiselect.querySelectorAll(`label:has(input[type=\"checkbox\"]:not(:checked))`)).forEach((checkbox) => {\n checkbox.remove();\n });\n }\n }, 200);\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 500);\n });\n // Set items\n multiselect.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n const checkbox = event.target.closest('input[type=\"checkbox\"]');\n if (multiselect.hasAttribute('data-single')) {\n Array.from(multiselect.querySelectorAll(`label[slot=\"checked\"] input`)).forEach((inputToCancel) => {\n inputToCancel.checked = false;\n inputToCancel.closest('label').removeAttribute('slot');\n inputToCancel.closest('label').removeAttribute('style');\n inputToCancel.closest('label').removeAttribute('data-order');\n });\n }\n setItem(checkbox);\n search.value = '';\n if (!multiselect.hasAttribute('data-single')) {\n search.focus();\n clearTimeout(hoverTimeout);\n multiselect.classList.add('hover');\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 5000);\n }\n else {\n multiselect.classList.remove('hover');\n }\n }\n });\n // Clear all\n button.addEventListener('click', function () {\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n checkbox.checked = false;\n setItem(checkbox);\n });\n search.focus();\n });\n // Add some keyboard features to keep it accessible\n multiselect.addEventListener('keydown', function (event) {\n const activeElement = document.activeElement;\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'ArrowLeft':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];\n if (prevCheckbox)\n prevCheckbox.focus();\n else\n search.focus();\n }\n else if (activeElement == multiselect) {\n const options = Array.from(multiselect.querySelectorAll('label[slot=\"checked\"]')).sort(function (a, b) {\n return +a.dataset.order - +b.dataset.order;\n });\n options.pop().focus();\n }\n break;\n case 'ArrowRight':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const nextCheckbox = Array.from(arrCheckboxes)[activeIndex + 1];\n if (nextCheckbox)\n nextCheckbox.focus();\n else\n search.focus();\n }\n break;\n case 'ArrowUp':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label:not([slot=\"checked\"]):not([slot=\"checked\"])`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];\n if (prevCheckbox)\n prevCheckbox.focus();\n else\n search.focus();\n }\n break;\n case 'ArrowDown':\n // Down pressed\n event.preventDefault();\n if (activeElement == multiselect) {\n multiselect.querySelector('label:not([slot=\"checked\"]):not([slot=\"checked\"])').focus();\n }\n else if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const activeValue = activeElement.value;\n const nextCheckbox = multiselect.querySelector(`label:has(input[value=\"${activeValue}\"]) ~ label:not([slot=\"checked\"]):not([slot=\"checked\"])`);\n if (nextCheckbox)\n nextCheckbox.focus();\n }\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n if (activeElement.checked == false)\n activeElement.checked = true;\n else\n activeElement.checked = false;\n }\n setItem(activeElement);\n search.focus();\n break;\n case 'Backspace':\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n activeElement.checked = false;\n setItem(activeElement);\n search.focus();\n }\n break;\n }\n });\n function checkLastTag() {\n if (order == 0)\n return false;\n let lastTag = multiselect.querySelector(`label[data-order=\"${order}\"]`);\n if (!lastTag) {\n lastTag = checkLastTag(order--);\n }\n return lastTag;\n }\n search.addEventListener('keydown', function (event) {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n const match = multiselect.querySelector(`input[value=\"${search.value}\"]:not(:checked)`);\n if (!match)\n search.value = '';\n search.focus();\n break;\n case 'Backspace':\n if (!search.value) {\n const lastTag = checkLastTag(order);\n if (lastTag) {\n const lastTagInput = lastTag.querySelector('input');\n lastTagInput.checked = false;\n setItem(lastTagInput);\n }\n search.focus();\n }\n break;\n }\n });\n // Fix for the inline edit multiselect\n multiselect.addEventListener('mousedown', () => {\n wrapper.setAttribute('data-mousedown', 'true');\n });\n multiselect.addEventListener('mouseup', () => {\n wrapper.removeAttribute('data-mousedown');\n });\n const searchAjax = (searchterm) => __awaiter(this, void 0, void 0, function* () {\n const searchAjaxURL = `${ajaxURL}${encodeURI(searchterm)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n items += `<label class=\"tag\"><input type=\"checkbox\" name=\"${multiselect.hasAttribute('data-name') ? multiselect.getAttribute('data-name') : 'tags'}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n multiselect.insertAdjacentHTML('beforeend', `${items}`);\n filterList(multiselect, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n });\n }\n}\nexport default iamMultiselect;\n"],"names":["filterList","component","search","label","searchValue","labelText","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamMultiselect","template","multiselect","form","wrapper","button","order","innerLabel","ajaxURL","observer","mutations","mutationRecord","setItem","inputToSet","checkbox","searchAjax","hoverTimeout","event","inputToCancel","activeElement","arrCheckboxes","activeIndex","prevCheckbox","a","b","nextCheckbox","activeValue","checkLastTag","lastTag","lastTagInput","searchterm","searchAjaxURL","signal","Cookies","response","items","i","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multiselect.component.min.js","sources":["../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../modules/dropdown.js","multiselect.component.js"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from '../../../node_modules/js-cookie/dist/js.cookie.mjs';\nexport const filterList = (component, search) => {\n Array.from(component.querySelectorAll(`label:not([slot=\"checked\"])`)).forEach((label) => {\n const checkbox = label.querySelector('input');\n const searchValue = checkbox.value;\n const labelText = label.textContent;\n if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||\n labelText.toLowerCase().includes(search.value.toLowerCase())) {\n label.removeAttribute('slot');\n }\n else {\n label.setAttribute('slot', 'notmatched');\n }\n });\n};\nexport const searchAjax = (component, search, callback) => __awaiter(void 0, void 0, void 0, function* () {\n const searchterm = search.value;\n const ajaxURL = component.getAttribute('data-url');\n const firstInput = component.querySelector('input');\n console.log(firstInput);\n const inputType = firstInput && firstInput.hasAttribute('type') ? firstInput.getAttribute('type') : 'checkbox';\n let inputName = firstInput && firstInput.hasAttribute('name') ? firstInput.getAttribute('name') : 'tags';\n if (component.hasAttribute('data-name'))\n inputName = component.hasAttribute('data-name');\n const searchAjaxURL = `${ajaxURL}?search_query=${encodeURI(searchterm)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n if (!component.querySelector(`[value=\"${response['data'][i].value}\"]`))\n items += `<label class=\"tag dropdown__option\"><input type=\"${inputType}\" name=\"${component.hasAttribute('data-name') ? component.getAttribute('data-name') : inputName}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n component.insertAdjacentHTML('beforeend', `${items}`);\n callback(component, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const setTag = (tag) => {\n const input = tag.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n tag.setAttribute('slot', 'checked');\n tag.setAttribute('data-content', tag.textContent);\n let tags = [];\n if (localStorage.getItem('tags-' + inputName) != null)\n tags = JSON.parse(localStorage.getItem('tags-' + inputName));\n if (!tags.includes(tag.textContent)) {\n tags.push(tag.textContent);\n localStorage.setItem('tags-' + inputName, JSON.stringify(tags));\n }\n let tagIndex = tags.indexOf(tag.textContent) + 1;\n if (tagIndex > 23)\n tagIndex = 1;\n tag === null || tag === void 0 ? void 0 : tag.classList.add(`wider-colour-${tagIndex + 1}`);\n};\nexport const addKeyboardEvents = (dropdown, search) => {\n search.addEventListener('keydown', (e) => {\n var _a;\n switch (e.keyCode) {\n case 40: // down\n e.stopPropagation();\n e.preventDefault();\n (_a = dropdown.querySelector('label:not([slot=\"checked\"]) input')) === null || _a === void 0 ? void 0 : _a.focus();\n break;\n }\n });\n dropdown.addEventListener('keydown', (event) => {\n var _a, _b, _c;\n const topLevelmenuItems = dropdown.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot=\"checked\"]) > input');\n const menuItems = dropdown.querySelectorAll('a, button, input, label:not([slot=\"checked\"]) > input');\n const activeElement = document.activeElement;\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary, label:not([slot=\"checked\"]) > input')) {\n const activeItem = document.activeElement;\n const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;\n const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;\n switch (event.keyCode // change to event.key to key to use the above variable\n ) {\n case 27: // Esc\n if (activeItem.closest('details')) {\n event.stopPropagation();\n event.preventDefault();\n activeItem.closest('details').removeAttribute('open');\n activeItem.closest('details').querySelector(':scope summary').focus();\n }\n else {\n event.stopPropagation();\n //menuButton.focus();\n }\n break;\n case 32: // Space\n case 13: // Enter\n break;\n case 35: // end\n event.stopPropagation();\n event.preventDefault();\n (_a = dropdown.querySelector('details[open]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n (_b = dropdown.querySelector('details[open]')) === null || _b === void 0 ? void 0 : _b.removeAttribute('open');\n Array.from(menuItems)[0].focus();\n break;\n case 38: // up\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[prevIndex] != undefined)\n Array.from(topLevelmenuItems)[prevIndex].focus();\n else\n Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;\n if (Array.from(subMenuItems)[subPrevIndex] != undefined)\n Array.from(subMenuItems)[subPrevIndex].focus();\n else\n Array.from(subMenuItems)[subMenuItems.length - 1].focus();\n }\n break;\n case 40: // down\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[nextIndex] != undefined)\n Array.from(topLevelmenuItems)[nextIndex].focus();\n else\n Array.from(topLevelmenuItems)[0].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = (_c = activeItem.closest('details')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('a, button, :scope details > summary');\n subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;\n if (Array.from(subMenuItems)[subNextIndex] != undefined)\n Array.from(subMenuItems)[subNextIndex].focus();\n else\n Array.from(subMenuItems)[0].focus();\n }\n break;\n }\n }\n });\n};\n","import { searchAjax, filterList, addKeyboardEvents } from '../../modules/dropdown.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'mutliselect',\n});\nclass iamMultiselect extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/multiselect.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <label for=\"search\" class=\"mb-0\"><span class=\"inner-label label\"></span> <slot name=\"feedback\"></slot>\n <div class=\"outer\">\n <div class=\"wrapper\">\n \n <slot name=\"checked\"></slot>\n <input name=\"search\" id=\"search\" autocomplete=\"off\" required part=\"search-input\"/>\n <span class=\"admin-panel feedback\">This field is required</span>\n <div class=\"admin-panel dropdown\" part=\"dropdown\">\n <slot></slot>\n </div>\n <button id=\"clear\" class=\"btn btn-action \"><span class=\"visually-hidden\">Clear</span></button>\n </div>\n </div>\n </label>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const multiselect = this;\n const form = this.closest('form');\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const search = multiselect.shadowRoot.querySelector('#search');\n const button = multiselect.shadowRoot.querySelector('#clear');\n let order = 0;\n const innerLabel = multiselect.shadowRoot.querySelector('label .inner-label');\n const ajaxURL = this.getAttribute('data-url');\n innerLabel.innerHTML = multiselect.getAttribute('data-label');\n // Make sure the dropdown options are set\n Array.from(this.querySelectorAll(':scope > label')).forEach((label) => {\n var _a;\n label.classList.add('dropdown__option');\n (_a = label === null || label === void 0 ? void 0 : label.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n });\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n multiselect.setAttribute('data-error', 'true');\n // If in form and is required lets watch for the form being submitted\n if (form && multiselect.hasAttribute('data-is-required')) {\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n const targetElement = mutationRecord.target;\n if (targetElement.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n });\n });\n if (form.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n observer.observe(form, {\n attributes: true,\n attributeFilter: ['style', 'class'],\n });\n }\n // Set the correct attributes\n function setItem(inputToSet) {\n if (inputToSet.checked == false) {\n inputToSet.closest('label').removeAttribute('slot');\n inputToSet.closest('label').removeAttribute('style');\n inputToSet.closest('label').removeAttribute('data-order');\n }\n else {\n order++;\n inputToSet.closest('label').setAttribute('slot', 'checked');\n inputToSet.closest('label').setAttribute('style', `--order:${order};`);\n inputToSet.closest('label').setAttribute('data-order', order);\n if (inputToSet.closest('[data-value]')) {\n inputToSet.closest('[data-value]').setAttribute('data-value', inputToSet.closest('label').textContent);\n }\n }\n // check for errors\n if (multiselect.querySelector('label[slot=\"checked\"]')) {\n wrapper.classList.add('filled');\n multiselect.removeAttribute('data-error');\n search.removeAttribute('placeholder');\n }\n else {\n wrapper.classList.remove('filled');\n multiselect.setAttribute('data-error', 'true');\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n }\n }\n // Set on load\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n search.addEventListener('input', () => {\n if (multiselect.hasAttribute('data-url')) {\n if (search.value.length == 3) {\n searchAjax(multiselect, search, filterList);\n }\n }\n else {\n filterList(multiselect, search);\n }\n });\n // Add a delayed hover effect for non hover devices\n let hoverTimeout;\n multiselect.addEventListener('focus', () => {\n multiselect.classList.add('hover');\n clearTimeout(hoverTimeout);\n });\n search.addEventListener('blur', (event) => {\n setTimeout(function () {\n const activeElement = document.activeElement;\n if (activeElement.getAttribute('type') != 'checkbox') {\n if (multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`)) {\n multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`).checked = true;\n setItem(multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`));\n }\n search.value = '';\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n }\n if (multiselect.hasAttribute('data-url')) {\n Array.from(multiselect.querySelectorAll(`label:has(input[type=\"checkbox\"]:not(:checked))`)).forEach((checkbox) => {\n checkbox.remove();\n });\n }\n }, 200);\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 500);\n });\n // Set items\n multiselect.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n const checkbox = event.target.closest('input[type=\"checkbox\"]');\n if (multiselect.hasAttribute('data-single')) {\n Array.from(multiselect.querySelectorAll(`label[slot=\"checked\"] input`)).forEach((inputToCancel) => {\n inputToCancel.checked = false;\n inputToCancel.closest('label').removeAttribute('slot');\n inputToCancel.closest('label').removeAttribute('style');\n inputToCancel.closest('label').removeAttribute('data-order');\n });\n }\n setItem(checkbox);\n search.value = '';\n if (!multiselect.hasAttribute('data-single')) {\n search.focus();\n clearTimeout(hoverTimeout);\n multiselect.classList.add('hover');\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 5000);\n }\n else {\n multiselect.classList.remove('hover');\n }\n }\n });\n // Clear all\n button.addEventListener('click', function () {\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n checkbox.checked = false;\n setItem(checkbox);\n });\n search.focus();\n });\n // Add some keyboard features to keep it accessible\n addKeyboardEvents(this, search);\n multiselect.addEventListener('keydown', function (event) {\n const activeElement = document.activeElement;\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'ArrowLeft':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];\n if (prevCheckbox)\n prevCheckbox.focus();\n else\n search.focus();\n }\n else if (activeElement == multiselect) {\n const options = Array.from(multiselect.querySelectorAll('label[slot=\"checked\"]')).sort(function (a, b) {\n return +a.dataset.order - +b.dataset.order;\n });\n options.pop().focus();\n }\n break;\n case 'ArrowRight':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const nextCheckbox = Array.from(arrCheckboxes)[activeIndex + 1];\n if (nextCheckbox)\n nextCheckbox.focus();\n else\n search.focus();\n }\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n if (activeElement.checked == false)\n activeElement.checked = true;\n else\n activeElement.checked = false;\n }\n setItem(activeElement);\n search.focus();\n break;\n case 'Backspace':\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n activeElement.checked = false;\n setItem(activeElement);\n search.focus();\n }\n break;\n }\n });\n function checkLastTag() {\n if (order == 0)\n return false;\n let lastTag = multiselect.querySelector(`label[data-order=\"${order}\"]`);\n if (!lastTag) {\n lastTag = checkLastTag(order--);\n }\n return lastTag;\n }\n search.addEventListener('keydown', function (event) {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n const match = multiselect.querySelector(`input[value=\"${search.value}\"]:not(:checked)`);\n if (!match)\n search.value = '';\n search.focus();\n break;\n case 'Backspace':\n if (!search.value) {\n const lastTag = checkLastTag(order);\n if (lastTag) {\n const lastTagInput = lastTag.querySelector('input');\n lastTagInput.checked = false;\n setItem(lastTagInput);\n }\n search.focus();\n }\n break;\n }\n });\n // Fix for the inline edit multiselect\n multiselect.addEventListener('mousedown', () => {\n wrapper.setAttribute('data-mousedown', 'true');\n });\n multiselect.addEventListener('mouseup', () => {\n wrapper.removeAttribute('data-mousedown');\n });\n }\n}\nexport default iamMultiselect;\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","e","rejected","result","filterList","component","search","label","searchValue","labelText","searchAjax","callback","searchterm","ajaxURL","firstInput","inputType","inputName","searchAjaxURL","signal","Cookies","response","items","error","addKeyboardEvents","dropdown","_a","event","_b","_c","topLevelmenuItems","menuItems","activeItem","prevIndex","nextIndex","subMenuItems","iamMultiselect","template","multiselect","form","wrapper","button","order","innerLabel","observer","mutations","mutationRecord","setItem","inputToSet","checkbox","hoverTimeout","inputToCancel","activeElement","arrCheckboxes","activeIndex","prevCheckbox","a","b","nextCheckbox","checkLastTag","lastTag","lastTagInput"],"mappings":"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","x_google_ignoreList":[0]}
|