@iamproperty/components 3.7.6 → 3.7.8--beta

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 (58) hide show
  1. package/assets/css/components/card-global.css +1 -0
  2. package/assets/css/components/card-global.css.map +1 -0
  3. package/assets/css/components/card.css +1 -1
  4. package/assets/css/components/card.css.map +1 -1
  5. package/assets/css/components/forms.css +1 -1
  6. package/assets/css/components/forms.css.map +1 -1
  7. package/assets/css/components/table.css +1 -1
  8. package/assets/css/components/table.css.map +1 -1
  9. package/assets/css/core.min.css +1 -1
  10. package/assets/css/core.min.css.map +1 -1
  11. package/assets/css/style.min.css +1 -1
  12. package/assets/css/style.min.css.map +1 -1
  13. package/assets/js/bundle.js +2 -0
  14. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  15. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  16. package/assets/js/components/card/card.component.js +36 -12
  17. package/assets/js/components/card/card.component.min.js +5 -5
  18. package/assets/js/components/card/card.component.min.js.map +1 -1
  19. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  20. package/assets/js/components/header/header.component.min.js +1 -1
  21. package/assets/js/components/notification/notification.component.min.js +1 -1
  22. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  23. package/assets/js/components/table/table.component.min.js +7 -7
  24. package/assets/js/components/table/table.component.min.js.map +1 -1
  25. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  26. package/assets/js/dynamic.js +2 -0
  27. package/assets/js/dynamic.min.js +5 -5
  28. package/assets/js/dynamic.min.js.map +1 -1
  29. package/assets/js/flat-components.js +2 -0
  30. package/assets/js/modules/dialogs.js +2 -1
  31. package/assets/js/modules/inputs.js +62 -0
  32. package/assets/js/modules/table.js +13 -8
  33. package/assets/js/scripts.bundle.js +13 -13
  34. package/assets/js/scripts.bundle.js.map +1 -1
  35. package/assets/js/scripts.bundle.min.js +2 -2
  36. package/assets/js/scripts.bundle.min.js.map +1 -1
  37. package/assets/sass/_corefiles.scss +2 -0
  38. package/assets/sass/_forms.scss +3 -3
  39. package/assets/sass/components/card-global.scss +20 -0
  40. package/assets/sass/components/card.scss +26 -3
  41. package/assets/sass/components/forms.scss +497 -113
  42. package/assets/sass/components/table.scss +13 -3
  43. package/assets/sass/foundations/links.scss +6 -2
  44. package/assets/sass/foundations/reboot.scss +3 -3
  45. package/assets/ts/bundle.ts +2 -0
  46. package/assets/ts/components/card/README.md +1 -0
  47. package/assets/ts/components/card/card.component.ts +55 -13
  48. package/assets/ts/dynamic.ts +2 -0
  49. package/assets/ts/flat-components.ts +2 -0
  50. package/assets/ts/modules/dialogs.ts +2 -1
  51. package/assets/ts/modules/inputs.ts +88 -0
  52. package/assets/ts/modules/table.ts +15 -10
  53. package/dist/components.es.js +150 -134
  54. package/dist/components.umd.js +20 -20
  55. package/package.json +1 -1
  56. package/src/components/Card/README.md +1 -0
  57. package/src/components/Input/Input.vue +11 -7
  58. package/src/components/Input/README.md +1 -3
@@ -1,5 +1,5 @@
1
- import { openBlock as u, createElementBlock as m, normalizeClass as A, createElementVNode as d, toDisplayString as $, createCommentVNode as g, Fragment as T, renderList as M, renderSlot as _, withDirectives as z, mergeProps as H, vModelDynamic as V, vModelText as ct, vModelSelect as dt, resolveComponent as N, createVNode as x, createTextVNode as ut, withModifiers as mt } from "vue";
2
- const S = (e, a) => {
1
+ import { openBlock as u, createElementBlock as m, normalizeClass as A, createElementVNode as d, toDisplayString as $, createCommentVNode as g, Fragment as T, renderList as M, renderSlot as _, withDirectives as z, mergeProps as H, vModelDynamic as G, vModelText as ct, vModelSelect as dt, resolveComponent as N, createVNode as x, createTextVNode as ut, withModifiers as mt } from "vue";
2
+ const k = (e, a) => {
3
3
  const t = e.__vccOpts || e;
4
4
  for (const [r, s] of a)
5
5
  t[r] = s;
@@ -46,14 +46,14 @@ function pt(e, a, t, r, s, i) {
46
46
  }, null, 8, bt)) : g("", !0)
47
47
  ], 2);
48
48
  }
49
- const yt = /* @__PURE__ */ S(ht, [["render", pt]]);
49
+ const yt = /* @__PURE__ */ k(ht, [["render", pt]]);
50
50
  /*!
51
- * iamKey v3.7.6
51
+ * iamKey v3.7.8--beta
52
52
  * Copyright 2022-2023 iamproperty
53
53
  */
54
54
  const gt = function(e) {
55
55
  return typeof e != "string" ? !1 : !isNaN(e) && !isNaN(parseFloat(e));
56
- }, _t = (e, a) => String(e).padStart(a, "0"), vt = (e) => e.charAt(0).toUpperCase() + e.slice(1), G = function(e, a) {
56
+ }, _t = (e, a) => String(e).padStart(a, "0"), vt = (e) => e.charAt(0).toUpperCase() + e.slice(1), F = function(e, a) {
57
57
  if (!e.getAttribute("data-pages"))
58
58
  return !1;
59
59
  e.getAttribute("data-page") || e.setAttribute("data-page", 1);
@@ -99,17 +99,17 @@ var wt = function(e, a, t, r) {
99
99
  l((r = r.apply(e, a || [])).next());
100
100
  });
101
101
  };
102
- const X = (e) => {
102
+ const Q = (e) => {
103
103
  const a = Array.from(e.querySelectorAll("thead th"));
104
104
  Array.from(e.querySelectorAll("tbody tr")).forEach((t, r) => {
105
- const s = Array.from(t.querySelectorAll("th, td")), i = ["0", "low", "medium", "high", "unknown", "n/a", "pending", "verified", "overdue", "incomplete", "complete", "completed", "approval required", "requires approval", "to do", "not started", "warning", "error"];
105
+ const s = Array.from(t.querySelectorAll("th, td")), i = ["0", "low", "medium", "high", "unknown", "n/a", "pending", "verified", "due", "overdue", "incomplete", "complete", "completed", "approval required", "upcoming", "requires approval", "to do", "on track", "not started", "warning", "error"];
106
106
  s.forEach((o, c) => {
107
107
  const n = a[c];
108
108
  if (typeof n < "u") {
109
109
  let l = document.createElement("div");
110
110
  l.innerHTML = n.innerHTML;
111
111
  let h = l.textContent || l.innerText || "";
112
- o.setAttribute("data-label", h), n.hasAttribute("data-td-class") && o.setAttribute("class", n.getAttribute("data-td-class")), n.hasAttribute("data-format") && (o.setAttribute("data-format", n.getAttribute("data-format")), o.innerHTML = U(n.getAttribute("data-format"), o.textContent.trim())), i.includes(o.textContent.trim().toLowerCase()) && o.setAttribute("data-content", o.textContent.trim().toLowerCase());
112
+ o.setAttribute("data-label", h), n.hasAttribute("data-td-class") && o.setAttribute("class", n.getAttribute("data-td-class")), n.hasAttribute("data-format") && (o.setAttribute("data-format", n.getAttribute("data-format")), o.innerHTML = K(n.getAttribute("data-format"), o.textContent.trim())), i.includes(o.textContent.trim().toLowerCase()) && o.setAttribute("data-content", o.textContent.trim().toLowerCase());
113
113
  }
114
114
  });
115
115
  });
@@ -123,7 +123,7 @@ const X = (e) => {
123
123
  o += 1.7, a = a > o ? a : o;
124
124
  }
125
125
  }), a;
