@iamproperty/components 3.4.5 → 3.4.7

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 (203) hide show
  1. package/assets/css/components/accordion.css +1 -0
  2. package/assets/css/components/accordion.css.map +1 -0
  3. package/assets/css/components/alert.css +1 -0
  4. package/assets/css/components/alert.css.map +1 -0
  5. package/assets/css/components/applied-filters.css +1 -0
  6. package/assets/css/components/applied-filters.css.map +1 -0
  7. package/assets/css/components/buttons.css +1 -0
  8. package/assets/css/components/buttons.css.map +1 -0
  9. package/assets/css/components/card.css +1 -0
  10. package/assets/css/components/card.css.map +1 -0
  11. package/assets/css/components/carousel.css +1 -0
  12. package/assets/css/components/carousel.css.map +1 -0
  13. package/assets/css/components/charts.css +1 -0
  14. package/assets/css/components/charts.css.map +1 -0
  15. package/assets/css/components/container.css +1 -0
  16. package/assets/css/components/container.css.map +1 -0
  17. package/assets/css/components/dialog.css +1 -0
  18. package/assets/css/components/dialog.css.map +1 -0
  19. package/assets/css/components/forms.css +1 -0
  20. package/assets/css/components/forms.css.map +1 -0
  21. package/assets/css/components/header.css +1 -0
  22. package/assets/css/components/header.css.map +1 -0
  23. package/assets/css/components/lists.css +1 -0
  24. package/assets/css/components/lists.css.map +1 -0
  25. package/assets/css/components/nav.css +1 -0
  26. package/assets/css/components/nav.css.map +1 -0
  27. package/assets/css/components/pagination.css +1 -0
  28. package/assets/css/components/pagination.css.map +1 -0
  29. package/assets/css/components/panel.css +1 -0
  30. package/assets/css/components/panel.css.map +1 -0
  31. package/assets/css/components/property-searchbar.css +1 -0
  32. package/assets/css/components/property-searchbar.css.map +1 -0
  33. package/assets/css/components/snapshot.css +1 -0
  34. package/assets/css/components/snapshot.css.map +1 -0
  35. package/assets/css/components/stepper.css +1 -0
  36. package/assets/css/components/stepper.css.map +1 -0
  37. package/assets/css/components/table.css +1 -0
  38. package/assets/css/components/table.css.map +1 -0
  39. package/assets/css/components/tabs.css +1 -0
  40. package/assets/css/components/tabs.css.map +1 -0
  41. package/assets/css/components/testimonial.css +1 -0
  42. package/assets/css/components/testimonial.css.map +1 -0
  43. package/assets/css/components/timeline.css +1 -0
  44. package/assets/css/components/timeline.css.map +1 -0
  45. package/assets/css/components/tooltips.css +1 -0
  46. package/assets/css/components/tooltips.css.map +1 -0
  47. package/assets/css/core.min.css +1 -1
  48. package/assets/css/core.min.css.map +1 -1
  49. package/assets/css/style.min.css +1 -1
  50. package/assets/css/style.min.css.map +1 -1
  51. package/assets/fonts/qanelas-bold-webfont.woff +0 -0
  52. package/assets/fonts/qanelas-bold-webfont.woff2 +0 -0
  53. package/assets/js/bundle.js +68 -0
  54. package/assets/js/components/accordion/accordion.component.js +33 -0
  55. package/assets/js/components/accordion/accordion.component.min.js +14 -0
  56. package/assets/js/components/accordion/accordion.component.min.js.map +1 -0
  57. package/assets/js/components/applied-filters/applied-filters.component.js +26 -0
  58. package/assets/js/components/card/card.component.js +91 -0
  59. package/assets/js/components/card/card.component.min.js +21 -0
  60. package/assets/js/components/card/card.component.min.js.map +1 -0
  61. package/assets/js/components/filterlist/filterlist.component.js +49 -0
  62. package/assets/js/components/filterlist/filterlist.component.min.js +23 -0
  63. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -0
  64. package/assets/js/components/header/header.component.js +51 -0
  65. package/assets/js/components/header/header.component.min.js +30 -0
  66. package/assets/js/components/header/header.component.min.js.map +1 -0
  67. package/assets/js/components/pagination/pagination.component.js +34 -0
  68. package/assets/js/components/table/table.component.js +104 -0
  69. package/assets/js/components/table/table.component.min.js +24 -0
  70. package/assets/js/components/table/table.component.min.js.map +1 -0
  71. package/assets/js/components/tabs/tabs.component.js +34 -0
  72. package/assets/js/components/tabs/tabs.component.min.js +17 -0
  73. package/assets/js/components/tabs/tabs.component.min.js.map +1 -0
  74. package/assets/js/dynamic.js +74 -0
  75. package/assets/js/dynamic.min.js +5 -0
  76. package/assets/js/dynamic.min.js.map +1 -0
  77. package/assets/js/flat-components.js +79 -0
  78. package/assets/js/modules/accordion.js +11 -14
  79. package/assets/js/modules/applied-filters.js +100 -0
  80. package/assets/js/modules/data-layer.js +45 -0
  81. package/assets/js/modules/filterlist.js +32 -0
  82. package/assets/js/modules/helpers.js +80 -47
  83. package/assets/js/modules/pagination.js +33 -0
  84. package/assets/js/modules/table.js +507 -420
  85. package/assets/js/modules/tabs.js +97 -0
  86. package/assets/js/modules/youtubevideo.js +53 -61
  87. package/assets/js/scripts.bundle.js +111 -984
  88. package/assets/js/scripts.bundle.js.map +1 -1
  89. package/assets/js/scripts.bundle.min.js +3 -4
  90. package/assets/js/scripts.bundle.min.js.map +1 -1
  91. package/assets/js/tests/filterlist.spec.js +22 -0
  92. package/assets/js/tests/pagination.spec.js +15 -0
  93. package/assets/js/tests/table.spec.js +147 -0
  94. package/assets/sass/_components.scss +1 -2
  95. package/assets/sass/_corefiles.scss +5 -4
  96. package/assets/sass/_fonts.scss +4 -4
  97. package/assets/sass/_func.scss +1 -0
  98. package/assets/sass/_functions/functions.scss +6 -0
  99. package/assets/sass/_functions/mixins.scss +9 -9
  100. package/assets/sass/_functions/utilities.scss +16 -0
  101. package/assets/sass/_functions/variables.scss +128 -86
  102. package/assets/sass/_tests/colours.spec.scss +1 -1
  103. package/assets/sass/_tests/mixins.spec.scss +1 -1
  104. package/assets/sass/_tests/typography.spec.scss +2 -2
  105. package/assets/sass/components/accordion.scss +9 -6
  106. package/assets/sass/components/applied-filters.scss +65 -0
  107. package/assets/sass/components/card.scss +178 -227
  108. package/assets/sass/components/charts.scss +4 -0
  109. package/assets/sass/components/container.scss +13 -8
  110. package/assets/sass/components/dialog.scss +202 -0
  111. package/assets/sass/components/forms.scss +39 -5
  112. package/assets/sass/components/header.scss +34 -11
  113. package/assets/sass/components/lists.scss +15 -0
  114. package/assets/sass/components/nav.scss +5 -1
  115. package/assets/sass/components/pagination.scss +140 -0
  116. package/assets/sass/components/panel.scss +3 -4
  117. package/assets/sass/components/snapshot.scss +1 -1
  118. package/assets/sass/components/table.scss +419 -0
  119. package/assets/sass/components/tabs.scss +52 -36
  120. package/assets/sass/components/timeline.scss +2 -2
  121. package/assets/sass/foundations/icons.scss +1 -1
  122. package/assets/sass/{components → foundations}/links.scss +29 -2
  123. package/assets/sass/foundations/reboot.scss +21 -15
  124. package/assets/sass/foundations/root.scss +12 -5
  125. package/assets/sass/foundations/type.scss +90 -66
  126. package/assets/svg/illustrations/table.svg +165 -0
  127. package/assets/ts/README.md +12 -0
  128. package/assets/ts/bundle.ts +87 -0
  129. package/assets/ts/components/accordion/README.md +17 -0
  130. package/assets/ts/components/accordion/accordion.component.ts +43 -0
  131. package/assets/ts/components/applied-filters/README.md +5 -0
  132. package/assets/ts/components/applied-filters/applied-filters.component.ts +33 -0
  133. package/assets/ts/components/card/README.md +22 -0
  134. package/assets/ts/components/card/card.component.ts +117 -0
  135. package/assets/ts/components/filterlist/README.md +17 -0
  136. package/assets/ts/components/filterlist/filterlist.component.ts +60 -0
  137. package/assets/ts/components/header/README.md +26 -0
  138. package/assets/ts/components/header/header.component.ts +61 -0
  139. package/assets/ts/components/pagination/README.md +11 -0
  140. package/assets/ts/components/pagination/pagination.component.ts +45 -0
  141. package/assets/ts/components/table/README.md +23 -0
  142. package/assets/ts/components/table/table.component.ts +128 -0
  143. package/assets/ts/components/tabs/README.md +18 -0
  144. package/assets/ts/components/tabs/tabs.component.ts +41 -0
  145. package/assets/ts/dynamic.ts +98 -0
  146. package/assets/ts/flat-components.ts +100 -0
  147. package/assets/ts/html.d.ts +4 -0
  148. package/assets/ts/modules/accordion.ts +15 -21
  149. package/assets/ts/modules/applied-filters.ts +146 -0
  150. package/assets/ts/modules/data-layer.ts +58 -0
  151. package/assets/ts/modules/filterlist.ts +46 -0
  152. package/assets/ts/modules/helpers.ts +93 -55
  153. package/assets/ts/modules/pagination.ts +44 -0
  154. package/assets/ts/modules/table.ts +598 -433
  155. package/assets/ts/modules/tabs.ts +136 -0
  156. package/assets/ts/modules/youtubevideo.ts +58 -63
  157. package/assets/ts/tests/filterlist.spec.ts +29 -0
  158. package/assets/ts/tests/pagination.spec.ts +21 -0
  159. package/assets/ts/tests/table.spec.ts +191 -0
  160. package/dist/components.es.js +1359 -1356
  161. package/dist/components.umd.js +103 -54
  162. package/dist/style.css +1 -1
  163. package/package.json +20 -12
  164. package/src/components/Accordion/Accordion.spec.js +1 -1
  165. package/src/components/Accordion/Accordion.vue +7 -5
  166. package/src/components/Accordion/AccordionItem.vue +3 -6
  167. package/src/components/Accordion/README.md +0 -2
  168. package/src/components/AppliedFilters/AppliedFilters.vue +20 -0
  169. package/src/components/AppliedFilters/README.md +5 -0
  170. package/src/components/Card/Card.vue +11 -112
  171. package/src/components/Card/README.md +16 -18
  172. package/src/components/Carousel/Carousel.vue +49 -10
  173. package/src/components/Chart/Chart.vue +46 -4
  174. package/src/components/Filterlist/Filterlist.vue +20 -0
  175. package/src/components/Filterlist/README.md +17 -0
  176. package/src/components/Header/Header.spec.js +5 -4
  177. package/src/components/Header/Header.vue +14 -20
  178. package/src/components/Pagination/Pagination.vue +30 -0
  179. package/src/components/Pagination/README.md +11 -0
  180. package/src/components/Snapshot/Snapshot.vue +1 -1
  181. package/src/components/Table/README.md +29 -44
  182. package/src/components/Table/Table.spec.js +5 -37
  183. package/src/components/Table/Table.vue +16 -91
  184. package/src/components/Tabs/README.md +0 -2
  185. package/src/components/Tabs/Tab.vue +3 -2
  186. package/src/components/Tabs/Tabs.vue +8 -64
  187. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +1 -1
  188. package/src/index.js +3 -2
  189. package/assets/fonts/qanelassoft-extrabold-webfont.woff +0 -0
  190. package/assets/fonts/qanelassoft-extrabold-webfont.woff2 +0 -0
  191. package/assets/js/main.js +0 -57
  192. package/assets/js/modules/modal.js +0 -69
  193. package/assets/sass/components/cardDeck.scss +0 -108
  194. package/assets/sass/components/modal.scss +0 -136
  195. package/assets/sass/components/tables.scss +0 -291
  196. package/assets/ts/main.ts +0 -68
  197. package/assets/ts/modules/modal.ts +0 -91
  198. package/src/components/CardDeck/CardDeck.spec.js +0 -99
  199. package/src/components/CardDeck/CardDeck.vue +0 -77
  200. package/src/components/CardDeck/README.md +0 -25
  201. package/src/components/Modal/Modal.spec.js +0 -22
  202. package/src/components/Modal/Modal.vue +0 -43
  203. package/src/components/Modal/README.md +0 -20
