@iamproperty/components 7.5.1--beta11 → 7.6.0

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 (138) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/barchart.component.css +1 -1
  6. package/assets/css/components/barchart.component.css.map +1 -1
  7. package/assets/css/components/calendar.component.css +1 -1
  8. package/assets/css/components/calendar.component.css.map +1 -1
  9. package/assets/css/components/card.component.css +1 -1
  10. package/assets/css/components/card.component.css.map +1 -1
  11. package/assets/css/components/carousel.component.css +1 -1
  12. package/assets/css/components/carousel.component.css.map +1 -1
  13. package/assets/css/components/collapsible-side.css +1 -1
  14. package/assets/css/components/collapsible-side.css.map +1 -1
  15. package/assets/css/components/content.component.css +1 -1
  16. package/assets/css/components/content.component.css.map +1 -1
  17. package/assets/css/components/doughnutchart.component.css +1 -1
  18. package/assets/css/components/doughnutchart.component.css.map +1 -1
  19. package/assets/css/components/fileupload.css +1 -1
  20. package/assets/css/components/fileupload.css.map +1 -1
  21. package/assets/css/components/inline-edit.css +1 -1
  22. package/assets/css/components/inline-edit.css.map +1 -1
  23. package/assets/css/components/input-range.component.css +1 -1
  24. package/assets/css/components/input-range.component.css.map +1 -1
  25. package/assets/css/components/input.component.css +1 -1
  26. package/assets/css/components/input.component.css.map +1 -1
  27. package/assets/css/components/modal.component.css +1 -1
  28. package/assets/css/components/modal.component.css.map +1 -1
  29. package/assets/css/components/multi-step-modal.component.css +1 -1
  30. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  31. package/assets/css/components/multiselect.css +1 -1
  32. package/assets/css/components/multiselect.css.map +1 -1
  33. package/assets/css/components/nav.component.css +1 -1
  34. package/assets/css/components/nav.component.css.map +1 -1
  35. package/assets/css/components/nav.global.css +1 -1
  36. package/assets/css/components/nav.global.css.map +1 -1
  37. package/assets/css/components/pagination.css +1 -1
  38. package/assets/css/components/pagination.css.map +1 -1
  39. package/assets/css/components/password.component.css +1 -1
  40. package/assets/css/components/password.component.css.map +1 -1
  41. package/assets/css/components/rank.component.css +1 -1
  42. package/assets/css/components/rank.component.css.map +1 -1
  43. package/assets/css/components/rankings.component.css +1 -1
  44. package/assets/css/components/rankings.component.css.map +1 -1
  45. package/assets/css/components/rankings.global.css +1 -1
  46. package/assets/css/components/rankings.global.css.map +1 -1
  47. package/assets/css/components/slider.css +1 -1
  48. package/assets/css/components/slider.css.map +1 -1
  49. package/assets/css/components/split-button.component.css +1 -1
  50. package/assets/css/components/split-button.component.css.map +1 -1
  51. package/assets/css/components/tabs.component.css +1 -1
  52. package/assets/css/components/tabs.component.css.map +1 -1
  53. package/assets/css/core.min.css +1 -1
  54. package/assets/css/core.min.css.map +1 -1
  55. package/assets/css/mobile-core.min.css +1 -1
  56. package/assets/css/mobile-core.min.css.map +1 -1
  57. package/assets/css/mobile.min.css +1 -1
  58. package/assets/css/mobile.min.css.map +1 -1
  59. package/assets/css/style.min.css +1 -1
  60. package/assets/css/style.min.css.map +1 -1
  61. package/assets/js/components/accordion/accordion.component.min.js +2 -2
  62. package/assets/js/components/actionbar/actionbar.component.min.js +3 -3
  63. package/assets/js/components/address-lookup/address-lookup.component.min.js +3 -3
  64. package/assets/js/components/advanced-select/advanced-select.component.min.js +2 -2
  65. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  66. package/assets/js/components/barchart/barchart.component.min.js +3 -3
  67. package/assets/js/components/bento-grid/bento-grid.component.min.js +2 -2
  68. package/assets/js/components/calendar/calendar.component.min.js +3 -3
  69. package/assets/js/components/card/card.component.min.js +3 -3
  70. package/assets/js/components/carousel/carousel.component.min.js +3 -3
  71. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +3 -3
  72. package/assets/js/components/content/content.component.min.js +3 -3
  73. package/assets/js/components/darkmode/darkmode.component.min.js +2 -2
  74. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +3 -3
  75. package/assets/js/components/fileupload/fileupload.component.min.js +3 -3
  76. package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
  77. package/assets/js/components/filterlist/filterlist.component.min.js +2 -2
  78. package/assets/js/components/header/header.component.min.js +2 -2
  79. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  80. package/assets/js/components/input/input.component.min.js +3 -3
  81. package/assets/js/components/input-range/input-range.component.min.js +5 -5
  82. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  83. package/assets/js/components/menu/menu.component.min.js +2 -2
  84. package/assets/js/components/milestone/milestone.component.min.js +2 -2
  85. package/assets/js/components/milestone-group/milestone-group.component.min.js +2 -2
  86. package/assets/js/components/modal/modal.component.min.js +4 -4
  87. package/assets/js/components/multi-step/multi-step.component.min.js +2 -2
  88. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +3 -3
  89. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  90. package/assets/js/components/nav/nav.component.min.js +7 -7
  91. package/assets/js/components/notification/notification.component.min.js +2 -2
  92. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  93. package/assets/js/components/password/password.component.min.js +6 -6
  94. package/assets/js/components/popover/popover.component.min.js +2 -2
  95. package/assets/js/components/rank/rank.component.min.js +2 -2
  96. package/assets/js/components/rankings/rankings.component.min.js +4 -4
  97. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  98. package/assets/js/components/search/search.component.min.js +2 -2
  99. package/assets/js/components/slider/slider.component.min.js +3 -3
  100. package/assets/js/components/split-button/split-button.component.min.js +3 -3
  101. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +3 -3
  102. package/assets/js/components/table/table.component.min.js +3 -3
  103. package/assets/js/components/table/table.component.min.js.map +1 -1
  104. package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
  105. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  106. package/assets/js/components/table-basic/table-basic.component.min.js +3 -3
  107. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  108. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
  109. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  110. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  111. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  112. package/assets/js/components/tabs/tabs.component.js +0 -4
  113. package/assets/js/components/tabs/tabs.component.min.js +3 -7
  114. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  115. package/assets/js/components/tooltip/tooltip.component.min.js +2 -2
  116. package/assets/js/components/video-card/video-card.component.min.js +2 -2
  117. package/assets/js/components/word-count/word-count.component.min.js +2 -2
  118. package/assets/js/modules/table.js +1 -4
  119. package/assets/js/scripts.bundle.js +2 -2
  120. package/assets/js/scripts.bundle.min.js +2 -2
  121. package/assets/sass/components/collapsible-side.scss +1 -0
  122. package/assets/sass/components/input-range.component.scss +16 -8
  123. package/assets/sass/components/nav.component.scss +4 -3
  124. package/assets/sass/components/nav.global.scss +22 -0
  125. package/assets/sass/components/split-button.component.scss +4 -0
  126. package/assets/sass/elements/buttons--action.scss +1 -1
  127. package/assets/sass/elements/buttons--global.scss +9 -8
  128. package/assets/sass/elements/details.scss +2 -2
  129. package/assets/sass/elements/forms.scss +1 -1
  130. package/assets/sass/elements/links.scss +2 -2
  131. package/assets/sass/elements/prefix.scss +12 -1
  132. package/assets/sass/elements/type.scss +6 -6
  133. package/assets/ts/components/tabs/tabs.component.ts +0 -4
  134. package/assets/ts/modules/table.ts +1 -5
  135. package/dist/components.es.js +76 -74
  136. package/dist/components.umd.js +126 -130
  137. package/package.json +1 -1
  138. package/src/components/NoteFeed/NoteFeed.vue +1 -1
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v7.5.1--beta11
3
- * Copyright 2022-2025 iamproperty
4
- */const I=t=>t.charAt(0).toUpperCase()+t.slice(1),p=(t,i,a)=>i.split(/[\.\[\]\'\"]/).filter(e=>e).reduce((e,r)=>e?e[r]:a,t),_=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1));var F=function(t,i,a,e){function r(o){return o instanceof a?o:new a(function(n){n(o)})}return new(a||(a=Promise))(function(o,n){function s(b){try{m(e.next(b))}catch(d){n(d)}}function l(b){try{m(e.throw(b))}catch(d){n(d)}}function m(b){b.done?o(b.value):r(b.value).then(s,l)}m((e=e.apply(t,i||[])).next())})};const P=(t,i)=>{switch(t){case"datetime":return new Date(i).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(i).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(i).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return i=I(i)}},R=function(t){const i=new Object;return Array.from(t.querySelectorAll("[data-filter]")).forEach(e=>{if(!(e.type=="radio"&&!e.checked)&&!(e.type=="checkbox"&&!e.checked)&&e&&e.value){const r=e.getAttribute("data-filter");let o=e.value;e.hasAttribute("data-date-from")&&(o+="-date-from"),e.hasAttribute("data-date-to")&&(o+="-date-to"),i[r]||(i[r]=[]),i[r].push(o)}}),i},O=(t,i,a,e,r)=>{a.querySelector("[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),e.addEventListener("update-show",o=>{if(a.querySelector("[name=show]").value!=o.detail.show){a.querySelector("[name=show]").value=o.detail.show;const n=new CustomEvent("update-show",{detail:{show:o.detail.show}});t.dispatchEvent(n),T(t,e),r()}}),e.addEventListener("update-page",o=>{if(a.querySelector("[name=page]").value!=o.detail.page){a.querySelector("[name=page]").value=o.detail.page;const n=new CustomEvent("update-page",{detail:{page:o.detail.page}});if(t.dispatchEvent(n),T(t,e),r(),!t.hasAttribute("data-no-scroll")){const l=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:l,behavior:"smooth"})}}})},B=(t,i)=>{let a=document.createElement("form");return t.hasAttribute("data-filterby")?a=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?a=t.closest("form"):t.querySelector("form")?a=t.querySelector("form"):i.parentNode.insertBefore(a,i.nextSibling),t.hasAttribute("data-ajax")&&a.setAttribute("data-ajax",t.getAttribute("data-ajax")),a},E=(t,i,a,e)=>{const r=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",5),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),N(t,e),U(i),W(t,i),t.classList.contains("mh-sm")&&r.classList.add("mh-sm"),t.classList.contains("mh-md")&&r.classList.add("mh-md"),t.classList.contains("mh-lg")&&r.classList.add("mh-lg"),t.classList.contains("table--cta")&&(V(t,i),J(t,i))},N=(t,i)=>{t.hasAttribute("data-total")&&i.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&i.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&i.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&i.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&i.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&i.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&i.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&i.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&i.setAttribute("data-minimal","true")},T=(t,i)=>{t.setAttribute("data-total",i.getAttribute("data-total")),t.setAttribute("data-page",i.getAttribute("data-page")),t.setAttribute("data-show",i.getAttribute("data-show")),t.setAttribute("data-increment",i.getAttribute("data-show"))},U=t=>{const i=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(e=>{const r=Array.from(e.querySelectorAll("th, td")),o=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];r.forEach((n,s)=>{const l=i[s];if(typeof l<"u"){const m=document.createElement("div");m.innerHTML=l.innerHTML;const b=m.textContent||m.innerText||"";n.setAttribute("data-label",b),l.hasAttribute("data-td-class")&&n.setAttribute("class",l.getAttribute("data-td-class")),l.hasAttribute("data-format")&&(n.setAttribute("data-format",l.getAttribute("data-format")),n.innerHTML=P(l.getAttribute("data-format"),n.textContent.trim())),o.includes(n.textContent.trim().toLowerCase())&&n.setAttribute("data-content",n.textContent.trim().toLowerCase())}})})},W=(t,i)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||i.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(i.querySelectorAll("thead tr")).forEach(a=>{i.querySelectorAll("thead tr th.expand-button-heading").length||a.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(i.querySelectorAll("tbody tr")).forEach((a,e)=>{const r=a.getAttribute("data-view")==="full"?"aria-expanded":"";a.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm" data-expand-button ${r} data-index="${e}">Expand</button></td>`)}),i.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-expand-button]")){const e=a.target.closest("[data-expand-button]"),r=e.closest("tr");e.toggleAttribute("aria-expanded"),r.getAttribute("data-view")=="full"?r.setAttribute("data-view","default"):r.setAttribute("data-view","full"),e.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:e.getAttribute("data-index")}}))}})},V=(t,i)=>{let a=0;Array.from(i.querySelectorAll("tbody tr")).forEach(e=>{const r=window.getComputedStyle(document.querySelector("html")),o=e.querySelector(":scope > *:last-child > *:first-child");if(o){o.classList.add("text-nowrap");let n=o.offsetWidth/parseFloat(r.fontSize);n+=1.8,a=a>n?a:n}}),t.style.setProperty("--cta-width",`${a}rem`)},J=(t,i)=>{function a(){Array.from(i.querySelectorAll("tr")).forEach(e=>{const r=e.offsetHeight;e.style.setProperty("--row-height",`${r}px`)})}new ResizeObserver(a).observe(i)},M=(t,i)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const a=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);X(t,i,a)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((a,e)=>{const o=a.closest(".dialog__wrapper").querySelector("dialog");if(o){const b=`menu${_(e)}`;o.setAttribute("id",b),o.setAttribute("popover","auto"),a.setAttribute("popovertarget",b),o.outerHTML=o.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}a.classList.add("btn-sm"),a.classList.add("m-0");const n=a.closest("tr"),s=a.closest("td"),m=Array.prototype.slice.call(n.children).indexOf(s);s.classList.add("td--fixed"),i.querySelector(`thead tr th:nth-child(${m+1})`).classList.add("th--fixed")})},X=(t,i,a)=>{Array.from(i.querySelectorAll("thead tr")).forEach(e=>{e.querySelector(".expand-button-heading")?e.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):e.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(i.querySelectorAll("tbody tr")).forEach((e,r)=>{if(e.setAttribute("data-index",r+1),!e.querySelector(".selectrow")){const o=`row${_(r)}`;e.querySelector(".td--expand")?e.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${o}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${o}"><span class="visually-hidden">Select row</span></label></td>`):e.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${o}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${o}"><span class="visually-hidden">Select row</span></label></td>`)}}),i.addEventListener("change",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".selectrow input")){const r=e.target.closest(".selectrow input"),o=e.target.closest("tr"),n=i.querySelectorAll('.selectrow input[type="checkbox"]').length,s=i.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;a.setAttribute("data-selected",n==s?"all":s);const l=new CustomEvent("row-selected",{detail:{rowIndex:o.getAttribute("data-index"),checked:!!r.checked}});t.dispatchEvent(l)}}),a.addEventListener("selected",e=>{if(e.detail.selected=="0"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(o=>{o.checked=!1});const r=new CustomEvent("all-rows-unselected");t.dispatchEvent(r)}else if(e.detail.selected=="all"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(o=>{o.checked=!0});const r=new CustomEvent("all-rows-selected");t.dispatchEvent(r)}})},Y=(t,i,a,e)=>{f(t,i,a,e);const r=t.querySelector("iam-actionbar");a.addEventListener("submit",o=>{Array.from(a.querySelectorAll("[data-duplicate]")).forEach(n=>{const s=n.tagName=="IAM-INPUT"?n.querySelector("input"):n,l=n.getAttribute("data-duplicate");document.querySelector(`[id="${l}"], [name="${l}"]`)&&(document.querySelector(`[id="${l}"], [name="${l}"]`).checked=s.checked)}),f(t,i,a,e),o.preventDefault()}),a.addEventListener("change",o=>{o.target.closest("iam-modal")||f(t,i,a,e)}),Array.from(a.querySelectorAll('[type="hidden"]')).forEach(o=>{o.addEventListener("change",n=>{f(t,i,a,e)})}),r&&(r.addEventListener("change",o=>{f(t,i,a,e)}),r.addEventListener("search-submit",o=>{a.querySelector("input[data-search]")?a.querySelector("input[data-search]").value=o.detail.search:a.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${t.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${o.detail.search}"/>`);const n=new CustomEvent("search-submit",{detail:o.details});t.dispatchEvent(n),f(t,i,a,e)}))},f=function(t,i,a,e){return F(this,void 0,void 0,function*(){t.querySelector("iam-actionbar")&&!t.querySelector("iam-actionbar").closest("form")&&(a.querySelector(".duplicate-actionbar")||a.insertAdjacentHTML("beforeend",'<div class="duplicate-actionbar" style="visibility: hidden; pointer-events: none; position: absolute;"></div>'),a.querySelector(".duplicate-actionbar").innerHTML=t.querySelector("iam-actionbar").innerHTML),a.querySelector("input[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("input[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),a.querySelector("input[name=page]").value=t.getAttribute("data-page"),a.querySelector("input[name=show]").value=t.getAttribute("data-show");const r=new FormData(a);r.set("page_number",r.get("page"));const o=new URLSearchParams(r).toString(),n=i.querySelectorAll("thead tr th:not(.expand-button-heading)"),s=i.querySelector("tbody"),l=a.getAttribute("data-ajax");t.classList.add("table--loading");const m=R(a);Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML="",c.parentNode.classList.remove("hover")});let b=0;Object.values(m).forEach(c=>{typeof c=="object"&&Object.values(c).length?b+=Object.values(c).length:b++}),b&&Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML+=`(${b})`,c.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[l]&&window.controller[l].abort(),window.controller[l]=new AbortController;const{signal:d}=controller[l];e.setAttribute("data-loading","true"),a.classList.add("processing");try{yield fetch(l+"?"+o,{signal:d,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(c=>c.json()).then(c=>{const w=t.hasAttribute("data-schema")?t.getAttribute("data-schema"):"data",C=t.hasAttribute("data-schema-total")?t.getAttribute("data-schema-total"):"meta.total",$=t.hasAttribute("data-schema-page")?t.getAttribute("data-schema-page"):"meta.current_page",L=p(c,C,15),Q=p(c,$,1),S=p(c,w),H=t.hasAttribute("data-empty-msg")?t.getAttribute("data-empty-msg"):"No results found";S?(s.innerHTML="",S.forEach(g=>{const x=document.createElement("tr");n.forEach(u=>{let h="";const v=document.createElement("td");if(v.setAttribute("data-label",u.innerText),u.getAttribute("data-output")&&(h=u.getAttribute("data-output").replace(new RegExp(/{(.*?)}/,"gm"),function(k){return p(g,k.replace("{","").replace("}",""))})),u.hasAttribute("data-output-array")){const A=u.getAttribute("data-output"),k=p(g,A.replace("{","").replace("}",""));h="",k.forEach(q=>{const z=u.getAttribute("data-output-array");let y="";if(u.hasAttribute("data-output-array-property")&&u.hasAttribute("data-output-array-transform")){const j=p(q,u.getAttribute("data-output-array-property")),D=JSON.parse(u.getAttribute("data-output-array-transform"))[j];y=z.replace(`{${u.getAttribute("data-output-array-property")}}`,D)}y=y.replace(new RegExp(/{(.*?)}/,"gm"),function(j){return p(q,j.replace("{","").replace("}",""))}),h+=y})}u.hasAttribute("data-transform")&&(h=JSON.parse(u.getAttribute("data-transform"))[h],!h&&u.hasAttribute("data-default")&&(h=u.getAttribute("data-default"))),v.innerHTML=h,x.appendChild(v)}),s.appendChild(x)}),t.setAttribute("data-total",parseInt(L)),Array.from(a.querySelectorAll("[data-ajax-query]")).forEach(g=>{const x=p(c,g.getAttribute("data-ajax-query"),"");g.hasAttribute("data-total")?g.setAttribute("data-total",x):g.innerHTML=x}),parseInt(L)==0&&(s.innerHTML=`<tr><td colspan="100%"><span>${H}</span></td></tr>`),t.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:l,formData:o}),E(t,i,a,e),M(t,i,a,e)):s.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',e.removeAttribute("data-loading"),a.classList.remove("processing"),i.querySelectorAll("tbody tr").length<parseInt(t.getAttribute("data-show"))&&e.classList.add("d-none")})}catch(c){console.log(c)}})};class G 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=`
2
+ * iamKey v7.6.0
3
+ * Copyright 2022-2026 iamproperty
4
+ */const F=t=>t.charAt(0).toUpperCase()+t.slice(1),p=(t,i,a)=>i.split(/[\.\[\]\'\"]/).filter(e=>e).reduce((e,r)=>e?e[r]:a,t),_=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1));var I=function(t,i,a,e){function r(o){return o instanceof a?o:new a(function(n){n(o)})}return new(a||(a=Promise))(function(o,n){function s(b){try{m(e.next(b))}catch(d){n(d)}}function l(b){try{m(e.throw(b))}catch(d){n(d)}}function m(b){b.done?o(b.value):r(b.value).then(s,l)}m((e=e.apply(t,i||[])).next())})};const P=(t,i)=>{switch(t){case"datetime":return new Date(i).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(i).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(i).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return i=F(i)}},R=function(t){const i=new Object;return Array.from(t.querySelectorAll("[data-filter]")).forEach(e=>{if(!(e.type=="radio"&&!e.checked)&&!(e.type=="checkbox"&&!e.checked)&&e&&e.value){const r=e.getAttribute("data-filter");let o=e.value;e.hasAttribute("data-date-from")&&(o+="-date-from"),e.hasAttribute("data-date-to")&&(o+="-date-to"),i[r]||(i[r]=[]),i[r].push(o)}}),i},O=(t,i,a,e,r)=>{a.querySelector("[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),e.addEventListener("update-show",o=>{if(a.querySelector("[name=show]").value!=o.detail.show){a.querySelector("[name=show]").value=o.detail.show;const n=new CustomEvent("update-show",{detail:{show:o.detail.show}});t.dispatchEvent(n),T(t,e),r()}}),e.addEventListener("update-page",o=>{if(a.querySelector("[name=page]").value!=o.detail.page){a.querySelector("[name=page]").value=o.detail.page;const n=new CustomEvent("update-page",{detail:{page:o.detail.page}});if(t.dispatchEvent(n),T(t,e),r(),!t.hasAttribute("data-no-scroll")){const l=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:l,behavior:"smooth"})}}})},B=(t,i)=>{let a=document.createElement("form");return t.hasAttribute("data-filterby")?a=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?a=t.closest("form"):t.querySelector("form")?a=t.querySelector("form"):i.parentNode.insertBefore(a,i.nextSibling),t.hasAttribute("data-ajax")&&a.setAttribute("data-ajax",t.getAttribute("data-ajax")),a},E=(t,i,a,e)=>{const r=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),N(t,e),U(i),W(t,i),t.classList.contains("mh-sm")&&r.classList.add("mh-sm"),t.classList.contains("mh-md")&&r.classList.add("mh-md"),t.classList.contains("mh-lg")&&r.classList.add("mh-lg"),t.classList.contains("table--cta")&&(V(t,i),J(t,i))},N=(t,i)=>{t.hasAttribute("data-total")&&i.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&i.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&i.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&i.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&i.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&i.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&i.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&i.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&i.setAttribute("data-minimal","true")},T=(t,i)=>{t.setAttribute("data-total",i.getAttribute("data-total")),t.setAttribute("data-page",i.getAttribute("data-page")),t.setAttribute("data-show",i.getAttribute("data-show")),t.setAttribute("data-increment",i.getAttribute("data-show"))},U=t=>{const i=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(e=>{const r=Array.from(e.querySelectorAll("th, td")),o=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];r.forEach((n,s)=>{const l=i[s];if(typeof l<"u"){const m=document.createElement("div");m.innerHTML=l.innerHTML;const b=m.textContent||m.innerText||"";n.setAttribute("data-label",b),l.hasAttribute("data-td-class")&&n.setAttribute("class",l.getAttribute("data-td-class")),l.hasAttribute("data-format")&&(n.setAttribute("data-format",l.getAttribute("data-format")),n.innerHTML=P(l.getAttribute("data-format"),n.textContent.trim())),o.includes(n.textContent.trim().toLowerCase())&&n.setAttribute("data-content",n.textContent.trim().toLowerCase())}})})},W=(t,i)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||i.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(i.querySelectorAll("thead tr")).forEach(a=>{i.querySelectorAll("thead tr th.expand-button-heading").length||a.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(i.querySelectorAll("tbody tr")).forEach((a,e)=>{const r=a.getAttribute("data-view")==="full"?"aria-expanded":"";a.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm" data-expand-button ${r} data-index="${e}">Expand</button></td>`)}),i.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-expand-button]")){const e=a.target.closest("[data-expand-button]"),r=e.closest("tr");e.toggleAttribute("aria-expanded"),r.getAttribute("data-view")=="full"?r.setAttribute("data-view","default"):r.setAttribute("data-view","full"),e.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:e.getAttribute("data-index")}}))}})},V=(t,i)=>{let a=0;Array.from(i.querySelectorAll("tbody tr")).forEach(e=>{const r=window.getComputedStyle(document.querySelector("html")),o=e.querySelector(":scope > *:last-child > *:first-child");if(o){o.classList.add("text-nowrap");let n=o.offsetWidth/parseFloat(r.fontSize);n+=1.8,a=a>n?a:n}}),t.style.setProperty("--cta-width",`${a}rem`)},J=(t,i)=>{function a(){Array.from(i.querySelectorAll("tr")).forEach(e=>{const r=e.offsetHeight;e.style.setProperty("--row-height",`${r}px`)})}new ResizeObserver(a).observe(i)},M=(t,i)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const a=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);X(t,i,a)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach((a,e)=>{const o=a.closest(".dialog__wrapper").querySelector("dialog");if(o){const b=`menu${_(e)}`;o.setAttribute("id",b),o.setAttribute("popover","auto"),a.setAttribute("popovertarget",b),o.outerHTML=o.outerHTML.replace(/<dialog/g,"<iam-menu").replace(/<\/dialog>/g,"</iam-menu>")}a.classList.add("btn-sm"),a.classList.add("m-0");const n=a.closest("tr"),s=a.closest("td"),m=Array.prototype.slice.call(n.children).indexOf(s);s.classList.add("td--fixed"),i.querySelector(`thead tr th:nth-child(${m+1})`).classList.add("th--fixed")})},X=(t,i,a)=>{Array.from(i.querySelectorAll("thead tr")).forEach(e=>{e.querySelector(".expand-button-heading")?e.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):e.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(i.querySelectorAll("tbody tr")).forEach((e,r)=>{if(e.setAttribute("data-index",r+1),!e.querySelector(".selectrow")){const o=`row${_(r)}`;e.querySelector(".td--expand")?e.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${o}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${o}"><span class="visually-hidden">Select row</span></label></td>`):e.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${o}" ${e.hasAttribute("data-selected")?'checked="true"':""}/><label for="${o}"><span class="visually-hidden">Select row</span></label></td>`)}}),i.addEventListener("change",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".selectrow input")){const r=e.target.closest(".selectrow input"),o=e.target.closest("tr"),n=i.querySelectorAll('.selectrow input[type="checkbox"]').length,s=i.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;a.setAttribute("data-selected",n==s?"all":s);const l=new CustomEvent("row-selected",{detail:{rowIndex:o.getAttribute("data-index"),checked:!!r.checked}});t.dispatchEvent(l)}}),a.addEventListener("selected",e=>{if(e.detail.selected=="0"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(o=>{o.checked=!1});const r=new CustomEvent("all-rows-unselected");t.dispatchEvent(r)}else if(e.detail.selected=="all"){Array.from(i.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(o=>{o.checked=!0});const r=new CustomEvent("all-rows-selected");t.dispatchEvent(r)}})},Y=(t,i,a,e)=>{f(t,i,a,e);const r=t.querySelector("iam-actionbar");a.addEventListener("submit",o=>{Array.from(a.querySelectorAll("[data-duplicate]")).forEach(n=>{const s=n.tagName=="IAM-INPUT"?n.querySelector("input"):n,l=n.getAttribute("data-duplicate");document.querySelector(`[id="${l}"], [name="${l}"]`)&&(document.querySelector(`[id="${l}"], [name="${l}"]`).checked=s.checked)}),f(t,i,a,e),o.preventDefault()}),a.addEventListener("change",o=>{o.target.closest("iam-modal")||f(t,i,a,e)}),Array.from(a.querySelectorAll('[type="hidden"]')).forEach(o=>{o.addEventListener("change",n=>{f(t,i,a,e)})}),r&&(r.addEventListener("change",o=>{f(t,i,a,e)}),r.addEventListener("search-submit",o=>{a.querySelector("input[data-search]")?a.querySelector("input[data-search]").value=o.detail.search:a.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${t.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${o.detail.search}"/>`);const n=new CustomEvent("search-submit",{detail:o.details});t.dispatchEvent(n),f(t,i,a,e)}))},f=function(t,i,a,e){return I(this,void 0,void 0,function*(){t.querySelector("iam-actionbar")&&!t.querySelector("iam-actionbar").closest("form")&&(a.querySelector(".duplicate-actionbar")||a.insertAdjacentHTML("beforeend",'<div class="duplicate-actionbar" style="visibility: hidden; pointer-events: none; position: absolute;"></div>'),a.querySelector(".duplicate-actionbar").innerHTML=t.querySelector("iam-actionbar").innerHTML),a.querySelector("input[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("input[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),a.querySelector("input[name=page]").value=t.getAttribute("data-page"),a.querySelector("input[name=show]").value=t.getAttribute("data-show");const r=new FormData(a);r.set("page_number",r.get("page"));const o=new URLSearchParams(r).toString(),n=i.querySelectorAll("thead tr th:not(.expand-button-heading)"),s=i.querySelector("tbody"),l=a.getAttribute("data-ajax");t.classList.add("table--loading");const m=R(a);Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML="",c.parentNode.classList.remove("hover")});let b=0;Object.values(m).forEach(c=>{typeof c=="object"&&Object.values(c).length?b+=Object.values(c).length:b++}),b&&Array.from(a.querySelectorAll("[data-filter-count]")).forEach(c=>{c.innerHTML+=`(${b})`,c.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[l]&&window.controller[l].abort(),window.controller[l]=new AbortController;const{signal:d}=controller[l];e.setAttribute("data-loading","true"),a.classList.add("processing");try{yield fetch(l+"?"+o,{signal:d,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(c=>c.json()).then(c=>{const w=t.hasAttribute("data-schema")?t.getAttribute("data-schema"):"data",C=t.hasAttribute("data-schema-total")?t.getAttribute("data-schema-total"):"meta.total",$=t.hasAttribute("data-schema-page")?t.getAttribute("data-schema-page"):"meta.current_page",L=p(c,C,15),Q=p(c,$,1),S=p(c,w),H=t.hasAttribute("data-empty-msg")?t.getAttribute("data-empty-msg"):"No results found";S?(s.innerHTML="",S.forEach(g=>{const x=document.createElement("tr");n.forEach(u=>{let h="";const v=document.createElement("td");if(v.setAttribute("data-label",u.innerText),u.getAttribute("data-output")&&(h=u.getAttribute("data-output").replace(new RegExp(/{(.*?)}/,"gm"),function(k){return p(g,k.replace("{","").replace("}",""))})),u.hasAttribute("data-output-array")){const A=u.getAttribute("data-output"),k=p(g,A.replace("{","").replace("}",""));h="",k.forEach(q=>{const z=u.getAttribute("data-output-array");let y="";if(u.hasAttribute("data-output-array-property")&&u.hasAttribute("data-output-array-transform")){const j=p(q,u.getAttribute("data-output-array-property")),D=JSON.parse(u.getAttribute("data-output-array-transform"))[j];y=z.replace(`{${u.getAttribute("data-output-array-property")}}`,D)}y=y.replace(new RegExp(/{(.*?)}/,"gm"),function(j){return p(q,j.replace("{","").replace("}",""))}),h+=y})}u.hasAttribute("data-transform")&&(h=JSON.parse(u.getAttribute("data-transform"))[h],!h&&u.hasAttribute("data-default")&&(h=u.getAttribute("data-default"))),v.innerHTML=h,x.appendChild(v)}),s.appendChild(x)}),t.setAttribute("data-total",parseInt(L)),Array.from(a.querySelectorAll("[data-ajax-query]")).forEach(g=>{const x=p(c,g.getAttribute("data-ajax-query"),"");g.hasAttribute("data-total")?g.setAttribute("data-total",x):g.innerHTML=x}),parseInt(L)==0&&(s.innerHTML=`<tr><td colspan="100%"><span>${H}</span></td></tr>`),t.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:l,formData:o}),E(t,i,a,e),M(t,i,a,e)):s.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',e.removeAttribute("data-loading"),a.classList.remove("processing")})}catch(c){console.log(c)}})};class G 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>
6
6
  :host{inset:auto;top:anchor(bottom);left:anchor(left);position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));background:var(--menu-bg, canvas);margin:var(--menu-margin, 0);padding:var(--menu-padding, 0.5rem) !important;border:var(--menu-border, 2px solid grey);overflow:auto;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1)}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem}:host(.menu--md){width:15rem}:host(.menu--lg){width:20rem}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span)){background:unset !important;border:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem !important}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(hr){height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}::slotted(iam-menu:not([popover])){border:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top);left:calc(anchor(right) + 1rem)}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
7
7