126
- }, St = (e) => {
126
+ }, kt = (e) => {
127
127
  if (e.closest(".table--fullwidth") || e.querySelectorAll("thead tr th").length < 4)
128
128
  return !1;
129
129
  Array.from(e.querySelectorAll("tbody tr")).forEach((a, t) => {
@@ -135,14 +135,14 @@ const X = (e) => {
135
135
  i.innerHTML = `<span class="td__content">${o}</span><button type="button" class="d-none">${o}</button>`;
136
136
  }
137
137
  });
138
- }, kt = (e) => {
138
+ }, St = (e) => {
139
139
  e.addEventListener("click", (a) => {
140
140
  if (a && a.target instanceof HTMLElement && a.target.closest("tr > :is(td,th):first-child button")) {
141
141
  let t = a.target.closest("tr > :is(td,th):first-child button"), r = t.parentNode.closest("tr");
142
142
  r.getAttribute("data-view") == "full" ? r.setAttribute("data-view", "default") : r.setAttribute("data-view", "full"), t.blur();
143
143
  }
144
144
  });
145
- }, Q = (e, a) => {
145
+ }, tt = (e, a) => {
146
146
  let t = a.querySelector("[data-search]");
147
147
  if (!t)
148
148
  return !1;
@@ -163,16 +163,16 @@ const X = (e) => {
163
163
  }
164
164
  at(e, a, t, r);
165
165
  } else
166
- a.hasAttribute("data-submit") ? a.submit() : (tt(e, a, r), G(r, t), K(e, a));
166
+ a.hasAttribute("data-submit") ? a.submit() : (j(e, a, r), F(r, t), O(e, a));
167
167
  };
168
168
  a.addEventListener("keyup", (l) => {
169
169
  clearTimeout(i), l && l.target instanceof HTMLElement && l.target.closest("[data-search]") && (i = setTimeout(function() {
170
170
  o();
171
171
  }, 500));
172
172
  }), a.addEventListener("change", (l) => {
173
- clearTimeout(i), l && l.target instanceof HTMLElement && l.target.closest("[data-sort]") && (a.hasAttribute("data-submit") || Z(e, a, s), o()), l && l.target instanceof HTMLElement && l.target.closest("[data-search]") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-filter]") && l.target.closest("form .dialog__wrapper > dialog") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-filter]") && !l.target.closest("form dialog") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-show]") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-mimic]") && o();
173
+ clearTimeout(i), l && l.target instanceof HTMLElement && l.target.closest("[data-sort]") && (a.hasAttribute("data-submit") || J(e, a, s), o()), l && l.target instanceof HTMLElement && l.target.closest("[data-search]") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-filter][data-no-ajax]") ? (j(e, a, r), F(r, t), O(e, a)) : (l && l.target instanceof HTMLElement && l.target.closest("[data-filter]") && l.target.closest("form .dialog__wrapper > dialog") || l && l.target instanceof HTMLElement && l.target.closest("[data-filter]") && !l.target.closest("form dialog")) && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-show]") && o(), l && l.target instanceof HTMLElement && l.target.closest("[data-mimic]") && o();
174
174
  }), a.addEventListener("click", (l) => {
175
- clearTimeout(i), l && l.target instanceof HTMLElement && l.target.closest('dialog button:not([type="button"])') && l.target.closest('dialog button:not([type="button"])').closest("dialog").close(), l && l.target instanceof HTMLElement && l.target.closest(".dialog__close") && (l.preventDefault(), l.stopPropagation()), l && l.target instanceof HTMLElement && l.target.closest("[data-clear]") && (a.reset(), a.hasAttribute("data-submit") || Z(e, a, s), o());
175
+ clearTimeout(i), l && l.target instanceof HTMLElement && l.target.closest('dialog button:not([type="button"])') && l.target.closest('dialog button:not([type="button"])').closest("dialog").close(), l && l.target instanceof HTMLElement && l.target.closest(".dialog__close") && (l.preventDefault(), l.stopPropagation()), l && l.target instanceof HTMLElement && l.target.closest("[data-clear]") && (a.reset(), a.hasAttribute("data-submit") || J(e, a, s), o());
176
176
  }), a.addEventListener("submit", (l) => {
177
177
  clearTimeout(i), a.hasAttribute("data-submit") || l.preventDefault(), o();
178
178
  }), a.addEventListener("force", (l) => {
@@ -209,18 +209,18 @@ const X = (e) => {
209
209
  f();
210
210
  });
211
211
  });