@@ -1,10 +1,10 @@
1
- import { openBlock as l, createElementBlock as o, createElementVNode as s, toDisplayString as k, normalizeClass as b, createCommentVNode as p, Fragment as $, renderList as x, renderSlot as v, withDirectives as N, mergeProps as T, vModelDynamic as O, vModelText as J, vModelSelect as X, resolveComponent as H, createVNode as S, createTextVNode as F, normalizeStyle as ee, withModifiers as te } from "vue";
2
- const g = (e, r) => {
3
- const t = e.__vccOpts || e;
4
- for (const [u, h] of r)
5
- t[u] = h;
6
- return t;
7
- }, se = {
1
+ import { openBlock as c, createElementBlock as d, createElementVNode as o, toDisplayString as L, normalizeClass as v, createCommentVNode as _, Fragment as $, renderList as T, renderSlot as p, withDirectives as N, mergeProps as H, vModelDynamic as P, vModelText as se, vModelSelect as ie, resolveComponent as E, createVNode as S, createTextVNode as le, normalizeStyle as ne, withModifiers as re } from "vue";
2
+ const A = (t, a) => {
3
+ const e = t.__vccOpts || t;
4
+ for (const [s, r] of a)
5
+ e[s] = r;
6
+ return e;
7
+ }, oe = {
8
8
  name: "Icon",
9
9
  props: {
10
10
  id: {
@@ -18,16 +18,16 @@ const g = (e, r) => {
18
18
  default: "/svg/icons.svg"
19
19
  }
20
20
  }
21
- }, ae = { class: "icon" }, ie = ["xlink:href"];
22
- function ne(e, r, t, u, h, a) {
23
- return l(), o("svg", ae, [
24
- s("title", null, k(t.id), 1),
25
- s("use", {
26
- "xlink:href": t.path + "#icon-" + t.id
27
- }, null, 8, ie)
21
+ }, ce = { class: "icon" }, de = ["xlink:href"];
22
+ function ue(t, a, e, s, r, n) {
23
+ return c(), d("svg", ce, [
24
+ o("title", null, L(e.id), 1),
25
+ o("use", {
26
+ "xlink:href": e.path + "#icon-" + e.id
27
+ }, null, 8, de)
28
28
  ]);
29
29
  }
30
- const re = /* @__PURE__ */ g(se, [["render", ne]]), le = {
30
+ const he = /* @__PURE__ */ A(oe, [["render", ue]]), me = {
31
31
  name: "Logo",
32
32
  props: {
33
33
  id: {
@@ -52,390 +52,389 @@ const re = /* @__PURE__ */ g(se, [["render", ne]]), le = {
52
52
  return "brand brand--" + this.id;
53
53
  }
54
54
  }
55
- }, oe = ["xlink:href"], ce = ["innerHTML"];
56
- function de(e, r, t, u, h, a) {
57
- return l(), o("div", {
58
- class: b(a.className)
55
+ }, fe = ["xlink:href"], ye = ["innerHTML"];
56
+ function be(t, a, e, s, r, n) {
57
+ return c(), d("div", {
58
+ class: v(n.className)
59
59
  }, [
60
- (l(), o("svg", null, [
61
- s("title", null, "iam " + k(t.id), 1),
62
- s("use", {
63
- "xlink:href": t.path + a.src
64
- }, null, 8, oe)
60
+ (c(), d("svg", null, [
61
+ o("title", null, "iam " + L(e.id), 1),
62
+ o("use", {
63
+ "xlink:href": e.path + n.src
64
+ }, null, 8, fe)
65
65
  ])),
66
- t.desc ? (l(), o("span", {
66
+ e.desc ? (c(), d("span", {
67
67
  key: 0,
68
- innerHTML: t.desc
69
- }, null, 8, ce)) : p("", !0)
68
+ innerHTML: e.desc
69
+ }, null, 8, ye)) : _("", !0)
70
70
  ], 2);
71
71
  }
72
- const ue = /* @__PURE__ */ g(le, [["render", de]]), W = (e) => e.charAt(0).toUpperCase() + e.slice(1), K = (e) => e.replace(/_/g, " "), fe = (e) => e.replace(/ /g, "_"), he = function(e) {
73
- return e = e.toLowerCase(), e = fe(e), e = e.replace(/\W/g, ""), e;
74
- }, me = function(e) {
75
- return typeof e != "string" ? !1 : !isNaN(e) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
76
- !isNaN(parseFloat(e));
77
- }, _e = (e, r) => String(e).padStart(r, "0");
78
- function Z(e) {
79
- if (typeof e != "object")
72
+ const _e = /* @__PURE__ */ A(me, [["render", be]]), pe = function(t) {
73
+ return typeof t != "string" ? !1 : !isNaN(t) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
74
+ !isNaN(parseFloat(t));
75
+ }, ge = (t, a) => String(t).padStart(a, "0"), ve = (t) => t.charAt(0).toUpperCase() + t.slice(1), F = function(t, a) {
76
+ if (!t.getAttribute("data-pages"))
80
77
  return !1;
81
- const r = e.querySelector("thead"), t = e.querySelector("tbody"), u = t.cloneNode(!0), h = new Event("sorted"), a = new Event("filtered"), n = new Event("reordered"), i = "table_" + Math.random().toString(36).substr(2, 9);
82
- let f;
83
- e.setAttribute("id", i);
84
- const A = function(m, d) {
85
- let c = [];
86
- Array.from(t.querySelectorAll("tr")).forEach((y, L) => {
87
- let w = y.querySelector('td[data-label="' + m + '"], th[data-label="' + m + '"]').textContent;
88
- me(w) && (w = _e(w, 10));
89
- const V = {
90
- index: w,
91
- row: y
92
- };
93
- c.push(V);
94
- }), c.sort((y, L) => y.index > L.index ? 1 : -1), d == "descending" && (c = c.reverse());
95
- let _ = "";
96
- c.forEach((y, L) => {
97
- _ += y.row.outerHTML;
98
- }), t.innerHTML = _, e.dispatchEvent(h);
99
- };
100
- if (e.addEventListener("click", function(m) {
101
- for (var d = m.target; d && d != this; d = d.parentNode)
102
- if (d.matches("[data-sortable]")) {
103
- let c = d.getAttribute("aria-sort") == "ascending" ? "descending" : "ascending";
104
- Array.from(e.querySelectorAll("[data-sortable]")).forEach((_, y) => {
105
- _.setAttribute("aria-sort", "none");
106
- }), d.setAttribute("aria-sort", c), e.setAttribute("data-sort", c), e.setAttribute("data-sortBy", d.textContent), A(d.textContent, c), Array.from(e.querySelectorAll("tr[draggable]")).forEach((_, y) => {
107
- _.removeAttribute("draggable");
108
- });
109
- break;
78
+ t.getAttribute("data-page") || t.setAttribute("data-page", 1);
79
+ let e = t.getAttribute("data-page"), s = t.getAttribute("data-pages"), r = t.getAttribute("data-total"), n = t.getAttribute("data-show"), i = t.getAttribute("data-increment");
80
+ if (s <= 1)
81
+ return a.innerHTML = "", !1;
82
+ let l = "";
83
+ for (let h = 1; h <= s; h++)
84
+ h == e ? l += `<li class="page-item active" aria-current="page"><span class="page-link">${h}</span></li>` : l += `<li class="page-item"><a href="?page=${h}" class="page-link" data-page="${h}">${h}</a></li>`;
85
+ return a.innerHTML = `<ul class="pagination mb-0 d-none d-sm-flex">
86
+ ${e == 1 ? '<li class="page-item disabled"><span class="page-link">Previous</span></li>' : `<li class="page-item"><a href="?page=${parseInt(e) - 1}" class="page-link" data-page="${parseInt(e) - 1}">Previous</a></li>`}
87
+ ${l}
88
+ ${e == s ? '<li class="page-item disabled"><span class="page-link">Next</span></li>' : `<li class="page-item"><a href="?page=${parseInt(e) + 1}" class="page-link" data-page="${parseInt(e) + 1}">Next</a></li>`}
89
+ </ul>`, a.innerHTML += `<div class="d-sm-none text-center">
90
+ <span class="d-block pb-2">You've viewed ${n} of ${r} results</span>
91
+ <a href="?show=${parseInt(n) + parseInt(i)}" class="btn btn-primary w-100 m-0" data-show="${parseInt(n) + parseInt(i)}">Load more results</a>
92
+ </div>`, !0;
93
+ }, G = (t) => {
94
+ const a = Array.from(t.querySelectorAll("thead th"));
95
+ Array.from(t.querySelectorAll("tbody tr")).forEach((s, r) => {
96
+ const n = Array.from(s.querySelectorAll("th, td")), i = ["Low", "Medium", "High", "N/A", "Pending", "Verified", "Incomplete", "Completed", "Requires approval"];
97
+ n.forEach((l, h) => {
98
+ const u = a[h];
99
+ if (typeof u < "u") {
100
+ let m = document.createElement("div");
101
+ m.innerHTML = u.innerHTML;
102
+ let f = m.textContent || m.innerText || "";
103
+ l.setAttribute("data-label", f), u.hasAttribute("class") && l.setAttribute("class", u.getAttribute("class")), u.hasAttribute("data-format") && (l.setAttribute("data-format", u.getAttribute("data-format")), l.innerHTML = D("date", l.textContent.trim())), i.includes(l.textContent.trim()) && l.setAttribute("data-content", l.textContent.trim());
110
104
  }
111
- }, !1), e.getAttribute("data-sortBy")) {
112
- let m = e.getAttribute("data-sort") == "ascending" ? "descending" : "ascending";
113
- Array.from(e.querySelectorAll("[data-sortable]")).forEach((d, c) => {
114
- d.textContent == e.getAttribute("data-sortBy") && (d.setAttribute("aria-sort", m), d.click());
115
105
  });
116
- }
117
- const q = function(m) {
118
- const d = document.createElement("div");
119
- d.classList.add("table__filters"), d.classList.add("row"), d.classList.add("pt-1"), d.classList.add("pb-3");
120
- const c = Array.from(e.querySelectorAll("th[data-filterable]"));
121
- let _ = {};
122
- c.forEach((w, V) => {
123
- Array.from(e.querySelectorAll('td[data-label="' + w.textContent + '"]')).forEach((j, ci) => {
124
- _[j.textContent] = j.textContent;
125
- });
126
- });
127
- const y = c.length == 1 ? "Filter by " + c[0].textContent : "Filter", L = c.length == 1 ? "d-none" : "d-sm-flex";
128
- d.innerHTML = `<div class="col-sm-6 col-md-4 pb-3">
129
- <div class="form-control__wrapper form-control-inline mb-0">
130
- <label for="${i}_filter" class="form-label">${y}:</label>
131
- <input type="search" name="${i}_filter" id="${i}_filter" class="form-control form-control-sm" placeholder="" list="${i}_list" />
132
- </div>
133
- <datalist id="${i}_list">
134
- ${Object.keys(_).map((w) => `<option value="${w}"></option>`).join("")}
135
- </datalist>
136
- </div>
137
- <div class="col-md-8 align-items-center pb-3 ${L}">
138
- ${'<span class="pe-3 text-nowrap h5 mb-0">Filter by: </span>' + c.map((w) => `<div class="form-check pe-3 mt-0 mb-0"><input class="form-check-input" type="checkbox" id="${i}_${w.textContent.replace(" ", "_").toLowerCase()}" checked="checked" /><label class="form-check-label text-nowrap" for="${i}_${w.textContent.replace(" ", "_").toLowerCase()}">${w.textContent}</label></div>`).join("")}
139
- </div>`, e.prepend(d);
140
- }, M = function(m) {
141
- let d = [];
142
- Array.from(u.querySelectorAll("tr")).forEach((_, y) => {
143
- let L = "";
144
- if (Array.from(e.querySelectorAll('[type="checkbox"]:checked + label')).forEach((w, V) => {
145
- L += _.querySelector('td[data-label="' + w.textContent + '"]').textContent + " | ";
146
- }), L.indexOf(m) >= 0) {
147
- const w = { row: _ };
148
- d.push(w);
149
- }
106
+ });
107
+ }, Ae = (t) => {
108
+ let a = 0;
109
+ return Array.from(t.querySelectorAll("tr")).forEach((e, s) => {
110
+ let r = window.getComputedStyle(document.querySelector("html")), n = e.querySelector(":scope > *:last-child > *:first-child");
111
+ if (n) {
112
+ let l = n.offsetWidth / parseFloat(r.fontSize);
113
+ l += 1.5, a = a > l ? a : l;
114
+ }
115
+ let i = e.offsetHeight / parseFloat(r.fontSize);
116
+ e.style.setProperty("--row-height", `${i}rem`);
117
+ }), a;
118
+ }, we = (t) => {
119
+ Array.from(t.querySelectorAll("tbody tr")).forEach((a, e) => {
120
+ let s = a.querySelector(":scope > :is(td,th):first-child"), r = s.textContent;
121
+ s.innerHTML = `<span class="td__content">${r}</span><button type="button" class="d-none">${r}</button>`;
122
+ });
123
+ }, Se = (t) => {
124
+ t.addEventListener("click", (a) => {
125
+ if (a && a.target instanceof HTMLElement && a.target.closest("tr > :is(td,th):first-child button")) {
126
+ let e = a.target.closest("tr > :is(td,th):first-child button"), s = e.parentNode.closest("tr");
127
+ s.getAttribute("data-view") == "full" ? s.setAttribute("data-view", "default") : s.setAttribute("data-view", "full"), e.blur();
128
+ }
129
+ });
130
+ }, Q = (t, a) => {
131
+ let e = a.querySelector("[data-search]");
132
+ if (!e)
133
+ return !1;
134
+ const s = e.getAttribute("id"), r = e.getAttribute("data-search").split(",");
135
+ let n = e.parentNode, i = {};
136
+ r.forEach((l, h) => {
137
+ Array.from(t.querySelectorAll('td[data-label="' + l.trim() + '"]')).forEach((u, m) => {
138
+ u.querySelector(".td__content") ? i[u.querySelector(".td__content").textContent] = u.querySelector(".td__content").textContent : i[u.textContent] = u.textContent;
150
139
  });
151
- let c = "";
152
- d.forEach((_, y) => {
153
- c += _.row.outerHTML;
154
- }), t.innerHTML = c, e.dispatchEvent(a);
155
- }, I = function() {
156
- let m = [];
157
- Array.from(e.querySelectorAll('[type="checkbox"]:checked + label')).forEach((_, y) => {
158
- m.push(_.textContent);
140
+ }), e.setAttribute("list", `${s}_list`), e.setAttribute("autocomplete", "off"), n.querySelector("datalist") || (n.innerHTML += `<datalist id="${s}_list"></datalist>`), n.querySelector("datalist").innerHTML = `${Object.keys(i).map((l) => `<option value="${l}"></option>`).join("")}`;
141
+ }, Le = (t, a, e, s, r) => {
142
+ var n;
143
+ let i = function() {
144
+ a.hasAttribute("data-ajax") ? J(t, a, e, s) : a.hasAttribute("data-submit") ? a.submit() : (Y(t, a, s), F(s, e));
145
+ };
146
+ a.addEventListener("keyup", (l) => {
147
+ clearTimeout(n), l && l.target instanceof HTMLElement && l.target.closest("[data-search]") && (n = setTimeout(function() {
148
+ i();
149
+ }, 500));
150
+ }), a.addEventListener("change", (l) => {
151
+ clearTimeout(n), l && l.target instanceof HTMLElement && l.target.closest("[data-sort]") && (a.hasAttribute("data-submit") || U(t, a, r), i()), l && l.target instanceof HTMLElement && l.target.closest("[data-search]") && i(), l && l.target instanceof HTMLElement && l.target.closest("[data-filter]") && !l.target.closest("form dialog") && i(), l && l.target instanceof HTMLElement && l.target.closest("[data-show]") && i();
152
+ }), a.addEventListener("click", (l) => {
153
+ clearTimeout(n), 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") || U(t, a, r), i());
154
+ }), a.addEventListener("submit", (l) => {
155
+ clearTimeout(n), a.hasAttribute("data-submit") || l.preventDefault(), i();
156
+ });
157
+ }, U = (t, a, e) => {
158
+ if (a.getAttribute("data-ajax"))
159
+ return !1;
160
+ let s = t.querySelector("tbody"), r = a.querySelector("[data-sort]"), n = r.querySelector(`option:nth-child(${r.selectedIndex + 1})`), i = n.getAttribute("data-sort"), l = n.getAttribute("data-order"), h = n.getAttribute("data-format");
161
+ if (!i)
162
+ return s.innerHTML = e.innerHTML, G(t), !1;
163
+ let u = [];
164
+ ["asc", "desc", "descending"].includes(l) || (u = l.split(","));
165
+ let m = [];
166
+ Array.from(s.querySelectorAll("tr")).forEach((b, g) => {
167
+ let y = b.querySelector('td[data-label="' + i + '"], th[data-label="' + i + '"]').textContent.trim();
168
+ u.length && u.includes(y) && (y = u.indexOf(y)), pe(y) && (y = ge(y, 10)), h && h == "date" && (y = new Date(y));
169
+ const C = {
170
+ index: y,
171
+ row: b
172
+ };
173
+ m.push(C);
174
+ }), m.sort((b, g) => b.index > g.index ? 1 : -1), (l == "descending" || l == "desc") && (m = m.reverse());
175
+ let f = "";
176
+ m.forEach((b, g) => {
177
+ f += b.row.outerHTML;
178
+ }), s.innerHTML = f;
179
+ }, Y = (t, a, e) => {
180
+ t.classList.remove("table--filtered");
181
+ let s = [], r = [], n = 0, i = a.querySelector("[data-pagination]") ? parseInt(a.querySelector("[data-pagination]").value) : 1, l = a.querySelector("[data-show]") ? parseInt(a.querySelector("[data-show]").value) : 15;
182
+ if (Array.from(a.querySelectorAll("[data-filter]")).forEach((u, m) => {
183
+ if (!(u.type == "radio" && !u.checked) && !(u.type == "checkbox" && !u.checked))
184
+ if (u.getAttribute("data-filter") == "multi")
185
+ for (const [f, b] of Object.entries(JSON.parse(u.value)))
186
+ s[u.getAttribute("data-filter")].push(b);
187
+ else
188
+ u.value && (s[u.getAttribute("data-filter")] || (s[u.getAttribute("data-filter")] = new Array()), s[u.getAttribute("data-filter")].push(u.value));
189
+ }), a.querySelector("[data-search]")) {
190
+ let u = a.querySelector("[data-search]");
191
+ a.querySelector("[data-search]").getAttribute("data-search").split(",").forEach((f, b) => {
192
+ r.push({ column: `${f.trim()}`, value: `${u.value}` });
159
193
  });
160
- let d = [];
161
- m.forEach((_, y) => {
162
- Array.from(e.querySelectorAll('td[data-label="' + _ + '"]')).forEach((L, w) => {
163
- d[L.textContent] = L.textContent;
164
- });
194
+ }
195
+ if (Array.from(a.querySelectorAll("[data-filter-count]")).forEach((u, m) => {
196
+ u.innerHTML = "";
197
+ }), s.length && Array.from(a.querySelectorAll("[data-filter-count]")).forEach((u, m) => {
198
+ u.innerHTML += `(${s.length})`;
199
+ }), !r.length && !s.length)
200
+ return !1;
201
+ t.classList.add("table--filtered"), Array.from(t.querySelectorAll("tbody tr")).forEach((u, m) => {
202
+ u.classList.remove("filtered"), u.classList.remove("filtered--matched"), u.classList.remove("filtered--show"), u.removeAttribute("data-filtered-by");
203
+ });
204
+ for (const [u, m] of Object.entries(s))
205
+ console.log(m), Array.from(t.querySelectorAll("tbody tr:not(.filtered)")).forEach((f, b) => {
206
+ let g = !1;
207
+ m.forEach((y, C) => {
208
+ let M = f.querySelector(`[data-label="${u}"]`);
209
+ if (y && y == "$today")
210
+ y = D("date", /* @__PURE__ */ new Date());
211
+ else if (y && y == "$yesterday") {
212
+ let w = /* @__PURE__ */ new Date();
213
+ w.setDate(w.getDate() - 1), y = D("date", w);
214
+ } else if (y && (y == "$thisWeek" || y == "$lastWeek")) {
215
+ let w = /* @__PURE__ */ new Date(), x = new Date(w.setDate(w.getDate() - (w.getDay() - 1))), q = new Date(w.setDate(w.getDate() - w.getDay() + 7)), k = new Date(M.textContent.toLowerCase());
216
+ if (w.setHours(0, 0, 0, 0), x.setHours(0, 0, 0, 0), q.setHours(0, 0, 0, 0), k.setHours(0, 0, 0, 0), y == "$thisWeek")
217
+ g = k >= x && k <= q;
218
+ else {
219
+ let O = new Date(x.setDate(x.getDate() - 7)), j = new Date(q.setDate(q.getDate() - 7));
220
+ O.setHours(0, 0, 0, 0), j.setHours(0, 0, 0, 0), g = k >= O && k <= j;
221
+ }
222
+ } else if (y && y == "$thisMonth") {
223
+ let w = /* @__PURE__ */ new Date(), x = w.getFullYear(), q = w.getMonth();
224
+ var B = new Date(x, q, 1), V = new Date(x, q + 1, 0);
225
+ let k = new Date(M.textContent.toLowerCase());
226
+ B.setHours(0, 0, 0, 0), V.setHours(0, 0, 0, 0), k.setHours(0, 0, 0, 0), g = k >= B && k <= V;
227
+ } else if (y && y == "$lastMonth") {
228
+ let w = /* @__PURE__ */ new Date(), x = w.getFullYear(), q = w.getMonth();
229
+ var z = new Date(x, q - 1, 1), W = new Date(x, q, 0);
230
+ let k = new Date(M.textContent.toLowerCase());
231
+ z.setHours(0, 0, 0, 0), W.setHours(0, 0, 0, 0), k.setHours(0, 0, 0, 0), g = k >= z && k <= W;
232
+ }
233
+ M && M.textContent.toLowerCase().includes(y.toLowerCase()) && (g = !0);
234
+ }), g || (f.classList.add("filtered"), f.setAttribute("data-filtered-by", u));
165
235
  });
166
- let c = e.querySelector("datalist");
167
- c.innerHTML = Object.keys(d).map((_) => `<option value="${_}"></option>`).join("");
168
- };
169
- Array.from(e.querySelectorAll("[data-filterable]")).length && (q(e, Array.from(e.querySelectorAll("[data-filterable]")).length), e.addEventListener("keyup", function(m) {
170
- for (var d = m.target; d && d != this; d = d.parentNode)
171
- if (d.matches('input[type="search"]')) {
172
- const c = d.value;
173
- M(c);
174
- }
175
- }), e.addEventListener("change", function(m) {
176
- for (var d = m.target; d && d != this; d = d.parentNode)
177
- if (d.matches('input[type="search"]')) {
178
- const c = d.value;
179
- M(c);
180
- }
181
- }), e.addEventListener("change", function(m) {
182
- for (var d = m.target; d && d != this; d = d.parentNode)
183
- if (d.matches('input[type="checkbox"]')) {
184
- const c = e.querySelector('input[type="search"]').value;
185
- M(c), I();
186
- }
187
- }));
188
- const C = function(m, d) {
189
- let c = document.getElementById(i + "_style");
190
- c == null && (c = document.createElement("style"), c.setAttribute("id", i + "_style"));
191
- const _ = m * (d - 1) + 1, y = m * d;
192
- c.innerHTML = `
193
- #${i} tbody tr {
194
- display: none;
195
- }
196
- #${i} tbody tr:nth-child(${_}),
197
- #${i} tbody tr:nth-child(${_}) ~ tr{
198
- display: block;
236
+ Array.from(t.querySelectorAll("tbody tr:not(.filtered)")).forEach((u, m) => {
237
+ let f = !(r.length > 0 && r[0].value.length >= 3);
238
+ r.forEach((b, g) => {
239
+ let y = u.querySelector(`[data-label="${b.column}"]`);
240
+ y && b.value.length >= 3 && y.textContent.toLowerCase().includes(b.value.toLowerCase()) && (f = !0);
241
+ }), f || u.classList.add("filtered");
242
+ }), Array.from(t.querySelectorAll("tbody tr:not(.filtered")).forEach((u, m) => {
243
+ n++, u.classList.add("filtered--matched"), Math.ceil(n / l) == parseInt(i) && u.classList.add("filtered--show");
244
+ }), e && (e.setAttribute("data-page", i), e.setAttribute("data-pages", Math.ceil(n / l)), e.setAttribute("data-total", n), e.setAttribute("data-show", l)), Z(t, a);
245
+ }, Z = (t, a) => {
246
+ Array.from(a.querySelectorAll("[data-query]")).forEach((s, r) => {
247
+ let n = s.getAttribute("data-query"), i;
248
+ if (n == "total")
249
+ i = t.classList.contains("table--filtered") ? t.querySelectorAll("tbody tr:not(.filtered)").length : t.querySelectorAll("tbody tr").length;
250
+ else if (!n.includes(" == ") && n.includes(" & ")) {
251
+ let l = n.split(" & "), h = "";
252
+ l.forEach((u) => {
253
+ h += `:not([data-filtered-by="${u}"])`;
254
+ }), console.log(h), i = Array.from(t.querySelectorAll(`tbody tr${h}`)).length;
255
+ } else if (!n.includes(" == "))
256
+ i = Array.from(t.querySelectorAll(`tbody tr:not([data-filtered-by="${n}"])`)).length;
257
+ else if (n.includes(" && ")) {
258
+ let l = n.split(" && ");
259
+ i = Array.from(t.querySelectorAll("tbody tr:not(.filtered)")).filter(function(h) {
260
+ let u = !0;
261
+ for (const [m, f] of Object.entries(l)) {
262
+ let b = f.split(" == ");
263
+ (!h.querySelector(`td[data-label="${b[0]}"]`) || h.querySelector(`td[data-label="${b[0]}"]`).textContent != `${b[1]}`) && (u = !1);
264
+ }
265
+ return u;
266
+ }).length;
267
+ } else {
268
+ let l = n.split(" == ");
269
+ console.log(l[0]), i = Array.from(t.querySelectorAll(`tbody tr.filtered--matched td[data-label="${l[0]}"], tbody tr[data-filtered-by="${l[0]}"] td[data-label="${l[0]}"]`)).filter(function(h) {
270
+ return h.textContent === l[1];
271
+ }).length;
199
272
  }
200
- @media screen and (min-width: 36em) {
201
- #${i} tbody tr:nth-child(${_}),
202
- #${i} tbody tr:nth-child(${_}) ~ tr{
203
- display: table-row;
204
- }
273
+ s.hasAttribute("data-total") ? s.setAttribute("data-total", i) : s.innerHTML = i;
274
+ });
275
+ }, ke = function(t, a, e, s) {
276
+ e.addEventListener("click", (r) => {
277
+ if (r && r.target instanceof HTMLElement && r.target.closest("[data-page]")) {
278
+ r.preventDefault();
279
+ let n = a.querySelector("[data-pagination]"), i = r.target.closest("[data-page]").getAttribute("data-page");
280
+ n.value = i, s.setAttribute("data-page", i), a.dispatchEvent(new Event("submit"));
281
+ const l = new URL(location);
282
+ l.searchParams.set("page", i), history.pushState({ type: "pagination", form: a.getAttribute("id"), page: i }, "", l);
205
283
  }
206
- #${i} tbody tr:nth-child(${y}) ~ tr{
207
- display: none;
284
+ if (r && r.target instanceof HTMLElement && r.target.closest("[data-show]")) {
285
+ r.preventDefault();
286
+ let n = a.querySelector("[data-show]"), i = r.target.closest("[data-show]").getAttribute("data-show");
287
+ n.value = i, s.setAttribute("data-show", i), a.dispatchEvent(new Event("submit"));
208
288
  }
209
- `, e.append(c);
210
- };
211
- if (e.getAttribute("data-show")) {
212
- const m = parseInt(e.getAttribute("data-show")), d = parseInt(e.getAttribute("data-page")) ? parseInt(e.getAttribute("data-page")) : 1, c = e.querySelectorAll("tbody tr").length;
213
- m < c && (C(m, d), U(i, e, m, d, c), B(i, e, m, d, c), e.addEventListener("change", function(_) {
214
- for (var y = _.target; y && y != this; y = y.parentNode)
215
- y.matches('.table__pagination input[type="number"]') && (C(y.value, d), B(i, e, y.value, d, c), e.setAttribute("data-show", y.value));
216
- }), e.addEventListener("click", function(_) {
217
- for (var y = _.target; y && y != this; y = y.parentNode)
218
- y.matches(".page-item:not(.active):not(.disabled) .page-link") && (C(e.getAttribute("data-show"), y.getAttribute("data-page")), B(i, e, e.getAttribute("data-show"), y.getAttribute("data-page"), c));
219
- }, !1), e.addEventListener("change", function(_) {
220
- for (var y = _.target; y && y != this; y = y.parentNode)
221
- y.matches(".table__pagination select") && (C(e.getAttribute("data-show"), y.value), B(i, e, e.getAttribute("data-show"), y.value, c));
222
- }));
289
+ });
290
+ }, xe = (t, a) => {
291
+ if (!t)
292
+ return !1;
293
+ t.addEventListener("click", (e) => {
294
+ qe(a);
295
+ });
296
+ }, qe = function(t) {
297
+ for (var a = [], e = t.getElementsByTagName("tr"), s = 0; s < e.length; s++) {
298
+ for (var r = e[s].querySelectorAll("td,th"), n = [], i = 0; i < r.length; i++)
299
+ n.push(`"${r[i].textContent}"`);
300
+ a.push(n.join(","));
223
301
  }
224
- function E(m) {
225
- m.dataTransfer.setData("text/plain", m.target.id), f = m.target, m.target.classList.add("tr--dragging");
302
+ a = a.join(`
303
+ `);
304
+ let l = new Blob([a], {
305
+ type: "text/csv"
306
+ });
307
+ var h = document.createElement("a");
308
+ h.download = "export.csv";
309
+ var u = window.URL.createObjectURL(l);
310
+ h.href = u, h.style.display = "none", document.body.appendChild(h), h.click(), document.body.removeChild(h);
311
+ }, X = function(t, a, e, s) {
312
+ if (we(t), G(t), Z(t, a), s && s.classList.contains("table--cta")) {
313
+ const r = Ae(t);
314
+ s.style.setProperty("--cta-width", `${r}rem`);
226
315
  }
227
- const z = function() {
228
- Array.from(t.querySelectorAll("tr")).forEach((m, d) => {
229
- if (m.querySelector('[data-label="Order"]') == null) {
230
- const c = document.createElement("th");
231
- c.innerHTML = d + 1, c.setAttribute("data-label", "Order"), m.prepend(c);
232
- }
233
- m.setAttribute("id", i + "_row_" + (d + 1)), m.setAttribute("data-order", d + 1), m.setAttribute("draggable", "true"), m.addEventListener("dragstart", E);
234
- });
235
- };
236
- if (e.getAttribute("data-reorder") && e.getAttribute("data-reorder") != "false") {
237
- const m = document.createElement("th");
238
- m.innerHTML = "Order", m.title = "Click here to enable re-ordering via drag and drop", m.classList.add("table-order-reset"), r.querySelector("tr").prepend(m), z(), e.addEventListener("click", function(d) {
239
- for (var c = d.target; c && c != this; c = c.parentNode)
240
- if (c.matches(".table-order-reset")) {
241
- Array.from(e.querySelectorAll("[data-sortable]")).forEach((_, y) => {
242
- _.setAttribute("aria-sort", "none");
243
- }), e.removeAttribute("data-sort"), e.removeAttribute("data-sortBy"), A("Order", "ascending"), Array.from(e.querySelectorAll("tbody tr")).forEach((_, y) => {
244
- _.setAttribute("draggable", "true");
316
+ }, J = function(t, a, e, s) {
317
+ const r = (l, h, u) => h.split(/[\.\[\]\'\"]/).filter((m) => m).reduce((m, f) => m ? m[f] : u, l);
318
+ new URLSearchParams(new FormData(a)).toString();
319
+ let n = t.querySelectorAll("thead tr th"), i = t.querySelector("tbody");
320
+ fetch(a.getAttribute("data-ajax"), {
321
+ method: "get",
322
+ credentials: "same-origin",
323
+ headers: new Headers({
324
+ "Content-Type": "application/json",
325
+ Accept: "application/json",
326
+ "X-Requested-With": "XMLHttpRequest"
327
+ })
328
+ }).then((l) => l.json()).then((l) => {
329
+ l.data ? (i.innerHTML = "", l.data.forEach((h, u) => {
330
+ var m = document.createElement("tr");
331
+ n.forEach((f, b) => {
332
+ let g = "";
333
+ var y = document.createElement("td");
334
+ if (y.setAttribute("data-label", f.innerText), f.getAttribute("data-output")) {
335
+ var C = f.getAttribute("data-output");
336
+ g = C.replace(new RegExp(/{(.*?)}/, "gm"), function(M) {
337
+ return r(h, M.replace("{", "").replace("}", ""));
245
338
  });
246
- break;
247
- }
248
- }, !1), document.addEventListener("dragover", function(d) {
249
- d.preventDefault();
250
- }, !1), document.addEventListener("dragenter", function(d) {
251
- d.preventDefault(), d.dataTransfer.dropEffect = "move";
252
- for (var c = d.target; c && c != this; c = c.parentNode)
253
- c.matches("[data-reorder] tbody tr") && c.classList.add("tr--dropable");
254
- }, !1), document.addEventListener("dragleave", function(d) {
255
- d.preventDefault();
256
- for (var c = d.target; c && c != this; c = c.parentNode)
257
- c.matches("[data-reorder] tbody tr") && c.classList.remove("tr--dropable");
258
- }, !1), document.addEventListener("drop", function(d) {
259
- d.preventDefault();
260
- for (var c = d.target; c && c != this; c = c.parentNode)
261
- if (c.matches("[data-reorder] tbody tr")) {
262
- c.parentNode != null && f.parentNode != null && c != f && (f.parentNode.removeChild(f), f.getAttribute("data-order") > c.getAttribute("data-order") ? c.parentNode.insertBefore(f, c) : c.parentNode.insertBefore(f, c.nextElementSibling), Array.from(t.querySelectorAll("tr")).forEach((_, y) => {
263
- _.classList.remove("tr--dragging"), _.classList.remove("tr--dropable"), _.querySelector("th").innerHTML = y + 1, _.setAttribute("data-order", y + 1);
264
- }), e.dispatchEvent(n));
265
- break;
266
339
  }
267
- }, !1);
268
- }
269
- e.addEventListener("filtered", function(m) {
270
- if (e.getAttribute("data-sortBy") && e.getAttribute("data-sort") && A(e.getAttribute("data-sortBy"), e.getAttribute("data-sort")), e.getAttribute("data-show")) {
271
- const d = parseInt(e.getAttribute("data-show")), c = e.querySelectorAll("tbody tr").length, _ = e.querySelector(".table__pagination");
272
- _ != null && _.remove(), d < c && (C(d, 1), U(i, e, d, 1, c), B(i, e, d, 1, c));
273
- }
274
- e.getAttribute("data-reorder") && z();
275
- }, !1), e.addEventListener("sorted", function(m) {
276
- e.getAttribute("data-reorder") && z();
277
- }, !1), e.addEventListener("populated", function(m) {
278
- var d = e.querySelector(".table__filters");
279
- d.remove();
280
- var c = e.querySelector(".table__pagination");
281
- c.remove();
282
- var _ = e.cloneNode(!0);
283
- e.parentNode.replaceChild(_, e), Z(_);
284
- }, !1);
285
- }
286
- const U = function(e, r, t, u, h) {
287
- const a = document.createElement("div");
288
- a.classList.add("table__pagination"), a.classList.add("row"), a.classList.add("pt-3"), a.classList.add("pb-3"), a.innerHTML = `<div class="col mw-fit-content mb-3">
289
- <div class="form-control__wrapper form-control-inline mb-0">
290
- <label for="${e}_showing" class="form-label">Showing:</label>
291
- <input type="number" name="${e}_showing" id="${e}_showing" class="form-control form-control-sm showing-input-field" placeholder="" list="${e}_pagination" value="${t}" min="1" max="${h}" />
292
- </div>
293
- <datalist id="${e}_pagination">
294
- <option value="5">5</option>
295
- ${h > 10 ? '<option value="10">10</option>' : ""}
296
- ${h > 20 ? '<option value="20">20</option>' : ""}
297
- <option value="${h}">${h}</option>
298
- </datalist>
299
- </div>
300
- <div class="col mw-fit-content me-auto d-flex align-items-center mb-3"><span class="label">per page</span></div>
301
- <div class="col mw-fit-content d-sm-flex justify-content-end align-items-center" id="${e}_paginationBtns"></div>`, r.append(a);
302
- }, B = function(e, r, t, u, h) {
303
- const a = document.getElementById(e + "_paginationBtns");
304
- if (a == null)
305
- return !1;
306
- const n = Math.ceil(h / t);
307
- if (n == 1)
308
- a.innerHTML = "";
309
- else if (n < 5) {
310
- let i = "";
311
- for (let f = 1; f <= n; f++)
312
- f == u ? i += `<li class="page-item active" aria-current="page"><span class="page-link">${f}</span></li>` : i += `<li class="page-item"><button class="page-link" data-page="${f}">${f}</button></li>`;
313
- a.innerHTML = `<span class="pe-2 mb-3">Page: </span><ul class="pagination mb-3">
314
- ${u == 1 ? '<li class="page-item disabled"><span class="page-link">Previous</span></li>' : `<li class="page-item"><button class="page-link" data-page="${parseInt(u) - 1}">Previous</button></li>`}
315
- ${i}
316
- ${u == n ? '<li class="page-item disabled"><span class="page-link">Next</span></li>' : `<li class="page-item"><button class="page-link" data-page="${parseInt(u) + 1}">Next</button></li>`}
317
- </ul>`;
318
- } else {
319
- let i = "";
320
- for (let f = 1; f <= n; f++)
321
- f == u ? i += `<option value="${f}" selected>Page ${f}</option>` : i += `<option value="${f}">Page ${f}</option>`;
322
- a.innerHTML = `
323
- <div class="form-control__wrapper page-number mb-2">
324
- <select class="form-select">
325
- ${i}
326
- </select>
327
- </div>
328
- `;
340
+ f.hasAttribute("data-format") && (g = D(f.getAttribute("data-format"), g)), y.innerHTML = g, m.appendChild(y);
341
+ }), i.appendChild(m);
342
+ }), Q(t, a), X(t, a, e, s), s.setAttribute("data-total", l.meta.total ? l.meta.total : 1), s.setAttribute("data-page", l.meta.current_page ? l.meta.current_page : 1), s.setAttribute("data-pages", Math.ceil(s.getAttribute("data-total") / s.getAttribute("data-show"))), F(s, e), l.data.length == 0 && (i.innerHTML = '<tr><td colspan="100%"><span class="h4 m-0">No results found</span></td></tr>')) : i.innerHTML = '<tr><td colspan="100%"><span class="h6 m-0">Error loading table</span></td></tr>';
343
+ });
344
+ }, D = (t, a) => {
345
+ switch (t) {
346
+ case "date":
347
+ a = new Date(a).toLocaleDateString("en-gb", { year: "2-digit", month: "long", day: "numeric" });
348
+ break;
349
+ case "capitalise":
350
+ a = ve(a);
351
+ break;
329
352
  }
353
+ return a;
330
354
  };
331
- let G = function(e) {
332
- return typeof e != "string" ? e : (e = e.replace("£", ""), e = e.replace("%", ""), Number.isNaN(Number.parseFloat(e)) ? 0 : Number.parseFloat(e));
333
- };
334
- const ye = {
355
+ class $e extends HTMLElement {
356
+ constructor() {
357
+ super(), this.attachShadow({ mode: "open" });
358
+ const a = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", e = this.classList.contains("table--cta"), s = this.classList.contains("table--export");
359
+ let r = this.classList.toString();
360
+ r = r.replace("table--cta", "");
361
+ const n = document.createElement("template");
362
+ n.innerHTML = `
363
+ <style>
364
+ @import "${a}/css/core.min.css";
365
+ </style>
366
+ ${e ? '<div class="table--cta">' : ""}
367
+ <div class="table__wrapper ${r}">
368
+ <slot></slot>
369
+ </div>
370
+ ${e ? "</div>" : ""}
371
+ ${s ? '<button class="link" type="button" data-export>Export table as CSV</button>' : ""}
372
+ <div class="table__pagination"></div>
373
+ `, this.shadowRoot.appendChild(n.content.cloneNode(!0));
374
+ const i = new URLSearchParams(window.location.search);
375
+ this.hasAttribute("data-total") || this.setAttribute("data-total", this.querySelectorAll("table tbody tr").length), this.hasAttribute("data-page") || this.setAttribute("data-page", i.has("page") ? i.get("page") : 1), this.hasAttribute("data-show") || this.setAttribute("data-show", 15), this.setAttribute("data-pages", Math.ceil(this.getAttribute("data-total") / this.getAttribute("data-show")));
376
+ }
377
+ connectedCallback() {
378
+ this.table = this.querySelector("table"), this.savedTableBody = this.querySelector("tbody").cloneNode(!0), this.pagination = this.shadowRoot.querySelector(".table__pagination"), this.form = document.createElement("form"), this.hasAttribute("data-filterby") && (this.form = document.querySelector(`#${this.getAttribute("data-filterby")}`), 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" />`)), Se(this.table), Le(this.table, this.form, this.pagination, this, this.savedTableBody), ke(this.table, this.form, this.pagination, this), xe(this.shadowRoot.querySelector("[data-export]"), this.table), this.form.getAttribute("data-ajax") ? J(this.table, this.form, this.pagination, this) : (X(this.table, this.form, this.pagination, this), Y(this.table, this.form, this), F(this, this.pagination));
379
+ }
380
+ static get observedAttributes() {
381
+ return ["data-total", "data-pages", "data-page", "data-show"];
382
+ }
383
+ attributeChangedCallback(a, e, s) {
384
+ }
385
+ }
386
+ const Te = (t) => t.charAt(0).toUpperCase() + t.slice(1), He = (t) => t.replace(/_/g, " "), Ce = (t) => t.replace(/ /g, "_"), Me = function(t) {
387
+ return t = t.toLowerCase(), t = Ce(t), t = t.replace(/\W/g, ""), t;
388
+ }, Ee = {
335
389
  name: "Table",
336
390
  props: {
337
- reorder: {
338
- type: Boolean,
339
- required: !1
340
- },
341
- page: {
342
- type: Number,
343
- required: !1
344
- },
345
- show: {
346
- type: Number,
347
- required: !1
348
- },
349
- sortby: {
350
- type: String,
351
- required: !1
352
- },
353
- sort: {
354
- type: String,
355
- required: !1
356
- },
357
- headingclass: {
358
- type: String,
359
- required: !1
360
- },
361
391
  items: {
362
392
  type: Array,
363
- required: !0
393
+ required: !1
364
394
  },
365
395
  fields: {
366
396
  type: Array,
367
- required: !0
397
+ required: !1
368
398
  }
369
399
  },
370
400
  computed: {
371
401
  cellHeading() {
372
- return (e) => `${W(K(e))}`;
373
- },
374
- numericValue() {
375
- return (e) => (e = G(e), e);
402
+ return (t) => `${Te(He(t))}`;
376
403
  }
377
404
  },
378
- mounted() {
405
+ created() {
379
406
  this.$nextTick(function() {
380
- Z(this.$refs.wrapper), this.$el.addEventListener("sorted", function(e) {
381
- console.log("Table sorted");
382
- }, !1), this.$el.addEventListener("filtered", function(e) {
383
- console.log("Table filtered");
384
- }, !1);
407
+ window.customElements.get("iam-table") || window.customElements.define("iam-table", $e);
385
408
  });
386
409
  },
387
410
  updated() {
388
- this.$nextTick(function() {
389
- let e = this.$refs.wrapper.querySelector("tbody"), r = "";
390
- this.items.forEach((u, h) => {
391
- let a = u.rowid ? u.rowid : "";
392
- u = Object.fromEntries(Object.entries(u).filter(([n]) => n !== "rowid")), r += `<tr data-row-id="${a}">${Object.keys(u).map((n) => `<td data-label="${W(K(n))}" data-numeric="${G(u[n])}">${u[n]}</td>`).join("")}</tr>`;
393
- }), e.innerHTML = r;
394
- const t = new Event("filtered");
395
- this.$refs.wrapper.dispatchEvent(t);
396
- });
397
411
  }
398
- }, pe = ["data-sortby", "data-sort", "data-show", "data-page", "data-reorder"], be = { key: 0 }, ve = ["data-sortable", "data-filterable"], ge = { key: 1 }, we = ["data-row-id"], ke = ["innerHTML", "data-label", "data-numeric"];
399
- function Ae(e, r, t, u, h, a) {
400
- return l(), o("div", {
401
- class: "table__wrapper",
402
- ref: "wrapper",
403
- "data-sortby": t.sortby,
404
- "data-sort": t.sort,
405
- "data-show": t.show,
406
- "data-page": t.page,
407
- "data-reorder": t.reorder
408
- }, [
409
- s("table", null, [
410
- t.fields ? (l(), o("thead", be, [
411
- s("tr", {
412
- class: b(t.headingclass)
413
- }, [
414
- (l(!0), o($, null, x(t.fields, (n) => (l(), o("th", {
415
- key: n.key,
416
- "data-sortable": n.sortable,
417
- "data-filterable": n.filterable
418
- }, k(a.cellHeading(n.key)), 9, ve))), 128))
419
- ], 2)
420
- ])) : p("", !0),
421
- t.items ? (l(), o("tbody", ge, [
422
- (l(!0), o($, null, x(t.items, (n, i) => (l(), o("tr", {
423
- key: i,
424
- "data-row-id": n.rowid
412
+ }, Ne = { key: 0 }, De = { key: 0 }, Re = ["data-row-id"], Pe = ["innerHTML"];
413
+ function Ie(t, a, e, s, r, n) {
414
+ return c(), d("iam-table", null, [
415
+ e.fields ? (c(), d("table", Ne, [
416
+ o("thead", null, [
417
+ o("tr", null, [
418
+ (c(!0), d($, null, T(e.fields, (i) => (c(), d("th", {
419
+ key: i.key
420
+ }, L(n.cellHeading(i.key)), 1))), 128))
421
+ ])
422
+ ]),
423
+ e.items ? (c(), d("tbody", De, [
424
+ (c(!0), d($, null, T(e.items, (i, l) => (c(), d("tr", {
425
+ key: l,
426
+ "data-row-id": i.rowid
425
427
  }, [
426
- (l(!0), o($, null, x(Object.fromEntries(Object.entries(n).filter(([f]) => f !== "rowid")), (f, A) => (l(), o("td", {
427
- key: A,
428
- innerHTML: f,
429
- "data-label": a.cellHeading(A),
430
- "data-numeric": a.numericValue(f)
431
- }, null, 8, ke))), 128))
432
- ], 8, we))), 128))
433
- ])) : p("", !0)
434
- ]),
435
- v(e.$slots, "default")
436
- ], 8, pe);
428
+ (c(!0), d($, null, T(Object.fromEntries(Object.entries(i).filter(([h]) => h !== "rowid")), (h, u) => (c(), d("td", {
429
+ key: u,
430
+ innerHTML: h
431
+ }, null, 8, Pe))), 128))
432
+ ], 8, Re))), 128))
433
+ ])) : _("", !0)
434
+ ])) : p(t.$slots, "default", { key: 1 })
435
+ ]);
437
436
  }
438
- const R = /* @__PURE__ */ g(ye, [["render", Ae]]), Se = {
437
+ const ee = /* @__PURE__ */ A(Ee, [["render", Ie]]), Fe = {
439
438
  name: "Input",
440
439
  props: {
441
440
  value: {
@@ -597,176 +596,176 @@ const R = /* @__PURE__ */ g(ye, [["render", Ae]]), Se = {
597
596
  get() {
598
597
  return this.value == null && this.options != null && this.type == "select" ? this.$attrs.multiple ? [] : this.options[0].value : this.value;
599
598
  },
600
- set(e) {
601
- this.$emit("input", e);
599
+ set(t) {
600
+ this.$emit("input", t);
602
601
  }
603
602
  }
604
603
  },
605
604
  mounted() {
606
605
  this.$nextTick(function() {
607
- let e = this.$refs.wrapper;
608
- if (e.parentNode && e.parentNode.classList.contains("form-check") || e.classList.length == 0) {
609
- const r = document.createDocumentFragment();
610
- Array.from(e.childNodes).forEach((t) => r.appendChild(t)), e.parentNode.insertBefore(r, e), e.parentNode.removeChild(e);
606
+ let t = this.$refs.wrapper;
607
+ if (t.parentNode && t.parentNode.classList.contains("form-check") || t.classList.length == 0) {
608
+ const a = document.createDocumentFragment();
609
+ Array.from(t.childNodes).forEach((e) => a.appendChild(e)), t.parentNode.insertBefore(a, t), t.parentNode.removeChild(t);
611
610
  }
612
611
  });
613
612
  },
614
613
  methods: {
615
- inputKeyup(e) {
616
- this.$emit("keyupEvent", e);
614
+ inputKeyup(t) {
615
+ this.$emit("keyupEvent", t);
617
616
  },
618
617
  clickEvent() {
619
618
  this.$emit("bus");
620
619
  }
621
620
  }
622
- }, $e = ["for", "innerHTML", "title"], xe = ["innerHTML"], qe = ["innerHTML"], Le = ["type", "name", "id", "pattern", "list"], Te = ["type", "name", "id", "pattern"], Me = {
621
+ }, Be = ["for", "innerHTML", "title"], Ve = ["innerHTML"], ze = ["innerHTML"], We = ["type", "name", "id", "pattern", "list"], Oe = ["type", "name", "id", "pattern"], je = {
623
622
  key: 5,
624
623
  class: "input-group"
625
- }, He = ["type", "name", "id", "pattern", "list"], Ce = { class: "input-group-text border-0 col-2 col-sm-1 px-0" }, Ne = {
624
+ }, Ue = ["type", "name", "id", "pattern", "list"], Ke = { class: "input-group-text border-0 col-2 col-sm-1 px-0" }, Ge = {
626
625
  key: 6,
627
626
  class: "input-group"
628
- }, Be = ["type", "name", "id", "pattern", "list"], Pe = { class: "input-group-text flex-fill" }, De = ["type", "name", "id", "pattern"], Ie = ["value"], ze = ["id"], Ve = ["value"], Oe = ["type", "name", "id"], Fe = ["for", "innerHTML"], je = ["type", "name", "id"], We = ["for", "innerHTML"], Ke = ["innerHTML"];
629
- function Ue(e, r, t, u, h, a) {
630
- return l(), o("div", {
631
- class: b(a.wrapperClass()),
627
+ }, Qe = ["type", "name", "id", "pattern", "list"], Ye = { class: "input-group-text flex-fill" }, Ze = ["type", "name", "id", "pattern"], Xe = ["value"], Je = ["id"], et = ["value"], tt = ["type", "name", "id"], at = ["for", "innerHTML"], st = ["type", "name", "id"], it = ["for", "innerHTML"], lt = ["innerHTML"];
628
+ function nt(t, a, e, s, r, n) {
629
+ return c(), d("div", {
630
+ class: v(n.wrapperClass()),
632
631
  ref: "wrapper"
633
632
  }, [
634
- a.needsLabel() ? (l(), o("label", {
633
+ n.needsLabel() ? (c(), d("label", {
635
634
  key: 0,
636
- class: b(`form-label${t.labelclass ? ` ${t.labelclass}` : ""}`),
637
- for: t.id,
638
- innerHTML: a.displayLabel(),
639
- title: t.title
640
- }, null, 10, $e)) : p("", !0),
641
- t.prefix ? (l(), o("span", {
635
+ class: v(`form-label${e.labelclass ? ` ${e.labelclass}` : ""}`),
636
+ for: e.id,
637
+ innerHTML: n.displayLabel(),
638
+ title: e.title
639
+ }, null, 10, Be)) : _("", !0),
640
+ e.prefix ? (c(), d("span", {
642
641
  key: 1,
643
- class: b(`prefix ${this.prefixClass} ${t.size ? `prefix-${t.size}` : ""}`),
644
- innerHTML: t.prefix,
642
+ class: v(`prefix ${this.prefixClass} ${e.size ? `prefix-${e.size}` : ""}`),
643
+ innerHTML: e.prefix,
645
644
  role: "presentation"
646
- }, null, 10, xe)) : p("", !0),
647
- t.suffix ? (l(), o("span", {
645
+ }, null, 10, Ve)) : _("", !0),
646
+ e.suffix ? (c(), d("span", {
648
647
  key: 2,
649
- class: b(`suffix ${this.suffixClass} ${t.size ? `suffix-${t.size}` : ""}`),
650
- innerHTML: t.suffix,
648
+ class: v(`suffix ${this.suffixClass} ${e.size ? `suffix-${e.size}` : ""}`),
649
+ innerHTML: e.suffix,
651
650
  role: "presentation"
652
- }, null, 10, qe)) : p("", !0),
653
- a.isInput() ? N((l(), o("input", T({
651
+ }, null, 10, ze)) : _("", !0),
652
+ n.isInput() ? N((c(), d("input", H({
654
653
  key: 3,
655
- "onUpdate:modelValue": r[0] || (r[0] = (n) => a.inputVal = n),
656
- class: `form-control${t.size ? ` form-control-${t.size}` : ""}${t.inputclass ? ` ${t.inputclass}` : ""}`,
657
- type: t.type,
658
- name: t.name ? t.name : t.id,
659
- id: t.id,
660
- pattern: a.needPattern(),
661
- list: a.hasOptions()
662
- }, e.$attrs, {
663
- onKeyup: r[1] || (r[1] = (...n) => a.inputKeyup && a.inputKeyup(...n))
664
- }), null, 16, Le)), [
665
- [O, a.inputVal]
666
- ]) : p("", !0),
667
- t.type == "textarea" ? N((l(), o("textarea", T({
654
+ "onUpdate:modelValue": a[0] || (a[0] = (i) => n.inputVal = i),
655
+ class: `form-control${e.size ? ` form-control-${e.size}` : ""}${e.inputclass ? ` ${e.inputclass}` : ""}`,
656
+ type: e.type,
657
+ name: e.name ? e.name : e.id,
658
+ id: e.id,
659
+ pattern: n.needPattern(),
660
+ list: n.hasOptions()
661
+ }, t.$attrs, {
662
+ onKeyup: a[1] || (a[1] = (...i) => n.inputKeyup && n.inputKeyup(...i))
663
+ }), null, 16, We)), [
664
+ [P, n.inputVal]
665
+ ]) : _("", !0),
666
+ e.type == "textarea" ? N((c(), d("textarea", H({
668
667
  key: 4,
669
- "onUpdate:modelValue": r[2] || (r[2] = (n) => a.inputVal = n),
670
- class: `form-control${t.size ? ` form-control-${t.size}` : ""}${t.inputclass ? ` ${t.inputclass}` : ""}`,
671
- type: t.type,
672
- name: t.name ? t.name : t.id,
673
- id: t.id,
674
- pattern: a.needPattern()
675
- }, e.$attrs), null, 16, Te)), [
676
- [J, a.inputVal]
677
- ]) : p("", !0),
678
- t.type == "range" ? (l(), o("div", Me, [
679
- N(s("input", T({
680
- "onUpdate:modelValue": r[3] || (r[3] = (n) => a.inputVal = n),
681
- class: `form-range${t.inputclass ? ` ${t.inputclass}` : ""}`,
682
- type: t.type,
683
- name: t.name ? t.name : t.id,
684
- id: t.id,
685
- pattern: a.needPattern(),
686
- list: a.hasOptions()
687
- }, e.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, He), [
688
- [O, a.inputVal]
668
+ "onUpdate:modelValue": a[2] || (a[2] = (i) => n.inputVal = i),
669
+ class: `form-control${e.size ? ` form-control-${e.size}` : ""}${e.inputclass ? ` ${e.inputclass}` : ""}`,
670
+ type: e.type,
671
+ name: e.name ? e.name : e.id,
672
+ id: e.id,
673
+ pattern: n.needPattern()
674
+ }, t.$attrs), null, 16, Oe)), [
675
+ [se, n.inputVal]
676
+ ]) : _("", !0),
677
+ e.type == "range" ? (c(), d("div", je, [
678
+ N(o("input", H({
679
+ "onUpdate:modelValue": a[3] || (a[3] = (i) => n.inputVal = i),
680
+ class: `form-range${e.inputclass ? ` ${e.inputclass}` : ""}`,
681
+ type: e.type,
682
+ name: e.name ? e.name : e.id,
683
+ id: e.id,
684
+ pattern: n.needPattern(),
685
+ list: n.hasOptions()
686
+ }, t.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, Ue), [
687
+ [P, n.inputVal]
689
688
  ]),
690
- s("output", Ce, k(t.value), 1)
691
- ])) : p("", !0),
692
- t.type == "color" ? (l(), o("div", Ne, [
693
- N(s("input", T({
694
- "onUpdate:modelValue": r[4] || (r[4] = (n) => a.inputVal = n),
695
- class: `form-control form-control-color${t.inputclass ? ` ${t.inputclass}` : ""}`,
696
- type: t.type,
697
- name: t.name ? t.name : t.id,
698
- id: t.id,
699
- pattern: a.needPattern(),
700
- list: a.hasOptions()
701
- }, e.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, Be), [
702
- [O, a.inputVal]
689
+ o("output", Ke, L(e.value), 1)
690
+ ])) : _("", !0),
691
+ e.type == "color" ? (c(), d("div", Ge, [
692
+ N(o("input", H({
693
+ "onUpdate:modelValue": a[4] || (a[4] = (i) => n.inputVal = i),
694
+ class: `form-control form-control-color${e.inputclass ? ` ${e.inputclass}` : ""}`,
695
+ type: e.type,
696
+ name: e.name ? e.name : e.id,
697
+ id: e.id,
698
+ pattern: n.needPattern(),
699
+ list: n.hasOptions()
700
+ }, t.$attrs, { oninput: "this.nextElementSibling.value=this.value;" }), null, 16, Qe), [
701
+ [P, n.inputVal]
703
702
  ]),
704
- s("output", Pe, k(t.value ? e.vale : "#000000"), 1)
705
- ])) : p("", !0),
706
- t.type == "select" ? N((l(), o("select", T({
703
+ o("output", Ye, L(e.value ? t.vale : "#000000"), 1)
704
+ ])) : _("", !0),
705
+ e.type == "select" ? N((c(), d("select", H({
707
706
  key: 7,
708
- "onUpdate:modelValue": r[5] || (r[5] = (n) => a.inputVal = n),
709
- class: `form-select${t.size ? ` form-select-${t.size}` : ""}${t.inputclass ? ` ${t.inputclass}` : ""}`,
710
- type: t.type,
711
- name: t.id,
712
- id: t.id,
713
- pattern: a.needPattern()
714
- }, e.$attrs), [
715
- (l(!0), o($, null, x(t.options, (n, i) => (l(), o("option", {
716
- key: i,
717
- value: n.value
718
- }, k(n.display ? n.display : n.value), 9, Ie))), 128))
719
- ], 16, De)), [
720
- [X, a.inputVal]
721
- ]) : p("", !0),
722
- a.allowDatalist() ? (l(), o("datalist", {
707
+ "onUpdate:modelValue": a[5] || (a[5] = (i) => n.inputVal = i),
708
+ class: `form-select${e.size ? ` form-select-${e.size}` : ""}${e.inputclass ? ` ${e.inputclass}` : ""}`,
709
+ type: e.type,
710
+ name: e.id,
711
+ id: e.id,
712
+ pattern: n.needPattern()
713
+ }, t.$attrs), [
714
+ (c(!0), d($, null, T(e.options, (i, l) => (c(), d("option", {
715
+ key: l,
716
+ value: i.value
717
+ }, L(i.display ? i.display : i.value), 9, Xe))), 128))
718
+ ], 16, Ze)), [
719
+ [ie, n.inputVal]
720
+ ]) : _("", !0),
721
+ n.allowDatalist() ? (c(), d("datalist", {
723
722
  key: 8,
724
- id: t.id + "-list"
723
+ id: e.id + "-list"
725
724
  }, [
726
- (l(!0), o($, null, x(t.options, (n, i) => (l(), o("option", {
727
- key: i,
728
- value: n.value
729
- }, k(n.value), 9, Ve))), 128))
730
- ], 8, ze)) : p("", !0),
731
- t.type == "checkbox" || t.type == "radio" ? (l(), o("input", T({
725
+ (c(!0), d($, null, T(e.options, (i, l) => (c(), d("option", {
726
+ key: l,
727
+ value: i.value
728
+ }, L(i.value), 9, et))), 128))
729
+ ], 8, Je)) : _("", !0),
730
+ e.type == "checkbox" || e.type == "radio" ? (c(), d("input", H({
732
731
  key: 9,
733
732
  class: "form-check-input",
734
- type: t.type,
735
- name: t.name ? t.name : t.id,
736
- id: t.id
737
- }, e.$attrs), null, 16, Oe)) : p("", !0),
738
- t.type == "checkbox" || t.type == "radio" ? (l(), o("label", {
733
+ type: e.type,
734
+ name: e.name ? e.name : e.id,
735
+ id: e.id
736
+ }, t.$attrs), null, 16, tt)) : _("", !0),
737
+ e.type == "checkbox" || e.type == "radio" ? (c(), d("label", {
739
738
  key: 10,
740
- class: b(`form-label form-check-label${t.labelclass ? ` ${t.labelclass}` : ""}`),
741
- for: t.id,
742
- innerHTML: t.label
743
- }, null, 10, Fe)) : p("", !0),
744
- t.type == "checkbox-btn" || t.type == "radio-btn" ? (l(), o("input", T({
739
+ class: v(`form-label form-check-label${e.labelclass ? ` ${e.labelclass}` : ""}`),
740
+ for: e.id,
741
+ innerHTML: e.label
742
+ }, null, 10, at)) : _("", !0),
743
+ e.type == "checkbox-btn" || e.type == "radio-btn" ? (c(), d("input", H({
745
744
  key: 11,
746
- class: `btn-check${t.inputclass ? ` ${t.inputclass}` : ""}`,
747
- type: t.type.replace("-btn", ""),
745
+ class: `btn-check${e.inputclass ? ` ${e.inputclass}` : ""}`,
746
+ type: e.type.replace("-btn", ""),
748
747
  autocomplete: "off",
749
- name: t.name ? t.name : t.id,
750
- id: t.id
751
- }, e.$attrs), null, 16, je)) : p("", !0),
752
- t.type == "checkbox-btn" || t.type == "radio-btn" ? (l(), o("label", {
748
+ name: e.name ? e.name : e.id,
749
+ id: e.id
750
+ }, t.$attrs), null, 16, st)) : _("", !0),
751
+ e.type == "checkbox-btn" || e.type == "radio-btn" ? (c(), d("label", {
753
752
  key: 12,
754
- class: b(`btn${t.labelclass ? ` ${t.labelclass}` : ""}`),
755
- for: t.id,
756
- innerHTML: t.label,
757
- onClick: r[6] || (r[6] = (...n) => a.clickEvent && a.clickEvent(...n))
758
- }, null, 10, We)) : p("", !0),
759
- t.errormsg ? (l(), o("p", {
753
+ class: v(`btn${e.labelclass ? ` ${e.labelclass}` : ""}`),
754
+ for: e.id,
755
+ innerHTML: e.label,
756
+ onClick: a[6] || (a[6] = (...i) => n.clickEvent && n.clickEvent(...i))
757
+ }, null, 10, it)) : _("", !0),
758
+ e.errormsg ? (c(), d("p", {
760
759
  key: 13,
761
760
  class: "invalid-feedback mb-0",
762
- innerHTML: t.errormsg
763
- }, null, 8, Ke)) : p("", !0),
764
- v(e.$slots, "default")
761
+ innerHTML: e.errormsg
762
+ }, null, 8, lt)) : _("", !0),
763
+ p(t.$slots, "default")
765
764
  ], 2);
766
765
  }
767
- const D = /* @__PURE__ */ g(Se, [["render", Ue]]), Ge = {
766
+ const R = /* @__PURE__ */ A(Fe, [["render", nt]]), rt = {
768
767
  components: {
769
- Input: D
768
+ Input: R
770
769
  },
771
770
  name: "FileUploads",
772
771
  props: {
@@ -787,83 +786,100 @@ const D = /* @__PURE__ */ g(Se, [["render", Ue]]), Ge = {
787
786
  required: !1
788
787
  }
789
788
  }
790
- }, Ze = { class: "multiple-file-uploads mb-4" }, Re = { class: "row" }, Qe = { class: "col-12 col-md me-auto" }, Ye = /* @__PURE__ */ s("div", { class: "col mw-fit-content" }, [
791
- /* @__PURE__ */ s("button", {
789
+ }, ot = { class: "multiple-file-uploads mb-4" }, ct = { class: "row" }, dt = { class: "col-12 col-md me-auto" }, ut = /* @__PURE__ */ o("div", { class: "col mw-fit-content" }, [
790
+ /* @__PURE__ */ o("button", {
792
791
  type: "button",
793
792
  class: "btn btn-tertiary me-0",
794
793
  "data-delete": ""
795
794
  }, "Delete")
796
- ], -1), Ee = ["data-maxfiles"];
797
- function Je(e, r, t, u, h, a) {
798
- const n = H("Input");
799
- return l(), o("div", Ze, [
800
- s("div", Re, [
801
- s("div", {
802
- class: b(`${t.inputcolclass ? t.inputcolclass : "col-12 col-sm-4"}`)
795
+ ], -1), ht = ["data-maxfiles"];
796
+ function mt(t, a, e, s, r, n) {
797
+ const i = E("Input");
798
+ return c(), d("div", ot, [
799
+ o("div", ct, [
800
+ o("div", {
801
+ class: v(`${e.inputcolclass ? e.inputcolclass : "col-12 col-sm-4"}`)
803
802
  }, [
804
- S(n, {
803
+ S(i, {
805
804
  type: "file",
806
- id: t.id,
807
- name: `${t.id}[]`,
805
+ id: e.id,
806
+ name: `${e.id}[]`,
808
807
  label: "Add new file",
809
808
  labelclass: "d-none",
810
809
  class: "form-control-inline col",
811
810
  required: "",
812
- "data-filesize": t.maxfilesize
811
+ "data-filesize": e.maxfilesize
813
812
  }, null, 8, ["id", "name", "data-filesize"])
814
813
  ], 2),
815
- s("div", Qe, [
816
- v(e.$slots, "default")
814
+ o("div", dt, [
815
+ p(t.$slots, "default")
817
816
  ]),
818
- Ye
817
+ ut
819
818
  ]),
820
- s("button", {
819
+ o("button", {
821
820
  type: "button",
822
821
  class: "btn btn-secondary me-0",
823
822
  "data-add": "",
824
- "data-maxfiles": t.maxfiles
825
- }, "+ Add file", 8, Ee)
823
+ "data-maxfiles": e.maxfiles
824
+ }, "+ Add file", 8, ht)
826
825
  ]);
827
826
  }
828
- const ui = /* @__PURE__ */ g(Ge, [["render", Je]]);
829
- function Xe(e) {
830
- if (!e.classList.contains("accordion--keep-open")) {
831
- const r = e.querySelectorAll(":scope > details");
832
- r.forEach((t) => {
833
- t.addEventListener("click", () => {
834
- r.forEach((u) => {
835
- u !== t && u.removeAttribute("open");
827
+ const oi = /* @__PURE__ */ A(rt, [["render", mt]]);
828
+ function ft(t) {
829
+ let a = t.querySelectorAll("details"), e = t.querySelectorAll("summary");
830
+ if (a.forEach((s) => {
831
+ s.classList.add("accordion-item");
832
+ }), e.forEach((s) => {
833
+ s.classList.add("accordion-header"), s.classList.add("accordion-button"), s.classList.add("h4");
834
+ }), !t.classList.contains("accordion--keep-open")) {
835
+ const s = t.querySelectorAll(":scope > details");
836
+ s.forEach((r) => {
837
+ r.addEventListener("click", () => {
838
+ s.forEach((n) => {
839
+ n !== r && n.removeAttribute("open");
836
840
  });
837
841
  });
838
842
  });
839
843
  }
840
- if (window.location.hash && document.querySelector(window.location.hash + ":not([open]) summary")) {
841
- const r = document.querySelector(window.location.hash + " summary");
842
- r instanceof HTMLElement && r.click();
844
+ }
845
+ window.dataLayer = window.dataLayer || [];
846
+ window.dataLayer.push({
847
+ event: "customElementRegistered",
848
+ element: "accordion"
849
+ });
850
+ const I = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets";
851
+ class yt extends HTMLElement {
852
+ constructor() {
853
+ super(), this.attachShadow({ mode: "open" });
854
+ const a = document.createElement("template");
855
+ a.innerHTML = `
856
+ <style>
857
+ @import "${I}/css/core.min.css";
858
+ @import "${I}/css/components/accordion.css";
859
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
860
+ </style>
861
+ <div class="accordion">
862
+ <slot></slot>
863
+ </div>
864
+ `, this.shadowRoot.appendChild(a.content.cloneNode(!0));
865
+ }
866
+ connectedCallback() {
867
+ ft(this), this.insertAdjacentHTML("beforebegin", `<link rel="stylesheet" href="${I}/css/components/accordion.css">`);
843
868
  }
844
- window.addEventListener("hashchange", function() {
845
- if (window.location.hash && document.querySelector(window.location.hash + " summary")) {
846
- const r = document.querySelector(window.location.hash + " summary");
847
- r instanceof HTMLElement && r.click();
848
- }
849
- });
850
869
  }
851
- const et = {
870
+ window.customElements.get("iam-accordion") || window.customElements.define("iam-accordion", yt);
871
+ const bt = {
852
872
  name: "Accordion",
853
873
  props: {},
854
874
  mounted() {
855
- Xe(this.$refs.wrapper);
856
875
  }
857
- }, tt = {
858
- class: "container accordion",
859
- ref: "wrapper"
860
- };
861
- function st(e, r, t, u, h, a) {
862
- return l(), o("div", tt, [
863
- v(e.$slots, "default")
876
+ }, _t = { ref: "wrapper" };
877
+ function pt(t, a, e, s, r, n) {
878
+ return c(), d("iam-accordion", _t, [
879
+ p(t.$slots, "default")
864
880
  ], 512);
865
881
  }
866
- const fi = /* @__PURE__ */ g(et, [["render", st]]), at = {
882
+ const ci = /* @__PURE__ */ A(bt, [["render", pt]]), gt = {
867
883
  name: "AccordionItem",
868
884
  props: {
869
885
  title: {
@@ -890,7 +906,7 @@ const fi = /* @__PURE__ */ g(et, [["render", st]]), at = {
890
906
  },
891
907
  computed: {
892
908
  createID() {
893
- return (e) => `${he(e)}`;
909
+ return (t) => `${Me(t)}`;
894
910
  }
895
911
  },
896
912
  data() {
@@ -898,33 +914,24 @@ const fi = /* @__PURE__ */ g(et, [["render", st]]), at = {
898
914
  show: !this.lazy
899
915
  };
900
916
  }
901
- }, it = ["id"], nt = { class: "accordion-header accordion-button h4" }, rt = {
902
- key: 0,
903
- class: "accordion-body"
904
- };
905
- function lt(e, r, t, u, h, a) {
906
- return l(), o("details", {
907
- class: "accordion-item",
908
- id: a.createID(t.title)
917
+ }, vt = ["id"], At = ["classList"];
918
+ function wt(t, a, e, s, r, n) {
919
+ return c(), d("details", {
920
+ id: n.createID(e.title)
909
921
  }, [
910
- s("summary", {
911
- class: b(`${t.titlecolour ? `bg-${t.titlecolour}` : ""}`),
912
- onClick: r[0] || (r[0] = (n) => h.show = !0)
922
+ o("summary", {
923
+ classList: `${e.titlecolour ? `bg-${e.titlecolour}` : ""}`
913
924
  }, [
914
- s("span", nt, [
915
- F(k(t.title), 1),
916
- t.badge ? (l(), o("span", {
917
- key: 0,
918
- class: b(`badge bg-${t.badgecolour}`)
919
- }, k(t.badge), 3)) : p("", !0)
920
- ])
921
- ], 2),
922
- h.show ? (l(), o("div", rt, [
923
- v(e.$slots, "default")
924
- ])) : p("", !0)
925
- ], 8, it);
925
+ le(L(e.title), 1),
926
+ e.badge ? (c(), d("span", {
927
+ key: 0,
928
+ class: v(`badge bg-${e.badgecolour}`)
929
+ }, L(e.badge), 3)) : _("", !0)
930
+ ], 8, At),
931
+ p(t.$slots, "default")
932
+ ], 8, vt);
926
933
  }
927
- const hi = /* @__PURE__ */ g(at, [["render", lt]]), ot = {
934
+ const di = /* @__PURE__ */ A(gt, [["render", wt]]), St = {
928
935
  name: "Header",
929
936
  props: {
930
937
  title: {
@@ -941,181 +948,150 @@ const hi = /* @__PURE__ */ g(at, [["render", lt]]), ot = {
941
948
  required: !1
942
949
  }
943
950
  }
944
- }, ct = { class: "container" }, dt = { class: "row" }, ut = { class: "col-sm-6" }, ft = { class: "pt-5 pb-3 px-4" }, ht = { class: "col-sm-6 col-md-5 ms-auto" }, mt = ["src"];
945
- function _t(e, r, t, u, h, a) {
946
- return l(), o("div", ct, [
947
- s("div", {
948
- class: b("bg-" + t.background + " mb-4")
951
+ }, Lt = { class: "container" }, kt = { class: "row" }, xt = { class: "col-sm-6" }, qt = { class: "pt-5 pb-3 px-4" }, $t = { class: "col-sm-6 col-md-5 ms-auto" }, Tt = ["src"];
952
+ function Ht(t, a, e, s, r, n) {
953
+ return c(), d("div", Lt, [
954
+ o("div", {
955
+ class: v("bg-" + e.background + " mb-4")
949
956
  }, [
950
- s("div", dt, [
951
- s("div", ut, [
952
- s("div", ft, [
953
- s("h2", null, k(t.title), 1),
954
- v(e.$slots, "default")
957
+ o("div", kt, [
958
+ o("div", xt, [
959
+ o("div", qt, [
960
+ o("h2", null, L(e.title), 1),
961
+ p(t.$slots, "default")
955
962
  ])
956
963
  ]),
957
- s("div", ht, [
958
- t.image ? (l(), o("img", {
964
+ o("div", $t, [
965
+ e.image ? (c(), d("img", {
959
966
  key: 0,
960
- src: t.image,
967
+ src: e.image,
961
968
  alt: "",
962
969
  class: "h-100 w-100 object-cover"
963
- }, null, 8, mt)) : p("", !0)
970
+ }, null, 8, Tt)) : _("", !0)
964
971
  ])
965
972
  ])
966
973
  ], 2)
967
974
  ]);
968
975
  }
969
- const mi = /* @__PURE__ */ g(ot, [["render", _t]]);
970
- const yt = {
971
- name: "Card",
972
- props: {
973
- link: {
974
- type: String,
975
- required: !1
976
- },
977
- cardClass: {
978
- type: String,
979
- required: !1,
980
- default: ""
981
- },
982
- titleclass: {
983
- type: String,
984
- required: !1,
985
- default: "h4"
986
- },
987
- title: {
988
- type: String,
989
- required: !1
990
- },
991
- subtitle: {
992
- type: String,
993
- required: !1
994
- },
995
- content: {
996
- type: String,
997
- required: !1
998
- },
999
- type: {
1000
- type: String,
1001
- required: !1
1002
- },
1003
- btntype: {
1004
- type: String,
1005
- required: !1,
1006
- default: "secondary"
1007
- },
1008
- ctatext: {
1009
- type: String,
1010
- required: !1,
1011
- default: "Find out more"
1012
- },
1013
- hidectatext: {
1014
- type: Boolean,
1015
- required: !1,
1016
- default: !1
1017
- },
1018
- image: {
1019
- type: String,
1020
- required: !1
1021
- },
1022
- target: {
1023
- type: String,
1024
- required: !1
1025
- },
1026
- details: {
1027
- type: Object,
1028
- required: !1
1029
- }
1030
- },
1031
- computed: {
1032
- cardStatus() {
1033
- return () => this.details && this.details.status ? `${this.details.status == "Live now" ? '<span class="text-danger lh-0 fs-1 align-middle">&#8226;</span>&nbsp;&nbsp;' : ""}${this.details.status}` : "";
1034
- },
1035
- cardMedia() {
1036
- return () => `<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 30 28' class="icon text-white"><title>Images </title><path d='M15 10.5c2.484 0 4.5 2.016 4.5 4.5s-2.016 4.5-4.5 4.5-4.5-2.016-4.5-4.5 2.016-4.5 4.5-4.5zM26 4c2.203 0 4 1.797 4 4v14c0 2.203-1.797 4-4 4h-22c-2.203 0-4-1.797-4-4v-14c0-2.203 1.797-4 4-4h3.5l0.797-2.125c0.391-1.031 1.609-1.875 2.703-1.875h8c1.094 0 2.312 0.844 2.703 1.875l0.797 2.125h3.5zM15 22c3.859 0 7-3.141 7-7s-3.141-7-7-7-7 3.141-7 7 3.141 7 7 7z'></path></svg> ${this.details && this.details.images ? `${this.details.images}` : "0"}&nbsp;&nbsp;|&nbsp;&nbsp;<svg xmlns='http://www.w3.org/2000/svg' width='30' height='28' viewBox='0 0 28 28' class="icon text-white ms-0"><title>Videos </title><path d="M11.109 17.625l7.562-3.906-7.562-3.953v7.859zM14 4.156c5.891 0 9.797 0.281 9.797 0.281 0.547 0.063 1.75 0.063 2.812 1.188 0 0 0.859 0.844 1.109 2.781 0.297 2.266 0.281 4.531 0.281 4.531v2.125s0.016 2.266-0.281 4.531c-0.25 1.922-1.109 2.781-1.109 2.781-1.062 1.109-2.266 1.109-2.812 1.172 0 0-3.906 0.297-9.797 0.297v0c-7.281-0.063-9.516-0.281-9.516-0.281-0.625-0.109-2.031-0.078-3.094-1.188 0 0-0.859-0.859-1.109-2.781-0.297-2.266-0.281-4.531-0.281-4.531v-2.125s-0.016-2.266 0.281-4.531c0.25-1.937 1.109-2.781 1.109-2.781 1.062-1.125 2.266-1.125 2.812-1.188 0 0 3.906-0.281 9.797-0.281v0z"></path></svg> ${this.details && this.details.videos ? `${this.details.videos}` : "0"}`;
1037
- },
1038
- cardContent() {
1039
- return () => {
1040
- const e = function(h) {
1041
- switch (h) {
1042
- case "Modern method":
1043
- return "bg-secondary text-primary";
1044
- case "Freehold":
1045
- return "bg-light text-dark";
1046
- default:
1047
- return "bg-body text-white";
1048
- }
1049
- }, r = this.details && this.details.tags ? this.details.tags.map((h) => `<span class="badge rounded-pill py-2 px-3 mb-3 me-2 ${e(h)}">${h}</span>`).join("") : "", t = this.title ? `<span class="card-title d-block ${this.titleclass}">${this.title}${this.subtitle ? ` <span class="d-block fw-normal font-body text-body small">${this.subtitle}</span>` : ""}</span>` : "", u = `
1050
- ${this.details && this.details.guideprice ? `<span class="d-block h6 text-dark mb-1">Price guide: ${this.details.guideprice}</span>` : ""}
1051
- ${this.details && this.details.auctiontime ? `<span class="d-block h6 text-primary mb-4">Auction time left: ${this.details.auctiontime}</span>` : ""}
1052
- ${this.details && this.details.readtime ? `<span class="d-block h6 text-primary mb-4"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="22" height="23" viewBox="0 0 22 23" class="icon ms-0 me-2"><path d="M11 1.63c-5.176 0-9.37 4.194-9.37 9.37 0 5.176 4.194 9.37 9.37 9.37 5.176 0 9.37-4.194 9.37-9.37 0-5.176-4.194-9.37-9.37-9.37M11 0c6.075 0 11 4.925 11 11s-4.925 11-11 11S0 17.075 0 11 4.925 0 11 0" fill="var(--colour-secondary)" /><path d="M9.62 5.39c0-.473.368-.856.82-.856.454 0 .822.383.822.855v6.27l3.25 1.898c.395.23.536.75.314 1.16-.22.412-.72.558-1.115.328l-4.09-2.39V5.39z" fill="var(--colour-primary)"/></svg>${this.details.readtime}</span>` : ""}
1053
- `;
1054
- return `${r}${t}${u}${this.content}`;
1055
- };
976
+ const ui = /* @__PURE__ */ A(St, [["render", Ht]]);
977
+ class Ct extends HTMLElement {
978
+ constructor() {
979
+ super(), this.attachShadow({ mode: "open" });
980
+ const a = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", e = `@import "${a}/css/components/card.css";`;
981
+ this.querySelector(".icon") && this.classList.add("card--has-icon");
982
+ let s = this.classList.toString();
983
+ const r = document.createElement("template");
984
+ r.innerHTML = `
985
+ <style>
986
+ @import "${a}/css/core.min.css";
987
+ ${e}
988
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
989
+ </style>
990
+ <div class="card ${s}" tabindex="0" role="button">
991
+ ${this.hasAttribute("data-image") ? `<div class="card__head"><img src="${this.getAttribute("data-image")}" alt="" loading="lazy" /></div>` : ""}
992
+ <div class="card__body">
993
+ ${this.classList.contains("card--filter") && this.hasAttribute("data-total") ? `<div class="card__total">${this.getAttribute("data-total")}</div>` : ""}
994
+ ${this.hasAttribute("data-illustration") ? `<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>` : ""}
995
+ <slot></slot>
996
+ </div>
997
+ ${this.hasAttribute("data-cta") ? `<div class="card__footer"><span class="link">${this.getAttribute("data-cta")}</span></div>` : ""}
998
+ </div>
999
+ `, this.shadowRoot.appendChild(r.content.cloneNode(!0));
1000
+ }
1001
+ connectedCallback() {
1002
+ const a = this.parentNode.closest("a, button, label"), e = this.shadowRoot.querySelector(".card");
1003
+ a.setAttribute("tabindex", "-1"), a.matches("label[for]") && document.getElementById(a.getAttribute("for")).checked && e.classList.add("active"), e.addEventListener("click", (s) => {
1004
+ a.matches("label[for]") ? document.getElementById(a.getAttribute("for")).checked ? e.classList.remove("active") : e.classList.add("active") : a.click();
1005
+ }), e.addEventListener("keydown", (s) => {
1006
+ switch (s.keyCode) {
1007
+ case 32:
1008
+ case 13:
1009
+ a.matches("label[for]") ? document.getElementById(a.getAttribute("for")).checked ? e.classList.remove("active") : e.classList.add("active") : a.click();
1010
+ break;
1011
+ }
1012
+ });
1013
+ }
1014
+ static get observedAttributes() {
1015
+ return ["data-total", "class"];
1016
+ }
1017
+ attributeChangedCallback(a, e, s) {
1018
+ switch (a) {
1019
+ case "data-total": {
1020
+ this.shadowRoot.querySelector(".card__total").innerHTML = s;
1021
+ break;
1022
+ }
1023
+ case "class": {
1024
+ let r = this.classList.toString();
1025
+ this.querySelector(".icon") && (r += " card--has-icon"), this.shadowRoot.querySelector(".card").setAttribute("class", `card ${r}`);
1026
+ break;
1027
+ }
1056
1028
  }
1057
1029
  }
1058
- }, pt = ["href", "title", "target"], bt = {
1059
- key: 0,
1060
- class: "card-header__wrapper"
1061
- }, vt = ["src"], gt = { class: "card-header" }, wt = ["innerHTML"], kt = ["innerHTML"], At = ["src"], St = ["innerHTML"], $t = {
1062
- key: 1,
1063
- class: "card-footer"
1064
- }, xt = { class: "visually-hidden" };
1065
- function qt(e, r, t, u, h, a) {
1066
- return l(), o("a", {
1067
- href: t.link,
1068
- class: b("card" + (t.type ? " card--" + t.type : "") + " " + t.cardClass),
1069
- title: t.ctatext + ": " + t.title + (t.subtitle ? " - " + t.subtitle : ""),
1070
- target: t.target
1071
- }, [
1072
- t.image ? (l(), o("div", bt, [
1073
- s("img", {
1074
- src: t.image,
1075
- alt: "",
1076
- loading: "lazy",
1077
- class: "card-image"
1078
- }, null, 8, vt),
1079
- s("div", gt, [
1080
- this.details && this.details.status ? (l(), o("span", {
1081
- key: 0,
1082
- class: "badge bg-primary p-2 me-2",
1083
- innerHTML: a.cardStatus()
1084
- }, null, 8, wt)) : p("", !0),
1085
- this.details && (this.details.images || this.details.videos) ? (l(), o("span", {
1086
- key: 1,
1087
- class: "badge bg-black bg-opacity-50 p-2 align-self-end",
1088
- innerHTML: a.cardMedia()
1089
- }, null, 8, kt)) : p("", !0)
1090
- ]),
1091
- t.details && t.details.logo ? (l(), o("img", {
1092
- key: 0,
1093
- src: t.details.logo,
1094
- alt: "",
1095
- loading: "lazy",
1096
- class: "card-logo"
1097
- }, null, 8, At)) : p("", !0)
1098
- ])) : p("", !0),
1099
- s("div", {
1100
- class: "card-body",
1101
- innerHTML: a.cardContent()
1102
- }, null, 8, St),
1103
- t.hidectatext == !1 ? (l(), o("div", $t, [
1104
- s("span", {
1105
- class: b(`${t.btntype == "link" ? "link" : `btn btn-${t.btntype}`} mb-0`)
1106
- }, [
1107
- F(k(t.ctatext), 1),
1108
- s("span", xt, ": " + k(t.title), 1)
1109
- ], 2)
1110
- ])) : p("", !0)
1111
- ], 10, pt);
1112
1030
  }
1113
- const Q = /* @__PURE__ */ g(yt, [["render", qt]]);
1114
- const Lt = {
1031
+ const Mt = {
1032
+ name: "Card",
1033
+ created() {
1034
+ this.$nextTick(function() {
1035
+ window.customElements.get("iam-card") || window.customElements.define("iam-card", Ct);
1036
+ });
1037
+ }
1038
+ };
1039
+ function Et(t, a, e, s, r, n) {
1040
+ return c(), d("iam-card", null, [
1041
+ p(t.$slots, "default")
1042
+ ]);
1043
+ }
1044
+ const Nt = /* @__PURE__ */ A(Mt, [["render", Et]]);
1045
+ function Dt(t) {
1046
+ var a;
1047
+ let e = t.querySelector(".carousel__inner"), s = t.querySelectorAll(".carousel__item").length;
1048
+ t.getAttribute("data-cols");
1049
+ let r = t.getAttribute("data-sm-cols"), n = t.getAttribute("data-md-cols");
1050
+ t.querySelector(".carousel__controls a").classList.add("active"), e.addEventListener("scroll", function(i) {
1051
+ clearTimeout(a), a = setTimeout(function() {
1052
+ let l = e.clientWidth, h = e.scrollWidth, u = e.scrollLeft, m = Math.round(u / h * s) + 1, f = t.querySelector(".carousel__item:last-child").offsetLeft;
1053
+ Array.from(t.querySelectorAll(".carousel__controls a")).forEach((b, g) => {
1054
+ b.classList.remove("active");
1055
+ }), t.querySelector(".control-" + m).classList.add("active"), m == 1 ? t.querySelector(".btn-prev").setAttribute("disabled", "disabled") : t.querySelector(".btn-prev").removeAttribute("disabled"), e.scrollLeft + l > f ? t.querySelector(".btn-next").setAttribute("disabled", "disabled") : t.querySelector(".btn-next").removeAttribute("disabled");
1056
+ }, 100);
1057
+ }, !1), t.addEventListener("click", function(i) {
1058
+ for (var l = i.target; l && l != this; l = l.parentNode)
1059
+ if (l.matches(".carousel__controls a")) {
1060
+ i.preventDefault(), Array.from(t.querySelectorAll(".carousel__controls a")).forEach((u, m) => {
1061
+ u.classList.remove("active");
1062
+ }), l.classList.add("active");
1063
+ const h = document.querySelector(l.getAttribute("href"));
1064
+ e.scroll({
1065
+ top: 0,
1066
+ left: h.offsetLeft,
1067
+ behavior: "smooth"
1068
+ });
1069
+ break;
1070
+ }
1071
+ }, !1), t.addEventListener("click", function(i) {
1072
+ for (var l = i.target; l && l != this; l = l.parentNode)
1073
+ if (l.matches(".btn-next, .btn-prev")) {
1074
+ i.preventDefault();
1075
+ let h = l.classList.contains("btn-prev") ? e.scrollLeft - e.clientWidth : e.scrollLeft + e.clientWidth;
1076
+ e.scroll({
1077
+ top: 0,
1078
+ left: h,
1079
+ behavior: "smooth"
1080
+ });
1081
+ break;
1082
+ }
1083
+ }, !1), s == 1 && t.classList.add("hide-btns"), r >= s && t.classList.add("hide-sm-btns"), n >= s && t.classList.add("hide-md-btns");
1084
+ }
1085
+ const Rt = {
1115
1086
  components: {
1116
- Card: Q
1087
+ Card: Nt
1088
+ },
1089
+ name: "Carousel",
1090
+ data() {
1091
+ return {
1092
+ id: null
1093
+ };
1117
1094
  },
1118
- name: "CardDeck",
1119
1095
  props: {
1120
1096
  items: {
1121
1097
  type: Array,
@@ -1165,94 +1141,7 @@ const Lt = {
1165
1141
  type: Boolean,
1166
1142
  required: !1,
1167
1143
  default: !1
1168
- }
1169
- }
1170
- }, Tt = ["data-card-type"];
1171
- function Mt(e, r, t, u, h, a) {
1172
- const n = H("Card");
1173
- return l(), o("div", {
1174
- class: "container card-deck prevent-invert",
1175
- "data-card-type": t.cardtype
1176
- }, [
1177
- v(e.$slots, "default"),
1178
- s("div", {
1179
- class: b(`row row-cols-${t.cols} row-cols-sm-${t.smcols} row-cols-md-${t.mdcols} ${t.gap ? `g-${t.gap}` : ""}`)
1180
- }, [
1181
- (l(!0), o($, null, x(t.items, (i, f) => (l(), o("div", {
1182
- class: "col",
1183
- key: f
1184
- }, [
1185
- S(n, T(i, {
1186
- class: t.cardclass,
1187
- type: t.cardtype,
1188
- btntype: i.btntype ? i.btntype : t.btntype,
1189
- titleclass: i.titleclass ? i.titleclass : t.titleclass,
1190
- ctatext: i.ctatext,
1191
- hidectatext: t.hidectatext
1192
- }), null, 16, ["class", "type", "btntype", "titleclass", "ctatext", "hidectatext"])
1193
- ]))), 128))
1194
- ], 2),
1195
- v(e.$slots, "after")
1196
- ], 8, Tt);
1197
- }
1198
- const Ht = /* @__PURE__ */ g(Lt, [["render", Mt]]);
1199
- function Ct(e) {
1200
- var r;
1201
- let t = e.querySelector(".carousel__inner"), u = e.querySelectorAll(".carousel__item").length;
1202
- e.getAttribute("data-cols");
1203
- let h = e.getAttribute("data-sm-cols"), a = e.getAttribute("data-md-cols");
1204
- e.querySelector(".carousel__controls a").classList.add("active"), t.addEventListener("scroll", function(n) {
1205
- clearTimeout(r), r = setTimeout(function() {
1206
- let i = t.clientWidth, f = t.scrollWidth, A = t.scrollLeft, q = Math.round(A / f * u) + 1, M = e.querySelector(".carousel__item:last-child").offsetLeft;
1207
- Array.from(e.querySelectorAll(".carousel__controls a")).forEach((I, C) => {
1208
- I.classList.remove("active");
1209
- }), e.querySelector(".control-" + q).classList.add("active"), q == 1 ? e.querySelector(".btn-prev").setAttribute("disabled", "disabled") : e.querySelector(".btn-prev").removeAttribute("disabled"), t.scrollLeft + i > M ? e.querySelector(".btn-next").setAttribute("disabled", "disabled") : e.querySelector(".btn-next").removeAttribute("disabled");
1210
- }, 100);
1211
- }, !1), e.addEventListener("click", function(n) {
1212
- for (var i = n.target; i && i != this; i = i.parentNode)
1213
- if (i.matches(".carousel__controls a")) {
1214
- n.preventDefault(), Array.from(e.querySelectorAll(".carousel__controls a")).forEach((A, q) => {
1215
- A.classList.remove("active");
1216
- }), i.classList.add("active");
1217
- const f = document.querySelector(i.getAttribute("href"));
1218
- t.scroll({
1219
- top: 0,
1220
- left: f.offsetLeft,
1221
- behavior: "smooth"
1222
- });
1223
- break;
1224
- }
1225
- }, !1), e.addEventListener("click", function(n) {
1226
- for (var i = n.target; i && i != this; i = i.parentNode)
1227
- if (i.matches(".btn-next, .btn-prev")) {
1228
- n.preventDefault();
1229
- let f = i.classList.contains("btn-prev") ? t.scrollLeft - t.clientWidth : t.scrollLeft + t.clientWidth;
1230
- t.scroll({
1231
- top: 0,
1232
- left: f,
1233
- behavior: "smooth"
1234
- });
1235
- break;
1236
- }
1237
- }, !1), u == 1 && e.classList.add("hide-btns"), h >= u && e.classList.add("hide-sm-btns"), a >= u && e.classList.add("hide-md-btns");
1238
- }
1239
- let P = Ht.props;
1240
- P.gap.default = 0;
1241
- P.cols.default = 1;
1242
- P.smcols.default = 2;
1243
- P.mdcols.default = 4;
1244
- const Nt = {
1245
- components: {
1246
- Card: Q
1247
- },
1248
- name: "Carousel",
1249
- data() {
1250
- return {
1251
- id: null
1252
- };
1253
- },
1254
- props: {
1255
- ...P,
1144
+ },
1256
1145
  colclass: {
1257
1146
  type: String,
1258
1147
  required: !1
@@ -1264,45 +1153,45 @@ const Nt = {
1264
1153
  },
1265
1154
  computed: {
1266
1155
  content() {
1267
- return (e) => `${e.image ? `<img src="${e.image}" alt="" />` : ""}${e.content ? e.content : ""}`;
1156
+ return (t) => `${t.image ? `<img src="${t.image}" alt="" />` : ""}${t.content ? t.content : ""}`;
1268
1157
  }
1269
1158
  },
1270
1159
  mounted() {
1271
1160
  this.id = this._uid, this.$nextTick(function() {
1272
- Ct(this.$refs.wrapper);
1161
+ Dt(this.$refs.wrapper);
1273
1162
  });
1274
1163
  }
1275
- }, Bt = ["id", "data-cols", "data-sm-cols", "data-md-cols"], Pt = { class: "carousel__wrapper" }, Dt = { class: "carousel__inner" }, It = ["id"], zt = ["innerHTML", "id"], Vt = ["href"], Ot = /* @__PURE__ */ s("button", {
1164
+ }, Pt = ["id", "data-cols", "data-sm-cols", "data-md-cols"], It = { class: "carousel__wrapper" }, Ft = { class: "carousel__inner" }, Bt = ["id"], Vt = ["innerHTML", "id"], zt = ["href"], Wt = /* @__PURE__ */ o("button", {
1276
1165
  class: "btn btn-prev",
1277
1166
  "data-go": "0",
1278
1167
  disabled: ""
1279
- }, "Prev", -1), Ft = /* @__PURE__ */ s("button", {
1168
+ }, "Prev", -1), Ot = /* @__PURE__ */ o("button", {
1280
1169
  class: "btn btn-next",
1281
1170
  "data-go": "2"
1282
1171
  }, "Next", -1);
1283
- function jt(e, r, t, u, h, a) {
1284
- const n = H("Card");
1285
- return l(), o("div", {
1172
+ function jt(t, a, e, s, r, n) {
1173
+ const i = E("Card");
1174
+ return c(), d("div", {
1286
1175
  class: "container carousel",
1287
- id: "carousel" + h.id,
1176
+ id: "carousel" + r.id,
1288
1177
  ref: "wrapper",
1289
1178
  "data-cols": e.cols,
1290
1179
  "data-sm-cols": e.smcols,
1291
1180
  "data-md-cols": e.mdcols
1292
1181
  }, [
1293
- v(e.$slots, "default"),
1294
- s("div", Pt, [
1295
- s("div", Dt, [
1296
- t.type == "card" ? (l(), o("div", {
1182
+ p(t.$slots, "default"),
1183
+ o("div", It, [
1184
+ o("div", Ft, [
1185
+ e.type == "card" ? (c(), d("div", {
1297
1186
  key: 0,
1298
- class: b(`row row-cols-${e.cols} row-cols-sm-${e.smcols} row-cols-md-${e.mdcols} ${e.gap ? `g-${e.gap}` : ""}`)
1187
+ class: v(`row row-cols-${e.cols} row-cols-sm-${e.smcols} row-cols-md-${e.mdcols} ${e.gap ? `g-${e.gap}` : ""}`)
1299
1188
  }, [
1300
- (l(!0), o($, null, x(e.items, (i, f) => (l(), o("div", {
1301
- class: b(`col carousel__item${t.colclass ? ` ${t.colclass}` : ""}`),
1302
- key: f,
1303
- id: "carousel" + h.id + "slide" + (f + 1)
1189
+ (c(!0), d($, null, T(e.items, (l, h) => (c(), d("div", {
1190
+ class: v(`col carousel__item${e.colclass ? ` ${e.colclass}` : ""}`),
1191
+ key: h,
1192
+ id: "carousel" + r.id + "slide" + (h + 1)
1304
1193
  }, [
1305
- S(n, T(i, {
1194
+ S(i, H(l, {
1306
1195
  class: e.cardclass,
1307
1196
  type: e.cardtype,
1308
1197
  btnyype: e.btntype,
@@ -1310,36 +1199,77 @@ function jt(e, r, t, u, h, a) {
1310
1199
  ctatext: e.ctatext,
1311
1200
  hidectatext: e.hidectatext
1312
1201
  }), null, 16, ["class", "type", "btnyype", "titleclass", "ctatext", "hidectatext"])
1313
- ], 10, It))), 128))
1314
- ], 2)) : p("", !0),
1315
- t.type != "card" ? (l(), o("div", {
1202
+ ], 10, Bt))), 128))
1203
+ ], 2)) : _("", !0),
1204
+ e.type != "card" ? (c(), d("div", {
1316
1205
  key: 1,
1317
- class: b(`row row-cols-${e.cols} row-cols-sm-${e.smcols} row-cols-md-${e.mdcols} ${e.gap ? `g-${e.gap}` : ""}`)
1206
+ class: v(`row row-cols-${e.cols} row-cols-sm-${e.smcols} row-cols-md-${e.mdcols} ${e.gap ? `g-${e.gap}` : ""}`)
1318
1207
  }, [
1319
- (l(!0), o($, null, x(e.items, (i, f) => (l(), o("div", {
1320
- class: b(`col carousel__item${t.colclass ? ` ${t.colclass}` : ""}`),
1321
- key: f,
1322
- innerHTML: a.content(i),
1323
- id: "carousel" + h.id + "slide" + (f + 1)
1324
- }, null, 10, zt))), 128))
1325
- ], 2)) : p("", !0)
1208
+ (c(!0), d($, null, T(e.items, (l, h) => (c(), d("div", {
1209
+ class: v(`col carousel__item${e.colclass ? ` ${e.colclass}` : ""}`),
1210
+ key: h,
1211
+ innerHTML: n.content(l),
1212
+ id: "carousel" + r.id + "slide" + (h + 1)
1213
+ }, null, 10, Vt))), 128))
1214
+ ], 2)) : _("", !0)
1326
1215
  ]),
1327
- s("div", {
1328
- class: b(`carousel__controls cols-${e.cols} cols-sm-${e.smcols} cols-md-${e.mdcols}`)
1216
+ o("div", {
1217
+ class: v(`carousel__controls cols-${e.cols} cols-sm-${e.smcols} cols-md-${e.mdcols}`)
1329
1218
  }, [
1330
- (l(!0), o($, null, x(e.items, (i, f) => (l(), o("a", {
1331
- key: f,
1332
- href: "#carousel" + h.id + "slide" + (f + 1),
1333
- class: b(`control-${f + 1}`)
1334
- }, "Slide " + k(f + 1), 11, Vt))), 128))
1219
+ (c(!0), d($, null, T(e.items, (l, h) => (c(), d("a", {
1220
+ key: h,
1221
+ href: "#carousel" + r.id + "slide" + (h + 1),
1222
+ class: v(`control-${h + 1}`)
1223
+ }, "Slide " + L(h + 1), 11, zt))), 128))
1335
1224
  ], 2),
1336
- Ot,
1337
- Ft
1225
+ Wt,
1226
+ Ot
1338
1227
  ])
1339
- ], 8, Bt);
1228
+ ], 8, Pt);
1340
1229
  }
1341
- const _i = /* @__PURE__ */ g(Nt, [["render", jt]]);
1342
- const Wt = {
1230
+ const hi = /* @__PURE__ */ A(Rt, [["render", jt]]);
1231
+ window.dataLayer = window.dataLayer || [];
1232
+ window.dataLayer.push({
1233
+ event: "customElementRegistered",
1234
+ element: "header"
1235
+ });
1236
+ class Ut extends HTMLElement {
1237
+ constructor() {
1238
+ super(), this.attachShadow({ mode: "open" });
1239
+ const a = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", e = `@import "${a}/css/components/header.css";`, s = document.createElement("template");
1240
+ s.innerHTML = `
1241
+ <style>
1242
+ @import "${a}/css/core.min.css";
1243
+ ${e}
1244
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
1245
+ :host {
1246
+ max-width:100%!important;
1247
+ padding:0!important;
1248
+ }
1249
+ </style>
1250
+ <div class="header-banner">
1251
+ <div class="container" part="container">
1252
+ <slot name="breadcrumb"></slot>
1253
+ <div class="header-banner__inner">
1254
+ <slot></slot>
1255
+ </div>
1256
+ </div>
1257
+ <picture>
1258
+ <!-- Actual image only loaded on desktops -->
1259
+ <source srcset="" media="(min-width: 62em)">
1260
+ <!-- Placeholder image -->
1261
+ <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
1262
+ </picture>
1263
+ </div>
1264
+ `, this.shadowRoot.appendChild(s.content.cloneNode(!0));
1265
+ }
1266
+ connectedCallback() {
1267
+ const a = this.shadowRoot.querySelector("picture"), e = this.shadowRoot.querySelector("picture source");
1268
+ this.hasAttribute("image") ? e.setAttribute("srcset", this.getAttribute("image")) : a.remove();
1269
+ }
1270
+ }
1271
+ window.customElements.get("iam-header") || window.customElements.define("iam-header", Ut);
1272
+ const Kt = {
1343
1273
  name: "Header",
1344
1274
  props: {
1345
1275
  title: {
@@ -1351,51 +1281,43 @@ const Wt = {
1351
1281
  required: !1
1352
1282
  }
1353
1283
  }
1354
- }, Kt = { class: "header-banner" }, Ut = { class: "container" }, Gt = { class: "header-banner__inner" }, Zt = ["innerHTML"], Rt = { key: 0 }, Qt = ["srcset"], Yt = /* @__PURE__ */ s("img", {
1355
- src: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
1356
- alt: ""
1357
- }, null, -1);
1358
- function Et(e, r, t, u, h, a) {
1359
- return l(), o("header", Kt, [
1360
- s("div", Ut, [
1361
- v(e.$slots, "breadcrumb"),
1362
- s("div", Gt, [
1363
- s("h1", { innerHTML: t.title }, null, 8, Zt),
1364
- v(e.$slots, "default")
1365
- ])
1366
- ]),
1367
- t.image ? (l(), o("picture", Rt, [
1368
- s("source", {
1369
- srcset: t.image,
1370
- media: "(min-width: 62em)"
1371
- }, null, 8, Qt),
1372
- Yt
1373
- ])) : p("", !0)
1374
- ]);
1284
+ }, Gt = ["image"], Qt = ["innerHTML"];
1285
+ function Yt(t, a, e, s, r, n) {
1286
+ return c(), d("iam-header", {
1287
+ class: "bg-secondary",
1288
+ image: e.image
1289
+ }, [
1290
+ p(t.$slots, "breadcrumb"),
1291
+ e.title ? (c(), d("h1", {
1292
+ key: 0,
1293
+ innerHTML: e.title
1294
+ }, null, 8, Qt)) : _("", !0),
1295
+ p(t.$slots, "default")
1296
+ ], 8, Gt);
1375
1297
  }
1376
- const yi = /* @__PURE__ */ g(Wt, [["render", Et]]);
1377
- function Jt(e) {
1378
- var r;
1379
- const t = e.querySelector(".testimonial__images"), u = t.querySelectorAll("img").length;
1380
- if (u == 1)
1298
+ const mi = /* @__PURE__ */ A(Kt, [["render", Yt]]);
1299
+ function Zt(t) {
1300
+ var a;
1301
+ const e = t.querySelector(".testimonial__images"), s = e.querySelectorAll("img").length;
1302
+ if (s == 1)
1381
1303
  return !1;
1382
- e.classList.add("testimonial--multi");
1383
- const h = function(a) {
1384
- const n = e.querySelector(".btn-next"), i = e.querySelector(".btn-prev");
1385
- n.setAttribute("data-go", a + 1), i.setAttribute("data-go", a - 1), n.removeAttribute("disabled"), i.removeAttribute("disabled"), a == 1 ? i.setAttribute("disabled", !0) : a == u && n.setAttribute("disabled", !0);
1304
+ t.classList.add("testimonial--multi");
1305
+ const r = function(n) {
1306
+ const i = t.querySelector(".btn-next"), l = t.querySelector(".btn-prev");
1307
+ i.setAttribute("data-go", n + 1), l.setAttribute("data-go", n - 1), i.removeAttribute("disabled"), l.removeAttribute("disabled"), n == 1 ? l.setAttribute("disabled", !0) : n == s && i.setAttribute("disabled", !0);
1386
1308
  };
1387
- t.addEventListener("scroll", function(a) {
1388
- clearTimeout(r), r = setTimeout(function() {
1389
- let n = t.scrollWidth, i = t.scrollHeight, f = t.scrollLeft, A = t.scrollTop, q = Math.round(f / n * u) + 1;
1390
- f == 0 && A != 0 && (q = Math.round(A / i * u) + 1), e.setAttribute("data-show", q), h(q);
1309
+ e.addEventListener("scroll", function(n) {
1310
+ clearTimeout(a), a = setTimeout(function() {
1311
+ let i = e.scrollWidth, l = e.scrollHeight, h = e.scrollLeft, u = e.scrollTop, m = Math.round(h / i * s) + 1;
1312
+ h == 0 && u != 0 && (m = Math.round(u / l * s) + 1), t.setAttribute("data-show", m), r(m);
1391
1313
  }, 300);
1392
- }, !1), e.addEventListener("click", function(a) {
1393
- for (var n = a.target; n && n != this; n = n.parentNode)
1394
- if (n.matches("[data-go]")) {
1395
- let i = parseInt(n.getAttribute("data-go")), f = 0, A = 0, q = t.scrollWidth, M = t.scrollHeight;
1396
- q > M ? A = Math.floor(q * ((i - 1) / u)) : f = Math.floor(M * ((i - 1) / u)), t.scroll({
1397
- top: f,
1398
- left: A,
1314
+ }, !1), t.addEventListener("click", function(n) {
1315
+ for (var i = n.target; i && i != this; i = i.parentNode)
1316
+ if (i.matches("[data-go]")) {
1317
+ let l = parseInt(i.getAttribute("data-go")), h = 0, u = 0, m = e.scrollWidth, f = e.scrollHeight;
1318
+ m > f ? u = Math.floor(m * ((l - 1) / s)) : h = Math.floor(f * ((l - 1) / s)), e.scroll({
1319
+ top: h,
1320
+ left: u,
1399
1321
  behavior: "smooth"
1400
1322
  });
1401
1323
  break;
@@ -1416,68 +1338,68 @@ const Xt = {
1416
1338
  }
1417
1339
  },
1418
1340
  mounted() {
1419
- Jt(this.$refs.wrapper);
1341
+ Zt(this.$refs.wrapper);
1420
1342
  }
1421
- }, es = {
1343
+ }, Jt = {
1422
1344
  class: "container testimonial mb-5",
1423
1345
  "data-show": "1",
1424
1346
  ref: "wrapper"
1425
- }, ts = { class: "row" }, ss = { class: "col-md-5 position-relative" }, as = { class: "testimonial__images" }, is = ["src"], ns = /* @__PURE__ */ s("div", { class: "testimonial__controls" }, [
1426
- /* @__PURE__ */ s("button", {
1347
+ }, ea = { class: "row" }, ta = { class: "col-md-5 position-relative" }, aa = { class: "testimonial__images" }, sa = ["src"], ia = /* @__PURE__ */ o("div", { class: "testimonial__controls" }, [
1348
+ /* @__PURE__ */ o("button", {
1427
1349
  "data-go": "0",
1428
1350
  disabled: "",
1429
1351
  class: "btn-prev"
1430
1352
  }, "Previous"),
1431
- /* @__PURE__ */ s("button", {
1353
+ /* @__PURE__ */ o("button", {
1432
1354
  "data-go": "2",
1433
1355
  class: "btn-next"
1434
1356
  }, "Next")
1435
- ], -1), rs = { class: "col-md-7" }, ls = /* @__PURE__ */ s("h2", null, "What our customers think…", -1), os = { class: "testimonial__content" }, cs = ["innerHTML"], ds = ["innerHTML"], us = { class: "testimonial__after" }, fs = /* @__PURE__ */ s("span", { class: "circle circle--dots d-none d-md-block" }, null, -1);
1436
- function hs(e, r, t, u, h, a) {
1437
- return l(), o("div", es, [
1438
- s("div", {
1439
- class: b("bg-" + t.background)
1357
+ ], -1), la = { class: "col-md-7" }, na = /* @__PURE__ */ o("h2", null, "What our customers think…", -1), ra = { class: "testimonial__content" }, oa = ["innerHTML"], ca = ["innerHTML"], da = { class: "testimonial__after" }, ua = /* @__PURE__ */ o("span", { class: "circle circle--dots d-none d-md-block" }, null, -1);
1358
+ function ha(t, a, e, s, r, n) {
1359
+ return c(), d("div", Jt, [
1360
+ o("div", {
1361
+ class: v("bg-" + e.background)
1440
1362
  }, [
1441
- s("div", ts, [
1442
- s("div", ss, [
1443
- s("div", as, [
1444
- (l(!0), o($, null, x(t.items, (n, i) => (l(), o("img", {
1445
- key: i,
1446
- src: n.image ? n.image : "data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
1363
+ o("div", ea, [
1364
+ o("div", ta, [
1365
+ o("div", aa, [
1366
+ (c(!0), d($, null, T(e.items, (i, l) => (c(), d("img", {
1367
+ key: l,
1368
+ src: i.image ? i.image : "data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",
1447
1369
  alt: "",
1448
- class: b("h-100 w-100 object-cover" + (n.image ? "" : " opacity-0"))
1449
- }, null, 10, is))), 128))
1370
+ class: v("h-100 w-100 object-cover" + (i.image ? "" : " opacity-0"))
1371
+ }, null, 10, sa))), 128))
1450
1372
  ]),
1451
- ns
1373
+ ia
1452
1374
  ]),
1453
- s("div", rs, [
1454
- ls,
1455
- s("div", os, [
1456
- (l(!0), o($, null, x(t.items, (n, i) => (l(), o("blockquote", {
1457
- key: i,
1458
- class: b(n.class)
1375
+ o("div", la, [
1376
+ na,
1377
+ o("div", ra, [
1378
+ (c(!0), d($, null, T(e.items, (i, l) => (c(), d("blockquote", {
1379
+ key: l,
1380
+ class: v(i.class)
1459
1381
  }, [
1460
- s("div", {
1461
- innerHTML: n.quote
1462
- }, null, 8, cs),
1463
- s("cite", {
1464
- innerHTML: n.cite
1465
- }, null, 8, ds)
1382
+ o("div", {
1383
+ innerHTML: i.quote
1384
+ }, null, 8, oa),
1385
+ o("cite", {
1386
+ innerHTML: i.cite
1387
+ }, null, 8, ca)
1466
1388
  ], 2))), 128))
1467
1389
  ]),
1468
- s("div", us, [
1469
- v(e.$slots, "default")
1390
+ o("div", da, [
1391
+ p(t.$slots, "default")
1470
1392
  ])
1471
1393
  ])
1472
1394
  ]),
1473
- fs
1395
+ ua
1474
1396
  ], 2)
1475
1397
  ], 512);
1476
1398
  }
1477
- const pi = /* @__PURE__ */ g(Xt, [["render", hs]]);
1478
- const ms = {
1399
+ const fi = /* @__PURE__ */ A(Xt, [["render", ha]]);
1400
+ const ma = {
1479
1401
  components: {
1480
- Input: D
1402
+ Input: R
1481
1403
  },
1482
1404
  name: "PropertySearchbar",
1483
1405
  props: {
@@ -1602,8 +1524,8 @@ const ms = {
1602
1524
  };
1603
1525
  },
1604
1526
  methods: {
1605
- locationKeyup: function(e) {
1606
- this.$emit("locationKeyup", e);
1527
+ locationKeyup: function(t) {
1528
+ this.$emit("locationKeyup", t);
1607
1529
  }
1608
1530
  },
1609
1531
  computed: {
@@ -1611,8 +1533,8 @@ const ms = {
1611
1533
  get() {
1612
1534
  return this.locationSave ? this.locationSave : this.location;
1613
1535
  },
1614
- set(e) {
1615
- this.locationSave = e, this.$emit("input", e);
1536
+ set(t) {
1537
+ this.locationSave = t, this.$emit("input", t);
1616
1538
  }
1617
1539
  },
1618
1540
  locationsList() {
@@ -1621,126 +1543,126 @@ const ms = {
1621
1543
  ];
1622
1544
  }
1623
1545
  }
1624
- }, _s = {
1546
+ }, fa = {
1625
1547
  class: "container",
1626
1548
  ref: "wrapper"
1627
- }, ys = { class: "property-searchbar" }, ps = ["action", "method"], bs = { class: "col-12 col-md-3" }, vs = { class: "col-12 col-md" }, gs = /* @__PURE__ */ s("span", { class: "form-label d-none d-md-block" }, "Price range", -1), ws = {
1549
+ }, ya = { class: "property-searchbar" }, ba = ["action", "method"], _a = { class: "col-12 col-md-3" }, pa = { class: "col-12 col-md" }, ga = /* @__PURE__ */ o("span", { class: "form-label d-none d-md-block" }, "Price range", -1), va = {
1628
1550
  class: "row",
1629
1551
  "data-input-range": ""
1630
- }, ks = { class: "col-12 col-md" }, As = /* @__PURE__ */ s("span", { class: "form-label d-none d-md-block" }, "Number of beds", -1), Ss = {
1552
+ }, Aa = { class: "col-12 col-md" }, wa = /* @__PURE__ */ o("span", { class: "form-label d-none d-md-block" }, "Number of beds", -1), Sa = {
1631
1553
  class: "row",
1632
1554
  "data-input-range": ""
1633
- }, $s = { class: "col-12 col-md-2" }, xs = /* @__PURE__ */ s("div", { class: "col-12 col-md mw-md-fit-content d-flex property-searchbar__btn" }, [
1634
- /* @__PURE__ */ s("button", {
1555
+ }, La = { class: "col-12 col-md-2" }, ka = /* @__PURE__ */ o("div", { class: "col-12 col-md mw-md-fit-content d-flex property-searchbar__btn" }, [
1556
+ /* @__PURE__ */ o("button", {
1635
1557
  class: "btn w-100 me-0",
1636
1558
  type: "submit",
1637
1559
  value: "submit"
1638
1560
  }, "Search")
1639
1561
  ], -1);
1640
- function qs(e, r, t, u, h, a) {
1641
- const n = H("Input");
1642
- return l(), o("div", _s, [
1643
- v(e.$slots, "default"),
1644
- s("div", ys, [
1645
- s("form", {
1562
+ function xa(t, a, e, s, r, n) {
1563
+ const i = E("Input");
1564
+ return c(), d("div", fa, [
1565
+ p(t.$slots, "default"),
1566
+ o("div", ya, [
1567
+ o("form", {
1646
1568
  class: "row",
1647
- action: t.formaction,
1648
- method: t.formmethod
1569
+ action: e.formaction,
1570
+ method: e.formmethod
1649
1571
  }, [
1650
- s("fieldset", bs, [
1651
- S(n, {
1572
+ o("fieldset", _a, [
1573
+ S(i, {
1652
1574
  inputClass: "input--locations",
1653
- modelValue: a.locationSet,
1654
- "onUpdate:modelValue": r[0] || (r[0] = (i) => a.locationSet = i),
1575
+ modelValue: n.locationSet,
1576
+ "onUpdate:modelValue": a[0] || (a[0] = (l) => n.locationSet = l),
1655
1577
  label: "Location",
1656
1578
  id: "location",
1657
- options: a.locationsList(),
1579
+ options: n.locationsList(),
1658
1580
  required: "",
1659
1581
  placeholder: "i.e. Newcastle or NE1",
1660
- onKeyupEvent: r[1] || (r[1] = (i) => a.locationKeyup(...arguments)),
1582
+ onKeyupEvent: a[1] || (a[1] = (l) => n.locationKeyup(...arguments)),
1661
1583
  ref: "search"
1662
1584
  }, null, 8, ["modelValue", "options"]),
1663
- S(n, {
1585
+ S(i, {
1664
1586
  class: "select--miles",
1665
1587
  label: "Miles",
1666
1588
  id: "miles",
1667
1589
  type: "select",
1668
- options: t.distances
1590
+ options: e.distances
1669
1591
  }, null, 8, ["options"])
1670
1592
  ]),
1671
- s("fieldset", vs, [
1672
- gs,
1673
- s("div", ws, [
1674
- S(n, {
1593
+ o("fieldset", pa, [
1594
+ ga,
1595
+ o("div", va, [
1596
+ S(i, {
1675
1597
  class: "col-6",
1676
1598
  label: "Minimum price",
1677
1599
  id: "price-min",
1678
1600
  "data-min": "true",
1679
1601
  type: "select",
1680
- options: t.pricemin
1602
+ options: e.pricemin
1681
1603
  }, null, 8, ["options"]),
1682
- S(n, {
1604
+ S(i, {
1683
1605
  class: "col-6",
1684
1606
  label: "Maximum price",
1685
1607
  id: "price-max",
1686
1608
  "data-max": "true",
1687
1609
  type: "select",
1688
- options: t.pricemax
1610
+ options: e.pricemax
1689
1611
  }, null, 8, ["options"])
1690
1612
  ])
1691
1613
  ]),
1692
- s("fieldset", ks, [
1693
- As,
1694
- s("div", Ss, [
1695
- S(n, {
1614
+ o("fieldset", Aa, [
1615
+ wa,
1616
+ o("div", Sa, [
1617
+ S(i, {
1696
1618
  class: "col-6",
1697
1619
  label: "Minimum beds",
1698
1620
  id: "beds-min",
1699
1621
  "data-min": "true",
1700
1622
  type: "select",
1701
- options: t.bedsmin
1623
+ options: e.bedsmin
1702
1624
  }, null, 8, ["options"]),
1703
- S(n, {
1625
+ S(i, {
1704
1626
  class: "col-6",
1705
1627
  label: "Maximum beds",
1706
1628
  id: "beds-max",
1707
1629
  "data-max": "true",
1708
1630
  type: "select",
1709
- options: t.bedsmax
1631
+ options: e.bedsmax
1710
1632
  }, null, 8, ["options"])
1711
1633
  ])
1712
1634
  ]),
1713
- s("fieldset", $s, [
1714
- S(n, {
1635
+ o("fieldset", La, [
1636
+ S(i, {
1715
1637
  label: "Property type",
1716
1638
  id: "property-type",
1717
1639
  type: "select",
1718
- options: t.propertytypes
1640
+ options: e.propertytypes
1719
1641
  }, null, 8, ["options"])
1720
1642
  ]),
1721
- xs
1722
- ], 8, ps)
1643
+ ka
1644
+ ], 8, ba)
1723
1645
  ]),
1724
- v(e.$slots, "after")
1646
+ p(t.$slots, "after")
1725
1647
  ], 512);
1726
1648
  }
1727
- const bi = /* @__PURE__ */ g(ms, [["render", qs]]), Ls = (e) => {
1728
- Array.from(e.querySelectorAll("details")).forEach((r, t) => {
1729
- r.addEventListener("mouseenter", function(u) {
1730
- window.matchMedia("(min-width: 62em)").matches && r.setAttribute("open", "true");
1731
- }, !1), r.addEventListener("mouseleave", function(u) {
1732
- window.matchMedia("(min-width: 62em)").matches && r.removeAttribute("open");
1649
+ const yi = /* @__PURE__ */ A(ma, [["render", xa]]), qa = (t) => {
1650
+ Array.from(t.querySelectorAll("details")).forEach((a, e) => {
1651
+ a.addEventListener("mouseenter", function(s) {
1652
+ window.matchMedia("(min-width: 62em)").matches && a.setAttribute("open", "true");
1653
+ }, !1), a.addEventListener("mouseleave", function(s) {
1654
+ window.matchMedia("(min-width: 62em)").matches && a.removeAttribute("open");
1733
1655
  }, !1);
1734
1656
  }), "IntersectionObserver" in window && new IntersectionObserver(
1735
- ([t]) => t.target.classList.toggle("is-stuck", t.intersectionRatio < 1),
1657
+ ([e]) => e.target.classList.toggle("is-stuck", e.intersectionRatio < 1),
1736
1658
  { threshold: [1] }
1737
- ).observe(e);
1659
+ ).observe(t);
1738
1660
  };
1739
- const Ts = {
1661
+ const $a = {
1740
1662
  components: {
1741
- Input: D,
1742
- Logo: ue,
1743
- Icon: re
1663
+ Input: R,
1664
+ Logo: _e,
1665
+ Icon: he
1744
1666
  },
1745
1667
  name: "Nav",
1746
1668
  props: {
@@ -1787,8 +1709,8 @@ const Ts = {
1787
1709
  };
1788
1710
  },
1789
1711
  methods: {
1790
- subIsActive(e) {
1791
- return (Array.isArray(e) ? e : [e]).some((t) => this.$route.path.indexOf(t) === 0);
1712
+ subIsActive(t) {
1713
+ return (Array.isArray(t) ? t : [t]).some((e) => this.$route.path.indexOf(e) === 0);
1792
1714
  }
1793
1715
  },
1794
1716
  computed: {
@@ -1810,61 +1732,61 @@ const Ts = {
1810
1732
  },
1811
1733
  mounted() {
1812
1734
  this.$nextTick(function() {
1813
- Ls(this.$refs.wrapper);
1735
+ qa(this.$refs.wrapper);
1814
1736
  });
1815
1737
  }
1816
- }, Ms = /* @__PURE__ */ s("input", {
1738
+ }, Ta = /* @__PURE__ */ o("input", {
1817
1739
  type: "checkbox",
1818
1740
  name: "showMenu",
1819
1741
  id: "showMenu",
1820
1742
  class: "d-none"
1821
- }, null, -1), Hs = /* @__PURE__ */ s("input", {
1743
+ }, null, -1), Ha = /* @__PURE__ */ o("input", {
1822
1744
  type: "checkbox",
1823
1745
  name: "showSearch",
1824
1746
  id: "showSearch",
1825
1747
  class: "d-none"
1826
- }, null, -1), Cs = /* @__PURE__ */ s("input", {
1748
+ }, null, -1), Ca = /* @__PURE__ */ o("input", {
1827
1749
  type: "checkbox",
1828
1750
  name: "showAccount",
1829
1751
  id: "showAccount",
1830
1752
  class: "d-none"
1831
- }, null, -1), Ns = { class: "nav__mobile-bar" }, Bs = { class: "container" }, Ps = { class: "row" }, Ds = {
1753
+ }, null, -1), Ma = { class: "nav__mobile-bar" }, Ea = { class: "container" }, Na = { class: "row" }, Da = {
1832
1754
  key: 0,
1833
1755
  class: "col mw-md-fit-content nav__logo"
1834
- }, Is = {
1756
+ }, Ra = {
1835
1757
  key: 1,
1836
1758
  class: "col mw-md-fit-content nav__logo"
1837
- }, zs = {
1759
+ }, Pa = {
1838
1760
  href: "/",
1839
1761
  class: "text-decoration-none mb-0"
1840
- }, Vs = /* @__PURE__ */ s("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1841
- /* @__PURE__ */ s("label", { for: "showMenu" }, "Menu")
1842
- ], -1), Os = { class: "nav__inner" }, Fs = { class: "container" }, js = { class: "row" }, Ws = {
1762
+ }, Ia = /* @__PURE__ */ o("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1763
+ /* @__PURE__ */ o("label", { for: "showMenu" }, "Menu")
1764
+ ], -1), Fa = { class: "nav__inner" }, Ba = { class: "container" }, Va = { class: "row" }, za = {
1843
1765
  key: 0,
1844
1766
  class: "col mw-md-fit-content nav__logo"
1845
- }, Ks = {
1767
+ }, Wa = {
1846
1768
  key: 1,
1847
1769
  class: "col mw-md-fit-content nav__logo"
1848
- }, Us = {
1770
+ }, Oa = {
1849
1771
  href: "/",
1850
1772
  class: "text-decoration-none mb-0"
1851
- }, Gs = {
1773
+ }, ja = {
1852
1774
  key: 2,
1853
1775
  class: "col mw-fit-content nav__search-btn flex-row align-items-center"
1854
- }, Zs = /* @__PURE__ */ s("label", { for: "showSearch" }, [
1855
- /* @__PURE__ */ s("svg", {
1776
+ }, Ua = /* @__PURE__ */ o("label", { for: "showSearch" }, [
1777
+ /* @__PURE__ */ o("svg", {
1856
1778
  class: "icon",
1857
1779
  viewBox: "0 0 32 32"
1858
1780
  }, [
1859
- /* @__PURE__ */ s("title", null, "Search"),
1860
- /* @__PURE__ */ s("ellipse", {
1781
+ /* @__PURE__ */ o("title", null, "Search"),
1782
+ /* @__PURE__ */ o("ellipse", {
1861
1783
  cx: "14.92",
1862
1784
  cy: "13.81",
1863
1785
  rx: "11.92",
1864
1786
  ry: "11.81",
1865
1787
  class: "icon__outline"
1866
1788
  }),
1867
- /* @__PURE__ */ s("line", {
1789
+ /* @__PURE__ */ o("line", {
1868
1790
  x1: "22.68",
1869
1791
  y1: "22.75",
1870
1792
  x2: "30",
@@ -1872,237 +1794,152 @@ const Ts = {
1872
1794
  class: "icon__outline"
1873
1795
  })
1874
1796
  ])
1875
- ], -1), Rs = [
1876
- Zs
1877
- ], Qs = /* @__PURE__ */ s("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1878
- /* @__PURE__ */ s("label", { for: "showMenu" }, "Menu")
1879
- ], -1), Ys = { class: "col-12 col-md nav__menu ms-auto flex-row align-items-center" }, Es = {
1797
+ ], -1), Ka = [
1798
+ Ua
1799
+ ], Ga = /* @__PURE__ */ o("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1800
+ /* @__PURE__ */ o("label", { for: "showMenu" }, "Menu")
1801
+ ], -1), Qa = { class: "col-12 col-md nav__menu ms-auto flex-row align-items-center" }, Ya = {
1880
1802
  key: 3,
1881
1803
  class: "col nav__account-btn flex-row align-items-center"
1882
- }, Js = /* @__PURE__ */ s("label", { for: "showAccount" }, [
1883
- /* @__PURE__ */ s("svg", {
1804
+ }, Za = /* @__PURE__ */ o("label", { for: "showAccount" }, [
1805
+ /* @__PURE__ */ o("svg", {
1884
1806
  class: "icon",
1885
1807
  viewBox: "0 0 28 28"
1886
1808
  }, [
1887
- /* @__PURE__ */ s("path", {
1809
+ /* @__PURE__ */ o("path", {
1888
1810
  d: "M14,28a13.861,13.861,0,0,1-9.268-3.533l-.023.047-.721-.738L3.62,23.4l.012-.023a14,14,0,1,1,20.735,0l.012.023-.367.377-.722.738-.024-.045A13.855,13.855,0,0,1,14,28Zm0-9.58a10.5,10.5,0,0,0-1.368.092c-.085.012-.17.03-.252.047-.061.013-.124.026-.187.037l-.077.013c-.266.047-.54.095-.8.165-.108.029-.215.065-.318.1-.063.022-.125.043-.188.063l-.08.026c-.223.071-.454.144-.671.234-.125.05-.245.11-.362.168l-.146.072-.045.021c-.208.1-.423.2-.623.312-.131.074-.257.158-.379.239l-.106.07-.068.044c-.176.114-.359.232-.528.359-.137.1-.267.218-.393.327l-.054.047c-.174.15-.355.306-.519.47-.132.134-.258.277-.38.416l-.018.021c-.16.184-.3.35-.437.527-.12.161-.23.33-.337.494-.076.117-.146.238-.214.356a12.495,12.495,0,0,0,17.109,0l-.022-.037c-.061-.1-.125-.212-.192-.315-.1-.156-.214-.333-.338-.5-.141-.188-.293-.363-.436-.526-.113-.13-.253-.292-.4-.438-.161-.162-.337-.314-.517-.468l-.08-.069c-.118-.1-.24-.209-.368-.307-.183-.137-.379-.264-.568-.387l-.026-.017-.106-.07c-.125-.083-.251-.166-.381-.24-.207-.118-.429-.222-.643-.322l-.024-.011-.152-.074c-.116-.057-.235-.116-.356-.165-.214-.087-.438-.159-.656-.229l-.1-.031c-.066-.021-.132-.043-.2-.066-.1-.035-.2-.07-.309-.1-.264-.07-.538-.118-.8-.165l-.078-.014c-.063-.011-.126-.024-.187-.037-.082-.017-.167-.035-.252-.047A10.483,10.483,0,0,0,14,18.421Zm0-1.473a11.871,11.871,0,0,1,1.54.1c.1.013.192.033.284.052.069.014.139.028.209.04.34.058.672.118,1,.2.14.036.278.082.412.127l.151.05c.309.1.587.188.859.3.148.059.293.127.433.194l.13.061c.306.142.553.266.775.389.188.107.368.22.535.328.26.166.489.322.7.478.156.117.316.244.49.389.209.176.412.361.622.567.156.154.3.293.43.443.209.23.4.472.542.657l.051.066c.1.134.21.272.308.416.021.031.045.061.068.09a1.267,1.267,0,0,1,.085.117,12.525,12.525,0,1,0-19.24,0c.026-.04.056-.078.084-.114s.05-.064.073-.1c.1-.141.2-.278.3-.409l.046-.059c.2-.264.378-.478.555-.672.137-.152.281-.3.417-.43.215-.21.422-.4.635-.578.18-.15.332-.271.479-.381.208-.155.433-.31.709-.486.174-.111.346-.219.526-.319.274-.153.55-.285.783-.393l.112-.053c.144-.069.293-.14.445-.2.282-.113.578-.208.864-.3l.159-.052c.132-.044.265-.088.4-.124.331-.087.675-.148,1-.2.068-.012.137-.026.2-.039.094-.019.191-.039.288-.052A11.827,11.827,0,0,1,14,16.948Z",
1889
1811
  transform: "translate(0 -0.001)"
1890
1812
  }),
1891
- /* @__PURE__ */ s("path", {
1813
+ /* @__PURE__ */ o("path", {
1892
1814
  d: "M5.2,10.4a5.2,5.2,0,1,1,5.2-5.2A5.206,5.206,0,0,1,5.2,10.4Zm0-8.915A3.714,3.714,0,1,0,8.915,5.2,3.719,3.719,0,0,0,5.2,1.486Z",
1893
1815
  transform: "translate(8.8 4.8)"
1894
1816
  })
1895
1817
  ]),
1896
- /* @__PURE__ */ s("span", null, "My account")
1897
- ], -1), Xs = [
1898
- Js
1899
- ], ea = {
1818
+ /* @__PURE__ */ o("span", null, "My account")
1819
+ ], -1), Xa = [
1820
+ Za
1821
+ ], Ja = {
1900
1822
  key: 4,
1901
1823
  class: "col-12 col-md nav__btn mw-md-fit-content flex-row align-items-center"
1902
- }, ta = ["href", "innerHTML"], sa = {
1824
+ }, es = ["href", "innerHTML"], ts = {
1903
1825
  key: 0,
1904
1826
  class: "nav__menu--secondary"
1905
- }, aa = { class: "container" }, ia = {
1827
+ }, as = { class: "container" }, ss = {
1906
1828
  key: 1,
1907
1829
  class: "nav__menu--search"
1908
- }, na = { class: "bg-gradient pt-4" }, ra = { class: "container" }, la = {
1830
+ }, is = { class: "bg-gradient pt-4" }, ls = { class: "container" }, ns = {
1909
1831
  key: 0,
1910
1832
  class: "nav__menu--account"
1911
- }, oa = { class: "container" }, ca = { class: "row mb-4" }, da = {
1833
+ }, rs = { class: "container" }, os = { class: "row mb-4" }, cs = {
1912
1834
  key: 0,
1913
1835
  class: "col mw-md-fit-content nav__logo"
1914
- }, ua = {
1836
+ }, ds = {
1915
1837
  key: 1,
1916
1838
  class: "col mw-md-fit-content nav__logo"
1917
- }, fa = {
1839
+ }, us = {
1918
1840
  href: "/",
1919
1841
  class: "text-decoration-none mb-0"
1920
- }, ha = /* @__PURE__ */ s("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1921
- /* @__PURE__ */ s("label", { for: "showAccount" }, "Account")
1922
- ], -1), ma = { class: "container" }, _a = /* @__PURE__ */ s("span", { class: "nav__bg" }, null, -1);
1923
- function ya(e, r, t, u, h, a) {
1924
- const n = H("Logo");
1925
- return l(), o("nav", {
1926
- class: b(`nav${a.hasSecondarySlot ? " has-secondary" : ""}`),
1842
+ }, hs = /* @__PURE__ */ o("div", { class: "col mw-fit-content d-md-none flex-row align-items-center nav__menu-btn" }, [
1843
+ /* @__PURE__ */ o("label", { for: "showAccount" }, "Account")
1844
+ ], -1), ms = { class: "container" }, fs = /* @__PURE__ */ o("span", { class: "nav__bg" }, null, -1);
1845
+ function ys(t, a, e, s, r, n) {
1846
+ const i = E("Logo");
1847
+ return c(), d("nav", {
1848
+ class: v(`nav${n.hasSecondarySlot ? " has-secondary" : ""}`),
1927
1849
  ref: "wrapper"
1928
1850
  }, [
1929
- Ms,
1930
- Hs,
1931
- Cs,
1932
- s("div", Ns, [
1933
- s("div", Bs, [
1934
- s("div", Ps, [
1935
- a.hasLogoSlot ? (l(), o("div", Ds, [
1936
- v(e.$slots, "logo")
1937
- ])) : (l(), o("div", Is, [
1938
- s("a", zs, [
1939
- S(n, {
1940
- id: t.logo,
1941
- path: t.logopath,
1942
- desc: t.logotext,
1851
+ Ta,
1852
+ Ha,
1853
+ Ca,
1854
+ o("div", Ma, [
1855
+ o("div", Ea, [
1856
+ o("div", Na, [
1857
+ n.hasLogoSlot ? (c(), d("div", Da, [
1858
+ p(t.$slots, "logo")
1859
+ ])) : (c(), d("div", Ra, [
1860
+ o("a", Pa, [
1861
+ S(i, {
1862
+ id: e.logo,
1863
+ path: e.logopath,
1864
+ desc: e.logotext,
1943
1865
  class: "pb-0"
1944
1866
  }, null, 8, ["id", "path", "desc"])
1945
1867
  ])
1946
1868
  ])),
1947
- Vs
1869
+ Ia
1948
1870
  ])
1949
1871
  ])
1950
1872
  ]),
1951
- s("div", Os, [
1952
- s("div", Fs, [
1953
- s("div", js, [
1954
- a.hasLogoSlot ? (l(), o("div", Ws, [
1955
- v(e.$slots, "logo")
1956
- ])) : (l(), o("div", Ks, [
1957
- s("a", Us, [
1958
- S(n, {
1959
- id: t.logo,
1960
- path: t.logopath,
1961
- desc: t.logotext,
1873
+ o("div", Fa, [
1874
+ o("div", Ba, [
1875
+ o("div", Va, [
1876
+ n.hasLogoSlot ? (c(), d("div", za, [
1877
+ p(t.$slots, "logo")
1878
+ ])) : (c(), d("div", Wa, [
1879
+ o("a", Oa, [
1880
+ S(i, {
1881
+ id: e.logo,
1882
+ path: e.logopath,
1883
+ desc: e.logotext,
1962
1884
  class: "pb-0"
1963
1885
  }, null, 8, ["id", "path", "desc"])
1964
1886
  ])
1965
1887
  ])),
1966
- a.hasSearchSlot ? (l(), o("div", Gs, Rs)) : p("", !0),
1967
- Qs,
1968
- s("div", Ys, [
1969
- v(e.$slots, "default")
1888
+ n.hasSearchSlot ? (c(), d("div", ja, Ka)) : _("", !0),
1889
+ Ga,
1890
+ o("div", Qa, [
1891
+ p(t.$slots, "default")
1970
1892
  ]),
1971
- a.hasAccountSlot ? (l(), o("div", Es, Xs)) : p("", !0),
1972
- t.btnlink ? (l(), o("div", ea, [
1973
- s("a", {
1974
- href: t.btnlink,
1893
+ n.hasAccountSlot ? (c(), d("div", Ya, Xa)) : _("", !0),
1894
+ e.btnlink ? (c(), d("div", Ja, [
1895
+ o("a", {
1896
+ href: e.btnlink,
1975
1897
  class: "btn me-0",
1976
- innerHTML: t.btntext
1977
- }, null, 8, ta)
1978
- ])) : p("", !0)
1898
+ innerHTML: e.btntext
1899
+ }, null, 8, es)
1900
+ ])) : _("", !0)
1979
1901
  ])
1980
1902
  ]),
1981
- a.hasSecondarySlot ? (l(), o("div", sa, [
1982
- s("div", aa, [
1983
- v(e.$slots, "secondary")
1903
+ n.hasSecondarySlot ? (c(), d("div", ts, [
1904
+ o("div", as, [
1905
+ p(t.$slots, "secondary")
1984
1906
  ])
1985
- ])) : p("", !0),
1986
- a.hasSearchSlot ? (l(), o("div", ia, [
1987
- s("div", na, [
1988
- s("div", ra, [
1989
- v(e.$slots, "search")
1907
+ ])) : _("", !0),
1908
+ n.hasSearchSlot ? (c(), d("div", ss, [
1909
+ o("div", is, [
1910
+ o("div", ls, [
1911
+ p(t.$slots, "search")
1990
1912
  ])
1991
1913
  ])
1992
- ])) : p("", !0)
1914
+ ])) : _("", !0)
1993
1915
  ]),
1994
- a.hasAccountSlot ? (l(), o("div", la, [
1995
- s("div", oa, [
1996
- s("div", ca, [
1997
- a.hasLogoSlot ? (l(), o("div", da, [
1998
- v(e.$slots, "logo")
1999
- ])) : (l(), o("div", ua, [
2000
- s("a", fa, [
2001
- S(n, {
2002
- id: t.logo,
2003
- path: t.logopath,
2004
- desc: t.logotext,
1916
+ n.hasAccountSlot ? (c(), d("div", ns, [
1917
+ o("div", rs, [
1918
+ o("div", os, [
1919
+ n.hasLogoSlot ? (c(), d("div", cs, [
1920
+ p(t.$slots, "logo")
1921
+ ])) : (c(), d("div", ds, [
1922
+ o("a", us, [
1923
+ S(i, {
1924
+ id: e.logo,
1925
+ path: e.logopath,
1926
+ desc: e.logotext,
2005
1927
  class: "pb-0"
2006
1928
  }, null, 8, ["id", "path", "desc"])
2007
1929
  ])
2008
1930
  ])),
2009
- ha
1931
+ hs
2010
1932
  ])
2011
1933
  ]),
2012
- s("div", ma, [
2013
- v(e.$slots, "account")
1934
+ o("div", ms, [
1935
+ p(t.$slots, "account")
2014
1936
  ])
2015
- ])) : p("", !0),
2016
- _a
1937
+ ])) : _("", !0),
1938
+ fs
2017
1939
  ], 2);
2018
1940
  }
2019
- const vi = /* @__PURE__ */ g(Ts, [["render", ya]]), pa = (e) => {
2020
- const r = e.querySelectorAll(".modal__outer a, .modal__outer button"), t = r[0], u = r[r.length - 1], h = e.getAttribute("id"), a = function() {
2021
- document.querySelector('[href="' + window.location.hash + '"]').focus(), window.location.hash = "close", history.replaceState("", document.title, window.location.pathname + window.location.search), typeof window.player < "u" && typeof window.player.pauseVideo == "function" && window.player.pauseVideo();
2022
- };
2023
- e.addEventListener("keydown", function(i) {
2024
- i.key === "Tab" && i.shiftKey && document.activeElement == t ? (i.preventDefault(), u.focus()) : i.key === "Tab" && !i.shiftKey && document.activeElement == u && (i.preventDefault(), t.focus());
2025
- }), document.addEventListener("keydown", function(i) {
2026
- i.key === "Escape" && document.querySelector(".modal:target") && a();
2027
- }), e.addEventListener("click", function(i) {
2028
- for (var f = i.target; f && f != this; f = f.parentNode)
2029
- if (f.matches('[href="#close"]')) {
2030
- i.preventDefault(), a();
2031
- break;
2032
- } else if (f.matches(".modal__dock--right")) {
2033
- i.preventDefault(), e.classList.contains("modal--left") || e.classList.add("modal--right"), e.classList.remove("modal--left");
2034
- break;
2035
- } else if (f.matches(".modal__dock--left")) {
2036
- i.preventDefault(), e.classList.contains("modal--right") || e.classList.add("modal--left"), e.classList.remove("modal--right");
2037
- break;
2038
- }
2039
- });
2040
- function n() {
2041
- if (location.hash === "#" + h) {
2042
- console.log("Modal is now open");
2043
- const i = document.querySelector(".modal:target .modal__inner > .youtube-embed:first-child:last-child a");
2044
- console.log(i), i && i.click();
2045
- }
2046
- }
2047
- window.onhashchange = n;
2048
- };
2049
- const ba = {
2050
- name: "Modal",
2051
- props: {
2052
- id: {
2053
- type: String,
2054
- required: !0
2055
- },
2056
- returnid: {
2057
- type: String,
2058
- default: "close",
2059
- required: !1
2060
- }
2061
- },
2062
- mounted() {
2063
- this.$nextTick(function() {
2064
- pa(this.$refs.modal);
2065
- });
2066
- }
2067
- }, va = ["id"], ga = ["href"], wa = /* @__PURE__ */ s("span", { class: "visually-hidden" }, "Close", -1), ka = [
2068
- wa
2069
- ], Aa = { class: "modal__outer" }, Sa = ["href"], $a = /* @__PURE__ */ s("span", { class: "visually-hidden" }, "Close", -1), xa = { class: "modal__inner" }, qa = /* @__PURE__ */ s("button", {
2070
- class: "modal__dock--left btn btn-prev",
2071
- tabindex: "-1"
2072
- }, "Left", -1), La = /* @__PURE__ */ s("button", {
2073
- class: "modal__dock--right btn btn-next",
2074
- tabindex: "-1"
2075
- }, "Right", -1);
2076
- function Ta(e, r, t, u, h, a) {
2077
- return l(), o("div", {
2078
- class: "modal",
2079
- id: t.id,
2080
- role: "dialog",
2081
- modal: "true",
2082
- ref: "modal"
2083
- }, [
2084
- s("a", {
2085
- href: `#${t.returnid ? t.returnid : ""}`,
2086
- tabindex: "-1"
2087
- }, ka, 8, ga),
2088
- s("div", Aa, [
2089
- s("a", {
2090
- href: `#${t.returnid ? t.returnid : ""}`,
2091
- class: "btn btn-tertiary py-1 px-2"
2092
- }, [
2093
- $a,
2094
- F("✕")
2095
- ], 8, Sa),
2096
- s("div", xa, [
2097
- v(e.$slots, "default")
2098
- ])
2099
- ]),
2100
- qa,
2101
- La
2102
- ], 8, va);
2103
- }
2104
- const gi = /* @__PURE__ */ g(ba, [["render", Ta]]);
2105
- const Ma = {
1941
+ const bi = /* @__PURE__ */ A($a, [["render", ys]]);
1942
+ const bs = {
2106
1943
  name: "Stepper",
2107
1944
  props: {
2108
1945
  label: {
@@ -2115,25 +1952,25 @@ const Ma = {
2115
1952
  default: "Complete"
2116
1953
  }
2117
1954
  }
2118
- }, Ha = { class: "container" }, Ca = ["aria-label"], Na = {
1955
+ }, _s = { class: "container" }, ps = ["aria-label"], gs = {
2119
1956
  key: 0,
2120
1957
  class: "h6 stepper__start"
2121
- }, Ba = { class: "list-unstyled" }, Pa = { class: "h6 stepper__end" };
2122
- function Da(e, r, t, u, h, a) {
2123
- return l(), o("div", Ha, [
2124
- s("nav", {
1958
+ }, vs = { class: "list-unstyled" }, As = { class: "h6 stepper__end" };
1959
+ function ws(t, a, e, s, r, n) {
1960
+ return c(), d("div", _s, [
1961
+ o("nav", {
2125
1962
  class: "stepper",
2126
- "aria-label": t.label ? t.label : "Progress"
1963
+ "aria-label": e.label ? e.label : "Progress"
2127
1964
  }, [
2128
- t.label ? (l(), o("span", Na, k(t.label), 1)) : p("", !0),
2129
- s("ol", Ba, [
2130
- v(e.$slots, "default")
1965
+ e.label ? (c(), d("span", gs, L(e.label), 1)) : _("", !0),
1966
+ o("ol", vs, [
1967
+ p(t.$slots, "default")
2131
1968
  ]),
2132
- s("span", Pa, k(t.endlabel), 1)
2133
- ], 8, Ca)
1969
+ o("span", As, L(e.endlabel), 1)
1970
+ ], 8, ps)
2134
1971
  ]);
2135
1972
  }
2136
- const wi = /* @__PURE__ */ g(Ma, [["render", Da]]), Ia = {
1973
+ const _i = /* @__PURE__ */ A(bs, [["render", ws]]), Ss = {
2137
1974
  name: "Stepper",
2138
1975
  props: {
2139
1976
  url: {
@@ -2149,86 +1986,100 @@ const wi = /* @__PURE__ */ g(Ma, [["render", Da]]), Ia = {
2149
1986
  required: !1
2150
1987
  }
2151
1988
  }
2152
- }, za = ["href", "aria-current"], Va = {
1989
+ }, Ls = ["href", "aria-current"], ks = {
2153
1990
  key: 0,
2154
1991
  class: "visually-hidden"
2155
1992
  };
2156
- function Oa(e, r, t, u, h, a) {
2157
- return l(), o("li", null, [
2158
- s("a", {
2159
- href: t.url,
2160
- class: b(`${t.status ? "bg-" + t.status : ""}${typeof t.current < "u" ? "current" : ""}`),
2161
- "aria-current": typeof t.current < "u"
1993
+ function xs(t, a, e, s, r, n) {
1994
+ return c(), d("li", null, [
1995
+ o("a", {
1996
+ href: e.url,
1997
+ class: v(`${e.status ? "bg-" + e.status : ""}${typeof e.current < "u" ? "current" : ""}`),
1998
+ "aria-current": typeof e.current < "u"
2162
1999
  }, [
2163
- s("span", null, [
2164
- v(e.$slots, "default")
2000
+ o("span", null, [
2001
+ p(t.$slots, "default")
2165
2002
  ]),
2166
- t.status ? (l(), o("em", Va, " - status: " + k(t.status), 1)) : p("", !0)
2167
- ], 10, za)
2003
+ e.status ? (c(), d("em", ks, " - status: " + L(e.status), 1)) : _("", !0)
2004
+ ], 10, Ls)
2168
2005
  ]);
2169
2006
  }
2170
- const ki = /* @__PURE__ */ g(Ia, [["render", Oa]]);
2171
- const Fa = {
2172
- name: "Tabs",
2173
- data() {
2174
- return {
2175
- tabsID: "tabs_" + Math.random().toString(36).substr(2, 9)
2176
- };
2177
- },
2178
- computed: {
2179
- tabLinks() {
2180
- return () => {
2181
- const e = [];
2182
- let r = 1;
2183
- for (const [t, u] of Object.entries(this.$slots.default()))
2184
- if (u.props && u.props.title) {
2185
- let h = u.props.title, a = {
2186
- name: this.tabsID,
2187
- id: this.tabsID + "_tab" + r++,
2188
- tabTitle: h
2189
- };
2190
- e.push(a);
2191
- }
2192
- return e;
2193
- };
2194
- }
2195
- },
2196
- methods: {
2197
- openTab: function(e) {
2198
- let r = 0;
2199
- for (const [t, u] of Object.entries(this.$slots.default()))
2200
- u.props && u.props.title && (r == e && (console.log(u), u.type.data().show = !0), r++);
2201
- }
2007
+ const pi = /* @__PURE__ */ A(Ss, [["render", xs]]), qs = function(t) {
2008
+ const a = t.querySelectorAll(":scope > details");
2009
+ t.querySelectorAll(":scope > details > summary");
2010
+ let e = t.querySelector(":scope > .tabs__links");
2011
+ t.shadowRoot && t.shadowRoot.querySelector(".tabs__links") && (e = t.shadowRoot.querySelector(".tabs__links")), e || (e = document.createElement("div"), e.classList.add("tabs__links"), t.prepend(e)), a.forEach((s, r) => {
2012
+ let n = s.querySelector(":scope > summary");
2013
+ n.classList.add("visually-hidden");
2014
+ let i = document.createElement("button");
2015
+ s.hasAttribute("id") && (i = document.createElement("a"), i.setAttribute("href", `#${s.getAttribute("id")}`)), s.hasAttribute("open") && i.setAttribute("aria-pressed", !0), i.innerHTML = `${n.innerText}`, i.classList.add("link"), i.setAttribute("data-index", r), i.setAttribute("tabindex", "-1"), e.appendChild(i);
2016
+ });
2017
+ }, $s = function(t) {
2018
+ let a = t.querySelectorAll(":scope > details"), e = t.querySelectorAll(":scope > details > summary"), s = t.querySelectorAll(":scope > .tabs__links > button, .tabs__links > a");
2019
+ t.shadowRoot && (s = t.shadowRoot.querySelectorAll(".tabs__links > button, .tabs__links > a")), s.forEach((r) => {
2020
+ r.addEventListener("click", (n) => {
2021
+ n.preventDefault(), s.forEach((i) => {
2022
+ let l = i == r;
2023
+ i.setAttribute("aria-pressed", l);
2024
+ }), a.forEach((i, l) => {
2025
+ let h = r.getAttribute("data-index") == l;
2026
+ h ? i.setAttribute("open", h) : i.removeAttribute("open");
2027
+ }), r.hasAttribute("href") && history.pushState(void 0, void 0, r.getAttribute("href")), window.dataLayer = window.dataLayer || [], window.dataLayer.push({
2028
+ event: "openTab",
2029
+ tabTitle: r.textContent
2030
+ });
2031
+ });
2032
+ }), e.forEach((r, n) => {
2033
+ r.addEventListener("focus", (i) => {
2034
+ s.forEach((l) => {
2035
+ l.classList.remove("focus");
2036
+ }), s[n].classList.add("focus");
2037
+ }), r.addEventListener("click", (i) => {
2038
+ i.preventDefault(), s[n].click();
2039
+ });
2040
+ });
2041
+ }, Ts = function(t) {
2042
+ let a = t.querySelectorAll(":scope > details"), e = t.querySelectorAll(":scope > .tabs__links > button, .tabs__links > a");
2043
+ t.shadowRoot && (e = t.shadowRoot.querySelectorAll(".tabs__links > button, .tabs__links > a")), location.hash && t.querySelector(`.tabs__links [href="${location.hash}"]`) ? (t.querySelector(`[href="${location.hash}"]`).setAttribute("open", !0), t.querySelector(`details[id="${location.hash.replace("#", "")}"]`).setAttribute("open", !0)) : t.querySelector("details[open]") || (a[0].setAttribute("open", !0), e[0].setAttribute("aria-pressed", !0));
2044
+ }, Hs = function(t) {
2045
+ qs(t), $s(t), Ts(t);
2046
+ };
2047
+ window.dataLayer = window.dataLayer || [];
2048
+ window.dataLayer.push({
2049
+ event: "customElementRegistered",
2050
+ element: "tabs"
2051
+ });
2052
+ class Cs extends HTMLElement {
2053
+ constructor() {
2054
+ super(), this.attachShadow({ mode: "open" });
2055
+ const a = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", e = `@import "${a}/css/components/tabs.css";`, s = document.createElement("template");
2056
+ s.innerHTML = `
2057
+ <style>
2058
+ @import "${a}/css/core.min.css";
2059
+ ${e}
2060
+
2061
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
2062
+ </style>
2063
+ <div class="tabs">
2064
+ <div class="tabs__links"></div>
2065
+ <slot></slot>
2066
+ </div>
2067
+ `, this.shadowRoot.appendChild(s.content.cloneNode(!0));
2202
2068
  }
2203
- }, ja = {
2204
- class: "container tabs__container",
2205
- ref: "wrapper"
2206
- }, Wa = ["data-key", "name", "id", "checked"], Ka = { class: "tabs__links" }, Ua = ["for", "onClick"], Ga = { class: "tabs" };
2207
- function Za(e, r, t, u, h, a) {
2208
- return l(), o("div", ja, [
2209
- (l(!0), o($, null, x(a.tabLinks(), (n, i) => (l(), o("input", {
2210
- type: "radio",
2211
- class: "tab__input",
2212
- key: i,
2213
- "data-key": i,
2214
- name: n.name,
2215
- id: n.id,
2216
- checked: i == 0
2217
- }, null, 8, Wa))), 128)),
2218
- s("div", Ka, [
2219
- (l(!0), o($, null, x(a.tabLinks(), (n, i) => (l(), o("label", {
2220
- key: i,
2221
- for: n.id,
2222
- class: "link",
2223
- onClick: (f) => a.openTab(i)
2224
- }, k(n.tabTitle), 9, Ua))), 128))
2225
- ]),
2226
- s("div", Ga, [
2227
- v(e.$slots, "default")
2228
- ])
2069
+ connectedCallback() {
2070
+ Hs(this);
2071
+ }
2072
+ }
2073
+ window.customElements.get("iam-tabs") || window.customElements.define("iam-tabs", Cs);
2074
+ const Ms = {
2075
+ name: "Tabs"
2076
+ }, Es = { ref: "wrapper" };
2077
+ function Ns(t, a, e, s, r, n) {
2078
+ return c(), d("iam-tabs", Es, [
2079
+ p(t.$slots, "default")
2229
2080
  ], 512);
2230
2081
  }
2231
- const Ai = /* @__PURE__ */ g(Fa, [["render", Za]]), Ra = {
2082
+ const gi = /* @__PURE__ */ A(Ms, [["render", Ns]]), Ds = {
2232
2083
  name: "Tab",
2233
2084
  props: {
2234
2085
  title: {
@@ -2246,46 +2097,44 @@ const Ai = /* @__PURE__ */ g(Fa, [["render", Za]]), Ra = {
2246
2097
  };
2247
2098
  },
2248
2099
  watch: {
2249
- show(e, r) {
2250
- console.log(e);
2100
+ show(t, a) {
2101
+ console.log(t);
2251
2102
  }
2252
2103
  }
2253
- }, Qa = {
2254
- key: 0,
2255
- class: "tab"
2256
- };
2257
- function Ya(e, r, t, u, h, a) {
2258
- return h.show ? (l(), o("div", Qa, [
2259
- v(e.$slots, "default")
2260
- ])) : p("", !0);
2104
+ }, Rs = { class: "tab" }, Ps = ["innerHTML"];
2105
+ function Is(t, a, e, s, r, n) {
2106
+ return c(), d("details", Rs, [
2107
+ o("summary", { innerHTML: e.title }, null, 8, Ps),
2108
+ p(t.$slots, "default")
2109
+ ]);
2261
2110
  }
2262
- const Si = /* @__PURE__ */ g(Ra, [["render", Ya]]);
2263
- function Ea(e) {
2264
- if (e.addEventListener("click", function(t) {
2265
- for (var u = t.target; u && u != this; u = u.parentNode)
2266
- if (u.matches(".btn-close")) {
2267
- t.preventDefault(), e.classList.remove("show"), setTimeout(function() {
2268
- e.remove();
2111
+ const vi = /* @__PURE__ */ A(Ds, [["render", Is]]);
2112
+ function Fs(t) {
2113
+ if (t.addEventListener("click", function(e) {
2114
+ for (var s = e.target; s && s != this; s = s.parentNode)
2115
+ if (s.matches(".btn-close")) {
2116
+ e.preventDefault(), t.classList.remove("show"), setTimeout(function() {
2117
+ t.remove();
2269
2118
  }, 300);
2270
2119
  break;
2271
2120
  }
2272
- }, !1), e.hasAttribute("data-timeout")) {
2273
- let t = e.getAttribute("data-timeout");
2121
+ }, !1), t.hasAttribute("data-timeout")) {
2122
+ let e = t.getAttribute("data-timeout");
2274
2123
  setTimeout(function() {
2275
- e.classList.remove("show"), setTimeout(function() {
2276
- e.remove();
2124
+ t.classList.remove("show"), setTimeout(function() {
2125
+ t.remove();
2277
2126
  }, 300);
2278
- }, t);
2127
+ }, e);
2279
2128
  }
2280
2129
  if (!document.querySelector(".alert__holder")) {
2281
2130
  document.getElementsByTagName("BODY")[0];
2282
- let t = document.createElement("div");
2283
- t.classList.add("alert__holder"), document.querySelector("main") ? document.querySelector("main").appendChild(t) : document.body.appendChild(t);
2131
+ let e = document.createElement("div");
2132
+ e.classList.add("alert__holder"), document.querySelector("main") ? document.querySelector("main").appendChild(e) : document.body.appendChild(e);
2284
2133
  }
2285
- let r = document.querySelector(".alert__holder");
2286
- e.classList.contains("alert--fixed") && !e.parentNode.classList.contains("alert__wrapper") && r.appendChild(e);
2134
+ let a = document.querySelector(".alert__holder");
2135
+ t.classList.contains("alert--fixed") && !t.parentNode.classList.contains("alert__wrapper") && a.appendChild(t);
2287
2136
  }
2288
- const Ja = {
2137
+ const Bs = {
2289
2138
  name: "Alert",
2290
2139
  props: {
2291
2140
  dismissible: {
@@ -2304,38 +2153,38 @@ const Ja = {
2304
2153
  }
2305
2154
  },
2306
2155
  mounted() {
2307
- Ea(this.$refs.wrapper);
2156
+ Fs(this.$refs.wrapper);
2308
2157
  }
2309
- }, Xa = ["data-timeout"], ei = {
2158
+ }, Vs = ["data-timeout"], zs = {
2310
2159
  key: 0,
2311
2160
  type: "button",
2312
2161
  class: "btn-close",
2313
2162
  "data-bs-dismiss": "alert",
2314
2163
  "aria-label": "Close"
2315
2164
  };
2316
- function ti(e, r, t, u, h, a) {
2317
- return l(), o("div", {
2318
- class: b(`container alert pb-0 ${t.dismissible ? "alert--dismissible fade show" : ""}`),
2165
+ function Ws(t, a, e, s, r, n) {
2166
+ return c(), d("div", {
2167
+ class: v(`container alert pb-0 ${e.dismissible ? "alert--dismissible fade show" : ""}`),
2319
2168
  ref: "wrapper",
2320
- "data-timeout": t.timeout,
2321
- style: ee(t.timeout ? `--animation-length: ${t.timeout}ms` : "")
2169
+ "data-timeout": e.timeout,
2170
+ style: ne(e.timeout ? `--animation-length: ${e.timeout}ms` : "")
2322
2171
  }, [
2323
- s("div", {
2324
- class: b(`alert__inner bg-${t.colour}`),
2172
+ o("div", {
2173
+ class: v(`alert__inner bg-${e.colour}`),
2325
2174
  role: "alert"
2326
2175
  }, [
2327
- t.dismissible ? (l(), o("button", ei)) : p("", !0),
2328
- v(e.$slots, "default")
2176
+ e.dismissible ? (c(), d("button", zs)) : _("", !0),
2177
+ p(t.$slots, "default")
2329
2178
  ], 2)
2330
- ], 14, Xa);
2179
+ ], 14, Vs);
2331
2180
  }
2332
- const $i = /* @__PURE__ */ g(Ja, [["render", ti]]);
2333
- let Y = R.props;
2334
- Y.fields.required = !1;
2335
- const si = {
2181
+ const Ai = /* @__PURE__ */ A(Bs, [["render", Ws]]);
2182
+ let te = ee.props;
2183
+ te.fields.required = !1;
2184
+ const Os = {
2336
2185
  components: {
2337
- Table: R,
2338
- Input: D
2186
+ Table: ee,
2187
+ Input: R
2339
2188
  },
2340
2189
  data() {
2341
2190
  return {
@@ -2344,17 +2193,17 @@ const si = {
2344
2193
  };
2345
2194
  },
2346
2195
  methods: {
2347
- submitForm: function(e) {
2196
+ submitForm: function(t) {
2348
2197
  console.log(this);
2349
- const r = new FormData(e.target);
2350
- let t = /* @__PURE__ */ new Date();
2351
- const u = t.getFullYear();
2352
- let h = t.getMonth() + 1, a = t.getDate();
2353
- a < 10 && (a = "0" + a), h < 10 && (h = "0" + h), t = a + "/" + h + "/" + u, this.itemsData.unshift({
2354
- date_added: t,
2355
- user: r.get("user"),
2356
- note: r.get("addNote")
2357
- }), this.$emit("formSubmitted", e);
2198
+ const a = new FormData(t.target);
2199
+ let e = /* @__PURE__ */ new Date();
2200
+ const s = e.getFullYear();
2201
+ let r = e.getMonth() + 1, n = e.getDate();
2202
+ n < 10 && (n = "0" + n), r < 10 && (r = "0" + r), e = n + "/" + r + "/" + s, this.itemsData.unshift({
2203
+ date_added: e,
2204
+ user: a.get("user"),
2205
+ note: a.get("addNote")
2206
+ }), this.$emit("formSubmitted", t);
2358
2207
  }
2359
2208
  },
2360
2209
  name: "NoteFeed",
@@ -2363,7 +2212,7 @@ const si = {
2363
2212
  type: String,
2364
2213
  required: !0
2365
2214
  },
2366
- ...Y,
2215
+ ...te,
2367
2216
  title: {
2368
2217
  type: String,
2369
2218
  required: !1
@@ -2378,62 +2227,216 @@ const si = {
2378
2227
  required: !1
2379
2228
  }
2380
2229
  }
2381
- }, ai = { class: "container note-feed mb-2" }, ii = ["innerHTML"], ni = ["action", "method"], ri = ["value"], li = /* @__PURE__ */ s("button", { class: "btn btn-tertiary" }, "Submit note", -1);
2382
- function oi(e, r, t, u, h, a) {
2383
- const n = H("Table"), i = H("Input");
2384
- return l(), o("div", ai, [
2385
- t.title ? (l(), o("span", {
2230
+ }, js = { class: "container note-feed mb-2" }, Us = ["innerHTML"], Ks = ["action", "method"], Gs = ["value"], Qs = /* @__PURE__ */ o("button", { class: "btn btn-tertiary" }, "Submit note", -1);
2231
+ function Ys(t, a, e, s, r, n) {
2232
+ const i = E("Table"), l = E("Input");
2233
+ return c(), d("div", js, [
2234
+ e.title ? (c(), d("span", {
2386
2235
  key: 0,
2387
2236
  class: "h3",
2388
- innerHTML: t.title
2389
- }, null, 8, ii)) : p("", !0),
2390
- S(n, T({
2237
+ innerHTML: e.title
2238
+ }, null, 8, Us)) : _("", !0),
2239
+ S(i, H({
2391
2240
  fields: [{ key: "date_added" }, { key: "user" }, { key: "note" }],
2392
- items: h.itemsData
2393
- }, e.$props, { class: "mb-0" }), null, 16, ["items"]),
2394
- s("form", {
2395
- action: t.action,
2396
- method: t.method,
2397
- onSubmit: r[0] || (r[0] = te((f) => a.submitForm(...arguments), ["prevent"]))
2241
+ items: r.itemsData
2242
+ }, t.$props, { class: "mb-0" }), null, 16, ["items"]),
2243
+ o("form", {
2244
+ action: e.action,
2245
+ method: e.method,
2246
+ onSubmit: a[0] || (a[0] = re((h) => n.submitForm(...arguments), ["prevent"]))
2398
2247
  }, [
2399
- s("input", {
2248
+ o("input", {
2400
2249
  type: "hidden",
2401
- value: t.user,
2250
+ value: e.user,
2402
2251
  name: "user"
2403
- }, null, 8, ri),
2404
- S(i, {
2252
+ }, null, 8, Gs),
2253
+ S(l, {
2405
2254
  id: "addNote",
2406
2255
  type: "textarea",
2407
2256
  label: "Add note",
2408
2257
  required: "",
2409
2258
  class: "mw-100"
2410
2259
  }),
2411
- li
2412
- ], 40, ni)
2260
+ Qs
2261
+ ], 40, Ks)
2262
+ ]);
2263
+ }
2264
+ const wi = /* @__PURE__ */ A(Os, [["render", Ys]]);
2265
+ function Zs(t, a) {
2266
+ function e(s, r) {
2267
+ let n = !1, i = r.getAttribute("name");
2268
+ i.includes("[]") && (i = i.replace("[]", `[${r.value}]`));
2269
+ let l = s.querySelector(`[data-name="${i}"]`);
2270
+ l && r.getAttribute("type") == "checkbox" && (n = !0);
2271
+ let h = r.getAttribute("data-filter-text");
2272
+ if (l || (l = document.createElement("button"), s.appendChild(l)), l.setAttribute("type", "button"), l.classList.add("filter"), l.setAttribute("data-name", i), l.innerHTML = h.replace("$value", r.value), (!r.value || n) && l.remove(), r.parentNode.closest("[data-filter-text]")) {
2273
+ let u = r.parentNode.closest("[data-filter-text]"), m = !0;
2274
+ if (i = "", u.querySelectorAll("input").forEach((f, b) => {
2275
+ let g = f.getAttribute("name");
2276
+ if (i += `${b != 0 ? "," : ""}${g}`, s.querySelector(`[data-name="${g}"]`) && s.querySelector(`[data-name="${g}"]`).remove(), f.value) {
2277
+ let y = document.createElement("button");
2278
+ y.setAttribute("type", "button"), y.classList.add("filter"), y.setAttribute("data-name", g), y.innerHTML = h.replace("$value", f.value), s.appendChild(y);
2279
+ } else
2280
+ m = !1;
2281
+ }), s.querySelector(`[data-name="${i}"]`) && s.querySelector(`[data-name="${i}"]`).remove(), m) {
2282
+ let f = u.getAttribute("data-filter-text");
2283
+ u.querySelectorAll("input").forEach((g, y) => {
2284
+ let C = g.getAttribute("name");
2285
+ s.querySelector(`[data-name="${C}"]`) && s.querySelector(`[data-name="${C}"]`).remove(), f = f.replace(`$${y + 1}`, g.value);
2286
+ });
2287
+ let b = document.createElement("button");
2288
+ b.setAttribute("type", "button"), b.classList.add("filter"), b.setAttribute("data-name", i), b.innerHTML = f, s.appendChild(b);
2289
+ }
2290
+ }
2291
+ }
2292
+ Array.from(t.querySelectorAll('input[type="checkbox"]:checked')).forEach((s, r) => {
2293
+ e(a, s);
2294
+ }), t.addEventListener("change", function(s) {
2295
+ if (s && s.target instanceof HTMLElement && s.target.closest("input[data-filter-text]")) {
2296
+ let r = s.target.closest("input[data-filter-text]");
2297
+ e(a, r);
2298
+ }
2299
+ }, !1), a.addEventListener("click", function(s) {
2300
+ if (s && s.target instanceof HTMLElement && s.target.closest(".filter")) {
2301
+ let i = s.target.closest(".filter"), l = i.getAttribute("data-name").split(",");
2302
+ for (var r = 0; r < l.length; r++) {
2303
+ let h = l[r], u = `[name="${h}"]`;
2304
+ if (h.match(/\[(.*)\]/)) {
2305
+ let f = h.replace(/\[(.*)\]/, "[]"), b = h.replace(/.*\[(.*)\]/, "$1");
2306
+ u = `[name="${f}"][value="${b}"]`;
2307
+ }
2308
+ let m = t.querySelectorAll(u);
2309
+ for (var n = 0; n < m.length; n++) {
2310
+ let f = m[n];
2311
+ f.getAttribute("type") != "radio" && f.getAttribute("type") != "checkbox" && (m[n].value = ""), m[n].checked = !1;
2312
+ }
2313
+ }
2314
+ i.remove();
2315
+ }
2316
+ }, !1);
2317
+ }
2318
+ const ae = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", Xs = `@import "${ae}/css/components/applied-filters.css";`;
2319
+ class Js extends HTMLElement {
2320
+ constructor() {
2321
+ super(), this.attachShadow({ mode: "open" });
2322
+ let a = this.classList.toString();
2323
+ const e = document.createElement("template");
2324
+ e.innerHTML = `
2325
+ <style>
2326
+ @import "${ae}/css/core.min.css";
2327
+ ${Xs}
2328
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
2329
+ </style>
2330
+ <div class="applied-filters ${a}"></div>
2331
+ <slot></slot>
2332
+ `, this.shadowRoot.appendChild(e.content.cloneNode(!0));
2333
+ }
2334
+ connectedCallback() {
2335
+ Zs(this, this.shadowRoot.querySelector(".applied-filters"));
2336
+ }
2337
+ }
2338
+ window.customElements.get("iam-applied-filters") || window.customElements.define("iam-applied-filters", Js);
2339
+ const ei = {
2340
+ name: "Header"
2341
+ };
2342
+ function ti(t, a, e, s, r, n) {
2343
+ return c(), d("iam-applied-filters", null, [
2344
+ p(t.$slots, "default")
2345
+ ]);
2346
+ }
2347
+ const Si = /* @__PURE__ */ A(ei, [["render", ti]]);
2348
+ function ai(t, a) {
2349
+ si(t, a);
2350
+ }
2351
+ function si(t, a) {
2352
+ var e;
2353
+ a.addEventListener("keyup", (s) => {
2354
+ clearTimeout(e), e = setTimeout(function() {
2355
+ K(t, a.value);
2356
+ }, 500);
2357
+ }), a.addEventListener("change", (s) => {
2358
+ clearTimeout(e), K(t, a.value);
2359
+ });
2360
+ }
2361
+ const K = function(t, a) {
2362
+ Array.from(t.querySelectorAll(":scope > li")).forEach((e, s) => {
2363
+ let r = e.textContent.toLowerCase();
2364
+ e.classList.add("d-none"), r.includes(a.toLowerCase()) && e.classList.remove("d-none");
2365
+ }), window.dataLayer = window.dataLayer || [], window.dataLayer.push({
2366
+ event: "Filtered list",
2367
+ value: a
2368
+ });
2369
+ };
2370
+ window.dataLayer = window.dataLayer || [];
2371
+ window.dataLayer.push({
2372
+ event: "customElementRegistered",
2373
+ element: "filterlist"
2374
+ });
2375
+ class ii extends HTMLElement {
2376
+ constructor() {
2377
+ super(), this.attachShadow({ mode: "open" });
2378
+ const a = document.body.hasAttribute("data-assets-location") ? document.body.getAttribute("data-assets-location") : "/assets", e = document.createElement("template");
2379
+ e.innerHTML = `
2380
+ <style>
2381
+ @import "${a}/css/core.min.css";
2382
+ ${this.hasAttribute("css") ? `@import "${this.getAttribute("css")}";` : ""}
2383
+
2384
+ :host {
2385
+ margin-bottom: 3rem;
2386
+ display:block;
2387
+ }
2388
+ </style>
2389
+ <div class="form-control__wrapper">
2390
+ <label for="search" class="visually-hidden">Search</label>
2391
+ <span class="suffix" role="presentation"><slot name="icon"></slot></span>
2392
+ <input name="search" id="search" type="text" class="form-control" autocomplete="off">
2393
+ </div>
2394
+ <div class="list__wrapper">
2395
+ <slot></slot>
2396
+ </div>
2397
+ `, this.shadowRoot.appendChild(e.content.cloneNode(!0));
2398
+ }
2399
+ connectedCallback() {
2400
+ const a = {
2401
+ small: "12.5rem",
2402
+ medium: "25rem",
2403
+ large: "37.5rem"
2404
+ };
2405
+ let e = this.hasAttribute("data-max-height") && a[this.getAttribute("data-max-height")] ? "list__wrapper--" + this.getAttribute("data-max-height") : "";
2406
+ this.shadowRoot.querySelector(".list__wrapper").classList.add(e), this.querySelector("i.fa-search") || (this.innerHTML += '<i class="fa fa-light fa-search" aria-hidden="true" slot="icon"></i>'), ai(this.querySelector("ul"), this.shadowRoot.querySelector("#search"));
2407
+ }
2408
+ }
2409
+ window.customElements.get("iam-filterlist") || window.customElements.define("iam-filterlist", ii);
2410
+ const li = {
2411
+ name: "Filter list"
2412
+ };
2413
+ function ni(t, a, e, s, r, n) {
2414
+ return c(), d("iam-filterlist", null, [
2415
+ p(t.$slots, "default")
2413
2416
  ]);
2414
2417
  }
2415
- const xi = /* @__PURE__ */ g(si, [["render", oi]]);
2418
+ const Li = /* @__PURE__ */ A(li, [["render", ni]]);
2416
2419
  export {
2417
- fi as Accordion,
2418
- hi as AccordionItem,
2419
- $i as Alert,
2420
- mi as Banner,
2421
- Q as Card,
2422
- Ht as CardDeck,
2423
- _i as Carousel,
2424
- ui as FileUploads,
2425
- yi as Header,
2426
- re as Icon,
2427
- D as Input,
2428
- ue as Logo,
2429
- gi as Modal,
2430
- vi as Nav,
2431
- xi as NoteFeed,
2432
- bi as PropertySearchbar,
2433
- ki as Step,
2434
- wi as Stepper,
2435
- Si as Tab,
2436
- R as Table,
2437
- Ai as Tabs,
2438
- pi as Testimonial
2420
+ ci as Accordion,
2421
+ di as AccordionItem,
2422
+ Ai as Alert,
2423
+ Si as AppliedFilters,
2424
+ ui as Banner,
2425
+ Nt as Card,
2426
+ hi as Carousel,
2427
+ oi as FileUploads,
2428
+ Li as Filterlist,
2429
+ mi as Header,
2430
+ he as Icon,
2431
+ R as Input,
2432
+ _e as Logo,
2433
+ bi as Nav,
2434
+ wi as NoteFeed,
2435
+ yi as PropertySearchbar,
2436
+ pi as Step,
2437
+ _i as Stepper,
2438
+ vi as Tab,
2439
+ ee as Table,
2440
+ gi as Tabs,
2441
+ fi as Testimonial
2439
2442
  };