@iamproperty/components 7.6.4--beta7 → 7.6.4--beta8

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.
Files changed (97) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/config.component.css +1 -0
  6. package/assets/css/components/config.component.css.map +1 -0
  7. package/assets/css/components/notification.css +1 -1
  8. package/assets/css/components/notification.css.map +1 -1
  9. package/assets/css/components/table-basic.global.css +1 -1
  10. package/assets/css/components/table-basic.global.css.map +1 -1
  11. package/assets/css/components/table.global.css +1 -1
  12. package/assets/css/components/table.global.css.map +1 -1
  13. package/assets/css/core.min.css +1 -1
  14. package/assets/css/core.min.css.map +1 -1
  15. package/assets/css/style.min.css +1 -1
  16. package/assets/css/style.min.css.map +1 -1
  17. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  18. package/assets/js/components/actionbar/actionbar.component.js +7 -6
  19. package/assets/js/components/actionbar/actionbar.component.min.js +5 -5
  20. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  21. package/assets/js/components/address-lookup/address-lookup.component.js +11 -1
  22. package/assets/js/components/address-lookup/address-lookup.component.min.js +3 -3
  23. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  24. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  25. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  26. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  27. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  28. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  29. package/assets/js/components/card/card.component.min.js +1 -1
  30. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  31. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  32. package/assets/js/components/config/config.component.js +532 -0
  33. package/assets/js/components/config/config.component.min.js +59 -0
  34. package/assets/js/components/config/config.component.min.js.map +1 -0
  35. package/assets/js/components/content/content.component.min.js +1 -1
  36. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  37. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  38. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  39. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  40. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  41. package/assets/js/components/form/form.component.min.js +1 -1
  42. package/assets/js/components/header/header.component.min.js +1 -1
  43. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  44. package/assets/js/components/input/input.component.min.js +1 -1
  45. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  46. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  47. package/assets/js/components/menu/menu.component.min.js +1 -1
  48. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  49. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  50. package/assets/js/components/modal/modal.component.min.js +1 -1
  51. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  52. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  53. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  54. package/assets/js/components/nav/nav.component.min.js +1 -1
  55. package/assets/js/components/notification/notification.component.js +69 -30
  56. package/assets/js/components/notification/notification.component.min.js +5 -5
  57. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  58. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  59. package/assets/js/components/password/password.component.min.js +1 -1
  60. package/assets/js/components/popover/popover.component.min.js +1 -1
  61. package/assets/js/components/rank/rank.component.min.js +1 -1
  62. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  63. package/assets/js/components/rating/rating.component.min.js +1 -1
  64. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  65. package/assets/js/components/search/search.component.min.js +1 -1
  66. package/assets/js/components/slider/slider.component.min.js +1 -1
  67. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  68. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
  69. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  70. package/assets/js/components/table/table.component.min.js +2 -2
  71. package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
  72. package/assets/js/components/table-basic/table-basic.component.min.js +2 -2
  73. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
  74. package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
  75. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  76. package/assets/js/components/tag/tag.component.min.js +1 -1
  77. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  78. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  79. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  80. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  81. package/assets/js/scripts.bundle.js +1 -1
  82. package/assets/js/scripts.bundle.min.js +1 -1
  83. package/assets/sass/components/actionbar.component.scss +13 -4
  84. package/assets/sass/components/actionbar.global.scss +8 -0
  85. package/assets/sass/components/config.component.scss +235 -0
  86. package/assets/sass/components/notification.scss +4 -14
  87. package/assets/sass/components/table-basic.global.scss +4 -4
  88. package/assets/sass/foundations/root.scss +0 -4
  89. package/assets/ts/components/actionbar/actionbar.component.ts +7 -6
  90. package/assets/ts/components/address-lookup/address-lookup.component.ts +16 -1
  91. package/assets/ts/components/config/config.component.ts +699 -0
  92. package/assets/ts/components/notification/notification.component.ts +98 -47
  93. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1 -0
  94. package/dist/components.es.js +28 -28
  95. package/dist/components.umd.js +273 -216
  96. package/package.json +1 -1
  97. package/src/components/Config/Config.vue +23 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const r=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})},l=(t,s,e)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:s}),e.forEach(n=>{t.addEventListener(n,function(o){const a={event:n,element:s,target:o.target};Object.keys(o.detail).forEach(i=>{const d=o.detail[i];a[i]=d}),window.dataLayer.push(a)})}),!0),u=function(t){if(!t.dataset.showAllToggle)return;const e=document.createElement("button");e.innerHTML="Show next steps",e.classList.add("btn","btn-tertiary","show-all-toggle"),t.appendChild(e),e.addEventListener("click",()=>{t.classList.contains("show-all")?(e.innerHTML="Show next steps",t.classList.remove("show-all"),c("hide-future-items",t)):(e.innerHTML="Hide next steps",t.classList.add("show-all"),c("show-future-items",t))})},c=function(t,s){const e=new CustomEvent(t,{});s.dispatchEvent(e)},h=function(t){u(t)};r("iam-milestone-group");class m extends HTMLElement{constructor(){var s;super();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`,o=document.createElement("template");o.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const w=d=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:d})},y=(d,a)=>{var r;const e=(r=a.shadowRoot)===null||r===void 0?void 0:r.querySelector("dialog");e?.showModal(),e?.focus();const c=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:d}});a.dispatchEvent(c),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:d})},i=(d,a)=>{var r;const e=(r=a.shadowRoot)===null||r===void 0?void 0:r.querySelector("dialog");e?.close();const c=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:d}});a.dispatchEvent(c),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:d})},k='<button class="btn btn-compact btn-secondary fa-xmark-large" data-close>Close</button>';w("iam-card");class x extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const g=c=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:c})},y=(c,e,u)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:e}),u.forEach(l=>{c.addEventListener(l,function(i){const n={event:l,element:e,target:i.target};Object.keys(i.detail).forEach(d=>{const t=i.detail[d];n[d]=t}),window.dataLayer.push(n)})}),!0);g("iam-multi-step");class h extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const A=p=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:p})},E=(p,i,s)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),s.forEach(d=>{p.addEventListener(d,function(e){const n={event:d,element:i,target:e.target};Object.keys(e.detail).forEach(r=>{const m=e.detail[r];n[r]=m}),window.dataLayer.push(n)})}),!0);A("iam-multi-step-modal");class _ extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  *//*! js-cookie v3.0.5 | MIT */function g(n){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var d in o)n[d]=o[d]}return n}var y={read:function(n){return n[0]==='"'&&(n=n.slice(1,-1)),n.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(n){return encodeURIComponent(n).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function f(n,e){function o(a,s,i){if(!(typeof document>"u")){i=g({},e,i),typeof i.expires=="number"&&(i.expires=new Date(Date.now()+i.expires*864e5)),i.expires&&(i.expires=i.expires.toUTCString()),a=encodeURIComponent(a).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var m="";for(var r in i)i[r]&&(m+="; "+r,i[r]!==!0&&(m+="="+i[r].split(";")[0]));return document.cookie=a+"="+n.write(s,a)+m}}function d(a){if(!(typeof document>"u"||arguments.length&&!a)){for(var s=document.cookie?document.cookie.split("; "):[],i={},m=0;m<s.length;m++){var r=s[m].split("="),h=r.slice(1).join("=");try{var c=decodeURIComponent(r[0]);if(i[c]=n.read(h,c),a===c)break}catch{}}return a?i[a]:i}}return Object.create({set:o,get:d,remove:function(a,s){o(a,"",g({},s,{expires:-1}))},withAttributes:function(a){return f(this.converter,g({},this.attributes,a))},withConverter:function(a){return f(g({},this.converter,a),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(n)}})}var k=f(y,{path:"/"}),w=function(n,e,o,d){function a(s){return s instanceof o?s:new o(function(i){i(s)})}return new(o||(o=Promise))(function(s,i){function m(c){try{h(d.next(c))}catch(t){i(t)}}function r(c){try{h(d.throw(c))}catch(t){i(t)}}function h(c){c.done?s(c.value):a(c.value).then(m,r)}h((d=d.apply(n,e||[])).next())})};const v=(n,e)=>{Array.from(n.querySelectorAll('label:not([slot="checked"])')).forEach(o=>{const a=o.querySelector("input").value,s=o.textContent;a.toLowerCase().includes(e.value.toLowerCase())||s.toLowerCase().includes(e.value.toLowerCase())?o.removeAttribute("slot"):o.setAttribute("slot","notmatched")})},x=(n,e,o)=>w(void 0,void 0,void 0,function*(){const d=e.value,a=n.getAttribute("data-url"),s=n.querySelector("input");console.log(s);const i=s&&s.hasAttribute("type")?s.getAttribute("type"):"checkbox";let m=s&&s.hasAttribute("name")?s.getAttribute("name"):"tags";n.hasAttribute("data-name")&&(m=n.hasAttribute("data-name"));const r=`${a}?search_query=${encodeURI(d)}`;window.controller||(window.controller=[]),window.controller[r]&&window.controller[r].abort(),window.controller[r]=new AbortController;const{signal:h}=controller[r];try{yield fetch(r,{signal:h,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":k.get("XSRF-TOKEN")})}).then(c=>c.json()).then(c=>{let t="";for(let l=0;l<c.data.length;l++)n.querySelector(`[value="${c.data[l].value}"]`)||(t+=`<label class="tag dropdown__option"><input type="${i}" name="${n.hasAttribute("data-name")?n.getAttribute("data-name"):m}" value="${c.data[l].value}"/>${c.data[l].title}</label>`);return n.insertAdjacentHTML("beforeend",`${t}`),o(n,e),c})}catch(c){console.log(c)}}),A=(n,e)=>{e.addEventListener("keydown",o=>{var d;switch(o.keyCode){case 40:o.stopPropagation(),o.preventDefault(),(d=n.querySelector('label:not([slot="checked"]) input'))===null||d===void 0||d.focus();break}}),n.addEventListener("keydown",o=>{var d,a,s;const i=n.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot="checked"]) > input'),m=n.querySelectorAll('a, button, input, label:not([slot="checked"]) > input');if(o&&o.target instanceof HTMLElement&&o.target.closest('a, button, summary, label:not([slot="checked"]) > input')){const r=document.activeElement,h=Array.from(i).indexOf(r)-1,c=Array.from(i).indexOf(r)+1;switch(o.keyCode){case 27:r.closest("details")?(o.stopPropagation(),o.preventDefault(),r.closest("details").removeAttribute("open"),r.closest("details").querySelector(":scope summary").focus()):o.stopPropagation();break;case 32:case 13:break;case 35:o.stopPropagation(),o.preventDefault(),(d=n.querySelector("details[open]"))===null||d===void 0||d.removeAttribute("open"),Array.from(m)[m.length-1].focus();break;case 36:o.stopPropagation(),o.preventDefault(),(a=n.querySelector("details[open]"))===null||a===void 0||a.removeAttribute("open"),Array.from(m)[0].focus();break;case 38:if(o.stopPropagation(),o.preventDefault(),Array.from(i).indexOf(r)>-1)Array.from(i)[h]!=null?Array.from(i)[h].focus():Array.from(i)[i.length-1].focus();else if(r.closest("details")){const t=r.closest("details").querySelectorAll("a, button, :scope details > summary");subPrevIndex=Array.from(t).indexOf(r)-1,Array.from(t)[subPrevIndex]!=null?Array.from(t)[subPrevIndex].focus():Array.from(t)[t.length-1].focus()}break;case 40:if(o.stopPropagation(),o.preventDefault(),Array.from(i).indexOf(r)>-1)Array.from(i)[c]!=null?Array.from(i)[c].focus():Array.from(i)[0].focus();else if(r.closest("details")){const t=(s=r.closest("details"))===null||s===void 0?void 0:s.querySelectorAll("a, button, :scope details > summary");subNextIndex=Array.from(t).indexOf(r)+1,Array.from(t)[subNextIndex]!=null?Array.from(t)[subNextIndex].focus():Array.from(t)[0].focus()}break}}})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"mutliselect"});class z extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"nav"});class g extends HTMLElement{constructor(){super();const d=this.attachShadow({mode:"open"});document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style class="styles">
@@ -4,6 +4,40 @@ trackComponentRegistered('iam-notification');
4
4
  class iamNotification extends HTMLElement {
5
5
  constructor() {
6
6
  super();
7
+ this.addColour = (component, status) => {
8
+ if (component.hasAttribute('data-type'))
9
+ component.classList.add(`bg-${status}`);
10
+ else
11
+ component.classList.add(`colour-${status}`);
12
+ };
13
+ this.addIcon = (component, status) => {
14
+ switch (status) {
15
+ case 'danger':
16
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');
17
+ break;
18
+ case 'warning':
19
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');
20
+ break;
21
+ case 'success':
22
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');
23
+ break;
24
+ default:
25
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>');
26
+ }
27
+ };
28
+ this.addDismissBtn = (component) => {
29
+ var _a;
30
+ (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part="dismiss-btn">Dismiss</button>`;
31
+ component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {
32
+ closeNotification(component);
33
+ const customEvent = new CustomEvent('dismiss', {
34
+ detail: {
35
+ class: component.classList,
36
+ },
37
+ });
38
+ component.dispatchEvent(customEvent);
39
+ }, false);
40
+ };
7
41
  this.attachShadow({ mode: 'open' });