212
- }, Z = (e, a, t) => {
212
+ }, J = (e, a, t) => {
213
213
  if (a.getAttribute("data-ajax"))
214
214
  return !1;
215
215
  let r = e.querySelector("tbody"), s = a.querySelector("[data-sort]"), i = s.querySelector(`option:nth-child(${s.selectedIndex + 1})`), o = i.getAttribute("data-sort"), c = i.getAttribute("data-order"), n = i.getAttribute("data-format");
216
216
  if (!o)
217
- return r.innerHTML = t.innerHTML, X(e), !1;
217
+ return r.innerHTML = t.innerHTML, Q(e), !1;
218
218
  let l = [];
219
219
  ["asc", "desc", "descending"].includes(c) || (l = c.split(","));
220
220
  let h = [];
221
221
  Array.from(r.querySelectorAll("tr")).forEach((b, y) => {
222
222
  let p = b.querySelector('td[data-label="' + o + '"], th[data-label="' + o + '"]').textContent.trim();
223
- l.length && l.includes(p) && (p = l.indexOf(p)), gt(p) && (p = _t(p, 10)), n && n == "date" && (p = new Date(p));
223
+ b.querySelector('[data-label="' + o + '"] .td__content') && (p = b.querySelector('[data-label="' + o + '"] .td__content').textContent.trim()), l.length && l.includes(p) && (p = l.indexOf(p)), gt(p) && (p = _t(p, 10)), n && n == "date" && (p = new Date(p));
224
224
  const w = { index: p, row: b };
225
225
  h.push(w);
226
226
  }), h.sort((b, y) => b.index > y.index ? 1 : -1), (c == "descending" || c == "desc") && (h = h.reverse());
@@ -228,7 +228,7 @@ const X = (e) => {
228
228
  h.forEach((b, y) => {
229
229
  f += b.row.outerHTML;
230
230
  }), r.innerHTML = f;
231
- }, tt = (e, a, t) => {
231
+ }, j = (e, a, t) => {
232
232
  e.classList.remove("table--filtered");
233
233
  let r = [], s = [], i = 0, o = a.querySelector("[data-pagination]") ? parseInt(a.querySelector("[data-pagination]").value) : 1, c = a.querySelector("[data-show]") ? parseInt(a.querySelector("[data-show]").value) : 15;
234
234
  if (Array.from(e.querySelectorAll("tbody tr")).forEach((n, l) => {
@@ -260,25 +260,25 @@ const X = (e) => {
260
260
  l.forEach((y, p) => {
261
261
  let w = h.querySelector(`[data-label="${n}"]`);
262
262
  if (y && y == "$today")
263
- y = U("date", /* @__PURE__ */ new Date());
263
+ y = K("date", /* @__PURE__ */ new Date());
264
264
  else if (y && y == "$yesterday") {
265
- let k = /* @__PURE__ */ new Date();
266
- k.setDate(k.getDate() - 1), y = U("date", k);
265
+ let S = /* @__PURE__ */ new Date();
266
+ S.setDate(S.getDate() - 1), y = K("date", S);
267
267
  } else if (y && (y == "$thisWeek" || y == "$lastWeek")) {
268
- let k = /* @__PURE__ */ new Date(), q = new Date(k.setDate(k.getDate() - (k.getDay() - 1))), v = new Date(k.setDate(k.getDate() - k.getDay() + 7)), L = new Date(w.textContent.toLowerCase());
269
- if (k.setHours(0, 0, 0, 0), q.setHours(0, 0, 0, 0), v.setHours(0, 0, 0, 0), L.setHours(0, 0, 0, 0), y == "$thisWeek")
268
+ let S = /* @__PURE__ */ new Date(), q = new Date(S.setDate(S.getDate() - (S.getDay() - 1))), v = new Date(S.setDate(S.getDate() - S.getDay() + 7)), L = new Date(w.textContent.toLowerCase());
269
+ if (S.setHours(0, 0, 0, 0), q.setHours(0, 0, 0, 0), v.setHours(0, 0, 0, 0), L.setHours(0, 0, 0, 0), y == "$thisWeek")
270
270
  b = L >= q && L <= v;
271
271
  else {
272
272
  let E = new Date(q.setDate(q.getDate() - 7)), D = new Date(v.setDate(v.getDate() - 7));
273
273
  E.setHours(0, 0, 0, 0), D.setHours(0, 0, 0, 0), b = L >= E && L <= D;
274
274
  }
275
275
  } else if (y && y == "$thisMonth") {
276
- let k = /* @__PURE__ */ new Date(), q = k.getFullYear(), v = k.getMonth();
276
+ let S = /* @__PURE__ */ new Date(), q = S.getFullYear(), v = S.getMonth();
277
277
  var I = new Date(q, v, 1), R = new Date(q, v + 1, 0);
278
278
  let L = new Date(w.textContent.toLowerCase());
279
279
  I.setHours(0, 0, 0, 0), R.setHours(0, 0, 0, 0), L.setHours(0, 0, 0, 0), b = L >= I && L <= R;
280
280
  } else if (y && y == "$lastMonth") {
281
- let k = /* @__PURE__ */ new Date(), q = k.getFullYear(), v = k.getMonth();
281
+ let S = /* @__PURE__ */ new Date(), q = S.getFullYear(), v = S.getMonth();
282
282
  var P = new Date(q, v - 1, 1), C = new Date(q, v, 0);
283
283
  let L = new Date(w.textContent.toLowerCase());
284
284
  P.setHours(0, 0, 0, 0), C.setHours(0, 0, 0, 0), L.setHours(0, 0, 0, 0), b = L >= P && L <= C;
@@ -295,7 +295,7 @@ const X = (e) => {
295
295
  }), Array.from(e.querySelectorAll("tbody tr:not(.filtered")).forEach((n, l) => {
296
296
  i++, n.classList.add("filtered--matched"), Math.ceil(i / c) == parseInt(o) && n.classList.add("filtered--show");
297
297
  }), t && (t.setAttribute("data-page", o), t.setAttribute("data-pages", Math.ceil(i / c)), t.setAttribute("data-total", i), t.setAttribute("data-show", c));
298
- }, K = (e, a, t) => {
298
+ }, O = (e, a, t) => {
299
299
  Array.from(a.querySelectorAll("[data-query]")).forEach((r, s) => {
300
300
  let i = r.getAttribute("data-query"), o;
301
301
  if (i == "total")
@@ -363,18 +363,15 @@ const X = (e) => {
363
363
  var l = window.URL.createObjectURL(c);
364
364
  n.href = l, n.style.display = "none", document.body.appendChild(n), n.click(), document.body.removeChild(n);
365
365
  }, et = function(e, a, t, r) {
366
- if (X(e), St(e), K(e, a, r), r && r.classList.contains("table--cta")) {
366
+ if (Q(e), kt(e), O(e, a, r), r && r.classList.contains("table--cta")) {
367
367
  let s = function() {
368
- Array.from(e.querySelectorAll("tr")).forEach((i, o) => {
369
- let c = i.offsetHeight;
370
- i.style.setProperty("--row-height", `${c}px`);
368
+ Array.from(e.querySelectorAll("tr")).forEach((o, c) => {
369
+ let n = o.offsetHeight;
370
+ o.style.setProperty("--row-height", `${n}px`);
371
371
  });
372
372
  };
373
- if (!r.hasAttribute("data-cta-width")) {
374
- const i = At(e);
375
- r.style.setProperty("--cta-width", `${i}rem`), r.setAttribute("data-cta-width", `${i}rem`);
376
- }
377
- new ResizeObserver(s).observe(e);
373
+ const i = At(e);
374
+ r.style.setProperty("--cta-width", `${i}rem`), new ResizeObserver(s).observe(e);
378
375
  }
379
376
  }, at = function(e, a, t, r) {
380
377
  return wt(this, void 0, void 0, function* () {
@@ -385,34 +382,34 @@ const X = (e) => {
385
382
  try {
386
383
  yield fetch(l + "?" + o, { signal: h, method: "get", credentials: "same-origin", headers: new Headers({ "Content-Type": "application/json", Accept: "application/json", "X-Requested-With": "XMLHttpRequest" }) }).then((f) => f.json()).then((f) => {
387
384
  let b = a.hasAttribute("data-schema") ? a.getAttribute("data-schema") : "data", y = a.hasAttribute("data-schema-total") ? a.getAttribute("data-schema-total") : "meta.total", p = a.hasAttribute("data-schema-page") ? a.getAttribute("data-schema-page") : "meta.current_page", w = s(f, y, 1), I = s(f, p, 1), R = s(f, b), P = r.hasAttribute("data-empty-msg") ? r.getAttribute("data-empty-msg") : "No results found";
388
- if (R ? (n.innerHTML = "", R.forEach((C, k) => {
385
+ if (R ? (n.innerHTML = "", R.forEach((C, S) => {
389
386
  var q = document.createElement("tr");
390
387
  c.forEach((v, L) => {
391
388
  let E = "";
392
389
  var D = document.createElement("td");
393
390
  if (D.setAttribute("data-label", v.innerText), v.getAttribute("data-output")) {
394
- var j = v.getAttribute("data-output");
395
- E = j.replace(new RegExp(/{(.*?)}/, "gm"), function(it) {
391
+ var U = v.getAttribute("data-output");
392
+ E = U.replace(new RegExp(/{(.*?)}/, "gm"), function(it) {
396
393
  return s(C, it.replace("{", "").replace("}", ""));
397
394
  });
398
395
  }
399
396
  if (v.hasAttribute("data-output-array")) {
400
- var j = v.getAttribute("data-output");
401
- let st = s(C, j.replace("{", "").replace("}", ""));
402
- E = "", st.forEach((Y, no) => {
397
+ var U = v.getAttribute("data-output");
398
+ let st = s(C, U.replace("{", "").replace("}", ""));
399
+ E = "", st.forEach((Z, no) => {
403
400
  let nt = v.getAttribute("data-output-array"), B = "";
404
401
  if (v.hasAttribute("data-output-array-property") && v.hasAttribute("data-output-array-transform")) {
405
- const O = s(Y, v.getAttribute("data-output-array-property")), lt = JSON.parse(v.getAttribute("data-output-array-transform"))[O];
402
+ const W = s(Z, v.getAttribute("data-output-array-property")), lt = JSON.parse(v.getAttribute("data-output-array-transform"))[W];
406
403
  B = nt.replace(`{${v.getAttribute("data-output-array-property")}}`, lt);
407
404
  }
408
- B = B.replace(new RegExp(/{(.*?)}/, "gm"), function(O) {
409
- return s(Y, O.replace("{", "").replace("}", ""));
405
+ B = B.replace(new RegExp(/{(.*?)}/, "gm"), function(W) {
406
+ return s(Z, W.replace("{", "").replace("}", ""));
410
407
  }), E += B;
411
408
  });
412
409
  }
413
410
  v.hasAttribute("data-transform") && (E = JSON.parse(v.getAttribute("data-transform"))[E], !E && v.hasAttribute("data-default") && (E = v.getAttribute("data-default"))), D.innerHTML = E, q.appendChild(D);
414
411
  }), n.appendChild(q);
415
- }), Q(e, a), r.setAttribute("data-total", parseInt(w)), r.setAttribute("data-page", parseInt(I)), r.setAttribute("data-pages", Math.ceil(r.getAttribute("data-total") / r.getAttribute("data-show"))), et(e, a, t, r), G(r, t), parseInt(w) == 0 && (n.innerHTML = `<tr><td colspan="100%"><span>${P}</span></td></tr>`), r.classList.remove("table--loading"), window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "Ajax table loaded", url: l, formData: o })) : n.innerHTML = '<tr><td colspan="100%"><span>Error loading table</span></td></tr>', a.hasAttribute("data-ajax-post")) {
412
+ }), tt(e, a), r.setAttribute("data-total", parseInt(w)), r.setAttribute("data-page", parseInt(I)), r.setAttribute("data-pages", Math.ceil(r.getAttribute("data-total") / r.getAttribute("data-show"))), j(e, a, r), et(e, a, t, r), F(r, t), parseInt(w) == 0 && (n.innerHTML = `<tr><td colspan="100%"><span>${P}</span></td></tr>`), r.classList.remove("table--loading"), window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "Ajax table loaded", url: l, formData: o })) : n.innerHTML = '<tr><td colspan="100%"><span>Error loading table</span></td></tr>', a.hasAttribute("data-ajax-post")) {
416
413
  const C = new XMLHttpRequest();
417
414
  C.open("GET", `${window.location.href}?ajax=true&${o}`), C.send();
418
415
  }
@@ -421,7 +418,7 @@ const X = (e) => {
421
418
  console.log(f);
422
419
  }
423
420
  });
424
- }, U = (e, a) => {
421
+ }, K = (e, a) => {
425
422
  switch (e) {
426
423
  case "datetime":
427
424
  return new Date(a).toLocaleDateString("en-gb", { weekday: "short", year: "2-digit", month: "long", day: "numeric" }) + " " + new Date(a).toLocaleTimeString("en-gb", { hour: "2-digit", minute: "2-digit" });
@@ -463,7 +460,7 @@ class Et extends HTMLElement {
463
460
  const a = new URLSearchParams(window.location.search);
464
461
  this.hasAttribute("data-total") || this.setAttribute("data-total", this.querySelectorAll("table tbody tr").length), this.hasAttribute("data-page") || this.setAttribute("data-page", a.has("page") ? a.get("page") : 1), this.hasAttribute("data-show") || this.setAttribute("data-show", 15), this.hasAttribute("data-increment") || this.setAttribute("data-increment", 15), this.setAttribute("data-pages", Math.ceil(this.getAttribute("data-total") / this.getAttribute("data-show")));
465
462
  let t = this.classList.toString();
466
- t = t.replace("table--cta", ""), t = t.replace("table--loading", ""), this.shadowRoot.querySelector(".table__wrapper").className += ` ${t}`, this.table = this.querySelector("table"), this.savedTableBody = this.table.querySelector("tbody").cloneNode(!0), this.pagination = this.shadowRoot.querySelector(".table__pagination"), 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"), Q(this.table, this.form), this.form.querySelector("[data-page]") || (this.form.innerHTML += `<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`), this.form.querySelector("[data-show]") || (this.form.innerHTML += `<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`), kt(this.table), Lt(this.table, this.form, this.pagination, this, this.savedTableBody), xt(this.table, this.form, this.pagination, this), qt(this.shadowRoot.querySelector("[data-export]"), this.table), this.form.getAttribute("data-ajax") ? at(this.table, this.form, this.pagination, this) : (et(this.table, this.form, this.pagination, this), tt(this.table, this.form, this), G(this, this.pagination), K(this.table, this.form)), this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll", (r) => {
463
+ t = t.replace("table--cta", ""), t = t.replace("table--loading", ""), this.shadowRoot.querySelector(".table__wrapper").className += ` ${t}`, this.table = this.querySelector("table"), this.savedTableBody = this.table.querySelector("tbody").cloneNode(!0), this.pagination = this.shadowRoot.querySelector(".table__pagination"), 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"), tt(this.table, this.form), this.form.querySelector("[data-page]") || (this.form.innerHTML += `<input name="page" type="hidden" value="${this.getAttribute("data-page")}" data-pagination="true" />`), this.form.querySelector("[data-show]") || (this.form.innerHTML += `<input name="show" type="hidden" value="${this.getAttribute("data-show")}" data-show="true" />`), St(this.table), Lt(this.table, this.form, this.pagination, this, this.savedTableBody), xt(this.table, this.form, this.pagination, this), qt(this.shadowRoot.querySelector("[data-export]"), this.table), this.form.getAttribute("data-ajax") ? at(this.table, this.form, this.pagination, this) : (et(this.table, this.form, this.pagination, this), j(this.table, this.form, this), F(this, this.pagination), O(this.table, this.form)), this.shadowRoot.querySelector(".table__wrapper").addEventListener("scroll", (r) => {
467
464
  this.table.querySelector("dialog[open]") && (this.table.querySelector("dialog[open]").close(), this.table.querySelector(".dialog__wrapper > button.active").classList.remove("active"));
468
465
  });
469
466
  }
@@ -524,7 +521,7 @@ function Pt(e, a, t, r, s, i) {
524
521
  ])) : _(e.$slots, "default", { key: 1 })
525
522
  ]);
526
523
  }
527
- const rt = /* @__PURE__ */ S(Dt, [["render", Pt]]), Bt = {
524
+ const rt = /* @__PURE__ */ k(Dt, [["render", Pt]]), Bt = {
528
525
  name: "Input",
529
526
  props: {
530
527
  value: {
@@ -584,6 +581,10 @@ const rt = /* @__PURE__ */ S(Dt, [["render", Pt]]), Bt = {
584
581
  type: String,
585
582
  required: !1
586
583
  },
584
+ pattern: {
585
+ type: String,
586
+ required: !1
587
+ },
587
588
  suffixClass: {
588
589
  type: String,
589
590
  required: !1
@@ -627,7 +628,7 @@ const rt = /* @__PURE__ */ S(Dt, [["render", Pt]]), Bt = {
627
628
  case "datetime-local":
628
629
  return "[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}";
629
630
  }
630
- return !1;
631
+ return "(.*?)";
631
632
  };
632
633
  },
633
634
  needsLabel() {
@@ -714,7 +715,7 @@ const rt = /* @__PURE__ */ S(Dt, [["render", Pt]]), Bt = {
714
715
  }, Gt = ["type", "name", "id", "pattern", "list"], Kt = { class: "input-group-text border-0 col-2 col-sm-1 px-0" }, Yt = {
715
716
  key: 6,
716
717
  class: "input-group"
717
- }, Zt = ["type", "name", "id", "pattern", "list"], Jt = { class: "input-group-text flex-fill" }, Xt = ["type", "name", "id", "pattern"], Qt = ["value"], te = ["id"], ee = ["value"], ae = ["type", "name", "id"], re = ["for", "innerHTML"], oe = ["type", "name", "id"], ie = ["for", "innerHTML"], se = ["innerHTML"];
718
+ }, Zt = ["type", "name", "id", "pattern", "list"], Jt = { class: "input-group-text flex-fill" }, Xt = ["type", "name", "id", "pattern"], Qt = ["value"], te = ["type", "name", "id"], ee = ["for", "innerHTML"], ae = ["type", "name", "id"], re = ["for", "innerHTML"], oe = ["innerHTML"], ie = ["id"], se = ["value"];
718
719
  function ne(e, a, t, r, s, i) {
719
720
  return u(), m("div", {
720
721
  class: A(i.wrapperClass()),
@@ -751,7 +752,7 @@ function ne(e, a, t, r, s, i) {
751
752
  }, e.$attrs, {
752
753
  onKeyup: a[1] || (a[1] = (...o) => i.inputKeyup && i.inputKeyup(...o))
753
754
  }), null, 16, Vt)), [
754
- [V, i.inputVal]
755
+ [G, i.inputVal]
755
756
  ]) : g("", !0),
756
757
  t.type == "textarea" ? z((u(), m("textarea", H({
757
758
  key: 4,
@@ -774,7 +775,7 @@ function ne(e, a, t, r, s, i) {
774
775
  pattern: i.needPattern(),
775
776
  list: i.hasOptions()
776
777
  }, e.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, Gt), [
777
- [V, i.inputVal]
778
+ [G, i.inputVal]
778
779
  ]),
779
780
  d("output", Kt, $(t.value), 1)
780
781
  ])) : g("", !0),
@@ -788,7 +789,7 @@ function ne(e, a, t, r, s, i) {
788
789
  pattern: i.needPattern(),
789
790
  list: i.hasOptions()
790
791
  }, e.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, Zt), [
791
- [V, i.inputVal]
792
+ [G, i.inputVal]
792
793
  ]),
793
794
  d("output", Jt, $(t.value ? e.vale : "#000000"), 1)
794
795
  ])) : g("", !0),
@@ -808,54 +809,54 @@ function ne(e, a, t, r, s, i) {
808
809
  ], 16, Xt)), [
809
810
  [dt, i.inputVal]
810
811
  ]) : g("", !0),
811
- i.allowDatalist() ? (u(), m("datalist", {
812
- key: 8,
813
- id: t.id + "-list"
814
- }, [
815
- (u(!0), m(T, null, M(t.options, (o, c) => (u(), m("option", {
816
- key: c,
817
- value: o.value
818
- }, $(o.value), 9, ee))), 128))
819
- ], 8, te)) : g("", !0),
820
812
  t.type == "checkbox" || t.type == "radio" ? (u(), m("input", H({
821
- key: 9,
813
+ key: 8,
822
814
  class: "form-check-input",
823
815
  type: t.type,
824
816
  name: t.name ? t.name : t.id,
825
817
  id: t.id
826
- }, e.$attrs), null, 16, ae)) : g("", !0),
818
+ }, e.$attrs), null, 16, te)) : g("", !0),
827
819
  t.type == "checkbox" || t.type == "radio" ? (u(), m("label", {
828
- key: 10,
820
+ key: 9,
829
821
  class: A(`form-label form-check-label${t.labelclass ? ` ${t.labelclass}` : ""}`),
830
822
  for: t.id,
831
823
  innerHTML: t.label
832
- }, null, 10, re)) : g("", !0),
824
+ }, null, 10, ee)) : g("", !0),
833
825
  t.type == "checkbox-btn" || t.type == "radio-btn" ? (u(), m("input", H({
834
- key: 11,
826
+ key: 10,
835
827
  class: `btn-check${t.inputclass ? ` ${t.inputclass}` : ""}`,
836
828
  type: t.type.replace("-btn", ""),
837
829
  autocomplete: "off",
838
830
  name: t.name ? t.name : t.id,
839
831
  id: t.id
840
- }, e.$attrs), null, 16, oe)) : g("", !0),
832
+ }, e.$attrs), null, 16, ae)) : g("", !0),
841
833
  t.type == "checkbox-btn" || t.type == "radio-btn" ? (u(), m("label", {
842
- key: 12,
834
+ key: 11,
843
835
  class: A(`btn${t.labelclass ? ` ${t.labelclass}` : ""}`),
844
836
  for: t.id,
845
837
  innerHTML: t.label,
846
838
  onClick: a[6] || (a[6] = (...o) => i.clickEvent && i.clickEvent(...o))
847
- }, null, 10, ie)) : g("", !0),
848
- t.errormsg ? (u(), m("p", {
849
- key: 13,
839
+ }, null, 10, re)) : g("", !0),
840
+ _(e.$slots, "default"),
841
+ t.errormsg ? (u(), m("span", {
842
+ key: 12,
850
843
  class: "invalid-feedback mb-0",
851
844
  innerHTML: t.errormsg
852
- }, null, 8, se)) : g("", !0),
853
- _(e.$slots, "default")
845
+ }, null, 8, oe)) : g("", !0),
846
+ i.allowDatalist() ? (u(), m("datalist", {
847
+ key: 13,
848
+ id: t.id + "-list"
849
+ }, [
850
+ (u(!0), m(T, null, M(t.options, (o, c) => (u(), m("option", {
851
+ key: c,
852
+ value: o.value
853
+ }, $(o.value), 9, se))), 128))
854
+ ], 8, ie)) : g("", !0)
854
855
  ], 2);
