@iamproperty/components 6.0.0 → 6.1.0--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/bootstrap/README.md +8 -7
- package/assets/bootstrap/js/index.esm.js +19 -0
- package/assets/bootstrap/js/index.umd.js +34 -0
- package/assets/bootstrap/js/src/alert.js +1 -1
- package/assets/bootstrap/js/src/base-component.js +2 -2
- package/assets/bootstrap/js/src/button.js +1 -1
- package/assets/bootstrap/js/src/carousel.js +1 -1
- package/assets/bootstrap/js/src/collapse.js +1 -1
- package/assets/bootstrap/js/src/dom/data.js +1 -1
- package/assets/bootstrap/js/src/dom/event-handler.js +1 -1
- package/assets/bootstrap/js/src/dom/manipulator.js +1 -1
- package/assets/bootstrap/js/src/dom/selector-engine.js +1 -1
- package/assets/bootstrap/js/src/dropdown.js +3 -12
- package/assets/bootstrap/js/src/modal.js +13 -17
- package/assets/bootstrap/js/src/offcanvas.js +1 -1
- package/assets/bootstrap/js/src/popover.js +1 -1
- package/assets/bootstrap/js/src/scrollspy.js +10 -14
- package/assets/bootstrap/js/src/tab.js +4 -2
- package/assets/bootstrap/js/src/toast.js +4 -9
- package/assets/bootstrap/js/src/tooltip.js +50 -32
- package/assets/bootstrap/js/src/util/backdrop.js +1 -1
- package/assets/bootstrap/js/src/util/component-functions.js +1 -1
- package/assets/bootstrap/js/src/util/config.js +1 -1
- package/assets/bootstrap/js/src/util/focustrap.js +1 -1
- package/assets/bootstrap/js/src/util/index.js +1 -1
- package/assets/bootstrap/js/src/util/sanitizer.js +1 -1
- package/assets/bootstrap/js/src/util/scrollbar.js +1 -1
- package/assets/bootstrap/js/src/util/swipe.js +1 -1
- package/assets/bootstrap/js/src/util/template-factory.js +1 -1
- package/assets/bootstrap/package.json +27 -28
- package/assets/bootstrap/scss/_accordion.scss +4 -7
- package/assets/bootstrap/scss/_button-group.scss +1 -1
- package/assets/bootstrap/scss/_buttons.scss +7 -28
- package/assets/bootstrap/scss/_carousel.scss +3 -0
- package/assets/bootstrap/scss/_dropdown.scss +1 -2
- package/assets/bootstrap/scss/_functions.scss +2 -2
- package/assets/bootstrap/scss/_list-group.scss +5 -6
- package/assets/bootstrap/scss/_modal.scss +1 -1
- package/assets/bootstrap/scss/_nav.scss +2 -2
- package/assets/bootstrap/scss/_navbar.scss +0 -2
- package/assets/bootstrap/scss/_offcanvas.scss +4 -5
- package/assets/bootstrap/scss/_pagination.scss +1 -1
- package/assets/bootstrap/scss/_popover.scss +5 -5
- package/assets/bootstrap/scss/_toasts.scss +2 -5
- package/assets/bootstrap/scss/_variables-dark.scss +87 -0
- package/assets/bootstrap/scss/_variables.scss +17 -18
- package/assets/bootstrap/scss/bootstrap-utilities.scss +0 -3
- package/assets/bootstrap/scss/forms/_floating-labels.scss +0 -1
- package/assets/bootstrap/scss/forms/_input-group.scss +4 -7
- package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/assets/bootstrap/scss/mixins/_banner.scss +2 -2
- package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/assets/bootstrap/scss/mixins/_forms.scss +10 -10
- package/assets/bootstrap/scss/mixins/_table-variants.scss +2 -2
- package/assets/bootstrap/scss/mixins/_utilities.scss +1 -1
- package/assets/css/components/actionbar.css.map +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -0
- package/assets/css/components/card.component.css.map +1 -0
- package/assets/css/components/card.module.css +1 -0
- package/assets/css/components/card.module.css.map +1 -0
- package/assets/css/components/carousel.component.css +1 -0
- package/assets/css/components/carousel.component.css.map +1 -0
- package/assets/css/components/carousel.config.css +1 -0
- package/assets/css/components/carousel.config.css.map +1 -0
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/charts.css +1 -1
- package/assets/css/components/charts.css.map +1 -1
- package/assets/css/components/charts.module.css +1 -1
- package/assets/css/components/charts.module.css.map +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/filter-card.component.css +1 -0
- package/assets/css/components/filter-card.component.css.map +1 -0
- package/assets/css/components/header.css +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/marketing.css.map +1 -1
- package/assets/css/components/multi-step.component.css +1 -0
- package/assets/css/components/multi-step.component.css.map +1 -0
- package/assets/css/components/multiselect.preload.css +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.css.map +1 -1
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.old.css.map +1 -1
- package/assets/css/components/nav.preload.css +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/property-searchbar.css.map +1 -1
- package/assets/css/components/record-card.component.css +1 -0
- package/assets/css/components/record-card.component.css.map +1 -0
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/snapshot.css.map +1 -1
- package/assets/css/components/stepper.css.map +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.css +1 -1
- package/assets/css/components/tabs.css.map +1 -1
- package/assets/css/components/testimonial.css.map +1 -1
- package/assets/css/components/timeline.css +1 -1
- package/assets/css/components/timeline.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -0
- package/assets/css/components/video-card.component.css.map +1 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/img/illustrations/not-found.png +0 -0
- package/assets/js/components/accordion/accordion.component.min.js +2 -2
- package/assets/js/components/actionbar/actionbar.component.min.js +6 -6
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.js +2 -0
- package/assets/js/components/barchart/barchart.component.min.js +5 -3
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/card/card.component.js +92 -154
- package/assets/js/components/card/card.component.min.js +27 -32
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +36 -41
- package/assets/js/components/carousel/carousel.component.min.js +18 -12
- package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
- package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
- package/assets/js/components/filter-card/filter-card.component.js +71 -0
- package/assets/js/components/filter-card/filter-card.component.min.js +27 -0
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -0
- package/assets/js/components/filterlist/filterlist.component.min.js +2 -2
- package/assets/js/components/header/header.component.min.js +3 -3
- package/assets/js/components/header/header.component.min.js.map +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +2 -2
- package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.js +162 -0
- package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.js +69 -0
- package/assets/js/components/record-card/record-card.component.min.js +27 -0
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -0
- package/assets/js/components/search/search.component.min.js +2 -2
- package/assets/js/components/slider/slider.component.min.js +2 -2
- package/assets/js/components/slider/slider.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.js +1 -1
- package/assets/js/components/table/table.component.min.js +4 -4
- package/assets/js/components/table/table.component.min.js.map +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.js +176 -0
- package/assets/js/components/video-card/video-card.component.min.js +30 -0
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -0
- package/assets/js/components.bundle.js +5 -0
- package/assets/js/components.bundle.js.map +1 -0
- package/assets/js/components.js +30 -0
- package/assets/js/modules/card.module.js +33 -0
- package/assets/js/modules/carousel.js +110 -8
- package/assets/js/modules/chart.js +2 -2
- package/assets/js/modules/dialogs.js +5 -129
- package/assets/js/modules/table.js +1 -1
- package/assets/js/scripts.bundle.js +4 -195
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +3 -3
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/scripts.js +17 -0
- package/assets/js/tests/filterlist.spec.js +1 -1
- package/assets/sass/_components.scss +76 -12
- package/assets/sass/_corefiles.scss +19 -10
- package/assets/sass/_elements.scss +2 -0
- package/assets/sass/_func.scss +3 -0
- package/assets/sass/_functions/functions.scss +304 -1
- package/assets/sass/_functions/mixins.scss +458 -2
- package/assets/sass/_functions/utilities.scss +647 -2
- package/assets/sass/_functions/variables.scss +1724 -2
- package/assets/sass/_utilities.scss +126 -7
- package/assets/sass/components/card.component.scss +229 -0
- package/assets/sass/components/card.module.scss +154 -0
- package/assets/sass/components/carousel.component.scss +605 -0
- package/assets/sass/components/carousel.config.scss +84 -0
- package/assets/sass/components/charts.config.scss +3 -0
- package/assets/sass/components/charts.module.scss +5 -3
- package/assets/sass/components/filter-card.component.scss +106 -0
- package/assets/sass/components/header.scss +1 -0
- package/assets/sass/components/multi-step.component.scss +148 -0
- package/assets/sass/components/multiselect.preload.scss +7 -0
- package/assets/sass/components/nav.preload.scss +5 -0
- package/assets/sass/components/record-card.component.scss +204 -0
- package/assets/sass/components/tabs.scss +1 -1
- package/assets/sass/components/video-card.component.scss +80 -0
- package/assets/sass/components.reset.scss +5 -43
- package/assets/sass/elements/admin-panel.scss +2 -1
- package/assets/sass/elements/badge-tag.scss +5 -1
- package/assets/sass/elements/buttons.scss +36 -0
- package/assets/sass/elements/container.scss +16 -6
- package/assets/sass/elements/details.scss +2 -0
- package/assets/sass/elements/dialog.scss +2 -744
- package/assets/sass/elements/forms.scss +241 -24
- package/assets/sass/elements/links.scss +27 -4
- package/assets/sass/elements/lists.scss +46 -0
- package/assets/sass/elements/media.scss +10 -38
- package/assets/sass/elements/modal.scss +453 -0
- package/assets/sass/elements/popover.scss +207 -0
- package/assets/sass/elements/table.element.scss +35 -0
- package/assets/sass/elements/type.scss +38 -2
- package/assets/sass/error.scss +32 -1
- package/assets/sass/foundations/bs_grid.scss +33 -0
- package/assets/sass/foundations/grid.scss +270 -0
- package/assets/sass/foundations/reboot.scss +71 -49
- package/assets/sass/foundations/root.scss +16 -3
- package/assets/ts/components/barchart/barchart.component.ts +2 -0
- package/assets/ts/components/card/card.component.ts +94 -192
- package/assets/ts/components/carousel/carousel.component.ts +51 -44
- package/assets/ts/components/filter-card/filter-card.component.ts +81 -0
- package/assets/ts/components/multi-step/multi-step.component.ts +262 -0
- package/assets/ts/components/record-card/record-card.component.ts +82 -0
- package/assets/ts/components/table/table.component.ts +2 -1
- package/assets/ts/components/video-card/video-card.component.ts +227 -0
- package/assets/ts/components.ts +38 -0
- package/assets/ts/modules/card.module.ts +43 -0
- package/assets/ts/modules/carousel.ts +161 -7
- package/assets/ts/modules/dialogs.ts +6 -182
- package/assets/ts/modules/table.ts +1 -1
- package/assets/ts/scripts.ts +22 -0
- package/assets/ts/tests/filterlist.spec.ts +1 -1
- package/dist/components.es.js +227 -243
- package/dist/components.umd.js +105 -104
- package/dist/style.css +1 -1
- package/package.json +9 -7
- package/src/components/BarChart/BarChart.vue +2 -2
- package/src/components/Carousel/Carousel.vue +1 -15
- package/src/components/FilterCard/FilterCard.vue +25 -0
- package/src/components/MultiStep/MultiStep.vue +25 -0
- package/src/components/RecordCard/RecordCard.vue +25 -0
- package/src/components/VideoCard/VideoCard.vue +25 -0
- package/assets/css/components/card.css +0 -1
- package/assets/css/components/card.css.map +0 -1
- package/assets/css/components/card.global.css +0 -1
- package/assets/css/components/card.global.css.map +0 -1
- package/assets/css/components/card.preload.css +0 -1
- package/assets/css/components/card.preload.css.map +0 -1
- package/assets/css/components/carousel.css +0 -1
- package/assets/css/components/carousel.css.map +0 -1
- package/assets/css/components/carousel.preload.css +0 -1
- package/assets/css/components/carousel.preload.css.map +0 -1
- package/assets/js/bundle.js +0 -74
- package/assets/js/dynamic.js +0 -80
- package/assets/js/dynamic.min.js +0 -18
- package/assets/js/dynamic.min.js.map +0 -1
- package/assets/js/flat-components.js +0 -84
- package/assets/js/modules/youtubevideo.js +0 -106
- package/assets/sass/components/card.global.scss +0 -102
- package/assets/sass/components/card.preload.scss +0 -8
- package/assets/sass/components/card.scss +0 -606
- package/assets/sass/components/carousel.preload.scss +0 -82
- package/assets/sass/components/carousel.scss +0 -258
- package/assets/ts/bundle.ts +0 -94
- package/assets/ts/components/barchart/README.md +0 -37
- package/assets/ts/components/card/README.md +0 -39
- package/assets/ts/dynamic.ts +0 -107
- package/assets/ts/flat-components.ts +0 -106
- package/assets/ts/modules/youtubevideo.ts +0 -141
- package/assets/ts/tests/dialogs.spec.js +0 -50
- package/src/foundations/YoutubeVideo/README.md +0 -11
- package/src/foundations/YoutubeVideo/YoutubeVideo.vue +0 -24
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v6.
|
|
3
|
-
* Copyright 2022-
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/function r(i){if(i.hasAttribute("data-type")&&i.getAttribute("data-type")=="toast"){let t=document.querySelector(".notification__holder");t||(t=document.createElement("div"),t.classList.add("notification__holder"),t.classList.add("container"),document.querySelector("body").appendChild(t)),i.closest(".notification__holder")||t.appendChild(i)}if(i.setAttribute("role","alert"),i.addEventListener("click",function(t){event&&event.target instanceof HTMLElement&&event.target.closest("[data-dismiss-button]")&&(t.preventDefault(),a(i))},!1),i.hasAttribute("data-timeout")){let t=i.getAttribute("data-timeout");var n=new c(function(){a(i)},t);i.addEventListener("mouseenter",o=>{n.pause()}),i.addEventListener("mouseleave",o=>{n.resume()})}}function c(i,n){var t,o,e=n;this.pause=function(){window.clearTimeout(t),e-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(i,e)},this.resume()}const a=function(i){i.classList.add("d-none")};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Notification"});class d extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const n=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${n}/css/core.min.css`,o=this.querySelectorAll("a,button");Array.from(o).forEach((s,l)=>{s.setAttribute("slot","btns"),s.classList.add("link")}),(o.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable");const e=document.createElement("template");e.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${t}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","notification.component.js"],"sourcesContent":["// @ts-nocheck\nfunction setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == \"toast\") {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-dismiss-button]')) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n let timeOut = element.getAttribute('data-timeout');\n var timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener(\"mouseenter\", (event) => {\n timer.pause();\n });\n element.addEventListener(\"mouseleave\", (event) => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n var timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\n","// @ts-nocheck\nimport setupNotification, { closeNotification } from \"../../modules/notification.js\";\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Notification\"\n});\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button, index) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss'))\n this.classList.add('notification--dismissable');\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\n </style>\n\n <div class=\"notification\">\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div>${buttons.length ? `<div class=\"notification__btns\"><slot name=\"btns\"></slot></div>` : ''}</div>\n ${this.hasAttribute('data-dismiss') ? `<div class=\"notification__dismiss\"><button data-dismiss-button part=\"dismiss-btn\">Dismiss</button></div>` : ''}\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n const dismissBtn = this.shadowRoot.querySelector('[data-dismiss-button]');\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white';\n if (this.hasAttribute('data-type'))\n this.classList.add(`bg-${statusBG}`);\n else {\n this.classList.add(`colour-${statusBG}`);\n }\n const wrapper = this;\n if (!this.querySelector('i')) {\n switch (statusBG) {\n case 'danger':\n this.innerHTML += '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n case 'warning':\n this.innerHTML += '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n case 'success':\n this.innerHTML += '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n default:\n this.innerHTML += '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>';\n }\n }\n setupNotification(wrapper);\n if (dismissBtn) {\n dismissBtn.addEventListener('click', function (e) {\n closeNotification(wrapper);\n }, false);\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","event","callback","delay","timerId","start","remaining","iamNotification","assetLocation","coreCSS","buttons","button","index","template","dismissBtn","statusBG","wrapper"],"mappings":";;;IACA,SAASA,EAAkBC,EAAS,CAEhC,GAAIA,EAAQ,aAAa,WAAW,GAAKA,EAAQ,aAAa,WAAW,GAAK,QAAS,CACnF,IAAIC,EAAS,SAAS,cAAc,uBAAuB,EACtDA,IACDA,EAAS,SAAS,cAAc,KAAK,EACrCA,EAAO,UAAU,IAAI,sBAAsB,EAC3CA,EAAO,UAAU,IAAI,WAAW,EAChC,SAAS,cAAc,MAAM,EAAE,YAAYA,CAAM,GAEhDD,EAAQ,QAAQ,uBAAuB,GACxCC,EAAO,YAAYD,CAAO,EAWlC,GATAA,EAAQ,aAAa,OAAQ,OAAO,EAEpCA,EAAQ,iBAAiB,QAAS,SAAUE,EAAG,CACvC,OAAS,MAAM,kBAAkB,aAAe,MAAM,OAAO,QAAQ,uBAAuB,IAC5FA,EAAE,eAAc,EAChBC,EAAkBH,CAAO,EAEhC,EAAE,EAAK,EAEJA,EAAQ,aAAa,cAAc,EAAG,CACtC,IAAII,EAAUJ,EAAQ,aAAa,cAAc,EACjD,IAAIK,EAAQ,IAAIC,EAAM,UAAY,CAC9BH,EAAkBH,CAAO,CAC5B,EAAEI,CAAO,EACVJ,EAAQ,iBAAiB,aAAeO,GAAU,CAC9CF,EAAM,MAAK,CACvB,CAAS,EACDL,EAAQ,iBAAiB,aAAeO,GAAU,CAC9CF,EAAM,OAAM,CACxB,CAAS,EAET,CACA,SAASC,EAAME,EAAUC,EAAO,CAC5B,IAAIC,EAASC,EAAOC,EAAYH,EAChC,KAAK,MAAQ,UAAY,CACrB,OAAO,aAAaC,CAAO,EAC3BE,GAAa,IAAI,KAASD,CAClC,EACI,KAAK,OAAS,UAAY,CACtBA,EAAQ,IAAI,KACZ,OAAO,aAAaD,CAAO,EAC3BA,EAAU,OAAO,WAAWF,EAAUI,CAAS,CACvD,EACI,KAAK,OAAM,CACf,CACO,MAAMT,EAAoB,SAAUH,EAAS,CAChDA,EAAQ,UAAU,IAAI,QAAQ,CAClC,EChDA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAW,cACf,CAAC,EACD,MAAMa,UAAwB,WAAY,CACtC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAMC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EAAI,SAAS,KAAK,aAAa,sBAAsB,EAAI,UAC1HC,EAAU,SAAS,KAAK,aAAa,eAAe,EAAI,SAAS,KAAK,aAAa,eAAe,EAAI,GAAGD,qBAGzGE,EAAU,KAAK,iBAAiB,UAAU,EAChD,MAAM,KAAKA,CAAO,EAAE,QAAQ,CAACC,EAAQC,IAAU,CAC3CD,EAAO,aAAa,OAAQ,MAAM,EAClCA,EAAO,UAAU,IAAI,MAAM,CACvC,CAAS,GACGD,EAAQ,QAAU,KAAK,aAAa,cAAc,IAClD,KAAK,UAAU,IAAI,2BAA2B,EAClD,MAAMG,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdJ;AAAA;AAAA;AAAA,MAET,KAAK,aAAa,UAAU,EAAI,GAAG,KAAK,aAAa,UAAU,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA,4FAKiBC,EAAQ,OAAS,kEAAoE;AAAA,QACzK,KAAK,aAAa,cAAc,EAAI,2GAA6G;AAAA;AAAA,MAGjJ,KAAK,WAAW,YAAYG,EAAS,QAAQ,UAAU,EAAI,CAAC,EAEvD,SAAS,eAAe,oBAAoB,GAC7C,SAAS,KAAK,mBAAmB,YAAa;AAAA,SAAwD,
|
|
1
|
+
{"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","notification.component.js"],"sourcesContent":["// @ts-nocheck\nfunction setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == \"toast\") {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-dismiss-button]')) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n let timeOut = element.getAttribute('data-timeout');\n var timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener(\"mouseenter\", (event) => {\n timer.pause();\n });\n element.addEventListener(\"mouseleave\", (event) => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n var timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\n","// @ts-nocheck\nimport setupNotification, { closeNotification } from \"../../modules/notification.js\";\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Notification\"\n});\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button, index) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss'))\n this.classList.add('notification--dismissable');\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\n </style>\n\n <div class=\"notification\">\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div>${buttons.length ? `<div class=\"notification__btns\"><slot name=\"btns\"></slot></div>` : ''}</div>\n ${this.hasAttribute('data-dismiss') ? `<div class=\"notification__dismiss\"><button data-dismiss-button part=\"dismiss-btn\">Dismiss</button></div>` : ''}\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n const dismissBtn = this.shadowRoot.querySelector('[data-dismiss-button]');\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white';\n if (this.hasAttribute('data-type'))\n this.classList.add(`bg-${statusBG}`);\n else {\n this.classList.add(`colour-${statusBG}`);\n }\n const wrapper = this;\n if (!this.querySelector('i')) {\n switch (statusBG) {\n case 'danger':\n this.innerHTML += '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n case 'warning':\n this.innerHTML += '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n case 'success':\n this.innerHTML += '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>';\n break;\n default:\n this.innerHTML += '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>';\n }\n }\n setupNotification(wrapper);\n if (dismissBtn) {\n dismissBtn.addEventListener('click', function (e) {\n closeNotification(wrapper);\n }, false);\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","event","callback","delay","timerId","start","remaining","iamNotification","assetLocation","coreCSS","buttons","button","index","template","dismissBtn","statusBG","wrapper"],"mappings":";;;IACA,SAASA,EAAkBC,EAAS,CAEhC,GAAIA,EAAQ,aAAa,WAAW,GAAKA,EAAQ,aAAa,WAAW,GAAK,QAAS,CACnF,IAAIC,EAAS,SAAS,cAAc,uBAAuB,EACtDA,IACDA,EAAS,SAAS,cAAc,KAAK,EACrCA,EAAO,UAAU,IAAI,sBAAsB,EAC3CA,EAAO,UAAU,IAAI,WAAW,EAChC,SAAS,cAAc,MAAM,EAAE,YAAYA,CAAM,GAEhDD,EAAQ,QAAQ,uBAAuB,GACxCC,EAAO,YAAYD,CAAO,EAWlC,GATAA,EAAQ,aAAa,OAAQ,OAAO,EAEpCA,EAAQ,iBAAiB,QAAS,SAAUE,EAAG,CACvC,OAAS,MAAM,kBAAkB,aAAe,MAAM,OAAO,QAAQ,uBAAuB,IAC5FA,EAAE,eAAc,EAChBC,EAAkBH,CAAO,EAEhC,EAAE,EAAK,EAEJA,EAAQ,aAAa,cAAc,EAAG,CACtC,IAAII,EAAUJ,EAAQ,aAAa,cAAc,EACjD,IAAIK,EAAQ,IAAIC,EAAM,UAAY,CAC9BH,EAAkBH,CAAO,CAC5B,EAAEI,CAAO,EACVJ,EAAQ,iBAAiB,aAAeO,GAAU,CAC9CF,EAAM,MAAK,CACvB,CAAS,EACDL,EAAQ,iBAAiB,aAAeO,GAAU,CAC9CF,EAAM,OAAM,CACxB,CAAS,EAET,CACA,SAASC,EAAME,EAAUC,EAAO,CAC5B,IAAIC,EAASC,EAAOC,EAAYH,EAChC,KAAK,MAAQ,UAAY,CACrB,OAAO,aAAaC,CAAO,EAC3BE,GAAa,IAAI,KAASD,CAClC,EACI,KAAK,OAAS,UAAY,CACtBA,EAAQ,IAAI,KACZ,OAAO,aAAaD,CAAO,EAC3BA,EAAU,OAAO,WAAWF,EAAUI,CAAS,CACvD,EACI,KAAK,OAAM,CACf,CACO,MAAMT,EAAoB,SAAUH,EAAS,CAChDA,EAAQ,UAAU,IAAI,QAAQ,CAClC,EChDA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAW,cACf,CAAC,EACD,MAAMa,UAAwB,WAAY,CACtC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAMC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EAAI,SAAS,KAAK,aAAa,sBAAsB,EAAI,UAC1HC,EAAU,SAAS,KAAK,aAAa,eAAe,EAAI,SAAS,KAAK,aAAa,eAAe,EAAI,GAAGD,qBAGzGE,EAAU,KAAK,iBAAiB,UAAU,EAChD,MAAM,KAAKA,CAAO,EAAE,QAAQ,CAACC,EAAQC,IAAU,CAC3CD,EAAO,aAAa,OAAQ,MAAM,EAClCA,EAAO,UAAU,IAAI,MAAM,CACvC,CAAS,GACGD,EAAQ,QAAU,KAAK,aAAa,cAAc,IAClD,KAAK,UAAU,IAAI,2BAA2B,EAClD,MAAMG,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdJ;AAAA;AAAA;AAAA,MAET,KAAK,aAAa,UAAU,EAAI,GAAG,KAAK,aAAa,UAAU,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA,4FAKiBC,EAAQ,OAAS,kEAAoE;AAAA,QACzK,KAAK,aAAa,cAAc,EAAI,2GAA6G;AAAA;AAAA,MAGjJ,KAAK,WAAW,YAAYG,EAAS,QAAQ,UAAU,EAAI,CAAC,EAEvD,SAAS,eAAe,oBAAoB,GAC7C,SAAS,KAAK,mBAAmB,YAAa;AAAA,SAAwD,CAC9G,CACA,mBAAoB,CAChB,MAAMC,EAAa,KAAK,WAAW,cAAc,uBAAuB,EAClEC,EAAW,KAAK,aAAa,aAAa,EAAI,KAAK,aAAa,aAAa,EAAI,QACnF,KAAK,aAAa,WAAW,EAC7B,KAAK,UAAU,IAAI,MAAMA,GAAU,EAEnC,KAAK,UAAU,IAAI,UAAUA,GAAU,EAE3C,MAAMC,EAAU,KAChB,GAAI,CAAC,KAAK,cAAc,GAAG,EACvB,OAAQD,EAAQ,CACZ,IAAK,SACD,KAAK,WAAa,gFAClB,MACJ,IAAK,UACD,KAAK,WAAa,kFAClB,MACJ,IAAK,UACD,KAAK,WAAa,0EAClB,MACJ,QACI,KAAK,WAAa,wEAC1B,CAEJtB,EAAkBuB,CAAO,EACrBF,GACAA,EAAW,iBAAiB,QAAS,SAAU,EAAG,CAC9CjB,EAAkBmB,CAAO,CAC5B,EAAE,EAAK,CAEhB,CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v6.
|
|
3
|
-
* Copyright 2022-
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${t}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.component.min.js","sources":["pagination.component.js"],"sourcesContent":["// @ts-nocheck\nclass iamPagination extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/pagination.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\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=\"pagination d-none\">\n \n <div class=\"minimal\" part=\"minimal\">\n <div class=\"page-jump\">\n <div><select class=\"select--minimal\"></select></div>\n <span class=\"total-pages\"></span>\n </div>\n \n <button class=\"prev\" disabled>Prev</button>\n <button class=\"next\" disabled>Next</button>\n </div>\n\n <div class=\"item-count\" part=\"item-count\"></div>\n <div class=\"per-page\" part=\"per-page\">\n <div>\n <select class=\"select--minimal\">\n <option value=\"15\">15</option>\n <option value=\"25\">25</option>\n <option value=\"40\">40</option>\n <option value=\"50\">50</option>\n </select>\n </div>\n <span> / page</span>\n </div>\n <div class=\"mobile-controls m-auto text-center\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <button class=\"load-more btn btn-primary m-auto\">Load more</a>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // Set default attributes\n const params = new URLSearchParams(window.location.search);\n if (!this.hasAttribute('data-total'))\n this.setAttribute('data-total', 15);\n if (!this.hasAttribute('data-page'))\n this.setAttribute('data-page', (params.has('page') ? params.get('page') : 1));\n if (!this.hasAttribute('data-show'))\n this.setAttribute('data-show', (params.has('show') ? params.get('show') : 15));\n if (!this.hasAttribute('data-increment'))\n this.setAttribute('data-increment', this.getAttribute('data-show'));\n // Elements\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const loadMore = this.shadowRoot.querySelector('.load-more');\n // Add the select inputs, enable or disable buttons, update the helper text\n this.setup();\n // Select on change will update the data-page attr which will dispatch an event\n select.addEventListener('change', (event) => {\n this.setAttribute('data-show', this.getAttribute('data-increment'));\n this.setAttribute('data-page', event.target.value);\n });\n // Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event\n next.addEventListener('click', (event) => {\n select.value = parseInt(select.value) + 1;\n select.dispatchEvent(new Event('change'));\n });\n prev.addEventListener('click', (event) => {\n select.value = parseInt(select.value) - 1;\n select.dispatchEvent(new Event('change'));\n });\n // Update how many is shown \n perPage.addEventListener('change', (event) => {\n this.setAttribute('data-increment', event.target.value);\n });\n loadMore.addEventListener('click', (event) => {\n let newValue = parseInt(this.getAttribute('data-show')) + parseInt(this.getAttribute('data-increment'));\n this.setAttribute('data-show', newValue);\n if (newValue > parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n });\n }\n setup() {\n // Elements\n const wrapper = this.shadowRoot.querySelector('.pagination');\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const itemCount = this.shadowRoot.querySelector('.item-count');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const totalPages = this.shadowRoot.querySelector('.total-pages');\n // Values\n const currentPage = parseInt(this.getAttribute('data-page'));\n const total = parseInt(this.getAttribute('data-total'));\n const show = parseInt(this.getAttribute('data-show'));\n const increment = parseInt(this.getAttribute('data-increment'));\n const numberPages = Math.ceil(total / increment);\n if (total > show)\n wrapper.classList.remove('d-none');\n // Populate the select input with the number of pages\n let strOptions = '';\n for (let i = 1; i <= numberPages; i++) {\n strOptions += `<option value=\"${i}\" ${i == currentPage ? 'selected' : ''}>${i}</option>`;\n }\n select.innerHTML = strOptions;\n totalPages.innerHTML = `of ${numberPages}`;\n // Next button\n if (currentPage == numberPages)\n next.setAttribute('disabled', 'disabled');\n else\n next.removeAttribute('disabled');\n if (currentPage == 1)\n prev.setAttribute('disabled', 'disabled');\n else\n prev.removeAttribute('disabled');\n // Update the item count text\n let startPoint = currentPage == 1 ? 1 : ((currentPage - 1) * show) + 1;\n let endPoint = currentPage == 1 ? show : ((currentPage) * show);\n itemCount.innerHTML = `${startPoint} - ${endPoint > total ? total : endPoint} of ${total} items`;\n const defaultValues = [15, 25, 40, 50];\n // Update the per page options if needed\n if (increment && perPage.value != increment && !defaultValues.includes(increment)) {\n perPage.innerHTML = `<option value=\"${increment}\">${increment}</option>\n <option value=\"${increment * 2}\">${increment * 2}</option>\n <option value=\"${increment * 3}\">${increment * 3}</option>\n <option value=\"${increment * 4}\">${increment * 4}</option>`;\n }\n perPage.value = increment;\n }\n static get observedAttributes() {\n return [\"data-total\", \"data-increment\", \"data-page\", \"data-show\"];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case \"data-total\": {\n if (oldVal != newVal) {\n this.setAttribute('data-page', 1);\n this.setup();\n }\n break;\n }\n case \"data-show\": {\n if (oldVal != newVal) {\n this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case \"data-increment\": {\n if (oldVal != newVal) {\n this.setAttribute('data-show', newVal);\n this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case \"data-page\": {\n if (oldVal && oldVal != newVal) {\n this.setup();\n // Dispact the event for other components to use as triggers \n this.dispatchEvent(new CustomEvent('update-page', { detail: { page: newVal } }));\n }\n break;\n }\n }\n }\n}\nexport default iamPagination;\n"],"names":["iamPagination","assetLocation","coreCSS","template","params","select","prev","next","perPage","loadMore","event","newValue","wrapper","itemCount","totalPages","currentPage","total","show","increment","numberPages","strOptions","i","startPoint","endPoint","defaultValues","attrName","oldVal","newVal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination.component.min.js","sources":["pagination.component.js"],"sourcesContent":["// @ts-nocheck\nclass iamPagination extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/pagination.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\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=\"pagination d-none\">\n \n <div class=\"minimal\" part=\"minimal\">\n <div class=\"page-jump\">\n <div><select class=\"select--minimal\"></select></div>\n <span class=\"total-pages\"></span>\n </div>\n \n <button class=\"prev\" disabled>Prev</button>\n <button class=\"next\" disabled>Next</button>\n </div>\n\n <div class=\"item-count\" part=\"item-count\"></div>\n <div class=\"per-page\" part=\"per-page\">\n <div>\n <select class=\"select--minimal\">\n <option value=\"15\">15</option>\n <option value=\"25\">25</option>\n <option value=\"40\">40</option>\n <option value=\"50\">50</option>\n </select>\n </div>\n <span> / page</span>\n </div>\n <div class=\"mobile-controls m-auto text-center\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <button class=\"load-more btn btn-primary m-auto\">Load more</a>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // Set default attributes\n const params = new URLSearchParams(window.location.search);\n if (!this.hasAttribute('data-total'))\n this.setAttribute('data-total', 15);\n if (!this.hasAttribute('data-page'))\n this.setAttribute('data-page', (params.has('page') ? params.get('page') : 1));\n if (!this.hasAttribute('data-show'))\n this.setAttribute('data-show', (params.has('show') ? params.get('show') : 15));\n if (!this.hasAttribute('data-increment'))\n this.setAttribute('data-increment', this.getAttribute('data-show'));\n // Elements\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const loadMore = this.shadowRoot.querySelector('.load-more');\n // Add the select inputs, enable or disable buttons, update the helper text\n this.setup();\n // Select on change will update the data-page attr which will dispatch an event\n select.addEventListener('change', (event) => {\n this.setAttribute('data-show', this.getAttribute('data-increment'));\n this.setAttribute('data-page', event.target.value);\n });\n // Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event\n next.addEventListener('click', (event) => {\n select.value = parseInt(select.value) + 1;\n select.dispatchEvent(new Event('change'));\n });\n prev.addEventListener('click', (event) => {\n select.value = parseInt(select.value) - 1;\n select.dispatchEvent(new Event('change'));\n });\n // Update how many is shown \n perPage.addEventListener('change', (event) => {\n this.setAttribute('data-increment', event.target.value);\n });\n loadMore.addEventListener('click', (event) => {\n let newValue = parseInt(this.getAttribute('data-show')) + parseInt(this.getAttribute('data-increment'));\n this.setAttribute('data-show', newValue);\n if (newValue > parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n });\n }\n setup() {\n // Elements\n const wrapper = this.shadowRoot.querySelector('.pagination');\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const itemCount = this.shadowRoot.querySelector('.item-count');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const totalPages = this.shadowRoot.querySelector('.total-pages');\n // Values\n const currentPage = parseInt(this.getAttribute('data-page'));\n const total = parseInt(this.getAttribute('data-total'));\n const show = parseInt(this.getAttribute('data-show'));\n const increment = parseInt(this.getAttribute('data-increment'));\n const numberPages = Math.ceil(total / increment);\n if (total > show)\n wrapper.classList.remove('d-none');\n // Populate the select input with the number of pages\n let strOptions = '';\n for (let i = 1; i <= numberPages; i++) {\n strOptions += `<option value=\"${i}\" ${i == currentPage ? 'selected' : ''}>${i}</option>`;\n }\n select.innerHTML = strOptions;\n totalPages.innerHTML = `of ${numberPages}`;\n // Next button\n if (currentPage == numberPages)\n next.setAttribute('disabled', 'disabled');\n else\n next.removeAttribute('disabled');\n if (currentPage == 1)\n prev.setAttribute('disabled', 'disabled');\n else\n prev.removeAttribute('disabled');\n // Update the item count text\n let startPoint = currentPage == 1 ? 1 : ((currentPage - 1) * show) + 1;\n let endPoint = currentPage == 1 ? show : ((currentPage) * show);\n itemCount.innerHTML = `${startPoint} - ${endPoint > total ? total : endPoint} of ${total} items`;\n const defaultValues = [15, 25, 40, 50];\n // Update the per page options if needed\n if (increment && perPage.value != increment && !defaultValues.includes(increment)) {\n perPage.innerHTML = `<option value=\"${increment}\">${increment}</option>\n <option value=\"${increment * 2}\">${increment * 2}</option>\n <option value=\"${increment * 3}\">${increment * 3}</option>\n <option value=\"${increment * 4}\">${increment * 4}</option>`;\n }\n perPage.value = increment;\n }\n static get observedAttributes() {\n return [\"data-total\", \"data-increment\", \"data-page\", \"data-show\"];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case \"data-total\": {\n if (oldVal != newVal) {\n this.setAttribute('data-page', 1);\n this.setup();\n }\n break;\n }\n case \"data-show\": {\n if (oldVal != newVal) {\n this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case \"data-increment\": {\n if (oldVal != newVal) {\n this.setAttribute('data-show', newVal);\n this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case \"data-page\": {\n if (oldVal && oldVal != newVal) {\n this.setup();\n // Dispact the event for other components to use as triggers \n this.dispatchEvent(new CustomEvent('update-page', { detail: { page: newVal } }));\n }\n break;\n }\n }\n }\n}\nexport default iamPagination;\n"],"names":["iamPagination","assetLocation","coreCSS","template","params","select","prev","next","perPage","loadMore","event","newValue","wrapper","itemCount","totalPages","currentPage","total","show","increment","numberPages","strOptions","i","startPoint","endPoint","defaultValues","attrName","oldVal","newVal"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
// @ts-nocheck
|
|
11
|
+
import { trackComponent, trackComponentRegistered } from "../_global.js";
|
|
12
|
+
import { cardHTML, setupCard } from "../../modules/card.module.js";
|
|
13
|
+
trackComponentRegistered("iam-record-card");
|
|
14
|
+
class iamRecordCard extends HTMLElement {
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.attachShadow({ mode: 'open' });
|
|
18
|
+
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
19
|
+
const loadCSS = `@import "${assetLocation}/css/components/record-card.component.css";`;
|
|
20
|
+
const template = document.createElement('template');
|
|
21
|
+
template.innerHTML = `
|
|
22
|
+
<style>
|
|
23
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
24
|
+
|
|
25
|
+
${loadCSS}
|
|
26
|
+
</style>
|
|
27
|
+
${cardHTML}
|
|
28
|
+
`;
|
|
29
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
30
|
+
}
|
|
31
|
+
connectedCallback() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const cardComponent = this;
|
|
34
|
+
const cardHead = cardComponent.shadowRoot.querySelector('.card__head');
|
|
35
|
+
setupCard(cardComponent);
|
|
36
|
+
Array.from(cardComponent.querySelectorAll(':scope > *:not([slot])')).forEach((element, index) => {
|
|
37
|
+
element.setAttribute('slot', 'details');
|
|
38
|
+
});
|
|
39
|
+
if (cardComponent.hasAttribute('data-avatar')) {
|
|
40
|
+
cardHead.innerHTML += `<img src="${cardComponent.getAttribute('data-avatar')}" alt="" loading="lazy" class="card__avatar" part="avatar" />`;
|
|
41
|
+
}
|
|
42
|
+
trackComponent(cardComponent, "iam-record-card", []);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
static get observedAttributes() {
|
|
46
|
+
return ["data-image"];
|
|
47
|
+
}
|
|
48
|
+
attributeChangedCallback(attrName, oldVal, newVal) {
|
|
49
|
+
switch (attrName) {
|
|
50
|
+
case "data-image": {
|
|
51
|
+
if (oldVal != newVal) {
|
|
52
|
+
const cardHeadImg = this.shadowRoot.querySelector('.card__head img');
|
|
53
|
+
if (cardHeadImg)
|
|
54
|
+
cardHeadImg.setAttribute('src', newVal);
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case "data-avatar": {
|
|
59
|
+
if (oldVal != newVal) {
|
|
60
|
+
const cardHeadImg = this.shadowRoot.querySelector('.card__avatar');
|
|
61
|
+
if (cardHeadImg)
|
|
62
|
+
cardHeadImg.setAttribute('src', newVal);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export default iamRecordCard;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
|
+
*/const h=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},p=(o,t,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),a.forEach(r=>{o.addEventListener(r,function(e){let d={event:r,element:t,target:e.target};Object.keys(e.detail).forEach(i=>{const c=e.detail[i];d[i]=c}),window.dataLayer.push(d)})}),!0),g=`<div class="card__head" part="head">
|
|
5
|
+
<slot name="head"></slot>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="card__badges"><slot name="badges"></slot></div>
|
|
8
|
+
<slot name="checkbox" class="activate-prevent-hover"></slot>
|
|
9
|
+
<div class="card__body" part="body">
|
|
10
|
+
<slot></slot>
|
|
11
|
+
<slot name="secondary" part="secondary"></slot>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="card__details" part="details">
|
|
14
|
+
<slot name="details"></slot>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="card__footer" part="footer">
|
|
17
|
+
<slot name="footer"></slot>
|
|
18
|
+
</div>`,u=o=>{o.classList.add("card");const t=o.shadowRoot.querySelector(".card__head"),a=o.shadowRoot.querySelector(".card__body");o.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${o.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),o.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${o.getAttribute("data-total")}</div>`):o.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),o.querySelector('[slot="badges"]')||o.shadowRoot.querySelector(".card__badges").remove()};var b=function(o,t,a,r){function e(d){return d instanceof a?d:new a(function(i){i(d)})}return new(a||(a=Promise))(function(d,i){function c(n){try{s(r.next(n))}catch(l){i(l)}}function m(n){try{s(r.throw(n))}catch(l){i(l)}}function s(n){n.done?d(n.value):e(n.value).then(c,m)}s((r=r.apply(o,t||[])).next())})};h("iam-record-card");class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
|
|
19
|
+
<style>
|
|
20
|
+
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
21
|
+
|
|
22
|
+
:host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges{padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}:host{--card-head-height: 9rem;--card-right-padding: 1rem;background:rgba(0,0,0,0) !important;position:relative}:host(:is(:hover,:focus,.hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px}:host([data-record]) .card__head:before{font-family:var(--record-icon-font, "Font Awesome 6 Pro");font-weight:normal;font-size:1.5rem;content:var(--record-icon);display:block;position:absolute;top:auto;left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}:host([data-initials]:before){content:data-initials;display:block}:host([data-initials]) .card__head:before{display:none !important}:host([data-initials]):before{font-family:var(--font-body);font-weight:normal;font-size:2rem;content:attr(data-initials);display:block;position:absolute;top:var(--card-head-height);left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;margin-top:-4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}.card__head{background:rgba(0,0,0,0) !important;position:relative;min-height:var(--card-head-height)}.card__head .card__avatar{display:block;position:absolute;top:auto;left:50%;bottom:0;border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0);margin:0;object-fit:cover}.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__body{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow:hidden;padding-bottom:0;margin-bottom:0}.card__details{padding:0 var(--card-right-padding) 1.5rem var(--card-left-padding)}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1rem !important}::slotted(*:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}:host([data-initials]){--record-content: attr(data-initials);--record-colour: var(--wider-colour-2)}:host([data-record=business]){--record-icon: "\uF54F";--record-colour: var(--wider-colour-2)}:host([data-record=page]){--record-icon: "\uF15C";--record-colour: var(--wider-colour-3)}:host([data-record=contact]){--record-icon: "\uF2B9";--record-colour: var(--wider-colour-4)}:host([data-record=lettings]){--record-icon: "\uE003";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-5)}:host([data-record=sales]){--record-icon: "\uE004";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-7)}:host([data-record=landlord]){--record-icon: "\uE001";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-8)}:host([data-record=contractor]){--record-icon: "\uF82C";--record-colour: var(--wider-colour-9)}:host([data-record=vendor]){--record-icon: "\uE002";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-13)}:host([data-record=tenant]){--record-icon: "\uE1B0";--record-colour: var(--wider-colour-6)}:host([data-record=sales-applicant]){--record-icon: "\uE006";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-10)}/*# sourceMappingURL=assets/css/components/record-card.component.css.map */
|
|
23
|
+
|
|
24
|
+
</style>
|
|
25
|
+
${g}
|
|
26
|
+
`,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return b(this,void 0,void 0,function*(){const t=this,a=t.shadowRoot.querySelector(".card__head");u(t),Array.from(t.querySelectorAll(":scope > *:not([slot])")).forEach((r,e)=>{r.setAttribute("slot","details")}),t.hasAttribute("data-avatar")&&(a.innerHTML+=`<img src="${t.getAttribute("data-avatar")}" alt="" loading="lazy" class="card__avatar" part="avatar" />`),p(t,"iam-record-card",[])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,a,r){switch(t){case"data-image":{if(a!=r){const e=this.shadowRoot.querySelector(".card__head img");e&&e.setAttribute("src",r)}break}case"data-avatar":{if(a!=r){const e=this.shadowRoot.querySelector(".card__avatar");e&&e.setAttribute("src",r)}break}}}}export{f as default};
|
|
27
|
+
//# sourceMappingURL=record-card.component.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","record-card.component.js"],"sourcesContent":["// @ts-nocheck\nexport 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 let 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=\"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>`;\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 cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\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').remove();\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport { trackComponent, trackComponentRegistered } from \"../_global.js\";\nimport { cardHTML, setupCard } from \"../../modules/card.module.js\";\ntrackComponentRegistered(\"iam-record-card\");\nclass iamRecordCard extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/record-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 `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n setupCard(cardComponent);\n Array.from(cardComponent.querySelectorAll(':scope > *:not([slot])')).forEach((element, index) => {\n element.setAttribute('slot', 'details');\n });\n if (cardComponent.hasAttribute('data-avatar')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-avatar')}\" alt=\"\" loading=\"lazy\" class=\"card__avatar\" part=\"avatar\" />`;\n }\n trackComponent(cardComponent, \"iam-record-card\", []);\n });\n }\n static get observedAttributes() {\n return [\"data-image\"];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\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 case \"data-avatar\": {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__avatar');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamRecordCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamRecordCard","template","element","index","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v6.
|
|
3
|
-
* Copyright 2022-
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/import k from"js-cookie";const q=e=>e.replace(/ /g,"_"),x=function(e){return e=e.toLowerCase(),e=q(e),e=e.replace(/\W/g,""),e},m=(e,s,a)=>s.split(/[\.\[\]\'\"]/).filter(o=>o).reduce((o,d)=>o?o[d]:a,e),S=e=>Array.isArray(e)||e!==null&&["function","object"].includes(typeof e);var L=function(e,s,a,o){function d(c){return c instanceof a?c:new a(function(n){n(c)})}return new(a||(a=Promise))(function(c,n){function v(r){try{u(o.next(r))}catch(i){n(i)}}function t(r){try{u(o.throw(r))}catch(i){n(i)}}function u(r){r.done?c(r.value):d(r.value).then(v,t)}u((o=o.apply(e,s||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Search"});class C extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const s=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",a=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${s}/css/core.min.css`,o=document.createElement("template");o.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${a}";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v6.
|
|
3
|
-
* Copyright 2022-
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Slider"});class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",p=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,i=document.createElement("template");i.innerHTML=`
|
|
5
5
|
<style>
|
|
6
6
|
@import "${p}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.component.min.js","sources":["slider.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Slider\"\n});\nclass iamSlider extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/slider.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n </style>\n <div class=\"row\">\n <div class=\"col min pe-2\"></div>\n <div class=\"col sliders\">\n \n </div>\n <div class=\"col max ps-2\"></div>\n </div>\n <div class=\"input__wrapper\"><slot></slot><span>Minimum</span><span>Maximum</span></div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const slider = this;\n const minElement = this.shadowRoot.querySelector('.min');\n const maxElement = this.shadowRoot.querySelector('.max');\n const slidersHolder = this.shadowRoot.querySelector('.sliders');\n let inputs = this.querySelectorAll('input');\n const inputWrapper = this.shadowRoot.querySelector('.input__wrapper');\n const label = this.closest('label');\n let stepperInterval, stepperEvent = \"mouseup\", stepperStart = \"mousedown\";\n if (\"ontouchstart\" in document.documentElement) {\n stepperEvent = \"touchend\";\n stepperStart = \"touchstart\";\n }\n let stepperFunction = function (input, eventType) {\n let value = input.value;\n let min = slider.shadowRoot.querySelector('.is-first').getAttribute('min');\n let max = slider.shadowRoot.querySelector('.is-last').getAttribute('max');\n if (input.classList.contains('is-last') && !input.classList.contains('is-first')) {\n let percent = ((value / (max - min)) * 100);\n slider.style.setProperty('--percent', percent + \"%\");\n if (parseFloat(input.value) <= parseFloat(slider.shadowRoot.querySelector('.is-first').value)) {\n slider.shadowRoot.querySelector('.is-first').value = input.value;\n slider.querySelector('.is-first').value = input.value;\n slider.style.setProperty('--start-percent', percent + \"%\");\n }\n }\n else if (input.classList.contains('is-first') && !input.classList.contains('is-last')) {\n let percent = ((value / (max - min)) * 100);\n slider.style.setProperty('--start-percent', percent + \"%\");\n if (parseFloat(input.value) >= parseFloat(slider.shadowRoot.querySelector('.is-last').value)) {\n slider.shadowRoot.querySelector('.is-last').value = input.value;\n slider.querySelector('.is-last').value = input.value;\n slider.style.setProperty('--percent', percent + \"%\");\n }\n }\n else {\n let percent = ((value / (max - min)) * 100).toFixed(2);\n slider.style.setProperty('--percent', percent + \"%\");\n }\n };\n // Create sliders\n Array.from(inputs).forEach((input, index) => {\n let rangeInput = input.cloneNode(true);\n input.setAttribute('type', 'number');\n rangeInput.setAttribute('type', 'range');\n if (index == 0) {\n input.classList.add('is-first');\n rangeInput.classList.add('is-first');\n minElement.innerHTML = input.getAttribute('min');\n maxElement.innerHTML = input.getAttribute('max');\n slidersHolder.appendChild(rangeInput);\n }\n if (index == inputs.length - 1) {\n input.classList.add('is-last');\n rangeInput.classList.add('is-last');\n slidersHolder.appendChild(rangeInput);\n }\n if (index > 1) {\n input.remove();\n }\n });\n inputs = this.querySelectorAll('input');\n inputWrapper.setAttribute('data-elements', inputs.length);\n const sliders = this.shadowRoot.querySelectorAll('input');\n Array.from(inputs).forEach((input, index) => {\n input.addEventListener('keyup', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n input.addEventListener('keydown', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n input.addEventListener('change', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n });\n Array.from(sliders).forEach((input, index) => {\n stepperFunction(input, 'start');\n input.addEventListener(stepperStart, function (event) {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n stepperFunction(input, 'drag');\n inputs[index].value = input.value;\n }, 10);\n });\n input.addEventListener(stepperEvent, function (event) {\n clearInterval(stepperInterval);\n });\n input.addEventListener('change', function (event) {\n clearInterval(stepperInterval);\n stepperFunction(input, 'click');\n inputs[index].value = input.value;\n });\n });\n // Move focus to slider when clicking on label\n label.addEventListener('click', function (event) {\n event.preventDefault();\n if (this === event.target) {\n /* click was on label */\n slider.shadowRoot.querySelector('input').focus();\n }\n else {\n /* click was on input */\n event.stopPropagation();\n return false;\n }\n });\n } // Connected callback\n}\nexport default iamSlider;\n"],"names":["iamSlider","assetLocation","coreCSS","template","slider","minElement","maxElement","slidersHolder","inputs","inputWrapper","label","stepperInterval","stepperEvent","stepperStart","stepperFunction","input","eventType","value","min","max","percent","index","rangeInput","sliders","event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slider.component.min.js","sources":["slider.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Slider\"\n});\nclass iamSlider extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/slider.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n </style>\n <div class=\"row\">\n <div class=\"col min pe-2\"></div>\n <div class=\"col sliders\">\n \n </div>\n <div class=\"col max ps-2\"></div>\n </div>\n <div class=\"input__wrapper\"><slot></slot><span>Minimum</span><span>Maximum</span></div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const slider = this;\n const minElement = this.shadowRoot.querySelector('.min');\n const maxElement = this.shadowRoot.querySelector('.max');\n const slidersHolder = this.shadowRoot.querySelector('.sliders');\n let inputs = this.querySelectorAll('input');\n const inputWrapper = this.shadowRoot.querySelector('.input__wrapper');\n const label = this.closest('label');\n let stepperInterval, stepperEvent = \"mouseup\", stepperStart = \"mousedown\";\n if (\"ontouchstart\" in document.documentElement) {\n stepperEvent = \"touchend\";\n stepperStart = \"touchstart\";\n }\n let stepperFunction = function (input, eventType) {\n let value = input.value;\n let min = slider.shadowRoot.querySelector('.is-first').getAttribute('min');\n let max = slider.shadowRoot.querySelector('.is-last').getAttribute('max');\n if (input.classList.contains('is-last') && !input.classList.contains('is-first')) {\n let percent = ((value / (max - min)) * 100);\n slider.style.setProperty('--percent', percent + \"%\");\n if (parseFloat(input.value) <= parseFloat(slider.shadowRoot.querySelector('.is-first').value)) {\n slider.shadowRoot.querySelector('.is-first').value = input.value;\n slider.querySelector('.is-first').value = input.value;\n slider.style.setProperty('--start-percent', percent + \"%\");\n }\n }\n else if (input.classList.contains('is-first') && !input.classList.contains('is-last')) {\n let percent = ((value / (max - min)) * 100);\n slider.style.setProperty('--start-percent', percent + \"%\");\n if (parseFloat(input.value) >= parseFloat(slider.shadowRoot.querySelector('.is-last').value)) {\n slider.shadowRoot.querySelector('.is-last').value = input.value;\n slider.querySelector('.is-last').value = input.value;\n slider.style.setProperty('--percent', percent + \"%\");\n }\n }\n else {\n let percent = ((value / (max - min)) * 100).toFixed(2);\n slider.style.setProperty('--percent', percent + \"%\");\n }\n };\n // Create sliders\n Array.from(inputs).forEach((input, index) => {\n let rangeInput = input.cloneNode(true);\n input.setAttribute('type', 'number');\n rangeInput.setAttribute('type', 'range');\n if (index == 0) {\n input.classList.add('is-first');\n rangeInput.classList.add('is-first');\n minElement.innerHTML = input.getAttribute('min');\n maxElement.innerHTML = input.getAttribute('max');\n slidersHolder.appendChild(rangeInput);\n }\n if (index == inputs.length - 1) {\n input.classList.add('is-last');\n rangeInput.classList.add('is-last');\n slidersHolder.appendChild(rangeInput);\n }\n if (index > 1) {\n input.remove();\n }\n });\n inputs = this.querySelectorAll('input');\n inputWrapper.setAttribute('data-elements', inputs.length);\n const sliders = this.shadowRoot.querySelectorAll('input');\n Array.from(inputs).forEach((input, index) => {\n input.addEventListener('keyup', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n input.addEventListener('keydown', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n input.addEventListener('change', function (event) {\n sliders[index].value = input.value;\n stepperFunction(sliders[index]);\n });\n });\n Array.from(sliders).forEach((input, index) => {\n stepperFunction(input, 'start');\n input.addEventListener(stepperStart, function (event) {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n stepperFunction(input, 'drag');\n inputs[index].value = input.value;\n }, 10);\n });\n input.addEventListener(stepperEvent, function (event) {\n clearInterval(stepperInterval);\n });\n input.addEventListener('change', function (event) {\n clearInterval(stepperInterval);\n stepperFunction(input, 'click');\n inputs[index].value = input.value;\n });\n });\n // Move focus to slider when clicking on label\n label.addEventListener('click', function (event) {\n event.preventDefault();\n if (this === event.target) {\n /* click was on label */\n slider.shadowRoot.querySelector('input').focus();\n }\n else {\n /* click was on input */\n event.stopPropagation();\n return false;\n }\n });\n } // Connected callback\n}\nexport default iamSlider;\n"],"names":["iamSlider","assetLocation","coreCSS","template","slider","minElement","maxElement","slidersHolder","inputs","inputWrapper","label","stepperInterval","stepperEvent","stepperStart","stepperFunction","input","eventType","value","min","max","percent","index","rangeInput","sliders","event"],"mappings":"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"}
|
|
@@ -132,7 +132,7 @@ class iamTable extends HTMLElement {
|
|
|
132
132
|
});
|
|
133
133
|
Array.from(this.table.querySelectorAll('tbody tr')).forEach((row, index) => {
|
|
134
134
|
let rowID = `row${uniqueID(index)}`;
|
|
135
|
-
row.insertAdjacentHTML('afterbegin', `<td class="td--fixed selectrow"><input type="checkbox" name="row" id="${rowID}"/><label for="${rowID}"><span class="visually-hidden">Select row</span></label></td>`);
|
|
135
|
+
row.insertAdjacentHTML('afterbegin', `<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${rowID}" ${row.hasAttribute('data-selected') ? `checked="true"` : ''}/><label for="${rowID}"><span class="visually-hidden">Select row</span></label></td>`);
|
|
136
136
|
});
|
|
137
137
|
this.table.addEventListener('change', (event) => {
|
|
138
138
|
if (event && event.target instanceof HTMLElement && event.target.closest('.selectrow input')) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v6.
|
|
3
|
-
* Copyright 2022-
|
|
4
|
-
*/const B=function(o){return typeof o!="string"?!1:!isNaN(o)&&!isNaN(parseFloat(o))},Q=(o,e)=>String(o).padStart(e,"0"),X=o=>o.charAt(0).toUpperCase()+o.slice(1),S=(o,e,n)=>e.split(/[\.\[\]\'\"]/).filter(a=>a).reduce((a,h)=>a?a[h]:n,o);var Y=function(o,e,n,a){function h(d){return d instanceof n?d:new n(function(i){i(d)})}return new(n||(n=Promise))(function(d,i){function l(c){try{t(a.next(c))}catch(r){i(r)}}function s(c){try{t(a.throw(c))}catch(r){i(r)}}function t(c){c.done?d(c.value):h(c.value).then(l,s)}t((a=a.apply(o,e||[])).next())})};const R=o=>{const e=Array.from(o.querySelectorAll("thead th"));Array.from(o.querySelectorAll("tbody tr")).forEach((a,h)=>{const d=Array.from(a.querySelectorAll("th, td")),i=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","error"];d.forEach((l,s)=>{const t=e[s];if(typeof t<"u"){let c=document.createElement("div");c.innerHTML=t.innerHTML;let r=c.textContent||c.innerText||"";l.setAttribute("data-label",r),t.hasAttribute("data-td-class")&&l.setAttribute("class",t.getAttribute("data-td-class")),t.hasAttribute("data-format")&&(l.setAttribute("data-format",t.getAttribute("data-format")),l.innerHTML=D(t.getAttribute("data-format"),l.textContent.trim())),i.includes(l.textContent.trim().toLowerCase())&&l.setAttribute("data-content",l.textContent.trim().toLowerCase())}})})},J=o=>{let e=0;return Array.from(o.querySelectorAll("tbody tr")).forEach((n,a)=>{let h=window.getComputedStyle(document.querySelector("html")),d=n.querySelector(":scope > *:last-child > *:first-child");if(d){d.classList.add("text-nowrap");let i=d.offsetWidth/parseFloat(h.fontSize);i+=1.7,e=e>i?e:i}}),e},G=(o,e)=>{if(e.classList.contains("table--fullwidth")&&!e.hasAttribute("data-expandable")||o.querySelectorAll("thead tr th").length<4&&!e.hasAttribute("data-expandable"))return!1;Array.from(o.querySelectorAll("thead tr")).forEach((n,a)=>{o.querySelectorAll("thead tr th.expand-button-heading").length||n.insertAdjacentHTML("afterbegin",'<th class="th--fixed expand-button-heading"></th>')}),Array.from(o.querySelectorAll("tbody tr")).forEach((n,a)=>{const h=n.getAttribute("data-view")==="full"?"aria-expanded":"";n.insertAdjacentHTML("afterbegin",`<td class="td--fixed td--expand"><button class="btn btn-compact btn-secondary" data-expand-button ${h}>Expand</button></td>`)})},V=o=>{o.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){let n=e.target.closest("[data-expand-button]"),a=n.closest("tr");n.toggleAttribute("aria-expanded"),a.getAttribute("data-view")=="full"?a.setAttribute("data-view","default"):a.setAttribute("data-view","full"),n.blur()}})},N=(o,e)=>{let n=e.querySelector("input[data-search]");if(!n)return!1;const a=n.getAttribute("id"),h=n.getAttribute("data-search").split(",");let d=n.parentNode,i={};h.forEach((l,s)=>{Array.from(o.querySelectorAll('td[data-label="'+l.trim()+'"]')).forEach((t,c)=>{t.querySelector(".td__content")?i[t.querySelector(".td__content").textContent]=t.querySelector(".td__content").textContent:i[t.textContent]=t.textContent})}),n.setAttribute("list",`${a}_list`),n.setAttribute("autocomplete","off"),d.querySelector("datalist")||(d.innerHTML+=`<datalist id="${a}_list"></datalist>`),d.querySelector("datalist").innerHTML=`${Object.keys(i).map(l=>`<option value="${l}"></option>`).join("")}`},K=(o,e,n,a,h)=>{var d;let i=function(t,c=!1){if(a.hasAttribute("data-no-submit")||e.classList.contains("processing"))return!1;if(Array.from(e.querySelectorAll("iam-applied-filters")).forEach((r,p)=>{var u=new Event("tags-set");r.dispatchEvent(u)}),t.type=="submit"&&(e.classList.add("processing"),Array.from(e.querySelectorAll("[data-duplicate]")).forEach((r,p)=>{const u=r.getAttribute("data-duplicate"),b=document.getElementById(u),y=document.querySelector(`[for="${u}"] iam-card`);if(b.checked!=r.checked)if(y){let w=new Event("click");y.dispatchEvent(w)}else b.checked=r.checked}),e.classList.remove("processing")),e.hasAttribute("data-ajax")){if(!c){let r=e.querySelector("[data-pagination]");r.value=1,a.setAttribute("data-page",1)}I(o,e,n,a)}else e.hasAttribute("data-submit")?e.submit():(C(o,e,a),$(o,e));if(e.hasAttribute("data-ajax-post")){let r=new FormData(e),p=new URLSearchParams(r).toString();const u=new XMLHttpRequest;u.open("GET",`${window.location.href}?ajax=true&${p}`),u.send()}};e.querySelector("iam-actionbar[data-search]")&&e.querySelector("iam-actionbar[data-search]").addEventListener("search-submit",t=>{e.querySelector("input[data-search]")?e.querySelector("input[data-search]").value=t.detail.search:e.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${e.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${t.detail.search}"/>`),clearTimeout(d),i(t)}),e.addEventListener("keyup",t=>{clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&(d=setTimeout(function(){i(t)},500))}),e.addEventListener("change",t=>{if(clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest("[data-sort]")&&(e.hasAttribute("data-submit")||O(o,e,h),i(t)),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter][data-no-ajax]")?(C(o,e,a),$(o,e)):(t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&t.target.closest("form .dialog__wrapper > dialog")||t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&!t.target.closest("form dialog"))&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-show]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-mimic]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.hasAttribute("id")){let c=t.target.getAttribute("id");document.querySelector(`[data-duplicate="${c}"]`)&&(document.querySelector(`[data-duplicate="${c}"]`).checked=t.target.checked)}}),e.addEventListener("click",t=>{if(clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest('dialog button:not([type="button"])')&&t.target.closest('dialog button:not([type="button"])').closest("dialog").close(),t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__close")&&(t.preventDefault(),t.stopPropagation()),t&&t.target instanceof HTMLElement&&t.target.closest("[data-clear]")){e.classList.add("processing"),Array.from(e.querySelectorAll(".applied-filters")).forEach((r,p)=>{r.innerHTML=""});let c=e.elements;for(let r=0;r<c.length;r++)switch(c[r].type.toLowerCase()?c[r].type.toLowerCase():"text"){case"text":case"password":case"textarea":c[r].value="";break;case"radio":case"checkbox":if(c[r].checked){let u=c[r],b=u.getAttribute("id"),y=document.querySelector(`[for="${b}"`);if(y.querySelector("iam-card")){let w=y.querySelector("iam-card"),L=new Event("click");w.dispatchEvent(L)}u.checked=!1}break;case"select-one":case"select-multi":c[r].selectedIndex=-1;break}e.classList.remove("processing"),e.hasAttribute("data-submit")||O(o,e,h),i(t)}}),e.addEventListener("submit",t=>{clearTimeout(d),e.hasAttribute("data-submit")||t.preventDefault(),i(t)}),e.addEventListener("force",t=>{i(t)}),e.addEventListener("paginate",t=>{i(t,!0)});let l=[],s=[];Array.from(e.querySelectorAll("[data-mimic]")).forEach((t,c)=>{let r=t.getAttribute("data-mimic");Array.from(document.querySelectorAll(`[name="${r}"]`)).forEach((p,u)=>{let b=p.closest("form");l.includes(b)||l.push(b),s.includes(r)||s.push(r)})}),l.forEach((t,c)=>{const r=function(){let p=[],u=new FormData(t);for(const[b,y]of u)document.querySelector(`[data-mimic="${b}"]`)&&!p.includes(b)?(p.push(b),document.querySelector(`[data-mimic="${b}"]`).value=y):document.querySelector(`[data-mimic="${b}"]`)&&(document.querySelector(`[data-mimic="${b}"]`).value+=","+y);for(const b of p){const y=new Event("force");e.dispatchEvent(y)}for(const b of s)if(!u.has(b)&&t.querySelector(`[name="${b}"]`)){document.querySelector(`[data-mimic="${b}"]`).value="";const y=new Event("force");e.dispatchEvent(y)}};t.addEventListener("force",p=>{r()}),t.addEventListener("change",p=>{r()})})},O=(o,e,n)=>{if(e.getAttribute("data-ajax"))return!1;let a=o.querySelector("tbody"),h=e.querySelector('input[type="radio"][data-sort]:checked');if(e.querySelector("select[data-sort]")){let r=e.querySelector("select[data-sort]");h=e.querySelector(`select[data-sort] option:nth-child(${r.selectedIndex+1})`)}let d=h.getAttribute("data-sort"),i=h.getAttribute("data-order"),l=h.getAttribute("data-format");if(!d)return a.innerHTML=n.innerHTML,R(o),!1;let s=[];["asc","desc","descending"].includes(i)||(s=i.split(","));let t=[];Array.from(a.querySelectorAll("tr")).forEach((r,p)=>{let u=r.querySelector('td[data-label="'+d+'"], th[data-label="'+d+'"]').textContent.trim();r.querySelector('[data-label="'+d+'"] .td__content')&&(u=r.querySelector('[data-label="'+d+'"] .td__content').textContent.trim()),s.length&&s.includes(u)&&(u=s.indexOf(u)),B(u)&&(u=Q(u,10)),l&&l=="date"&&(u=new Date(u));const b={index:u,row:r};t.push(b)}),t.sort((r,p)=>r.index>p.index?1:-1),(i=="descending"||i=="desc")&&(t=t.reverse());let c="";t.forEach((r,p)=>{c+=r.row.outerHTML}),a.innerHTML=c},C=(o,e,n)=>{o.classList.remove("table--filtered");let a=z(e),h=[],d=0,i=e.querySelector("[data-pagination]")?parseInt(e.querySelector("[data-pagination]").value):1,l=e.querySelector("[data-show]")?parseInt(e.querySelector("[data-show]").value):15;if(Array.from(o.querySelectorAll("tbody tr")).forEach((t,c)=>{t.classList.remove("filtered"),t.classList.remove("filtered--matched"),t.classList.remove("filtered--show"),t.removeAttribute("data-filtered-by")}),e.querySelector("input[data-search]")){let t=e.querySelector("input[data-search]");e.querySelector("input[data-search]").getAttribute("data-search").split(",").forEach((r,p)=>{h.push({column:`${r.trim()}`,value:`${t.value}`})})}Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML="",t.parentNode.classList.remove("hover")});let s=0;Object.values(a).forEach((t,c)=>{typeof t=="object"&&Object.values(t).length?s+=Object.values(t).length:s++}),s&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML+=`(${s})`,t.parentNode.classList.add("hover")}),o.classList.add("table--filtered");for(const[t,c]of Object.entries(a))Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).forEach((r,p)=>{let u=!1;c.forEach((b,y)=>{let w=r.querySelector(`[data-label="${t}"]`);if(b.includes("-date-from")){let f=new Date(b.replace("-date-from","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g<f?(r.classList.add("less-than-from-date"),u=!1):!r.classList.contains("less-than-from-date")&&!r.classList.contains("greater-than-to-date")&&(u=!0)}else if(b.includes("-date-to")){let f=new Date(b.replace("-date-to","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g>f?(r.classList.add("greater-than-to-date"),u=!1):!r.classList.contains("less-than-from-date")&&!r.classList.contains("greater-than-to-date")&&(u=!0)}if(b&&b=="$today")b=D("date",new Date);else if(b&&b=="$yesterday"){let f=new Date;f.setDate(f.getDate()-1),b=D("date",f)}else if(b&&(b=="$thisWeek"||b=="$lastWeek")){let f=new Date,g=new Date(f.setDate(f.getDate()-(f.getDay()-1))),m=new Date(f.setDate(f.getDate()-f.getDay()+7)),x=new Date(w.textContent.toLowerCase());if(f.setHours(0,0,0,0),g.setHours(0,0,0,0),m.setHours(0,0,0,0),x.setHours(0,0,0,0),b=="$thisWeek")u=x>=g&&x<=m;else{let A=new Date(g.setDate(g.getDate()-7)),k=new Date(m.setDate(m.getDate()-7));A.setHours(0,0,0,0),k.setHours(0,0,0,0),u=x>=A&&x<=k}}else if(b&&b=="$thisMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var L=new Date(g,m,1),q=new Date(g,m+1,0);let x=new Date(w.textContent.toLowerCase());L.setHours(0,0,0,0),q.setHours(0,0,0,0),x.setHours(0,0,0,0),u=x>=L&&x<=q}else if(b&&b=="$lastMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var E=new Date(g,m-1,1),v=new Date(g,m,0);let x=new Date(w.textContent.toLowerCase());E.setHours(0,0,0,0),v.setHours(0,0,0,0),x.setHours(0,0,0,0),u=x>=E&&x<=v}w&&w.textContent.toLowerCase().includes(b.replace("-"," ").toLowerCase())&&(u=!0)}),u||(r.classList.add("filtered"),r.setAttribute("data-filtered-by",t))});Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,c)=>{let r=!(h.length>0&&h[0].value.length>=3);h.forEach((p,u)=>{let b=t.querySelector(`[data-label="${p.column}"]`);b&&p.value.length>=3&&b.textContent.toLowerCase().includes(p.value.toLowerCase())&&(r=!0)}),r||t.classList.add("filtered")}),Array.from(o.querySelectorAll("tbody tr:not(.filtered")).forEach((t,c)=>{d++,t.classList.add("filtered--matched"),Math.ceil(d/l)==parseInt(i)&&t.classList.add("filtered--show")}),n&&(n.setAttribute("data-total",d),n.setAttribute("data-show",l),n.setAttribute("data-page",i))},$=(o,e,n)=>{Array.from(e.querySelectorAll("[data-query]")).forEach((h,d)=>{let i=h.getAttribute("data-query"),l=0;if(i=="total")n.hasAttribute("data-total")?l=n.getAttribute("data-total"):l=(o.classList.contains("table--filtered"),o.querySelectorAll("tbody tr").length);else if(!i.includes(" == ")&&i.includes(" & ")){let s=i.split(" & "),t="";s.forEach(c=>{t+=`:not([data-filtered-by="${c}"])`}),l=Array.from(o.querySelectorAll(`tbody tr${t}`)).length}else if(!i.includes(" == "))l=Array.from(o.querySelectorAll(`tbody tr:not([data-filtered-by="${i}"])`)).length;else if(i.includes(" && ")){let s=i.split(" && ");l=Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).filter(function(t){let c=!0;for(const[r,p]of Object.entries(s)){let u=p.split(" == ");(!t.querySelector(`td[data-label="${u[0]}"]`)||t.querySelector(`td[data-label="${u[0]}"]`).textContent!=`${u[1]}`)&&(c=!1)}return c}).length}else{let s=i.split(" == ");l=Array.from(o.querySelectorAll(`tbody tr.filtered--matched td[data-label="${s[0]}"], tbody tr[data-filtered-by="${s[0]}"] td[data-label="${s[0]}"]`)).filter(function(t){return t.textContent===s[1]}).length}h.hasAttribute("data-total")?h.setAttribute("data-total",l):h.innerHTML=l})},Z=function(o,e,n,a){if(a.hasAttribute("data-no-submit"))return!1;n.addEventListener("update-page",h=>{let d=e.querySelector("[data-pagination]"),i=h.detail.page;if(d.value=i,e.dispatchEvent(new Event("paginate")),a.setAttribute("data-page",i),o.hasAttribute("data-show-history")){const l=new URL(location);l.searchParams.set("page",i),history.pushState({type:"pagination",form:e.getAttribute("id"),page:i},"",l)}if(!a.hasAttribute("data-no-scroll")){const s=o.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:s,behavior:"smooth"})}}),n.addEventListener("update-show",h=>{let d=e.querySelector("[data-show]"),i=h.detail.show;d.value=i,a.setAttribute("data-show",i),e.dispatchEvent(new Event("submit"))})},tt=(o,e)=>{if(!o)return!1;o.addEventListener("click",n=>{et(e)})},et=function(o){for(var e=[],n=o.getElementsByTagName("tr"),a=0;a<n.length;a++){for(var h=n[a].querySelectorAll("td,th"),d=[],i=0;i<h.length;i++)d.push(`"${h[i].textContent}"`);e.push(d.join(","))}e=e.join(`
|
|
2
|
+
* iamKey v6.1.0--beta2
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
|
+
*/const B=function(o){return typeof o!="string"?!1:!isNaN(o)&&!isNaN(parseFloat(o))},Q=(o,e)=>String(o).padStart(e,"0"),X=o=>o.charAt(0).toUpperCase()+o.slice(1),S=(o,e,n)=>e.split(/[\.\[\]\'\"]/).filter(a=>a).reduce((a,h)=>a?a[h]:n,o);var Y=function(o,e,n,a){function h(d){return d instanceof n?d:new n(function(i){i(d)})}return new(n||(n=Promise))(function(d,i){function l(c){try{t(a.next(c))}catch(r){i(r)}}function s(c){try{t(a.throw(c))}catch(r){i(r)}}function t(c){c.done?d(c.value):h(c.value).then(l,s)}t((a=a.apply(o,e||[])).next())})};const R=o=>{const e=Array.from(o.querySelectorAll("thead th"));Array.from(o.querySelectorAll("tbody tr")).forEach((a,h)=>{const d=Array.from(a.querySelectorAll("th, td")),i=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","error"];d.forEach((l,s)=>{const t=e[s];if(typeof t<"u"){let c=document.createElement("div");c.innerHTML=t.innerHTML;let r=c.textContent||c.innerText||"";l.setAttribute("data-label",r),t.hasAttribute("data-td-class")&&l.setAttribute("class",t.getAttribute("data-td-class")),t.hasAttribute("data-format")&&(l.setAttribute("data-format",t.getAttribute("data-format")),l.innerHTML=D(t.getAttribute("data-format"),l.textContent.trim())),i.includes(l.textContent.trim().toLowerCase())&&l.setAttribute("data-content",l.textContent.trim().toLowerCase())}})})},J=o=>{let e=0;return Array.from(o.querySelectorAll("tbody tr")).forEach((n,a)=>{let h=window.getComputedStyle(document.querySelector("html")),d=n.querySelector(":scope > *:last-child > *:first-child");if(d){d.classList.add("text-nowrap");let i=d.offsetWidth/parseFloat(h.fontSize);i+=1.7,e=e>i?e:i}}),e},G=(o,e)=>{if(e.classList.contains("table--fullwidth")&&!e.hasAttribute("data-expandable")||o.querySelectorAll("thead tr th").length<4&&!e.hasAttribute("data-expandable"))return!1;Array.from(o.querySelectorAll("thead tr")).forEach((n,a)=>{o.querySelectorAll("thead tr th.expand-button-heading").length||n.insertAdjacentHTML("afterbegin",'<th class="th--fixed expand-button-heading"></th>')}),Array.from(o.querySelectorAll("tbody tr")).forEach((n,a)=>{const h=n.getAttribute("data-view")==="full"?"aria-expanded":"";n.insertAdjacentHTML("afterbegin",`<td class="td--fixed td--expand"><button class="btn btn-compact btn-secondary" data-expand-button ${h}>Expand</button></td>`)})},V=o=>{o.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){let n=e.target.closest("[data-expand-button]"),a=n.closest("tr");n.toggleAttribute("aria-expanded"),a.getAttribute("data-view")=="full"?a.setAttribute("data-view","default"):a.setAttribute("data-view","full"),n.blur()}})},N=(o,e)=>{let n=e.querySelector("input[data-search]");if(!n)return!1;const a=n.getAttribute("id"),h=n.getAttribute("data-search").split(",");let d=n.parentNode,i={};h.forEach((l,s)=>{Array.from(o.querySelectorAll('td[data-label="'+l.trim()+'"]')).forEach((t,c)=>{t.querySelector(".td__content")?i[t.querySelector(".td__content").textContent]=t.querySelector(".td__content").textContent:i[t.textContent]=t.textContent})}),n.setAttribute("list",`${a}_list`),n.setAttribute("autocomplete","off"),d.querySelector("datalist")||(d.innerHTML+=`<datalist id="${a}_list"></datalist>`),d.querySelector("datalist").innerHTML=`${Object.keys(i).map(l=>`<option value="${l}"></option>`).join("")}`},K=(o,e,n,a,h)=>{var d;let i=function(t,c=!1){if(a.hasAttribute("data-no-submit")||e.classList.contains("processing"))return!1;if(Array.from(e.querySelectorAll("iam-applied-filters")).forEach((r,p)=>{var u=new Event("tags-set");r.dispatchEvent(u)}),t.type=="submit"&&(e.classList.add("processing"),Array.from(e.querySelectorAll("[data-duplicate]")).forEach((r,p)=>{const u=r.getAttribute("data-duplicate"),b=document.getElementById(u),y=document.querySelector(`[for="${u}"] iam-card`);if(b.checked!=r.checked)if(y){let w=new Event("click");y.dispatchEvent(w)}else b.checked=r.checked}),e.classList.remove("processing")),e.hasAttribute("data-ajax")){if(!c){let r=e.querySelector("[data-pagination]");r.value=1,a.setAttribute("data-page",1)}I(o,e,n,a)}else e.hasAttribute("data-submit")?e.submit():(C(o,e,a),$(o,e));if(e.hasAttribute("data-ajax-post")){let r=new FormData(e),p=new URLSearchParams(r).toString();const u=new XMLHttpRequest;u.open("GET",`${window.location.href}?ajax=true&${p}`),u.send()}};e.querySelector("iam-actionbar[data-search]")&&e.querySelector("iam-actionbar[data-search]").addEventListener("search-submit",t=>{e.querySelector("input[data-search]")?e.querySelector("input[data-search]").value=t.detail.search:e.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${e.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${t.detail.search}"/>`),clearTimeout(d),i(t)}),e.addEventListener("keyup",t=>{clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&(d=setTimeout(function(){i(t)},500))}),e.addEventListener("change",t=>{if(clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest("[data-sort]")&&(e.hasAttribute("data-submit")||O(o,e,h),i(t)),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter][data-no-ajax]")?(C(o,e,a),$(o,e)):(t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&t.target.closest("form .dialog__wrapper > dialog")||t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&!t.target.closest("form dialog"))&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-show]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-mimic]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.hasAttribute("id")){let c=t.target.getAttribute("id");document.querySelector(`[data-duplicate="${c}"]`)&&(document.querySelector(`[data-duplicate="${c}"]`).checked=t.target.checked)}}),e.addEventListener("click",t=>{if(clearTimeout(d),t&&t.target instanceof HTMLElement&&t.target.closest('dialog button:not([type="button"])')&&t.target.closest('dialog button:not([type="button"])').closest("dialog").close(),t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__close")&&(t.preventDefault(),t.stopPropagation()),t&&t.target instanceof HTMLElement&&t.target.closest("[data-clear]")){e.classList.add("processing"),Array.from(e.querySelectorAll(".applied-filters")).forEach((r,p)=>{r.innerHTML=""});let c=e.elements;for(let r=0;r<c.length;r++)switch(c[r].type.toLowerCase()?c[r].type.toLowerCase():"text"){case"text":case"password":case"textarea":c[r].value="";break;case"radio":case"checkbox":if(c[r].checked){let u=c[r],b=u.getAttribute("id"),y=document.querySelector(`[for="${b}"`);if(y.querySelector("iam-card")){let w=y.querySelector("iam-card"),L=new Event("click");w.dispatchEvent(L)}u.checked=!1}break;case"select-one":case"select-multi":c[r].selectedIndex=-1;break}e.classList.remove("processing"),e.hasAttribute("data-submit")||O(o,e,h),i(t)}}),e.addEventListener("submit",t=>{clearTimeout(d),e.hasAttribute("data-submit")||t.preventDefault(),i(t)}),e.addEventListener("force",t=>{i(t)}),e.addEventListener("paginate",t=>{i(t,!0)});let l=[],s=[];Array.from(e.querySelectorAll("[data-mimic]")).forEach((t,c)=>{let r=t.getAttribute("data-mimic");Array.from(document.querySelectorAll(`[name="${r}"]`)).forEach((p,u)=>{let b=p.closest("form");l.includes(b)||l.push(b),s.includes(r)||s.push(r)})}),l.forEach((t,c)=>{const r=function(){let p=[],u=new FormData(t);for(const[b,y]of u)document.querySelector(`[data-mimic="${b}"]`)&&!p.includes(b)?(p.push(b),document.querySelector(`[data-mimic="${b}"]`).value=y):document.querySelector(`[data-mimic="${b}"]`)&&(document.querySelector(`[data-mimic="${b}"]`).value+=","+y);for(const b of p){const y=new Event("force");e.dispatchEvent(y)}for(const b of s)if(!u.has(b)&&t.querySelector(`[name="${b}"]`)){document.querySelector(`[data-mimic="${b}"]`).value="";const y=new Event("force");e.dispatchEvent(y)}};t.addEventListener("force",p=>{r()}),t.addEventListener("change",p=>{r()})})},O=(o,e,n)=>{if(e.getAttribute("data-ajax"))return!1;let a=o.querySelector("tbody"),h=e.querySelector('input[type="radio"][data-sort]:checked');if(e.querySelector("select[data-sort]")){let r=e.querySelector("select[data-sort]");h=e.querySelector(`select[data-sort] option:nth-child(${r.selectedIndex+1})`)}let d=h.getAttribute("data-sort"),i=h.getAttribute("data-order"),l=h.getAttribute("data-format");if(!d)return a.innerHTML=n.innerHTML,R(o),!1;let s=[];["asc","desc","descending"].includes(i)||(s=i.split(","));let t=[];Array.from(a.querySelectorAll("tr")).forEach((r,p)=>{let u=r.querySelector('td[data-label="'+d+'"], th[data-label="'+d+'"]').textContent.trim();r.querySelector('[data-label="'+d+'"] .td__content')&&(u=r.querySelector('[data-label="'+d+'"] .td__content').textContent.trim()),s.length&&s.includes(u)&&(u=s.indexOf(u)),B(u)&&(u=Q(u,10)),l&&l=="date"&&(u=new Date(u));const b={index:u,row:r};t.push(b)}),t.sort((r,p)=>r.index>p.index?1:-1),(i=="descending"||i=="desc")&&(t=t.reverse());let c="";t.forEach((r,p)=>{c+=r.row.outerHTML}),a.innerHTML=c},C=(o,e,n)=>{o.classList.remove("table--filtered");let a=z(e),h=[],d=0,i=e.querySelector("[data-pagination]")?parseInt(e.querySelector("[data-pagination]").value):1,l=e.querySelector("[data-show]")?parseInt(e.querySelector("[data-show]").value):15;if(Array.from(o.querySelectorAll("tbody tr")).forEach((t,c)=>{t.classList.remove("filtered"),t.classList.remove("filtered--matched"),t.classList.remove("filtered--show"),t.removeAttribute("data-filtered-by")}),e.querySelector("input[data-search]")){let t=e.querySelector("input[data-search]");e.querySelector("input[data-search]").getAttribute("data-search").split(",").forEach((r,p)=>{h.push({column:`${r.trim()}`,value:`${t.value}`})})}Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML="",t.parentNode.classList.remove("hover")});let s=0;Object.values(a).forEach((t,c)=>{typeof t=="object"&&Object.values(t).length?s+=Object.values(t).length:s++}),s&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML+=`(${s})`,t.parentNode.classList.add("hover")}),o.classList.add("table--filtered");for(const[t,c]of Object.entries(a))Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).forEach((r,p)=>{let u=!1;c.forEach((b,y)=>{let w=r.querySelector(`[data-label="${t}"]`);if(b.includes("-date-from")){let f=new Date(b.replace("-date-from","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g<f?(r.classList.add("less-than-from-date"),u=!1):!r.classList.contains("less-than-from-date")&&!r.classList.contains("greater-than-to-date")&&(u=!0)}else if(b.includes("-date-to")){let f=new Date(b.replace("-date-to","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g>f?(r.classList.add("greater-than-to-date"),u=!1):!r.classList.contains("less-than-from-date")&&!r.classList.contains("greater-than-to-date")&&(u=!0)}if(b&&b=="$today")b=D("date",new Date);else if(b&&b=="$yesterday"){let f=new Date;f.setDate(f.getDate()-1),b=D("date",f)}else if(b&&(b=="$thisWeek"||b=="$lastWeek")){let f=new Date,g=new Date(f.setDate(f.getDate()-(f.getDay()-1))),m=new Date(f.setDate(f.getDate()-f.getDay()+7)),x=new Date(w.textContent.toLowerCase());if(f.setHours(0,0,0,0),g.setHours(0,0,0,0),m.setHours(0,0,0,0),x.setHours(0,0,0,0),b=="$thisWeek")u=x>=g&&x<=m;else{let A=new Date(g.setDate(g.getDate()-7)),k=new Date(m.setDate(m.getDate()-7));A.setHours(0,0,0,0),k.setHours(0,0,0,0),u=x>=A&&x<=k}}else if(b&&b=="$thisMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var L=new Date(g,m,1),q=new Date(g,m+1,0);let x=new Date(w.textContent.toLowerCase());L.setHours(0,0,0,0),q.setHours(0,0,0,0),x.setHours(0,0,0,0),u=x>=L&&x<=q}else if(b&&b=="$lastMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var E=new Date(g,m-1,1),v=new Date(g,m,0);let x=new Date(w.textContent.toLowerCase());E.setHours(0,0,0,0),v.setHours(0,0,0,0),x.setHours(0,0,0,0),u=x>=E&&x<=v}w&&w.textContent.toLowerCase().includes(b.replace("-"," ").toLowerCase())&&(u=!0)}),u||(r.classList.add("filtered"),r.setAttribute("data-filtered-by",t))});Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,c)=>{let r=!(h.length>0&&h[0].value.length>=3);h.forEach((p,u)=>{let b=t.querySelector(`[data-label="${p.column}"]`);b&&p.value.length>=3&&b.textContent.toLowerCase().includes(p.value.toLowerCase())&&(r=!0)}),r||t.classList.add("filtered")}),Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,c)=>{d++,t.classList.add("filtered--matched"),Math.ceil(d/l)==parseInt(i)&&t.classList.add("filtered--show")}),n&&(n.setAttribute("data-total",d),n.setAttribute("data-show",l),n.setAttribute("data-page",i))},$=(o,e,n)=>{Array.from(e.querySelectorAll("[data-query]")).forEach((h,d)=>{let i=h.getAttribute("data-query"),l=0;if(i=="total")n.hasAttribute("data-total")?l=n.getAttribute("data-total"):l=(o.classList.contains("table--filtered"),o.querySelectorAll("tbody tr").length);else if(!i.includes(" == ")&&i.includes(" & ")){let s=i.split(" & "),t="";s.forEach(c=>{t+=`:not([data-filtered-by="${c}"])`}),l=Array.from(o.querySelectorAll(`tbody tr${t}`)).length}else if(!i.includes(" == "))l=Array.from(o.querySelectorAll(`tbody tr:not([data-filtered-by="${i}"])`)).length;else if(i.includes(" && ")){let s=i.split(" && ");l=Array.from(o.querySelectorAll("tbody tr:not(.filtered)")).filter(function(t){let c=!0;for(const[r,p]of Object.entries(s)){let u=p.split(" == ");(!t.querySelector(`td[data-label="${u[0]}"]`)||t.querySelector(`td[data-label="${u[0]}"]`).textContent!=`${u[1]}`)&&(c=!1)}return c}).length}else{let s=i.split(" == ");l=Array.from(o.querySelectorAll(`tbody tr.filtered--matched td[data-label="${s[0]}"], tbody tr[data-filtered-by="${s[0]}"] td[data-label="${s[0]}"]`)).filter(function(t){return t.textContent===s[1]}).length}h.hasAttribute("data-total")?h.setAttribute("data-total",l):h.innerHTML=l})},Z=function(o,e,n,a){if(a.hasAttribute("data-no-submit"))return!1;n.addEventListener("update-page",h=>{let d=e.querySelector("[data-pagination]"),i=h.detail.page;if(d.value=i,e.dispatchEvent(new Event("paginate")),a.setAttribute("data-page",i),o.hasAttribute("data-show-history")){const l=new URL(location);l.searchParams.set("page",i),history.pushState({type:"pagination",form:e.getAttribute("id"),page:i},"",l)}if(!a.hasAttribute("data-no-scroll")){const s=o.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:s,behavior:"smooth"})}}),n.addEventListener("update-show",h=>{let d=e.querySelector("[data-show]"),i=h.detail.show;d.value=i,a.setAttribute("data-show",i),e.dispatchEvent(new Event("submit"))})},tt=(o,e)=>{if(!o)return!1;o.addEventListener("click",n=>{et(e)})},et=function(o){for(var e=[],n=o.getElementsByTagName("tr"),a=0;a<n.length;a++){for(var h=n[a].querySelectorAll("td,th"),d=[],i=0;i<h.length;i++)d.push(`"${h[i].textContent}"`);e.push(d.join(","))}e=e.join(`
|
|
5
5
|
`);let l=new Blob([e],{type:"text/csv"});var s=document.createElement("a");s.download="export.csv";var t=window.URL.createObjectURL(l);s.href=t,s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)},P=function(o,e,n,a){if(R(o),G(o,a),$(o,e,a),a&&a.classList.contains("table--cta")){let d=function(){Array.from(o.querySelectorAll("tr")).forEach((i,l)=>{let s=i.offsetHeight;i.style.setProperty("--row-height",`${s}px`)})};const h=J(o);a.style.setProperty("--cta-width",`${h}rem`),new ResizeObserver(d).observe(o)}},z=function(o){let e=new Object;return Array.from(o.querySelectorAll("[data-filter]")).forEach((a,h)=>{if(!(a.type=="radio"&&!a.checked)&&!(a.type=="checkbox"&&!a.checked)&&a&&a.value){let d=a.getAttribute("data-filter"),i=a.value;a.hasAttribute("data-date-from")&&(i+="-date-from"),a.hasAttribute("data-date-to")&&(i+="-date-to"),e[d]||(e[d]=new Array),e[d].push(i)}}),e},I=function(o,e,n,a){return Y(this,void 0,void 0,function*(){let h=new FormData(e),d=new URLSearchParams(h).toString(),i=o.querySelectorAll("thead tr th:not(.expand-button-heading)"),l=o.querySelector("tbody"),s=e.getAttribute("data-ajax");a.classList.add("table--loading");let t=z(e);Array.from(e.querySelectorAll("[data-filter-count]")).forEach((p,u)=>{p.innerHTML="",p.parentNode.classList.remove("hover")});let c=0;Object.values(t).forEach((p,u)=>{typeof p=="object"&&Object.values(p).length?c+=Object.values(p).length:c++}),c&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((p,u)=>{p.innerHTML+=`(${c})`,p.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[s]&&window.controller[s].abort(),window.controller[s]=new AbortController;const{signal:r}=controller[s];n.setAttribute("data-loading","true"),e.classList.add("processing");try{yield fetch(s+"?"+d,{signal:r,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(p=>p.json()).then(p=>{let u=e.hasAttribute("data-schema")?e.getAttribute("data-schema"):"data",b=e.hasAttribute("data-schema-total")?e.getAttribute("data-schema-total"):"meta.total",y=e.hasAttribute("data-schema-page")?e.getAttribute("data-schema-page"):"meta.current_page",w=S(p,b,15),L=S(p,y,1),q=S(p,u),E=a.hasAttribute("data-empty-msg")?a.getAttribute("data-empty-msg"):"No results found";q?(l.innerHTML="",q.forEach((v,f)=>{var g=document.createElement("tr");i.forEach((m,x)=>{let A="";var k=document.createElement("td");if(k.setAttribute("data-label",m.innerText),m.getAttribute("data-output")){var H=m.getAttribute("data-output");A=H.replace(new RegExp(/{(.*?)}/,"gm"),function(M){return S(v,M.replace("{","").replace("}",""))})}if(m.hasAttribute("data-output-array")){var H=m.getAttribute("data-output");let F=S(v,H.replace("{","").replace("}",""));A="",F.forEach((j,it)=>{let W=m.getAttribute("data-output-array"),T="";if(m.hasAttribute("data-output-array-property")&&m.hasAttribute("data-output-array-transform")){const _=S(j,m.getAttribute("data-output-array-property")),U=JSON.parse(m.getAttribute("data-output-array-transform"))[_];T=W.replace(`{${m.getAttribute("data-output-array-property")}}`,U)}T=T.replace(new RegExp(/{(.*?)}/,"gm"),function(_){return S(j,_.replace("{","").replace("}",""))}),A+=T})}m.hasAttribute("data-transform")&&(A=JSON.parse(m.getAttribute("data-transform"))[A],!A&&m.hasAttribute("data-default")&&(A=m.getAttribute("data-default"))),k.innerHTML=A,g.appendChild(k)}),l.appendChild(g)}),N(o,e),a.setAttribute("data-total",parseInt(w)),a.setAttribute("data-page",parseInt(L)),P(o,e,n,a),Array.from(e.querySelectorAll("[data-ajax-query]")).forEach((v,f)=>{let g=S(p,v.getAttribute("data-ajax-query"),"");v.hasAttribute("data-total")?v.setAttribute("data-total",g):v.innerHTML=g}),parseInt(w)==0&&(l.innerHTML=`<tr><td colspan="100%"><span>${E}</span></td></tr>`),a.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:s,formData:d})):l.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',n.removeAttribute("data-loading"),e.classList.remove("processing")})}catch(p){console.log(p)}})},D=(o,e)=>{switch(o){case"datetime":return new Date(e).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(e).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(e).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return e=X(e)}};class at extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",n=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
|
|
6
6
|
<style>
|
|
7
7
|
@import "${n}";
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
<iam-pagination part="pagination" class="pagination--table" ${this.hasAttribute("data-page")?`data-page="${this.getAttribute("data-page")}"`:""} ></iam-pagination>
|
|
30
30
|
`,this.shadowRoot.appendChild(a.content.cloneNode(!0)),document.getElementById("tableExtras")||document.head.insertAdjacentHTML("beforeend",`<style id="tableExtras">*:has(>iam-table){container-type:inline-size}iam-table{--hover-background: var(--colour-light);--row-bg: var(--colour-canvas-2)}iam-table thead tr{background:var(--row-bg)}iam-table tbody tr{background:var(--row-bg)}iam-table tbody tr:is(:hover,:focus-within,.hover){--bg-colour-rgb: 238,238,238;--row-bg: var(--hover-background);background:var(--row-bg)}iam-table[data-expandable] [data-expand-button][aria-expanded]{background-color:rgba(0,0,0,0)}@container (width < 23.4375em){iam-table:not(.table--fullwidth) thead{display:none}iam-table:not(.table--fullwidth) tbody{display:block;overflow:visible}iam-table:not(.table--fullwidth) tbody tr td:first-child{padding-top:0}iam-table:not(.table--fullwidth) tr{display:block;position:relative;border:none;background:var(--row-bg);padding:var(--wrapper-padding);box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:0.5rem;height:auto}iam-table:not(.table--fullwidth) tr+tr{margin-top:2rem}iam-table:not(.table--fullwidth) tr:is(:hover,:focus,.hover){--row-bg: var(--colour-canvas-2)}iam-table:not(.table--fullwidth) :is(td,th){display:block;border-color:var(--colour-border);padding-right:0}iam-table:not(.table--fullwidth) :is(td,th):nth-child(1){border-top:none}iam-table:not(.table--fullwidth) :is(td,th)[data-label]:not([data-label=""]):before{content:attr(data-label);color:var(--colour-heading);padding:0 0 0.375rem 0;margin-bottom:0;display:block;font-weight:bold}iam-table:not(.table--fullwidth) td:first-child::after{top:1.75rem !important}iam-table:not(.table--fullwidth) td::after{top:2.5rem}iam-table:not(.table--fullwidth) .td--fixed{padding-right:50%}iam-table:not(.table--fullwidth) tbody tr td:not(:first-child){border-top:var(--border-width) solid currentColor;border-color:var(--colour-border) !important}iam-table:not(.table--fullwidth) tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}iam-table:not(.table--fullwidth) td:has([data-expand-button]){height:0;padding:0;position:relative}iam-table:not(.table--fullwidth) td:has([data-expand-button])+td{border-top:none !important;padding-top:0 !important}iam-table:not(.table--fullwidth) [data-expand-button]{top:0;right:0;background:rgba(0,0,0,0) !important;border:none;position:absolute;overflow:hidden;--compact-size: 2rem}iam-table:not(.table--fullwidth) [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF055";font-weight:300 !important;font-size:1.75rem;line-height:var(--compact-size) !important}iam-table:not(.table--fullwidth) [data-expand-button][aria-expanded]:before{content:"\uF056";font-weight:900 !important}iam-table:not(.table--fullwidth) .dialog__wrapper:not([slot=overflow]){margin-top:-0.5rem;margin-left:-1rem;z-index:10}iam-table:not(.table--fullwidth) tbody tr:not([data-view=full]) td:not(.td--fixed)+td:not(.td--fixed)+td+td{display:none}iam-table.table--cta:not(.table--fullwidth) tr td:not(:first-child):last-child{display:block !important;position:static;width:100%;min-width:100%;margin-left:0;padding-left:0;text-align:left;min-height:0}iam-table.table--cta:not(.table--fullwidth) tr td:not(:first-child):last-child:after{display:none}}@container (width > 23.4375em){iam-table.table--cta:not(.table--loading):has(tr:first-child td:first-child:last-child){padding-right:calc(var(--wrapper-padding) + 1.5rem)}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>th:nth-last-child(2),iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>td:nth-last-child(2){padding-right:var(--cta-width)}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>*:not(:first-child):last-child{position:absolute;left:calc(100% - var(--cta-width));top:auto;background:rgba(0,0,0,0);width:var(--cta-width);min-height:calc(var(--row-height) - 2px);text-align:right;background:linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem);cursor:default;padding-bottom:0}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>*:not(:first-child):last-child a{white-space:nowrap;padding-right:.2rem;padding-bottom:0}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tbody tr:hover>*:not(:first-child):last-child{background:linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem)}}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta){position:relative}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) thead{position:sticky;top:0;left:0;z-index:1;background-color:var(--row-bg)}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) thead:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--colour-primary)}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody{position:relative}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody tr:first-child td{border-top:0}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody tr:last-child td{border-bottom:0}table .hide-status:after{display:none}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)){position:relative;padding-left:1.5rem}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty))::before{margin-left:-1.5rem !important}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)):after{font-family:"Font Awesome 6 Pro";position:absolute;top:1rem;left:0;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block}table [data-content=high]:after{content:"\uF325";font-weight:normal;color:var(--colour-danger)}table [data-content=medium]:after{content:"\uF7A4";font-weight:normal;color:var(--colour-warning)}table [data-content=low]:after{content:"\uE404";font-weight:normal;color:var(--colour-complete)}table [data-content=unknown]:after{content:"\uE404";font-weight:normal;color:var(--colour-muted)}table :is([data-content=overdue],[data-content=due],[data-content=incomplete]):after{content:"\uF024";color:var(--colour-danger)}table :is([data-content="not started"],[data-content="to do"],[data-content="on track"]):after{content:"\uF024";color:var(--colour-muted)}table :is([data-content="requires approval"],[data-content="approval required"],[data-content="action required"],[data-content=upcoming]):after{content:"\uF024";color:var(--colour-warning)}table :is([data-content=warning]):after{content:"\uF071";color:var(--colour-warning)}table :is([data-content="manually verified"],[data-content=verified],[data-content=completed],[data-content=complete]):after{content:"\uF00C";font-weight:normal;color:var(--colour-complete)}table .alert-status:not([data-content="0"]):not([data-content=""]):not(:empty):after{content:"\uF0F3";color:var(--colour-primary)}iam-table .table--filtered tbody tr:not(.filtered--show){display:none !important}iam-table table:not(.table--filtered):not(.table--ajax) tbody tr:nth-child(15)~tr{display:none}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.75rem !important;left:.25rem !important}iam-table:has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100vw;height:100%;max-height:var(--row-height);max-width:100vw;cursor:pointer;pointer-events:all;top:auto;margin:0;margin-top:0rem}@container (width > 23.4375em){iam-table tr:has([type=checkbox]:checked){height:calc(4.625rem - 2px)}}iam-table tr:has([type=checkbox]:checked){--row-bg: #E0E0E0}@container (width < 23.4375em){@media screen and (prefers-color-scheme: light){iam-table:has([slot=before]) iam-actionbar{background-color:#e6eaec}}iam-table:has([slot=before]) .actionbar__sticky+*{margin-top:0 !important}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important;min-height:2rem}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.25rem !important;left:0 !important}iam-table:has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100%;height:100%;max-height:100%;max-width:100%;margin-top:-2rem}}iam-table.table--fullwidth:not([data-expandable]) th.expand-button-heading{display:none}iam-table.table--fullwidth:not([data-expandable]) td:has([data-expand-button]){display:none}@container (width > 23.4375em){iam-table:not([data-expandable]) th.expand-button-heading{display:none}iam-table:not([data-expandable]) td.td--expand{display:none}iam-table[data-expandable] [data-expand-button]{margin:0}iam-table[data-expandable] [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF078";font-weight:500}iam-table[data-expandable] [data-expand-button][aria-expanded]:before{content:"\uF077"}iam-table[data-expandable] tr:not(:has(p)) [data-expand-button]{display:none}iam-table[data-expandable] tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}}@container (width < 23.4375em){iam-table:not(.table--fullwidth) .td--fixed+td:not(.td--fixed){border-top:none}}@container (width > 23.4375em){iam-table{--width-adjust: 0px}iam-table:has([type=checkbox]){--width-adjust: -1rem}iam-table .th--fixed{min-width:calc(4.5rem + var(--width-adjust));position:absolute;padding:0}iam-table .th--fixed:after{top:auto;left:0;content:"";position:absolute;width:100%;height:calc(var(--row-height) - 2px);background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table .td--fixed{position:absolute;position:absolute;left:auto;top:auto;z-index:3;padding:0.25rem 0 0 0;min-width:4.5rem;height:calc(var(--row-height) - 2px);text-align:left;background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table .td--fixed:has([open]){z-index:4}iam-table tr:has(.td--fixed){height:3.5rem}iam-table tr:is(:hover,:focus) .td--fixed{background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table tr:has([data-expand-button]){height:calc(4.625rem - 2px)}iam-table .th--fixed+th:not(.th--fixed),iam-table .td--fixed+td:not(.td--fixed){padding-left:calc(4.5rem + var(--width-adjust))}iam-table .th--fixed:not(.expand-button-heading)+.th--fixed+th:not(.th--fixed),iam-table .td--fixed:not(.td--expand)+.td--fixed+td:not(.td--fixed){padding-left:calc(7.75rem + var(--width-adjust))}iam-table[data-expandable] .th--fixed+.th--fixed+th:not(.th--fixed),iam-table[data-expandable] .td--fixed+.td--fixed+td:not(.td--fixed){padding-left:calc(7.75rem + var(--width-adjust))}iam-table .th--fixed+.th--fixed,iam-table .td--fixed+.td--fixed{padding-left:calc(3.25rem + var(--width-adjust));min-width:calc(7.75rem + var(--width-adjust))}iam-table .th--fixed:has(+.th--fixed),iam-table .td--fixed:has(+.td--fixed){min-width:calc(3.25rem + var(--width-adjust));z-index:5}iam-table .dialog__wrapper{z-index:10}iam-table .dialog__wrapper:has([open]){z-index:20}iam-table[data-expandable] input:is([type=radio],[type=checkbox])+label:before,iam-table[data-expandable] input:is([type=radio],[type=checkbox])+label:after{left:1.25rem !important}iam-table:not([data-expandable]) th.expand-button-heading+th{padding-left:0 !important}iam-table:not([data-expandable]) td.td--expand+td{padding-left:0 !important}iam-table:not([data-expandable]) th.expand-button-heading+.th--fixed{min-width:calc(4.5rem + var(--width-adjust)) !important}iam-table:not([data-expandable]) td.td--expand+.td--fixed{min-width:calc(4.5rem + var(--width-adjust)) !important}}/*# sourceMappingURL=assets/css/components/table.global.css.map */
|
|
31
|
-
</style>`)}connectedCallback(){const e=new URLSearchParams(window.location.search);this.hasAttribute("data-total")||this.setAttribute("data-total",this.querySelectorAll("table tbody tr").length),this.hasAttribute("data-page")||this.setAttribute("data-page",e.has("page")?e.get("page"):1),this.hasAttribute("data-show")||this.setAttribute("data-show",e.has("show")?e.get("show"):15),this.hasAttribute("data-increment")||this.setAttribute("data-increment",this.getAttribute("data-show"));let n=this.classList.toString();if(n=n.replace("table--cta",""),n=n.replace("table--loading",""),this.shadowRoot.querySelector(".table__wrapper").className+=` ${n}`,this.querySelector(".actionbar__sticky")&&this.shadowRoot.querySelector(".table__wrapper").classList.add("has-actionbar"),this.table=this.querySelector("table"),this.savedTableBody=this.table.querySelector("tbody").cloneNode(!0),this.pagination=this.shadowRoot.querySelector("iam-pagination"),this.pagination.setAttribute("data-total",this.getAttribute("data-total")),this.pagination.setAttribute("data-page",this.getAttribute("data-page")),this.pagination.setAttribute("data-show",this.getAttribute("data-show")),this.pagination.setAttribute("data-increment",this.getAttribute("data-show")),this.hasAttribute("data-page-jump")&&this.pagination.setAttribute("data-page-jump","true"),this.hasAttribute("data-per-page")&&this.pagination.setAttribute("data-per-page","true"),this.hasAttribute("data-item-count")&&this.pagination.setAttribute("data-item-count","true"),this.hasAttribute("data-loading")&&this.pagination.setAttribute("data-loading","true"),this.classList.contains("table--fullwidth")&&this.pagination.setAttribute("data-minimal","true"),this.classList.contains("table--cta")||this.shadowRoot.querySelector(".table--cta").classList.remove("table--cta"),this.form=document.createElement("form"),this.hasAttribute("data-filterby")?this.form=document.querySelector(`#${this.getAttribute("data-filterby")}`):this.table.parentNode.insertBefore(this.form,this.table.nextSibling),this.form.hasAttribute("data-ajax")&&this.table.classList.add("table--ajax"),N(this.table,this.form),this.form.querySelector("[data-pagination]")||this.form.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`),this.form.querySelector("[data-show]")||this.form.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`),V(this.table),K(this.table,this.form,this.pagination,this,this.savedTableBody),Z(this.table,this.form,this.pagination,this),tt(this.shadowRoot.querySelector("[data-export]"),this.table),this.form.getAttribute("data-ajax"))I(this.table,this.form,this.pagination,this);else{let h=function(i=1){return Math.floor(Math.random()*Date.now()*(i+1))};if(this.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`)){const i=this.querySelector("iam-actionbar[data-selectall]")?this.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`);Array.from(this.table.querySelectorAll("thead tr")).forEach((l,s)=>{l.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(this.table.querySelectorAll("tbody tr")).forEach((l,s)=>{let t=`row${h(s)}`;l.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow"><input type="checkbox" name="row" id="${t}"/><label for="${t}"><span class="visually-hidden">Select row</span></label></td>`)}),this.table.addEventListener("change",l=>{if(l&&l.target instanceof HTMLElement&&l.target.closest(".selectrow input")){let s=this.table.querySelectorAll('.selectrow input[type="checkbox"]').length,t=this.table.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;i.setAttribute("data-selected",s==t?"all":t)}}),i.addEventListener("selected",l=>{l.detail.selected=="0"?Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((s,t)=>{s.checked=!1}):l.detail.selected=="all"&&Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((s,t)=>{s.checked=!0})})}let d=-1;Array.from(this.table.querySelectorAll("tbody tr")).forEach((i,l)=>{if(i.querySelector(":scope > td > .dialog__wrapper")){let s=i.querySelector(":scope > td > .dialog__wrapper").parentNode;s.classList.add("td--fixed"),d=Array.from(s.parentNode.children).indexOf(s)}}),d!=-1&&(this.table.querySelector(`thead tr th:nth-child(${d+1})`).classList.add("th--fixed"),Array.from(this.table.querySelectorAll(`tbody tr td:nth-child(${d+1})`)).forEach((i,l)=>{i.classList.add("td--fixed")})),P(this.table,this.form,this.pagination,this),this.hasAttribute("data-no-submit")||C(this.table,this.form,this),$(this.table,this.form)}this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll",h=>{this.table.querySelector("dialog[open]")&&(this.table.querySelector("dialog[open]").close(),this.table.querySelector(".dialog__wrapper > button.active").classList.remove("active"))}),this.pagination.addEventListener("update-show",h=>{let d=h.detail.show;const i=new CustomEvent("update-show",{detail:{show:d}});this.dispatchEvent(i)}),this.pagination.addEventListener("update-page",h=>{let d=h.detail.page;const i=new CustomEvent("update-page",{detail:{page:d}});this.dispatchEvent(i)})}static get observedAttributes(){return["data-total","data-page","data-show"]}attributeChangedCallback(e,n,a){switch(this.pagination=this.shadowRoot.querySelector("iam-pagination"),e){case"data-total":{n!=a&&this.pagination.setAttribute("data-total",a);break}case"data-show":{n!=a&&this.pagination.setAttribute("data-show",a);break}case"data-page":{n!=a&&this.pagination.setAttribute("data-page",a);break}}}}export{at as default};
|
|
31
|
+
</style>`)}connectedCallback(){const e=new URLSearchParams(window.location.search);this.hasAttribute("data-total")||this.setAttribute("data-total",this.querySelectorAll("table tbody tr").length),this.hasAttribute("data-page")||this.setAttribute("data-page",e.has("page")?e.get("page"):1),this.hasAttribute("data-show")||this.setAttribute("data-show",e.has("show")?e.get("show"):15),this.hasAttribute("data-increment")||this.setAttribute("data-increment",this.getAttribute("data-show"));let n=this.classList.toString();if(n=n.replace("table--cta",""),n=n.replace("table--loading",""),this.shadowRoot.querySelector(".table__wrapper").className+=` ${n}`,this.querySelector(".actionbar__sticky")&&this.shadowRoot.querySelector(".table__wrapper").classList.add("has-actionbar"),this.table=this.querySelector("table"),this.savedTableBody=this.table.querySelector("tbody").cloneNode(!0),this.pagination=this.shadowRoot.querySelector("iam-pagination"),this.pagination.setAttribute("data-total",this.getAttribute("data-total")),this.pagination.setAttribute("data-page",this.getAttribute("data-page")),this.pagination.setAttribute("data-show",this.getAttribute("data-show")),this.pagination.setAttribute("data-increment",this.getAttribute("data-show")),this.hasAttribute("data-page-jump")&&this.pagination.setAttribute("data-page-jump","true"),this.hasAttribute("data-per-page")&&this.pagination.setAttribute("data-per-page","true"),this.hasAttribute("data-item-count")&&this.pagination.setAttribute("data-item-count","true"),this.hasAttribute("data-loading")&&this.pagination.setAttribute("data-loading","true"),this.classList.contains("table--fullwidth")&&this.pagination.setAttribute("data-minimal","true"),this.classList.contains("table--cta")||this.shadowRoot.querySelector(".table--cta").classList.remove("table--cta"),this.form=document.createElement("form"),this.hasAttribute("data-filterby")?this.form=document.querySelector(`#${this.getAttribute("data-filterby")}`):this.table.parentNode.insertBefore(this.form,this.table.nextSibling),this.form.hasAttribute("data-ajax")&&this.table.classList.add("table--ajax"),N(this.table,this.form),this.form.querySelector("[data-pagination]")||this.form.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`),this.form.querySelector("[data-show]")||this.form.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`),V(this.table),K(this.table,this.form,this.pagination,this,this.savedTableBody),Z(this.table,this.form,this.pagination,this),tt(this.shadowRoot.querySelector("[data-export]"),this.table),this.form.getAttribute("data-ajax"))I(this.table,this.form,this.pagination,this);else{let h=function(i=1){return Math.floor(Math.random()*Date.now()*(i+1))};if(this.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`)){const i=this.querySelector("iam-actionbar[data-selectall]")?this.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`);Array.from(this.table.querySelectorAll("thead tr")).forEach((l,s)=>{l.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(this.table.querySelectorAll("tbody tr")).forEach((l,s)=>{let t=`row${h(s)}`;l.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${t}" ${l.hasAttribute("data-selected")?'checked="true"':""}/><label for="${t}"><span class="visually-hidden">Select row</span></label></td>`)}),this.table.addEventListener("change",l=>{if(l&&l.target instanceof HTMLElement&&l.target.closest(".selectrow input")){let s=this.table.querySelectorAll('.selectrow input[type="checkbox"]').length,t=this.table.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;i.setAttribute("data-selected",s==t?"all":t)}}),i.addEventListener("selected",l=>{l.detail.selected=="0"?Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((s,t)=>{s.checked=!1}):l.detail.selected=="all"&&Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((s,t)=>{s.checked=!0})})}let d=-1;Array.from(this.table.querySelectorAll("tbody tr")).forEach((i,l)=>{if(i.querySelector(":scope > td > .dialog__wrapper")){let s=i.querySelector(":scope > td > .dialog__wrapper").parentNode;s.classList.add("td--fixed"),d=Array.from(s.parentNode.children).indexOf(s)}}),d!=-1&&(this.table.querySelector(`thead tr th:nth-child(${d+1})`).classList.add("th--fixed"),Array.from(this.table.querySelectorAll(`tbody tr td:nth-child(${d+1})`)).forEach((i,l)=>{i.classList.add("td--fixed")})),P(this.table,this.form,this.pagination,this),this.hasAttribute("data-no-submit")||C(this.table,this.form,this),$(this.table,this.form)}this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll",h=>{this.table.querySelector("dialog[open]")&&(this.table.querySelector("dialog[open]").close(),this.table.querySelector(".dialog__wrapper > button.active").classList.remove("active"))}),this.pagination.addEventListener("update-show",h=>{let d=h.detail.show;const i=new CustomEvent("update-show",{detail:{show:d}});this.dispatchEvent(i)}),this.pagination.addEventListener("update-page",h=>{let d=h.detail.page;const i=new CustomEvent("update-page",{detail:{page:d}});this.dispatchEvent(i)})}static get observedAttributes(){return["data-total","data-page","data-show"]}attributeChangedCallback(e,n,a){switch(this.pagination=this.shadowRoot.querySelector("iam-pagination"),e){case"data-total":{n!=a&&this.pagination.setAttribute("data-total",a);break}case"data-show":{n!=a&&this.pagination.setAttribute("data-show",a);break}case"data-page":{n!=a&&this.pagination.setAttribute("data-page",a);break}}}}export{at as default};
|
|
32
32
|
//# sourceMappingURL=table.component.min.js.map
|