@iamproperty/components 4.1.1-beta-6 → 4.1.1-beta-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 (46) hide show
  1. package/assets/favicons/README.md +21 -0
  2. package/assets/favicons/android-chrome-192x192.png +0 -0
  3. package/assets/favicons/android-chrome-512x512-bg.png +0 -0
  4. package/assets/favicons/android-chrome-512x512.png +0 -0
  5. package/assets/favicons/apple-touch-icon.png +0 -0
  6. package/assets/favicons/browserconfig.xml +9 -0
  7. package/assets/favicons/favicon-16x16.png +0 -0
  8. package/assets/favicons/favicon-32x32.png +0 -0
  9. package/assets/favicons/favicon.ico +0 -0
  10. package/assets/favicons/mstile-150x150.png +0 -0
  11. package/assets/favicons/safari-pinned-tab.svg +35 -0
  12. package/assets/favicons/site.webmanifest +20 -0
  13. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  14. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  15. package/assets/js/components/address-lookup/address-lookup.component.js +20 -13
  16. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  17. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  18. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  19. package/assets/js/components/card/card.component.min.js +1 -1
  20. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  21. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  22. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  23. package/assets/js/components/header/header.component.min.js +1 -1
  24. package/assets/js/components/nav/nav.component.min.js +1 -1
  25. package/assets/js/components/notification/notification.component.min.js +1 -1
  26. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  27. package/assets/js/components/table/table.component.min.js +1 -1
  28. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  29. package/assets/js/dynamic.min.js +2 -2
  30. package/assets/js/dynamic.min.js.map +1 -1
  31. package/assets/js/modules/dynamicEvents.js +14 -2
  32. package/assets/js/modules/inputs.js +0 -2
  33. package/assets/js/scripts.bundle.js +2 -2
  34. package/assets/js/scripts.bundle.js.map +1 -1
  35. package/assets/js/scripts.bundle.min.js +2 -2
  36. package/assets/js/scripts.bundle.min.js.map +1 -1
  37. package/assets/ts/components/address-lookup/address-lookup.component.ts +26 -17
  38. package/assets/ts/modules/dynamicEvents.ts +23 -6
  39. package/assets/ts/modules/inputs.ts +0 -2
  40. package/dist/README.md +21 -0
  41. package/dist/components.es.js +12 -12
  42. package/dist/components.umd.js +31 -31
  43. package/package.json +1 -1
  44. /package/assets/img/{buyer.png → illustrations/buyer.png} +0 -0
  45. /package/assets/img/{estate-agents.png → illustrations/estate-agents.png} +0 -0
  46. /package/assets/img/{seller.png → illustrations/seller.png} +0 -0
