@iamproperty/components 7.1.0--beta5 → 7.1.0--beta6
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/multiselect.css +1 -1
- package/assets/css/components/multiselect.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 +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.js +5 -0
- 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/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +3 -3
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components.bundle.js +1 -1
- package/assets/js/modules/tabs.js +12 -22
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/components/multiselect.scss +1 -1
- package/assets/ts/components/multiselect/multiselect.component.ts +5 -0
- package/assets/ts/modules/tabs.ts +15 -22
- package/dist/components.es.js +11 -11
- package/dist/components.umd.js +39 -39
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["// @ts-nocheck\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 return null;\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 document.addEventListener('submit', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.matches('form')) {\n const form = event.target;\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input, index) => {\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 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 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, index) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n return null;\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 .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};\n","// @ts-nocheck\nimport { getSwipeDirection } from './helpers.js';\nexport const createTabsLinks = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element, index) => {\n let button = document.createElement('button');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n button.classList.add('link');\n tabLinks.appendChild(button);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n var scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector(':scope .tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n if (window.isScrolling)\n return;\n if (!window.triggered)\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen)\n detail.setAttribute('open', detailsOpen);\n else\n detail.removeAttribute('open');\n });\n if (button.matches(':last-child')) {\n nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton.removeAttribute('disabled');\n }\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n });\n });\n buttonWrapper.addEventListener('scroll', (event) => {\n if (window.isScrolling)\n return;\n clearTimeout(scrollTimeout);\n window.isScrolling = true;\n });\n buttonWrapper.addEventListener('scrollend', (event) => {\n window.isScrolling = false;\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n window.triggered = true;\n buttonToClick.focus();\n buttonToClick.click();\n window.triggered = false;\n }, 200);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","// @ts-nocheck\nimport tabs from '../../modules/tabs.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs 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 coreCSS = document.body.hasAttribute('data-core-css')\n ? document.body.getAttribute('data-core-css')\n : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n\n :host(.admin-panel){\n display: contents!important;\n }\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabLinksWrapper","tabindex","element","index","button","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","detail","detailsIndex","detailsOpen","event","buttonToClick","closestOffset","nextTab","direction","currentTab","prevTab","openFirstTab","tabs","iamTabs","assetLocation","coreCSS","template","classList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["// @ts-nocheck\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 return null;\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 document.addEventListener('submit', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.matches('form')) {\n const form = event.target;\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input, index) => {\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 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 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, index) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n return null;\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 .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};\n","// @ts-nocheck\nimport { getSwipeDirection } from './helpers.js';\nexport const createTabsLinks = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element, index) => {\n let button = document.createElement('button');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n button.classList.add('link');\n tabLinks.appendChild(button);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n var scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector(':scope .tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen)\n detail.setAttribute('open', detailsOpen);\n else\n detail.removeAttribute('open');\n });\n if (button.matches(':last-child')) {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');\n }\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n });\n });\n buttonWrapper.addEventListener('scrollend', (event) => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n else {\n buttonToClick.click();\n }\n buttonToClick.focus();\n }, 500);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","// @ts-nocheck\nimport tabs from '../../modules/tabs.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs 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 coreCSS = document.body.hasAttribute('data-core-css')\n ? document.body.getAttribute('data-core-css')\n : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n\n :host(.admin-panel){\n display: contents!important;\n }\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabLinksWrapper","tabindex","element","index","button","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","detail","detailsIndex","detailsOpen","event","buttonToClick","closestOffset","nextTab","direction","currentTab","prevTab","openFirstTab","tabs","iamTabs","assetLocation","coreCSS","template","classList"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.1.0--
|
|
2
|
+
* iamKey v7.1.0--beta6
|
|
3
3
|
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/const u=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})},p=(i,t,e)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),e.forEach(r=>{i.addEventListener(r,function(o){const a={event:r,element:t,target:o.target};Object.keys(o.detail).forEach(d=>{const n=o.detail[d];a[d]=n}),window.dataLayer.push(a)})}),!0),h=`<div class="card__head" part="head">
|
|
5
5
|
<slot name="head"></slot>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.1.0--
|
|
2
|
+
* iamKey v7.1.0--beta6
|
|
3
3
|
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/(function(t){typeof define=="function"&&define.amd?define(t):t()})(function(){"use strict";var t=["accordion","header","table","tabs","card","filter-card","video-card","record-card","filterlist","applied-filters","pagination","notification","actionbar","nav","collapsible-side","address-lookup","fileupload","search","inline-edit","multiselect","multi-step","slider","carousel","marketing","barchart"],a="iam",i={rootMargin:"50px",threshold:.1},r=".component.min.js";t.forEach(e=>{if(document.getElementsByTagName("".concat(a,"-").concat(e)).length!==0){var s=l=>{l.forEach(o=>{o.intersectionRatio>0&&(console.log(e),import("./components/".concat(e,"/").concat(e).concat(r)).then(c=>{window.customElements.get("".concat(a,"-").concat(e))||window.customElements.define("".concat(a,"-").concat(e),c.default)}).catch(c=>{console.log(c.message)}),n.unobserve(o.target))})},n=new IntersectionObserver(s,i);n.observe(document.getElementsByTagName("".concat(a,"-").concat(e))[0])}})});
|
|
5
5
|
//# sourceMappingURL=components.bundle.js.map
|
|
@@ -63,10 +63,7 @@ export const setTabsEventHandlers = function (tabsElement) {
|
|
|
63
63
|
buttons.forEach((button) => {
|
|
64
64
|
button.addEventListener('click', (e) => {
|
|
65
65
|
e.preventDefault();
|
|
66
|
-
|
|
67
|
-
return;
|
|
68
|
-
if (!window.triggered)
|
|
69
|
-
window.isClicked = true;
|
|
66
|
+
window.isClicked = true;
|
|
70
67
|
if (button.classList.contains('disabled'))
|
|
71
68
|
return false;
|
|
72
69
|
buttons.forEach((buttonLoopItem) => {
|
|
@@ -86,10 +83,10 @@ export const setTabsEventHandlers = function (tabsElement) {
|
|
|
86
83
|
detail.removeAttribute('open');
|
|
87
84
|
});
|
|
88
85
|
if (button.matches(':last-child')) {
|
|
89
|
-
nextButton.setAttribute('disabled', 'disabled');
|
|
86
|
+
nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');
|
|
90
87
|
}
|
|
91
88
|
else {
|
|
92
|
-
nextButton.removeAttribute('disabled');
|
|
89
|
+
nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');
|
|
93
90
|
}
|
|
94
91
|
// Data layer Open Event
|
|
95
92
|
window.dataLayer = window.dataLayer || [];
|
|
@@ -99,20 +96,9 @@ export const setTabsEventHandlers = function (tabsElement) {
|
|
|
99
96
|
});
|
|
100
97
|
});
|
|
101
98
|
});
|
|
102
|
-
buttonWrapper.addEventListener('scroll', (event) => {
|
|
103
|
-
if (window.isScrolling)
|
|
104
|
-
return;
|
|
105
|
-
clearTimeout(scrollTimeout);
|
|
106
|
-
window.isScrolling = true;
|
|
107
|
-
});
|
|
108
99
|
buttonWrapper.addEventListener('scrollend', (event) => {
|
|
109
|
-
window.isScrolling = false;
|
|
110
100
|
clearTimeout(scrollTimeout);
|
|
111
101
|
scrollTimeout = setTimeout(function () {
|
|
112
|
-
if (window.isClicked) {
|
|
113
|
-
window.isClicked = false;
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
102
|
let buttonToClick = buttons[0];
|
|
117
103
|
let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);
|
|
118
104
|
buttons.forEach((button) => {
|
|
@@ -121,11 +107,15 @@ export const setTabsEventHandlers = function (tabsElement) {
|
|
|
121
107
|
buttonToClick = button;
|
|
122
108
|
}
|
|
123
109
|
});
|
|
124
|
-
window.
|
|
110
|
+
if (window.isClicked) {
|
|
111
|
+
window.isClicked = false;
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
buttonToClick.click();
|
|
116
|
+
}
|
|
125
117
|
buttonToClick.focus();
|
|
126
|
-
|
|
127
|
-
window.triggered = false;
|
|
128
|
-
}, 200);
|
|
118
|
+
}, 500);
|
|
129
119
|
});
|
|
130
120
|
// Make sure we dont loose existing summary functionality
|
|
131
121
|
summaries.forEach((summary, index) => {
|
|
@@ -134,7 +124,7 @@ export const setTabsEventHandlers = function (tabsElement) {
|
|
|
134
124
|
buttons[index].click();
|
|
135
125
|
});
|
|
136
126
|
});
|
|
137
|
-
nextButton.addEventListener('click', (e) => {
|
|
127
|
+
nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {
|
|
138
128
|
e.preventDefault();
|
|
139
129
|
const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
|
|
140
130
|
const nextTab = currentTab.nextSibling;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.1.0--
|
|
2
|
+
* iamKey v7.1.0--beta6
|
|
3
3
|
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/(function(h){typeof define=="function"&&define.amd?define(h):h()})(function(){"use strict";var h=r=>(r.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie"),null),T=r=>{var e=function(t){var o=document.querySelector('label[for="'.concat(t.replace("#",""),'"]')),c=document.querySelector(t+" summary"),s=document.querySelector("dialog".concat(t)),n=document.querySelector("detail".concat(t));o instanceof HTMLElement?o.click():c instanceof HTMLElement?c.click():s instanceof HTMLElement?s.showModal():n instanceof HTMLElement&&n.addAttribute("open")};return location.hash&&e(location.hash),window.addEventListener("hashchange",function(){e(location.hash)},!1),addEventListener("popstate",a=>{if(a&&a.state&&a.state.type&&a.state.type=="pagination"){var t=document.querySelector("#".concat(a.state.form)),o=document.querySelector("#".concat(a.state.form," [data-pagination]"));o?o.value=a.state.page:t.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(a.state.page,'" />'),t.dispatchEvent(new Event("submit"))}}),document.addEventListener("submit",a=>{if(a&&a.target instanceof HTMLElement&&a.target.matches("form")){var t=a.target;Array.from(t.querySelectorAll("[data-password-type]")).forEach((o,c)=>{o.setAttribute("type","password")}),(t.querySelector(":invalid")||t.querySelector('.pwd-checker[data-strength="1"]')||t.querySelector('.pwd-checker[data-strength="2"]'))&&(t.classList.add("was-validated"),a.preventDefault()),t.querySelector("iam-multiselect[data-is-required][data-error]")&&(t.classList.add("was-validated"),a.preventDefault())}}),document.addEventListener("keydown",a=>{a.key==="Escape"&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(a.preventDefault(),a.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach((a,t)=>{var o=a.closest("label");o.setAttribute("data-percent",a.getAttribute("value"))}),null},C=r=>(Array.from(r.querySelectorAll("dialog[open]")).forEach((e,a)=>{var t=e.closest(".dialog__wrapper");t||(e.removeAttribute("open"),e.showModal(),e.focus(),v(e))}),r.addEventListener("click",e=>{if(e.target.tagName=="IAM-ACTIONBAR")return!1;if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-modal]")){var a=e.target.closest("[data-modal]"),t=a.hasAttribute("data-modal")?a.getAttribute("data-modal"):a.getAttribute("data-filter"),o=document.querySelector("dialog#".concat(t));if(v(o),o.showModal(),o.focus(),!o.querySelector("iam-multi-step")){var c=o.offsetWidth;o.setAttribute("style","max-width: ".concat(c,"px;"))}Array.from(o.querySelectorAll("[data-duplicate]")).forEach((u,p)=>{var W=u.getAttribute("data-duplicate"),M=document.getElementById(W);if(u.checked!=M.checked){u.checked=M.checked;var J=new Event("change");u.dispatchEvent(J)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:t})}if(e&&e.target instanceof HTMLElement&&e.target.closest("button.dialog__close")){var s=e.target.closest("dialog[open]");e.preventDefault(),s.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.classList.remove("active")});var n=new CustomEvent("dialog-closed",{bubbles:!0,cancelable:!0,detail:{modalId:s.id}});e.target.dispatchEvent(n),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest('button[formmethod="dialog"]')){var i=e.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:i.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest("dialog[open]")){var l=e.target.closest("dialog[open]"),y=window.getComputedStyle(l);if(y.display==="contents"&&(l=l.parentNode.closest("dialog[open]")),!l.classList.contains("dialog--transactional")&&!l.classList.contains("dialog--acknowledgement")){var g=l.getBoundingClientRect();(e.clientX<g.left||e.clientX>g.right||e.clientY<g.top||e.clientY>g.bottom)&&(e.target.closest("dialog *")||l.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:l.getAttribute("id")}))}}if(e&&e.target instanceof HTMLElement&&e.target.closest(".dialog__wrapper > button")){e.stopPropagation();var f=e.target.closest(".dialog__wrapper > button"),V=f.parentNode,E="openPopover",d=V.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=d&&f.closest("dialog[open]")!=document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.removeAttribute("aria-expanded")}),d.hasAttribute("open"))d.close(),E="closePopover",d.removeAttribute("style"),f.removeAttribute("aria-expanded");else{d.show(),f.setAttribute("aria-expanded",!0);var L=f.getBoundingClientRect(),q=L.top,x=L.left;if(f.closest("iam-table")){var k=f.closest("iam-table").parentNode.getBoundingClientRect();q-=k.top,x-=k.left}d.classList.contains("dialog--fix")&&d.setAttribute("style","position:fixed;top: ".concat(q,"px; left: ").concat(x,"px; margin: 3rem 0 0 0;"))}var w=d.getBoundingClientRect(),O=w.bottom-window.scrollY,Y=window.innerHeight-window.scrollY;if(O>Y){var R=d.hasAttribute("style")?d.getAttribute("style")+" ":"";d.setAttribute("style",R+"transform: translate(0, calc(-100% - 4rem))"),w=d.getBoundingClientRect();var F=w.top-window.scrollY;F<100&&d.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:E,id:f.textContent})}e&&e.target instanceof HTMLElement&&!e.target.closest("dialog[open]")&&!e.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach((u,p)=>{u.removeAttribute("aria-expanded")}))}),null),v=r=>{if(!r.querySelector(":scope .mh-lg")&&!r.querySelector("iam-multi-step")){r.innerHTML='<div class="mh-lg">'.concat(r.innerHTML,"</div>");var e=r.querySelector(".mh-lg"),a=r.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(a){var t=a.previousSibling;e.before(a),t&&a.before(t)}}r.querySelector(":scope > button:first-child")||r.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')};function H(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",r=>{var e=r.target.closest("[open] summary");if(e)window.dataLayer.push({event:"closeDetails",detailsTitle:e.textContent||""});else{var a=r.target.closest("summary"),t=r.target.closest("a"),o=r.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),t&&window.dataLayer.push({event:"linkClicked",linkText:t.hasAttribute("title")?t.getAttribute("title")||"":t.textContent||"",class:t.hasAttribute("class")&&t.getAttribute("class")||"",href:t.getAttribute("href")||""}),o&&window.dataLayer.push({event:"buttonClicked",buttonText:o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||""})}})}function D(r){var e=new TextEncoder("utf-8").encode(r);return crypto.subtle.digest("SHA-1",e).then(function(a){for(var t=[],o=new DataView(a),c=0;c<o.byteLength;c+=4){var s=o.getUint32(c),n=s.toString(16),i="00000000",l=(i+n).slice(-i.length);t.push(l)}return t.join("")})}var _=(r,e)=>{D(r).then(function(a){var t=new XMLHttpRequest;t.addEventListener("load",function(){var o=this.responseText.split(`
|
|
5
5
|
`),c=a.slice(5).toUpperCase(),s=!1;for(var n in o)if(o[n].substring(0,35)==c){s=!0;break}var i=new CustomEvent("hibpCheck",{detail:s});e.dispatchEvent(i)}),t.open("GET","https://api.pwnedpasswords.com/range/"+a.substr(0,5)),t.send()})},B=r=>{function e(){if(Array.from(document.querySelectorAll("input[maxlength],textarea[maxlength]")).forEach((t,o)=>{t.parentElement,I(t)}),Array.from(document.querySelectorAll("label input")).forEach((t,o)=>{!t.closest("label").querySelector(".optional-text")&&!t.hasAttribute("required")&&(t.parentNode.tagName.toLowerCase()=="span"?t.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):t.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))}),document.querySelector('input[type="date"]')){let t=function(o){var c=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),n=String(o.getDate()).padStart(2,"0");return"".concat(c,"-").concat(s,"-").concat(n)};var a=new Date;Array.from(document.querySelectorAll('input[type="date"]')).forEach((o,c)=>{var s=a;if(o.hasAttribute("data-start")&&(s.setDate(s.getDate()+parseInt(o.getAttribute("data-start"))),o.setAttribute("min",t(s))),o.hasAttribute("data-period")){var n=parseInt(o.getAttribute("data-period")),i=new Date;i.setDate(s.getDate()+n),o.setAttribute("max",t(i))}if(o.hasAttribute("data-allowed-days")){var l=JSON.parse("[".concat(o.getAttribute("data-allowed-days"),"]"));o.addEventListener("input",function(y){var g=new Date(this.value).getUTCDay();l.includes(g)?o.setCustomValidity(""):o.setCustomValidity("That day of the week is not allowed")})}})}}document.readyState==="complete"&&e(),document.onreadystatechange=()=>{document.readyState==="complete"&&e()},r.addEventListener("input",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("input,textarea,select")){var t=a.target.closest("input,textarea,select");t.parentElement,t.hasAttribute("type")&&t.getAttribute("type")=="color"&&(t.nextElementSibling.value=t.value),t.hasAttribute("maxlength")&&t.nextElementSibling&&t.nextElementSibling.setAttribute("data-count",t.value.length),t.hasAttribute("data-strength-checker")&&b(t)}}),r.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("select")){var t=a.target.closest("select");if(t.hasAttribute("data-change-type")&&t.hasAttribute("data-input")){var o=document.getElementById(t.getAttribute("data-input")),c=t.value;S(o,c)}}if(a&&a.target instanceof HTMLElement&&a.target.closest('dialog [type="radio"]')){var s=a.target.closest("dialog");a.target.closest('dialog [type="radio"]'),Array.from(s.querySelectorAll('[type="radio"][autofocus]')).forEach((n,i)=>{n.removeAttribute("autofocus")}),Array.from(s.querySelectorAll('[type="radio"]:checked')).forEach((n,i)=>{n.setAttribute("autofocus",!0)})}}),r.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-change-type][data-input]:not(select)")){var t=a.target.closest("[data-change-type]"),o=document.getElementById(t.getAttribute("data-input")),c=t.getAttribute("data-change-type");if(t.setAttribute("data-change-type",o.getAttribute("type")),S(o,c),t.hasAttribute("data-alt-class")){var s=t.getAttribute("data-alt-class");t.setAttribute("data-alt-class",t.getAttribute("class")),t.setAttribute("class",s)}}})},I=r=>{var e=r.parentElement,a=r.getAttribute("maxlength");e.style.setProperty("--maxlength",a);var t=r.nextElementSibling;(!t||t&&t.classList.contains("invalid-feedback"))&&(t=document.createElement("span"),e.insertBefore(t,r.nextSibling)),t.setAttribute("data-count",r.value.length)},S=(r,e)=>{r.hasAttribute("type")&&r.getAttribute("type")=="password"&&r.setAttribute("data-password-type",!0),r.setAttribute("type",e)},b=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"no",t=document.getElementById(e.getAttribute("data-strength-checker")),o=e.value,c=e.hasAttribute("minlength")?e.getAttribute("minlength"):12,s=1,n=["Very weak","Weak","Average","Strong","Very strong"],i="";if(o.match(/(?=.*[0-9])/)&&(s+=1),o.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/)&&(s+=1),o.match(/(?=.*[a-z])/)&&(s+=1),o.match(/(?=.*[A-Z])/)&&(s+=1),o.length<c&&(s=1,i="(must be at least ".concat(c," characters.)")),s>=3&&a=="no"){let l=function(y,g){y.detail?b(g,"danger"):b(g,"success"),g.removeEventListener("hibpCheck",l)};_(o,e),e.addEventListener("hibpCheck",function(y){l(y,e)})}else s>=3&&a=="danger"&&(s=3,i="(this password is very common)");t&&(s<=3?t.classList.add("invalid-feedback"):t.classList.remove("invalid-feedback"),t.setAttribute("data-strength",s),t.innerHTML="Password strength: ".concat(n[s-1]," ").concat(i))},N=()=>{document.addEventListener("change",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&A(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&A(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-click-events]")&&A(r.target,r.target.closest("[data-click-events]").getAttribute("data-click-events"))})},A=(r,e)=>{if(e||(e=r.parentNode.getAttribute("data-change-events")),!e)return!1;Array.from(JSON.parse(e)).forEach((a,t)=>{P(r,a)})},P=(r,e)=>{if("matches"in e)return e.matches=="any"||r.value==e.matches?m(r,e,"if"):m(r,e,"else"),!1;if("in-list"in e){var a=document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'));return document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'))?m(a,e,"if"):m(a,e,"else"),!1}else"event"in e&&m(r,e,"event")},m=(r,e,a)=>{if(!(a in e))return!1;switch(e[a]){case"hide":if(document.querySelector(e.target)){var t=document.querySelector(e.target);t.classList.add("js-hide"),Array.from(t.querySelectorAll("[data-required]")).forEach((n,i)=>{n.removeAttribute("required")})}break;case"show":if(document.querySelector(e.target)){var o=document.querySelector(e.target);o.classList.remove("js-hide"),Array.from(o.querySelectorAll("[data-required]")).forEach((n,i)=>{n.closest(".js-hide")||n.setAttribute("required","true")})}break;case"populate-form":j(r,e);break;case"dispatchEvent":var c=new Event(e.value);document.querySelector("".concat(e.target)).dispatchEvent(c);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n,i){n.setAttribute(e.attribute,e.value)});break;case"focus":document.querySelector("".concat(e.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n,i){n.removeAttribute(e.attribute)});break;case"updateValue":document.querySelector("".concat(e.target)).value=e.value?e.value:"";var s=new Event("change");document.querySelector("".concat(e.target)).dispatchEvent(s);break;case"submitForm":document.querySelector("".concat(e.target)).submit();break;case"openLink":document.querySelector("".concat(e.target)).value&&(window.location.href=document.querySelector("".concat(e.target)).value);break}},j=function(e,a){var t=JSON.parse(e.getAttribute("data-values")),o=document.querySelector(a.target);if(!t)return!1;Object.keys(t).forEach((c,s)=>{document.getElementById(c)&&document.getElementById(c).tagName=="SPAN"&&(document.getElementById(c).innerHTML=t[c]),o.querySelector('select[name="'.concat(c,'"] [value="').concat(t[c],'"]'))?(o.querySelector('select[name="'.concat(c,'"]')).value=t[c],e.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(c,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]'))?(Array.from(o.querySelectorAll('input[name="'.concat(c,'"][type="radio"]'))).forEach(function(n,i){n.disabled=!0}),o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]')).checked=!0,o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]')).disabled=!1):o.querySelector('input[name="'.concat(c,'"]'))&&(o.querySelector('input[name="'.concat(c,'"]')).value=t[c],e.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(c,'"]')).setAttribute("readonly","true"))})};document.addEventListener("DOMContentLoaded",function(){H(),N(),h(document.body),T(),C(document.body),B(document.body)})});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.1.0--
|
|
2
|
+
* iamKey v7.1.0--beta6
|
|
3
3
|
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/
|
|
5
5
|
!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";var e=e=>{if(!e.querySelector(":scope .mh-lg")&&!e.querySelector("iam-multi-step")){e.innerHTML='<div class="mh-lg">'.concat(e.innerHTML,"</div>");var t=e.querySelector(".mh-lg"),a=e.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(a){var r=a.previousSibling;t.before(a),r&&a.before(r)}}e.querySelector(":scope > button:first-child")||e.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')},t=(e,t)=>{(function(e){var t=new TextEncoder("utf-8").encode(e);return crypto.subtle.digest("SHA-1",t).then((function(e){for(var t=[],a=new DataView(e),r=0;r<a.byteLength;r+=4){var n=("00000000"+a.getUint32(r).toString(16)).slice(-8);t.push(n)}return t.join("")}))})(e).then((function(e){var a=new XMLHttpRequest;a.addEventListener("load",(function(){var a=this.responseText.split("\n"),r=e.slice(5).toUpperCase(),n=!1;for(var o in a)if(a[o].substring(0,35)==r){n=!0;break}var c=new CustomEvent("hibpCheck",{detail:n});t.dispatchEvent(c)})),a.open("GET","https://api.pwnedpasswords.com/range/"+e.substr(0,5)),a.send()}))},a=e=>{function t(){if(Array.from(document.querySelectorAll("input[maxlength],textarea[maxlength]")).forEach(((e,t)=>{e.parentElement,r(e)})),Array.from(document.querySelectorAll("label input")).forEach(((e,t)=>{!e.closest("label").querySelector(".optional-text")&&!e.hasAttribute("required")&&("span"==e.parentNode.tagName.toLowerCase()?e.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):e.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))})),document.querySelector('input[type="date"]')){let t=function(e){var t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)};var e=new Date;Array.from(document.querySelectorAll('input[type="date"]')).forEach(((a,r)=>{var n=e;if(a.hasAttribute("data-start")&&(n.setDate(n.getDate()+parseInt(a.getAttribute("data-start"))),a.setAttribute("min",t(n))),a.hasAttribute("data-period")){var o=parseInt(a.getAttribute("data-period")),c=new Date;c.setDate(n.getDate()+o),a.setAttribute("max",t(c))}if(a.hasAttribute("data-allowed-days")){var i=JSON.parse("[".concat(a.getAttribute("data-allowed-days"),"]"));a.addEventListener("input",(function(e){var t=new Date(this.value).getUTCDay();i.includes(t)?a.setCustomValidity(""):a.setCustomValidity("That day of the week is not allowed")}))}}))}}"complete"===document.readyState&&t(),document.onreadystatechange=()=>{"complete"===document.readyState&&t()},e.addEventListener("input",(e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("input,textarea,select")){var t=e.target.closest("input,textarea,select");t.parentElement,t.hasAttribute("type")&&"color"==t.getAttribute("type")&&(t.nextElementSibling.value=t.value),t.hasAttribute("maxlength")&&t.nextElementSibling&&t.nextElementSibling.setAttribute("data-count",t.value.length),t.hasAttribute("data-strength-checker")&&o(t)}})),e.addEventListener("change",(e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("select")){var t=e.target.closest("select");if(t.hasAttribute("data-change-type")&&t.hasAttribute("data-input")){var a=document.getElementById(t.getAttribute("data-input")),r=t.value;n(a,r)}}if(e&&e.target instanceof HTMLElement&&e.target.closest('dialog [type="radio"]')){var o=e.target.closest("dialog");e.target.closest('dialog [type="radio"]'),Array.from(o.querySelectorAll('[type="radio"][autofocus]')).forEach(((e,t)=>{e.removeAttribute("autofocus")})),Array.from(o.querySelectorAll('[type="radio"]:checked')).forEach(((e,t)=>{e.setAttribute("autofocus",!0)}))}})),e.addEventListener("click",(e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-change-type][data-input]:not(select)")){var t=e.target.closest("[data-change-type]"),a=document.getElementById(t.getAttribute("data-input")),r=t.getAttribute("data-change-type");if(t.setAttribute("data-change-type",a.getAttribute("type")),n(a,r),t.hasAttribute("data-alt-class")){var o=t.getAttribute("data-alt-class");t.setAttribute("data-alt-class",t.getAttribute("class")),t.setAttribute("class",o)}}}))},r=e=>{var t=e.parentElement,a=e.getAttribute("maxlength");t.style.setProperty("--maxlength",a);var r=e.nextElementSibling;(!r||r&&r.classList.contains("invalid-feedback"))&&(r=document.createElement("span"),t.insertBefore(r,e.nextSibling)),r.setAttribute("data-count",e.value.length)},n=(e,t)=>{e.hasAttribute("type")&&"password"==e.getAttribute("type")&&e.setAttribute("data-password-type",!0),e.setAttribute("type",t)},o=function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"no",r=document.getElementById(e.getAttribute("data-strength-checker")),n=e.value,c=e.hasAttribute("minlength")?e.getAttribute("minlength"):12,i=1,l="";if(n.match(/(?=.*[0-9])/)&&(i+=1),n.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/)&&(i+=1),n.match(/(?=.*[a-z])/)&&(i+=1),n.match(/(?=.*[A-Z])/)&&(i+=1),n.length<c&&(i=1,l="(must be at least ".concat(c," characters.)")),i>=3&&"no"==a){let a=function(e,t){e.detail?o(t,"danger"):o(t,"success"),t.removeEventListener("hibpCheck",a)};t(n,e),e.addEventListener("hibpCheck",(function(t){a(t,e)}))}else i>=3&&"danger"==a&&(i=3,l="(this password is very common)");r&&(i<=3?r.classList.add("invalid-feedback"):r.classList.remove("invalid-feedback"),r.setAttribute("data-strength",i),r.innerHTML="Password strength: ".concat(["Very weak","Weak","Average","Strong","Very strong"][i-1]," ").concat(l))},c=(e,t)=>{if(t||(t=e.parentNode.getAttribute("data-change-events")),!t)return!1;Array.from(JSON.parse(t)).forEach(((t,a)=>{i(e,t)}))},i=(e,t)=>{if("matches"in t)return"any"==t.matches||e.value==t.matches?l(e,t,"if"):l(e,t,"else"),!1;if("in-list"in t){var a=document.querySelector("".concat(t["in-list"],' option[value="').concat(e.value,'"]'));return document.querySelector("".concat(t["in-list"],' option[value="').concat(e.value,'"]'))?l(a,t,"if"):l(a,t,"else"),!1}"event"in t&&l(e,t,"event")},l=(e,t,a)=>{if(!(a in t))return!1;switch(t[a]){case"hide":if(document.querySelector(t.target)){var r=document.querySelector(t.target);r.classList.add("js-hide"),Array.from(r.querySelectorAll("[data-required]")).forEach(((e,t)=>{e.removeAttribute("required")}))}break;case"show":if(document.querySelector(t.target)){var n=document.querySelector(t.target);n.classList.remove("js-hide"),Array.from(n.querySelectorAll("[data-required]")).forEach(((e,t)=>{e.closest(".js-hide")||e.setAttribute("required","true")}))}break;case"populate-form":s(e,t);break;case"dispatchEvent":var o=new Event(t.value);document.querySelector("".concat(t.target)).dispatchEvent(o);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach((function(e,a){e.setAttribute(t.attribute,t.value)}));break;case"focus":document.querySelector("".concat(t.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach((function(e,a){e.removeAttribute(t.attribute)}));break;case"updateValue":document.querySelector("".concat(t.target)).value=t.value?t.value:"";var c=new Event("change");document.querySelector("".concat(t.target)).dispatchEvent(c);break;case"submitForm":document.querySelector("".concat(t.target)).submit();break;case"openLink":document.querySelector("".concat(t.target)).value&&(window.location.href=document.querySelector("".concat(t.target)).value)}},s=function(e,t){var a=JSON.parse(e.getAttribute("data-values")),r=document.querySelector(t.target);if(!a)return!1;Object.keys(a).forEach(((t,n)=>{document.getElementById(t)&&"SPAN"==document.getElementById(t).tagName&&(document.getElementById(t).innerHTML=a[t]),r.querySelector('select[name="'.concat(t,'"] [value="').concat(a[t],'"]'))?(r.querySelector('select[name="'.concat(t,'"]')).value=a[t],e.hasAttribute("data-lock-fields")&&(r.querySelector('select[name="'.concat(t,'"]')).disabled=!0)):r.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]'))?(Array.from(r.querySelectorAll('input[name="'.concat(t,'"][type="radio"]'))).forEach((function(e,t){e.disabled=!0})),r.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]')).checked=!0,r.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]')).disabled=!1):r.querySelector('input[name="'.concat(t,'"]'))&&(r.querySelector('input[name="'.concat(t,'"]')).value=a[t],e.hasAttribute("data-lock-fields")&&r.querySelector('input[name="'.concat(t,'"]')).setAttribute("readonly","true"))}))};document.addEventListener("DOMContentLoaded",(function(){var t,r;window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",(e=>{var t=e.target.closest("[open] summary");if(t)window.dataLayer.push({event:"closeDetails",detailsTitle:t.textContent||""});else{var a=e.target.closest("summary"),r=e.target.closest("a"),n=e.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),r&&window.dataLayer.push({event:"linkClicked",linkText:r.hasAttribute("title")?r.getAttribute("title")||"":r.textContent||"",class:r.hasAttribute("class")&&r.getAttribute("class")||"",href:r.getAttribute("href")||""}),n&&window.dataLayer.push({event:"buttonClicked",buttonText:n.textContent||"",class:n.hasAttribute("class")&&n.getAttribute("class")||""})}})),document.addEventListener("change",(e=>{e&&e.target instanceof HTMLElement&&e.target.closest("[data-change-events]")&&c(e.target,e.target.closest("[data-change-events]").getAttribute("data-change-events"))})),document.addEventListener("keyup",(e=>{e&&e.target instanceof HTMLElement&&e.target.closest("[data-change-events]")&&c(e.target,e.target.closest("[data-change-events]").getAttribute("data-change-events"))})),document.addEventListener("click",(e=>{e&&e.target instanceof HTMLElement&&e.target.closest("[data-click-events]")&&c(e.target,e.target.closest("[data-click-events]").getAttribute("data-click-events"))})),(r=document.body).classList.add("js-enabled"),(-1!==navigator.userAgent.indexOf("MSIE")||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie"),t=function(e){var t=document.querySelector('label[for="'.concat(e.replace("#",""),'"]')),a=document.querySelector(e+" summary"),r=document.querySelector("dialog".concat(e)),n=document.querySelector("detail".concat(e));t instanceof HTMLElement?t.click():a instanceof HTMLElement?a.click():r instanceof HTMLElement?r.showModal():n instanceof HTMLElement&&n.addAttribute("open")},location.hash&&t(location.hash),window.addEventListener("hashchange",(function(){t(location.hash)}),!1),addEventListener("popstate",(e=>{if(e&&e.state&&e.state.type&&"pagination"==e.state.type){var t=document.querySelector("#".concat(e.state.form)),a=document.querySelector("#".concat(e.state.form," [data-pagination]"));a?a.value=e.state.page:t.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(e.state.page,'" />'),t.dispatchEvent(new Event("submit"))}})),document.addEventListener("submit",(e=>{if(e&&e.target instanceof HTMLElement&&e.target.matches("form")){var t=e.target;Array.from(t.querySelectorAll("[data-password-type]")).forEach(((e,t)=>{e.setAttribute("type","password")})),(t.querySelector(":invalid")||t.querySelector('.pwd-checker[data-strength="1"]')||t.querySelector('.pwd-checker[data-strength="2"]'))&&(t.classList.add("was-validated"),e.preventDefault()),t.querySelector("iam-multiselect[data-is-required][data-error]")&&(t.classList.add("was-validated"),e.preventDefault())}})),document.addEventListener("keydown",(e=>{"Escape"===e.key&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(e.preventDefault(),e.stopPropagation())})),Array.from(document.querySelectorAll("label progress")).forEach(((e,t)=>{e.closest("label").setAttribute("data-percent",e.getAttribute("value"))})),(t=>{Array.from(t.querySelectorAll("dialog[open]")).forEach(((t,a)=>{t.closest(".dialog__wrapper")||(t.removeAttribute("open"),t.showModal(),t.focus(),e(t))})),t.addEventListener("click",(t=>{if("IAM-ACTIONBAR"==t.target.tagName)return!1;if(t&&t.target instanceof HTMLElement&&t.target.closest("[data-modal]")){var a=t.target.closest("[data-modal]"),r=a.hasAttribute("data-modal")?a.getAttribute("data-modal"):a.getAttribute("data-filter"),n=document.querySelector("dialog#".concat(r));if(e(n),n.showModal(),n.focus(),!n.querySelector("iam-multi-step")){var o=n.offsetWidth;n.setAttribute("style","max-width: ".concat(o,"px;"))}Array.from(n.querySelectorAll("[data-duplicate]")).forEach(((e,t)=>{var a=e.getAttribute("data-duplicate"),r=document.getElementById(a);if(e.checked!=r.checked){e.checked=r.checked;var n=new Event("change");e.dispatchEvent(n)}})),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:r})}if(t&&t.target instanceof HTMLElement&&t.target.closest("button.dialog__close")){var c=t.target.closest("dialog[open]");t.preventDefault(),c.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(((e,t)=>{e.classList.remove("active")}));var i=new CustomEvent("dialog-closed",{bubbles:!0,cancelable:!0,detail:{modalId:c.id}});t.target.dispatchEvent(i),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:c.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest('button[formmethod="dialog"]')){var l=t.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(((e,t)=>{e.classList.remove("active")})),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:l.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest("dialog[open]")){var s=t.target.closest("dialog[open]");if("contents"===window.getComputedStyle(s).display&&(s=s.parentNode.closest("dialog[open]")),!s.classList.contains("dialog--transactional")&&!s.classList.contains("dialog--acknowledgement")){var d=s.getBoundingClientRect();(t.clientX<d.left||t.clientX>d.right||t.clientY<d.top||t.clientY>d.bottom)&&(t.target.closest("dialog *")||s.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")}))}}if(t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__wrapper > button")){t.stopPropagation();var u=t.target.closest(".dialog__wrapper > button"),g="openPopover",p=u.parentNode.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=p&&u.closest("dialog[open]")!=document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(((e,t)=>{e.removeAttribute("aria-expanded")})),p.hasAttribute("open"))p.close(),g="closePopover",p.removeAttribute("style"),u.removeAttribute("aria-expanded");else{p.show(),u.setAttribute("aria-expanded",!0);var m=u.getBoundingClientRect(),y=m.top,v=m.left;if(u.closest("iam-table")){var f=u.closest("iam-table").parentNode.getBoundingClientRect();y-=f.top,v-=f.left}p.classList.contains("dialog--fix")&&p.setAttribute("style","position:fixed;top: ".concat(y,"px; left: ").concat(v,"px; margin: 3rem 0 0 0;"))}var h=p.getBoundingClientRect();if(h.bottom-window.scrollY>window.innerHeight-window.scrollY){var b=p.hasAttribute("style")?p.getAttribute("style")+" ":"";p.setAttribute("style",b+"transform: translate(0, calc(-100% - 4rem))"),(h=p.getBoundingClientRect()).top-window.scrollY<100&&p.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:g,id:u.textContent})}t&&t.target instanceof HTMLElement&&!t.target.closest("dialog[open]")&&!t.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach(((e,t)=>{e.removeAttribute("aria-expanded")})))}))})(document.body),a(document.body)}))}));
|
|
@@ -165,6 +165,11 @@ class iamMultiselect extends HTMLElement {
|
|
|
165
165
|
setItem(checkbox);
|
|
166
166
|
|
|
167
167
|
search.focus();
|
|
168
|
+
clearTimeout(hoverTimeout);
|
|
169
|
+
multiselect.classList.add('hover');
|
|
170
|
+
hoverTimeout = setTimeout(function () {
|
|
171
|
+
multiselect.classList.remove('hover');
|
|
172
|
+
}, 5000);
|
|
168
173
|
}
|
|
169
174
|
});
|
|
170
175
|
|
|
@@ -80,9 +80,7 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
80
80
|
button.addEventListener('click', (e) => {
|
|
81
81
|
e.preventDefault();
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (!window.triggered) window.isClicked = true;
|
|
83
|
+
window.isClicked = true;
|
|
86
84
|
|
|
87
85
|
if (button.classList.contains('disabled')) return false;
|
|
88
86
|
|
|
@@ -105,9 +103,9 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
105
103
|
});
|
|
106
104
|
|
|
107
105
|
if (button.matches(':last-child')) {
|
|
108
|
-
nextButton
|
|
106
|
+
nextButton?.setAttribute('disabled', 'disabled');
|
|
109
107
|
} else {
|
|
110
|
-
nextButton
|
|
108
|
+
nextButton?.removeAttribute('disabled');
|
|
111
109
|
}
|
|
112
110
|
|
|
113
111
|
// Data layer Open Event
|
|
@@ -119,22 +117,11 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
119
117
|
});
|
|
120
118
|
});
|
|
121
119
|
|
|
122
|
-
buttonWrapper.addEventListener('scroll', (event) => {
|
|
123
|
-
if (window.isScrolling) return;
|
|
124
|
-
|
|
125
|
-
clearTimeout(scrollTimeout);
|
|
126
|
-
window.isScrolling = true;
|
|
127
|
-
});
|
|
128
|
-
|
|
129
120
|
buttonWrapper.addEventListener('scrollend', (event) => {
|
|
130
|
-
|
|
121
|
+
|
|
131
122
|
clearTimeout(scrollTimeout);
|
|
132
123
|
|
|
133
124
|
scrollTimeout = setTimeout(function () {
|
|
134
|
-
if (window.isClicked) {
|
|
135
|
-
window.isClicked = false;
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
125
|
|
|
139
126
|
let buttonToClick = buttons[0];
|
|
140
127
|
let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);
|
|
@@ -146,11 +133,17 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
146
133
|
}
|
|
147
134
|
});
|
|
148
135
|
|
|
149
|
-
window.
|
|
136
|
+
if (window.isClicked) {
|
|
137
|
+
window.isClicked = false;
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
|
|
142
|
+
buttonToClick.click();
|
|
143
|
+
}
|
|
150
144
|
buttonToClick.focus();
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}, 200);
|
|
145
|
+
|
|
146
|
+
}, 500);
|
|
154
147
|
});
|
|
155
148
|
|
|
156
149
|
// Make sure we dont loose existing summary functionality
|
|
@@ -161,7 +154,7 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
161
154
|
});
|
|
162
155
|
});
|
|
163
156
|
|
|
164
|
-
nextButton
|
|
157
|
+
nextButton?.addEventListener('click', (e) => {
|
|
165
158
|
e.preventDefault();
|
|
166
159
|
|
|
167
160
|
const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
|
package/dist/components.es.js
CHANGED
|
@@ -67,7 +67,7 @@ const qs = /* @__PURE__ */ m(U, [["render", G]]), Q = (t) => t.charAt(0).toUpper
|
|
|
67
67
|
},
|
|
68
68
|
created() {
|
|
69
69
|
this.$nextTick(function() {
|
|
70
|
-
import("./table.component.min-
|
|
70
|
+
import("./table.component.min-be27f94a.mjs").then((t) => {
|
|
71
71
|
window.customElements.get("iam-table") || window.customElements.define("iam-table", t.default);
|
|
72
72
|
}).catch((t) => {
|
|
73
73
|
console.log(t.message);
|
|
@@ -455,7 +455,7 @@ const N = /* @__PURE__ */ m(ne, [["render", Se]]), xe = {
|
|
|
455
455
|
},
|
|
456
456
|
created() {
|
|
457
457
|
this.$nextTick(function() {
|
|
458
|
-
import("./fileupload.component.min-
|
|
458
|
+
import("./fileupload.component.min-c097b06c.mjs").then((t) => {
|
|
459
459
|
window.customElements.get("iam-fileupload") || window.customElements.define("iam-fileupload", t.default);
|
|
460
460
|
}).catch((t) => {
|
|
461
461
|
console.log(t.message);
|
|
@@ -485,7 +485,7 @@ const qe = {
|
|
|
485
485
|
props: {},
|
|
486
486
|
mounted() {
|
|
487
487
|
this.$nextTick(function() {
|
|
488
|
-
import("./accordion.component.min-
|
|
488
|
+
import("./accordion.component.min-95e4bd56.mjs").then((t) => {
|
|
489
489
|
window.customElements.get("iam-accordion") || window.customElements.define("iam-accordion", t.default);
|
|
490
490
|
}).catch((t) => {
|
|
491
491
|
console.log(t.message);
|
|
@@ -594,7 +594,7 @@ const Ms = /* @__PURE__ */ m(Ne, [["render", Fe]]), ze = {
|
|
|
594
594
|
name: "Card",
|
|
595
595
|
created() {
|
|
596
596
|
this.$nextTick(function() {
|
|
597
|
-
import("./card.component.min-
|
|
597
|
+
import("./card.component.min-9e5ee063.mjs").then((t) => {
|
|
598
598
|
window.customElements.get("iam-card") || window.customElements.define("iam-card", t.default);
|
|
599
599
|
}).catch((t) => {
|
|
600
600
|
console.log(t.message);
|
|
@@ -611,7 +611,7 @@ const Cs = /* @__PURE__ */ m(ze, [["render", Be]]), Oe = {
|
|
|
611
611
|
name: "Header",
|
|
612
612
|
mounted() {
|
|
613
613
|
this.$nextTick(function() {
|
|
614
|
-
import("./carousel.component.min-
|
|
614
|
+
import("./carousel.component.min-20f50bac.mjs").then((t) => {
|
|
615
615
|
window.customElements.get("iam-carousel") || window.customElements.define("iam-carousel", t.default);
|
|
616
616
|
}).catch((t) => {
|
|
617
617
|
console.log(t.message);
|
|
@@ -638,7 +638,7 @@ const Ns = /* @__PURE__ */ m(Oe, [["render", Ue]]), We = {
|
|
|
638
638
|
},
|
|
639
639
|
mounted() {
|
|
640
640
|
this.$nextTick(function() {
|
|
641
|
-
import("./header.component.min-
|
|
641
|
+
import("./header.component.min-e801965d.mjs").then((t) => {
|
|
642
642
|
window.customElements.get("iam-header") || window.customElements.define("iam-header", t.default);
|
|
643
643
|
}).catch((t) => {
|
|
644
644
|
console.log(t.message);
|
|
@@ -1043,7 +1043,7 @@ const Is = /* @__PURE__ */ m(ht, [["render", At]]), Lt = {
|
|
|
1043
1043
|
name: "Nav",
|
|
1044
1044
|
mounted() {
|
|
1045
1045
|
this.$nextTick(function() {
|
|
1046
|
-
import("./nav.component.min-
|
|
1046
|
+
import("./nav.component.min-8898cccc.mjs").then((t) => {
|
|
1047
1047
|
window.customElements.get("iam-nav") || window.customElements.define("iam-nav", t.default);
|
|
1048
1048
|
}).catch((t) => {
|
|
1049
1049
|
console.log(t.message);
|
|
@@ -1163,7 +1163,7 @@ const Wt = {
|
|
|
1163
1163
|
name: "Tabs",
|
|
1164
1164
|
created() {
|
|
1165
1165
|
this.$nextTick(function() {
|
|
1166
|
-
import("./tabs.component.min-
|
|
1166
|
+
import("./tabs.component.min-3f0b7379.mjs").then((t) => {
|
|
1167
1167
|
window.customElements.get("iam-tabs") || window.customElements.define("iam-tabs", t.default);
|
|
1168
1168
|
}).catch((t) => {
|
|
1169
1169
|
console.log(t.message);
|
|
@@ -1310,7 +1310,7 @@ function os(t, s, e, i, r, a) {
|
|
|
1310
1310
|
}
|
|
1311
1311
|
const Ws = /* @__PURE__ */ m(ns, [["render", os]]);
|
|
1312
1312
|
/*!
|
|
1313
|
-
* iamKey v7.1.0--
|
|
1313
|
+
* iamKey v7.1.0--beta6
|
|
1314
1314
|
* Copyright 2022-2025 iamproperty
|
|
1315
1315
|
*/
|
|
1316
1316
|
function ls(t, s) {
|
|
@@ -1477,7 +1477,7 @@ const Gs = /* @__PURE__ */ m(fs, [["render", bs]]), ys = {
|
|
|
1477
1477
|
props: {},
|
|
1478
1478
|
mounted() {
|
|
1479
1479
|
this.$nextTick(function() {
|
|
1480
|
-
import("./actionbar.component.min-
|
|
1480
|
+
import("./actionbar.component.min-2a7024a9.mjs").then((t) => {
|
|
1481
1481
|
window.customElements.get("iam-actionbar") || window.customElements.define("iam-actionbar", t.default);
|
|
1482
1482
|
}).catch((t) => {
|
|
1483
1483
|
console.log(t.message);
|
|
@@ -1492,7 +1492,7 @@ function _s(t, s, e, i, r, a) {
|
|
|
1492
1492
|
}
|
|
1493
1493
|
const Qs = /* @__PURE__ */ m(ys, [["render", _s]]);
|
|
1494
1494
|
/*!
|
|
1495
|
-
* iamKey v7.1.0--
|
|
1495
|
+
* iamKey v7.1.0--beta6
|
|
1496
1496
|
* Copyright 2022-2025 iamproperty
|
|
1497
1497
|
*/
|
|
1498
1498
|
class P extends HTMLElement {
|