855
856
  }
856
- const F = /* @__PURE__ */ S(Bt, [["render", ne]]), le = {
857
+ const V = /* @__PURE__ */ k(Bt, [["render", ne]]), le = {
857
858
  components: {
858
- Input: F
859
+ Input: V
859
860
  },
860
861
  name: "FileUploads",
861
862
  props: {
@@ -914,9 +915,9 @@ function fe(e, a, t, r, s, i) {
914
915
  }, "+ Add file", 8, he)
915
916
  ]);
916
917
  }
917
- const co = /* @__PURE__ */ S(le, [["render", fe]]);
918
+ const co = /* @__PURE__ */ k(le, [["render", fe]]);
918
919
  /*!
919
- * iamKey v3.7.6
920
+ * iamKey v3.7.8--beta
920
921
  * Copyright 2022-2023 iamproperty
921
922
  */
922
923
  function be(e) {
@@ -969,7 +970,7 @@ function _e(e, a, t, r, s, i) {
969
970
  _(e.$slots, "default")
970
971
  ], 512);
971
972
  }
972
- const mo = /* @__PURE__ */ S(ye, [["render", _e]]), ve = {
973
+ const mo = /* @__PURE__ */ k(ye, [["render", _e]]), ve = {
973
974
  name: "AccordionItem",
974
975
  props: {
975
976
  title: {
@@ -1005,7 +1006,7 @@ const mo = /* @__PURE__ */ S(ye, [["render", _e]]), ve = {
1005
1006
  };
1006
1007
  }
1007
1008
  }, we = ["id"], Ae = ["classList"];
1008
- function Se(e, a, t, r, s, i) {
1009
+ function ke(e, a, t, r, s, i) {
1009
1010
  return u(), m("details", {
1010
1011
  id: i.createID(t.title)
1011
1012
  }, [
@@ -1021,7 +1022,7 @@ function Se(e, a, t, r, s, i) {
1021
1022
  _(e.$slots, "default")
1022
1023
  ], 8, we);
1023
1024
  }
1024
- const ho = /* @__PURE__ */ S(ve, [["render", Se]]), ke = {
1025
+ const ho = /* @__PURE__ */ k(ve, [["render", ke]]), Se = {
1025
1026
  name: "Header",
1026
1027
  props: {
1027
1028
  title: {
@@ -1063,13 +1064,13 @@ function Me(e, a, t, r, s, i) {
1063
1064
  ], 2)
1064
1065
  ]);
1065
1066
  }
1066
- const fo = /* @__PURE__ */ S(ke, [["render", Me]]);
1067
+ const fo = /* @__PURE__ */ k(Se, [["render", Me]]);
1067
1068
  /*!
1068
- * iamKey v3.7.6
1069
+ * iamKey v3.7.8--beta
1069
1070
  * Copyright 2022-2023 iamproperty
1070
1071
  */
1071
1072
  window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "customElementRegistered", element: "Card" });
1072
- class He extends HTMLElement {
1073
+ let He = class extends HTMLElement {
1073
1074
  constructor() {
1074
1075
  super(), this.attachShadow({ mode: "open" }), this.querySelector('[class*="fa-"]') && this.classList.add("card--has-icon");
1075
1076
  let a = this.classList.toString();
@@ -1077,7 +1078,7 @@ class He extends HTMLElement {
1077
1078
  s.innerHTML = `
1078
1079
  <style>
1079
1080
  @import "${r}";
1080
- .card{--card-icon-right: 1rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:block;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);outline-offset:-1px}.card.border-0{box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__body{position:relative;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1}.card:before,.card:after{content:"";position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--colour-warning);border-radius:50%}.card:after{background:var(--colour-primary-theme);mask-image:var(--icon-arrow);mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}.card:is(:hover,:focus,.hover){--card-icon-right: 0.5rem;outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}.card:not([class*=colour-]):is(:hover,:focus,.hover):before{background:var(--colour-primary-theme)}.card:not([class*=colour-]):is(:hover,:focus,.hover):after{background:#fff}.card:is(:active,.active){--card-icon-right: 0.5rem;outline:none}.card:is(:active,.active):before{background:var(--colour-warning)}.card:is(:active,.active):after{background:var(--colour-primary)}.card:is(:active){background:#fcfcfc}.card span{display:block;font-weight:bold;padding-top:1.5rem;font-size:1rem}.card:has(.card__illustration) .card__body{align-items:center;display:flex}.card:has(.card__illustration) .card__body .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card:has(.card__illustration) .card__body .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}::slotted(i){font-size:1.5rem;margin:-3px var(--card-icon-right) 0 0;font-weight:400;vertical-align:middle}::slotted(span){display:block;font-weight:normal;padding-top:1.5rem;font-size:1rem}.card[class*=colour-],.card--filter{border-left:0.75rem solid var(--colour, var(--colour-primary))}.card--filter{--top-padding: 1.5rem;--right-padding: 1rem;--bottom-padding: 1.5rem;--left-padding: 1rem}.card--filter:has(.card__total) .card__body{align-items:center;display:flex}.card--filter:before,.card--filter:after{display:none}.card--filter:is(:hover,:focus,.hover){outline:none;background:#eee}.card--filter:is(:hover,:focus,.hover) .card__body{background:#eee}.card--filter:is(:active,.active){outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}.card--filter:is(:active,.active) .card__body{background:#fff}.card--filter.card--has-icon{--bottom-padding: 1rem;border:none}.card--filter .icon{font-size:1.125rem !important;height:1.125rem !important;margin:0 0 .5rem 0 !important;font-weight:400 !important;display:block !important}.card--filter .card__total{font-size:3rem;line-height:3rem;padding-right:1rem}.card--filter ::slotted(i){display:block !important;font-size:1.125rem !important;margin:0 0 .5rem 0 !important}.card:has(.card__head) .card__head{padding-bottom:0;padding-top:27%;position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card:has(.card__head) .card__head>img{position:absolute;top:0;left:0;width:102%;height:102%;object-fit:cover}.card.card--lg-image:has(.card__head) .card__head{padding-top:55%}.card:has(.card__footer):after{display:none}.card:has(.card__footer) .card__footer{position:relative;background:#fff;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1;display:block}/*# sourceMappingURL=assets/css/components/card.css.map */
1081
+ .card{--card-icon-right: 1rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:block;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);outline-offset:-1px}.card.border-0{box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__body{position:relative;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1}.card:before,.card:after{content:"";position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--colour-warning);border-radius:50%}.card:after{background:var(--colour-primary-theme);mask-image:var(--icon-arrow);mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}.card:is(:hover,:focus,.hover){--card-icon-right: 0.5rem;outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}.card:not([class*=colour-]):is(:hover,:focus,.hover):before{background:var(--colour-primary-theme)}.card:not([class*=colour-]):is(:hover,:focus,.hover):after{background:#fff}.card:is(:active,.active){--card-icon-right: 0.5rem;outline:none}.card:is(:active,.active):before{background:var(--colour-warning)}.card:is(:active,.active):after{background:var(--colour-primary)}.card:is(:active){background:#fcfcfc}.card span{display:block;font-weight:bold;padding-top:1.5rem;font-size:1rem}.card:has(.card__illustration) .card__body{align-items:center;display:flex}.card:has(.card__illustration) .card__body .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card:has(.card__illustration) .card__body .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}::slotted(i){font-size:1.5rem;margin:-3px var(--card-icon-right) 0 0;font-weight:400;vertical-align:middle}::slotted(span){display:block;font-weight:normal;padding-top:1.5rem;font-size:1rem}.card[class*=colour-],.card--filter{border-left:0.75rem solid var(--colour, var(--colour-primary))}.card--filter{--top-padding: 1.5rem;--right-padding: 1rem;--bottom-padding: 1.5rem;--left-padding: 1rem}.card--filter:has(.card__total) .card__body{align-items:center;display:flex}.card--filter:before,.card--filter:after{display:none}.card--filter:is(:hover,:focus,.hover){outline:none}.card--filter:is(:hover,:focus,.hover) .card__body{background:#eee}.card--filter:is(:active,.active) .card__body{background:#e0e0e0}.card--filter:is(:checked,.checked){outline:2px solid var(--colour, var(--colour-info));outline-offset:-2px}.card--filter:is(:checked,.checked) .card__body{background:#e0e0e0}.card--filter.card--has-icon{--bottom-padding: 1rem;border:none}.card--filter .icon{font-size:1.125rem !important;height:1.125rem !important;margin:0 0 .5rem 0 !important;font-weight:400 !important;display:block !important}.card--filter .card__total{font-size:3rem;line-height:3rem;padding-right:1rem}@media screen and (prefers-color-scheme: dark){.card--filter .card__body{background:none !important}.card--filter:is(:hover,:focus,.hover,:active,.active):not(:checked,.checked){outline:2px solid var(--colour, var(--colour-primary)) !important;outline-offset:-2px}}.card--filter ::slotted(i){display:block !important;font-size:1.125rem !important;margin:0 0 .5rem 0 !important}.card:has(.card__head) .card__head{padding-bottom:0;padding-top:27%;position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card:has(.card__head) .card__head>img{position:absolute;top:0;left:0;width:102%;height:102%;object-fit:cover}.card.card--lg-image:has(.card__head) .card__head{padding-top:55%}.card:has(.card__footer):after{display:none}.card:has(.card__footer) .card__footer{position:relative;background:#fff;padding:var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);z-index:-1;display:block}/*# sourceMappingURL=assets/css/components/card.css.map */
1081
1082
 
1082
1083
  ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
1083
1084
  </style>
@@ -1095,13 +1096,28 @@ class He extends HTMLElement {
1095
1096
  connectedCallback() {
1096
1097
  this.classList.add("loaded");
1097
1098
  const a = this.parentNode.closest("a, button, label"), t = this.shadowRoot.querySelector(".card");
1098
- a.setAttribute("tabindex", "-1"), a.matches("label[for]") && document.getElementById(a.getAttribute("for")).checked && t.classList.add("active"), t.addEventListener("click", (r) => {
1099
- a.matches("label[for]") ? document.getElementById(a.getAttribute("for")).checked ? t.classList.remove("active") : t.classList.add("active") : a.click();
1099
+ a.setAttribute("tabindex", "-1"), a.matches("label[for]") && (document.getElementById(a.getAttribute("for")).checked ? t.classList.add("checked") : t.classList.remove("checked")), t.addEventListener("click", (r) => {
1100
+ if (a.matches("label[for]")) {
1101
+ r.stopPropagation(), r.preventDefault();
1102
+ const s = document.getElementById(a.getAttribute("for")), i = s.getAttribute("name"), o = s.getAttribute("id");
1103
+ Array.from(document.querySelectorAll(`[name="${i}"]:not([id="${o}"])`)).forEach((c, n) => {
1104
+ document.querySelector(`[for="${c.getAttribute("id")}"] iam-card`).dispatchEvent(new Event("inactive"));
1105
+ }), a.click(), s.checked ? t.classList.add("checked") : t.classList.remove("checked");
1106
+ }
1107
+ }), this.addEventListener("inactive", (r) => {
1108
+ t.classList.remove("checked");
1100
1109
  }), t.addEventListener("keydown", (r) => {
1101
1110
  switch (r.keyCode) {
1102
1111
  case 32:
1103
1112
  case 13:
1104
- a.matches("label[for]") ? document.getElementById(a.getAttribute("for")).checked ? t.classList.remove("active") : t.classList.add("active") : a.click();
1113
+ if (a.matches("label[for]")) {
1114
+ r.stopPropagation(), r.preventDefault();
1115
+ const s = document.getElementById(a.getAttribute("for")), i = s.getAttribute("name"), o = s.getAttribute("id");
1116
+ Array.from(document.querySelectorAll(`[name="${i}"]:not([id="${o}"])`)).forEach((c, n) => {
1117
+ document.querySelector(`[for="${c.getAttribute("id")}"] iam-card`).dispatchEvent(new Event("inactive"));
1118
+ }), a.click(), s.checked ? t.classList.add("checked") : t.classList.remove("checked");
1119
+ } else
1120
+ a.click();
1105
1121
  break;
1106
1122
  }
1107
1123
  });
@@ -1122,7 +1138,7 @@ class He extends HTMLElement {
1122
1138
  }
1123
1139
  }
1124
1140
  }
1125
- }
1141
+ };
1126
1142
  const Ce = {
1127
1143
  name: "Card",
1128
1144
  mounted() {
@@ -1136,7 +1152,7 @@ function De(e, a, t, r, s, i) {
1136
1152
  _(e.$slots, "default")
1137
1153
  ]);
1138
1154
  }
1139
- const Ne = /* @__PURE__ */ S(Ce, [["render", De]]);
1155
+ const Ne = /* @__PURE__ */ k(Ce, [["render", De]]);
1140
1156
  function Re(e) {
1141
1157
  var a;
1142
1158
  let t = e.querySelector(".carousel__inner"), r = e.querySelectorAll(".carousel__item").length;
@@ -1322,9 +1338,9 @@ function We(e, a, t, r, s, i) {
1322
1338
  ])
1323
1339
  ], 8, Ie);
1324
1340
  }
1325
- const bo = /* @__PURE__ */ S(ze, [["render", We]]);
1341
+ const po = /* @__PURE__ */ k(ze, [["render", We]]);
1326
1342
  /*!
1327
- * iamKey v3.7.6
1343
+ * iamKey v3.7.8--beta
1328
1344
  * Copyright 2022-2023 iamproperty
1329
1345
  */
1330
1346
  window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "customElementRegistered", element: "header" });
@@ -1392,7 +1408,7 @@ function Je(e, a, t, r, s, i) {
1392
1408
  _(e.$slots, "default")
1393
1409
  ], 8, Ye);
1394
1410
  }
1395
- const po = /* @__PURE__ */ S(Ke, [["render", Je]]);
1411
+ const yo = /* @__PURE__ */ k(Ke, [["render", Je]]);
1396
1412
  function Xe(e) {
1397
1413
  var a;
1398
1414
  const t = e.querySelector(".testimonial__images"), r = t.querySelectorAll("img").length;
@@ -1493,10 +1509,10 @@ function ha(e, a, t, r, s, i) {
1493
1509
  ], 2)
1494
1510
  ], 512);
1495
1511
  }
1496
- const yo = /* @__PURE__ */ S(Qe, [["render", ha]]);
1512
+ const go = /* @__PURE__ */ k(Qe, [["render", ha]]);
1497
1513
  const fa = {
1498
1514
  components: {
1499
- Input: F
1515
+ Input: V
1500
1516
  },
1501
1517
  name: "PropertySearchbar",
1502
1518
  props: {
@@ -1646,7 +1662,7 @@ const fa = {
1646
1662
  }, pa = { class: "property-searchbar" }, ya = ["action", "method"], ga = { class: "col-12 col-md-3" }, _a = { class: "col-12 col-md" }, va = /* @__PURE__ */ d("span", { class: "form-label d-none d-md-block" }, "Price range", -1), wa = {
1647
1663
  class: "row",
1648
1664
  "data-input-range": ""
1649
- }, Aa = { class: "col-12 col-md" }, Sa = /* @__PURE__ */ d("span", { class: "form-label d-none d-md-block" }, "Number of beds", -1), ka = {
1665
+ }, Aa = { class: "col-12 col-md" }, ka = /* @__PURE__ */ d("span", { class: "form-label d-none d-md-block" }, "Number of beds", -1), Sa = {
1650
1666
  class: "row",
1651
1667
  "data-input-range": ""
1652
1668
  }, La = { class: "col-12 col-md-2" }, xa = /* @__PURE__ */ d("div", { class: "col-12 col-md mw-md-fit-content d-flex property-searchbar__btn" }, [
@@ -1709,8 +1725,8 @@ function qa(e, a, t, r, s, i) {
1709
1725
  ])
1710
1726
  ]),
1711
1727
  d("fieldset", Aa, [
1712
- Sa,
1713
- d("div", ka, [
1728
+ ka,
1729
+ d("div", Sa, [
1714
1730
  x(o, {
1715
1731
  class: "col-6",
1716
1732
  label: "Minimum beds",
@@ -1743,7 +1759,7 @@ function qa(e, a, t, r, s, i) {
1743
1759
  _(e.$slots, "after")
1744
1760
  ], 512);
1745
1761
  }
1746
- const go = /* @__PURE__ */ S(fa, [["render", qa]]), $a = (e) => {
1762
+ const _o = /* @__PURE__ */ k(fa, [["render", qa]]), $a = (e) => {
1747
1763
  Array.from(e.querySelectorAll("details")).forEach((a, t) => {
1748
1764
  a.addEventListener("mouseenter", function(r) {
1749
1765
  window.matchMedia("(min-width: 62em)").matches && a.setAttribute("open", "true");
@@ -1757,7 +1773,7 @@ const go = /* @__PURE__ */ S(fa, [["render", qa]]), $a = (e) => {
1757
1773
  };
1758
1774
  const Ea = {
1759
1775
  components: {
1760
- Input: F,
1776
+ Input: V,
1761
1777
  Logo: yt
1762
1778
  },
1763
1779
  name: "Nav",
@@ -2034,7 +2050,7 @@ function pr(e, a, t, r, s, i) {
2034
2050
  br
2035
2051
  ], 2);
2036
2052
  }
2037
- const _o = /* @__PURE__ */ S(Ea, [["render", pr]]);
2053
+ const vo = /* @__PURE__ */ k(Ea, [["render", pr]]);
2038
2054
  const yr = {
2039
2055
  name: "Stepper",
2040
2056
  props: {
@@ -2052,7 +2068,7 @@ const yr = {
2052
2068
  key: 0,
2053
2069
  class: "h6 stepper__start"
2054
2070
  }, wr = { class: "list-unstyled" }, Ar = { class: "h6 stepper__end" };
2055
- function Sr(e, a, t, r, s, i) {
2071
+ function kr(e, a, t, r, s, i) {
2056
2072
  return u(), m("div", gr, [
2057
2073
  d("nav", {
2058
2074
  class: "stepper",
@@ -2066,7 +2082,7 @@ function Sr(e, a, t, r, s, i) {
2066
2082
  ], 8, _r)
2067
2083
  ]);
2068
2084
  }
2069
- const vo = /* @__PURE__ */ S(yr, [["render", Sr]]), kr = {
2085
+ const wo = /* @__PURE__ */ k(yr, [["render", kr]]), Sr = {
2070
2086
  name: "Stepper",
2071
2087
  props: {
2072
2088
  url: {
@@ -2100,9 +2116,9 @@ function qr(e, a, t, r, s, i) {
2100
2116
  ], 10, Lr)
2101
2117
  ]);
2102
2118
  }
2103
- const wo = /* @__PURE__ */ S(kr, [["render", qr]]);
2119
+ const Ao = /* @__PURE__ */ k(Sr, [["render", qr]]);
2104
2120
  /*!
2105
- * iamKey v3.7.6
2121
+ * iamKey v3.7.8--beta
2106
2122
  * Copyright 2022-2023 iamproperty
2107
2123
  */
2108
2124
  const $r = function(e) {
@@ -2177,7 +2193,7 @@ function Nr(e, a, t, r, s, i) {
2177
2193
  _(e.$slots, "default")
2178
2194
  ], 512);
2179
2195
  }
2180
- const Ao = /* @__PURE__ */ S(Cr, [["render", Nr]]), Rr = {
2196
+ const ko = /* @__PURE__ */ k(Cr, [["render", Nr]]), Rr = {
2181
2197
  name: "Tab",
2182
2198
  props: {
2183
2199
  title: {
@@ -2206,13 +2222,13 @@ function Pr(e, a, t, r, s, i) {
2206
2222
  _(e.$slots, "default")
2207
2223
  ]);
2208
2224
  }
2209
- const So = /* @__PURE__ */ S(Rr, [["render", Pr]]);
2225
+ const So = /* @__PURE__ */ k(Rr, [["render", Pr]]);
2210
2226
  let ot = rt.props;
2211
2227
  ot.fields.required = !1;
2212
2228
  const Br = {
2213
2229
  components: {
2214
2230
  Table: rt,
2215
- Input: F
2231
+ Input: V
2216
2232
  },
2217
2233
  data() {
2218
2234
  return {
@@ -2289,9 +2305,9 @@ function Wr(e, a, t, r, s, i) {
2289
2305
  ], 40, Or)
2290
2306
  ]);
2291
2307
  }
2292
- const ko = /* @__PURE__ */ S(Br, [["render", Wr]]);
2308
+ const Lo = /* @__PURE__ */ k(Br, [["render", Wr]]);
2293
2309
  /*!
2294
- * iamKey v3.7.6
2310
+ * iamKey v3.7.8--beta
2295
2311
  * Copyright 2022-2023 iamproperty
2296
2312
  */
2297
2313
  function Gr(e, a) {
@@ -2381,9 +2397,9 @@ function Zr(e, a, t, r, s, i) {
2381
2397
  _(e.$slots, "default")
2382
2398
  ]);
2383
2399
  }
2384
- const Lo = /* @__PURE__ */ S(Yr, [["render", Zr]]);
2400
+ const xo = /* @__PURE__ */ k(Yr, [["render", Zr]]);
2385
2401
  /*!
2386
- * iamKey v3.7.6
2402
+ * iamKey v3.7.8--beta
2387
2403
  * Copyright 2022-2023 iamproperty
2388
2404
  */
2389
2405
  function Jr(e, a) {
@@ -2393,13 +2409,13 @@ function Xr(e, a) {
2393
2409
  var t;
2394
2410
  a.addEventListener("keyup", (r) => {
2395
2411
  clearTimeout(t), t = setTimeout(function() {
2396
- J(e, a.value);
2412
+ X(e, a.value);
2397
2413
  }, 500);
2398
2414
  }), a.addEventListener("change", (r) => {
2399
- clearTimeout(t), J(e, a.value);
2415
+ clearTimeout(t), X(e, a.value);
2400
2416
  });
2401
2417
  }
2402
- const J = function(e, a) {
2418
+ const X = function(e, a) {
2403
2419
  Array.from(e.querySelectorAll(":scope > li")).forEach((t, r) => {
2404
2420
  let s = t.textContent.toLowerCase();
2405
2421
  t.classList.add("d-none"), s.includes(a.toLowerCase()) && t.classList.remove("d-none");
@@ -2453,18 +2469,18 @@ function eo(e, a, t, r, s, i) {
2453
2469
  _(e.$slots, "default")
2454
2470
  ]);
2455
2471
  }
2456
- const xo = /* @__PURE__ */ S(to, [["render", eo]]);
2472
+ const qo = /* @__PURE__ */ k(to, [["render", eo]]);
2457
2473
  function ao(e) {
2458
2474
  if (e.hasAttribute("data-type") && e.getAttribute("data-type") == "toast") {
2459
2475
  let t = document.querySelector(".notification__holder");
2460
2476
  t || (t = document.createElement("div"), t.classList.add("notification__holder"), t.classList.add("container"), document.querySelector("body").appendChild(t)), e.closest(".notification__holder") || t.appendChild(e);
2461
2477
  }
2462
2478
  if (e.setAttribute("role", "alert"), e.addEventListener("click", function(t) {
2463
- event && event.target instanceof HTMLElement && event.target.closest("[data-dismiss-button]") && (t.preventDefault(), W(e));
2479
+ event && event.target instanceof HTMLElement && event.target.closest("[data-dismiss-button]") && (t.preventDefault(), Y(e));
2464
2480
  }, !1), e.hasAttribute("data-timeout")) {
2465
2481
  let t = e.getAttribute("data-timeout");
2466
2482
  var a = new ro(function() {
2467
- W(e);
2483
+ Y(e);
2468
2484
  }, t);
2469
2485
  e.addEventListener("mouseenter", (r) => {
2470
2486
  a.pause();
@@ -2481,7 +2497,7 @@ function ro(e, a) {
2481
2497
  r = /* @__PURE__ */ new Date(), window.clearTimeout(t), t = window.setTimeout(e, s);
2482
2498
  }, this.resume();
2483
2499
  }
2484
- const W = function(e) {
2500
+ const Y = function(e) {
2485
2501
  e.classList.add("d-none");
2486
2502
  };
2487
2503
  window.dataLayer = window.dataLayer || [];
@@ -2530,7 +2546,7 @@ class oo extends HTMLElement {
2530
2546
  this.innerHTML += '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>';
2531
2547
  }
2532
2548
  ao(r), a && a.addEventListener("click", function(s) {
2533
- W(r);
2549
+ Y(r);
2534
2550
  }, !1);
2535
2551
  }
2536
2552
  }
@@ -2548,27 +2564,27 @@ function so(e, a, t, r, s, i) {
2548
2564
  _(e.$slots, "default")
2549
2565
  ]);
2550
2566
  }
2551
- const qo = /* @__PURE__ */ S(io, [["render", so]]);
2567
+ const $o = /* @__PURE__ */ k(io, [["render", so]]);
2552
2568
  export {
2553
2569
  mo as Accordion,
2554
2570
  ho as AccordionItem,
2555
- Lo as AppliedFilters,
2571
+ xo as AppliedFilters,
2556
2572
  fo as Banner,
2557
2573
  Ne as Card,
2558
- bo as Carousel,
2574
+ po as Carousel,
2559
2575
  co as FileUploads,
2560
- xo as Filterlist,
2561
- po as Header,
2562
- F as Input,
2576
+ qo as Filterlist,
2577
+ yo as Header,
2578
+ V as Input,
2563
2579
  yt as Logo,
2564
- _o as Nav,
2565
- ko as NoteFeed,
2566
- qo as Notification,
2567
- go as PropertySearchbar,
2568
- wo as Step,
2569
- vo as Stepper,
2580
+ vo as Nav,
2581
+ Lo as NoteFeed,
2582
+ $o as Notification,
2583
+ _o as PropertySearchbar,
2584
+ Ao as Step,
2585
+ wo as Stepper,
2570
2586
  So as Tab,
2571
2587
  rt as Table,
2572
- Ao as Tabs,
2573
- yo as Testimonial
2588
+ ko as Tabs,
2589
+ go as Testimonial
2574
2590
  };