@@ -0,0 +1,21 @@
1
+ # Your Favicon Package
2
+
3
+ This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) [v0.16](https://realfavicongenerator.net/change_log#v0.16)
4
+
5
+ ## Install instructions
6
+
7
+ To install this package:
8
+
9
+ Extract this package in the root of your web site. If your site is <code>http://www.example.com</code>, you should be able to access a file named <code>http://www.example.com/favicon.ico</code>.
10
+
11
+ Insert the following code in the `head` section of your pages:
12
+
13
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
14
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
15
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
16
+ <link rel="manifest" href="/site.webmanifest">
17
+ <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#00313c">
18
+ <meta name="msapplication-TileColor" content="#00aba9">
19
+ <meta name="theme-color" content="#00313c">
20
+
21
+ *Optional* - Check your favicon with the [favicon checker](https://realfavicongenerator.net/favicon_checker)
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square150x150logo src="/mstile-150x150.png"/>
6
+ <TileColor>#00aba9</TileColor>
7
+ </tile>
8
+ </msapplication>
9
+ </browserconfig>
Binary file
Binary file
Binary file
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+ <metadata>
8
+ Created by potrace 1.14, written by Peter Selinger 2001-2017
9
+ </metadata>
10
+ <g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
11
+ fill="#000000" stroke="none">
12
+ <path d="M900 3600 c-87 -24 -144 -96 -143 -181 3 -166 197 -247 314 -130 66
13
+ 65 74 160 21 235 -42 60 -127 94 -192 76z"/>
14
+ <path d="M1663 3115 c-200 -47 -374 -233 -417 -445 -13 -64 -14 -184 -2 -249
15
+ 34 -178 161 -344 323 -418 61 -28 186 -55 225 -48 13 2 42 6 65 9 60 7 140 43
16
+ 206 92 31 24 59 44 61 44 2 0 2 -15 1 -32 -2 -18 3 -43 11 -55 14 -22 21 -23
17
+ 138 -23 102 0 126 3 137 16 11 14 14 112 14 532 1 464 -1 517 -16 536 -15 18
18
+ -29 20 -125 21 -149 2 -161 -5 -160 -87 l1 -37 -35 33 c-46 44 -105 80 -166
19
+ 101 -62 21 -193 27 -261 10z m267 -291 c65 -23 127 -81 160 -149 21 -42 25
20
+ -64 24 -135 0 -71 -4 -93 -26 -136 -40 -76 -116 -139 -193 -159 -142 -37 -285
21
+ 30 -357 167 -18 35 -22 60 -22 128 -1 73 3 92 26 136 76 144 232 204 388 148z"/>
22
+ <path d="M3120 3106 c-68 -19 -133 -53 -179 -92 l-41 -36 0 39 c0 71 -10 75
23
+ -150 75 -107 -1 -126 -3 -137 -18 -10 -14 -13 -129 -13 -535 0 -457 2 -519 16
24
+ -533 23 -23 245 -23 268 0 14 13 16 57 17 317 0 166 3 313 5 327 15 81 92 169
25
+ 164 188 88 22 197 -9 243 -70 57 -74 60 -96 63 -436 2 -226 6 -317 14 -327 10
26
+ -12 40 -15 136 -15 112 0 124 2 137 20 11 16 14 78 14 318 1 323 5 357 54 429
27
+ 71 102 230 120 328 37 83 -71 90 -110 92 -478 1 -246 4 -299 16 -311 22 -22
28
+ 245 -21 267 1 14 13 16 61 16 374 0 327 -2 363 -20 421 -60 196 -233 323 -431
29
+ 318 -158 -4 -263 -42 -350 -129 l-55 -55 -55 56 c-58 61 -115 94 -194 115 -62
30
+ 17 -165 16 -225 0z"/>
31
+ <path d="M820 3088 c-10 -4 -21 -12 -25 -18 -3 -6 -7 -245 -7 -531 0 -392 3
32
+ -523 12 -534 10 -12 40 -15 136 -15 117 0 124 1 138 23 13 18 15 100 15 522 0
33
+ 336 -3 509 -11 528 -8 21 -17 27 -42 28 -166 3 -200 3 -216 -3z"/>
34
+ </g>
35
+ </svg>
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "iamproperty",
3
+ "short_name": "iamproperty",
4
+ "icons": [
5
+ {
6
+ "src": "/android-chrome-192x192.png",
7
+ "sizes": "192x192",
8
+ "type": "image/png"
9
+ },
10
+ {
11
+ "src": "/android-chrome-512x512.png",
12
+ "sizes": "512x512",
13
+ "type": "image/png"
14
+ }
15
+ ],
16
+ "theme_color": "#00313c",
17
+ "background_color": "#00313c",
18
+ "start_url": "https://iamproperty.github.io",
19
+ "display": "standalone"
20
+ }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */function n(r){let a=r.querySelectorAll("details"),e=r.querySelectorAll("summary");if(a.forEach(o=>{o.classList.add("accordion-item")}),e.forEach(o=>{o.classList.add("accordion-header"),o.classList.add("accordion-button"),o.classList.add("h4")}),!r.classList.contains("accordion--keep-open")){const o=r.querySelectorAll(":scope > details");o.forEach(c=>{c.addEventListener("click",()=>{o.forEach(i=>{i!==c&&i.removeAttribute("open")})})})}}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"accordion"});class t extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const a=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${a}/css/core.min.css`,o=document.createElement("template");o.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */const A=function(o){typeof window.player<"u"&&typeof window.player.pauseVideo=="function"&&window.player.pauseVideo();var e=o.getAttribute("data-id"),n=o.getAttribute("id");if(typeof n>"u"||n==null){var c=String.fromCharCode(65+Math.floor(Math.random()*26));n=c+Date.now(),o.setAttribute("id",n)}function s(){window.player=new YT.Player(n,{height:"100%",width:"100%",videoId:e,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:i,onStateChange:a}})}s();function i(r){r.target.playVideo()}var t=!1;function a(r){if(r.data==YT.PlayerState.PLAYING&&!t){var d=document.getElementById(n);d.classList.add("player-ready"),t=!0}}},v=o=>(Array.from(o.querySelectorAll("dialog[open]")).forEach((e,n)=>{e.closest(".dialog__wrapper")||(e.removeAttribute("open"),e.showModal(),e.focus(),g(e))}),o.addEventListener("click",e=>{if(e.target.tagName=="IAM-ACTIONBAR")return!1;if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-modal]")){const s=e.target.closest("[data-modal]"),i=s.hasAttribute("data-modal")?s.getAttribute("data-modal"):s.getAttribute("data-filter"),t=document.querySelector(`dialog#${i}`);g(t),t.showModal(),t.focus();let a=t.offsetWidth;t.setAttribute("style",`max-width: ${a}px;`),Array.from(t.querySelectorAll("[data-duplicate]")).forEach((r,d)=>{const p=r.getAttribute("data-duplicate"),l=document.getElementById(p);if(r.checked!=l.checked){r.checked=l.checked;let f=new Event("change");r.dispatchEvent(f)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:i})}if(e&&e.target instanceof HTMLElement&&e.target.closest("button.dialog__close")){const s=e.target.closest("dialog[open]");e.preventDefault(),s.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((i,t)=>{i.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest('button[formmethod="dialog"]')){const s=e.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((i,t)=>{i.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest("dialog[open]")){let s=e.target.closest("dialog[open]");var n=window.getComputedStyle(s);if(n.display==="contents"&&(s=s.parentNode.closest("dialog[open]")),!s.querySelector(":scope > .mh-lg > form:last-child > button:last-child, :scope > .mh-lg > button:last-child")||s.classList.contains("dialog--multi")){const i=s.getBoundingClientRect();(e.clientX<i.left||e.clientX>i.right||e.clientY<i.top||e.clientY>i.bottom)&&(e.target.closest('input[type="radio"]')||s.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")}))}}if(e&&e.target instanceof HTMLElement&&e.target.closest(".dialog__wrapper > button")){e.stopPropagation();let s=e.target.closest(".dialog__wrapper > button"),i=e.target.closest(".dialog__wrapper > button").parentNode,t="openPopover",a=i.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=a&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((l,f)=>{l.classList.remove("active")}),a.hasAttribute("open"))a.close(),t="closePopover",a.removeAttribute("style"),s.classList.remove("active");else{a.show(),s.classList.add("active");var c=s.getBoundingClientRect();let l=c.top,f=c.left;if(s.closest("iam-table")){let b=s.closest("iam-table").parentNode.getBoundingClientRect();l-=b.top,f-=b.left}a.classList.contains("dialog--fix")&&a.setAttribute("style",`position:fixed;top: ${l}px; left: ${f}px; margin: 3rem 0 0 0;`)}let r=a.getBoundingClientRect(),d=r.bottom-window.scrollY,p=window.innerHeight-window.scrollY;if(d>p){let l=a.hasAttribute("style")?a.getAttribute("style")+" ":"";a.setAttribute("style",l+"transform: translate(0, calc(-100% - 4rem))"),r=a.getBoundingClientRect(),r.top-window.scrollY<100&&a.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:t,id:s.textContent})}e&&e.target instanceof HTMLElement&&!e.target.closest("dialog[open]")&&!e.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach((s,i)=>{s.classList.remove("active")}))}),null),g=o=>{o.querySelector(":scope > .mh-lg > form:last-child > button:last-child, :scope > .mh-lg > button:last-child")&&!o.classList.contains("dialog--multi")&&o.addEventListener("cancel",n=>{n.preventDefault()});let e=o.querySelector(".youtube-embed a");if(e&&A(e),o.classList.contains("dialog--multi")&&!o.querySelector(":scope > .steps")&&L(o),!o.querySelector(":scope > .mh-lg")&&!o.classList.contains("dialog--multi")){o.innerHTML=`<div class="mh-lg">${o.innerHTML}</div>`;let n=o.querySelector(".mh-lg"),c=o.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(c){let s=c.previousSibling;n.before(c),s&&c.before(s)}}o.querySelector(":scope > button:first-child")||o.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')},L=o=>{let e="",n=Array.from(o.querySelectorAll("fieldset[data-title]")),c=o.querySelector("form");n.forEach((t,a)=>{e+=`<button data-title="${t.getAttribute("data-title")}" type="button" class="${a==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`;const r=document.createElement("div");if(r.classList.add("btn--wrapper"),t.appendChild(r),a!=0&&(r.innerHTML+=`<button data-title="${n[a-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),a!=n.length-1&&(r.innerHTML+=`<button data-title="${n[a+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),a==n.length-1)if(c&&c.querySelector(':scope > button[type="submit"]')){let d=c.querySelector(':scope > button[type="submit"]');d.classList.add("mb-0"),r.insertAdjacentElement("beforeend",d)}else r.innerHTML+=`<button data-title="${n[a].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`}),o.insertAdjacentHTML("afterbegin",`<div class="steps bg-primary">${e}</div>`);let s=Array.from(o.querySelectorAll("fieldset.was-validated"));for(let t=0;t<s.length;t++){let a=s[t],r=a.getAttribute("data-title");if(a.querySelector(".is-invalid")){Array.from(o.querySelectorAll(`[data-title="${r}"]`)).forEach((d,p)=>{d.classList.add("active")});break}else Array.from(o.querySelectorAll(`[data-title="${r}"]`)).forEach((d,p)=>{d.classList.add("valid")})}o.addEventListener("invalid",function(){return function(t){t.preventDefault()}}(),!0);function i(t){const a=o.querySelector("fieldset.active")?o.querySelector("fieldset.active"):o.querySelector("fieldset[data-title]"),r=a.getAttribute("data-title");let d=!0;if(a.classList.add("was-validated"),Array.from(a.querySelectorAll("input")).forEach((f,b)=>{f.checkValidity()||(d=!1)}),d?Array.from(o.querySelectorAll(`[data-title="${r}"]`)).forEach((f,b)=>{f.classList.add("valid")}):Array.from(o.querySelectorAll(`[data-title="${r}"]`)).forEach((f,b)=>{f.classList.remove("valid")}),d||!t.hasAttribute("data-next")){const f=o.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),b=o.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(o.querySelectorAll("button")).forEach((h,m)=>{h.classList.remove("active")}),Array.from(o.querySelectorAll("fieldset")).forEach((h,m)=>{h.classList.remove("active")}),b.classList.add("active"),f.classList.add("active")}let p=Array.from(o.querySelectorAll("fieldset")).length,l=Array.from(o.querySelectorAll("fieldset.valid")).length;o.style.setProperty("--progress",`${l/(p-1)*100}%`)}o.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const a=t.target.closest("button");t.keyCode==13&&a.getAttribute("type")!="submit"&&(t.preventDefault(),i(a))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),o.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]'))t.target.closest("form").classList.add("was-validated");else if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const a=t.target.closest("button[data-title]");i(a)}return null})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"action bar"});function w(o,e){o&&e=="all"?(o.querySelector("input").indeterminate=!1,o.querySelector("input").checked=!0,o.querySelector("label").textContent="Select all"):o&&e==0?(o.querySelector("input").indeterminate=!1,o.querySelector("input").checked=!1,o.querySelector("label").textContent="Select all"):o&&e?(o.querySelector("input").indeterminate=!0,o.querySelector("input").checked=!1,o.querySelector("label").textContent=`${e} item${e>1?"s":""} selected`):o&&(o.querySelector("input").checked=!1,o.querySelector("input").indeterminate=!1,o.querySelector("label").textContent="Select all")}class S extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",n=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,c=document.createElement("template");c.innerHTML=`
5
5
  <style>
@@ -71,24 +71,31 @@ class iamAddressLookup extends HTMLElement {
71
71
  const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');
72
72
  const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');
73
73
  const title = this.hasAttribute('data-title') ? this.getAttribute('data-title') : "Property address";
74
- let preFilled = true;
75
- const preFilledAddress = this.shadowRoot.querySelector('.pre-filled-address');
76
74
  const preFilledAddressBtn = this.shadowRoot.querySelector('.pre-filled-address + button');
77
75
  Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement, index) => {
78
76
  titleElement.innerHTML = title;
79
77
  });
80
- Array.from(this.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {
81
- if (!input.value)
82
- preFilled = false;
83
- else
84
- preFilledAddress.innerHTML += ', ' + input.value;
85
- });
86
- preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);
87
- if (preFilled) {
88
- preFilledWrapper.classList.remove('js-hide');
89
- lookupWrapper.classList.add('js-hide');
90
- manualWrapper.classList.add('js-hide');
78
+ function checkFilled(component) {
79
+ let preFilledAddress = component.shadowRoot.querySelector('.pre-filled-address');
80
+ let preFilled = true;
81
+ preFilledAddress.innerHTML = "";
82
+ Array.from(component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {
83
+ if (!input.value)
84
+ preFilled = false;
85
+ else
86
+ preFilledAddress.innerHTML += ', ' + input.value;
87
+ });
88
+ preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);
89
+ if (preFilled) {
90
+ preFilledWrapper.classList.remove('js-hide');
91
+ lookupWrapper.classList.add('js-hide');
92
+ manualWrapper.classList.add('js-hide');
93
+ }
91
94
  }
