@iamproperty/components 7.8.2--beta1 → 7.8.2--beta2
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/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js +3 -3
- 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 +3 -3
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/banner/banner.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/bone/bone.component.min.js +1 -1
- package/assets/js/components/button/button.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js +6 -6
- package/assets/js/components/card/card.component.min.js.map +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/config/config.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 +1 -1
- package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js.map +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.min.js +2 -2
- 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 +14 -1
- package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.min.js +1 -1
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- 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 +4 -4
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.min.js +5 -5
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/split-button/split-button.component.min.js +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/std-nav/std-nav.component.min.js +1 -1
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +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.min.js +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +6 -6
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js +2 -2
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +6 -3
- package/assets/js/modules/advanced-select.test.js +28 -0
- package/assets/js/modules/applied-filters.test.js +21 -0
- package/assets/js/modules/card.module.js +3 -2
- package/assets/js/modules/card.module.test.js +20 -0
- package/assets/js/modules/carousel.test.js +18 -0
- package/assets/js/modules/chart.module.test.js +22 -0
- package/assets/js/modules/chart.test.js +15 -0
- package/assets/js/modules/content.test.js +20 -0
- package/assets/js/modules/data-layer.test.js +12 -0
- package/assets/js/modules/dialogs.test.js +13 -0
- package/assets/js/modules/drawer.test.js +16 -0
- package/assets/js/modules/dropdown.test.js +31 -0
- package/assets/js/modules/dynamicEvents.test.js +19 -0
- package/assets/js/modules/fileupload.test.js +17 -0
- package/assets/js/modules/filterlist.test.js +18 -0
- package/assets/js/modules/{helper.test.js → helpers.test.js} +42 -2
- package/assets/js/modules/integration-tests.test.js +12 -0
- package/assets/js/modules/milestone-group.test.js +18 -0
- package/assets/js/modules/milestone.test.js +31 -0
- package/assets/js/modules/modal.test.js +18 -0
- package/assets/js/modules/nav.test.js +37 -0
- package/assets/js/modules/notification.test.js +11 -0
- package/assets/js/modules/orderablelist.test.js +15 -0
- package/assets/js/modules/pagination.test.js +21 -0
- package/assets/js/modules/password.test.js +33 -0
- package/assets/js/modules/table.test.js +42 -0
- package/assets/js/modules/tabs.test.js +23 -0
- package/assets/js/modules/test-dom.js +725 -0
- package/assets/js/modules/test-globals.js +7 -0
- package/assets/js/modules/test-utils.js +26 -0
- package/assets/js/modules/test.js +20 -1
- package/assets/js/modules/testimonial.test.js +14 -0
- package/assets/js/modules/videos.test.js +37 -0
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/components/modal.component.scss +1 -2
- package/assets/ts/components/multiselect/multiselect.component.ts +20 -1
- package/assets/ts/modules/advanced-select.test.ts +33 -0
- package/assets/ts/modules/advanced-select.ts +6 -2
- package/assets/ts/modules/applied-filters.test.ts +25 -0
- package/assets/ts/modules/card.module.test.ts +24 -0
- package/assets/ts/modules/card.module.ts +2 -1
- package/assets/ts/modules/carousel.test.ts +27 -0
- package/assets/ts/modules/chart.module.test.ts +26 -0
- package/assets/ts/modules/chart.test.ts +19 -0
- package/assets/ts/modules/content.test.ts +24 -0
- package/assets/ts/modules/data-layer.test.ts +15 -0
- package/assets/ts/modules/dialogs.test.ts +17 -0
- package/assets/ts/modules/drawer.test.ts +20 -0
- package/assets/ts/modules/dropdown.test.ts +38 -0
- package/assets/ts/modules/dynamicEvents.test.ts +23 -0
- package/assets/ts/modules/fileupload.test.ts +21 -0
- package/assets/ts/modules/filterlist.test.ts +22 -0
- package/assets/ts/modules/{helper.test.ts → helpers.test.ts} +63 -2
- package/assets/ts/modules/integration-tests.test.ts +15 -0
- package/assets/ts/modules/milestone-group.test.ts +22 -0
- package/assets/ts/modules/milestone.test.ts +35 -0
- package/assets/ts/modules/modal.test.ts +22 -0
- package/assets/ts/modules/nav.test.ts +41 -0
- package/assets/ts/modules/notification.test.ts +15 -0
- package/assets/ts/modules/orderablelist.test.ts +19 -0
- package/assets/ts/modules/pagination.test.ts +25 -0
- package/assets/ts/modules/password.test.ts +40 -0
- package/assets/ts/modules/table.test.ts +57 -0
- package/assets/ts/modules/tabs.test.ts +27 -0
- package/assets/ts/modules/test-dom.ts +798 -0
- package/assets/ts/modules/test-globals.ts +7 -0
- package/assets/ts/modules/test-utils.ts +29 -0
- package/assets/ts/modules/test.ts +28 -1
- package/assets/ts/modules/testimonial.test.ts +17 -0
- package/assets/ts/modules/videos.test.ts +33 -0
- package/dist/components.es.js +24 -24
- package/dist/components.umd.js +109 -109
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advanced-select.component.min.js","sources":["../../modules/advanced-select.js","../../modules/helpers.js","advanced-select.component.js"],"sourcesContent":["function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false) {\n var _a, _b, _c;\n let currentFocus = -1;\n const datalistWrapper = datalist.closest('.datalist__wrapper') ? datalist.closest('.datalist__wrapper') : datalist;\n datalistWrapper.setAttribute('slot', 'datalist');\n if (advancedSelect.querySelector('.suffix')) {\n (_a = advancedSelect.querySelector('.suffix')) === null || _a === void 0 ? void 0 : _a.setAttribute('slot', 'suffix');\n (_b = advancedSelect.shadowRoot.querySelector('.suffix')) === null || _b === void 0 ? void 0 : _b.innerHTML = '<slot name=\"suffix\"></slot>';\n (_c = advancedSelect.shadowRoot.querySelector('.suffix')) === null || _c === void 0 ? void 0 : _c.classList = \"\";\n }\n // Hide the default datalist\n displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));\n displayInputField.setAttribute('list', '');\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-placeholder', displayInputField.getAttribute('placeholder'));\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));\n const checkIfEmpty = () => {\n if (displayInputField.value == \"\") {\n advancedSelect.classList.add('has-empty-input');\n displayInputField.classList.add('empty');\n }\n else {\n advancedSelect.classList.remove('has-empty-input');\n displayInputField.classList.remove('empty');\n }\n };\n checkIfEmpty();\n displayInputField.addEventListener('focus', function () {\n if (displayInputField.value != \"\") {\n displayInputField.setAttribute('placeholder', displayInputField.value);\n displayInputField.setAttribute('data-value', displayInputField.value);\n }\n displayInputField.value = '';\n });\n displayInputField.addEventListener('blur', function () {\n if (displayInputField.hasAttribute('data-value')) {\n displayInputField.value = displayInputField.getAttribute('data-value');\n }\n if (displayInputField.hasAttribute('data-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-placeholder'));\n });\n for (const option of datalist.options) {\n if (option.innerHTML == '')\n option.innerHTML = option.value;\n }\n datalist.addEventListener('click', function (event) {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.closest('option')) {\n const option = event.target.closest('option');\n const optionText = ((_a = option.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || option.value;\n // Store actual value on the original input\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = option.value;\n originalInput.setAttribute('value', option.value);\n }\n // Show label text in the visible field\n displayInputField.value = optionText;\n displayInputField.setAttribute('data-value', optionText);\n displayInputField.setAttribute('placeholder', optionText);\n if (typeof window.triggerDynamicEvent == 'function')\n window.triggerDynamicEvent(displayInputField);\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n }\n option.classList.add('active');\n checkIfEmpty();\n setTimeout(() => {\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: option.value,\n text: optionText,\n },\n }));\n }, 0);\n }\n });\n displayInputField.addEventListener('input', function () {\n displayInputField.removeAttribute('data-value');\n currentFocus = -1;\n checkIfEmpty();\n if (advancedSelect.tagName != \"IAM-ADDRESS-LOOKUP\") {\n const text = displayInputField.value.toUpperCase();\n for (const option of datalist.options) {\n const optionText = (option.textContent || option.value).toUpperCase();\n if (optionText.indexOf(text) > -1) {\n option.style.display = 'block';\n option.classList.remove('hide');\n }\n else {\n option.style.display = 'none';\n option.classList.add('hide');\n }\n }\n }\n });\n advancedSelect.addEventListener('keydown', function (e) {\n if (e.keyCode == 40) {\n currentFocus++;\n addActive(datalist.options);\n }\n else if (e.keyCode == 38) {\n currentFocus--;\n addActive(datalist.options);\n }\n else if (e.keyCode == 13 && !e.target.closest('form')) {\n e.preventDefault();\n if (currentFocus > -1) {\n /*and simulate a click on the \"active\" item:*/\n if (datalist.options)\n datalist.options[currentFocus].click();\n }\n }\n });\n function addActive(x) {\n if (!x)\n return false;\n removeActive(x);\n if (currentFocus >= x.length)\n currentFocus = 0;\n if (currentFocus < 0)\n currentFocus = x.length - 1;\n x[currentFocus].classList.add('active');\n }\n function removeActive(x) {\n if (!x)\n return false;\n for (let i = 0; i < x.length; i++) {\n x[i].classList.remove('active');\n }\n }\n // Add the empty button\n if (displayInputField.closest('.input__wrapper')) {\n displayInputField.closest('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n else if (advancedSelect.shadowRoot.querySelector('.input__wrapper')) {\n console.log(advancedSelect.shadowRoot.querySelector('.input__wrapper'));\n advancedSelect.shadowRoot.querySelector('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n const emptyField = () => {\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = '';\n originalInput.setAttribute('value', '');\n }\n displayInputField.removeAttribute('placeholder');\n if (displayInputField.hasAttribute('data-original-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));\n displayInputField.removeAttribute('data-value');\n displayInputField.value = '';\n displayInputField.classList.add('empty');\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n optionInner.classList.remove('hide');\n optionInner.removeAttribute('style');\n }\n const updateEvent = new CustomEvent('close-button-pressed');\n advancedSelect.dispatchEvent(updateEvent);\n // Notify consumers the value was cleared\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: '',\n text: '',\n },\n }));\n checkIfEmpty();\n };\n const closeBtn = advancedSelect.querySelector('.clear-search') ? advancedSelect.querySelector('.clear-search') : advancedSelect.shadowRoot.querySelector('.clear-search');\n closeBtn.addEventListener('click', function (e) {\n emptyField();\n });\n advancedSelect.addEventListener('empty', function (e) {\n emptyField();\n });\n}\nexport default advancedSelect;\n","/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import advancedSelect from '../../modules/advanced-select';\nimport { safeID } from '../../modules/helpers';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Advanced select',\n});\nclass iamAdvancedSelect 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/advanced-select.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\"><span class=\"input__wrapper\"><slot></slot></span><span class=\"suffix fa-regular fa-chevron-down\"></span></span>\n <slot name=\"datalist\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n // Make the datalist a dropdown\n this.classList.add('dropdown__wrapper');\n // Clone original input field, re-name and use for display purposes\n const inputField = this.querySelector('input');\n if (!inputField)\n return;\n const displayInputField = inputField.cloneNode();\n displayInputField.value = '';\n displayInputField.removeAttribute('value');\n displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);\n inputField.removeAttribute('data-change-events');\n displayInputField.removeAttribute('id');\n if (this.querySelector('label'))\n this.classList.add('has-label');\n let datalist = this.querySelector('datalist');\n inputField.after(displayInputField);\n // Hide original input field\n inputField.setAttribute('type', 'hidden');\n // if data list does not exist then create one and append\n if (!datalist) {\n datalist = document.createElement('datalist');\n const listID = safeID('list');\n datalist.setAttribute('id', listID);\n searchWrapper.appendChild(datalist);\n displayInputField.setAttribute('list', listID);\n }\n else {\n displayInputField.setAttribute('list', datalist.id);\n }\n if (datalist && datalist.querySelector(`[value=\"${inputField.value}\"]`)) {\n (_a = datalist.querySelector(`[value=\"${inputField.value}\"]`)) === null || _a === void 0 ? void 0 : _a.classList.add('active');\n }\n advancedSelect(this, displayInputField, datalist);\n // Apply initial value passed to the component host or original input\n const initialValue = this.getAttribute('value') || inputField.value || '';\n if (!initialValue)\n return;\n inputField.value = initialValue;\n inputField.setAttribute('value', initialValue);\n let displayValue = initialValue;\n if (datalist) {\n const selectedOption = Array.from(datalist.querySelectorAll('option')).find((option) => {\n return option.getAttribute('value') === initialValue;\n });\n if (selectedOption) {\n displayValue = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || selectedOption.value;\n }\n Array.from(datalist.querySelectorAll('option')).forEach((option) => {\n const isMatch = option.getAttribute('value') === initialValue;\n option.classList.toggle('active', isMatch);\n });\n }\n displayInputField.value = displayValue;\n displayInputField.setAttribute('placeholder', displayValue);\n displayInputField.setAttribute('data-value', displayValue);\n displayInputField.removeAttribute('value');\n }\n}\nexport default iamAdvancedSelect;\n"],"names":["advancedSelect","displayInputField","datalist","isSearch","_a","_b","_c","currentFocus","checkIfEmpty","option","event","optionText","originalInput","optionInner","text","e","addActive","x","removeActive","i","emptyField","updateEvent","snake","str","safeID","iamAdvancedSelect","template","inputField","listID","initialValue","displayValue","selectedOption","isMatch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advanced-select.component.min.js","sources":["../../modules/advanced-select.js","../../modules/helpers.js","advanced-select.component.js"],"sourcesContent":["function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false) {\n var _a;\n let currentFocus = -1;\n const datalistWrapper = datalist.closest('.datalist__wrapper') ? datalist.closest('.datalist__wrapper') : datalist;\n datalistWrapper.setAttribute('slot', 'datalist');\n if (advancedSelect.querySelector('.suffix')) {\n (_a = advancedSelect.querySelector('.suffix')) === null || _a === void 0 ? void 0 : _a.setAttribute('slot', 'suffix');\n const shadowSuffix = advancedSelect.shadowRoot.querySelector('.suffix');\n if (shadowSuffix) {\n shadowSuffix.innerHTML = '<slot name=\"suffix\"></slot>';\n shadowSuffix.className = '';\n }\n }\n // Hide the default datalist\n displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));\n displayInputField.setAttribute('list', '');\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-placeholder', displayInputField.getAttribute('placeholder'));\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));\n const checkIfEmpty = () => {\n if (displayInputField.value == \"\") {\n advancedSelect.classList.add('has-empty-input');\n displayInputField.classList.add('empty');\n }\n else {\n advancedSelect.classList.remove('has-empty-input');\n displayInputField.classList.remove('empty');\n }\n };\n checkIfEmpty();\n displayInputField.addEventListener('focus', function () {\n if (displayInputField.value != \"\") {\n displayInputField.setAttribute('placeholder', displayInputField.value);\n displayInputField.setAttribute('data-value', displayInputField.value);\n }\n displayInputField.value = '';\n });\n displayInputField.addEventListener('blur', function () {\n if (displayInputField.hasAttribute('data-value')) {\n displayInputField.value = displayInputField.getAttribute('data-value');\n }\n if (displayInputField.hasAttribute('data-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-placeholder'));\n });\n for (const option of datalist.options) {\n if (option.innerHTML == '')\n option.innerHTML = option.value;\n }\n datalist.addEventListener('click', function (event) {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.closest('option')) {\n const option = event.target.closest('option');\n const optionText = ((_a = option.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || option.value;\n // Store actual value on the original input\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = option.value;\n originalInput.setAttribute('value', option.value);\n }\n // Show label text in the visible field\n displayInputField.value = optionText;\n displayInputField.setAttribute('data-value', optionText);\n displayInputField.setAttribute('placeholder', optionText);\n if (typeof window.triggerDynamicEvent == 'function')\n window.triggerDynamicEvent(displayInputField);\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n }\n option.classList.add('active');\n checkIfEmpty();\n setTimeout(() => {\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: option.value,\n text: optionText,\n },\n }));\n }, 0);\n }\n });\n displayInputField.addEventListener('input', function () {\n displayInputField.removeAttribute('data-value');\n currentFocus = -1;\n checkIfEmpty();\n if (advancedSelect.tagName != \"IAM-ADDRESS-LOOKUP\") {\n const text = displayInputField.value.toUpperCase();\n for (const option of datalist.options) {\n const optionText = (option.textContent || option.value).toUpperCase();\n if (optionText.indexOf(text) > -1) {\n option.style.display = 'block';\n option.classList.remove('hide');\n }\n else {\n option.style.display = 'none';\n option.classList.add('hide');\n }\n }\n }\n });\n advancedSelect.addEventListener('keydown', function (e) {\n if (e.keyCode == 40) {\n currentFocus++;\n addActive(datalist.options);\n }\n else if (e.keyCode == 38) {\n currentFocus--;\n addActive(datalist.options);\n }\n else if (e.keyCode == 13 && !e.target.closest('form')) {\n e.preventDefault();\n if (currentFocus > -1) {\n /*and simulate a click on the \"active\" item:*/\n if (datalist.options)\n datalist.options[currentFocus].click();\n }\n }\n });\n function addActive(x) {\n if (!x)\n return false;\n removeActive(x);\n if (currentFocus >= x.length)\n currentFocus = 0;\n if (currentFocus < 0)\n currentFocus = x.length - 1;\n x[currentFocus].classList.add('active');\n }\n function removeActive(x) {\n if (!x)\n return false;\n for (let i = 0; i < x.length; i++) {\n x[i].classList.remove('active');\n }\n }\n // Add the empty button\n if (displayInputField.closest('.input__wrapper')) {\n displayInputField.closest('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n else if (advancedSelect.shadowRoot.querySelector('.input__wrapper')) {\n console.log(advancedSelect.shadowRoot.querySelector('.input__wrapper'));\n advancedSelect.shadowRoot.querySelector('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n const emptyField = () => {\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = '';\n originalInput.setAttribute('value', '');\n }\n displayInputField.removeAttribute('placeholder');\n if (displayInputField.hasAttribute('data-original-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));\n displayInputField.removeAttribute('data-value');\n displayInputField.value = '';\n displayInputField.classList.add('empty');\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n optionInner.classList.remove('hide');\n optionInner.removeAttribute('style');\n }\n const updateEvent = new CustomEvent('close-button-pressed');\n advancedSelect.dispatchEvent(updateEvent);\n // Notify consumers the value was cleared\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: '',\n text: '',\n },\n }));\n checkIfEmpty();\n };\n const closeBtn = advancedSelect.querySelector('.clear-search') ? advancedSelect.querySelector('.clear-search') : advancedSelect.shadowRoot.querySelector('.clear-search');\n closeBtn.addEventListener('click', function (e) {\n emptyField();\n });\n advancedSelect.addEventListener('empty', function (e) {\n emptyField();\n });\n}\nexport default advancedSelect;\n","/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import advancedSelect from '../../modules/advanced-select';\nimport { safeID } from '../../modules/helpers';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Advanced select',\n});\nclass iamAdvancedSelect 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/advanced-select.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\"><span class=\"input__wrapper\"><slot></slot></span><span class=\"suffix fa-regular fa-chevron-down\"></span></span>\n <slot name=\"datalist\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n // Make the datalist a dropdown\n this.classList.add('dropdown__wrapper');\n // Clone original input field, re-name and use for display purposes\n const inputField = this.querySelector('input');\n if (!inputField)\n return;\n const displayInputField = inputField.cloneNode();\n displayInputField.value = '';\n displayInputField.removeAttribute('value');\n displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);\n inputField.removeAttribute('data-change-events');\n displayInputField.removeAttribute('id');\n if (this.querySelector('label'))\n this.classList.add('has-label');\n let datalist = this.querySelector('datalist');\n inputField.after(displayInputField);\n // Hide original input field\n inputField.setAttribute('type', 'hidden');\n // if data list does not exist then create one and append\n if (!datalist) {\n datalist = document.createElement('datalist');\n const listID = safeID('list');\n datalist.setAttribute('id', listID);\n searchWrapper.appendChild(datalist);\n displayInputField.setAttribute('list', listID);\n }\n else {\n displayInputField.setAttribute('list', datalist.id);\n }\n if (datalist && datalist.querySelector(`[value=\"${inputField.value}\"]`)) {\n (_a = datalist.querySelector(`[value=\"${inputField.value}\"]`)) === null || _a === void 0 ? void 0 : _a.classList.add('active');\n }\n advancedSelect(this, displayInputField, datalist);\n // Apply initial value passed to the component host or original input\n const initialValue = this.getAttribute('value') || inputField.value || '';\n if (!initialValue)\n return;\n inputField.value = initialValue;\n inputField.setAttribute('value', initialValue);\n let displayValue = initialValue;\n if (datalist) {\n const selectedOption = Array.from(datalist.querySelectorAll('option')).find((option) => {\n return option.getAttribute('value') === initialValue;\n });\n if (selectedOption) {\n displayValue = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || selectedOption.value;\n }\n Array.from(datalist.querySelectorAll('option')).forEach((option) => {\n const isMatch = option.getAttribute('value') === initialValue;\n option.classList.toggle('active', isMatch);\n });\n }\n displayInputField.value = displayValue;\n displayInputField.setAttribute('placeholder', displayValue);\n displayInputField.setAttribute('data-value', displayValue);\n displayInputField.removeAttribute('value');\n }\n}\nexport default iamAdvancedSelect;\n"],"names":["advancedSelect","displayInputField","datalist","isSearch","_a","currentFocus","shadowSuffix","checkIfEmpty","option","event","optionText","originalInput","optionInner","text","e","addActive","x","removeActive","i","emptyField","updateEvent","snake","str","safeID","iamAdvancedSelect","template","_b","inputField","listID","initialValue","displayValue","selectedOption","isMatch"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/function E(t,m){const g=t.closest("dialog"),b=(e,o,r=!1)=>{let l=!1,a=o.getAttribute("name");if(!a)return!1;a.includes("[]")&&(a=a.replace("[]",`[${o.value}]`));let s=e.querySelector(`[data-name="${a}"]`);s&&o.getAttribute("type")=="checkbox"&&(l=!o.checked);const c=o.getAttribute("data-filter-text");if(s||(s=document.createElement("button"),e.appendChild(s)),s.setAttribute("type","button"),s.classList.add("filter"),s.classList.add("tag"),r||s.classList.add("tag--not-set"),s.setAttribute("data-name",a),s.innerHTML=c.replace("$value",o.value),(!o.value||l)&&s.remove(),o.parentNode.closest("[data-filter-text]")){const i=o.parentNode.closest("[data-filter-text]");let v=!0;if(a="",i.querySelectorAll("input").forEach((u,n)=>{const p=u.getAttribute("name");if(a+=`${n!=0?",":""}${p}`,e.querySelector(`[data-name="${p}"]`)&&e.querySelector(`[data-name="${p}"]`).remove(),u.value){const d=document.createElement("button");d.setAttribute("type","button"),d.classList.add("filter"),d.classList.add("tag"),r||s.classList.add("tag--not-set"),d.setAttribute("data-name",p),d.innerHTML=c.replace("$value",u.value),e.appendChild(d)}else v=!1}),e.querySelector(`[data-name="${a}"]`)&&e.querySelector(`[data-name="${a}"]`).remove(),v){let u=i.getAttribute("data-filter-text");i.querySelectorAll("input").forEach((p,d)=>{const y=p.getAttribute("name");e.querySelector(`[data-name="${y}"]`)&&e.querySelector(`[data-name="${y}"]`).remove(),u=u.replace(`$${d+1}`,p.value)});const n=document.createElement("button");n.setAttribute("type","button"),n.classList.add("filter"),n.classList.add("tag"),r||s.classList.add("tag--not-set"),n.setAttribute("data-name",a),n.innerHTML=u,e.appendChild(n)}}},f=(e=!1)=>{m.innerHTML="",Array.from(t.querySelectorAll('input:is([type="checkbox"],[type="radio"]):checked, input:not([type="checkbox"], [type="radio"])')).forEach(o=>{b(m,o,e)})};f(!0),Array.from(t.querySelectorAll("input[data-filter-text]")).forEach(e=>{e.addEventListener("change",function(o){var r;const l=!t.closest("dialog");if(!t.hasAttribute("data-keep-same")&&!t.querySelector("dialog")&&b(m,e,l),l){const a=new CustomEvent("update");(r=t.parentElement.closest("iam-applied-filters"))===null||r===void 0||r.dispatchEvent(a)}})});const h=e=>{if(!e?.hasAttribute("data-name"))return!1;const o=e.getAttribute("data-name").split(",");for(let r=0;r<o.length;r++){const l=o[r];let a=`[name="${l}"]`;l.match(/\[(.*)\]/)&&(a=`[value="${l.replace(/.*\[(.*)\]/,"$1")}"]`);const s=t.querySelectorAll(a);for(let c=0;c<s.length;c++){const i=s[c];i.getAttribute("type")!="radio"&&i.getAttribute("type")!="checkbox"?i.value="":i.checked=!1;const v=new CustomEvent("change");i?.dispatchEvent(v)}}e.remove(),f()};if(m.addEventListener("click",function(e){if(e&&e.target instanceof HTMLElement&&e.target.closest(".filter")){const o=e.target.closest(".filter"),r=o.getAttribute("data-name");h(o);const l=new CustomEvent("filter-clicked",{detail:r});if(t.dispatchEvent(l),t.querySelector("dialog iam-applied-filters")){const a=new CustomEvent("filter",{detail:r});t.querySelector("dialog iam-applied-filters").dispatchEvent(a)}}},!1),t.addEventListener("filter",e=>{const o=t.shadowRoot.querySelector(`[data-name="${e.detail}"]`);h(o)}),t.addEventListener("set-filters",e=>{f(!0)}),g){const e=t.querySelector(".btn-primary")?t.querySelector(".btn-primary"):t.shadowRoot.querySelector(".btn-primary");e?.addEventListener("click",o=>{const r=new CustomEvent("update"),l=new CustomEvent("submit");if(t.dispatchEvent(l),t.parentElement.closest("iam-applied-filters")&&t.parentElement.closest("iam-applied-filters").dispatchEvent(r),t.parentElement&&t.parentElement.closest("iam-applied-filters")&&!t.parentElement.closest("iam-applied-filters").closest("dialog")){const a=new CustomEvent("set-filters");t.parentElement.closest("iam-applied-filters").dispatchEvent(a)}if(f(!0),!t.querySelector(".btn-primary").hasAttribute("command")){g.close();const a=new Event("close");g.dispatchEvent(a)}})}}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Applied Filters"});class k extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const m=this.classList.toString(),g=document.createElement("template");g.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"banner"});class i extends HTMLElement{constructor(){var t;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const M=t=>t.charAt(0).toUpperCase()+t.slice(1),q=t=>t.replace(/_/g," "),P=(t,r)=>{for(let a=1;a<=10;a++){if(t.hasAttribute(`data-colour-${a}`)){const o=t.getAttribute(`data-colour-${a}`);t.style.setProperty(`--chart-colour-${a}`,`var(--chart-colour-${o})`),t.style.setProperty(`--chart-colour-${a}-hover`,`var(--chart-colour-${o}-hover)`)}Array.from(r.querySelectorAll(`[data-colour-${a}]`)).forEach(o=>{const e=o.getAttribute(`data-colour-${a}`);o.style.setProperty(`--chart-colour-${a}`,`var(--chart-colour-${e})`),o.style.setProperty(`--chart-colour-${a}-hover`,`var(--chart-colour-${e}-hover)`)})}return!0},k=(t,r,a)=>{if(t.tagName=="IAM-DOUGHNUTCHART")return R(t,r,a),!0;const o=r.querySelector(".chart__key");o.innerHTML="";const e=r.querySelector(".chart__guidelines");e.innerHTML="";const i=r.querySelector(".chart__yaxis");i.innerHTML="",Array.from(r.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map(c=>{c.remove()});const{xaxis:n}=g(t);return A(t,a),T(r,a,o),X(t,e),E(t,i),n&&Y(r),!0},R=(t,r,a)=>{const o=r.querySelector(".chart__key");return o.innerHTML="",Array.from(r.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map(e=>{e.remove()}),A(t,a),T(r,a,o),H(r),!0},V=function(t,r){const a=r.querySelector(".chart");a.addEventListener("mousemove",n=>{if(n&&n.target instanceof HTMLElement&&n.target.closest("td:not(:first-child")){const d=n.target.closest("td:not(:first-child").getBoundingClientRect(),h=n.clientX-d.left,l=n.clientY-d.top;a.setAttribute("style",`--cursor-x: ${h}px; --cursor-y: ${l}px;`)}});const o=r.querySelectorAll("label");Array.from(o).forEach(n=>{r.querySelector(`input#${n.getAttribute("for")}`).checked?n.setAttribute("part","key-checked"):n.setAttribute("part","key-unchecked")});const e=t.querySelector("table"),i=r.querySelector("table");r.addEventListener("change",function(n){const c=n.target,d=new CustomEvent("view-change",{detail:{"data-dataset":c.getAttribute("data-dataset"),label:c.getAttribute("data-label"),checked:c.checked}});t.dispatchEvent(d),Array.from(o).forEach(h=>{var l;!((l=r.querySelector(`input#${h.getAttribute("for")}`))===null||l===void 0)&&l.checked?h.setAttribute("part","key-checked"):h.setAttribute("part","key-unchecked")}),i.innerHTML=e.innerHTML,A(t,i),t.tagName=="IAM-DOUGHNUTCHART"&&H(r)})},U=function(t,r){const a=t.querySelector("table"),o=r.querySelector("table"),e=(d,h)=>{h.disconnect(),c.disconnect();for(const l of d)(l.attributeName=="class"||l.type==="attributes"||l.type==="attributes")&&(o.innerHTML=a.innerHTML,k(t,r,o));h.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0})},i=(d,h)=>{h.disconnect(),c.disconnect();for(const l of d)(l.type=="characterData"||l.type=="childList"&&l.addedNodes.length)&&(o.innerHTML=a.innerHTML,k(t,r,o));h.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0})},n=new MutationObserver(i),c=new MutationObserver(e);return n.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0}),!0};function C(t,r){r>1&&(t=t-.25);const a=Math.cos(2*Math.PI*t),o=Math.sin(2*Math.PI*t);return[a*100,o*100]}const g=function(t){const r=t.shadowRoot.querySelector(".chart__wrapper table"),a=t.hasAttribute("data-min")?t.getAttribute("data-min"):0,o=t.hasAttribute("data-max")?t.getAttribute("data-max"):j(t,r),e=t.hasAttribute("data-yaxis")?t.getAttribute("data-yaxis").split(","):[],i=t.hasAttribute("data-guidelines")?t.getAttribute("data-guidelines").split(","):[],n=t.hasAttribute("data-xaxis")?t.getAttribute("data-xaxis").split(","):null;return{min:a,max:o,yaxis:e,xaxis:n,guidelines:i}};function j(t,r){const a=t.classList.contains("chart--stacked")?"tbody tr":"tbody td:not(:first-child)",o=Array.from(r.querySelectorAll(a)).map(i=>i.getAttribute("data-numeric")),e=Math.max(...o);return Math.ceil(e)}const x=function(t,r,a,o){let e=String(t);e=e.replace("\xA3",""),e=e.replace("%",""),e=e.replace(",",""),e=Number.parseFloat(e);let i=(e-r)/(a-r)*100,n=i,c=0;return o&&o!=0&&(c=(o-r)/(a-r)*100),r<0&&(c=Math.abs(r/(a-r)*100),e<0?(i=c-i,c=c-i,n=c):(i=i-c,n=i+c)),{percent:i,axis:n,bottom:c}},A=function(t,r){Array.from(r.querySelectorAll("tbody tr")).forEach(e=>{let i=0;Array.from(e.querySelectorAll("td:not(:first-child)")).forEach(n=>{const c=n.cloneNode(!0);Array.from(c.querySelectorAll("*")).forEach(l=>{l.remove()});const d=parseFloat(c.textContent.replace("\xA3","").replace("%","").replace(",",""));n.setAttribute("data-numeric",d),n.setAttribute("data-value",c.textContent),getComputedStyle(n).display!="none"&&(i+=d),Array.from(n.querySelectorAll("a, button")).forEach((l,m)=>{m==0&&l.insertAdjacentHTML("beforeBegin","<hr/>"),l.classList.add("btn"),l.classList.add("btn-tertiary")})}),e.setAttribute("data-numeric",i)});const{min:a,max:o}=g(t);Array.from(r.querySelectorAll("tbody tr")).forEach((e,i)=>{const n=e.querySelector("td:first-child, th:first-child")?e.querySelector("td:first-child, th:first-child").textContent:"";e.setAttribute("part","group");const c=(e.getAttribute("data-numeric")-a)/(o-a)*100;e.style.setProperty("--percent",`${c}%`),Array.from(e.querySelectorAll("td:not([data-label])")).forEach((l,m)=>{m==0?l.setAttribute("part","xaxis-label"):l.setAttribute("part","value"),e.querySelectorAll("td").length>2&&l.setAttribute("data-label",r.querySelectorAll("thead th")[m].textContent)});const d=e.hasAttribute("data-min")?e.getAttribute("data-min"):a,h=e.hasAttribute("data-max")?e.getAttribute("data-max"):o;if(d<0){const l=Math.abs(d/(h-d)*100);t.setAttribute("style",`--min-bottom: ${l}%;`)}e.style.setProperty("--row-index",i+1),Array.from(e.querySelectorAll('td[data-numeric]:not([data-label="Min"]):not([data-label="Max"]):not(:first-child)')).forEach(l=>{if(getComputedStyle(l).display=="none")return;const f=l.innerHTML,_=Number.parseFloat(l.getAttribute("data-numeric")),s=Number.parseFloat(l.getAttribute("data-start"));if(l.querySelector("span[data-group]")||(l.innerHTML=`<span data-group="${n}" ${l.hasAttribute("data-label")?`data-label="${l.getAttribute("data-label")}"`:""} part="popover">${f}</span>`),!l.hasAttribute("style")){const{percent:u,bottom:y,axis:p}=x(_,d,h,s);l.setAttribute("data-percent",u),l.setAttribute("style",`--bottom:${y}%;--percent:${u}%;--axis:${p}%;`)}})})},I=function(t){const r=t.querySelector(".chart__wrapper"),a=t.querySelector(".chart__spacer span"),o=t.querySelector(".chart table");let e="";Array.from(o.querySelectorAll("tbody tr td:first-child")).forEach(i=>{typeof i.textContent<"u"&&i.textContent.length>e.length&&(e=i.textContent)}),r.setAttribute("data-longest-label",e),a.innerHTML=e},B=function(t){const r=t.querySelector(".chart__wrapper"),a=t.querySelector(".chart table");let o="";Array.from(a.querySelectorAll("tbody tr td:not(:first-child)")).forEach(e=>{typeof e.getAttribute("data-value")<"u"&&e.getAttribute("data-value").length>o.length&&(o=e.getAttribute("data-value"))}),r.setAttribute("data-longest-value",o)},T=function(t,r,a){const o=`chart-${Date.now()+(Math.floor(Math.random()*100)+1)}`;let e;const i=Array.from(r.querySelectorAll("thead th"));return i.forEach((n,c)=>{c!=0&&(e=K(o,c,n.textContent,a,t,e)),c==50&&(i.length=c+1)}),!0};function K(t,r,a,o,e,i){var n;const c=document.createElement("input");c.setAttribute("name",`${t}-dataset-${r}`),c.setAttribute("id",`${t}-dataset-${r}`),c.setAttribute("data-dataset",`${r}`),c.setAttribute("data-label",`${a}`),c.checked=!0,c.setAttribute("type","checkbox"),r==1?e.prepend(c):e.insertBefore(c,i.nextSibling),i=c;const d=document.createElement("label");d.setAttribute("class","key btn btn-action"),d.setAttribute("for",`${t}-dataset-${r}`),d.setAttribute("data-label",`${a}`),d.setAttribute("part","key");const h=(n=e.querySelector(`tbody tr td:nth-child(${r+1})`))===null||n===void 0?void 0:n.getAttribute("data-numeric");return d.setAttribute("data-numeric",h),d.innerHTML=`${a}`,o.append(d),i}const X=function(t,r){const{min:a,max:o,yaxis:e}=g(t);let{guidelines:i}=g(t);i.length||(i=e),r.innerHTML="";for(let n=0;n<i.length;n++){const c=parseFloat(i[n].replace("\xA3","").replace("%","").replace(",","")),{axis:d}=x(c,a,o);r.innerHTML+=`<div class="guideline" style="--percent:${d}%;">${e.indexOf(i[n])!=-1?`<span>${i[n]}</span>`:""}</div>`}},E=function(t,r){const{min:a,max:o,yaxis:e}=g(t);r.innerHTML="";for(let i=0;i<e.length;i++){const n=parseFloat(e[i].replace("\xA3","").replace("%","")),{axis:c}=x(n,a,o);r.innerHTML+=`<div class="axis__point" style="--percent:${c}%;"><span>${e[i]}</span></div>`}},Y=function(t){const r=t.querySelector(".chart");let a=t.querySelector(".chart__xaxis");a||(a=document.createElement("div"),a.setAttribute("class","chart__xaxis")),r.prepend(a)},G=function(t){const r=t.querySelectorAll("thead th[title], tbody th[title]:first-child, tbody td[title]:first-child");Array.from(r).forEach(a=>{const o=`tooltip-${Date.now()}-${Math.floor(Math.random()*100)}`;a.innerHTML=`<button class="tooltip" popovertarget="${o}" part="tooltip" style="anchor-name: --${o};">${a.textContent}</button><span id="${o}" style="position-anchor: --${o};" popover part="tooltip__content" class="tooltip__content">${a.getAttribute("title")}</span>`})},H=function(t){let r="";const a=t.querySelector(".chart");let o=t.querySelector(".doughnuts");o||(o=document.createElement("div"),o.setAttribute("class","doughnuts"),a.append(o)),Array.from(a.querySelectorAll("tbody tr")).forEach((e,i)=>{let n="",c="",d=0,h=0;const m=e.querySelectorAll("td")[0].innerHTML;let f=0;const _=e.getAttribute("data-numeric");Array.from(e.querySelectorAll("td")).forEach((s,u)=>{const y=getComputedStyle(s).display;if(u!=0&&y!="none"){let p=s.getAttribute("data-numeric");p=p.replace("\xA3",""),p=p.replace("%",""),p=p.replace(",",""),p=Number.parseInt(p),h+=p,f++}}),Array.from(e.querySelectorAll("td")).forEach((s,u)=>{var y,p;const v=getComputedStyle(s).display;if(u!=0&&f==1&&v!="none")n+=`<path d="M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0" style="${s.getAttribute("style")} --path-index: ${u};"></path>`,c+=`<span class="h5 mb-0" part="popover">${M(q(s.getAttribute("data-label"))).trim()}<br/>${s.hasAttribute("data-second")?`${s.getAttribute("data-second-label")}: ${s.getAttribute("data-second")}<br/>`:""}${(y=s.querySelector('[part="popover"]'))===null||y===void 0?void 0:y.innerHTML}</span>`;else if(u!=0){let b=s.getAttribute("data-numeric");const D=v=="none"?"display: none;":"";b=b.replace("\xA3",""),b=b.replace("%",""),b=b.replace(",",""),b=Number.parseInt(b);const w=b/h,[z,$]=C(d,f),[S,L]=C(d+w,f),F=w>.5?1:0,N=["M 0 0",`L ${z?z.toFixed(0):0} ${$?$.toFixed(0):0}`,`A 100 100 0 ${F} 1 ${S?S.toFixed(0):0} ${L?L.toFixed(0):0}`,"L 0 0"].join(" ");n+=`<path d="${N}" style="${s.getAttribute("style")} --path-index: ${u};${D}"></path>`,c+=`<span class="h5 mb-0" part="popover">${M(q(s.getAttribute("data-label"))).trim()}<br/>${s.hasAttribute("data-second")?`${s.getAttribute("data-second-label")}: ${s.getAttribute("data-second")}<br/>`:""}${(p=s.querySelector('[part="popover"]'))===null||p===void 0?void 0:p.innerHTML}</span>`,v!="none"&&(d+=w)}}),r+=`<div class="doughnut">
|
|
5
5
|
<svg viewBox="-105 -105 210 210" preserveAspectRatio="none" style="--row-index: ${i+1};">${n}</svg>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"bento-grid"});class n extends HTMLElement{constructor(){var o;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const a=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})};a("iam-bone");class n extends HTMLElement{constructor(){var e;super(),this.attachShadow({mode:"open"});const o=document.createElement("template");o.innerHTML=`
|
|
5
5
|
<div class="wrapper">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"button"});class s extends HTMLElement{constructor(){var t;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const Y=M=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:M})},O=(M,t,o)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),o.forEach(a=>{M.addEventListener(a,function(e){const r={event:a,element:t,target:e.target};Object.keys(e.detail).forEach(l=>{const d=e.detail[l];r[l]=d}),window.dataLayer.push(r)})}),!0),C=(M=1)=>Math.floor(Math.random()*Date.now()*(M+1));Y("iam-calendar");class P extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=`<table class="table--day" role="presentation"><tbody>
|
|
5
5
|
<tr class="allday"><th>All day</th></tr>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
|
-
*/const b=d=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:d})},h=(d,r
|
|
4
|
+
*/const b=d=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:d})},h=(d,a,r)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:a}),r.forEach(e=>{d.addEventListener(e,function(c){const s={event:e,element:a,target:c.target};Object.keys(c.detail).forEach(p=>{const o=c.detail[p];s[p]=o}),window.dataLayer.push(s)})}),!0),u=`<div class="wrapper">
|
|
5
5
|
<div class="card__head" part="head">
|
|
6
6
|
<slot name="head"></slot>
|
|
7
7
|
</div>
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
<div class="card__footer" part="footer">
|
|
18
18
|
<slot name="footer"></slot>
|
|
19
19
|
</div>
|
|
20
|
-
</div>`,v=d=>{
|
|
20
|
+
</div>`,v=d=>{d.classList.add("card");const a=d.shadowRoot.querySelector(".card__head"),r=d.shadowRoot.querySelector(".card__body");if(d.hasAttribute("data-image")&&(a.innerHTML+=`<img src="${d.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),d.hasAttribute("data-total"))if(!r?.querySelector(".card__total"))r.insertAdjacentHTML("beforeend",`<div class="card__total">${d.getAttribute("data-total")}</div>`);else{const e=r?.querySelector(".card__total");e&&(e.innerHTML=d.getAttribute("data-total"))}else d.querySelector('[slot="total-icon"]')&&r.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>');d.querySelector('[slot="badges"]')?d.shadowRoot.querySelector(".card__badges").classList.remove("empty"):d.shadowRoot.querySelector(".card__badges").classList.add("empty")};class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
21
21
|
<style>
|
|
22
22
|
*,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;border:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
|
|
23
23
|
|
|
24
24
|
</style>
|
|
25
25
|
<div class="menu--inner" part="inner">
|
|
26
26
|
<slot></slot>
|
|
27
|
-
</div>`,this.shadowRoot.appendChild(
|
|
27
|
+
</div>`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){this.classList.add("dropdown");const a=this.hasAttribute("id")?this.getAttribute("id"):!1,r=document.querySelector(`[popovertarget="${a}"]`);let e=this.querySelectorAll(":scope > a, :scope > button, :scope > details > summary"),c=this.querySelectorAll("a, button");this.closest(".menu__wrapper")&&(c=this.shadowRoot.querySelector("slot").assignedElements({flatten:!0}),e=c),this.querySelectorAll("details");let s,p;a&&r&&(this.setAttribute("role","menu"),this.setAttribute("popover","auto"),this.style["position-anchor"]=`--${a}`,r?.setAttribute("aria-haspopup","true"),r==null||(r.style["anchor-name"]=`--${a}`),r?.setAttribute("aria-controls",a)),c.forEach((o,t)=>{o.setAttribute("role","menuitem"),o.setAttribute("tabindex","0"),t==0&&o.setAttribute("autofocus",!0)}),this.addEventListener("keydown",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("a, button, summary")){const t=document.activeElement,n=Array.from(e).indexOf(t)-1,l=Array.from(e).indexOf(t)+1;switch(o.keyCode){case 27:t.closest("details")?(o.stopPropagation(),o.preventDefault(),t.closest("details").removeAttribute("open"),t.closest("details").querySelector(":scope summary").focus()):(o.stopPropagation(),r.focus());break;case 32:case 13:break;case 35:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[c.length-1].focus();break;case 36:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[0].focus();break;case 38:if(o.stopPropagation(),o.preventDefault(),Array.from(e).indexOf(t)>-1)Array.from(e)[n]!=null?Array.from(e)[n].focus():Array.from(e)[e.length-1].focus();else if(t.closest("details")){const i=t.closest("details").querySelectorAll("a, button, :scope details > summary");p=Array.from(i).indexOf(t)-1,Array.from(i)[p]!=null?Array.from(i)[p].focus():Array.from(i)[i.length-1].focus()}break;case 40:if(o.stopPropagation(),o.preventDefault(),Array.from(e).indexOf(t)>-1)Array.from(e)[l]!=null?Array.from(e)[l].focus():Array.from(e)[0].focus();else if(t.closest("details")){const i=t.closest("details").querySelectorAll("a, button, :scope details > summary");s=Array.from(i).indexOf(t)+1,Array.from(i)[s]!=null?Array.from(i)[s].focus():Array.from(i)[0].focus()}break}}}),this.addEventListener("toggle",o=>{var t,n,l,i;const m=new CustomEvent(o.newState,{detail:{id:this.getAttribute("id"),target:o.target}});this.dispatchEvent(m),this.closest(".menu__wrapper")&&c[0].focus(),this.hasAttribute("popover-open")&&(o.preventDefault(),this.removeAttribute("popover-open"),this.hidePopover()),this.matches(":popover-open")&&document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`)?((t=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||t===void 0||t.setAttribute("aria-pressed","true"),(n=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||n===void 0||n.classList.add("active")):((l=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||l===void 0||l.removeAttribute("aria-pressed"),(i=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||i===void 0||i.classList.remove("active"))}),this.addEventListener("click",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("button:has(+ iam-menu:not([popover]))")){const t=o.target.closest("button:has(+ iam-menu)");t?.classList.toggle("open")}else if(o&&o.target instanceof HTMLElement&&o.target.closest("button.selectable")){const t=o.target.closest("button.selectable");this.hasAttribute("multiple")?t.classList.toggle("selected"):t?.classList.contains("selected")?this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}):(this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}),t.classList.add("selected"))}}),CSS.supports("top","anchor(top)")||document.addEventListener("click",o=>{if(o.originalTarget&&o.originalTarget.matches("[popovertarget]")){const t=o.originalTarget,n=t.getAttribute("popovertarget"),l=document.getElementById(n),i=t.getBoundingClientRect(),m=i.top,g=i.left;l.style.setProperty("top",m+"px"),l.style.setProperty("left",g+t.clientWidth+"px")}})}}var w=function(d,a,r,e){function c(s){return s instanceof r?s:new r(function(p){p(s)})}return new(r||(r=Promise))(function(s,p){function o(l){try{n(e.next(l))}catch(i){p(i)}}function t(l){try{n(e.throw(l))}catch(i){p(i)}}function n(l){l.done?s(l.value):c(l.value).then(o,t)}n((e=e.apply(d,a||[])).next())})};b("iam-card");class y extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
28
28
|
<style>
|
|
29
29
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
30
30
|
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
${u}
|
|
35
35
|
<slot name="link"></slot>
|
|
36
36
|
<slot name="primary-action"></slot>
|
|
37
|
-
`,this.shadowRoot.appendChild(
|
|
37
|
+
`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){return w(this,void 0,void 0,function*(){var a,r;const e=this,c=e.shadowRoot.querySelector(".card__body");if(document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location"),window.customElements.get("iam-menu")||window.customElements.define("iam-menu",f),v(e),e.hasAttribute("data-illustration")&&c.insertAdjacentHTML("afterbegin",`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`),!e.querySelector('[slot="btns"]')&&!e.querySelector('[slot="secondary"]')&&!e.classList.contains("card--article")&&!e.closest(".carousel--article-cards")&&e.classList.add("show-icon"),e.querySelector('[slot="btns"]')&&(e.shadowRoot.innerHTML+=`<div class="menu__wrapper">
|
|
38
38
|
<button class="btn btn-secondary btn-compact fa-ellipsis-vertical m-0" popovertarget="actions" style="anchor-name: --anchor-el;" title="Further actions" type="button">Open further actions</button>
|
|
39
39
|
<iam-menu class="dialog--fix dialog--list" id="actions" style="position-anchor: --anchor-el;" popover>
|
|
40
40
|
<slot name="btns"></slot>
|
|
41
41
|
</iam-menu>
|
|
42
|
-
</div>`,!CSS.supports("top","anchor(top)"))){const
|
|
42
|
+
</div>`,!CSS.supports("top","anchor(top)"))){const t=(a=this.shadowRoot)===null||a===void 0?void 0:a.querySelector('[popovertarget="actions"]'),n=(r=this.shadowRoot)===null||r===void 0?void 0:r.querySelector("[popover]");t?.addEventListener("click",l=>{this.style.setProperty("overflow","visible"),this.style.setProperty("z-index","999999");const i=t.getBoundingClientRect(),m=i.top,g=i.left;n.style.setProperty("display","block"),n.style.setProperty("top",m+"px"),n.style.setProperty("left",g-100+"px")}),document.addEventListener("scroll",l=>{n.style.setProperty("display","none")})}if(Array.from(e.querySelectorAll('[slot="btns"]')).forEach(t=>{t.classList.add("btn"),t.classList.add("btn-action")}),e.querySelector('[slot="checkbox"],[slot="secondary"]')){const t=e.querySelector('[slot="checkbox"],[slot="secondary"]');t.addEventListener("mouseenter",()=>{e.classList.add("prevent-hover")}),t.addEventListener("mouseleave",()=>{e.classList.remove("prevent-hover")})}if(e.shadowRoot.querySelector(".menu__wrapper")){const t=e.shadowRoot.querySelector(".menu__wrapper");t.addEventListener("mouseenter",()=>{e.classList.add("prevent-hover")}),t.addEventListener("mouseleave",()=>{e.classList.remove("prevent-hover")})}const s=e.querySelector('input[type="checkbox"]');s&&s.addEventListener("change",()=>{if(s.checked){const t=new CustomEvent("select-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});e.dispatchEvent(t)}else{const t=new CustomEvent("unselect-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});e.dispatchEvent(t)}});const p=e.querySelector('[slot="secondary"]');p&&p.addEventListener("click",()=>{const t=new CustomEvent("secondary-button-clicked",{detail:{Title:p.getAttribute("title")}});e.dispatchEvent(t)});const o=e.querySelectorAll('[slot="btns"]');Array.from(o).forEach(t=>{t.addEventListener("click",()=>{const n=new CustomEvent("action-button-clicked",{detail:{Title:t.getAttribute("title")}});e.dispatchEvent(n)})}),this.querySelector('[slot="link"]')&&this.classList.add("hasLink"),h(e,"iam-card",["select-card","unselect-card","secondary-button-clicked","action-button-clicked"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(a,r,e){switch(a){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=e);break}case"data-image":{if(r!=e){const c=this.shadowRoot.querySelector(".card__head img");c&&c.setAttribute("src",e)}break}}}}export{y as default};
|
|
43
43
|
//# sourceMappingURL=card.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../menu/menu.component.js","card.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"wrapper\">\n <div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n </div>\n <div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n <slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n <div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n </div>\n <div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n </div>\n <div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n</div>`;\nexport const setupCard = (cardComponent) => {\n var _a;\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n if (!(cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')))\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n else {\n (_a = cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')) === null || _a === void 0 ? void 0 : _a.innerHTML = cardComponent.getAttribute('data-total');\n }\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\n","class iamMenu 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 menuCSS = `@import \"${assetLocation}/css/components/menu.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${menuCSS}\n </style>\n <div class=\"menu--inner\" part=\"inner\">\n <slot></slot>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('dropdown');\n const menuID = this.hasAttribute('id') ? this.getAttribute('id') : false;\n const menuButton = document.querySelector(`[popovertarget=\"${menuID}\"]`);\n let topLevelmenuItems = this.querySelectorAll(':scope > a, :scope > button, :scope > details > summary');\n let menuItems = this.querySelectorAll('a, button');\n if (this.closest('.menu__wrapper')) {\n menuItems = this.shadowRoot.querySelector('slot').assignedElements({ flatten: true });\n topLevelmenuItems = menuItems;\n }\n const subMenus = this.querySelectorAll('details');\n let subNextIndex;\n let subPrevIndex;\n // Set the needed CSS styles to connect the ID attribute to the anchor name\n if (menuID && menuButton) {\n this.setAttribute('role', 'menu');\n this.setAttribute('popover', 'auto');\n this.style['position-anchor'] = `--${menuID}`;\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.setAttribute('aria-haspopup', 'true');\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.style['anchor-name'] = `--${menuID}`;\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.setAttribute('aria-controls', menuID);\n }\n menuItems.forEach((item, index) => {\n item.setAttribute('role', 'menuitem');\n item.setAttribute('tabindex', '0');\n if (index == 0) {\n item.setAttribute('autofocus', true);\n }\n });\n this.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary')) {\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 this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n this.querySelector('details[open]').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 = activeItem\n .closest('details')\n .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 this.addEventListener('toggle', (e) => {\n var _a, _b, _c, _d;\n const updateEvent = new CustomEvent(e.newState, { detail: { id: this.getAttribute('id'), target: e.target } });\n this.dispatchEvent(updateEvent);\n // Fix the focus\n if (this.closest('.menu__wrapper')) {\n menuItems[0].focus();\n }\n if (this.hasAttribute('popover-open')) {\n e.preventDefault();\n this.removeAttribute('popover-open');\n this.hidePopover();\n }\n if (this.matches(':popover-open') && document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) {\n (_a = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-pressed', 'true');\n (_b = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _b === void 0 ? void 0 : _b.classList.add('active');\n }\n else {\n (_c = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-pressed');\n (_d = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _d === void 0 ? void 0 : _d.classList.remove('active');\n }\n });\n this.addEventListener('click', (event) => {\n if (event &&\n event.target instanceof HTMLElement &&\n event.target.closest('button:has(+ iam-menu:not([popover]))')) {\n const button = event.target.closest('button:has(+ iam-menu)');\n button === null || button === void 0 ? void 0 : button.classList.toggle('open');\n }\n else if (event && event.target instanceof HTMLElement && event.target.closest('button.selectable')) {\n const button = event.target.closest('button.selectable');\n if (this.hasAttribute('multiple')) {\n button.classList.toggle('selected');\n }\n else if (button === null || button === void 0 ? void 0 : button.classList.contains('selected')) {\n this.querySelectorAll('.selected').forEach((item) => {\n item.classList.remove('selected');\n });\n }\n else {\n this.querySelectorAll('.selected').forEach((item) => {\n item.classList.remove('selected');\n });\n button.classList.add('selected');\n }\n }\n });\n // safari and firefox anchor fix for cards\n if (!CSS.supports('top', 'anchor(top)')) {\n document.addEventListener('click', (event) => {\n if (event.originalTarget && event.originalTarget.matches('[popovertarget]')) {\n const button = event.originalTarget;\n const popoverID = button.getAttribute('popovertarget');\n const popover = document.getElementById(popoverID);\n const viewportOffset = button.getBoundingClientRect();\n const top = viewportOffset.top;\n const left = viewportOffset.left;\n popover.style.setProperty('top', top + 'px');\n popover.style.setProperty('left', left + button.clientWidth + 'px');\n }\n });\n }\n }\n}\nexport default iamMenu;\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 { trackComponent, trackComponentRegistered } from '../_global';\nimport { cardHTML, setupCard } from '../../modules/card.module';\nimport iamMenu from '../menu/menu.component';\ntrackComponentRegistered('iam-card');\nclass iamCard 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/card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <slot name=\"link\"></slot>\n <slot name=\"primary-action\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n if (!window.customElements.get(`iam-menu`))\n window.customElements.define(`iam-menu`, iamMenu);\n setupCard(cardComponent);\n // Add Illustration HTML\n if (cardComponent.hasAttribute('data-illustration')) {\n cardBody.insertAdjacentHTML('afterbegin', `<div class=\"card__illustration\"><img src=\"${this.getAttribute('data-illustration')}\" alt=\"\" loading=\"lazy\" /></div>`);\n }\n // Add class that shows the right arrow icon\n if (!cardComponent.querySelector('[slot=\"btns\"]') && !cardComponent.querySelector('[slot=\"secondary\"]') && !cardComponent.classList.contains('card--article') && !cardComponent.closest('.carousel--article-cards')) {\n cardComponent.classList.add('show-icon');\n }\n // Secondary buttons and actions\n // Add the dialog wrapper HTML\n if (cardComponent.querySelector('[slot=\"btns\"]')) {\n cardComponent.shadowRoot.innerHTML += `<div class=\"menu__wrapper\">\n <button class=\"btn btn-secondary btn-compact fa-ellipsis-vertical m-0\" popovertarget=\"actions\" style=\"anchor-name: --anchor-el;\" title=\"Further actions\" type=\"button\">Open further actions</button>\n <iam-menu class=\"dialog--fix dialog--list\" id=\"actions\" style=\"position-anchor: --anchor-el;\" popover>\n <slot name=\"btns\"></slot>\n </iam-menu>\n </div>`;\n // safari and firefox anchor fix for cards\n if (!CSS.supports('top', 'anchor(top)')) {\n const actionButton = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[popovertarget=\"actions\"]');\n const actionPopover = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[popover]');\n actionButton === null || actionButton === void 0 ? void 0 : actionButton.addEventListener('click', (event) => {\n this.style.setProperty('overflow', 'visible');\n this.style.setProperty('z-index', '999999');\n const viewportOffset = actionButton.getBoundingClientRect();\n const top = viewportOffset.top;\n const left = viewportOffset.left;\n actionPopover.style.setProperty('display', 'block');\n actionPopover.style.setProperty('top', top + 'px');\n actionPopover.style.setProperty('left', left - 100 + 'px');\n });\n document.addEventListener('scroll', (event) => {\n actionPopover.style.setProperty('display', 'none');\n });\n }\n }\n // Make sure slotted buttons and links have correct button classes\n Array.from(cardComponent.querySelectorAll('[slot=\"btns\"]')).forEach((button) => {\n button.classList.add('btn');\n button.classList.add('btn-action');\n });\n // Hide the default hover and focus states when interacting with the checkbox, dialog wrapper or secondary button\n if (cardComponent.querySelector('[slot=\"checkbox\"],[slot=\"secondary\"]')) {\n const element = cardComponent.querySelector('[slot=\"checkbox\"],[slot=\"secondary\"]');\n element.addEventListener('mouseenter', () => {\n cardComponent.classList.add('prevent-hover');\n });\n element.addEventListener('mouseleave', () => {\n cardComponent.classList.remove('prevent-hover');\n });\n }\n if (cardComponent.shadowRoot.querySelector('.menu__wrapper')) {\n const element = cardComponent.shadowRoot.querySelector('.menu__wrapper');\n element.addEventListener('mouseenter', () => {\n cardComponent.classList.add('prevent-hover');\n });\n element.addEventListener('mouseleave', () => {\n cardComponent.classList.remove('prevent-hover');\n });\n }\n // Dispatch events of selecting checkboxes\n const checkbox = cardComponent.querySelector('input[type=\"checkbox\"]');\n if (checkbox) {\n checkbox.addEventListener('change', () => {\n if (checkbox.checked) {\n const customEvent = new CustomEvent('select-card', {\n detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') },\n });\n cardComponent.dispatchEvent(customEvent);\n }\n else {\n const customEvent = new CustomEvent('unselect-card', {\n detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') },\n });\n cardComponent.dispatchEvent(customEvent);\n }\n });\n }\n // Dispatch events of click onto secondary buttons\n const secondaryBtn = cardComponent.querySelector('[slot=\"secondary\"]');\n if (secondaryBtn) {\n secondaryBtn.addEventListener('click', () => {\n const customEvent = new CustomEvent('secondary-button-clicked', {\n detail: { Title: secondaryBtn.getAttribute('title') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n // Dispatch events of click onto action buttons\n const actionBtns = cardComponent.querySelectorAll('[slot=\"btns\"]');\n Array.from(actionBtns).forEach((button) => {\n button.addEventListener('click', () => {\n const customEvent = new CustomEvent('action-button-clicked', {\n detail: { Title: button.getAttribute('title') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n });\n if (this.querySelector('[slot=\"link\"]'))\n this.classList.add('hasLink');\n trackComponent(cardComponent, 'iam-card', [\n 'select-card',\n 'unselect-card',\n 'secondary-button-clicked',\n 'action-button-clicked',\n ]);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","_a","cardHead","cardBody","iamMenu","template","menuID","menuButton","topLevelmenuItems","menuItems","subNextIndex","subPrevIndex","item","index","activeItem","prevIndex","nextIndex","subMenuItems","e","_b","_c","_d","updateEvent","button","popoverID","popover","viewportOffset","top","left","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","iamCard","actionButton","actionPopover","element","checkbox","customEvent","secondaryBtn","actionBtns","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../menu/menu.component.js","card.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"wrapper\">\n <div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n </div>\n <div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n <slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n <div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n </div>\n <div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n </div>\n <div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n if (!(cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total')))\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n else {\n const cardTotal = cardBody === null || cardBody === void 0 ? void 0 : cardBody.querySelector('.card__total');\n if (cardTotal)\n cardTotal.innerHTML = cardComponent.getAttribute('data-total');\n }\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\n","class iamMenu 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 menuCSS = `@import \"${assetLocation}/css/components/menu.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${menuCSS}\n </style>\n <div class=\"menu--inner\" part=\"inner\">\n <slot></slot>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('dropdown');\n const menuID = this.hasAttribute('id') ? this.getAttribute('id') : false;\n const menuButton = document.querySelector(`[popovertarget=\"${menuID}\"]`);\n let topLevelmenuItems = this.querySelectorAll(':scope > a, :scope > button, :scope > details > summary');\n let menuItems = this.querySelectorAll('a, button');\n if (this.closest('.menu__wrapper')) {\n menuItems = this.shadowRoot.querySelector('slot').assignedElements({ flatten: true });\n topLevelmenuItems = menuItems;\n }\n const subMenus = this.querySelectorAll('details');\n let subNextIndex;\n let subPrevIndex;\n // Set the needed CSS styles to connect the ID attribute to the anchor name\n if (menuID && menuButton) {\n this.setAttribute('role', 'menu');\n this.setAttribute('popover', 'auto');\n this.style['position-anchor'] = `--${menuID}`;\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.setAttribute('aria-haspopup', 'true');\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.style['anchor-name'] = `--${menuID}`;\n menuButton === null || menuButton === void 0 ? void 0 : menuButton.setAttribute('aria-controls', menuID);\n }\n menuItems.forEach((item, index) => {\n item.setAttribute('role', 'menuitem');\n item.setAttribute('tabindex', '0');\n if (index == 0) {\n item.setAttribute('autofocus', true);\n }\n });\n this.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary')) {\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 this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n this.querySelector('details[open]').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 = activeItem\n .closest('details')\n .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 this.addEventListener('toggle', (e) => {\n var _a, _b, _c, _d;\n const updateEvent = new CustomEvent(e.newState, { detail: { id: this.getAttribute('id'), target: e.target } });\n this.dispatchEvent(updateEvent);\n // Fix the focus\n if (this.closest('.menu__wrapper')) {\n menuItems[0].focus();\n }\n if (this.hasAttribute('popover-open')) {\n e.preventDefault();\n this.removeAttribute('popover-open');\n this.hidePopover();\n }\n if (this.matches(':popover-open') && document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) {\n (_a = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-pressed', 'true');\n (_b = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _b === void 0 ? void 0 : _b.classList.add('active');\n }\n else {\n (_c = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-pressed');\n (_d = document.querySelector(`[popovertarget=\"${this.getAttribute('id')}\"]`)) === null || _d === void 0 ? void 0 : _d.classList.remove('active');\n }\n });\n this.addEventListener('click', (event) => {\n if (event &&\n event.target instanceof HTMLElement &&\n event.target.closest('button:has(+ iam-menu:not([popover]))')) {\n const button = event.target.closest('button:has(+ iam-menu)');\n button === null || button === void 0 ? void 0 : button.classList.toggle('open');\n }\n else if (event && event.target instanceof HTMLElement && event.target.closest('button.selectable')) {\n const button = event.target.closest('button.selectable');\n if (this.hasAttribute('multiple')) {\n button.classList.toggle('selected');\n }\n else if (button === null || button === void 0 ? void 0 : button.classList.contains('selected')) {\n this.querySelectorAll('.selected').forEach((item) => {\n item.classList.remove('selected');\n });\n }\n else {\n this.querySelectorAll('.selected').forEach((item) => {\n item.classList.remove('selected');\n });\n button.classList.add('selected');\n }\n }\n });\n // safari and firefox anchor fix for cards\n if (!CSS.supports('top', 'anchor(top)')) {\n document.addEventListener('click', (event) => {\n if (event.originalTarget && event.originalTarget.matches('[popovertarget]')) {\n const button = event.originalTarget;\n const popoverID = button.getAttribute('popovertarget');\n const popover = document.getElementById(popoverID);\n const viewportOffset = button.getBoundingClientRect();\n const top = viewportOffset.top;\n const left = viewportOffset.left;\n popover.style.setProperty('top', top + 'px');\n popover.style.setProperty('left', left + button.clientWidth + 'px');\n }\n });\n }\n }\n}\nexport default iamMenu;\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 { trackComponent, trackComponentRegistered } from '../_global';\nimport { cardHTML, setupCard } from '../../modules/card.module';\nimport iamMenu from '../menu/menu.component';\ntrackComponentRegistered('iam-card');\nclass iamCard 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/card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <slot name=\"link\"></slot>\n <slot name=\"primary-action\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n if (!window.customElements.get(`iam-menu`))\n window.customElements.define(`iam-menu`, iamMenu);\n setupCard(cardComponent);\n // Add Illustration HTML\n if (cardComponent.hasAttribute('data-illustration')) {\n cardBody.insertAdjacentHTML('afterbegin', `<div class=\"card__illustration\"><img src=\"${this.getAttribute('data-illustration')}\" alt=\"\" loading=\"lazy\" /></div>`);\n }\n // Add class that shows the right arrow icon\n if (!cardComponent.querySelector('[slot=\"btns\"]') && !cardComponent.querySelector('[slot=\"secondary\"]') && !cardComponent.classList.contains('card--article') && !cardComponent.closest('.carousel--article-cards')) {\n cardComponent.classList.add('show-icon');\n }\n // Secondary buttons and actions\n // Add the dialog wrapper HTML\n if (cardComponent.querySelector('[slot=\"btns\"]')) {\n cardComponent.shadowRoot.innerHTML += `<div class=\"menu__wrapper\">\n <button class=\"btn btn-secondary btn-compact fa-ellipsis-vertical m-0\" popovertarget=\"actions\" style=\"anchor-name: --anchor-el;\" title=\"Further actions\" type=\"button\">Open further actions</button>\n <iam-menu class=\"dialog--fix dialog--list\" id=\"actions\" style=\"position-anchor: --anchor-el;\" popover>\n <slot name=\"btns\"></slot>\n </iam-menu>\n </div>`;\n // safari and firefox anchor fix for cards\n if (!CSS.supports('top', 'anchor(top)')) {\n const actionButton = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[popovertarget=\"actions\"]');\n const actionPopover = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[popover]');\n actionButton === null || actionButton === void 0 ? void 0 : actionButton.addEventListener('click', (event) => {\n this.style.setProperty('overflow', 'visible');\n this.style.setProperty('z-index', '999999');\n const viewportOffset = actionButton.getBoundingClientRect();\n const top = viewportOffset.top;\n const left = viewportOffset.left;\n actionPopover.style.setProperty('display', 'block');\n actionPopover.style.setProperty('top', top + 'px');\n actionPopover.style.setProperty('left', left - 100 + 'px');\n });\n document.addEventListener('scroll', (event) => {\n actionPopover.style.setProperty('display', 'none');\n });\n }\n }\n // Make sure slotted buttons and links have correct button classes\n Array.from(cardComponent.querySelectorAll('[slot=\"btns\"]')).forEach((button) => {\n button.classList.add('btn');\n button.classList.add('btn-action');\n });\n // Hide the default hover and focus states when interacting with the checkbox, dialog wrapper or secondary button\n if (cardComponent.querySelector('[slot=\"checkbox\"],[slot=\"secondary\"]')) {\n const element = cardComponent.querySelector('[slot=\"checkbox\"],[slot=\"secondary\"]');\n element.addEventListener('mouseenter', () => {\n cardComponent.classList.add('prevent-hover');\n });\n element.addEventListener('mouseleave', () => {\n cardComponent.classList.remove('prevent-hover');\n });\n }\n if (cardComponent.shadowRoot.querySelector('.menu__wrapper')) {\n const element = cardComponent.shadowRoot.querySelector('.menu__wrapper');\n element.addEventListener('mouseenter', () => {\n cardComponent.classList.add('prevent-hover');\n });\n element.addEventListener('mouseleave', () => {\n cardComponent.classList.remove('prevent-hover');\n });\n }\n // Dispatch events of selecting checkboxes\n const checkbox = cardComponent.querySelector('input[type=\"checkbox\"]');\n if (checkbox) {\n checkbox.addEventListener('change', () => {\n if (checkbox.checked) {\n const customEvent = new CustomEvent('select-card', {\n detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') },\n });\n cardComponent.dispatchEvent(customEvent);\n }\n else {\n const customEvent = new CustomEvent('unselect-card', {\n detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') },\n });\n cardComponent.dispatchEvent(customEvent);\n }\n });\n }\n // Dispatch events of click onto secondary buttons\n const secondaryBtn = cardComponent.querySelector('[slot=\"secondary\"]');\n if (secondaryBtn) {\n secondaryBtn.addEventListener('click', () => {\n const customEvent = new CustomEvent('secondary-button-clicked', {\n detail: { Title: secondaryBtn.getAttribute('title') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n // Dispatch events of click onto action buttons\n const actionBtns = cardComponent.querySelectorAll('[slot=\"btns\"]');\n Array.from(actionBtns).forEach((button) => {\n button.addEventListener('click', () => {\n const customEvent = new CustomEvent('action-button-clicked', {\n detail: { Title: button.getAttribute('title') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n });\n if (this.querySelector('[slot=\"link\"]'))\n this.classList.add('hasLink');\n trackComponent(cardComponent, 'iam-card', [\n 'select-card',\n 'unselect-card',\n 'secondary-button-clicked',\n 'action-button-clicked',\n ]);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","cardTotal","iamMenu","template","menuID","menuButton","topLevelmenuItems","menuItems","subNextIndex","subPrevIndex","item","index","activeItem","prevIndex","nextIndex","subMenuItems","e","_a","_b","_c","_d","updateEvent","button","popoverID","popover","viewportOffset","top","left","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","iamCard","actionButton","actionPopover","element","checkbox","customEvent","secondaryBtn","actionBtns","attrName","oldVal","newVal","cardHeadImg"],"mappings":";;;IAAO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,EACaC,EAAiB,CAACC,EAAWF,EAAeG,KAErD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,qBACP,QAASH,CACjB,CAAK,EACDG,EAAY,QAASC,GAAc,CAC/BF,EAAU,iBAAiBE,EAAW,SAAUC,EAAO,CACnD,MAAMC,EAAe,CACjB,MAAOF,EACP,QAASJ,EACT,OAAQK,EAAM,MAC9B,EACY,OAAO,KAAKA,EAAM,MAAM,EAAE,QAASE,GAAa,CAC5C,MAAMC,EAAcH,EAAM,OAAOE,CAAQ,EACzCD,EAAaC,CAAQ,EAAIC,CAC7B,CAAC,EACD,OAAO,UAAU,KAAKF,CAAY,CACtC,CAAC,CACL,CAAC,EACM,IC7BEG,EAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAiBXC,EAAaC,GAAkB,CACxCA,EAAc,UAAU,IAAI,MAAM,EAClC,MAAMC,EAAWD,EAAc,WAAW,cAAc,aAAa,EAC/DE,EAAWF,EAAc,WAAW,cAAc,aAAa,EAKrE,GAJIA,EAAc,aAAa,YAAY,IACvCC,EAAS,WAAa,aAAaD,EAAc,aAAa,YAAY,CAAC,2CAG3EA,EAAc,aAAa,YAAY,EACvC,GAAI,CAAsDE,GAAS,cAAc,cAAc,EAC3FA,EAAS,mBAAmB,YAAa,4BAA4BF,EAAc,aAAa,YAAY,CAAC,QAAQ,MACpH,CACD,MAAMG,EAAgED,GAAS,cAAc,cAAc,EACvGC,IACAA,EAAU,UAAYH,EAAc,aAAa,YAAY,EACrE,MAEKA,EAAc,cAAc,qBAAqB,GACtDE,EAAS,mBAAmB,YAAa,gEAAgE,EAExGF,EAAc,cAAc,iBAAiB,EAI9CA,EAAc,WAAW,cAAc,eAAe,EAAE,UAAU,OAAO,OAAO,EAHhFA,EAAc,WAAW,cAAc,eAAe,EAAE,UAAU,IAAI,OAAO,CAKrF,EC3CA,MAAMI,UAAgB,WAAY,CAC9B,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOrB,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,KAAK,UAAU,IAAI,UAAU,EAC7B,MAAMC,EAAS,KAAK,aAAa,IAAI,EAAI,KAAK,aAAa,IAAI,EAAI,GAC7DC,EAAa,SAAS,cAAc,mBAAmBD,CAAM,IAAI,EACvE,IAAIE,EAAoB,KAAK,iBAAiB,yDAAyD,EACnGC,EAAY,KAAK,iBAAiB,WAAW,EAC7C,KAAK,QAAQ,gBAAgB,IAC7BA,EAAY,KAAK,WAAW,cAAc,MAAM,EAAE,iBAAiB,CAAE,QAAS,GAAM,EACpFD,EAAoBC,GAEP,KAAK,iBAAiB,SAAS,EAChD,IAAIC,EACAC,EAEAL,GAAUC,IACV,KAAK,aAAa,OAAQ,MAAM,EAChC,KAAK,aAAa,UAAW,MAAM,EACnC,KAAK,MAAM,iBAAiB,EAAI,KAAKD,CAAM,GACaC,GAAW,aAAa,gBAAiB,MAAM,EACvGA,GAAe,OAAyCA,EAAW,MAAM,aAAa,EAAI,KAAKD,CAAM,IAC7CC,GAAW,aAAa,gBAAiBD,CAAM,GAE3GG,EAAU,QAAQ,CAACG,EAAMC,IAAU,CAC/BD,EAAK,aAAa,OAAQ,UAAU,EACpCA,EAAK,aAAa,WAAY,GAAG,EAC7BC,GAAS,GACTD,EAAK,aAAa,YAAa,EAAI,CAE3C,CAAC,EACD,KAAK,iBAAiB,UAAYlB,GAAU,CACxC,GAAIA,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,oBAAoB,EAAG,CAC5F,MAAMoB,EAAa,SAAS,cACtBC,EAAY,MAAM,KAAKP,CAAiB,EAAE,QAAQM,CAAU,EAAI,EAChEE,EAAY,MAAM,KAAKR,CAAiB,EAAE,QAAQM,CAAU,EAAI,EACtE,OAAQpB,EAAM,QAC9B,CACoB,IAAK,IACGoB,EAAW,QAAQ,SAAS,GAC5BpB,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpBoB,EAAW,QAAQ,SAAS,EAAE,gBAAgB,MAAM,EACpDA,EAAW,QAAQ,SAAS,EAAE,cAAc,gBAAgB,EAAE,MAAK,IAGnEpB,EAAM,gBAAe,EACrBa,EAAW,MAAK,GAEpB,MACJ,IAAK,IACL,IAAK,IACD,MACJ,IAAK,IACDb,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,KAAK,cAAc,eAAe,EAAE,gBAAgB,MAAM,EAC1D,MAAM,KAAKe,CAAS,EAAEA,EAAU,OAAS,CAAC,EAAE,MAAK,EACjD,MACJ,IAAK,IACDf,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,KAAK,cAAc,eAAe,EAAE,gBAAgB,MAAM,EAC1D,MAAM,KAAKe,CAAS,EAAE,CAAC,EAAE,MAAK,EAC9B,MACJ,IAAK,IAGD,GAFAf,EAAM,gBAAe,EACrBA,EAAM,eAAc,EAChB,MAAM,KAAKc,CAAiB,EAAE,QAAQM,CAAU,EAAI,GAChD,MAAM,KAAKN,CAAiB,EAAEO,CAAS,GAAK,KAC5C,MAAM,KAAKP,CAAiB,EAAEO,CAAS,EAAE,MAAK,EAE9C,MAAM,KAAKP,CAAiB,EAAEA,EAAkB,OAAS,CAAC,EAAE,MAAK,UAEhEM,EAAW,QAAQ,SAAS,EAAG,CACpC,MAAMG,EAAeH,EAChB,QAAQ,SAAS,EACjB,iBAAiB,qCAAqC,EAC3DH,EAAe,MAAM,KAAKM,CAAY,EAAE,QAAQH,CAAU,EAAI,EAC1D,MAAM,KAAKG,CAAY,EAAEN,CAAY,GAAK,KAC1C,MAAM,KAAKM,CAAY,EAAEN,CAAY,EAAE,MAAK,EAE5C,MAAM,KAAKM,CAAY,EAAEA,EAAa,OAAS,CAAC,EAAE,MAAK,CAC/D,CACA,MACJ,IAAK,IAGD,GAFAvB,EAAM,gBAAe,EACrBA,EAAM,eAAc,EAChB,MAAM,KAAKc,CAAiB,EAAE,QAAQM,CAAU,EAAI,GAChD,MAAM,KAAKN,CAAiB,EAAEQ,CAAS,GAAK,KAC5C,MAAM,KAAKR,CAAiB,EAAEQ,CAAS,EAAE,MAAK,EAE9C,MAAM,KAAKR,CAAiB,EAAE,CAAC,EAAE,MAAK,UAErCM,EAAW,QAAQ,SAAS,EAAG,CACpC,MAAMG,EAAeH,EAChB,QAAQ,SAAS,EACjB,iBAAiB,qCAAqC,EAC3DJ,EAAe,MAAM,KAAKO,CAAY,EAAE,QAAQH,CAAU,EAAI,EAC1D,MAAM,KAAKG,CAAY,EAAEP,CAAY,GAAK,KAC1C,MAAM,KAAKO,CAAY,EAAEP,CAAY,EAAE,MAAK,EAE5C,MAAM,KAAKO,CAAY,EAAE,CAAC,EAAE,MAAK,CACzC,CACA,KACxB,CACY,CACJ,CAAC,EACD,KAAK,iBAAiB,SAAWC,GAAM,CACnC,IAAIC,EAAIC,EAAIC,EAAIC,EAChB,MAAMC,EAAc,IAAI,YAAYL,EAAE,SAAU,CAAE,OAAQ,CAAE,GAAI,KAAK,aAAa,IAAI,EAAG,OAAQA,EAAE,MAAM,EAAI,EAC7G,KAAK,cAAcK,CAAW,EAE1B,KAAK,QAAQ,gBAAgB,GAC7Bd,EAAU,CAAC,EAAE,MAAK,EAElB,KAAK,aAAa,cAAc,IAChCS,EAAE,eAAc,EAChB,KAAK,gBAAgB,cAAc,EACnC,KAAK,YAAW,GAEhB,KAAK,QAAQ,eAAe,GAAK,SAAS,cAAc,mBAAmB,KAAK,aAAa,IAAI,CAAC,IAAI,IACrGC,EAAK,SAAS,cAAc,mBAAmB,KAAK,aAAa,IAAI,CAAC,IAAI,KAAO,MAAQA,IAAO,QAAkBA,EAAG,aAAa,eAAgB,MAAM,GACxJC,EAAK,SAAS,cAAc,mBAAmB,KAAK,aAAa,IAAI,CAAC,IAAI,KAAO,MAAQA,IAAO,QAAkBA,EAAG,UAAU,IAAI,QAAQ,KAG3IC,EAAK,SAAS,cAAc,mBAAmB,KAAK,aAAa,IAAI,CAAC,IAAI,KAAO,MAAQA,IAAO,QAAkBA,EAAG,gBAAgB,cAAc,GACnJC,EAAK,SAAS,cAAc,mBAAmB,KAAK,aAAa,IAAI,CAAC,IAAI,KAAO,MAAQA,IAAO,QAAkBA,EAAG,UAAU,OAAO,QAAQ,EAEvJ,CAAC,EACD,KAAK,iBAAiB,QAAU5B,GAAU,CACtC,GAAIA,GACAA,EAAM,kBAAkB,aACxBA,EAAM,OAAO,QAAQ,uCAAuC,EAAG,CAC/D,MAAM8B,EAAS9B,EAAM,OAAO,QAAQ,wBAAwB,EACZ8B,GAAO,UAAU,OAAO,MAAM,CAClF,SACS9B,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,mBAAmB,EAAG,CAChG,MAAM8B,EAAS9B,EAAM,OAAO,QAAQ,mBAAmB,EACnD,KAAK,aAAa,UAAU,EAC5B8B,EAAO,UAAU,OAAO,UAAU,EAEmBA,GAAO,UAAU,SAAS,UAAU,EACzF,KAAK,iBAAiB,WAAW,EAAE,QAASZ,GAAS,CACjDA,EAAK,UAAU,OAAO,UAAU,CACpC,CAAC,GAGD,KAAK,iBAAiB,WAAW,EAAE,QAASA,GAAS,CACjDA,EAAK,UAAU,OAAO,UAAU,CACpC,CAAC,EACDY,EAAO,UAAU,IAAI,UAAU,EAEvC,CACJ,CAAC,EAEI,IAAI,SAAS,MAAO,aAAa,GAClC,SAAS,iBAAiB,QAAU9B,GAAU,CAC1C,GAAIA,EAAM,gBAAkBA,EAAM,eAAe,QAAQ,iBAAiB,EAAG,CACzE,MAAM8B,EAAS9B,EAAM,eACf+B,EAAYD,EAAO,aAAa,eAAe,EAC/CE,EAAU,SAAS,eAAeD,CAAS,EAC3CE,EAAiBH,EAAO,sBAAqB,EAC7CI,EAAMD,EAAe,IACrBE,EAAOF,EAAe,KAC5BD,EAAQ,MAAM,YAAY,MAAOE,EAAM,IAAI,EAC3CF,EAAQ,MAAM,YAAY,OAAQG,EAAOL,EAAO,YAAc,IAAI,CACtE,CACJ,CAAC,CAET,CACJ,CC3LA,IAAIM,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMC,EAAO,CAAE,OAAOA,aAAiBH,EAAIG,EAAQ,IAAIH,EAAE,SAAUI,EAAS,CAAEA,EAAQD,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKH,IAAMA,EAAI,UAAU,SAAUI,EAASC,EAAQ,CACvD,SAASC,EAAUH,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,KAAKE,CAAK,CAAC,CAAG,OAASlB,EAAG,CAAEoB,EAAOpB,CAAC,CAAG,CAAE,CAC1F,SAASuB,EAASL,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,MAASE,CAAK,CAAC,CAAG,OAASlB,EAAG,CAAEoB,EAAOpB,CAAC,CAAG,CAAE,CAC7F,SAASsB,EAAKE,EAAQ,CAAEA,EAAO,KAAOL,EAAQK,EAAO,KAAK,EAAIP,EAAMO,EAAO,KAAK,EAAE,KAAKH,EAAWE,CAAQ,CAAG,CAC7GD,GAAMN,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CACxE,CAAC,CACL,EAIA5C,EAAyB,UAAU,EACnC,MAAMuD,UAAgB,WAAY,CAC9B,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMtC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,MAEvB,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,CAAC,KAAO,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAIxEP,CAAQ;AAAA;AAAA;AAAA,MAIN,KAAK,WAAW,YAAYO,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,OAAOyB,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAIX,EAAIC,EAER,MAAMpB,EAAgB,KAChBE,EAAWF,EAAc,WAAW,cAAc,aAAa,EAiBrE,GAhBsB,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAElD,OAAO,eAAe,IAAI,UAAU,GACrC,OAAO,eAAe,OAAO,WAAYI,CAAO,EACpDL,EAAUC,CAAa,EAEnBA,EAAc,aAAa,mBAAmB,GAC9CE,EAAS,mBAAmB,aAAc,6CAA6C,KAAK,aAAa,mBAAmB,CAAC,kCAAkC,EAG/J,CAACF,EAAc,cAAc,eAAe,GAAK,CAACA,EAAc,cAAc,oBAAoB,GAAK,CAACA,EAAc,UAAU,SAAS,eAAe,GAAK,CAACA,EAAc,QAAQ,0BAA0B,GAC9MA,EAAc,UAAU,IAAI,WAAW,EAIvCA,EAAc,cAAc,eAAe,IAC3CA,EAAc,WAAW,WAAa;AAAA;AAAA;AAAA;AAAA;AAAA,YAOlC,CAAC,IAAI,SAAS,MAAO,aAAa,GAAG,CACrC,MAAM4C,GAAgBzB,EAAK,KAAK,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAc,2BAA2B,EACvH0B,GAAiBzB,EAAK,KAAK,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAc,WAAW,EAClDwB,GAAa,iBAAiB,QAAUlD,GAAU,CAC1G,KAAK,MAAM,YAAY,WAAY,SAAS,EAC5C,KAAK,MAAM,YAAY,UAAW,QAAQ,EAC1C,MAAMiC,EAAiBiB,EAAa,sBAAqB,EACnDhB,EAAMD,EAAe,IACrBE,EAAOF,EAAe,KAC5BkB,EAAc,MAAM,YAAY,UAAW,OAAO,EAClDA,EAAc,MAAM,YAAY,MAAOjB,EAAM,IAAI,EACjDiB,EAAc,MAAM,YAAY,OAAQhB,EAAO,IAAM,IAAI,CAC7D,CAAC,EACD,SAAS,iBAAiB,SAAWnC,GAAU,CAC3CmD,EAAc,MAAM,YAAY,UAAW,MAAM,CACrD,CAAC,CACL,CAQJ,GALA,MAAM,KAAK7C,EAAc,iBAAiB,eAAe,CAAC,EAAE,QAASwB,GAAW,CAC5EA,EAAO,UAAU,IAAI,KAAK,EAC1BA,EAAO,UAAU,IAAI,YAAY,CACrC,CAAC,EAEGxB,EAAc,cAAc,sCAAsC,EAAG,CACrE,MAAM8C,EAAU9C,EAAc,cAAc,sCAAsC,EAClF8C,EAAQ,iBAAiB,aAAc,IAAM,CACzC9C,EAAc,UAAU,IAAI,eAAe,CAC/C,CAAC,EACD8C,EAAQ,iBAAiB,aAAc,IAAM,CACzC9C,EAAc,UAAU,OAAO,eAAe,CAClD,CAAC,CACL,CACA,GAAIA,EAAc,WAAW,cAAc,gBAAgB,EAAG,CAC1D,MAAM8C,EAAU9C,EAAc,WAAW,cAAc,gBAAgB,EACvE8C,EAAQ,iBAAiB,aAAc,IAAM,CACzC9C,EAAc,UAAU,IAAI,eAAe,CAC/C,CAAC,EACD8C,EAAQ,iBAAiB,aAAc,IAAM,CACzC9C,EAAc,UAAU,OAAO,eAAe,CAClD,CAAC,CACL,CAEA,MAAM+C,EAAW/C,EAAc,cAAc,wBAAwB,EACjE+C,GACAA,EAAS,iBAAiB,SAAU,IAAM,CACtC,GAAIA,EAAS,QAAS,CAClB,MAAMC,EAAc,IAAI,YAAY,cAAe,CAC/C,OAAQ,CAAE,aAAcD,EAAS,MAAO,aAAcA,EAAS,aAAa,MAAM,CAAC,CAC/G,CAAyB,EACD/C,EAAc,cAAcgD,CAAW,CAC3C,KACK,CACD,MAAMA,EAAc,IAAI,YAAY,gBAAiB,CACjD,OAAQ,CAAE,aAAcD,EAAS,MAAO,aAAcA,EAAS,aAAa,MAAM,CAAC,CAC/G,CAAyB,EACD/C,EAAc,cAAcgD,CAAW,CAC3C,CACJ,CAAC,EAGL,MAAMC,EAAejD,EAAc,cAAc,oBAAoB,EACjEiD,GACAA,EAAa,iBAAiB,QAAS,IAAM,CACzC,MAAMD,EAAc,IAAI,YAAY,2BAA4B,CAC5D,OAAQ,CAAE,MAAOC,EAAa,aAAa,OAAO,CAAC,CAC3E,CAAqB,EACDjD,EAAc,cAAcgD,CAAW,CAC3C,CAAC,EAGL,MAAME,EAAalD,EAAc,iBAAiB,eAAe,EACjE,MAAM,KAAKkD,CAAU,EAAE,QAAS1B,GAAW,CACvCA,EAAO,iBAAiB,QAAS,IAAM,CACnC,MAAMwB,EAAc,IAAI,YAAY,wBAAyB,CACzD,OAAQ,CAAE,MAAOxB,EAAO,aAAa,OAAO,CAAC,CACrE,CAAqB,EACDxB,EAAc,cAAcgD,CAAW,CAC3C,CAAC,CACL,CAAC,EACG,KAAK,cAAc,eAAe,GAClC,KAAK,UAAU,IAAI,SAAS,EAChC1D,EAAeU,EAAe,WAAY,CACtC,cACA,gBACA,2BACA,uBAChB,CAAa,CACL,CAAC,CACL,CACA,WAAW,oBAAqB,CAC5B,MAAO,CAAC,YAAY,CACxB,CACA,yBAAyBmD,EAAUC,EAAQC,EAAQ,CAC/C,OAAQF,EAAQ,CACZ,IAAK,aAAc,CACX,KAAK,WAAW,cAAc,cAAc,IAC5C,KAAK,WAAW,cAAc,cAAc,EAAE,UAAYE,GAC9D,KACJ,CACA,IAAK,aAAc,CACf,GAAID,GAAUC,EAAQ,CAClB,MAAMC,EAAc,KAAK,WAAW,cAAc,iBAAiB,EAC/DA,GACAA,EAAY,aAAa,MAAOD,CAAM,CAC9C,CACA,KACJ,CACZ,CACI,CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const b=g=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:g})};b("iam-carousel");class _ extends HTMLElement{constructor(){super(),this.generateThumbnailList=t=>{const e=[];return Array.from(t.querySelectorAll(":scope > :is(div,iam-card)")).forEach((s,o)=>{s.hasAttribute("data-thumbnail")&&(e[o]=s.getAttribute("data-thumbnail"))}),e},this.generatePipsHTML=(t,e)=>{const s=t.querySelectorAll(":scope > :is(div,iam-card)").length;let o="";for(let r=1;r<=s;r++){let l=null,a="";e.length&&e[r-1]?(a="has-thumbnail",l=`<img src="${e[r-1]}" alt="Slide ${r}" height="148"/>`):l=`Slide ${r}`,o+=`<button class="control-${r} ${a}" data-slide="${r}" ${r==1?"aria-current":""}>${l}</button>`}return o},this.progressPercent=(t,e)=>t/e*100+"%"}connectedCallback(){this.insertAdjacentHTML("beforeend",`
|
|
5
5
|
<div class="carousel__controls">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"collapsible side menu"});class c extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const o=document.createElement("template");o.innerHTML=`
|
|
5
5
|
<style class="styles">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*//*! js-cookie v3.0.5 | MIT */function k(m){for(var l=1;l<arguments.length;l++){var c=arguments[l];for(var s in c)m[s]=c[s]}return m}var B={read:function(m){return m[0]==='"'&&(m=m.slice(1,-1)),m.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(m){return encodeURIComponent(m).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function C(m,l){function c(t,a,o){if(!(typeof document>"u")){o=k({},l,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var r="";for(var e in o)o[e]&&(r+="; "+e,o[e]!==!0&&(r+="="+o[e].split(";")[0]));return document.cookie=t+"="+m.write(a,t)+r}}function s(t){if(!(typeof document>"u"||arguments.length&&!t)){for(var a=document.cookie?document.cookie.split("; "):[],o={},r=0;r<a.length;r++){var e=a[r].split("="),n=e.slice(1).join("=");try{var i=decodeURIComponent(e[0]);if(o[i]=m.read(n,i),t===i)break}catch{}}return t?o[t]:o}}return Object.create({set:c,get:s,remove:function(t,a){c(t,"",k({},a,{expires:-1}))},withAttributes:function(t){return C(this.converter,k({},this.attributes,t))},withConverter:function(t){return C(k({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(l)},converter:{value:Object.freeze(m)}})}var D=C(B,{path:"/"});const j=m=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:m})};var x=function(m,l,c,s){function t(a){return a instanceof c?a:new c(function(o){o(a)})}return new(c||(c=Promise))(function(a,o){function r(i){try{n(s.next(i))}catch(b){o(b)}}function e(i){try{n(s.throw(i))}catch(b){o(b)}}function n(i){i.done?a(i.value):t(i.value).then(r,e)}n((s=s.apply(m,l||[])).next())})};j("iam-config");class R extends HTMLElement{constructor(){var l,c;super(),this.getBucketsData=t=>{if(!t)return[];const a=[];return t.forEach(o=>{var r,e;typeof((r=o.attributes)===null||r===void 0?void 0:r.criteria)=="object"&&Array.isArray((e=o.attributes)===null||e===void 0?void 0:e.criteria)&&a.push(o)}),a},this.createBuckets=t=>(console.log(t),this.shadowRoot.querySelector("#buckets"),t?(t.forEach(a=>{this.createBucket(a)}),!0):!1),this.createBucket=t=>{const a=this.shadowRoot.querySelector("#buckets"),o=document.createElement("div");o.innerHTML=this.addBucketHTML(t),o.classList.add("bucket__wrapper"),a?.insertAdjacentElement("beforeend",o),this.createEditBucketsEvents(o);const r=o.querySelector(".criteria--container");return t.attributes&&(t.attributes.criteria.forEach(e=>{var n,i,b;const g=document.createElement("form");g.classList.add("criteria"),g.innerHTML=this.addCriteriaHTML(e.attributes),(n=g.querySelector('[name="attribute"]'))===null||n===void 0||(n.value=e.attributes.attribute),(i=g.querySelector('[name="rule"]'))===null||i===void 0||(i.value=e.attributes.rule),(b=g.querySelector('[name="match"]'))===null||b===void 0||(b.value=e.attributes.match),r?.appendChild(g)}),this.createForms(t.attributes.items,t.id)),o},this.addCriteriaHTML=t=>`<label>
|
|
5
5
|
<span class="visually-hidden">Attribute</span>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const u=g=>{Array.from(document.querySelectorAll(".wp-block-buttons")).forEach(t=>{const e=document.createDocumentFragment();Array.from(t.querySelectorAll(".wp-block-button")).forEach(o=>{const i=o.querySelector("a");i.setAttribute("class",o.getAttribute("class")),e.appendChild(i)}),t.parentNode.replaceChild(e,t)})};class f extends HTMLElement{constructor(){super(),this.addTitle=e=>this.hasAttribute("data-title-tag")?`<${this.getAttribute("data-title-tag")} class="${this.getAttribute("data-title-class")} iam-content--title">${e}</${this.getAttribute("data-title-tag")}>`:"",this.fixContent=e=>{const o=e.getAttribute("data-transform");let i=e;o?(e.querySelectorAll(`${o} > *:empty`).forEach(s=>{s.remove()}),i=e.querySelector(`${o}`)):e.querySelectorAll(":scope > *:empty").forEach(s=>{s.remove()});const c=e.getAttribute("data-items-class");c&&i.querySelectorAll(":scope > *").forEach(s=>{s.classList.add(c)})},this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Dark mode button"});class i extends HTMLElement{constructor(){var e;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const o=document.createElement("template");o.innerHTML=`
|
|
5
5
|
<style>::slotted(.toggle):after{--icon: var(--icon-light);background:red;mask-image:var(--icon);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}::slotted(.toggle.dark-theme):after{--icon: var(--icon-dark)}/*# sourceMappingURL=assets/css/components/darkmode.component.css.map */
|