@iamproperty/components 5.5.1-beta-4 → 5.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 (83) hide show
  1. package/assets/css/components/actionbar.css +1 -1
  2. package/assets/css/components/actionbar.css.map +1 -1
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/card.css +1 -1
  6. package/assets/css/components/card.css.map +1 -1
  7. package/assets/css/components/card.global.css +1 -1
  8. package/assets/css/components/card.global.css.map +1 -1
  9. package/assets/css/components/pagination.css +1 -1
  10. package/assets/css/components/pagination.css.map +1 -1
  11. package/assets/css/core.min.css +1 -1
  12. package/assets/css/core.min.css.map +1 -1
  13. package/assets/css/style.min.css +1 -1
  14. package/assets/css/style.min.css.map +1 -1
  15. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  16. package/assets/js/components/actionbar/actionbar.component.js +2 -0
  17. package/assets/js/components/actionbar/actionbar.component.min.js +7 -5
  18. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  19. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  20. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  21. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  22. package/assets/js/components/card/card.component.js +8 -5
  23. package/assets/js/components/card/card.component.min.js +8 -6
  24. package/assets/js/components/card/card.component.min.js.map +1 -1
  25. package/assets/js/components/carousel/carousel.component.min.js +28 -0
  26. package/assets/js/components/carousel/carousel.component.min.js.map +1 -0
  27. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  28. package/assets/js/components/fileupload/fileupload.component.js +4 -3
  29. package/assets/js/components/fileupload/fileupload.component.min.js +5 -5
  30. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  31. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  32. package/assets/js/components/header/header.component.min.js +1 -1
  33. package/assets/js/components/inline-edit/inline-edit.component.js +2 -4
  34. package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
  35. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  36. package/assets/js/components/marketing/marketing.component.min.js +17 -0
  37. package/assets/js/components/marketing/marketing.component.min.js.map +1 -0
  38. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  39. package/assets/js/components/nav/nav.component.min.js +1 -1
  40. package/assets/js/components/notification/notification.component.min.js +1 -1
  41. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  42. package/assets/js/components/search/search.component.min.js +1 -1
  43. package/assets/js/components/slider/slider.component.min.js +19 -0
  44. package/assets/js/components/slider/slider.component.min.js.map +1 -0
  45. package/assets/js/components/table/table.component.js +26 -14
  46. package/assets/js/components/table/table.component.min.js +4 -4
  47. package/assets/js/components/table/table.component.min.js.map +1 -1
  48. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  49. package/assets/js/dynamic.min.js +1 -1
  50. package/assets/js/modules/applied-filters.js +5 -1
  51. package/assets/js/modules/fileupload.js +9 -0
  52. package/assets/js/modules/table.js +42 -18
  53. package/assets/js/scripts.bundle.js +11 -9
  54. package/assets/js/scripts.bundle.js.map +1 -1
  55. package/assets/js/scripts.bundle.min.js +2 -2
  56. package/assets/js/scripts.bundle.min.js.map +1 -1
  57. package/assets/sass/components/actionbar.global.scss +10 -0
  58. package/assets/sass/components/actionbar.scss +21 -3
  59. package/assets/sass/components/card.global.scss +30 -1
  60. package/assets/sass/components/card.scss +80 -33
  61. package/assets/sass/components/pagination.scss +1 -1
  62. package/assets/sass/elements/badge-tag.scss +11 -4
  63. package/assets/sass/elements/forms.scss +5 -2
  64. package/assets/ts/components/actionbar/actionbar.component.ts +2 -0
  65. package/assets/ts/components/card/card.component.ts +8 -5
  66. package/assets/ts/components/fileupload/fileupload.component.ts +4 -3
  67. package/assets/ts/components/inline-edit/inline-edit.component.ts +2 -8
  68. package/assets/ts/components/table/table.component.ts +28 -21
  69. package/assets/ts/modules/applied-filters.ts +4 -1
  70. package/assets/ts/modules/fileupload.ts +15 -0
  71. package/assets/ts/modules/table.ts +50 -19
  72. package/dist/components.es.js +497 -591
  73. package/dist/components.umd.js +66 -119
  74. package/package.json +1 -1
  75. package/src/components/AddressLookup/AddressLookup.vue +1 -1
  76. package/src/components/AppliedFilters/AppliedFilters.vue +13 -7
  77. package/src/components/Card/Card.vue +2 -2
  78. package/src/components/Carousel/Carousel.vue +1 -1
  79. package/src/components/Marketing/Marketing.vue +1 -1
  80. package/src/components/Slider/Slider.vue +1 -1
  81. package/src/components/Table/Table.vue +2 -1
  82. package/src/components/Tabs/Tabs.vue +2 -2
  83. package/dist/README.md +0 -21