8
42
  const assetLocation = document.body.hasAttribute('data-assets-location')
9
43
  ? document.body.getAttribute('data-assets-location')
@@ -30,30 +64,14 @@ class iamNotification extends HTMLElement {
30
64
  document.head.insertAdjacentHTML('beforeend', `<style id="notificationHolder">${loadExtraCSS}</style>`);
31
65
  }
32
66
  connectedCallback() {
33
- var _a, _b, _c, _d, _e;
67
+ var _a, _b, _c, _d;
34
68
  // eslint-disable-next-line @typescript-eslint/no-this-alias
35
69
  const wrapper = this;
36
70
  const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';
37
71
  const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;
38
- if (this.hasAttribute('data-type'))
39
- this.classList.add(`bg-${statusBG}`);
40
- else {
41
- this.classList.add(`colour-${statusBG}`);
42
- }
72
+ this.addColour(this, statusBG);
43
73
  if (!this.querySelector('i')) {
44
- switch (statusBG) {
45
- case 'danger':
46
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');
47
- break;
48
- case 'warning':
49
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');
50
- break;
51
- case 'success':
52
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');
53
- break;
54
- default:
55
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>');
56
- }
74
+ this.addIcon(this, statusBG);
57
75
  }
58
76
  const buttons = this.querySelectorAll('a,button');
59
77
  Array.from(buttons).forEach((button) => {
@@ -70,20 +88,41 @@ class iamNotification extends HTMLElement {
70
88
  (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');
71
89
  }
72
90
  if (this.hasAttribute('data-dismiss')) {
73
- (_e = this.shadowRoot.querySelector('.notification__dismiss')) === null || _e === void 0 ? void 0 : _e.innerHTML =
74
- `<button data-dismiss-button part="dismiss-btn">Dismiss</button>`;
75
- this.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {
76
- closeNotification(wrapper);
77
- const customEvent = new CustomEvent('dismiss', {
78
- detail: {
79
- class: this.classList,
80
- },
81
- });
82
- this.dispatchEvent(customEvent);
83
- }, false);
91
+ this.addDismissBtn(this);
84
92
  }
85
93
  setupNotification(this);
86
94
  trackComponent(this, 'iam-notification', ['dismiss']);
87
95
  }
96
+ static get observedAttributes() {
97
+ return ['data-status', 'data-dismiss'];
98
+ }
99
+ attributeChangedCallback(attrName, oldVal, newVal) {
100
+ var _a, _b;
101
+ switch (attrName) {
102
+ case 'data-status': {
103
+ if (oldVal != newVal) {
104
+ this.classList.remove('bg-danger');
105
+ this.classList.remove('bg-warning');
106
+ this.classList.remove('bg-success');
107
+ this.classList.remove('bg-white');
108
+ (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();
109
+ this.addColour(this, newVal);
110
+ this.addIcon(this, newVal);
111
+ }
112
+ break;
113
+ }
114
+ case 'data-dismiss': {
115
+ if (oldVal != newVal) {
116
+ if (this.hasAttribute('data-dismiss')) {
117
+ this.addDismissBtn(this);
118
+ }
119
+ else {
120
+ (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';
121
+ }
122
+ }
123
+ break;
124
+ }
125
+ }
126
+ }
88
127
  }
89
128
  export default iamNotification;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
- */function m(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]")||event.target.matches("[data-dismiss-button]"))&&(t.preventDefault(),f(i))},!1),i.hasAttribute("data-timeout")){const t=i.getAttribute("data-timeout"),o=new u(function(){f(i)},t);i.addEventListener("mouseenter",()=>{o.pause()}),i.addEventListener("mouseleave",()=>{o.resume()})}}function u(i,t){let o,e,n=t;this.pause=function(){window.clearTimeout(o),n-=new Date-e},this.resume=function(){e=new Date,window.clearTimeout(o),o=window.setTimeout(i,n)},this.resume()}const f=function(i){i.classList.add("d-none")},h=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})},b=(i,t,o)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),o.forEach(e=>{i.addEventListener(e,function(n){const a={event:e,element:t,target:n.target};Object.keys(n.detail).forEach(s=>{const c=n.detail[s];a[s]=c}),window.dataLayer.push(a)})}),!0);h("iam-notification");class p 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=`
4
+ */function l(e){if(e.hasAttribute("data-type")&&e.getAttribute("data-type")=="toast"){let i=document.querySelector(".notification__holder");i||(i=document.createElement("div"),i.classList.add("notification__holder"),i.classList.add("container"),document.querySelector("body").appendChild(i)),e.closest(".notification__holder")||i.appendChild(e)}if(e.setAttribute("role","alert"),e.addEventListener("click",function(i){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(i.preventDefault(),d(e))},!1),e.hasAttribute("data-timeout")){const i=e.getAttribute("data-timeout"),t=new f(function(){d(e)},i);e.addEventListener("mouseenter",()=>{t.pause()}),e.addEventListener("mouseleave",()=>{t.resume()})}}function f(e,i){let t,o,a=i;this.pause=function(){window.clearTimeout(t),a-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(e,a)},this.resume()}const d=function(e){e.classList.add("d-none")},m=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})},u=(e,i,t)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),t.forEach(o=>{e.addEventListener(o,function(a){const n={event:o,element:i,target:a.target};Object.keys(a.detail).forEach(s=>{const r=a.detail[s];n[s]=r}),window.dataLayer.push(n)})}),!0);m("iam-notification");class h extends HTMLElement{constructor(){super(),this.addColour=(t,o)=>{t.hasAttribute("data-type")?t.classList.add(`bg-${o}`):t.classList.add(`colour-${o}`)},this.addIcon=(t,o)=>{switch(o){case"danger":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}},this.addDismissBtn=t=>{var o;(o=t.shadowRoot.querySelector(".notification__dismiss"))===null||o===void 0||(o.innerHTML='<button data-dismiss-button part="dismiss-btn">Dismiss</button>'),t.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){d(t);const a=new CustomEvent("dismiss",{detail:{class:t.classList}});t.dispatchEvent(a)},!1)},this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
6
- :host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem !important;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:0.9375rem;border:0.125rem solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:0.125rem solid rgba(0,0,0,0)}:host(.colour-warning),.iam-notification.colour-warning{background:var(--colour-notification-warning-bg)}:host(.colour-danger),.iam-notification.colour-danger{background:var(--colour-notification-danger-bg)}:host(.colour-success),.iam-notification.colour-success{background:var(--colour-notification-success-bg)}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);display:inline-block;position:relative;color:inherit}.notification .notification__dismiss button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}@container (width > 23.4375em){.notification .notification__dismiss{padding-left:2rem;display:flex;align-items:center}}/*# sourceMappingURL=assets/css/components/notification.css.map */
6
+ :host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem !important;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:0.9375rem;border:0.125rem solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:0.125rem solid rgba(0,0,0,0)}:host([class*=colour-]){--bg-colour: color-mix(in oklab, var(--colour), #ffffff 80%) !important;background:light-dark(var(--bg-colour), var(--colour-canvas-2))}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);display:inline-block;position:relative;color:inherit}.notification .notification__dismiss button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}@container (width > 23.4375em){.notification .notification__dismiss{padding-left:2rem;display:flex;align-items:center}}/*# sourceMappingURL=assets/css/components/notification.css.map */
7
7
 
8
8
  ${this.hasAttribute("data-css")?`${this.getAttribute("data-css")}`:""}
9
9
  </style>
@@ -14,6 +14,6 @@
14
14
  <div class="notification__dismiss"></div>
15
15
  </div>
16
16
 
17
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0)),document.getElementById("notificationHolder")||document.head.insertAdjacentHTML("beforeend",`<style id="notificationHolder">.container.notification__holder{position:fixed;top:var(--nav-height);left:50%;transform:translate(-50%, 0);bottom:0;z-index:999999;pointer-events:none;padding-top:1rem;padding-bottom:1rem;display:flex;margin:0;width:100%;flex-wrap:wrap;align-content:flex-start;flex-direction:column;align-content:flex-end;align-items:flex-end}.container.notification__holder :is(.iam-notification,iam-notification){pointer-events:all;margin:.5rem 0 .5rem 0}.container.notification__holder.bottom{flex-direction:column-reverse}.container.notification__holder.left{align-content:flex-start;align-items:flex-start}.container.notification__holder.middle{align-content:space-around;align-items:center}/*# sourceMappingURL=assets/css/components/notification.global.css.map */
18
- </style>`)}connectedCallback(){var t,o,e,n,a;const s=this,c=this.hasAttribute("data-type")?"white":"info",d=this.hasAttribute("data-status")?this.getAttribute("data-status"):c;if(this.hasAttribute("data-type")?this.classList.add(`bg-${d}`):this.classList.add(`colour-${d}`),!this.querySelector("i"))switch(d){case"danger":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}const l=this.querySelectorAll("a,button");Array.from(l).forEach(r=>{r.setAttribute("slot","btns"),r.classList.add("link")}),(l.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable"),l.length?(n=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector(".notification__btns"))===null||n===void 0||n.classList.remove("empty"):(o=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".notification__btns"))===null||o===void 0||o.classList.add("empty"),this.hasAttribute("data-dismiss")&&((a=this.shadowRoot.querySelector(".notification__dismiss"))===null||a===void 0||(a.innerHTML='<button data-dismiss-button part="dismiss-btn">Dismiss</button>'),this.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){f(s);const r=new CustomEvent("dismiss",{detail:{class:this.classList}});this.dispatchEvent(r)},!1)),m(this),b(this,"iam-notification",["dismiss"])}}export{p as default};
17
+ `,this.shadowRoot.appendChild(i.content.cloneNode(!0)),document.getElementById("notificationHolder")||document.head.insertAdjacentHTML("beforeend",`<style id="notificationHolder">.container.notification__holder{position:fixed;top:var(--nav-height);left:50%;transform:translate(-50%, 0);bottom:0;z-index:999999;pointer-events:none;padding-top:1rem;padding-bottom:1rem;display:flex;margin:0;width:100%;flex-wrap:wrap;align-content:flex-start;flex-direction:column;align-content:flex-end;align-items:flex-end}.container.notification__holder :is(.iam-notification,iam-notification){pointer-events:all;margin:.5rem 0 .5rem 0}.container.notification__holder.bottom{flex-direction:column-reverse}.container.notification__holder.left{align-content:flex-start;align-items:flex-start}.container.notification__holder.middle{align-content:space-around;align-items:center}/*# sourceMappingURL=assets/css/components/notification.global.css.map */
18
+ </style>`)}connectedCallback(){var i,t,o,a;const n=this.hasAttribute("data-type")?"white":"info",s=this.hasAttribute("data-status")?this.getAttribute("data-status"):n;this.addColour(this,s),this.querySelector("i")||this.addIcon(this,s);const r=this.querySelectorAll("a,button");Array.from(r).forEach(c=>{c.setAttribute("slot","btns"),c.classList.add("link")}),(r.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable"),r.length?(a=(o=this.shadowRoot)===null||o===void 0?void 0:o.querySelector(".notification__btns"))===null||a===void 0||a.classList.remove("empty"):(t=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".notification__btns"))===null||t===void 0||t.classList.add("empty"),this.hasAttribute("data-dismiss")&&this.addDismissBtn(this),l(this),u(this,"iam-notification",["dismiss"])}static get observedAttributes(){return["data-status","data-dismiss"]}attributeChangedCallback(i,t,o){var a,n;switch(i){case"data-status":{t!=o&&(this.classList.remove("bg-danger"),this.classList.remove("bg-warning"),this.classList.remove("bg-success"),this.classList.remove("bg-white"),(a=this.querySelector("i"))===null||a===void 0||a.remove(),this.addColour(this,o),this.addIcon(this,o));break}case"data-dismiss":{t!=o&&(this.hasAttribute("data-dismiss")?this.addDismissBtn(this):(n=this.shadowRoot.querySelector(".notification__dismiss"))===null||n===void 0||(n.innerHTML=""));break}}}}export{h as default};
19
19
  //# sourceMappingURL=notification.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function 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 &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let 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","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import setupNotification, { closeNotification } from '../../modules/notification.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-notification');\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\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><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\n <div class=\"notification__dismiss\"></div>\n </div>\n \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 var _a, _b, _c, _d, _e;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n if (this.hasAttribute('data-type'))\n this.classList.add(`bg-${statusBG}`);\n else {\n this.classList.add(`colour-${statusBG}`);\n }\n if (!this.querySelector('i')) {\n switch (statusBG) {\n case 'danger':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\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 }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n (_e = this.shadowRoot.querySelector('.notification__dismiss')) === null || _e === void 0 ? void 0 : _e.innerHTML =\n `<button data-dismiss-button part=\"dismiss-btn\">Dismiss</button>`;\n this.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(wrapper);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: this.classList,\n },\n });\n this.dispatchEvent(customEvent);\n }, false);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","template","_a","_b","_c","_d","_e","wrapper","defaultStatusBG","statusBG","buttons","button","customEvent"],"mappings":"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"}