95
+ checkFilled(this);
96
+ this.addEventListener('filled', (event) => {
97
+ checkFilled(this);
98
+ });
92
99
  if (this.hasAttribute('data-use')) {
93
100
  let useLabel = this.hasAttribute('data-use-label') ? this.getAttribute('data-use-label') : 'Use saved address';
94
101
  let useCheckbox = `<div><input type="checkbox" name="use" id="use" value="yes"><label for="use">${useLabel}</label></div>`;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
- */import A from"js-cookie";var L=function(y,r,s,e){function m(l){return l instanceof s?l:new s(function(u){u(l)})}return new(s||(s=Promise))(function(l,u){function f(i){try{p(e.next(i))}catch(h){u(h)}}function v(i){try{p(e.throw(i))}catch(h){u(h)}}function p(i){i.done?l(i.value):m(i.value).then(f,v)}p((e=e.apply(y,r||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Address Lookup"});class g extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const r=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",s=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${r}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
4
+ */import S from"js-cookie";var q=function(y,r,o,a){function m(n){return n instanceof o?n:new o(function(u){u(n)})}return new(o||(o=Promise))(function(n,u){function b(l){try{h(a.next(l))}catch(p){u(p)}}function v(l){try{h(a.throw(l))}catch(p){u(p)}}function h(l){l.done?n(l.value):m(l.value).then(b,v)}h((a=a.apply(y,r||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Address Lookup"});class A extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const r=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",o=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${r}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
5
5
  <style>
6
- @import "${s}";
6
+ @import "${o}";
7
7
  :host{margin-bottom:1rem;display:block}input[name=postcode]{border-color:var(--error-border, var(--colour-primary)) !important}div:has(input[name=postcode]) .suffix{border-color:var(--error-border, var(--colour-primary)) !important}.invalid-feedback{display:var(--error-display, none) !important}.optional{display:var(--req-display, inline-block) !important}.pre-filled p{padding-bottom:1rem}.pre-filled button{border:none;background:none;cursor:pointer}/*# sourceMappingURL=assets/css/components/address-lookup.css.map */
8
8
 
9
9
 
@@ -36,5 +36,5 @@
36
36
  <p><span class="pre-filled-address"></span><button class="text-primary text-decoration-none ms-1 cursor-pointer"><i class="fa-regular fa-pen-to-square"></i><span class="visually-hidden">Edit</span></button></p>
37
37
  </div>
38
38
  </div>
39
- `,this.shadowRoot.appendChild(e.content.cloneNode(!0))}connectedCallback(){return L(this,void 0,void 0,function*(){this.shadowRoot.querySelector(".wrapper");const r=this.shadowRoot.querySelector('[name="postcode"]'),s=this.shadowRoot.querySelector(".postcode-lookup"),e=this.shadowRoot.querySelector(".manual-address"),m=this.shadowRoot.querySelector(".pre-filled"),l=this.shadowRoot.querySelector("datalist"),u=this.shadowRoot.querySelector(".switch-to-manual-btn"),f=this.shadowRoot.querySelector(".switch-to-lookup-btn"),v=this.hasAttribute("data-title")?this.getAttribute("data-title"):"Property address";let p=!0;const i=this.shadowRoot.querySelector(".pre-filled-address"),h=this.shadowRoot.querySelector(".pre-filled-address + button");if(Array.from(this.shadowRoot.querySelectorAll(".title")).forEach((t,a)=>{t.innerHTML=v}),Array.from(this.querySelectorAll("input[required],input[data-required],select[required],select[data-required]")).forEach((t,a)=>{t.value?i.innerHTML+=", "+t.value:p=!1}),i.innerHTML=i.innerHTML.slice(1),p&&(m.classList.remove("js-hide"),s.classList.add("js-hide"),e.classList.add("js-hide")),this.hasAttribute("data-use")){let a=`<div><input type="checkbox" name="use" id="use" value="yes"><label for="use">${this.hasAttribute("data-use-label")?this.getAttribute("data-use-label"):"Use saved address"}</label></div>`;s.insertAdjacentHTML("afterbegin",a),this.shadowRoot.addEventListener("change",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest('[name="use"]')&&o.target.closest('[name="use"]').checked){s.classList.add("js-hide"),e.classList.remove("js-hide");let d=JSON.parse(this.getAttribute("data-use"));Object.keys(d).forEach((c,S)=>{let b=d[c];this.querySelector(`[data-name="${c}"]`)?this.querySelector(`[data-name="${c}"]`).value=b:this.querySelector(`[name="${c}"]`)&&(this.querySelector(`[name="${c}"]`).value=b)})}})}function w(){s.classList.add("js-hide"),e.classList.remove("js-hide"),Array.from(e.querySelectorAll("[data-required]")).forEach((t,a)=>{t.setAttribute("required","true")}),e.scrollIntoView()}h.addEventListener("click",t=>{m.classList.add("js-hide"),w()}),u.addEventListener("click",t=>{w()}),f.addEventListener("click",t=>{s.classList.remove("js-hide"),e.classList.add("js-hide"),s.scrollIntoView()}),r.addEventListener("keyup",t=>{r.value.length>=3&&q(r.value)}),r.addEventListener("change",t=>{if(r.value.length>=3&&(q(r.value),l.querySelector(`[value="${r.value}"]`))){s.classList.add("js-hide"),e.classList.remove("js-hide");let a=JSON.parse(l.querySelector(`[value="${r.value}"]`).getAttribute("data-values"));Object.keys(a).forEach((o,n)=>{let d=a[o];this.querySelector(`[data-name="${o}"]`)?this.querySelector(`[data-name="${o}"]`).value=d:this.querySelector(`[name="${o}"]`)&&(this.querySelector(`[name="${o}"]`).value=d)}),this.querySelector('[data-name="address_1"]').focus(),Array.from(this.querySelectorAll("[data-required]")).forEach((o,n)=>{o.setAttribute("required","true")}),r.removeAttribute("required"),this.shadowRoot.querySelector('[name="use"]')&&(this.shadowRoot.querySelector('[name="use"]').checked=!1)}});const q=t=>L(this,void 0,void 0,function*(){let a=this.getAttribute("data-url");a+=`${encodeURI(t)}`,window.controller||(window.controller=[]),window.controller[a]&&window.controller[a].abort(),window.controller[a]=new AbortController;const{signal:o}=controller[a];try{yield fetch(a,{signal:o,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":A.get("XSRF-TOKEN")})}).then(n=>n.json()).then(n=>{let d="";return n.forEach((c,S)=>{let b=JSON.stringify(c.value);d+=`<option value="${c.label}, ${t}" data-values='${b}'></option>`}),l.innerHTML=d,n})}catch(n){console.log(n)}})})}}export{g as default};
39
+ `,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){return q(this,void 0,void 0,function*(){this.shadowRoot.querySelector(".wrapper");const r=this.shadowRoot.querySelector('[name="postcode"]'),o=this.shadowRoot.querySelector(".postcode-lookup"),a=this.shadowRoot.querySelector(".manual-address"),m=this.shadowRoot.querySelector(".pre-filled"),n=this.shadowRoot.querySelector("datalist"),u=this.shadowRoot.querySelector(".switch-to-manual-btn"),b=this.shadowRoot.querySelector(".switch-to-lookup-btn"),v=this.hasAttribute("data-title")?this.getAttribute("data-title"):"Property address",h=this.shadowRoot.querySelector(".pre-filled-address + button");Array.from(this.shadowRoot.querySelectorAll(".title")).forEach((s,e)=>{s.innerHTML=v});function l(s){let e=s.shadowRoot.querySelector(".pre-filled-address"),t=!0;e.innerHTML="",Array.from(s.querySelectorAll("input[required],input[data-required],select[required],select[data-required]")).forEach((i,d)=>{i.value?e.innerHTML+=", "+i.value:t=!1}),e.innerHTML=e.innerHTML.slice(1),t&&(m.classList.remove("js-hide"),o.classList.add("js-hide"),a.classList.add("js-hide"))}if(l(this),this.addEventListener("filled",s=>{l(this)}),this.hasAttribute("data-use")){let e=`<div><input type="checkbox" name="use" id="use" value="yes"><label for="use">${this.hasAttribute("data-use-label")?this.getAttribute("data-use-label"):"Use saved address"}</label></div>`;o.insertAdjacentHTML("afterbegin",e),this.shadowRoot.addEventListener("change",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest('[name="use"]')&&t.target.closest('[name="use"]').checked){o.classList.add("js-hide"),a.classList.remove("js-hide");let d=JSON.parse(this.getAttribute("data-use"));Object.keys(d).forEach((c,L)=>{let f=d[c];this.querySelector(`[data-name="${c}"]`)?this.querySelector(`[data-name="${c}"]`).value=f:this.querySelector(`[name="${c}"]`)&&(this.querySelector(`[name="${c}"]`).value=f)})}})}function p(){o.classList.add("js-hide"),a.classList.remove("js-hide"),Array.from(a.querySelectorAll("[data-required]")).forEach((s,e)=>{s.setAttribute("required","true")}),a.scrollIntoView()}h.addEventListener("click",s=>{m.classList.add("js-hide"),p()}),u.addEventListener("click",s=>{p()}),b.addEventListener("click",s=>{o.classList.remove("js-hide"),a.classList.add("js-hide"),o.scrollIntoView()}),r.addEventListener("keyup",s=>{r.value.length>=3&&w(r.value)}),r.addEventListener("change",s=>{if(r.value.length>=3&&(w(r.value),n.querySelector(`[value="${r.value}"]`))){o.classList.add("js-hide"),a.classList.remove("js-hide");let e=JSON.parse(n.querySelector(`[value="${r.value}"]`).getAttribute("data-values"));Object.keys(e).forEach((t,i)=>{let d=e[t];this.querySelector(`[data-name="${t}"]`)?this.querySelector(`[data-name="${t}"]`).value=d:this.querySelector(`[name="${t}"]`)&&(this.querySelector(`[name="${t}"]`).value=d)}),this.querySelector('[data-name="address_1"]').focus(),Array.from(this.querySelectorAll("[data-required]")).forEach((t,i)=>{t.setAttribute("required","true")}),r.removeAttribute("required"),this.shadowRoot.querySelector('[name="use"]')&&(this.shadowRoot.querySelector('[name="use"]').checked=!1)}});const w=s=>q(this,void 0,void 0,function*(){let e=this.getAttribute("data-url");e+=`${encodeURI(s)}`,window.controller||(window.controller=[]),window.controller[e]&&window.controller[e].abort(),window.controller[e]=new AbortController;const{signal:t}=controller[e];try{yield fetch(e,{signal:t,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":S.get("XSRF-TOKEN")})}).then(i=>i.json()).then(i=>{let d="";return i.forEach((c,L)=>{let f=JSON.stringify(c.value);d+=`<option value="${c.label}, ${s}" data-values='${f}'></option>`}),n.innerHTML=d,i})}catch(i){console.log(i)}})})}}export{A as default};
40
40
  //# sourceMappingURL=address-lookup.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"address-lookup.component.min.js","sources":["address-lookup.component.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport Cookies from 'js-cookie';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Address Lookup\"\n});\nclass iamAddressLookup extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/address-lookup.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n <div class=\"wrapper\">\n\n <div class=\"postcode-lookup\">\n <div>\n <label class=\"mb-2\">Search <span class=\"title text-lowercase\"></span> <span class=\"optional\">(Optional)</span>\n <span>\n <input type=\"text\" name=\"postcode\" list=\"address-lookup__addressess\" autoComplete=\"new-password\" aria-autocomplete=\"none\" placeholder=\"Postcode\" />\n <span class=\"suffix fa-regular fa-search\"></span>\n </span>\n <span class=\"invalid-feedback\">Required Adddress fields missing</span>\n </label>\n\n </div>\n <button class=\"btn btn-tertiary switch-to-manual-btn\">Or enter address manually</button>\n </div>\n <datalist id=\"address-lookup__addressess\"></datalist>\n\n <div class=\"manual-address pb-2 js-hide\">\n <slot></slot>\n <button class=\"btn btn-tertiary switch-to-lookup-btn\">Use postcode lookup</button>\n </div>\n <div class=\"pre-filled pb-2 js-hide\">\n <strong class=\"title text-primary d-block\"></strong>\n <p><span class=\"pre-filled-address\"></span><button class=\"text-primary text-decoration-none ms-1 cursor-pointer\"><i class=\"fa-regular fa-pen-to-square\"></i><span class=\"visually-hidden\">Edit</span></button></p>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const lookup = this.shadowRoot.querySelector('[name=\"postcode\"]');\n const lookupWrapper = this.shadowRoot.querySelector('.postcode-lookup');\n const manualWrapper = this.shadowRoot.querySelector('.manual-address');\n const preFilledWrapper = this.shadowRoot.querySelector('.pre-filled');\n const list = this.shadowRoot.querySelector('datalist');\n const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');\n const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');\n const title = this.hasAttribute('data-title') ? this.getAttribute('data-title') : \"Property address\";\n let preFilled = true;\n const preFilledAddress = this.shadowRoot.querySelector('.pre-filled-address');\n const preFilledAddressBtn = this.shadowRoot.querySelector('.pre-filled-address + button');\n Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement, index) => {\n titleElement.innerHTML = title;\n });\n Array.from(this.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {\n if (!input.value)\n preFilled = false;\n else\n preFilledAddress.innerHTML += ', ' + input.value;\n });\n preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);\n if (preFilled) {\n preFilledWrapper.classList.remove('js-hide');\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.add('js-hide');\n }\n if (this.hasAttribute('data-use')) {\n let useLabel = this.hasAttribute('data-use-label') ? this.getAttribute('data-use-label') : 'Use saved address';\n let useCheckbox = `<div><input type=\"checkbox\" name=\"use\" id=\"use\" value=\"yes\"><label for=\"use\">${useLabel}</label></div>`;\n lookupWrapper.insertAdjacentHTML('afterbegin', useCheckbox);\n this.shadowRoot.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('[name=\"use\"]')) {\n let checkbox = event.target.closest('[name=\"use\"]');\n if (checkbox.checked) {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n let values = JSON.parse(this.getAttribute('data-use'));\n Object.keys(values).forEach((key, index) => {\n let value = values[key];\n if (this.querySelector(`[data-name=\"${key}\"]`))\n this.querySelector(`[data-name=\"${key}\"]`).value = value;\n else if (this.querySelector(`[name=\"${key}\"]`))\n this.querySelector(`[name=\"${key}\"]`).value = value;\n });\n }\n }\n });\n }\n function openManualWrapper() {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {\n input.setAttribute('required', 'true');\n });\n manualWrapper.scrollIntoView();\n }\n preFilledAddressBtn.addEventListener('click', (event) => {\n preFilledWrapper.classList.add('js-hide');\n openManualWrapper();\n });\n switchManualBtn.addEventListener('click', (event) => {\n openManualWrapper();\n });\n switchLookupBtn.addEventListener('click', (event) => {\n lookupWrapper.classList.remove('js-hide');\n manualWrapper.classList.add('js-hide');\n lookupWrapper.scrollIntoView();\n });\n lookup.addEventListener('keyup', (event) => {\n if (lookup.value.length >= 3)\n search(lookup.value);\n });\n lookup.addEventListener('change', (event) => {\n if (lookup.value.length >= 3) {\n search(lookup.value);\n if (list.querySelector(`[value=\"${lookup.value}\"]`)) {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n let values = JSON.parse(list.querySelector(`[value=\"${lookup.value}\"]`).getAttribute('data-values'));\n Object.keys(values).forEach((key, index) => {\n let value = values[key];\n if (this.querySelector(`[data-name=\"${key}\"]`))\n this.querySelector(`[data-name=\"${key}\"]`).value = value;\n else if (this.querySelector(`[name=\"${key}\"]`))\n this.querySelector(`[name=\"${key}\"]`).value = value;\n });\n // Focus on first input\n this.querySelector('[data-name=\"address_1\"]').focus();\n Array.from(this.querySelectorAll('[data-required]')).forEach((input, index) => {\n input.setAttribute('required', 'true');\n });\n lookup.removeAttribute('required');\n if (this.shadowRoot.querySelector('[name=\"use\"]'))\n this.shadowRoot.querySelector('[name=\"use\"]').checked = false;\n }\n }\n });\n const search = (postcode) => __awaiter(this, void 0, void 0, function* () {\n let ajaxURL = this.getAttribute('data-url');\n ajaxURL += `${encodeURI(postcode)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[ajaxURL])\n window.controller[ajaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[ajaxURL] = new AbortController();\n const { signal } = controller[ajaxURL];\n try {\n yield fetch(ajaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN')\n })\n })\n .then((response) => response.json()).then((response) => {\n // populate datalist\n let listString = '';\n response.forEach((address, index) => {\n let values = JSON.stringify(address.value);\n listString += `<option value=\"${address['label']}, ${postcode}\" data-values='${values}'></option>`;\n });\n list.innerHTML = listString;\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n });\n });\n }\n}\nexport default iamAddressLookup;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamAddressLookup","assetLocation","coreCSS","template","lookup","lookupWrapper","manualWrapper","preFilledWrapper","list","switchManualBtn","switchLookupBtn","title","preFilled","preFilledAddress","preFilledAddressBtn","titleElement","index","input","useCheckbox","event","values","key","openManualWrapper","search","postcode","ajaxURL","signal","Cookies","response","listString","address","error"],"mappings":"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"}
1
+ {"version":3,"file":"address-lookup.component.min.js","sources":["address-lookup.component.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport Cookies from 'js-cookie';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Address Lookup\"\n});\nclass iamAddressLookup extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/address-lookup.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n <div class=\"wrapper\">\n\n <div class=\"postcode-lookup\">\n <div>\n <label class=\"mb-2\">Search <span class=\"title text-lowercase\"></span> <span class=\"optional\">(Optional)</span>\n <span>\n <input type=\"text\" name=\"postcode\" list=\"address-lookup__addressess\" autoComplete=\"new-password\" aria-autocomplete=\"none\" placeholder=\"Postcode\" />\n <span class=\"suffix fa-regular fa-search\"></span>\n </span>\n <span class=\"invalid-feedback\">Required Adddress fields missing</span>\n </label>\n\n </div>\n <button class=\"btn btn-tertiary switch-to-manual-btn\">Or enter address manually</button>\n </div>\n <datalist id=\"address-lookup__addressess\"></datalist>\n\n <div class=\"manual-address pb-2 js-hide\">\n <slot></slot>\n <button class=\"btn btn-tertiary switch-to-lookup-btn\">Use postcode lookup</button>\n </div>\n <div class=\"pre-filled pb-2 js-hide\">\n <strong class=\"title text-primary d-block\"></strong>\n <p><span class=\"pre-filled-address\"></span><button class=\"text-primary text-decoration-none ms-1 cursor-pointer\"><i class=\"fa-regular fa-pen-to-square\"></i><span class=\"visually-hidden\">Edit</span></button></p>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const lookup = this.shadowRoot.querySelector('[name=\"postcode\"]');\n const lookupWrapper = this.shadowRoot.querySelector('.postcode-lookup');\n const manualWrapper = this.shadowRoot.querySelector('.manual-address');\n const preFilledWrapper = this.shadowRoot.querySelector('.pre-filled');\n const list = this.shadowRoot.querySelector('datalist');\n const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');\n const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');\n const title = this.hasAttribute('data-title') ? this.getAttribute('data-title') : \"Property address\";\n const preFilledAddressBtn = this.shadowRoot.querySelector('.pre-filled-address + button');\n Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement, index) => {\n titleElement.innerHTML = title;\n });\n function checkFilled(component) {\n let preFilledAddress = component.shadowRoot.querySelector('.pre-filled-address');\n let preFilled = true;\n preFilledAddress.innerHTML = \"\";\n Array.from(component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {\n if (!input.value)\n preFilled = false;\n else\n preFilledAddress.innerHTML += ', ' + input.value;\n });\n preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);\n if (preFilled) {\n preFilledWrapper.classList.remove('js-hide');\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.add('js-hide');\n }\n }\n checkFilled(this);\n this.addEventListener('filled', (event) => {\n checkFilled(this);\n });\n if (this.hasAttribute('data-use')) {\n let useLabel = this.hasAttribute('data-use-label') ? this.getAttribute('data-use-label') : 'Use saved address';\n let useCheckbox = `<div><input type=\"checkbox\" name=\"use\" id=\"use\" value=\"yes\"><label for=\"use\">${useLabel}</label></div>`;\n lookupWrapper.insertAdjacentHTML('afterbegin', useCheckbox);\n this.shadowRoot.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('[name=\"use\"]')) {\n let checkbox = event.target.closest('[name=\"use\"]');\n if (checkbox.checked) {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n let values = JSON.parse(this.getAttribute('data-use'));\n Object.keys(values).forEach((key, index) => {\n let value = values[key];\n if (this.querySelector(`[data-name=\"${key}\"]`))\n this.querySelector(`[data-name=\"${key}\"]`).value = value;\n else if (this.querySelector(`[name=\"${key}\"]`))\n this.querySelector(`[name=\"${key}\"]`).value = value;\n });\n }\n }\n });\n }\n function openManualWrapper() {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {\n input.setAttribute('required', 'true');\n });\n manualWrapper.scrollIntoView();\n }\n preFilledAddressBtn.addEventListener('click', (event) => {\n preFilledWrapper.classList.add('js-hide');\n openManualWrapper();\n });\n switchManualBtn.addEventListener('click', (event) => {\n openManualWrapper();\n });\n switchLookupBtn.addEventListener('click', (event) => {\n lookupWrapper.classList.remove('js-hide');\n manualWrapper.classList.add('js-hide');\n lookupWrapper.scrollIntoView();\n });\n lookup.addEventListener('keyup', (event) => {\n if (lookup.value.length >= 3)\n search(lookup.value);\n });\n lookup.addEventListener('change', (event) => {\n if (lookup.value.length >= 3) {\n search(lookup.value);\n if (list.querySelector(`[value=\"${lookup.value}\"]`)) {\n lookupWrapper.classList.add('js-hide');\n manualWrapper.classList.remove('js-hide');\n let values = JSON.parse(list.querySelector(`[value=\"${lookup.value}\"]`).getAttribute('data-values'));\n Object.keys(values).forEach((key, index) => {\n let value = values[key];\n if (this.querySelector(`[data-name=\"${key}\"]`))\n this.querySelector(`[data-name=\"${key}\"]`).value = value;\n else if (this.querySelector(`[name=\"${key}\"]`))\n this.querySelector(`[name=\"${key}\"]`).value = value;\n });\n // Focus on first input\n this.querySelector('[data-name=\"address_1\"]').focus();\n Array.from(this.querySelectorAll('[data-required]')).forEach((input, index) => {\n input.setAttribute('required', 'true');\n });\n lookup.removeAttribute('required');\n if (this.shadowRoot.querySelector('[name=\"use\"]'))\n this.shadowRoot.querySelector('[name=\"use\"]').checked = false;\n }\n }\n });\n const search = (postcode) => __awaiter(this, void 0, void 0, function* () {\n let ajaxURL = this.getAttribute('data-url');\n ajaxURL += `${encodeURI(postcode)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[ajaxURL])\n window.controller[ajaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[ajaxURL] = new AbortController();\n const { signal } = controller[ajaxURL];\n try {\n yield fetch(ajaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN')\n })\n })\n .then((response) => response.json()).then((response) => {\n // populate datalist\n let listString = '';\n response.forEach((address, index) => {\n let values = JSON.stringify(address.value);\n listString += `<option value=\"${address['label']}, ${postcode}\" data-values='${values}'></option>`;\n });\n list.innerHTML = listString;\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n });\n });\n }\n}\nexport default iamAddressLookup;\n"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamAddressLookup","assetLocation","coreCSS","template","lookup","lookupWrapper","manualWrapper","preFilledWrapper","list","switchManualBtn","switchLookupBtn","title","preFilledAddressBtn","titleElement","index","checkFilled","component","preFilledAddress","preFilled","input","event","useCheckbox","values","key","openManualWrapper","search","postcode","ajaxURL","signal","Cookies","response","listString","address","error"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */function h(d,m){function u(e,t){let l=!1,r=t.getAttribute("name");r.includes("[]")&&(r=r.replace("[]",`[${t.value}]`));let i=e.querySelector(`[data-name="${r}"]`);i&&t.getAttribute("type")=="checkbox"&&(l=!t.checked);let o=t.getAttribute("data-filter-text");if(i||(i=document.createElement("button"),e.appendChild(i)),i.setAttribute("type","button"),i.classList.add("filter"),i.setAttribute("data-name",r),i.innerHTML=o.replace("$value",t.value),(!t.value||l)&&i.remove(),t.parentNode.closest("[data-filter-text]")){let p=t.parentNode.closest("[data-filter-text]"),f=!0;if(r="",p.querySelectorAll("input").forEach((a,n)=>{let s=a.getAttribute("name");if(r+=`${n!=0?",":""}${s}`,e.querySelector(`[data-name="${s}"]`)&&e.querySelector(`[data-name="${s}"]`).remove(),a.value){let c=document.createElement("button");c.setAttribute("type","button"),c.classList.add("filter"),c.setAttribute("data-name",s),c.innerHTML=o.replace("$value",a.value),e.appendChild(c)}else f=!1}),e.querySelector(`[data-name="${r}"]`)&&e.querySelector(`[data-name="${r}"]`).remove(),f){let a=p.getAttribute("data-filter-text");p.querySelectorAll("input").forEach((s,c)=>{let b=s.getAttribute("name");e.querySelector(`[data-name="${b}"]`)&&e.querySelector(`[data-name="${b}"]`).remove(),a=a.replace(`$${c+1}`,s.value)});let n=document.createElement("button");n.setAttribute("type","button"),n.classList.add("filter"),n.setAttribute("data-name",r),n.innerHTML=a,e.appendChild(n)}}}Array.from(d.querySelectorAll('input[type="checkbox"]:checked')).forEach((e,t)=>{u(m,e)}),Array.from(d.querySelectorAll("input[data-filter-text]")).forEach((e,t)=>{e.addEventListener("change",function(l){u(m,e),l.stopPropagation()})}),d.addEventListener("change",function(e){if(e&&e.target instanceof HTMLElement&&e.target.closest("input[data-filter-text]")){let t=e.target.closest("input[data-filter-text]");u(m,t)}}),m.addEventListener("click",function(e){if(e&&e.target instanceof HTMLElement&&e.target.closest(".filter")){let r=e.target.closest(".filter"),i=r.getAttribute("data-name").split(",");for(var t=0;t<i.length;t++){let o=i[t],p=`[name="${o}"]`;o.match(/\[(.*)\]/)&&(o.replace(/\[(.*)\]/,"[]"),p=`[value="${o.replace(/.*\[(.*)\]/,"$1")}"]`);let f=d.querySelectorAll(p);for(var l=0;l<f.length;l++){let a=f[l];if(a.getAttribute("type")!="radio"&&a.getAttribute("type")!="checkbox")a.value="";else{a.checked=!1;var e=new Event("force");d.hasAttribute("data-nosubmit")||a.closest("form").dispatchEvent(e)}}}r.remove()}},!1)}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Applied Filters"});class g extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const m=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",u=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${m}/css/core.min.css`;let e=this.classList.toString();const t=document.createElement("template");t.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Card"});class h extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.querySelector('[class*="fa-"]')&&this.classList.add("card--has-icon");let e=this.classList.toString();const a=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${a}/css/core.min.css`,t=document.createElement("template");t.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"collapsible side menu"});class s extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,o=document.createElement("template");o.innerHTML=`
5
5
  <style class="styles">
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */function h(c,o){const r=o.querySelector(".files"),l=o.querySelector(".drop-area"),t=c.querySelector("input"),u=c.hasAttribute("data-maxsize")?c.getAttribute("data-maxsize"):0,a=t.cloneNode();l.append(a),o.addEventListener("click",e=>{e&&e.target instanceof HTMLElement&&e.target.closest(".btn-primary")&&(e.target.closest(".btn-primary"),(t.hasAttribute("multiple")?a:t).click())}),o.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".files button")){const i=new DataTransfer,{files:d}=t,p=e.target.closest(".files button");for(let n=0;n<d.length;n++){const s=d[n];s.name!=p.getAttribute("data-file")&&i.items.add(s)}t.files=i.files;const m=new Event("change");t.dispatchEvent(m)}}),a.addEventListener("change",e=>{if(t.hasAttribute("multiple")){const d=[...t.files,...a.files];let p=[];const m=new DataTransfer;for(let n=0;n<d.length;n++){const s=d[n],f=s.size/1e3;!p.includes(s.name)&&(u==0||f<u)&&m.items.add(s),p.push(s.name)}t.files=m.files}else t.files=a.files;const i=new Event("change");t.dispatchEvent(i)}),a.addEventListener("dragenter",e=>{a.classList.add("focus")}),a.addEventListener("dragleave",e=>{a.classList.remove("focus")}),a.addEventListener("drop",e=>{a.classList.remove("focus")}),t.addEventListener("change",e=>{r.innerHTML="";for(const i of t.files)r.innerHTML+=`<span class="file">${i.name} <button data-file="${i.name}">Remove</button></span>`})}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"fileupload"});class b extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const o=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${o}/css/core.min.css`,l=document.createElement("template");l.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */function r(s,t){n(s,t)}function n(s,t){var e;t.addEventListener("keyup",a=>{clearTimeout(e),e=setTimeout(function(){o(s,t.value)},500)}),t.addEventListener("change",a=>{clearTimeout(e),o(s,t.value)})}const o=function(s,t){Array.from(s.querySelectorAll(":scope > li")).forEach((e,a)=>{let i=e.textContent.toLowerCase();e.classList.add("d-none"),i.includes(t.toLowerCase())&&e.classList.remove("d-none")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Filtered list",value:t})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"filterlist"});class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"header"});class t extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,o=document.createElement("template");o.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"nav"});class p extends HTMLElement{constructor(){super();const d=this.attachShadow({mode:"open"}),n=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",r=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${n}/css/core.min.css`,i=document.createElement("template");i.innerHTML=`
5
5
  <style class="styles">
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */function r(i){if(i.hasAttribute("data-type")&&i.getAttribute("data-type")=="toast"){let t=document.querySelector(".notification__holder");t||(t=document.createElement("div"),t.classList.add("notification__holder"),t.classList.add("container"),document.querySelector("body").appendChild(t)),i.closest(".notification__holder")||t.appendChild(i)}if(i.setAttribute("role","alert"),i.addEventListener("click",function(t){event&&event.target instanceof HTMLElement&&event.target.closest("[data-dismiss-button]")&&(t.preventDefault(),n(i))},!1),i.hasAttribute("data-timeout")){let t=i.getAttribute("data-timeout");var e=new c(function(){n(i)},t);i.addEventListener("mouseenter",o=>{e.pause()}),i.addEventListener("mouseleave",o=>{e.resume()})}}function c(i,e){var t,o,a=e;this.pause=function(){window.clearTimeout(t),a-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(i,a)},this.resume()}const n=function(i){i.classList.add("d-none")};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Notification"});class d extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,o=this.querySelectorAll("a,button");Array.from(o).forEach((s,l)=>{s.setAttribute("slot","btns"),s.classList.add("link")}),(o.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable");const a=document.createElement("template");a.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */const B=function(a){return typeof a!="string"?!1:!isNaN(a)&&!isNaN(parseFloat(a))},Q=(a,e)=>String(a).padStart(e,"0"),X=a=>a.charAt(0).toUpperCase()+a.slice(1);var Y=function(a,e,o,r){function b(c){return c instanceof o?c:new o(function(i){i(c)})}return new(o||(o=Promise))(function(c,i){function n(u){try{t(r.next(u))}catch(s){i(s)}}function d(u){try{t(r.throw(u))}catch(s){i(s)}}function t(u){u.done?c(u.value):b(u.value).then(n,d)}t((r=r.apply(a,e||[])).next())})};const R=a=>{const e=Array.from(a.querySelectorAll("thead th"));Array.from(a.querySelectorAll("tbody tr")).forEach((r,b)=>{const c=Array.from(r.querySelectorAll("th, td")),i=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","error"];c.forEach((n,d)=>{const t=e[d];if(typeof t<"u"){let u=document.createElement("div");u.innerHTML=t.innerHTML;let s=u.textContent||u.innerText||"";n.setAttribute("data-label",s),t.hasAttribute("data-td-class")&&n.setAttribute("class",t.getAttribute("data-td-class")),t.hasAttribute("data-format")&&(n.setAttribute("data-format",t.getAttribute("data-format")),n.innerHTML=M(t.getAttribute("data-format"),n.textContent.trim())),i.includes(n.textContent.trim().toLowerCase())&&n.setAttribute("data-content",n.textContent.trim().toLowerCase())}})})},J=a=>{let e=0;return Array.from(a.querySelectorAll("tbody tr")).forEach((o,r)=>{let b=window.getComputedStyle(document.querySelector("html")),c=o.querySelector(":scope > *:last-child > *:first-child");if(c){c.classList.add("text-nowrap");let i=c.offsetWidth/parseFloat(b.fontSize);i+=1.7,e=e>i?e:i}}),e},G=(a,e)=>{if(e.classList.contains(".table--fullwidth")&&!e.hasAttribute("data-expandable")||a.querySelectorAll("thead tr th").length<4&&!e.hasAttribute("data-expandable"))return!1;Array.from(a.querySelectorAll("thead tr")).forEach((o,r)=>{o.insertAdjacentHTML("afterbegin",'<th class="th--fixed expand-button-heading"></th>')}),Array.from(a.querySelectorAll("tbody tr")).forEach((o,r)=>{o.insertAdjacentHTML("afterbegin",'<td class="td--fixed td--expand"><button class="btn btn-compact btn-secondary" data-expand-button>Expand</button></td>')})},K=a=>{a.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){let o=e.target.closest("[data-expand-button]"),r=o.closest("tr");r.getAttribute("data-view")=="full"?r.setAttribute("data-view","default"):r.setAttribute("data-view","full"),o.blur()}})},N=(a,e)=>{let o=e.querySelector("[data-search]");if(!o)return!1;const r=o.getAttribute("id"),b=o.getAttribute("data-search").split(",");let c=o.parentNode,i={};b.forEach((n,d)=>{Array.from(a.querySelectorAll('td[data-label="'+n.trim()+'"]')).forEach((t,u)=>{t.querySelector(".td__content")?i[t.querySelector(".td__content").textContent]=t.querySelector(".td__content").textContent:i[t.textContent]=t.textContent})}),o.setAttribute("list",`${r}_list`),o.setAttribute("autocomplete","off"),c.querySelector("datalist")||(c.innerHTML+=`<datalist id="${r}_list"></datalist>`),c.querySelector("datalist").innerHTML=`${Object.keys(i).map(n=>`<option value="${n}"></option>`).join("")}`},V=(a,e,o,r,b)=>{var c;let i=function(t,u=!1){if(e.classList.contains("processing"))return!1;if(t.type=="submit"&&(e.classList.add("processing"),Array.from(e.querySelectorAll("[data-duplicate]")).forEach((s,m)=>{const h=s.getAttribute("data-duplicate"),l=document.getElementById(h),g=document.querySelector(`[for="${h}"] iam-card`);if(l.checked!=s.checked)if(g){let y=new Event("click");g.dispatchEvent(y)}else l.checked=s.checked}),e.classList.remove("processing")),e.hasAttribute("data-ajax")){if(!u){let s=e.querySelector("[data-pagination]");s.value=1,r.setAttribute("data-page",1)}z(a,e,o,r)}else e.hasAttribute("data-submit")?e.submit():(C(a,e,r),E(a,e));if(e.hasAttribute("data-ajax-post")){let s=new FormData(e),m=new URLSearchParams(s).toString();const h=new XMLHttpRequest;h.open("GET",`${window.location.href}?ajax=true&${m}`),h.send()}};e.addEventListener("keyup",t=>{clearTimeout(c),t&&t.target instanceof HTMLElement&&t.target.closest("[data-search]")&&(c=setTimeout(function(){i(t)},500))}),e.addEventListener("change",t=>{clearTimeout(c),t&&t.target instanceof HTMLElement&&t.target.closest("[data-sort]")&&(e.hasAttribute("data-submit")||O(a,e,b),i(t)),t&&t.target instanceof HTMLElement&&t.target.closest("[data-search]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter][data-no-ajax]")?(C(a,e,r),E(a,e)):(t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&t.target.closest("form .dialog__wrapper > dialog")||t&&t.target instanceof HTMLElement&&t.target.closest("[data-filter]")&&!t.target.closest("form dialog"))&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-show]")&&i(t),t&&t.target instanceof HTMLElement&&t.target.closest("[data-mimic]")&&i(t)}),e.addEventListener("click",t=>{if(clearTimeout(c),t&&t.target instanceof HTMLElement&&t.target.closest('dialog button:not([type="button"])')&&t.target.closest('dialog button:not([type="button"])').closest("dialog").close(),t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__close")&&(t.preventDefault(),t.stopPropagation()),t&&t.target instanceof HTMLElement&&t.target.closest("[data-clear]")){e.classList.add("processing"),Array.from(e.querySelectorAll(".applied-filters")).forEach((s,m)=>{s.innerHTML=""});let u=e.elements;for(let s=0;s<u.length;s++)switch(u[s].type.toLowerCase()?u[s].type.toLowerCase():"text"){case"text":case"password":case"textarea":u[s].value="";break;case"radio":case"checkbox":if(u[s].checked){let h=u[s],l=h.getAttribute("id"),g=document.querySelector(`[for="${l}"`);if(g.querySelector("iam-card")){let y=g.querySelector("iam-card"),v=new Event("click");y.dispatchEvent(v)}h.checked=!1}break;case"select-one":case"select-multi":u[s].selectedIndex=-1;break}e.classList.remove("processing"),e.hasAttribute("data-submit")||O(a,e,b),i(t)}}),e.addEventListener("submit",t=>{clearTimeout(c),e.hasAttribute("data-submit")||t.preventDefault(),i(t)}),e.addEventListener("force",t=>{i(t)}),e.addEventListener("paginate",t=>{i(t,!0)});let n=[],d=[];Array.from(e.querySelectorAll("[data-mimic]")).forEach((t,u)=>{let s=t.getAttribute("data-mimic");Array.from(document.querySelectorAll(`[name="${s}"]`)).forEach((m,h)=>{let l=m.closest("form");n.includes(l)||n.push(l),d.includes(s)||d.push(s)})}),n.forEach((t,u)=>{const s=function(){let m=[],h=new FormData(t);for(const[l,g]of h)document.querySelector(`[data-mimic="${l}"]`)&&!m.includes(l)?(m.push(l),document.querySelector(`[data-mimic="${l}"]`).value=g):document.querySelector(`[data-mimic="${l}"]`)&&(document.querySelector(`[data-mimic="${l}"]`).value+=","+g);for(const l of m){const g=new Event("force");e.dispatchEvent(g)}for(const l of d)if(!h.has(l)&&t.querySelector(`[name="${l}"]`)){document.querySelector(`[data-mimic="${l}"]`).value="";const g=new Event("force");e.dispatchEvent(g)}};t.addEventListener("force",m=>{s()}),t.addEventListener("change",m=>{s()})})},O=(a,e,o)=>{if(e.getAttribute("data-ajax"))return!1;let r=a.querySelector("tbody"),b=e.querySelector("[data-sort]"),c=b.querySelector(`option:nth-child(${b.selectedIndex+1})`),i=c.getAttribute("data-sort"),n=c.getAttribute("data-order"),d=c.getAttribute("data-format");if(!i)return r.innerHTML=o.innerHTML,R(a),!1;let t=[];["asc","desc","descending"].includes(n)||(t=n.split(","));let u=[];Array.from(r.querySelectorAll("tr")).forEach((m,h)=>{let l=m.querySelector('td[data-label="'+i+'"], th[data-label="'+i+'"]').textContent.trim();m.querySelector('[data-label="'+i+'"] .td__content')&&(l=m.querySelector('[data-label="'+i+'"] .td__content').textContent.trim()),t.length&&t.includes(l)&&(l=t.indexOf(l)),B(l)&&(l=Q(l,10)),d&&d=="date"&&(l=new Date(l));const g={index:l,row:m};u.push(g)}),u.sort((m,h)=>m.index>h.index?1:-1),(n=="descending"||n=="desc")&&(u=u.reverse());let s="";u.forEach((m,h)=>{s+=m.row.outerHTML}),r.innerHTML=s},C=(a,e,o)=>{a.classList.remove("table--filtered");let r=P(e),b=[],c=0,i=e.querySelector("[data-pagination]")?parseInt(e.querySelector("[data-pagination]").value):1,n=e.querySelector("[data-show]")?parseInt(e.querySelector("[data-show]").value):15;if(Array.from(a.querySelectorAll("tbody tr")).forEach((t,u)=>{t.classList.remove("filtered"),t.classList.remove("filtered--matched"),t.classList.remove("filtered--show"),t.removeAttribute("data-filtered-by")}),e.querySelector("[data-search]")){let t=e.querySelector("[data-search]");e.querySelector("[data-search]").getAttribute("data-search").split(",").forEach((s,m)=>{b.push({column:`${s.trim()}`,value:`${t.value}`})})}Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,u)=>{t.innerHTML="",t.parentNode.classList.remove("hover")});let d=0;Object.values(r).forEach((t,u)=>{typeof t=="object"&&Object.values(t).length?d+=Object.values(t).length:d++}),d&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((t,u)=>{t.innerHTML+=`(${d})`,t.parentNode.classList.add("hover")}),a.classList.add("table--filtered");for(const[t,u]of Object.entries(r))Array.from(a.querySelectorAll("tbody tr:not(.filtered)")).forEach((s,m)=>{let h=!1;u.forEach((l,g)=>{let y=s.querySelector(`[data-label="${t}"]`);if(l&&l=="$today")l=M("date",new Date);else if(l&&l=="$yesterday"){let f=new Date;f.setDate(f.getDate()-1),l=M("date",f)}else if(l&&(l=="$thisWeek"||l=="$lastWeek")){let f=new Date,x=new Date(f.setDate(f.getDate()-(f.getDay()-1))),w=new Date(f.setDate(f.getDate()-f.getDay()+7)),p=new Date(y.textContent.toLowerCase());if(f.setHours(0,0,0,0),x.setHours(0,0,0,0),w.setHours(0,0,0,0),p.setHours(0,0,0,0),l=="$thisWeek")h=p>=x&&p<=w;else{let T=new Date(x.setDate(x.getDate()-7)),A=new Date(w.setDate(w.getDate()-7));T.setHours(0,0,0,0),A.setHours(0,0,0,0),h=p>=T&&p<=A}}else if(l&&l=="$thisMonth"){let f=new Date,x=f.getFullYear(),w=f.getMonth();var v=new Date(x,w,1),k=new Date(x,w+1,0);let p=new Date(y.textContent.toLowerCase());v.setHours(0,0,0,0),k.setHours(0,0,0,0),p.setHours(0,0,0,0),h=p>=v&&p<=k}else if(l&&l=="$lastMonth"){let f=new Date,x=f.getFullYear(),w=f.getMonth();var S=new Date(x,w-1,1),L=new Date(x,w,0);let p=new Date(y.textContent.toLowerCase());S.setHours(0,0,0,0),L.setHours(0,0,0,0),p.setHours(0,0,0,0),h=p>=S&&p<=L}y&&y.textContent.toLowerCase().includes(l.toLowerCase())&&(h=!0)}),h||(s.classList.add("filtered"),s.setAttribute("data-filtered-by",t))});Array.from(a.querySelectorAll("tbody tr:not(.filtered)")).forEach((t,u)=>{let s=!(b.length>0&&b[0].value.length>=3);b.forEach((m,h)=>{let l=t.querySelector(`[data-label="${m.column}"]`);l&&m.value.length>=3&&l.textContent.toLowerCase().includes(m.value.toLowerCase())&&(s=!0)}),s||t.classList.add("filtered")}),Array.from(a.querySelectorAll("tbody tr:not(.filtered")).forEach((t,u)=>{c++,t.classList.add("filtered--matched"),Math.ceil(c/n)==parseInt(i)&&t.classList.add("filtered--show")}),o&&(o.setAttribute("data-total",c),o.setAttribute("data-show",n),o.setAttribute("data-page",i))},E=(a,e,o)=>{Array.from(e.querySelectorAll("[data-query]")).forEach((b,c)=>{let i=b.getAttribute("data-query"),n;if(i=="total")o.hasAttribute("data-total")?n=o.getAttribute("data-total"):n=(a.classList.contains("table--filtered"),a.querySelectorAll("tbody tr").length);else if(!i.includes(" == ")&&i.includes(" & ")){let d=i.split(" & "),t="";d.forEach(u=>{t+=`:not([data-filtered-by="${u}"])`}),n=Array.from(a.querySelectorAll(`tbody tr${t}`)).length}else if(!i.includes(" == "))n=Array.from(a.querySelectorAll(`tbody tr:not([data-filtered-by="${i}"])`)).length;else if(i.includes(" && ")){let d=i.split(" && ");n=Array.from(a.querySelectorAll("tbody tr:not(.filtered)")).filter(function(t){let u=!0;for(const[s,m]of Object.entries(d)){let h=m.split(" == ");(!t.querySelector(`td[data-label="${h[0]}"]`)||t.querySelector(`td[data-label="${h[0]}"]`).textContent!=`${h[1]}`)&&(u=!1)}return u}).length}else{let d=i.split(" == ");n=Array.from(a.querySelectorAll(`tbody tr.filtered--matched td[data-label="${d[0]}"], tbody tr[data-filtered-by="${d[0]}"] td[data-label="${d[0]}"]`)).filter(function(t){return t.textContent===d[1]}).length}b.hasAttribute("data-total")?b.setAttribute("data-total",n):b.innerHTML=n})},Z=function(a,e,o,r){o.addEventListener("update-page",b=>{let c=e.querySelector("[data-pagination]"),i=b.detail.page;if(c.value=i,e.dispatchEvent(new Event("paginate")),r.setAttribute("data-page",i),a.hasAttribute("data-show-history")){const n=new URL(location);n.searchParams.set("page",i),history.pushState({type:"pagination",form:e.getAttribute("id"),page:i},"",n)}if(!r.hasAttribute("data-no-scroll")){const d=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:d,behavior:"smooth"})}}),o.addEventListener("update-show",b=>{let c=e.querySelector("[data-show]"),i=b.detail.show;c.value=i,r.setAttribute("data-show",i),e.dispatchEvent(new Event("submit"))})},tt=(a,e)=>{if(!a)return!1;a.addEventListener("click",o=>{et(e)})},et=function(a){for(var e=[],o=a.getElementsByTagName("tr"),r=0;r<o.length;r++){for(var b=o[r].querySelectorAll("td,th"),c=[],i=0;i<b.length;i++)c.push(`"${b[i].textContent}"`);e.push(c.join(","))}e=e.join(`
5
5
  `);let n=new Blob([e],{type:"text/csv"});var d=document.createElement("a");d.download="export.csv";var t=window.URL.createObjectURL(n);d.href=t,d.style.display="none",document.body.appendChild(d),d.click(),document.body.removeChild(d)},I=function(a,e,o,r){if(R(a),G(a,r),E(a,e,r),r&&r.classList.contains("table--cta")){let c=function(){Array.from(a.querySelectorAll("tr")).forEach((i,n)=>{let d=i.offsetHeight;i.style.setProperty("--row-height",`${d}px`)})};const b=J(a);r.style.setProperty("--cta-width",`${b}rem`),new ResizeObserver(c).observe(a)}},P=function(a){let e=new Object;return Array.from(a.querySelectorAll("[data-filter]")).forEach((r,b)=>{if(!(r.type=="radio"&&!r.checked)&&!(r.type=="checkbox"&&!r.checked)&&r&&r.value){let c=r.getAttribute("data-filter");e[c]||(e[c]=new Array),e[c].push(r.value)}}),e},z=function(a,e,o,r){return Y(this,void 0,void 0,function*(){const b=(h,l,g)=>l.split(/[\.\[\]\'\"]/).filter(y=>y).reduce((y,v)=>y?y[v]:g,h);let c=new FormData(e),i=new URLSearchParams(c).toString(),n=a.querySelectorAll("thead tr th"),d=a.querySelector("tbody"),t=e.getAttribute("data-ajax");r.classList.add("table--loading");let u=P(e);Array.from(e.querySelectorAll("[data-filter-count]")).forEach((h,l)=>{h.innerHTML="",h.parentNode.classList.remove("hover")});let s=0;Object.values(u).forEach((h,l)=>{typeof h=="object"&&Object.values(h).length?s+=Object.values(h).length:s++}),s&&Array.from(e.querySelectorAll("[data-filter-count]")).forEach((h,l)=>{h.innerHTML+=`(${s})`,h.parentNode.classList.add("hover")}),window.controller||(window.controller=[]),window.controller[t]&&window.controller[t].abort(),window.controller[t]=new AbortController;const{signal:m}=controller[t];o.setAttribute("data-loading","true"),e.classList.add("processing");try{yield fetch(t+"?"+i,{signal:m,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest"})}).then(h=>h.json()).then(h=>{let l=e.hasAttribute("data-schema")?e.getAttribute("data-schema"):"data",g=e.hasAttribute("data-schema-total")?e.getAttribute("data-schema-total"):"meta.total",y=e.hasAttribute("data-schema-page")?e.getAttribute("data-schema-page"):"meta.current_page",v=b(h,g,15),k=b(h,y,1),S=b(h,l),L=r.hasAttribute("data-empty-msg")?r.getAttribute("data-empty-msg"):"No results found";S?(d.innerHTML="",S.forEach((f,x)=>{var w=document.createElement("tr");n.forEach((p,T)=>{let A="";var _=document.createElement("td");if(_.setAttribute("data-label",p.innerText),p.getAttribute("data-output")){var H=p.getAttribute("data-output");A=H.replace(new RegExp(/{(.*?)}/,"gm"),function(D){return b(f,D.replace("{","").replace("}",""))})}if(p.hasAttribute("data-output-array")){var H=p.getAttribute("data-output");let F=b(f,H.replace("{","").replace("}",""));A="",F.forEach((j,it)=>{let W=p.getAttribute("data-output-array"),q="";if(p.hasAttribute("data-output-array-property")&&p.hasAttribute("data-output-array-transform")){const $=b(j,p.getAttribute("data-output-array-property")),U=JSON.parse(p.getAttribute("data-output-array-transform"))[$];q=W.replace(`{${p.getAttribute("data-output-array-property")}}`,U)}q=q.replace(new RegExp(/{(.*?)}/,"gm"),function($){return b(j,$.replace("{","").replace("}",""))}),A+=q})}p.hasAttribute("data-transform")&&(A=JSON.parse(p.getAttribute("data-transform"))[A],!A&&p.hasAttribute("data-default")&&(A=p.getAttribute("data-default"))),_.innerHTML=A,w.appendChild(_)}),d.appendChild(w)}),N(a,e),r.setAttribute("data-total",parseInt(v)),r.setAttribute("data-page",parseInt(k)),I(a,e,o,r),Array.from(e.querySelectorAll("[data-ajax-query]")).forEach((f,x)=>{let w=b(h,f.getAttribute("data-ajax-query"),"");f.hasAttribute("data-total")?f.setAttribute("data-total",w):f.innerHTML=w}),parseInt(v)==0&&(d.innerHTML=`<tr><td colspan="100%"><span>${L}</span></td></tr>`),r.classList.remove("table--loading"),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Ajax table loaded",url:t,formData:i})):d.innerHTML='<tr><td colspan="100%"><span>Error loading table</span></td></tr>',o.removeAttribute("data-loading"),e.classList.remove("processing")})}catch(h){console.log(h)}})},M=(a,e)=>{switch(a){case"datetime":return new Date(e).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(e).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(e).toLocaleDateString("en-gb",{year:"2-digit",month:"long",day:"numeric"});case"capitalise":return e=X(e)}};class at extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",o=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,r=document.createElement("template");r.innerHTML=`
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v4.1.1-beta-6
2
+ * iamKey v4.1.1-beta-7
3
3
  * Copyright 2022-2023 iamproperty
4
4
  */const d=function(t){const r=t.querySelectorAll(":scope > details");t.querySelectorAll(":scope > details > summary");let a=t.querySelector(":scope > .tabs__links");if(t.shadowRoot&&t.shadowRoot.querySelector(".tabs__links")&&(a=t.shadowRoot.querySelector(".tabs__links")),!a){a=document.createElement("div"),a.classList.add("tabs__links");let e=document.createElement("div");e.classList.add("tabs__links__wrapper"),e.prepend(a),t.prepend(e)}r.forEach((e,i)=>{let l=e.querySelector(":scope > summary"),o=l.classList.contains("disabled");l.classList.add("visually-hidden");let s=document.createElement("button");e.hasAttribute("id")&&(s=document.createElement("a"),s.setAttribute("href",`#${e.getAttribute("id")}`)),e.hasAttribute("open")&&s.setAttribute("aria-pressed",!0),s.innerHTML=`${l.innerText}`,s.classList.add("link"),s.setAttribute("data-index",i),s.setAttribute("tabindex","-1"),o&&s.classList.add("disabled"),a.appendChild(s)})},n=function(t){let r=t.querySelectorAll(":scope > details"),a=t.querySelectorAll(":scope > details > summary"),e=t.querySelectorAll(":scope .tabs__links > .link");t.shadowRoot&&(e=t.shadowRoot.querySelectorAll(".tabs__links > .link")),e.forEach(i=>{i.addEventListener("click",l=>{if(l.preventDefault(),i.classList.contains("disabled"))return!1;e.forEach(o=>{let s=o==i;o.setAttribute("aria-pressed",s)}),r.forEach((o,s)=>{let c=i.getAttribute("data-index")==s;c?o.setAttribute("open",c):o.removeAttribute("open")}),i.hasAttribute("href")&&history.pushState(void 0,void 0,i.getAttribute("href")),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openTab",tabTitle:i.textContent})})}),a.forEach((i,l)=>{i.addEventListener("focus",o=>{e.forEach(s=>{s.classList.remove("focus")}),e[l].classList.add("focus")}),i.addEventListener("click",o=>{o.preventDefault(),e[l].click()})})},u=function(t){let r=t.querySelectorAll(":scope > details"),a=t.querySelectorAll(":scope > .tabs__links > button, .tabs__links > a");t.shadowRoot&&(a=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]")||(r[0].setAttribute("open",!0),a[0].setAttribute("aria-pressed",!0))},p=function(t){d(t),n(t),u(t)};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"tabs"});class h extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const r=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",a=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${r}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
5
5
  <style>