@iamproperty/components 7.8.2--beta5 → 7.8.2--beta6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/assets/css/core.min.css +1 -1
  2. package/assets/css/core.min.css.map +1 -1
  3. package/assets/css/style.min.css +1 -1
  4. package/assets/css/style.min.css.map +1 -1
  5. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  6. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  7. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  8. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  9. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  10. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  11. package/assets/js/components/banner/banner.component.min.js +1 -1
  12. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  13. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  14. package/assets/js/components/bone/bone.component.min.js +1 -1
  15. package/assets/js/components/button/button.component.min.js +1 -1
  16. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  17. package/assets/js/components/card/card.component.min.js +1 -1
  18. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  19. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  20. package/assets/js/components/config/config.component.min.js +2 -2
  21. package/assets/js/components/config/config.component.min.js.map +1 -1
  22. package/assets/js/components/content/content.component.min.js +1 -1
  23. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  24. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  25. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  26. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  27. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  28. package/assets/js/components/form/form.component.min.js +1 -1
  29. package/assets/js/components/header/header.component.min.js +1 -1
  30. package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
  31. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  32. package/assets/js/components/input/input.component.min.js +1 -1
  33. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  34. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  35. package/assets/js/components/menu/menu.component.min.js +1 -1
  36. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  37. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  38. package/assets/js/components/modal/modal.component.min.js +1 -1
  39. package/assets/js/components/multi-step/multi-step.component.min.js +2 -2
  40. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  41. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +2 -2
  42. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  43. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  44. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  45. package/assets/js/components/nav/nav.component.js +1 -1
  46. package/assets/js/components/nav/nav.component.min.js +2 -2
  47. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  48. package/assets/js/components/notification/notification.component.min.js +1 -1
  49. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  50. package/assets/js/components/password/password.component.min.js +1 -1
  51. package/assets/js/components/popover/popover.component.min.js +1 -1
  52. package/assets/js/components/rank/rank.component.min.js +1 -1
  53. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  54. package/assets/js/components/rating/rating.component.min.js +1 -1
  55. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  56. package/assets/js/components/search/search.component.min.js +2 -2
  57. package/assets/js/components/search/search.component.min.js.map +1 -1
  58. package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
  59. package/assets/js/components/slider/slider.component.min.js +1 -1
  60. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  61. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +3 -3
  62. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  63. package/assets/js/components/std-nav/std-nav.component.min.js +2 -2
  64. package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
  65. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +1 -1
  66. package/assets/js/components/table/table.component.min.js +1 -1
  67. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  68. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  69. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  70. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  71. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  72. package/assets/js/components/tag/tag.component.min.js +2 -2
  73. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  74. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  75. package/assets/js/components/video/video.component.min.js +1 -1
  76. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  77. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  78. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  79. package/assets/js/scripts.bundle.js +1 -1
  80. package/assets/js/scripts.bundle.min.js +1 -1
  81. package/assets/sass/foundations/colours.scss +15 -0
  82. package/assets/ts/components/nav/nav.component.ts +1 -1
  83. package/dist/components.es.js +2662 -1246
  84. package/dist/components.umd.js +363 -363
  85. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"inline edit"});class v extends HTMLElement{constructor(){super();const t=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 class="styles">
@@ -18,5 +18,5 @@
18
18
  <span class="btn btn-action border-0 bg-transparent prevent-invert d-none" id="saved"><i class="fa-regular fa-check me-1"></i> Saved</span>
19
19
  <span class="btn btn-action border-0 bg-transparent prevent-invert d-none" id="notsaved"><i class="fa-regular fa-circle-info me-1"></i> Not Saved</span>
20
20
  </div>
21
- `,t.appendChild(a.content.cloneNode(!0))}connectedCallback(){const t=this,a=this.shadowRoot.querySelector("#save"),c=this.shadowRoot.querySelector("#cancel"),e=this.querySelector("input, textarea, select"),s=this.querySelector(".preview"),o=this.shadowRoot.querySelector("#saving"),d=this.shadowRoot.querySelector("#saved"),l=this.shadowRoot.querySelector("#notsaved");let i=e?e.value:"";c.addEventListener("click",()=>{e&&(e.value=i,e.blur()),t.blur(),t.classList.remove("was-validated"),l.classList.add("d-none");const n=new CustomEvent("inline-edit-cancel",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)}),a.addEventListener("click",()=>{if(t.querySelector(":invalid"))return t.classList.add("was-validated"),!1;i=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.blur(),o.classList.remove("d-none"),e&&(e.disabled=!0,e.blur(),s&&(s.innerHTML=e.value))}),e&&(e.tagName==="INPUT"&&e.addEventListener("keydown",n=>{switch(n.key){case"Enter":n.stopPropagation(),n.preventDefault(),a.click();break}}),e.tagName==="SELECT"&&e.addEventListener("change",()=>{i=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.setAttribute("data-saving","true"),e.disabled=!0,e.blur()}),e.tagName!="SELECT"&&e.addEventListener("focus",()=>{e.select()}),e.addEventListener("blur",()=>{if(e.value!=i)if(t.hasAttribute("data-autosave")){i=e.value;const n=new CustomEvent("inline-edit-autosave",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),o.classList.remove("d-none"),s&&(s.innerHTML=e.value)}else t.querySelector(".inline-feedback")||l.classList.remove("d-none")})),t.addEventListener("inline-edit-saved",()=>{setTimeout(()=>{o.classList.add("d-none"),d.classList.remove("d-none");const n=new CustomEvent("inline-edit-confirmed",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)},100),setTimeout(()=>{e.disabled=!1,t.removeAttribute("data-saving"),o.classList.add("d-none"),d.classList.add("d-none"),l.classList.add("d-none")},1e3)}),t.addEventListener("change",n=>{if(n&&n.target instanceof HTMLElement&&n.target.closest('input[type="checkbox"]')){let r="";Array.from(t.querySelectorAll('label input[type="checkbox"]:checked')).forEach((p,b)=>{b!=0&&(r+=", "),r+=p.value});const m=new CustomEvent("inline-edit-save",{detail:{name:n.target.closest('input[type="checkbox"]').getAttribute("name"),value:r}});t.dispatchEvent(m)}})}}export{v as default};
21
+ `,t.appendChild(a.content.cloneNode(!0))}connectedCallback(){const t=this,a=this.shadowRoot.querySelector("#save"),c=this.shadowRoot.querySelector("#cancel"),e=this.querySelector("input, textarea, select"),s=this.querySelector(".preview"),o=this.shadowRoot.querySelector("#saving"),d=this.shadowRoot.querySelector("#saved"),l=this.shadowRoot.querySelector("#notsaved");let i=e?e.value:"";c.addEventListener("click",()=>{e&&(e.value=i,e.blur()),t.blur(),t.classList.remove("was-validated"),l.classList.add("d-none");const n=new CustomEvent("inline-edit-cancel",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)}),a.addEventListener("click",()=>{if(t.querySelector(":invalid"))return t.classList.add("was-validated"),!1;i=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.blur(),o.classList.remove("d-none"),e&&(e.disabled=!0,e.blur(),s&&(s.innerHTML=e.value))}),e&&(e.tagName==="INPUT"&&e.addEventListener("keydown",n=>{n.key==="Enter"&&(n.stopPropagation(),n.preventDefault(),a.click())}),e.tagName==="SELECT"&&e.addEventListener("change",()=>{i=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.setAttribute("data-saving","true"),e.disabled=!0,e.blur()}),e.tagName!="SELECT"&&e.addEventListener("focus",()=>{e.select()}),e.addEventListener("blur",()=>{if(e.value!=i)if(t.hasAttribute("data-autosave")){i=e.value;const n=new CustomEvent("inline-edit-autosave",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),o.classList.remove("d-none"),s&&(s.innerHTML=e.value)}else t.querySelector(".inline-feedback")||l.classList.remove("d-none")})),t.addEventListener("inline-edit-saved",()=>{setTimeout(()=>{o.classList.add("d-none"),d.classList.remove("d-none");const n=new CustomEvent("inline-edit-confirmed",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)},100),setTimeout(()=>{e.disabled=!1,t.removeAttribute("data-saving"),o.classList.add("d-none"),d.classList.add("d-none"),l.classList.add("d-none")},1e3)}),t.addEventListener("change",n=>{if(n&&n.target instanceof HTMLElement&&n.target.closest('input[type="checkbox"]')){let r="";Array.from(t.querySelectorAll('label input[type="checkbox"]:checked')).forEach((p,b)=>{b!=0&&(r+=", "),r+=p.value});const m=new CustomEvent("inline-edit-save",{detail:{name:n.target.closest('input[type="checkbox"]').getAttribute("name"),value:r}});t.dispatchEvent(m)}})}}export{v as default};
22
22
  //# sourceMappingURL=inline-edit.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-edit.component.min.js","sources":["inline-edit.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'inline edit',\n});\nclass iamInlineEdit extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/inline-edit.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n \n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n \n <slot></slot>\n <div class=\"btns\" part=\"btns\">\n <button class=\"btn btn-action\" id=\"save\" part=\"save-btn\"><i class=\"fa-regular fa-save m-0\"></i> Save</button><button class=\"btn btn-action\" id=\"cancel\" part=\"cancel-btn\">Cancel</button>\n </div>\n <div class=\"status pe-none\" part=\"status\">\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saving\"><i class=\"fa-regular fa-spinner fa-spin me-1\"></i> Saving...</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saved\"><i class=\"fa-regular fa-check me-1\"></i> Saved</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"notsaved\"><i class=\"fa-regular fa-circle-info me-1\"></i> Not Saved</span>\n </div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const inlineEdit = this;\n const saveButton = this.shadowRoot.querySelector('#save');\n const cancelButton = this.shadowRoot.querySelector('#cancel');\n const input = this.querySelector('input, textarea, select');\n const preview = this.querySelector('.preview');\n const statusSaving = this.shadowRoot.querySelector('#saving');\n const statusSaved = this.shadowRoot.querySelector('#saved');\n const statusNotSaved = this.shadowRoot.querySelector('#notsaved');\n // Save the original value for later\n let originalValue = input ? input.value : '';\n // cancel\n cancelButton.addEventListener('click', () => {\n if (input) {\n input.value = originalValue;\n input.blur();\n }\n inlineEdit.blur();\n inlineEdit.classList.remove('was-validated');\n statusNotSaved.classList.add('d-none');\n const cancelEvent = new CustomEvent('inline-edit-cancel', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(cancelEvent);\n });\n // Save\n saveButton.addEventListener('click', () => {\n if (inlineEdit.querySelector(':invalid')) {\n inlineEdit.classList.add('was-validated');\n return false;\n }\n originalValue = input.value;\n // dispatch save event\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.blur();\n statusSaving.classList.remove('d-none');\n if (input) {\n input.disabled = true;\n input.blur();\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n });\n if (input) {\n // Save\n if (input.tagName === 'INPUT') {\n input.addEventListener('keydown', (event) => {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n saveButton.click();\n break;\n }\n });\n }\n // enter key saves\n if (input.tagName === 'SELECT') {\n input.addEventListener('change', () => {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.setAttribute('data-saving', 'true');\n input.disabled = true;\n input.blur();\n });\n }\n if (input.tagName != 'SELECT') {\n input.addEventListener('focus', () => {\n input.select();\n });\n }\n //blur it should autosave\n input.addEventListener('blur', () => {\n if (input.value != originalValue) {\n if (inlineEdit.hasAttribute('data-autosave')) {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-autosave', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n statusSaving.classList.remove('d-none');\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n else if (!inlineEdit.querySelector('.inline-feedback')) {\n statusNotSaved.classList.remove('d-none');\n }\n }\n });\n }\n // Saved\n inlineEdit.addEventListener('inline-edit-saved', () => {\n setTimeout(() => {\n statusSaving.classList.add('d-none');\n statusSaved.classList.remove('d-none');\n const confirmEvent = new CustomEvent('inline-edit-confirmed', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(confirmEvent);\n }, 100);\n // Reset to normal\n setTimeout(() => {\n input.disabled = false;\n inlineEdit.removeAttribute('data-saving');\n statusSaving.classList.add('d-none');\n statusSaved.classList.add('d-none');\n statusNotSaved.classList.add('d-none');\n }, 1000);\n });\n // checkboxes\n inlineEdit.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n let saveValue = '';\n Array.from(inlineEdit.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox, index) => {\n if (index != 0)\n saveValue += ', ';\n saveValue += checkbox.value;\n });\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: {\n name: event.target.closest('input[type=\"checkbox\"]').getAttribute('name'),\n value: saveValue,\n },\n });\n inlineEdit.dispatchEvent(saveEvent);\n }\n });\n }\n}\nexport default iamInlineEdit;\n"],"names":["iamInlineEdit","shadowRoot","template","inlineEdit","saveButton","cancelButton","input","preview","statusSaving","statusSaved","statusNotSaved","originalValue","cancelEvent","saveEvent","event","confirmEvent","saveValue","checkbox","index"],"mappings":"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"}