@@ -36,20 +36,25 @@ class iamTable extends HTMLElement {
36
36
  `;
37
37
  this.shadowRoot.appendChild(template.content.cloneNode(true));
38
38
  // insert extra CSS
39
- if (!document.getElementById('tableExtras'))
39
+ if (!document.getElementById('tableExtras')) {
40
40
  document.head.insertAdjacentHTML('beforeend', `<style id="tableExtras">${loadExtraCSS}</style>`);
41
+ }
41
42
  }
42
43
  connectedCallback() {
43
44
  const params = new URLSearchParams(window.location.search);
44
45
  // Set default attributes
45
- if (!this.hasAttribute('data-total'))
46
+ if (!this.hasAttribute('data-total')) {
46
47
  this.setAttribute('data-total', this.querySelectorAll('table tbody tr').length);
47
- if (!this.hasAttribute('data-page'))
48
+ }
49
+ if (!this.hasAttribute('data-page')) {
48
50
  this.setAttribute('data-page', (params.has('page') ? params.get('page') : 1));
49
- if (!this.hasAttribute('data-show'))
51
+ }
52
+ if (!this.hasAttribute('data-show')) {
50
53
  this.setAttribute('data-show', (params.has('show') ? params.get('show') : 15));
51
- if (!this.hasAttribute('data-increment'))
54
+ }
55
+ if (!this.hasAttribute('data-increment')) {
52
56
  this.setAttribute('data-increment', this.getAttribute('data-show'));
57
+ }
53
58
  // Update table__wrapper class
54
59
  let classList = this.classList.toString();
55
60
  classList = classList.replace('table--cta', '');
@@ -57,8 +62,9 @@ class iamTable extends HTMLElement {
57
62
  //classList = classList.replace('mh-md','');
58
63
  this.shadowRoot.querySelector('.table__wrapper').className += ` ${classList}`;
59
64
  // set actionbar class if needed
60
- if (this.querySelector('.actionbar__sticky'))
65
+ if (this.querySelector('.actionbar__sticky')) {
61
66
  this.shadowRoot.querySelector('.table__wrapper').classList.add('has-actionbar');
67
+ }
62
68
  this.table = this.querySelector('table');
63
69
  this.savedTableBody = this.table.querySelector('tbody').cloneNode(true);
64
70
  this.pagination = this.shadowRoot.querySelector('iam-pagination');
@@ -66,16 +72,21 @@ class iamTable extends HTMLElement {
66
72
  this.pagination.setAttribute('data-page', this.getAttribute('data-page'));
67
73
  this.pagination.setAttribute('data-show', this.getAttribute('data-show'));
68
74
  this.pagination.setAttribute('data-increment', this.getAttribute('data-show'));
69
- if (this.hasAttribute('data-page-jump'))
75
+ if (this.hasAttribute('data-page-jump')) {
70
76
  this.pagination.setAttribute('data-page-jump', 'true');
71
- if (this.hasAttribute('data-per-page'))
77
+ }
78
+ if (this.hasAttribute('data-per-page')) {
72
79
  this.pagination.setAttribute('data-per-page', 'true');
73
- if (this.hasAttribute('data-item-count'))
80
+ }
81
+ if (this.hasAttribute('data-item-count')) {
74
82
  this.pagination.setAttribute('data-item-count', 'true');
75
- if (this.hasAttribute('data-loading'))
83
+ }
84
+ if (this.hasAttribute('data-loading')) {
76
85
  this.pagination.setAttribute('data-loading', 'true');
77
- if (this.classList.contains('table--fullwidth'))
86
+ }
87
+ if (this.classList.contains('table--fullwidth')) {
78
88
  this.pagination.setAttribute('data-minimal', 'true');
89
+ }
79
90
  // Remove table CTA
80
91
  const isCTA = this.classList.contains('table--cta');
81
92
  if (!isCTA)
@@ -89,8 +100,9 @@ class iamTable extends HTMLElement {
89
100
  this.table.parentNode.insertBefore(this.form, this.table.nextSibling);
90
101
  }
91
102
  // Set ajax class
92
- if (this.form.hasAttribute('data-ajax'))
103
+ if (this.form.hasAttribute('data-ajax')) {
93
104
  this.table.classList.add('table--ajax');
105
+ }
94
106
  // Create a data list if a search input is present
95
107
  tableModule.createSearchDataList(this.table, this.form);
96
108
  if (!this.form.querySelector('[data-pagination]')) {
@@ -113,8 +125,8 @@ class iamTable extends HTMLElement {
113
125
  return ID;
114
126
  }
115
127
  // Add in the checkboxes
116
- if (this.querySelector('iam-actionbar[data-selectall]')) {
117
- const actionbar = this.querySelector('iam-actionbar[data-selectall]');
128
+ if (this.querySelector('iam-actionbar[data-selectall]') || document.querySelector(`iam-actionbar[data-for='${this.getAttribute('id')}']`)) {
129
+ const actionbar = this.querySelector('iam-actionbar[data-selectall]') ? this.querySelector('iam-actionbar[data-selectall]') : document.querySelector(`iam-actionbar[data-for='${this.getAttribute('id')}']`);
118
130
  Array.from(this.table.querySelectorAll('thead tr')).forEach((row, index) => {
119
131
  row.insertAdjacentHTML('afterbegin', `<th class="th--fixed"></th>`);
120
132
  });
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * iamKey v5.5.1-beta-4
2
+ * iamKey v5.6.0
3
3
  * Copyright 2022-2024 iamproperty
4
- */const B=function(i){return typeof i!="string"?!1:!isNaN(i)&&!isNaN(parseFloat(i))},Q=(i,e)=>String(i).padStart(e,"0"),X=i=>i.charAt(0).toUpperCase()+i.slice(1),k=(i,e,n)=>e.split(/[\.\[\]\'\"]/).filter(a=>a).reduce((a,p)=>a?a[p]:n,i);var Y=function(i,e,n,a){function p(s){return s instanceof n?s:new n(function(r){r(s)})}return new(n||(n=Promise))(function(s,r){function l(c){try{t(a.next(c))}catch(o){r(o)}}function d(c){try{t(a.throw(c))}catch(o){r(o)}}function t(c){c.done?s(c.value):p(c.value).then(l,d)}t((a=a.apply(i,e||[])).next())})};const R=i=>{const e=Array.from(i.querySelectorAll("thead th"));Array.from(i.querySelectorAll("tbody tr")).forEach((a,p)=>{const s=Array.from(a.querySelectorAll("th, td")),r=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","error"];s.forEach((l,d)=>{const t=e[d];if(typeof t<"u"){let c=document.createElement("div");c.innerHTML=t.innerHTML;let o=c.textContent||c.innerText||"";l.setAttribute("data-label",o),t.hasAttribute("data-td-class")&&l.setAttribute("class",t.getAttribute("data-td-class")),t.hasAttribute("data-format")&&(l.setAttribute("data-format",t.getAttribute("data-format")),l.innerHTML=D(t.getAttribute("data-format"),l.textContent.trim())),r.includes(l.textContent.trim().toLowerCase())&&l.setAttribute("data-content",l.textContent.trim().toLowerCase())}})})},J=i=>{let e=0;return Array.from(i.querySelectorAll("tbody tr")).forEach((n,a)=>{let p=window.getComputedStyle(document.querySelector("html")),s=n.querySelector(":scope > *:last-child > *:first-child");if(s){s.classList.add("text-nowrap");let r=s.offsetWidth/parseFloat(p.fontSize);r+=1.7,e=e>r?e:r}}),e},G=(i,e)=>{if(e.classList.contains("table--fullwidth")&&!e.hasAttribute("data-expandable")||i.querySelectorAll("thead tr th").length<4&&!e.hasAttribute("data-expandable"))return!1;Array.from(i.querySelectorAll("thead tr")).forEach((n,a)=>{i.querySelectorAll("thead tr th.expand-button-heading").length||n.insertAdjacentHTML("afterbegin",'<th class="th--fixed expand-button-heading"></th>')}),Array.from(i.querySelectorAll("tbody tr")).forEach((n,a)=>{const p=n.getAttribute("data-view")==="full"?"aria-expanded":"";n.insertAdjacentHTML("afterbegin",`<td class="td--fixed td--expand"><button class="btn btn-compact btn-secondary" data-expand-button ${p}>Expand</button></td>`)})},V=i=>{i.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){let n=e.target.closest("[data-expand-button]"),a=n.closest("tr");n.toggleAttribute("aria-expanded"),a.getAttribute("data-view")=="full"?a.setAttribute("data-view","default"):a.setAttribute("data-view","full"),n.blur()}})},N=(i,e)=>{let n=e.querySelector("input[data-search]");if(!n)return!1;const a=n.getAttribute("id"),p=n.getAttribute("data-search").split(",");let s=n.parentNode,r={};p.forEach((l,d)=>{Array.from(i.querySelectorAll('td[data-label="'+l.trim()+'"]')).forEach((t,c)=>{t.querySelector(".td__content")?r[t.querySelector(".td__content").textContent]=t.querySelector(".td__content").textContent:r[t.textContent]=t.textContent})}),n.setAttribute("list",`${a}_list`),n.setAttribute("autocomplete","off"),s.querySelector("datalist")||(s.innerHTML+=`<datalist id="${a}_list"></datalist>`),s.querySelector("datalist").innerHTML=`${Object.keys(r).map(l=>`<option value="${l}"></option>`).join("")}`},K=(i,e,n,a,p)=>{var s;let r=function(t,c=!1){if(console.log("submit"),e.classList.contains("processing"))return!1;if(Array.from(e.querySelectorAll("iam-applied-filters")).forEach((o,b)=>{var h=new Event("tags-set");o.dispatchEvent(h)}),t.type=="submit"&&(e.classList.add("processing"),Array.from(e.querySelectorAll("[data-duplicate]")).forEach((o,b)=>{const h=o.getAttribute("data-duplicate"),u=document.getElementById(h),y=document.querySelector(`[for="${h}"] iam-card`);if(u.checked!=o.checked)if(y){let w=new Event("click");y.dispatchEvent(w)}else u.checked=o.checked}),e.classList.remove("processing")),e.hasAttribute("data-ajax")){if(!c){let o=e.querySelector("[data-pagination]");o.value=1,a.setAttribute("data-page",1)}I(i,e,n,a)}else e.hasAttribute("data-submit")?e.submit():(C(i,e,a),_(i,e));if(e.hasAttribute("data-ajax-post")){let o=new FormData(e),b=new URLSearchParams(o).toString();const h=new XMLHttpRequest;h.open("GET",`${window.location.href}?ajax=true&${b}`),h.send()}};e.querySelector("iam-actionbar[data-search]")&&e.querySelector("iam-actionbar[data-search]").addEventListener("search-submit",t=>{e.querySelector("input[data-search]")?e.querySelector("input[data-search]").value=t.detail.search:e.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${e.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${t.detail.search}"/>`),clearTimeout(s),r(t)}),e.addEventListener("keyup",t=>{clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&(s=setTimeout(function(){r(t)},500))}),e.addEventListener("change",t=>{clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest("[data-sort]")&&(e.hasAttribute("data-submit")||O(i,e,p),r(t)),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter][data-no-ajax]")?(C(i,e,a),_(i,e)):(t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&t.target.closest("form .dialog__wrapper > dialog")||t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&!t.target.closest("form dialog"))&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-show]")&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-mimic]")&&r(t)}),e.addEventListener("click",t=>{if(clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest('dialog button:not([type="button"])')&&t.target.closest('dialog button:not([type="button"])').closest("dialog").close(),t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__close")&&(t.preventDefault(),t.stopPropagation()),t&&t.target instanceof HTMLElement&&t.target.closest("[data-clear]")){e.classList.add("processing"),Array.from(e.querySelectorAll(".applied-filters")).forEach((o,b)=>{o.innerHTML=""});let c=e.elements;for(let o=0;o<c.length;o++)switch(c[o].type.toLowerCase()?c[o].type.toLowerCase():"text"){case"text":case"password":case"textarea":c[o].value="";break;case"radio":case"checkbox":if(c[o].checked){let h=c[o],u=h.getAttribute("id"),y=document.querySelector(`[for="${u}"`);if(y.querySelector("iam-card")){let w=y.querySelector("iam-card"),L=new Event("click");w.dispatchEvent(L)}h.checked=!1}break;case"select-one":case"select-multi":c[o].selectedIndex=-1;break}e.classList.remove("processing"),e.hasAttribute("data-submit")||O(i,e,p),r(t)}}),e.addEventListener("submit",t=>{clearTimeout(s),e.hasAttribute("data-submit")||t.preventDefault(),r(t)}),e.addEventListener("force",t=>{r(t)}),e.addEventListener("paginate",t=>{r(t,!0)});let l=[],d=[];Array.from(e.querySelectorAll("[data-mimic]")).forEach((t,c)=>{let o=t.getAttribute("data-mimic");Array.from(document.querySelectorAll(`[name="${o}"]`)).forEach((b,h)=>{let u=b.closest("form");l.includes(u)||l.push(u),d.includes(o)||d.push(o)})}),l.forEach((t,c)=>{const o=function(){let b=[],h=new FormData(t);for(const[u,y]of h)document.querySelector(`[data-mimic="${u}"]`)&&!b.includes(u)?(b.push(u),document.querySelector(`[data-mimic="${u}"]`).value=y):document.querySelector(`[data-mimic="${u}"]`)&&(document.querySelector(`[data-mimic="${u}"]`).value+=","+y);for(const u of b){const y=new Event("force");e.dispatchEvent(y)}for(const u of d)if(!h.has(u)&&t.querySelector(`[name="${u}"]`)){document.querySelector(`[data-mimic="${u}"]`).value="";const y=new Event("force");e.dispatchEvent(y)}};t.addEventListener("force",b=>{o()}),t.addEventListener("change",b=>{o()})})},O=(i,e,n)=>{if(e.getAttribute("data-ajax"))return!1;let a=i.querySelector("tbody"),p=e.querySelector('input[type="radio"][data-sort]:checked');if(e.querySelector("select[data-sort]")){let o=e.querySelector("select[data-sort]");p=e.querySelector(`select[data-sort] option:nth-child(${o.selectedIndex+1})`)}let s=p.getAttribute("data-sort"),r=p.getAttribute("data-order"),l=p.getAttribute("data-format");if(!s)return a.innerHTML=n.innerHTML,R(i),!1;let d=[];["asc","desc","descending"].includes(r)||(d=r.split(","));let t=[];Array.from(a.querySelectorAll("tr")).forEach((o,b)=>{let h=o.querySelector('td[data-label="'+s+'"], th[data-label="'+s+'"]').textContent.trim();o.querySelector('[data-label="'+s+'"] .td__content')&&(h=o.querySelector('[data-label="'+s+'"] .td__content').textContent.trim()),d.length&&d.includes(h)&&(h=d.indexOf(h)),B(h)&&(h=Q(h,10)),l&&l=="date"&&(h=new Date(h));const u={index:h,row:o};t.push(u)}),t.sort((o,b)=>o.index>b.index?1:-1),(r=="descending"||r=="desc")&&(t=t.reverse());let c="";t.forEach((o,b)=>{c+=o.row.outerHTML}),a.innerHTML=c},C=(i,e,n)=>{i.classList.remove("table--filtered");let a=z(e),p=[],s=0,r=e.querySelector("[data-pagination]")?parseInt(e.querySelector("[data-pagination]").value):1,l=e.querySelector("[data-show]")?parseInt(e.querySelector("[data-show]").value):15;if(Array.from(i.querySelectorAll("tbody tr")).forEach((t,c)=>{t.classList.remove("filtered"),t.classList.remove("filtered--matched"),t.classList.remove("filtered--show"),t.removeAttribute("data-filtered-by")}),e.querySelector("input[data-search]")){let t=e.querySelector("input[data-search]");e.querySelector("input[data-search]").getAttribute("data-search").split(",").forEach((o,b)=>{p.push({column:`${o.trim()}`,value:`${t.value}`})})}Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML="",t.parentNode.classList.remove("hover")});let d=0;Object.values(a).forEach((t,c)=>{typeof t=="object"&&Object.values(t).length?d+=Object.values(t).length:d++}),d&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML+=`(${d})`,t.parentNode.classList.add("hover")}),i.classList.add("table--filtered");for(const[t,c]of Object.entries(a))Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).forEach((o,b)=>{let h=!1;c.forEach((u,y)=>{let w=o.querySelector(`[data-label="${t}"]`);if(u.includes("-date-from")){let f=new Date(u.replace("-date-from","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g<f?(o.classList.add("less-than-from-date"),h=!1):!o.classList.contains("less-than-from-date")&&!o.classList.contains("greater-than-to-date")&&(h=!0)}else if(u.includes("-date-to")){let f=new Date(u.replace("-date-to","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g>f?(o.classList.add("greater-than-to-date"),h=!1):!o.classList.contains("less-than-from-date")&&!o.classList.contains("greater-than-to-date")&&(h=!0)}if(u&&u=="$today")u=D("date",new Date);else if(u&&u=="$yesterday"){let f=new Date;f.setDate(f.getDate()-1),u=D("date",f)}else if(u&&(u=="$thisWeek"||u=="$lastWeek")){let f=new Date,g=new Date(f.setDate(f.getDate()-(f.getDay()-1))),m=new Date(f.setDate(f.getDate()-f.getDay()+7)),x=new Date(w.textContent.toLowerCase());if(f.setHours(0,0,0,0),g.setHours(0,0,0,0),m.setHours(0,0,0,0),x.setHours(0,0,0,0),u=="$thisWeek")h=x>=g&&x<=m;else{let A=new Date(g.setDate(g.getDate()-7)),S=new Date(m.setDate(m.getDate()-7));A.setHours(0,0,0,0),S.setHours(0,0,0,0),h=x>=A&&x<=S}}else if(u&&u=="$thisMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var L=new Date(g,m,1),q=new Date(g,m+1,0);let x=new Date(w.textContent.toLowerCase());L.setHours(0,0,0,0),q.setHours(0,0,0,0),x.setHours(0,0,0,0),h=x>=L&&x<=q}else if(u&&u=="$lastMonth"){let f=new Date,g=f.getFullYear(),m=f.getMonth();var E=new Date(g,m-1,1),v=new Date(g,m,0);let x=new Date(w.textContent.toLowerCase());E.setHours(0,0,0,0),v.setHours(0,0,0,0),x.setHours(0,0,0,0),h=x>=E&&x<=v}w&&w.textContent.toLowerCase().includes(u.replace("-"," ").toLowerCase())&&(h=!0)}),h||(o.classList.add("filtered"),o.setAttribute("data-filtered-by",t))});Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,c)=>{let o=!(p.length>0&&p[0].value.length>=3);p.forEach((b,h)=>{let u=t.querySelector(`[data-label="${b.column}"]`);u&&b.value.length>=3&&u.textContent.toLowerCase().includes(b.value.toLowerCase())&&(o=!0)}),o||t.classList.add("filtered")}),Array.from(i.querySelectorAll("tbody tr:not(.filtered")).forEach((t,c)=>{s++,t.classList.add("filtered--matched"),Math.ceil(s/l)==parseInt(r)&&t.classList.add("filtered--show")}),n&&(n.setAttribute("data-total",s),n.setAttribute("data-show",l),n.setAttribute("data-page",r))},_=(i,e,n)=>{Array.from(e.querySelectorAll("[data-query]")).forEach((p,s)=>{let r=p.getAttribute("data-query"),l=0;if(r=="total")n.hasAttribute("data-total")?l=n.getAttribute("data-total"):l=(i.classList.contains("table--filtered"),i.querySelectorAll("tbody tr").length);else if(!r.includes(" == ")&&r.includes(" & ")){let d=r.split(" & "),t="";d.forEach(c=>{t+=`:not([data-filtered-by="${c}"])`}),l=Array.from(i.querySelectorAll(`tbody tr${t}`)).length}else if(!r.includes(" == "))l=Array.from(i.querySelectorAll(`tbody tr:not([data-filtered-by="${r}"])`)).length;else if(r.includes(" && ")){let d=r.split(" && ");l=Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).filter(function(t){let c=!0;for(const[o,b]of Object.entries(d)){let h=b.split(" == ");(!t.querySelector(`td[data-label="${h[0]}"]`)||t.querySelector(`td[data-label="${h[0]}"]`).textContent!=`${h[1]}`)&&(c=!1)}return c}).length}else{let d=r.split(" == ");l=Array.from(i.querySelectorAll(`tbody tr.filtered--matched td[data-label="${d[0]}"], tbody tr[data-filtered-by="${d[0]}"] td[data-label="${d[0]}"]`)).filter(function(t){return t.textContent===d[1]}).length}p.hasAttribute("data-total")?p.setAttribute("data-total",l):p.innerHTML=l})},Z=function(i,e,n,a){n.addEventListener("update-page",p=>{let s=e.querySelector("[data-pagination]"),r=p.detail.page;if(s.value=r,e.dispatchEvent(new Event("paginate")),a.setAttribute("data-page",r),i.hasAttribute("data-show-history")){const l=new URL(location);l.searchParams.set("page",r),history.pushState({type:"pagination",form:e.getAttribute("id"),page:r},"",l)}if(!a.hasAttribute("data-no-scroll")){const d=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:d,behavior:"smooth"})}}),n.addEventListener("update-show",p=>{let s=e.querySelector("[data-show]"),r=p.detail.show;s.value=r,a.setAttribute("data-show",r),e.dispatchEvent(new Event("submit"))})},tt=(i,e)=>{if(!i)return!1;i.addEventListener("click",n=>{et(e)})},et=function(i){for(var e=[],n=i.getElementsByTagName("tr"),a=0;a<n.length;a++){for(var p=n[a].querySelectorAll("td,th"),s=[],r=0;r<p.length;r++)s.push(`"${p[r].textContent}"`);e.push(s.join(","))}e=e.join(`
5
- `);let l=new Blob([e],{type:"text/csv"});var d=document.createElement("a");d.download="export.csv";var t=window.URL.createObjectURL(l);d.href=t,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)},P=function(i,e,n,a){if(R(i),G(i,a),_(i,e,a),a&&a.classList.contains("table--cta")){let s=function(){Array.from(i.querySelectorAll("tr")).forEach((r,l)=>{let d=r.offsetHeight;r.style.setProperty("--row-height",`${d}px`)})};const p=J(i);a.style.setProperty("--cta-width",`${p}rem`),new ResizeObserver(s).observe(i)}},z=function(i){let e=new Object;return Array.from(i.querySelectorAll("[data-filter]")).forEach((a,p)=>{if(!(a.type=="radio"&&!a.checked)&&!(a.type=="checkbox"&&!a.checked)&&a&&a.value){let s=a.getAttribute("data-filter"),r=a.value;a.hasAttribute("data-date-from")&&(r+="-date-from"),a.hasAttribute("data-date-to")&&(r+="-date-to"),e[s]||(e[s]=new Array),e[s].push(r)}}),e},I=function(i,e,n,a){return Y(this,void 0,void 0,function*(){let p=new FormData(e),s=new URLSearchParams(p).toString(),r=i.querySelectorAll("thead tr th:not(.expand-button-heading)"),l=i.querySelector("tbody"),d=e.getAttribute("data-ajax");a.classList.add("table--loading");let t=z(e);Array.from(e.querySelectorAll("[data-filter-count]")).forEach((b,h)=>{b.innerHTML="",b.parentNode.classList.remove("hover")});let c=0;Object.values(t).forEach((b,h)=>{typeof b=="object"&&Object.values(b).length?c+=Object.values(b).length:c++}),c&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((b,h)=>{b.innerHTML+=`(${c})`,b.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[d]&&window.controller[d].abort(),window.controller[d]=new AbortController;const{signal:o}=controller[d];n.setAttribute("data-loading","true"),e.classList.add("processing");try{yield fetch(d+"?"+s,{signal:o,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(b=>b.json()).then(b=>{let h=e.hasAttribute("data-schema")?e.getAttribute("data-schema"):"data",u=e.hasAttribute("data-schema-total")?e.getAttribute("data-schema-total"):"meta.total",y=e.hasAttribute("data-schema-page")?e.getAttribute("data-schema-page"):"meta.current_page",w=k(b,u,15),L=k(b,y,1),q=k(b,h),E=a.hasAttribute("data-empty-msg")?a.getAttribute("data-empty-msg"):"No results found";q?(l.innerHTML="",q.forEach((v,f)=>{var g=document.createElement("tr");r.forEach((m,x)=>{let A="";var S=document.createElement("td");if(S.setAttribute("data-label",m.innerText),m.getAttribute("data-output")){var H=m.getAttribute("data-output");A=H.replace(new RegExp(/{(.*?)}/,"gm"),function(M){return k(v,M.replace("{","").replace("}",""))})}if(m.hasAttribute("data-output-array")){var H=m.getAttribute("data-output");let F=k(v,H.replace("{","").replace("}",""));A="",F.forEach((j,it)=>{let W=m.getAttribute("data-output-array"),T="";if(m.hasAttribute("data-output-array-property")&&m.hasAttribute("data-output-array-transform")){const $=k(j,m.getAttribute("data-output-array-property")),U=JSON.parse(m.getAttribute("data-output-array-transform"))[$];T=W.replace(`{${m.getAttribute("data-output-array-property")}}`,U)}T=T.replace(new RegExp(/{(.*?)}/,"gm"),function($){return k(j,$.replace("{","").replace("}",""))}),A+=T})}m.hasAttribute("data-transform")&&(A=JSON.parse(m.getAttribute("data-transform"))[A],!A&&m.hasAttribute("data-default")&&(A=m.getAttribute("data-default"))),S.innerHTML=A,g.appendChild(S)}),l.appendChild(g)}),N(i,e),a.setAttribute("data-total",parseInt(w)),a.setAttribute("data-page",parseInt(L)),P(i,e,n,a),Array.from(e.querySelectorAll("[data-ajax-query]")).forEach((v,f)=>{let g=k(b,v.getAttribute("data-ajax-query"),"");v.hasAttribute("data-total")?v.setAttribute("data-total",g):v.innerHTML=g}),parseInt(w)==0&&(l.innerHTML=`<tr><td colspan="100%"><span>${E}</span></td></tr>`),a.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:d,formData:s})):l.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',n.removeAttribute("data-loading"),e.classList.remove("processing")})}catch(b){console.log(b)}})},D=(i,e)=>{switch(i){case"datetime":return new Date(e).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(e).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(e).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return e=X(e)}};class at extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",n=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
4
+ */const B=function(i){return typeof i!="string"?!1:!isNaN(i)&&!isNaN(parseFloat(i))},Q=(i,e)=>String(i).padStart(e,"0"),X=i=>i.charAt(0).toUpperCase()+i.slice(1),S=(i,e,n)=>e.split(/[\.\[\]\'\"]/).filter(a=>a).reduce((a,m)=>a?a[m]:n,i);var Y=function(i,e,n,a){function m(s){return s instanceof n?s:new n(function(r){r(s)})}return new(n||(n=Promise))(function(s,r){function l(c){try{t(a.next(c))}catch(o){r(o)}}function d(c){try{t(a.throw(c))}catch(o){r(o)}}function t(c){c.done?s(c.value):m(c.value).then(l,d)}t((a=a.apply(i,e||[])).next())})};const R=i=>{const e=Array.from(i.querySelectorAll("thead th"));Array.from(i.querySelectorAll("tbody tr")).forEach((a,m)=>{const s=Array.from(a.querySelectorAll("th, td")),r=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","error"];s.forEach((l,d)=>{const t=e[d];if(typeof t<"u"){let c=document.createElement("div");c.innerHTML=t.innerHTML;let o=c.textContent||c.innerText||"";l.setAttribute("data-label",o),t.hasAttribute("data-td-class")&&l.setAttribute("class",t.getAttribute("data-td-class")),t.hasAttribute("data-format")&&(l.setAttribute("data-format",t.getAttribute("data-format")),l.innerHTML=D(t.getAttribute("data-format"),l.textContent.trim())),r.includes(l.textContent.trim().toLowerCase())&&l.setAttribute("data-content",l.textContent.trim().toLowerCase())}})})},J=i=>{let e=0;return Array.from(i.querySelectorAll("tbody tr")).forEach((n,a)=>{let m=window.getComputedStyle(document.querySelector("html")),s=n.querySelector(":scope > *:last-child > *:first-child");if(s){s.classList.add("text-nowrap");let r=s.offsetWidth/parseFloat(m.fontSize);r+=1.7,e=e>r?e:r}}),e},G=(i,e)=>{if(e.classList.contains("table--fullwidth")&&!e.hasAttribute("data-expandable")||i.querySelectorAll("thead tr th").length<4&&!e.hasAttribute("data-expandable"))return!1;Array.from(i.querySelectorAll("thead tr")).forEach((n,a)=>{i.querySelectorAll("thead tr th.expand-button-heading").length||n.insertAdjacentHTML("afterbegin",'<th class="th--fixed expand-button-heading"></th>')}),Array.from(i.querySelectorAll("tbody tr")).forEach((n,a)=>{const m=n.getAttribute("data-view")==="full"?"aria-expanded":"";n.insertAdjacentHTML("afterbegin",`<td class="td--fixed td--expand"><button class="btn btn-compact btn-secondary" data-expand-button ${m}>Expand</button></td>`)})},V=i=>{i.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){let n=e.target.closest("[data-expand-button]"),a=n.closest("tr");n.toggleAttribute("aria-expanded"),a.getAttribute("data-view")=="full"?a.setAttribute("data-view","default"):a.setAttribute("data-view","full"),n.blur()}})},N=(i,e)=>{let n=e.querySelector("input[data-search]");if(!n)return!1;const a=n.getAttribute("id"),m=n.getAttribute("data-search").split(",");let s=n.parentNode,r={};m.forEach((l,d)=>{Array.from(i.querySelectorAll('td[data-label="'+l.trim()+'"]')).forEach((t,c)=>{t.querySelector(".td__content")?r[t.querySelector(".td__content").textContent]=t.querySelector(".td__content").textContent:r[t.textContent]=t.textContent})}),n.setAttribute("list",`${a}_list`),n.setAttribute("autocomplete","off"),s.querySelector("datalist")||(s.innerHTML+=`<datalist id="${a}_list"></datalist>`),s.querySelector("datalist").innerHTML=`${Object.keys(r).map(l=>`<option value="${l}"></option>`).join("")}`},K=(i,e,n,a,m)=>{var s;let r=function(t,c=!1){if(console.log("submit"),e.classList.contains("processing"))return!1;if(Array.from(e.querySelectorAll("iam-applied-filters")).forEach((o,b)=>{var h=new Event("tags-set");o.dispatchEvent(h)}),t.type=="submit"&&(e.classList.add("processing"),Array.from(e.querySelectorAll("[data-duplicate]")).forEach((o,b)=>{const h=o.getAttribute("data-duplicate"),u=document.getElementById(h),y=document.querySelector(`[for="${h}"] iam-card`);if(u.checked!=o.checked)if(y){let w=new Event("click");y.dispatchEvent(w)}else u.checked=o.checked}),e.classList.remove("processing")),e.hasAttribute("data-ajax")){if(!c){let o=e.querySelector("[data-pagination]");o.value=1,a.setAttribute("data-page",1)}I(i,e,n,a)}else e.hasAttribute("data-submit")?e.submit():(C(i,e,a),$(i,e));if(e.hasAttribute("data-ajax-post")){let o=new FormData(e),b=new URLSearchParams(o).toString();const h=new XMLHttpRequest;h.open("GET",`${window.location.href}?ajax=true&${b}`),h.send()}};e.querySelector("iam-actionbar[data-search]")&&e.querySelector("iam-actionbar[data-search]").addEventListener("search-submit",t=>{e.querySelector("input[data-search]")?e.querySelector("input[data-search]").value=t.detail.search:e.insertAdjacentHTML("beforeend",`<input type="hidden" name="search" data-search="${e.querySelector("iam-actionbar[data-search]").getAttribute("data-search")}" value="${t.detail.search}"/>`),clearTimeout(s),r(t)}),e.addEventListener("keyup",t=>{clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&(s=setTimeout(function(){r(t)},500))}),e.addEventListener("change",t=>{if(clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest("[data-sort]")&&(e.hasAttribute("data-submit")||O(i,e,m),r(t)),t&&t.target instanceof HTMLElement&&t.target.closest("input[data-search]")&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter][data-no-ajax]")?(C(i,e,a),$(i,e)):(t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&t.target.closest("form .dialog__wrapper > dialog")||t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&!t.target.closest("form dialog"))&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-show]")&&r(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-mimic]")&&r(t),t&&t.target instanceof HTMLElement&&t.target.hasAttribute("id")){let c=t.target.getAttribute("id");document.querySelector(`[data-duplicate="${c}"]`)&&(document.querySelector(`[data-duplicate="${c}"]`).checked=t.target.checked)}}),e.addEventListener("click",t=>{if(clearTimeout(s),t&&t.target instanceof HTMLElement&&t.target.closest('dialog button:not([type="button"])')&&t.target.closest('dialog button:not([type="button"])').closest("dialog").close(),t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__close")&&(t.preventDefault(),t.stopPropagation()),t&&t.target instanceof HTMLElement&&t.target.closest("[data-clear]")){e.classList.add("processing"),Array.from(e.querySelectorAll(".applied-filters")).forEach((o,b)=>{o.innerHTML=""});let c=e.elements;for(let o=0;o<c.length;o++)switch(c[o].type.toLowerCase()?c[o].type.toLowerCase():"text"){case"text":case"password":case"textarea":c[o].value="";break;case"radio":case"checkbox":if(c[o].checked){let h=c[o],u=h.getAttribute("id"),y=document.querySelector(`[for="${u}"`);if(y.querySelector("iam-card")){let w=y.querySelector("iam-card"),k=new Event("click");w.dispatchEvent(k)}h.checked=!1}break;case"select-one":case"select-multi":c[o].selectedIndex=-1;break}e.classList.remove("processing"),e.hasAttribute("data-submit")||O(i,e,m),r(t)}}),e.addEventListener("submit",t=>{clearTimeout(s),e.hasAttribute("data-submit")||t.preventDefault(),r(t)}),e.addEventListener("force",t=>{r(t)}),e.addEventListener("paginate",t=>{r(t,!0)});let l=[],d=[];Array.from(e.querySelectorAll("[data-mimic]")).forEach((t,c)=>{let o=t.getAttribute("data-mimic");Array.from(document.querySelectorAll(`[name="${o}"]`)).forEach((b,h)=>{let u=b.closest("form");l.includes(u)||l.push(u),d.includes(o)||d.push(o)})}),l.forEach((t,c)=>{const o=function(){let b=[],h=new FormData(t);for(const[u,y]of h)document.querySelector(`[data-mimic="${u}"]`)&&!b.includes(u)?(b.push(u),document.querySelector(`[data-mimic="${u}"]`).value=y):document.querySelector(`[data-mimic="${u}"]`)&&(document.querySelector(`[data-mimic="${u}"]`).value+=","+y);for(const u of b){const y=new Event("force");e.dispatchEvent(y)}for(const u of d)if(!h.has(u)&&t.querySelector(`[name="${u}"]`)){document.querySelector(`[data-mimic="${u}"]`).value="";const y=new Event("force");e.dispatchEvent(y)}};t.addEventListener("force",b=>{o()}),t.addEventListener("change",b=>{o()})})},O=(i,e,n)=>{if(e.getAttribute("data-ajax"))return!1;let a=i.querySelector("tbody"),m=e.querySelector('input[type="radio"][data-sort]:checked');if(e.querySelector("select[data-sort]")){let o=e.querySelector("select[data-sort]");m=e.querySelector(`select[data-sort] option:nth-child(${o.selectedIndex+1})`)}let s=m.getAttribute("data-sort"),r=m.getAttribute("data-order"),l=m.getAttribute("data-format");if(!s)return a.innerHTML=n.innerHTML,R(i),!1;let d=[];["asc","desc","descending"].includes(r)||(d=r.split(","));let t=[];Array.from(a.querySelectorAll("tr")).forEach((o,b)=>{let h=o.querySelector('td[data-label="'+s+'"], th[data-label="'+s+'"]').textContent.trim();o.querySelector('[data-label="'+s+'"] .td__content')&&(h=o.querySelector('[data-label="'+s+'"] .td__content').textContent.trim()),d.length&&d.includes(h)&&(h=d.indexOf(h)),B(h)&&(h=Q(h,10)),l&&l=="date"&&(h=new Date(h));const u={index:h,row:o};t.push(u)}),t.sort((o,b)=>o.index>b.index?1:-1),(r=="descending"||r=="desc")&&(t=t.reverse());let c="";t.forEach((o,b)=>{c+=o.row.outerHTML}),a.innerHTML=c},C=(i,e,n)=>{i.classList.remove("table--filtered");let a=z(e),m=[],s=0,r=e.querySelector("[data-pagination]")?parseInt(e.querySelector("[data-pagination]").value):1,l=e.querySelector("[data-show]")?parseInt(e.querySelector("[data-show]").value):15;if(Array.from(i.querySelectorAll("tbody tr")).forEach((t,c)=>{t.classList.remove("filtered"),t.classList.remove("filtered--matched"),t.classList.remove("filtered--show"),t.removeAttribute("data-filtered-by")}),e.querySelector("input[data-search]")){let t=e.querySelector("input[data-search]");e.querySelector("input[data-search]").getAttribute("data-search").split(",").forEach((o,b)=>{m.push({column:`${o.trim()}`,value:`${t.value}`})})}Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML="",t.parentNode.classList.remove("hover")});let d=0;Object.values(a).forEach((t,c)=>{typeof t=="object"&&Object.values(t).length?d+=Object.values(t).length:d++}),d&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,c)=>{t.innerHTML+=`(${d})`,t.parentNode.classList.add("hover")}),i.classList.add("table--filtered");for(const[t,c]of Object.entries(a))Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).forEach((o,b)=>{let h=!1;c.forEach((u,y)=>{let w=o.querySelector(`[data-label="${t}"]`);if(u.includes("-date-from")){let f=new Date(u.replace("-date-from","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g<f?(o.classList.add("less-than-from-date"),h=!1):!o.classList.contains("less-than-from-date")&&!o.classList.contains("greater-than-to-date")&&(h=!0)}else if(u.includes("-date-to")){let f=new Date(u.replace("-date-to","")),g=new Date(w.textContent.toLowerCase());f.setHours(0,0,0,0),g.setHours(0,0,0,0),g>f?(o.classList.add("greater-than-to-date"),h=!1):!o.classList.contains("less-than-from-date")&&!o.classList.contains("greater-than-to-date")&&(h=!0)}if(u&&u=="$today")u=D("date",new Date);else if(u&&u=="$yesterday"){let f=new Date;f.setDate(f.getDate()-1),u=D("date",f)}else if(u&&(u=="$thisWeek"||u=="$lastWeek")){let f=new Date,g=new Date(f.setDate(f.getDate()-(f.getDay()-1))),p=new Date(f.setDate(f.getDate()-f.getDay()+7)),x=new Date(w.textContent.toLowerCase());if(f.setHours(0,0,0,0),g.setHours(0,0,0,0),p.setHours(0,0,0,0),x.setHours(0,0,0,0),u=="$thisWeek")h=x>=g&&x<=p;else{let A=new Date(g.setDate(g.getDate()-7)),L=new Date(p.setDate(p.getDate()-7));A.setHours(0,0,0,0),L.setHours(0,0,0,0),h=x>=A&&x<=L}}else if(u&&u=="$thisMonth"){let f=new Date,g=f.getFullYear(),p=f.getMonth();var k=new Date(g,p,1),q=new Date(g,p+1,0);let x=new Date(w.textContent.toLowerCase());k.setHours(0,0,0,0),q.setHours(0,0,0,0),x.setHours(0,0,0,0),h=x>=k&&x<=q}else if(u&&u=="$lastMonth"){let f=new Date,g=f.getFullYear(),p=f.getMonth();var E=new Date(g,p-1,1),v=new Date(g,p,0);let x=new Date(w.textContent.toLowerCase());E.setHours(0,0,0,0),v.setHours(0,0,0,0),x.setHours(0,0,0,0),h=x>=E&&x<=v}w&&w.textContent.toLowerCase().includes(u.replace("-"," ").toLowerCase())&&(h=!0)}),h||(o.classList.add("filtered"),o.setAttribute("data-filtered-by",t))});Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,c)=>{let o=!(m.length>0&&m[0].value.length>=3);m.forEach((b,h)=>{let u=t.querySelector(`[data-label="${b.column}"]`);u&&b.value.length>=3&&u.textContent.toLowerCase().includes(b.value.toLowerCase())&&(o=!0)}),o||t.classList.add("filtered")}),Array.from(i.querySelectorAll("tbody tr:not(.filtered")).forEach((t,c)=>{s++,t.classList.add("filtered--matched"),Math.ceil(s/l)==parseInt(r)&&t.classList.add("filtered--show")}),n&&(n.setAttribute("data-total",s),n.setAttribute("data-show",l),n.setAttribute("data-page",r))},$=(i,e,n)=>{Array.from(e.querySelectorAll("[data-query]")).forEach((m,s)=>{let r=m.getAttribute("data-query"),l=0;if(r=="total")n.hasAttribute("data-total")?l=n.getAttribute("data-total"):l=(i.classList.contains("table--filtered"),i.querySelectorAll("tbody tr").length);else if(!r.includes(" == ")&&r.includes(" & ")){let d=r.split(" & "),t="";d.forEach(c=>{t+=`:not([data-filtered-by="${c}"])`}),l=Array.from(i.querySelectorAll(`tbody tr${t}`)).length}else if(!r.includes(" == "))l=Array.from(i.querySelectorAll(`tbody tr:not([data-filtered-by="${r}"])`)).length;else if(r.includes(" && ")){let d=r.split(" && ");l=Array.from(i.querySelectorAll("tbody tr:not(.filtered)")).filter(function(t){let c=!0;for(const[o,b]of Object.entries(d)){let h=b.split(" == ");(!t.querySelector(`td[data-label="${h[0]}"]`)||t.querySelector(`td[data-label="${h[0]}"]`).textContent!=`${h[1]}`)&&(c=!1)}return c}).length}else{let d=r.split(" == ");l=Array.from(i.querySelectorAll(`tbody tr.filtered--matched td[data-label="${d[0]}"], tbody tr[data-filtered-by="${d[0]}"] td[data-label="${d[0]}"]`)).filter(function(t){return t.textContent===d[1]}).length}m.hasAttribute("data-total")?m.setAttribute("data-total",l):m.innerHTML=l})},Z=function(i,e,n,a){n.addEventListener("update-page",m=>{let s=e.querySelector("[data-pagination]"),r=m.detail.page;if(s.value=r,e.dispatchEvent(new Event("paginate")),a.setAttribute("data-page",r),i.hasAttribute("data-show-history")){const l=new URL(location);l.searchParams.set("page",r),history.pushState({type:"pagination",form:e.getAttribute("id"),page:r},"",l)}if(!a.hasAttribute("data-no-scroll")){const d=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:d,behavior:"smooth"})}}),n.addEventListener("update-show",m=>{let s=e.querySelector("[data-show]"),r=m.detail.show;s.value=r,a.setAttribute("data-show",r),e.dispatchEvent(new Event("submit"))})},tt=(i,e)=>{if(!i)return!1;i.addEventListener("click",n=>{et(e)})},et=function(i){for(var e=[],n=i.getElementsByTagName("tr"),a=0;a<n.length;a++){for(var m=n[a].querySelectorAll("td,th"),s=[],r=0;r<m.length;r++)s.push(`"${m[r].textContent}"`);e.push(s.join(","))}e=e.join(`
5
+ `);let l=new Blob([e],{type:"text/csv"});var d=document.createElement("a");d.download="export.csv";var t=window.URL.createObjectURL(l);d.href=t,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)},P=function(i,e,n,a){if(R(i),G(i,a),$(i,e,a),a&&a.classList.contains("table--cta")){let s=function(){Array.from(i.querySelectorAll("tr")).forEach((r,l)=>{let d=r.offsetHeight;r.style.setProperty("--row-height",`${d}px`)})};const m=J(i);a.style.setProperty("--cta-width",`${m}rem`),new ResizeObserver(s).observe(i)}},z=function(i){let e=new Object;return Array.from(i.querySelectorAll("[data-filter]")).forEach((a,m)=>{if(!(a.type=="radio"&&!a.checked)&&!(a.type=="checkbox"&&!a.checked)&&a&&a.value){let s=a.getAttribute("data-filter"),r=a.value;a.hasAttribute("data-date-from")&&(r+="-date-from"),a.hasAttribute("data-date-to")&&(r+="-date-to"),e[s]||(e[s]=new Array),e[s].push(r)}}),e},I=function(i,e,n,a){return Y(this,void 0,void 0,function*(){let m=new FormData(e),s=new URLSearchParams(m).toString(),r=i.querySelectorAll("thead tr th:not(.expand-button-heading)"),l=i.querySelector("tbody"),d=e.getAttribute("data-ajax");a.classList.add("table--loading");let t=z(e);Array.from(e.querySelectorAll("[data-filter-count]")).forEach((b,h)=>{b.innerHTML="",b.parentNode.classList.remove("hover")});let c=0;Object.values(t).forEach((b,h)=>{typeof b=="object"&&Object.values(b).length?c+=Object.values(b).length:c++}),c&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((b,h)=>{b.innerHTML+=`(${c})`,b.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[d]&&window.controller[d].abort(),window.controller[d]=new AbortController;const{signal:o}=controller[d];n.setAttribute("data-loading","true"),e.classList.add("processing");try{yield fetch(d+"?"+s,{signal:o,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(b=>b.json()).then(b=>{let h=e.hasAttribute("data-schema")?e.getAttribute("data-schema"):"data",u=e.hasAttribute("data-schema-total")?e.getAttribute("data-schema-total"):"meta.total",y=e.hasAttribute("data-schema-page")?e.getAttribute("data-schema-page"):"meta.current_page",w=S(b,u,15),k=S(b,y,1),q=S(b,h),E=a.hasAttribute("data-empty-msg")?a.getAttribute("data-empty-msg"):"No results found";q?(l.innerHTML="",q.forEach((v,f)=>{var g=document.createElement("tr");r.forEach((p,x)=>{let A="";var L=document.createElement("td");if(L.setAttribute("data-label",p.innerText),p.getAttribute("data-output")){var H=p.getAttribute("data-output");A=H.replace(new RegExp(/{(.*?)}/,"gm"),function(M){return S(v,M.replace("{","").replace("}",""))})}if(p.hasAttribute("data-output-array")){var H=p.getAttribute("data-output");let F=S(v,H.replace("{","").replace("}",""));A="",F.forEach((j,it)=>{let W=p.getAttribute("data-output-array"),T="";if(p.hasAttribute("data-output-array-property")&&p.hasAttribute("data-output-array-transform")){const _=S(j,p.getAttribute("data-output-array-property")),U=JSON.parse(p.getAttribute("data-output-array-transform"))[_];T=W.replace(`{${p.getAttribute("data-output-array-property")}}`,U)}T=T.replace(new RegExp(/{(.*?)}/,"gm"),function(_){return S(j,_.replace("{","").replace("}",""))}),A+=T})}p.hasAttribute("data-transform")&&(A=JSON.parse(p.getAttribute("data-transform"))[A],!A&&p.hasAttribute("data-default")&&(A=p.getAttribute("data-default"))),L.innerHTML=A,g.appendChild(L)}),l.appendChild(g)}),N(i,e),a.setAttribute("data-total",parseInt(w)),a.setAttribute("data-page",parseInt(k)),P(i,e,n,a),Array.from(e.querySelectorAll("[data-ajax-query]")).forEach((v,f)=>{let g=S(b,v.getAttribute("data-ajax-query"),"");v.hasAttribute("data-total")?v.setAttribute("data-total",g):v.innerHTML=g}),parseInt(w)==0&&(l.innerHTML=`<tr><td colspan="100%"><span>${E}</span></td></tr>`),a.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:d,formData:s})):l.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',n.removeAttribute("data-loading"),e.classList.remove("processing")})}catch(b){console.log(b)}})},D=(i,e)=>{switch(i){case"datetime":return new Date(e).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(e).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(e).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return e=X(e)}};class at extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",n=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
6
6
  <style>
7
7
  @import "${n}";
8
8
  :host{--wrapper-padding: 2rem;--bg-colour: #ffffff;display:block;background:#fff;padding:var(--wrapper-padding);box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:0.625rem;margin-bottom:2rem;overflow:hidden}:host:before{display:none !important}@media screen and (prefers-color-scheme: dark){:host{background:var(--colour-canvas-2)}}@media(forced-colors: active){:host{--wrapper-padding: 0;background:var(--colour-canvas-2)}}::slotted(table){margin-bottom:0 !important}.table__wrapper{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}@container (width < 23.4375em){:host(:not(.table--fullwidth)){margin-left:-1.5rem;margin-right:-1.5rem;margin-bottom:0;background:var(--colour-canvas-2);border-radius:0;background:none;padding:0;box-shadow:none;overflow:visible}:host(:not(.table--fullwidth)) .table__wrapper:not(.table--fullwidth){overflow:hidden;max-height:none !important}:host(:not(.table--fullwidth)) ::slotted(table){overflow:visible !important;margin-inline:1.5rem;margin-bottom:1.5rem !important;width:calc(100% - 3rem) !important;display:block}:host(:not(.table--fullwidth)) .table--cta{border-bottom:0}:host(:not(.table--fullwidth)) .table--cta:after{content:none;display:none !important}}@container (width > 23.4375em){:host{--cta-width: 8rem}:host(.table--loading){--cta-width: 1.5rem!important}.table--cta{position:relative}.table--cta .table__wrapper{overflow-y:hidden;margin-bottom:0}}.table__wrapper:is(.mh-sm,.mh-md,.mh-lg){position:relative}.table__wrapper:is(.mh-sm,.mh-md,.mh-lg)::before{top:calc(100% - 1.2rem);bottom:2px;height:1.2rem;border-bottom:2px solid var(--colour-border);margin-bottom:-1.2rem}.table--cta>.table__wrapper:is(.mh-sm,.mh-md,.mh-lg){max-height:none;position:static}.table--cta>.table__wrapper:is(.mh-sm,.mh-md,.mh-lg)::before{display:none}@container (width < 23.4375em){.table__wrapper.has-actionbar{margin-top:calc(-100vh + 6.75rem) !important}}:host(.table--loading){pointer-events:none;position:relative}:host(.table--loading) ::slotted(table){min-height:20rem;opacity:.5}:host(.table--loading)::after{content:"Loading...";position:absolute;top:6.25rem;left:50%;transform:translate(-50%, 0);font-weight:bold;color:var(--colour-heading);font-size:1.5rem;text-shadow:0px 0px 10px var(--colour-canvas-2);padding-inline:2rem;text-shadow:0px 0px 10px var(--colour-canvas-2);background:radial-gradient(var(--colour-canvas-2), transparent)}@container (width < 23.4375em){.pagination--table{margin-inline:1.5rem;width:auto}:host(.table--fullwidth) .pagination--table{margin-inline:0}}/*# sourceMappingURL=assets/css/components/table.css.map */
@@ -28,5 +28,5 @@
28
28
  </div>
29
29
  <iam-pagination class="pagination--table" ${this.hasAttribute("data-page")?`data-page="${this.getAttribute("data-page")}"`:""} ></iam-pagination>
30
30
  `,this.shadowRoot.appendChild(a.content.cloneNode(!0)),document.getElementById("tableExtras")||document.head.insertAdjacentHTML("beforeend",`<style id="tableExtras">*:has(>iam-table){container-type:inline-size}iam-table{--hover-background: var(--colour-light);--row-bg: var(--colour-canvas-2)}iam-table thead tr{background:var(--row-bg)}iam-table tbody tr{background:var(--row-bg)}iam-table tbody tr:is(:hover,:focus-within,.hover){--bg-colour-rgb: 238,238,238;--row-bg: var(--hover-background);background:var(--row-bg)}@media screen and (prefers-color-scheme: dark){iam-table tbody tr{--hover-background: var(--colour-canvas)}iam-table tbody tr:is(:hover,:focus-within,.hover){background:var(--row-bg)}}iam-table[data-expandable] [data-expand-button][aria-expanded]{background-color:rgba(0,0,0,0)}@container (width < 23.4375em){iam-table:not(.table--fullwidth) thead{display:none}iam-table:not(.table--fullwidth) tbody{display:block;overflow:visible}iam-table:not(.table--fullwidth) tbody tr td:first-child{padding-top:0}iam-table:not(.table--fullwidth) tr{display:block;position:relative;border:none;background:var(--row-bg);padding:var(--wrapper-padding);box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:0.5rem;height:auto}iam-table:not(.table--fullwidth) tr+tr{margin-top:2rem}iam-table:not(.table--fullwidth) tr:is(:hover,:focus,.hover){--row-bg: var(--colour-canvas-2)}iam-table:not(.table--fullwidth) :is(td,th){display:block;border-color:var(--colour-border);padding-right:0}iam-table:not(.table--fullwidth) :is(td,th):nth-child(1){border-top:none}iam-table:not(.table--fullwidth) :is(td,th)[data-label]:not([data-label=""]):before{content:attr(data-label);color:var(--colour-heading);padding:0 0 0.375rem 0;margin-bottom:0;display:block;font-weight:bold}iam-table:not(.table--fullwidth) td:first-child::after{top:1.75rem !important}iam-table:not(.table--fullwidth) td::after{top:2.5rem}iam-table:not(.table--fullwidth) .td--fixed{padding-right:50%}iam-table:not(.table--fullwidth) tbody tr td:not(:first-child){border-top:var(--border-width) solid currentColor;border-color:var(--colour-border) !important}iam-table:not(.table--fullwidth) tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}iam-table:not(.table--fullwidth) td:has([data-expand-button]){height:0;padding:0;position:relative}iam-table:not(.table--fullwidth) td:has([data-expand-button])+td{border-top:none !important;padding-top:0 !important}iam-table:not(.table--fullwidth) [data-expand-button]{top:0;right:0;background:rgba(0,0,0,0) !important;border:none;position:absolute;overflow:hidden;--compact-size: 2rem}iam-table:not(.table--fullwidth) [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF055";font-weight:300 !important;font-size:1.75rem;line-height:var(--compact-size) !important}iam-table:not(.table--fullwidth) [data-expand-button][aria-expanded]:before{content:"\uF056";font-weight:900 !important}iam-table:not(.table--fullwidth) .dialog__wrapper:not([slot=overflow]){margin-top:-0.5rem;margin-left:-1rem;z-index:10}iam-table:not(.table--fullwidth) tbody tr:not([data-view=full]) td:not(.td--fixed)+td:not(.td--fixed)+td+td{display:none}iam-table.table--cta:not(.table--fullwidth) tr td:not(:first-child):last-child{display:block !important;position:static;width:100%;min-width:100%;margin-left:0;padding-left:0;text-align:left;min-height:0}iam-table.table--cta:not(.table--fullwidth) tr td:not(:first-child):last-child:after{display:none}}@container (width > 23.4375em){iam-table.table--cta:not(.table--loading):has(tr:first-child td:first-child:last-child){padding-right:calc(var(--wrapper-padding) + 1.5rem)}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>th:nth-last-child(2),iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>td:nth-last-child(2){padding-right:var(--cta-width)}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>*:not(:first-child):last-child{position:absolute;left:calc(100% - var(--cta-width));top:auto;background:rgba(0,0,0,0);width:var(--cta-width);min-height:calc(var(--row-height) - 2px);text-align:right;background:linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem);cursor:default;padding-bottom:0}@media screen and (prefers-color-scheme: dark){iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>*:not(:first-child):last-child{background:linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem)}}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tr>*:not(:first-child):last-child a{white-space:nowrap;padding-right:.2rem;padding-bottom:0}iam-table.table--cta:not(.table--loading):not(:has(tr:first-child td:first-child:last-child)) tbody tr:hover>*:not(:first-child):last-child{background:linear-gradient(90deg, transparent 0%, var(--row-bg) 1.25rem)}}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta){position:relative}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) thead{position:sticky;top:0;left:0;z-index:1;background-color:var(--row-bg)}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) thead:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--colour-primary)}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody{position:relative}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody tr:first-child td{border-top:0}iam-table:is(.mh-sm,.mh-md,.mh-lg):not(.table--cta) tbody tr:last-child td{border-bottom:0}table .hide-status:after{display:none}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)){position:relative;padding-left:1.5rem}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty))::before{margin-left:-1.5rem !important}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)):after{font-family:"Font Awesome 6 Pro";position:absolute;top:1rem;left:0;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block}table [data-content=high]:after{content:"\uF325";font-weight:normal;color:var(--colour-danger)}table [data-content=medium]:after{content:"\uF7A4";font-weight:normal;color:var(--colour-warning)}table [data-content=low]:after{content:"\uE404";font-weight:normal;color:var(--colour-complete)}table [data-content=unknown]:after{content:"\uE404";font-weight:normal;color:var(--colour-muted)}table :is([data-content=overdue],[data-content=due],[data-content=incomplete]):after{content:"\uF024";color:var(--colour-danger)}table :is([data-content="not started"],[data-content="to do"],[data-content="on track"]):after{content:"\uF024";color:var(--colour-muted)}table :is([data-content="requires approval"],[data-content="approval required"],[data-content="action required"],[data-content=upcoming]):after{content:"\uF024";color:var(--colour-warning)}table :is([data-content=warning]):after{content:"\uF071";color:var(--colour-warning)}table :is([data-content="manually verified"],[data-content=verified],[data-content=completed],[data-content=complete]):after{content:"\uF00C";font-weight:normal;color:var(--colour-complete)}table .alert-status:not([data-content="0"]):not([data-content=""]):not(:empty):after{content:"\uF0F3";color:var(--colour-primary)}iam-table .table--filtered tbody tr:not(.filtered--show){display:none !important}iam-table table:not(.table--filtered):not(.table--ajax) tbody tr:nth-child(15)~tr{display:none}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.75rem !important;left:.25rem !important}iam-table:has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100vw;height:100%;max-height:var(--row-height);max-width:100vw;cursor:pointer;pointer-events:all;top:auto;margin:0;margin-top:0rem}iam-table tr:has([type=checkbox]:checked){height:3.5rem}iam-table tr:has([type=checkbox]:checked){--row-bg: #E0E0E0}@media screen and (prefers-color-scheme: dark){iam-table tr:has([type=checkbox]:checked){--row-bg: #000000}}@container (width < 23.4375em){@media screen and (prefers-color-scheme: light){iam-table:has([slot=before]) iam-actionbar{background-color:#e6eaec}}iam-table:has([slot=before]) .actionbar__sticky+*{margin-top:0 !important}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important;min-height:2rem}iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,iam-table input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.25rem !important;left:0 !important}iam-table:has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100%;height:100%;max-height:100%;max-width:100%;margin-top:-2rem}}iam-table.table--fullwidth:not([data-expandable]) th.expand-button-heading{display:none}iam-table.table--fullwidth:not([data-expandable]) td:has([data-expand-button]){display:none}@container (width > 23.4375em){iam-table:not([data-expandable]) th.expand-button-heading{display:none}iam-table:not([data-expandable]) td.td--expand{display:none}iam-table[data-expandable] [data-expand-button]{margin:0}iam-table[data-expandable] [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF078";font-weight:500}iam-table[data-expandable] [data-expand-button][aria-expanded]:before{content:"\uF077"}iam-table[data-expandable] tr:not(:has(p)) [data-expand-button]{display:none}iam-table[data-expandable] tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}}@container (width < 23.4375em){iam-table:not(.table--fullwidth) .td--fixed+td:not(.td--fixed){border-top:none}}@container (width > 23.4375em){iam-table{--width-adjust: 0px}iam-table:has([type=checkbox]){--width-adjust: -1rem}iam-table .th--fixed{min-width:calc(4.5rem + var(--width-adjust));position:absolute;padding:0}iam-table .th--fixed:after{top:auto;left:0;content:"";position:absolute;width:100%;height:calc(var(--row-height) - 2px);background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table .td--fixed{position:absolute;position:absolute;left:auto;top:auto;z-index:3;padding:0.25rem 0 0 0;min-width:4.5rem;height:calc(var(--row-height) - 2px);text-align:left;background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table .td--fixed:has([open]){z-index:4}iam-table tr:has(.td--fixed){height:3.5rem}iam-table tr:is(:hover,:focus) .td--fixed{background:linear-gradient(90deg, var(--row-bg) calc(100% - 1.5rem), transparent 100%)}iam-table tr:has([data-expand-button]){height:calc(4.625rem - 2px)}iam-table .th--fixed+th:not(.th--fixed),iam-table .td--fixed+td:not(.td--fixed){padding-left:calc(4.5rem + var(--width-adjust))}iam-table .th--fixed:not(.expand-button-heading)+.th--fixed+th:not(.th--fixed),iam-table .td--fixed:not(.td--expand)+.td--fixed+td:not(.td--fixed){padding-left:calc(7.75rem + var(--width-adjust))}iam-table[data-expandable] .th--fixed+.th--fixed+th:not(.th--fixed),iam-table[data-expandable] .td--fixed+.td--fixed+td:not(.td--fixed){padding-left:calc(7.75rem + var(--width-adjust))}iam-table .th--fixed+.th--fixed,iam-table .td--fixed+.td--fixed{padding-left:calc(3.25rem + var(--width-adjust));min-width:calc(7.75rem + var(--width-adjust))}iam-table .th--fixed:has(+.th--fixed),iam-table .td--fixed:has(+.td--fixed){min-width:calc(3.25rem + var(--width-adjust));z-index:5}iam-table .dialog__wrapper{z-index:10}iam-table .dialog__wrapper:has([open]){z-index:20}iam-table[data-expandable] input:is([type=radio],[type=checkbox])+label:before,iam-table[data-expandable] input:is([type=radio],[type=checkbox])+label:after{left:1.25rem !important}iam-table:not([data-expandable]) th.expand-button-heading+th{padding-left:0 !important}iam-table:not([data-expandable]) td.td--expand+td{padding-left:0 !important}iam-table:not([data-expandable]) th.expand-button-heading+.th--fixed{min-width:calc(4.5rem + var(--width-adjust)) !important}iam-table:not([data-expandable]) td.td--expand+.td--fixed{min-width:calc(4.5rem + var(--width-adjust)) !important}}/*# sourceMappingURL=assets/css/components/table.global.css.map */
31
- </style>`)}connectedCallback(){const e=new URLSearchParams(window.location.search);this.hasAttribute("data-total")||this.setAttribute("data-total",this.querySelectorAll("table tbody tr").length),this.hasAttribute("data-page")||this.setAttribute("data-page",e.has("page")?e.get("page"):1),this.hasAttribute("data-show")||this.setAttribute("data-show",e.has("show")?e.get("show"):15),this.hasAttribute("data-increment")||this.setAttribute("data-increment",this.getAttribute("data-show"));let n=this.classList.toString();if(n=n.replace("table--cta",""),n=n.replace("table--loading",""),this.shadowRoot.querySelector(".table__wrapper").className+=` ${n}`,this.querySelector(".actionbar__sticky")&&this.shadowRoot.querySelector(".table__wrapper").classList.add("has-actionbar"),this.table=this.querySelector("table"),this.savedTableBody=this.table.querySelector("tbody").cloneNode(!0),this.pagination=this.shadowRoot.querySelector("iam-pagination"),this.pagination.setAttribute("data-total",this.getAttribute("data-total")),this.pagination.setAttribute("data-page",this.getAttribute("data-page")),this.pagination.setAttribute("data-show",this.getAttribute("data-show")),this.pagination.setAttribute("data-increment",this.getAttribute("data-show")),this.hasAttribute("data-page-jump")&&this.pagination.setAttribute("data-page-jump","true"),this.hasAttribute("data-per-page")&&this.pagination.setAttribute("data-per-page","true"),this.hasAttribute("data-item-count")&&this.pagination.setAttribute("data-item-count","true"),this.hasAttribute("data-loading")&&this.pagination.setAttribute("data-loading","true"),this.classList.contains("table--fullwidth")&&this.pagination.setAttribute("data-minimal","true"),this.classList.contains("table--cta")||this.shadowRoot.querySelector(".table--cta").classList.remove("table--cta"),this.form=document.createElement("form"),this.hasAttribute("data-filterby")?this.form=document.querySelector(`#${this.getAttribute("data-filterby")}`):this.table.parentNode.insertBefore(this.form,this.table.nextSibling),this.form.hasAttribute("data-ajax")&&this.table.classList.add("table--ajax"),N(this.table,this.form),this.form.querySelector("[data-pagination]")||this.form.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`),this.form.querySelector("[data-show]")||this.form.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`),V(this.table),K(this.table,this.form,this.pagination,this,this.savedTableBody),Z(this.table,this.form,this.pagination,this),tt(this.shadowRoot.querySelector("[data-export]"),this.table),this.form.getAttribute("data-ajax"))I(this.table,this.form,this.pagination,this);else{let p=function(r=1){return Math.floor(Math.random()*Date.now()*(r+1))};if(this.querySelector("iam-actionbar[data-selectall]")){const r=this.querySelector("iam-actionbar[data-selectall]");Array.from(this.table.querySelectorAll("thead tr")).forEach((l,d)=>{l.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(this.table.querySelectorAll("tbody tr")).forEach((l,d)=>{let t=`row${p(d)}`;l.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow"><input type="checkbox" name="row" id="${t}"/><label for="${t}"><span class="visually-hidden">Select row</span></label></td>`)}),this.table.addEventListener("change",l=>{if(l&&l.target instanceof HTMLElement&&l.target.closest(".selectrow input")){let d=this.table.querySelectorAll('.selectrow input[type="checkbox"]').length,t=this.table.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;r.setAttribute("data-selected",d==t?"all":t)}}),r.addEventListener("selected",l=>{l.detail.selected=="0"?Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((d,t)=>{d.checked=!1}):l.detail.selected=="all"&&Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((d,t)=>{d.checked=!0})})}let s=-1;Array.from(this.table.querySelectorAll("tbody tr")).forEach((r,l)=>{if(r.querySelector(":scope > td > .dialog__wrapper")){let d=r.querySelector(":scope > td > .dialog__wrapper").parentNode;d.classList.add("td--fixed"),s=Array.from(d.parentNode.children).indexOf(d)}}),s!=-1&&(this.table.querySelector(`thead tr th:nth-child(${s+1})`).classList.add("th--fixed"),Array.from(this.table.querySelectorAll(`tbody tr td:nth-child(${s+1})`)).forEach((r,l)=>{r.classList.add("td--fixed")})),P(this.table,this.form,this.pagination,this),C(this.table,this.form,this),_(this.table,this.form)}this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll",p=>{this.table.querySelector("dialog[open]")&&(this.table.querySelector("dialog[open]").close(),this.table.querySelector(".dialog__wrapper > button.active").classList.remove("active"))})}static get observedAttributes(){return["data-total","data-page","data-show"]}attributeChangedCallback(e,n,a){switch(this.pagination=this.shadowRoot.querySelector("iam-pagination"),e){case"data-total":{n!=a&&this.pagination.setAttribute("data-total",a);break}case"data-show":{n!=a&&this.pagination.setAttribute("data-show",a);break}case"data-page":{n!=a&&this.pagination.setAttribute("data-page",a);break}}}}export{at as default};
31
+ </style>`)}connectedCallback(){const e=new URLSearchParams(window.location.search);this.hasAttribute("data-total")||this.setAttribute("data-total",this.querySelectorAll("table tbody tr").length),this.hasAttribute("data-page")||this.setAttribute("data-page",e.has("page")?e.get("page"):1),this.hasAttribute("data-show")||this.setAttribute("data-show",e.has("show")?e.get("show"):15),this.hasAttribute("data-increment")||this.setAttribute("data-increment",this.getAttribute("data-show"));let n=this.classList.toString();if(n=n.replace("table--cta",""),n=n.replace("table--loading",""),this.shadowRoot.querySelector(".table__wrapper").className+=` ${n}`,this.querySelector(".actionbar__sticky")&&this.shadowRoot.querySelector(".table__wrapper").classList.add("has-actionbar"),this.table=this.querySelector("table"),this.savedTableBody=this.table.querySelector("tbody").cloneNode(!0),this.pagination=this.shadowRoot.querySelector("iam-pagination"),this.pagination.setAttribute("data-total",this.getAttribute("data-total")),this.pagination.setAttribute("data-page",this.getAttribute("data-page")),this.pagination.setAttribute("data-show",this.getAttribute("data-show")),this.pagination.setAttribute("data-increment",this.getAttribute("data-show")),this.hasAttribute("data-page-jump")&&this.pagination.setAttribute("data-page-jump","true"),this.hasAttribute("data-per-page")&&this.pagination.setAttribute("data-per-page","true"),this.hasAttribute("data-item-count")&&this.pagination.setAttribute("data-item-count","true"),this.hasAttribute("data-loading")&&this.pagination.setAttribute("data-loading","true"),this.classList.contains("table--fullwidth")&&this.pagination.setAttribute("data-minimal","true"),this.classList.contains("table--cta")||this.shadowRoot.querySelector(".table--cta").classList.remove("table--cta"),this.form=document.createElement("form"),this.hasAttribute("data-filterby")?this.form=document.querySelector(`#${this.getAttribute("data-filterby")}`):this.table.parentNode.insertBefore(this.form,this.table.nextSibling),this.form.hasAttribute("data-ajax")&&this.table.classList.add("table--ajax"),N(this.table,this.form),this.form.querySelector("[data-pagination]")||this.form.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`),this.form.querySelector("[data-show]")||this.form.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`),V(this.table),K(this.table,this.form,this.pagination,this,this.savedTableBody),Z(this.table,this.form,this.pagination,this),tt(this.shadowRoot.querySelector("[data-export]"),this.table),this.form.getAttribute("data-ajax"))I(this.table,this.form,this.pagination,this);else{let m=function(r=1){return Math.floor(Math.random()*Date.now()*(r+1))};if(this.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`)){const r=this.querySelector("iam-actionbar[data-selectall]")?this.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${this.getAttribute("id")}']`);Array.from(this.table.querySelectorAll("thead tr")).forEach((l,d)=>{l.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(this.table.querySelectorAll("tbody tr")).forEach((l,d)=>{let t=`row${m(d)}`;l.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow"><input type="checkbox" name="row" id="${t}"/><label for="${t}"><span class="visually-hidden">Select row</span></label></td>`)}),this.table.addEventListener("change",l=>{if(l&&l.target instanceof HTMLElement&&l.target.closest(".selectrow input")){let d=this.table.querySelectorAll('.selectrow input[type="checkbox"]').length,t=this.table.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;r.setAttribute("data-selected",d==t?"all":t)}}),r.addEventListener("selected",l=>{l.detail.selected=="0"?Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((d,t)=>{d.checked=!1}):l.detail.selected=="all"&&Array.from(this.table.querySelectorAll('.selectrow input[type="checkbox"]')).forEach((d,t)=>{d.checked=!0})})}let s=-1;Array.from(this.table.querySelectorAll("tbody tr")).forEach((r,l)=>{if(r.querySelector(":scope > td > .dialog__wrapper")){let d=r.querySelector(":scope > td > .dialog__wrapper").parentNode;d.classList.add("td--fixed"),s=Array.from(d.parentNode.children).indexOf(d)}}),s!=-1&&(this.table.querySelector(`thead tr th:nth-child(${s+1})`).classList.add("th--fixed"),Array.from(this.table.querySelectorAll(`tbody tr td:nth-child(${s+1})`)).forEach((r,l)=>{r.classList.add("td--fixed")})),P(this.table,this.form,this.pagination,this),C(this.table,this.form,this),$(this.table,this.form)}this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll",m=>{this.table.querySelector("dialog[open]")&&(this.table.querySelector("dialog[open]").close(),this.table.querySelector(".dialog__wrapper > button.active").classList.remove("active"))})}static get observedAttributes(){return["data-total","data-page","data-show"]}attributeChangedCallback(e,n,a){switch(this.pagination=this.shadowRoot.querySelector("iam-pagination"),e){case"data-total":{n!=a&&this.pagination.setAttribute("data-total",a);break}case"data-show":{n!=a&&this.pagination.setAttribute("data-show",a);break}case"data-page":{n!=a&&this.pagination.setAttribute("data-page",a);break}}}}export{at as default};
32
32
  //# sourceMappingURL=table.component.min.js.map