1
+ {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function 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 &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let 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","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import setupNotification, { closeNotification } from '../../modules/notification.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-notification');\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.addColour = (component, status) => {\n if (component.hasAttribute('data-type'))\n component.classList.add(`bg-${status}`);\n else\n component.classList.add(`colour-${status}`);\n };\n this.addIcon = (component, status) => {\n switch (status) {\n case 'danger':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n };\n this.addDismissBtn = (component) => {\n var _a;\n (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part=\"dismiss-btn\">Dismiss</button>`;\n component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(component);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: component.classList,\n },\n });\n component.dispatchEvent(customEvent);\n }, false);\n };\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\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><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\n <div class=\"notification__dismiss\"></div>\n </div>\n \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 var _a, _b, _c, _d;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n this.addColour(this, statusBG);\n if (!this.querySelector('i')) {\n this.addIcon(this, statusBG);\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\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 }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n static get observedAttributes() {\n return ['data-status', 'data-dismiss'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n var _a, _b;\n switch (attrName) {\n case 'data-status': {\n if (oldVal != newVal) {\n this.classList.remove('bg-danger');\n this.classList.remove('bg-warning');\n this.classList.remove('bg-success');\n this.classList.remove('bg-white');\n (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n this.addColour(this, newVal);\n this.addIcon(this, newVal);\n }\n break;\n }\n case 'data-dismiss': {\n if (oldVal != newVal) {\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n else {\n (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';\n }\n }\n break;\n }\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","status","_a","customEvent","template","_b","_c","_d","defaultStatusBG","statusBG","buttons","button","attrName","oldVal","newVal"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const u=c=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:c})};function m(c){var r=new TextEncoder("utf-8").encode(c);return crypto.subtle.digest("SHA-1",r).then(function(e){for(var i=[],n=new DataView(e),o=0;o<n.byteLength;o+=4){var s=n.getUint32(o),a=s.toString(16),t="00000000",d=(t+a).slice(-t.length);i.push(d)}return i.join("")})}const b=(c,r)=>{m(c).then(function(e){const i=new XMLHttpRequest;i.addEventListener("load",function(){const n=this.responseText.split(`
5
5
  `),o=e.slice(5).toUpperCase();var s=!1;for(let t in n)if(n[t].substring(0,35)==o){s=!0;break}const a=new CustomEvent("hibpCheck",{detail:s});r.dispatchEvent(a)}),i.open("GET","https://api.pwnedpasswords.com/range/"+e.substr(0,5)),i.send()})};u("iam-password");class x extends HTMLElement{constructor(){var r;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const a=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})};a("iam-popover");class s extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const i=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})};i("iam-rank");class a extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const C=`@import "${document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets"}/css/components/rank.component.css";`,l=document.createElement("template");l.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const m=a=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:a})};m("iam-rank");class g extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=`@import "${document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets"}/css/components/rank.component.css";`,o=document.createElement("template");o.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const p=n=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:n})};p("iam-rating");class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const h=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},p=(o,a,r)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:a}),r.forEach(t=>{o.addEventListener(t,function(e){const d={event:t,element:a,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
5
  <slot name="head"></slot>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  *//*! js-cookie v3.0.5 | MIT */function L(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var u in a)t[u]=a[u]}return t}var T={read:function(t){return t[0]==='"'&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function E(t,e){function a(r,f,o){if(!(typeof document>"u")){o=L({},e,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var d="";for(var i in o)o[i]&&(d+="; "+i,o[i]!==!0&&(d+="="+o[i].split(";")[0]));return document.cookie=r+"="+t.write(f,r)+d}}function u(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var f=document.cookie?document.cookie.split("; "):[],o={},d=0;d<f.length;d++){var i=f[d].split("="),n=i.slice(1).join("=");try{var s=decodeURIComponent(i[0]);if(o[s]=t.read(n,s),r===s)break}catch{}}return r?o[r]:o}}return Object.create({set:a,get:u,remove:function(r,f){a(r,"",L({},f,{expires:-1}))},withAttributes:function(r){return E(this.converter,L({},this.attributes,r))},withConverter:function(r){return E(L({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var M=E(T,{path:"/"});const j=t=>t.replace(/ /g,"_"),U=function(t){return t=t.toLowerCase(),t=j(t),t=t.replace(/\W/g,""),t},g=(t,e,a)=>e.split(/[\.\[\]\'\"]/).filter(u=>u).reduce((u,r)=>u?u[r]:a,t),k=t=>Array.isArray(t)||t!==null&&["function","object"].includes(typeof t);function $(t,e,a,u=!1){let r=-1;a.closest(".datalist__wrapper")&&a.closest(".datalist__wrapper"),e.setAttribute("data-list",e.getAttribute("list")),e.setAttribute("list",""),e.hasAttribute("placeholder")&&e.setAttribute("data-placeholder",e.getAttribute("placeholder")),e.hasAttribute("placeholder")&&e.setAttribute("data-original-placeholder",e.getAttribute("placeholder")),e.addEventListener("focus",function(){e.value!=""&&(e.setAttribute("placeholder",e.value),e.setAttribute("data-value",e.value)),e.value=""}),e.addEventListener("keyup",function(){e.value!=""&&e.setAttribute("data-value",e.value)}),e.addEventListener("blur",function(){e.hasAttribute("data-value")&&(e.value=e.getAttribute("data-value")),e.hasAttribute("data-placeholder")&&e.setAttribute("placeholder",e.getAttribute("data-placeholder"))});for(const n of a.options)n.innerHTML==""&&(n.innerHTML=n.value);a.addEventListener("click",function(n){if(n&&n.target instanceof HTMLElement&&n.target.closest("option")){const s=n.target.closest("option");e.value=s.value,typeof window.triggerDynamicEvent=="function"&&window.triggerDynamicEvent(e);for(const c of a.options)c.classList.remove("active");s.classList.add("active")}}),e.addEventListener("input",function(){if(e.removeAttribute("data-value"),r=-1,t.tagName!="IAM-ADDRESS-LOOKUP"){const n=e.value.toUpperCase();for(const s of a.options)s.value.toUpperCase().indexOf(n)>-1?(s.style.display="block",s.classList.remove("hide")):(s.style.display="none",s.classList.add("hide"))}}),t.addEventListener("keydown",function(n){n.keyCode==40?(r++,f(a.options)):n.keyCode==38?(r--,f(a.options)):n.keyCode==13&&(n.preventDefault(),r>-1&&a.options&&a.options[r].click())});function f(n){if(!n)return!1;o(n),r>=n.length&&(r=0),r<0&&(r=n.length-1),n[r].classList.add("active")}function o(n){if(!n)return!1;for(let s=0;s<n.length;s++)n[s].classList.remove("active")}e.closest("label").insertAdjacentHTML("beforeend",'<button class="empty btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>');const d=()=>{e.removeAttribute("placeholder"),e.hasAttribute("data-original-placeholder")&&e.setAttribute("placeholder",e.getAttribute("data-original-placeholder")),e.removeAttribute("data-value"),e.value="";for(const s of a.options)s.classList.remove("active"),s.removeAttribute("style");const n=new CustomEvent("close-button-pressed");t.dispatchEvent(n)};(t.querySelector(".empty")?t.querySelector(".empty"):t.shadowRoot.querySelector(".empty")).addEventListener("click",function(n){d()}),t.addEventListener("empty",function(n){d()})}var S=function(t,e,a,u){function r(f){return f instanceof a?f:new a(function(o){o(f)})}return new(a||(a=Promise))(function(f,o){function d(s){try{n(u.next(s))}catch(c){o(c)}}function i(s){try{n(u.throw(s))}catch(c){o(c)}}function n(s){s.done?f(s.value):r(s.value).then(d,i)}n((u=u.apply(t,e||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Search"});class H extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Slider"});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=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.6.4--beta8
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */class u extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
5
5
  <style>