1
+ {"version":3,"file":"inline-edit.component.min.js","sources":["inline-edit.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'inline edit',\n});\nclass iamInlineEdit extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/inline-edit.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n \n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n \n <slot></slot>\n <div class=\"btns\" part=\"btns\">\n <button class=\"btn btn-action\" id=\"save\" part=\"save-btn\"><i class=\"fa-regular fa-save m-0\"></i> Save</button><button class=\"btn btn-action\" id=\"cancel\" part=\"cancel-btn\">Cancel</button>\n </div>\n <div class=\"status pe-none\" part=\"status\">\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saving\"><i class=\"fa-regular fa-spinner fa-spin me-1\"></i> Saving...</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saved\"><i class=\"fa-regular fa-check me-1\"></i> Saved</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"notsaved\"><i class=\"fa-regular fa-circle-info me-1\"></i> Not Saved</span>\n </div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const inlineEdit = this;\n const saveButton = this.shadowRoot.querySelector('#save');\n const cancelButton = this.shadowRoot.querySelector('#cancel');\n const input = this.querySelector('input, textarea, select');\n const preview = this.querySelector('.preview');\n const statusSaving = this.shadowRoot.querySelector('#saving');\n const statusSaved = this.shadowRoot.querySelector('#saved');\n const statusNotSaved = this.shadowRoot.querySelector('#notsaved');\n // Save the original value for later\n let originalValue = input ? input.value : '';\n // cancel\n cancelButton.addEventListener('click', () => {\n if (input) {\n input.value = originalValue;\n input.blur();\n }\n inlineEdit.blur();\n inlineEdit.classList.remove('was-validated');\n statusNotSaved.classList.add('d-none');\n const cancelEvent = new CustomEvent('inline-edit-cancel', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(cancelEvent);\n });\n // Save\n saveButton.addEventListener('click', () => {\n if (inlineEdit.querySelector(':invalid')) {\n inlineEdit.classList.add('was-validated');\n return false;\n }\n originalValue = input.value;\n // dispatch save event\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.blur();\n statusSaving.classList.remove('d-none');\n if (input) {\n input.disabled = true;\n input.blur();\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n });\n if (input) {\n // Save\n if (input.tagName === 'INPUT') {\n input.addEventListener('keydown', (event) => {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n saveButton.click();\n break;\n }\n });\n }\n // enter key saves\n if (input.tagName === 'SELECT') {\n input.addEventListener('change', () => {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.setAttribute('data-saving', 'true');\n input.disabled = true;\n input.blur();\n });\n }\n if (input.tagName != 'SELECT') {\n input.addEventListener('focus', () => {\n input.select();\n });\n }\n //blur it should autosave\n input.addEventListener('blur', () => {\n if (input.value != originalValue) {\n if (inlineEdit.hasAttribute('data-autosave')) {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-autosave', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n statusSaving.classList.remove('d-none');\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n else if (!inlineEdit.querySelector('.inline-feedback')) {\n statusNotSaved.classList.remove('d-none');\n }\n }\n });\n }\n // Saved\n inlineEdit.addEventListener('inline-edit-saved', () => {\n setTimeout(() => {\n statusSaving.classList.add('d-none');\n statusSaved.classList.remove('d-none');\n const confirmEvent = new CustomEvent('inline-edit-confirmed', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(confirmEvent);\n }, 100);\n // Reset to normal\n setTimeout(() => {\n input.disabled = false;\n inlineEdit.removeAttribute('data-saving');\n statusSaving.classList.add('d-none');\n statusSaved.classList.add('d-none');\n statusNotSaved.classList.add('d-none');\n }, 1000);\n });\n // checkboxes\n inlineEdit.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n let saveValue = '';\n Array.from(inlineEdit.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox, index) => {\n if (index != 0)\n saveValue += ', ';\n saveValue += checkbox.value;\n });\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: {\n name: event.target.closest('input[type=\"checkbox\"]').getAttribute('name'),\n value: saveValue,\n },\n });\n inlineEdit.dispatchEvent(saveEvent);\n }\n });\n }\n}\nexport default iamInlineEdit;\n"],"names":["iamInlineEdit","shadowRoot","template","inlineEdit","saveButton","cancelButton","input","preview","statusSaving","statusSaved","statusNotSaved","originalValue","cancelEvent","saveEvent","event","confirmEvent","saveValue","checkbox","index"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const q=k=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:k})};q("iam-iamPrefix");class _ extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const s=document.createElement("template");s.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const o=s=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:s})};o("iam-iamPrefix");class i 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.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Marketing"});class e 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.8.2--beta5
2
+ * iamKey v7.8.2--beta6
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 n=document.createElement("template");n.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const l=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})},m=(t,n,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:n}),a.forEach(e=>{t.addEventListener(e,function(s){const d={event:e,element:n,target:s.target};Object.keys(s.detail).forEach(o=>{const i=s.detail[o];d[o]=i}),window.dataLayer.push(d)})}),!0),p=function(t){const n=t.dataset.status;if(!n)return;const a=t.shadowRoot.querySelector(".milestone-wrap"),e=document.createElement("span");e.setAttribute("part","status"),e.classList.add("milestone-status"),e.innerHTML=`${n} Step`,n==="Current"&&t.classList.add("current"),a.insertAdjacentElement("afterbegin",e)},u=function(t){const n=t.shadowRoot.querySelector(".task-wrap"),a=t.dataset.items?JSON.parse(t.dataset.items):[];a.length&&(a.forEach(e=>{const s=document.createElement("details"),d=document.createElement("summary"),o=document.createElement("div"),i=document.createElement("p");o.classList.add("task-details"),d.innerHTML=e.name,e.date_completed&&d.classList.add("complete"),s.appendChild(d),e.description&&(i.innerHTML=e.description,o.appendChild(i)),e.actions.length&&o.appendChild(h(e.actions,d)),s.appendChild(o),n.insertAdjacentElement("beforeend",s),s.addEventListener("click",()=>{s?.hasAttribute("open")?r("milestone-item-closed",e.name,t):r("milestone-item-opened",e.name,t)})}),t.appendChild(n))},r=function(t,n,a){const e=new CustomEvent(t,{detail:{title:n}});a.dispatchEvent(e)},h=function(t,n){const a=document.createElement("ul"),e=t.length,d=t.filter(o=>o.date_completed).length||0;if(!(e<1))return n.innerHTML+=` (${d}/${e})`,t.forEach(o=>{const i=document.createElement("li"),c=document.createElement("span");o.date_completed&&(i.classList.add("complete"),c.classList.add("action-date"),c.innerHTML=o.date_completed),i.innerHTML=o.action,i.appendChild(c),a.appendChild(i)}),a},w=function(t){p(t),u(t)};l("iam-milestone");class L extends HTMLElement{constructor(){var n;super(),this.attachShadow({mode:"open"});const a=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${a}/css/core.min.css`,s=document.createElement("template");s.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
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.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const y=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},k=o=>{var i;const a=o.closest("dialog")||((i=o.shadowRoot)===null||i===void 0?void 0:i.querySelector("dialog")),r=o.hasAttribute("id")?o.getAttribute("id"):"unknown";a?.showModal(),a?.focus();const d=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:r}});o.dispatchEvent(d),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:r})},n=o=>{var i;const a=o.closest("dialog")||((i=o.shadowRoot)===null||i===void 0?void 0:i.querySelector("dialog")),r=o.hasAttribute("id")?o.getAttribute("id"):"unknown";a?.close();const d=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:r}});o.dispatchEvent(d),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:r})},x='<button class="btn btn-compact btn-secondary fa-xmark-large" data-close>Close</button>';y("iam-card");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.8.2--beta5
2
+ * iamKey v7.8.2--beta6
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>
@@ -9,5 +9,5 @@
9
9
  <div class="steps" parts="steps">
10
10
  </div>
11
11
  <slot></slot>
12
- `,this.shadowRoot.appendChild(e.content.cloneNode(!0))}connectedCallback(){const e=this,u=this.shadowRoot.querySelector(".steps"),l=this.querySelector("form"),i=Array.from(e.querySelectorAll("fieldset[data-title]"));i.forEach((t,a)=>{u.insertAdjacentHTML("beforeend",`<button data-title="${t.getAttribute("data-title")}" type="button" class="${a==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`),a===0&&t.classList.add("active");const o=document.createElement("div");if(o.classList.add("btn--wrapper"),t.appendChild(o),a!=0&&(o.innerHTML+=`<button data-title="${i[a-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),a!=i.length-1&&(o.innerHTML+=`<button data-title="${i[a+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),a==i.length-1)if(l&&l.querySelector(':scope > button[type="submit"]')){const s=l.querySelector(':scope > button[type="submit"]');s.classList.add("mb-0"),o.insertAdjacentElement("beforeend",s)}else o.innerHTML+=`<button data-title="${i[a].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`});const n=Array.from(e.querySelectorAll("fieldset.was-validated"));for(let t=0;t<n.length;t++){const a=n[t],o=a.getAttribute("data-title");if(a.querySelector(".is-invalid")){Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(s=>{s.classList.add("active")});break}else Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(s=>{s.classList.add("valid")})}e.addEventListener("invalid",(function(){return function(t){t.preventDefault()}})(),!0);function d(t){const a=e.querySelector("fieldset.active")?e.querySelector("fieldset.active"):e.querySelector("fieldset[data-title]"),o=a.getAttribute("data-title");let s=!0;if(a.classList.add("was-validated"),Array.from(a.querySelectorAll("input")).forEach(r=>{r.checkValidity()||(s=!1)}),s?(Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.add("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.add("valid")})):(Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.remove("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.remove("valid")})),s||!t.hasAttribute("data-next")){const r=e.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),f=e.shadowRoot.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(e.querySelectorAll("button")).forEach(p=>{p.classList.remove("active")}),Array.from(e.querySelectorAll("fieldset")).forEach(p=>{p.classList.remove("active")}),f.classList.add("active"),r.classList.add("active")}const b=Array.from(e.querySelectorAll("fieldset")).length,m=Array.from(e.querySelectorAll("fieldset.valid")).length;e.style.setProperty("--progress",`${m/(b-1)*100}%`)}e.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const a=t.target.closest("button");t.keyCode==13&&a.getAttribute("type")!="submit"&&(t.preventDefault(),d(a))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),e.addEventListener("click",t=>(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]')&&t.target.closest("form").classList.add("was-validated"),null)),e.shadowRoot.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const a=t.target.closest("button[data-title]");d(a)}return null}),y(e,"iam-multi-step",[])}static get observedAttributes(){return["data-image"]}attributeChangedCallback(e,u,l){switch(e){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=l);break}}}}export{h as default};
12
+ `,this.shadowRoot.appendChild(e.content.cloneNode(!0))}connectedCallback(){const e=this,u=this.shadowRoot.querySelector(".steps"),l=this.querySelector("form"),i=Array.from(e.querySelectorAll("fieldset[data-title]"));i.forEach((t,a)=>{u.insertAdjacentHTML("beforeend",`<button data-title="${t.getAttribute("data-title")}" type="button" class="${a==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`),a===0&&t.classList.add("active");const o=document.createElement("div");if(o.classList.add("btn--wrapper"),t.appendChild(o),a!=0&&(o.innerHTML+=`<button data-title="${i[a-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),a!=i.length-1&&(o.innerHTML+=`<button data-title="${i[a+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),a==i.length-1)if(l&&l.querySelector(':scope > button[type="submit"]')){const s=l.querySelector(':scope > button[type="submit"]');s.classList.add("mb-0"),o.insertAdjacentElement("beforeend",s)}else o.innerHTML+=`<button data-title="${i[a].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`});const n=Array.from(e.querySelectorAll("fieldset.was-validated"));for(let t=0;t<n.length;t++){const a=n[t],o=a.getAttribute("data-title");if(a.querySelector(".is-invalid")){Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(s=>{s.classList.add("active")});break}else Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(s=>{s.classList.add("valid")})}e.addEventListener("invalid",(function(){return function(t){t.preventDefault()}})(),!0);function d(t){const a=e.querySelector("fieldset.active")?e.querySelector("fieldset.active"):e.querySelector("fieldset[data-title]"),o=a.getAttribute("data-title");let s=!0;if(a.classList.add("was-validated"),Array.from(a.querySelectorAll("input")).forEach(r=>{r.checkValidity()||(s=!1)}),s?(Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.add("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.add("valid")})):(Array.from(e.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.remove("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${o}"]`)).forEach(r=>{r.classList.remove("valid")})),s||!t.hasAttribute("data-next")){const r=e.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),f=e.shadowRoot.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(e.querySelectorAll("button")).forEach(p=>{p.classList.remove("active")}),Array.from(e.querySelectorAll("fieldset")).forEach(p=>{p.classList.remove("active")}),f.classList.add("active"),r.classList.add("active")}const b=Array.from(e.querySelectorAll("fieldset")).length,m=Array.from(e.querySelectorAll("fieldset.valid")).length;e.style.setProperty("--progress",`${m/(b-1)*100}%`)}e.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const a=t.target.closest("button");t.keyCode==13&&a.getAttribute("type")!="submit"&&(t.preventDefault(),d(a))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),e.addEventListener("click",t=>(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]')&&t.target.closest("form").classList.add("was-validated"),null)),e.shadowRoot.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const a=t.target.closest("button[data-title]");d(a)}return null}),y(e,"iam-multi-step",[])}static get observedAttributes(){return["data-image"]}attributeChangedCallback(e,u,l){e==="data-total"&&this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=l)}}export{h as default};
13
13
  //# sourceMappingURL=multi-step.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-step.component.min.js","sources":["../_global.js","multi-step.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-multi-step');\nclass iamMultiStep 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/multi-step.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <div class=\"steps\" parts=\"steps\">\n </div>\n <slot></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const MultiStepComponent = this;\n const steps = this.shadowRoot.querySelector('.steps');\n const form = this.querySelector('form');\n const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));\n fieldsets.forEach((fieldset, index) => {\n steps.insertAdjacentHTML('beforeend', `<button data-title=\"${fieldset.getAttribute('data-title')}\" type=\"button\" class=\"${index == 0 ? 'active' : ''}\" tabindex=\"-1\">${fieldset.getAttribute('data-title')}</button>`);\n if (index === 0)\n fieldset.classList.add('active');\n const btnWrapper = document.createElement('div');\n btnWrapper.classList.add('btn--wrapper');\n fieldset.appendChild(btnWrapper);\n if (index != 0)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index - 1].getAttribute('data-title')}\" class=\"btn btn-secondary mb-0\" data-previous type=\"button\">Previous</button>`;\n if (index != fieldsets.length - 1)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index + 1].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"button\">Next</button>`;\n // Last fieldset\n if (index == fieldsets.length - 1) {\n if (form && form.querySelector(':scope > button[type=\"submit\"]')) {\n const existingButton = form.querySelector(':scope > button[type=\"submit\"]');\n existingButton.classList.add('mb-0');\n btnWrapper.insertAdjacentElement('beforeend', existingButton);\n }\n else\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"submit\">Submit</button>`;\n }\n });\n // Open the fieldset with an error inside\n const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));\n for (let i = 0; i < validatedFieldsets.length; i++) {\n const fieldset = validatedFieldsets[i];\n const fieldsetID = fieldset.getAttribute('data-title');\n if (fieldset.querySelector('.is-invalid')) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('active');\n });\n break;\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n }\n // Prevent the bubble messages\n MultiStepComponent.addEventListener('invalid', (function () {\n return function (e) {\n e.preventDefault();\n };\n })(), true);\n function validateFieldset(button) {\n const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)\n ? MultiStepComponent.querySelector(`fieldset.active`)\n : MultiStepComponent.querySelector(`fieldset[data-title]`);\n const currentFieldsetID = currentFieldset.getAttribute('data-title');\n let isFieldsetValid = true;\n currentFieldset.classList.add('was-validated');\n Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {\n if (!input.checkValidity())\n isFieldsetValid = false;\n });\n // If valid mode to next field set\n if (!isFieldsetValid) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n // Allow the previous button to navigate\n if (isFieldsetValid || !button.hasAttribute('data-next')) {\n const fieldset = MultiStepComponent.querySelector(`fieldset[data-title=\"${button.getAttribute('data-title')}\"]`);\n const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title=\"${button.getAttribute('data-title')}\"]`);\n Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {\n button.classList.remove('active');\n });\n Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {\n button.classList.remove('active');\n });\n step.classList.add('active');\n fieldset.classList.add('active');\n }\n const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;\n const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;\n // update the progress bar\n MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);\n }\n // remove error messages from server\n MultiStepComponent.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button')) {\n const button = event.target.closest('button');\n if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {\n event.preventDefault();\n validateFieldset(button);\n }\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('input')) {\n const input = event.target.closest('input');\n input.classList.remove('is-invalid');\n if (event.keyCode == 13) {\n event.preventDefault();\n }\n }\n });\n MultiStepComponent.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[type=\"submit\"]')) {\n const form = event.target.closest('form');\n form.classList.add('was-validated');\n }\n return null;\n });\n MultiStepComponent.shadowRoot.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {\n const button = event.target.closest('button[data-title]');\n validateFieldset(button);\n }\n return null;\n });\n trackComponent(MultiStepComponent, 'iam-multi-step', []);\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n }\n }\n}\nexport default iamMultiStep;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamMultiStep","template","MultiStepComponent","steps","form","fieldsets","fieldset","index","btnWrapper","existingButton","validatedFieldsets","i","fieldsetID","element","e","validateFieldset","button","currentFieldset","currentFieldsetID","isFieldsetValid","input","step","fieldsetCount","validFieldsetCount","attrName","oldVal","newVal"],"mappings":"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"}
1
+ {"version":3,"file":"multi-step.component.min.js","sources":["../_global.js","multi-step.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-multi-step');\nclass iamMultiStep 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/multi-step.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <div class=\"steps\" parts=\"steps\">\n </div>\n <slot></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const MultiStepComponent = this;\n const steps = this.shadowRoot.querySelector('.steps');\n const form = this.querySelector('form');\n const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));\n fieldsets.forEach((fieldset, index) => {\n steps.insertAdjacentHTML('beforeend', `<button data-title=\"${fieldset.getAttribute('data-title')}\" type=\"button\" class=\"${index == 0 ? 'active' : ''}\" tabindex=\"-1\">${fieldset.getAttribute('data-title')}</button>`);\n if (index === 0)\n fieldset.classList.add('active');\n const btnWrapper = document.createElement('div');\n btnWrapper.classList.add('btn--wrapper');\n fieldset.appendChild(btnWrapper);\n if (index != 0)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index - 1].getAttribute('data-title')}\" class=\"btn btn-secondary mb-0\" data-previous type=\"button\">Previous</button>`;\n if (index != fieldsets.length - 1)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index + 1].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"button\">Next</button>`;\n // Last fieldset\n if (index == fieldsets.length - 1) {\n if (form && form.querySelector(':scope > button[type=\"submit\"]')) {\n const existingButton = form.querySelector(':scope > button[type=\"submit\"]');\n existingButton.classList.add('mb-0');\n btnWrapper.insertAdjacentElement('beforeend', existingButton);\n }\n else\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"submit\">Submit</button>`;\n }\n });\n // Open the fieldset with an error inside\n const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));\n for (let i = 0; i < validatedFieldsets.length; i++) {\n const fieldset = validatedFieldsets[i];\n const fieldsetID = fieldset.getAttribute('data-title');\n if (fieldset.querySelector('.is-invalid')) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('active');\n });\n break;\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n }\n // Prevent the bubble messages\n MultiStepComponent.addEventListener('invalid', (function () {\n return function (e) {\n e.preventDefault();\n };\n })(), true);\n function validateFieldset(button) {\n const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)\n ? MultiStepComponent.querySelector(`fieldset.active`)\n : MultiStepComponent.querySelector(`fieldset[data-title]`);\n const currentFieldsetID = currentFieldset.getAttribute('data-title');\n let isFieldsetValid = true;\n currentFieldset.classList.add('was-validated');\n Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {\n if (!input.checkValidity())\n isFieldsetValid = false;\n });\n // If valid mode to next field set\n if (!isFieldsetValid) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n // Allow the previous button to navigate\n if (isFieldsetValid || !button.hasAttribute('data-next')) {\n const fieldset = MultiStepComponent.querySelector(`fieldset[data-title=\"${button.getAttribute('data-title')}\"]`);\n const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title=\"${button.getAttribute('data-title')}\"]`);\n Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {\n button.classList.remove('active');\n });\n Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {\n button.classList.remove('active');\n });\n step.classList.add('active');\n fieldset.classList.add('active');\n }\n const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;\n const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;\n // update the progress bar\n MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);\n }\n // remove error messages from server\n MultiStepComponent.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button')) {\n const button = event.target.closest('button');\n if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {\n event.preventDefault();\n validateFieldset(button);\n }\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('input')) {\n const input = event.target.closest('input');\n input.classList.remove('is-invalid');\n if (event.keyCode == 13) {\n event.preventDefault();\n }\n }\n });\n MultiStepComponent.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[type=\"submit\"]')) {\n const form = event.target.closest('form');\n form.classList.add('was-validated');\n }\n return null;\n });\n MultiStepComponent.shadowRoot.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {\n const button = event.target.closest('button[data-title]');\n validateFieldset(button);\n }\n return null;\n });\n trackComponent(MultiStepComponent, 'iam-multi-step', []);\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n }\n }\n}\nexport default iamMultiStep;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamMultiStep","template","MultiStepComponent","steps","form","fieldsets","fieldset","index","btnWrapper","existingButton","validatedFieldsets","i","fieldsetID","element","e","validateFieldset","button","currentFieldset","currentFieldsetID","isFieldsetValid","input","step","fieldsetCount","validFieldsetCount","attrName","oldVal","newVal"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.2--beta5
2
+ * iamKey v7.8.2--beta6
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const A=b=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:b})},_=(b,n,c)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:n}),c.forEach(d=>{b.addEventListener(d,function(e){const i={event:d,element:n,target:e.target};Object.keys(e.detail).forEach(r=>{const p=e.detail[r];i[r]=p}),window.dataLayer.push(i)})}),!0);A("iam-multi-step-modal");class E extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const n=document.createElement("template");n.innerHTML=`
5
5
  <style>
@@ -13,5 +13,5 @@
13
13
  </div>
14
14
  <slot></slot>
15
15
  </dialog>
16
- `,this.shadowRoot.appendChild(n.content.cloneNode(!0))}connectedCallback(){var n,c;const d=this.querySelector("dialog"),e=this,i=this.hasAttribute("id")?this.getAttribute("id"):d?.getAttribute("id"),r=(n=this.shadowRoot)===null||n===void 0?void 0:n.querySelector("dialog"),p=(c=this.shadowRoot)===null||c===void 0?void 0:c.querySelector("[data-close]"),g=document.querySelector(`[data-modal="${i}"]`),w=this.shadowRoot.querySelector(".steps"),h=this.querySelector("form"),y=()=>{r?.showModal(),r?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:i})};d?.addEventListener("command",t=>{event.command=="show-modal"&&t.preventDefault()}),document.addEventListener("click",t=>{(t.target.matches(`[command="show-modal"][commandfor="${i}"]`)||t.target.matches(`[data-modal="${i}"]`))&&y()}),g?.addEventListener("click",()=>{r?.showModal(),r?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:i})});const k=()=>{r?.close();const t=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:i})};p?.addEventListener("click",()=>{k()});const m=Array.from(e.querySelectorAll("fieldset[data-title]"));m.forEach((t,o)=>{w.insertAdjacentHTML("beforeend",`<button data-title="${t.getAttribute("data-title")}" type="button" class="${o==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`),o===0&&t.classList.add("active");const a=document.createElement("div");if(a.classList.add("btn--wrapper"),t.appendChild(a),o!=0&&(a.innerHTML+=`<button data-title="${m[o-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),o!=m.length-1&&(a.innerHTML+=`<button data-title="${m[o+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),o==m.length-1)if(h&&h.querySelector(':scope > button[type="submit"]')){const s=h.querySelector(':scope > button[type="submit"]');s.classList.add("mb-0"),a.insertAdjacentElement("beforeend",s)}else a.innerHTML+=`<button data-title="${m[o].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`});const v=Array.from(e.querySelectorAll("fieldset.was-validated"));for(let t=0;t<v.length;t++){const o=v[t],a=o.getAttribute("data-title");if(o.querySelector(".is-invalid")){Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(s=>{s.classList.add("active")});break}else Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(s=>{s.classList.add("valid")})}e.addEventListener("invalid",(function(){return function(t){t.preventDefault()}})(),!0);function f(t){const o=e.querySelector("fieldset.active")?e.querySelector("fieldset.active"):e.querySelector("fieldset[data-title]"),a=o.getAttribute("data-title");let s=!0;if(o.classList.add("was-validated"),Array.from(o.querySelectorAll("input")).forEach(l=>{l.checkValidity()||(s=!1)}),s?(Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.add("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.add("valid")})):(Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.remove("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.remove("valid")})),s||!t.hasAttribute("data-next")){const l=e.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),z=e.shadowRoot.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(e.querySelectorAll("button")).forEach(u=>{u.classList.remove("active")}),Array.from(e.querySelectorAll("fieldset")).forEach(u=>{u.classList.remove("active")}),z.classList.add("active"),l.classList.add("active")}const x=Array.from(e.querySelectorAll("fieldset")).length,L=Array.from(e.querySelectorAll("fieldset.valid")).length;e.style.setProperty("--progress",`${L/(x-1)*100}%`)}e.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const o=t.target.closest("button");t.keyCode==13&&o.getAttribute("type")!="submit"&&(t.preventDefault(),f(o))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),e.addEventListener("click",t=>(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]')&&t.target.closest("form").classList.add("was-validated"),null)),e.shadowRoot.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const o=t.target.closest("button[data-title]");f(o)}return null}),_(e,"iam-multi-step",[])}static get observedAttributes(){return["data-image"]}attributeChangedCallback(n,c,d){switch(n){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=d);break}}}}export{E as default};
16
+ `,this.shadowRoot.appendChild(n.content.cloneNode(!0))}connectedCallback(){var n,c;const d=this.querySelector("dialog"),e=this,i=this.hasAttribute("id")?this.getAttribute("id"):d?.getAttribute("id"),r=(n=this.shadowRoot)===null||n===void 0?void 0:n.querySelector("dialog"),p=(c=this.shadowRoot)===null||c===void 0?void 0:c.querySelector("[data-close]"),g=document.querySelector(`[data-modal="${i}"]`),w=this.shadowRoot.querySelector(".steps"),h=this.querySelector("form"),y=()=>{r?.showModal(),r?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:i})};d?.addEventListener("command",t=>{event.command=="show-modal"&&t.preventDefault()}),document.addEventListener("click",t=>{(t.target.matches(`[command="show-modal"][commandfor="${i}"]`)||t.target.matches(`[data-modal="${i}"]`))&&y()}),g?.addEventListener("click",()=>{r?.showModal(),r?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:i})});const k=()=>{r?.close();const t=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:i}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:i})};p?.addEventListener("click",()=>{k()});const m=Array.from(e.querySelectorAll("fieldset[data-title]"));m.forEach((t,o)=>{w.insertAdjacentHTML("beforeend",`<button data-title="${t.getAttribute("data-title")}" type="button" class="${o==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`),o===0&&t.classList.add("active");const a=document.createElement("div");if(a.classList.add("btn--wrapper"),t.appendChild(a),o!=0&&(a.innerHTML+=`<button data-title="${m[o-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),o!=m.length-1&&(a.innerHTML+=`<button data-title="${m[o+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),o==m.length-1)if(h&&h.querySelector(':scope > button[type="submit"]')){const s=h.querySelector(':scope > button[type="submit"]');s.classList.add("mb-0"),a.insertAdjacentElement("beforeend",s)}else a.innerHTML+=`<button data-title="${m[o].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`});const v=Array.from(e.querySelectorAll("fieldset.was-validated"));for(let t=0;t<v.length;t++){const o=v[t],a=o.getAttribute("data-title");if(o.querySelector(".is-invalid")){Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(s=>{s.classList.add("active")});break}else Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(s=>{s.classList.add("valid")})}e.addEventListener("invalid",(function(){return function(t){t.preventDefault()}})(),!0);function f(t){const o=e.querySelector("fieldset.active")?e.querySelector("fieldset.active"):e.querySelector("fieldset[data-title]"),a=o.getAttribute("data-title");let s=!0;if(o.classList.add("was-validated"),Array.from(o.querySelectorAll("input")).forEach(l=>{l.checkValidity()||(s=!1)}),s?(Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.add("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.add("valid")})):(Array.from(e.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.remove("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${a}"]`)).forEach(l=>{l.classList.remove("valid")})),s||!t.hasAttribute("data-next")){const l=e.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),z=e.shadowRoot.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(e.querySelectorAll("button")).forEach(u=>{u.classList.remove("active")}),Array.from(e.querySelectorAll("fieldset")).forEach(u=>{u.classList.remove("active")}),z.classList.add("active"),l.classList.add("active")}const x=Array.from(e.querySelectorAll("fieldset")).length,L=Array.from(e.querySelectorAll("fieldset.valid")).length;e.style.setProperty("--progress",`${L/(x-1)*100}%`)}e.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const o=t.target.closest("button");t.keyCode==13&&o.getAttribute("type")!="submit"&&(t.preventDefault(),f(o))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),e.addEventListener("click",t=>(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]')&&t.target.closest("form").classList.add("was-validated"),null)),e.shadowRoot.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const o=t.target.closest("button[data-title]");f(o)}return null}),_(e,"iam-multi-step",[])}static get observedAttributes(){return["data-image"]}attributeChangedCallback(n,c,d){n==="data-total"&&this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=d)}}export{E as default};
17
17
  //# sourceMappingURL=multi-step-modal.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-step-modal.component.min.js","sources":["../_global.js","multi-step-modal.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-multi-step-modal');\nclass iamMultiStepModal 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/multi-step-modal.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <dialog>\n <button class=\"btn btn-compact btn-secondary fa-xmark-large\" data-close>Close</button>\n <div class=\"steps\" parts=\"steps\">\n </div>\n <slot></slot>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n const originalDialog = this.querySelector('dialog');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const MultiStepComponent = this;\n const id = this.hasAttribute('id') ? this.getAttribute('id') : originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.getAttribute('id');\n const dialog = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');\n const closeButton = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[data-close]');\n const button = document.querySelector(`[data-modal=\"${id}\"]`);\n const steps = this.shadowRoot.querySelector('.steps');\n const form = this.querySelector('form');\n const openModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n };\n // Disable the original event \n originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.addEventListener('command', (e) => {\n if (event.command == \"show-modal\") {\n e.preventDefault();\n }\n });\n document.addEventListener('click', (e) => {\n if (e.target.matches(`[command=\"show-modal\"][commandfor=\"${id}\"]`) || e.target.matches(`[data-modal=\"${id}\"]`)) {\n openModal();\n }\n });\n button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n });\n const closeModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.close();\n const closeEvent = new CustomEvent('modal-closed', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'closeModal',\n id: id,\n });\n };\n closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {\n closeModal();\n });\n const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));\n fieldsets.forEach((fieldset, index) => {\n steps.insertAdjacentHTML('beforeend', `<button data-title=\"${fieldset.getAttribute('data-title')}\" type=\"button\" class=\"${index == 0 ? 'active' : ''}\" tabindex=\"-1\">${fieldset.getAttribute('data-title')}</button>`);\n if (index === 0)\n fieldset.classList.add('active');\n const btnWrapper = document.createElement('div');\n btnWrapper.classList.add('btn--wrapper');\n fieldset.appendChild(btnWrapper);\n if (index != 0)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index - 1].getAttribute('data-title')}\" class=\"btn btn-secondary mb-0\" data-previous type=\"button\">Previous</button>`;\n if (index != fieldsets.length - 1)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index + 1].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"button\">Next</button>`;\n // Last fieldset\n if (index == fieldsets.length - 1) {\n if (form && form.querySelector(':scope > button[type=\"submit\"]')) {\n const existingButton = form.querySelector(':scope > button[type=\"submit\"]');\n existingButton.classList.add('mb-0');\n btnWrapper.insertAdjacentElement('beforeend', existingButton);\n }\n else\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"submit\">Submit</button>`;\n }\n });\n // Open the fieldset with an error inside\n const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));\n for (let i = 0; i < validatedFieldsets.length; i++) {\n const fieldset = validatedFieldsets[i];\n const fieldsetID = fieldset.getAttribute('data-title');\n if (fieldset.querySelector('.is-invalid')) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('active');\n });\n break;\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n }\n // Prevent the bubble messages\n MultiStepComponent.addEventListener('invalid', (function () {\n return function (e) {\n e.preventDefault();\n };\n })(), true);\n function validateFieldset(button) {\n const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)\n ? MultiStepComponent.querySelector(`fieldset.active`)\n : MultiStepComponent.querySelector(`fieldset[data-title]`);\n const currentFieldsetID = currentFieldset.getAttribute('data-title');\n let isFieldsetValid = true;\n currentFieldset.classList.add('was-validated');\n Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {\n if (!input.checkValidity())\n isFieldsetValid = false;\n });\n // If valid mode to next field set\n if (!isFieldsetValid) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n // Allow the previous button to navigate\n if (isFieldsetValid || !button.hasAttribute('data-next')) {\n const fieldset = MultiStepComponent.querySelector(`fieldset[data-title=\"${button.getAttribute('data-title')}\"]`);\n const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title=\"${button.getAttribute('data-title')}\"]`);\n Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {\n button.classList.remove('active');\n });\n Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {\n button.classList.remove('active');\n });\n step.classList.add('active');\n fieldset.classList.add('active');\n }\n const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;\n const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;\n // update the progress bar\n MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);\n }\n // remove error messages from server\n MultiStepComponent.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button')) {\n const button = event.target.closest('button');\n if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {\n event.preventDefault();\n validateFieldset(button);\n }\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('input')) {\n const input = event.target.closest('input');\n input.classList.remove('is-invalid');\n if (event.keyCode == 13) {\n event.preventDefault();\n }\n }\n });\n MultiStepComponent.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[type=\"submit\"]')) {\n const form = event.target.closest('form');\n form.classList.add('was-validated');\n }\n return null;\n });\n MultiStepComponent.shadowRoot.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {\n const button = event.target.closest('button[data-title]');\n validateFieldset(button);\n }\n return null;\n });\n trackComponent(MultiStepComponent, 'iam-multi-step', []);\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n }\n }\n}\nexport default iamMultiStepModal;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamMultiStepModal","template","_a","_b","originalDialog","MultiStepComponent","id","dialog","closeButton","button","steps","form","openModal","closeEvent","e","closeModal","fieldsets","fieldset","index","btnWrapper","existingButton","validatedFieldsets","i","fieldsetID","element","validateFieldset","currentFieldset","currentFieldsetID","isFieldsetValid","input","step","fieldsetCount","validFieldsetCount","attrName","oldVal","newVal"],"mappings":"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"}
1
+ {"version":3,"file":"multi-step-modal.component.min.js","sources":["../_global.js","multi-step-modal.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-multi-step-modal');\nclass iamMultiStepModal 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/multi-step-modal.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <dialog>\n <button class=\"btn btn-compact btn-secondary fa-xmark-large\" data-close>Close</button>\n <div class=\"steps\" parts=\"steps\">\n </div>\n <slot></slot>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n const originalDialog = this.querySelector('dialog');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const MultiStepComponent = this;\n const id = this.hasAttribute('id') ? this.getAttribute('id') : originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.getAttribute('id');\n const dialog = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');\n const closeButton = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[data-close]');\n const button = document.querySelector(`[data-modal=\"${id}\"]`);\n const steps = this.shadowRoot.querySelector('.steps');\n const form = this.querySelector('form');\n const openModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n };\n // Disable the original event \n originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.addEventListener('command', (e) => {\n if (event.command == \"show-modal\") {\n e.preventDefault();\n }\n });\n document.addEventListener('click', (e) => {\n if (e.target.matches(`[command=\"show-modal\"][commandfor=\"${id}\"]`) || e.target.matches(`[data-modal=\"${id}\"]`)) {\n openModal();\n }\n });\n button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n });\n const closeModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.close();\n const closeEvent = new CustomEvent('modal-closed', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'closeModal',\n id: id,\n });\n };\n closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {\n closeModal();\n });\n const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));\n fieldsets.forEach((fieldset, index) => {\n steps.insertAdjacentHTML('beforeend', `<button data-title=\"${fieldset.getAttribute('data-title')}\" type=\"button\" class=\"${index == 0 ? 'active' : ''}\" tabindex=\"-1\">${fieldset.getAttribute('data-title')}</button>`);\n if (index === 0)\n fieldset.classList.add('active');\n const btnWrapper = document.createElement('div');\n btnWrapper.classList.add('btn--wrapper');\n fieldset.appendChild(btnWrapper);\n if (index != 0)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index - 1].getAttribute('data-title')}\" class=\"btn btn-secondary mb-0\" data-previous type=\"button\">Previous</button>`;\n if (index != fieldsets.length - 1)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index + 1].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"button\">Next</button>`;\n // Last fieldset\n if (index == fieldsets.length - 1) {\n if (form && form.querySelector(':scope > button[type=\"submit\"]')) {\n const existingButton = form.querySelector(':scope > button[type=\"submit\"]');\n existingButton.classList.add('mb-0');\n btnWrapper.insertAdjacentElement('beforeend', existingButton);\n }\n else\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"submit\">Submit</button>`;\n }\n });\n // Open the fieldset with an error inside\n const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));\n for (let i = 0; i < validatedFieldsets.length; i++) {\n const fieldset = validatedFieldsets[i];\n const fieldsetID = fieldset.getAttribute('data-title');\n if (fieldset.querySelector('.is-invalid')) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('active');\n });\n break;\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n }\n // Prevent the bubble messages\n MultiStepComponent.addEventListener('invalid', (function () {\n return function (e) {\n e.preventDefault();\n };\n })(), true);\n function validateFieldset(button) {\n const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)\n ? MultiStepComponent.querySelector(`fieldset.active`)\n : MultiStepComponent.querySelector(`fieldset[data-title]`);\n const currentFieldsetID = currentFieldset.getAttribute('data-title');\n let isFieldsetValid = true;\n currentFieldset.classList.add('was-validated');\n Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {\n if (!input.checkValidity())\n isFieldsetValid = false;\n });\n // If valid mode to next field set\n if (!isFieldsetValid) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n // Allow the previous button to navigate\n if (isFieldsetValid || !button.hasAttribute('data-next')) {\n const fieldset = MultiStepComponent.querySelector(`fieldset[data-title=\"${button.getAttribute('data-title')}\"]`);\n const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title=\"${button.getAttribute('data-title')}\"]`);\n Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {\n button.classList.remove('active');\n });\n Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {\n button.classList.remove('active');\n });\n step.classList.add('active');\n fieldset.classList.add('active');\n }\n const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;\n const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;\n // update the progress bar\n MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);\n }\n // remove error messages from server\n MultiStepComponent.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button')) {\n const button = event.target.closest('button');\n if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {\n event.preventDefault();\n validateFieldset(button);\n }\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('input')) {\n const input = event.target.closest('input');\n input.classList.remove('is-invalid');\n if (event.keyCode == 13) {\n event.preventDefault();\n }\n }\n });\n MultiStepComponent.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[type=\"submit\"]')) {\n const form = event.target.closest('form');\n form.classList.add('was-validated');\n }\n return null;\n });\n MultiStepComponent.shadowRoot.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {\n const button = event.target.closest('button[data-title]');\n validateFieldset(button);\n }\n return null;\n });\n trackComponent(MultiStepComponent, 'iam-multi-step', []);\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n }\n }\n}\nexport default iamMultiStepModal;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamMultiStepModal","template","_a","_b","originalDialog","MultiStepComponent","id","dialog","closeButton","button","steps","form","openModal","closeEvent","e","closeModal","fieldsets","fieldset","index","btnWrapper","existingButton","validatedFieldsets","i","fieldsetID","element","validateFieldset","currentFieldset","currentFieldsetID","isFieldsetValid","input","step","fieldsetCount","validFieldsetCount","attrName","oldVal","newVal"],"mappings":"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"}