@iamproperty/components 4.1.1-beta-5 → 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 (58) hide show
  1. package/assets/css/components/component.reset.css +1 -1
  2. package/assets/css/components/component.reset.css.map +1 -1
  3. package/assets/css/core.min.css +1 -1
  4. package/assets/css/core.min.css.map +1 -1
  5. package/assets/css/style.min.css +1 -1
  6. package/assets/css/style.min.css.map +1 -1
  7. package/assets/favicons/README.md +21 -0
  8. package/assets/favicons/android-chrome-192x192.png +0 -0
  9. package/assets/favicons/android-chrome-512x512-bg.png +0 -0
  10. package/assets/favicons/android-chrome-512x512.png +0 -0
  11. package/assets/favicons/apple-touch-icon.png +0 -0
  12. package/assets/favicons/browserconfig.xml +9 -0
  13. package/assets/favicons/favicon-16x16.png +0 -0
  14. package/assets/favicons/favicon-32x32.png +0 -0
  15. package/assets/favicons/favicon.ico +0 -0
  16. package/assets/favicons/mstile-150x150.png +0 -0
  17. package/assets/favicons/safari-pinned-tab.svg +35 -0
  18. package/assets/favicons/site.webmanifest +20 -0
  19. package/assets/img/illustrations/buyer.png +0 -0
  20. package/assets/img/illustrations/estate-agents.png +0 -0
  21. package/assets/img/illustrations/modified/auctioneer-28days.png +0 -0
  22. package/assets/img/illustrations/modified/auctioneer-56days.png +0 -0
  23. package/assets/img/illustrations/seller.png +0 -0
  24. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  25. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  26. package/assets/js/components/address-lookup/address-lookup.component.js +21 -14
  27. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  28. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  29. package/assets/js/components/applied-filters/applied-filters.component.min.js +3 -3
  30. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  31. package/assets/js/components/card/card.component.min.js +1 -1
  32. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  33. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  34. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  35. package/assets/js/components/header/header.component.min.js +1 -1
  36. package/assets/js/components/nav/nav.component.min.js +1 -1
  37. package/assets/js/components/notification/notification.component.min.js +1 -1
  38. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  39. package/assets/js/components/table/table.component.min.js +1 -1
  40. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  41. package/assets/js/dynamic.min.js +2 -2
  42. package/assets/js/dynamic.min.js.map +1 -1
  43. package/assets/js/modules/applied-filters.js +10 -1
  44. package/assets/js/modules/dynamicEvents.js +14 -2
  45. package/assets/js/modules/inputs.js +0 -2
  46. package/assets/js/scripts.bundle.js +3 -3
  47. package/assets/js/scripts.bundle.js.map +1 -1
  48. package/assets/js/scripts.bundle.min.js +2 -2
  49. package/assets/js/scripts.bundle.min.js.map +1 -1
  50. package/assets/sass/foundations/reboot.scss +3 -0
  51. package/assets/ts/components/address-lookup/address-lookup.component.ts +27 -18
  52. package/assets/ts/modules/applied-filters.ts +16 -3
  53. package/assets/ts/modules/dynamicEvents.ts +23 -6
  54. package/assets/ts/modules/inputs.ts +0 -2
  55. package/dist/README.md +21 -0
  56. package/dist/components.es.js +19 -14
  57. package/dist/components.umd.js +31 -31
  58. package/package.json +1 -1
@@ -95,6 +95,8 @@ button:focus {
95
95
  }
96
96
 
97
97
  hr {
98
+ --border-style: solid;
99
+ --border-color: var(--colour-border);
98
100
  border: 0;
99
101
  color: transparent;
100
102
  margin: 0;
@@ -103,6 +105,7 @@ hr {
103
105
  opacity: 1;
104
106
  clear:both;
105
107
 
108
+
106
109
  &:after {
107
110
  display: table;
108
111
  clear: both;
@@ -69,35 +69,44 @@ class iamAddressLookup extends HTMLElement {
69
69
  const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');
70
70
  const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');
71
71
  const title = this.hasAttribute('data-title') ? this.getAttribute('data-title') : "Property address";
72
-
73
- let preFilled = true;
74
-
75
- const preFilledAddress = this.shadowRoot.querySelector('.pre-filled-address');
76
72
  const preFilledAddressBtn = this.shadowRoot.querySelector('.pre-filled-address + button');
77
73
 
78
-
74
+
79
75
  Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement, index) => {
80
76
 
81
77
  titleElement.innerHTML = title;
82
78
  });
83
79
 
80
+ function checkFilled(component){
84
81
 
85
- Array.from(this.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {
82
+ let preFilledAddress = component.shadowRoot.querySelector('.pre-filled-address');
83
+ let preFilled = true;
84
+ preFilledAddress.innerHTML = "";
86
85
 
87
- if(!input.value)
88
- preFilled = false;
89
- else
90
- preFilledAddress.innerHTML += ', '+input.value;
91
-
92
- });
86
+ Array.from(component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input, index) => {
87
+
88
+ if(!input.value)
89
+ preFilled = false;
90
+ else
91
+ preFilledAddress.innerHTML += ', '+input.value;
92
+
93
+ });
93
94
 
94
- preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);
95
+ preFilledAddress.innerHTML = preFilledAddress.innerHTML.slice(1);
95
96
 
96
- if(preFilled){
97
- preFilledWrapper.classList.remove('js-hide');
98
- lookupWrapper.classList.add('js-hide');
99
- manualWrapper.classList.add('js-hide');
97
+ if(preFilled){
98
+ preFilledWrapper.classList.remove('js-hide');
99
+ lookupWrapper.classList.add('js-hide');
100
+ manualWrapper.classList.add('js-hide');
101
+ }
100
102
  }
103
+ checkFilled(this);
104
+
105
+ this.addEventListener('filled', (event) => {
106
+
107
+ checkFilled(this);
108
+ });
109
+
101
110
 
102
111
  if(this.hasAttribute('data-use')){
103
112
 
@@ -136,7 +145,7 @@ class iamAddressLookup extends HTMLElement {
136
145
  lookupWrapper.classList.add('js-hide');
137
146
  manualWrapper.classList.remove('js-hide');
138
147
 
139
- Array.from(this.querySelectorAll('[data-required]')).forEach((input, index) => {
148
+ Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {
140
149
  input.setAttribute('required','true');
141
150
  });
142
151
 
@@ -3,6 +3,7 @@ function createAppliedFilters(container,filters) {
3
3
 
4
4
 
5
5
  function addFilterButton (filters, input){
6
+
6
7
  let shouldRemoveFilter = false;
7
8
  let inputName = input.getAttribute('name');
8
9
 
@@ -12,7 +13,7 @@ function createAppliedFilters(container,filters) {
12
13
  let filter = filters.querySelector(`[data-name="${inputName}"]`);
13
14
 
14
15
  if(filter && input.getAttribute('type') == 'checkbox')
15
- shouldRemoveFilter = true;
16
+ shouldRemoveFilter = !input.checked ? true : false;
16
17
 
17
18
  let filterText = input.getAttribute('data-filter-text');
18
19
 
@@ -97,14 +98,26 @@ function createAppliedFilters(container,filters) {
97
98
  addFilterButton(filters, input)
98
99
  });
99
100
 
101
+
102
+ // check for change in displayed inputs
100
103
  Array.from(container.querySelectorAll('input[data-filter-text]')).forEach((input, index) => {
101
-
104
+
102
105
  input.addEventListener('change', function(event){
103
106
 
104
- addFilterButton(filters, input)
107
+ addFilterButton(filters, input);
108
+ event.stopPropagation(); // Don't allow the below event handler to trigger
105
109
  });
106
110
  });
107
111
 
112
+ // Some change event aren't getting triggered above so this event listener on the container will pick them up. This happens with input in modals
113
+ container.addEventListener('change', function(event){
114
+
115
+ if (event && event.target instanceof HTMLElement && event.target.closest('input[data-filter-text]')){
116
+ let input = event.target.closest('input[data-filter-text]');
117
+ addFilterButton(filters, input);
118
+ }
119
+ });
120
+
108
121
  filters.addEventListener('click', function(event){
109
122
 
110
123
  if (event && event.target instanceof HTMLElement && event.target.closest('.filter')){
@@ -96,9 +96,13 @@ const runEvent = (element,event,eventType) => {
96
96
  input.setAttribute('required','true');
97
97
  });
98
98
  break;
99
- case "populate-form":
100
- populateForm(element,event);
101
- break;
99
+ case "populate-form":
100
+ populateForm(element,event);
101
+ break;
102
+ case "dispatchEvent":
103
+ let theEvent = new Event(event['value']);
104
+ document.querySelector(`${event['target']}`).dispatchEvent(theEvent);
105
+ break;
102
106
  case "setAttribute":
103
107
  document.querySelector(`${event['target']}`).setAttribute(event['attribute'],event['value']);
104
108
  break;
@@ -121,12 +125,23 @@ const populateForm = function (element,event) {
121
125
  let values = JSON.parse(element.getAttribute('data-values'));
122
126
  let form = document.querySelector(event['target']);
123
127
 
128
+ if(!values)
129
+ return false;
130
+
124
131
  Object.keys(values).forEach((field, index) => {
125
132
 
126
133
  if(document.getElementById(field) && document.getElementById(field).tagName == "SPAN")
127
134
  document.getElementById(field).innerHTML = values[field];
128
-
129
- if(form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`)){
135
+
136
+
137
+ if(form.querySelector(`select[name="${field}"] [value="${values[field]}"]`)){
138
+
139
+ form.querySelector(`select[name="${field}"]`).value = values[field];
140
+
141
+ if(element.hasAttribute('data-lock-fields'))
142
+ form.querySelector(`select[name="${field}"]`).disabled = true;
143
+ }
144
+ else if(form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`)){
130
145
 
131
146
  Array.from(form.querySelectorAll(`input[name="${field}"][type="radio"]`)).forEach(function(input,index){
132
147
  input.disabled = true;
@@ -137,7 +152,9 @@ const populateForm = function (element,event) {
137
152
  }
138
153
  else if(form.querySelector(`input[name="${field}"]`)){
139
154
  form.querySelector(`input[name="${field}"]`).value = values[field];
140
- form.querySelector(`input[name="${field}"]`).setAttribute('readonly','true');
155
+
156
+ if(element.hasAttribute('data-lock-fields'))
157
+ form.querySelector(`input[name="${field}"]`).setAttribute('readonly','true');
141
158
  }
142
159
  });
143
160
  }
@@ -3,7 +3,6 @@ const extendInputs = (body) => {
3
3
 
4
4
  document.addEventListener("load", function() {
5
5
 
6
- console.log(Array.from(document.querySelectorAll('input[maxlength]')))
7
6
  // maxlength counter init
8
7
  Array.from(document.querySelectorAll('input')).forEach((input,index) => {
9
8
  let wrapper = input.parentElement;
@@ -31,7 +30,6 @@ const extendInputs = (body) => {
31
30
 
32
31
  const select = event.target.closest('select');
33
32
 
34
- console.log(select)
35
33
 
36
34
  if(select.hasAttribute('data-change-type') && select.hasAttribute('data-input')){
37
35
 
package/dist/README.md ADDED
@@ -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)
@@ -48,7 +48,7 @@ function At(e, a, t, i, s, r) {
48
48
  }
49
49
  const Xo = /* @__PURE__ */ A(yt, [["render", At]]);
50
50
  /*!
51
- * iamKey v4.1.1-beta-5
51
+ * iamKey v4.1.1-beta-7
52
52
  * Copyright 2022-2023 iamproperty
53
53
  */
54
54
  const _t = function(e) {
@@ -557,7 +557,7 @@ class Ct extends HTMLElement {
557
557
  }
558
558
  }
559
559
  /*!
560
- * iamKey v4.1.1-beta-5
560
+ * iamKey v4.1.1-beta-7
561
561
  * Copyright 2022-2023 iamproperty
562
562
  */
563
563
  let nt = class extends HTMLElement {
@@ -1143,7 +1143,7 @@ function be(e, a, t, i, s, r) {
1143
1143
  }
1144
1144
  const Qo = /* @__PURE__ */ A(pe, [["render", be]]);
1145
1145
  /*!
1146
- * iamKey v4.1.1-beta-5
1146
+ * iamKey v4.1.1-beta-7
1147
1147
  * Copyright 2022-2023 iamproperty
1148
1148
  */
1149
1149
  function fe(e) {
@@ -1294,7 +1294,7 @@ const ai = /* @__PURE__ */ A(ke, [["render", He]]), Ce = {
1294
1294
  name: "Card",
1295
1295
  mounted() {
1296
1296
  this.$nextTick(function() {
1297
- import("./card.component.min-1e6bae1b.mjs").then((e) => {
1297
+ import("./card.component.min-b12fd7f2.mjs").then((e) => {
1298
1298
  window.customElements.get("iam-card") || window.customElements.define("iam-card", e.default);
1299
1299
  }).catch((e) => {
1300
1300
  console.log(e.message);
@@ -1495,7 +1495,7 @@ function We(e, a, t, i, s, r) {
1495
1495
  }
1496
1496
  const oi = /* @__PURE__ */ A(De, [["render", We]]);
1497
1497
  /*!
1498
- * iamKey v4.1.1-beta-5
1498
+ * iamKey v4.1.1-beta-7
1499
1499
  * Copyright 2022-2023 iamproperty
1500
1500
  */
1501
1501
  window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "customElementRegistered", element: "header" });
@@ -1941,7 +1941,7 @@ const si = /* @__PURE__ */ A(va, [["render", Ha]]), Ca = {
1941
1941
  name: "Nav",
1942
1942
  mounted() {
1943
1943
  this.$nextTick(function() {
1944
- import("./nav.component.min-16baebe2.mjs").then((e) => {
1944
+ import("./nav.component.min-68c5fb8e.mjs").then((e) => {
1945
1945
  window.customElements.get("iam-nav") || window.customElements.define("iam-nav", e.default);
1946
1946
  }).catch((e) => {
1947
1947
  console.log(e.message);
@@ -2058,7 +2058,7 @@ function Za(e, a, t, i, s, r) {
2058
2058
  }
2059
2059
  const ui = /* @__PURE__ */ A(Xa, [["render", Za]]);
2060
2060
  /*!
2061
- * iamKey v4.1.1-beta-5
2061
+ * iamKey v4.1.1-beta-7
2062
2062
  * Copyright 2022-2023 iamproperty
2063
2063
  */
2064
2064
  const to = function(e) {
@@ -2259,7 +2259,7 @@ function vo(e, a, t, i, s, r) {
2259
2259
  }
2260
2260
  const bi = /* @__PURE__ */ A(ho, [["render", vo]]);
2261
2261
  /*!
2262
- * iamKey v4.1.1-beta-5
2262
+ * iamKey v4.1.1-beta-7
2263
2263
  * Copyright 2022-2023 iamproperty
2264
2264
  */
2265
2265
  function wo(e, a) {
@@ -2267,7 +2267,7 @@ function wo(e, a) {
2267
2267
  let r = !1, o = s.getAttribute("name");
2268
2268
  o.includes("[]") && (o = o.replace("[]", `[${s.value}]`));
2269
2269
  let n = i.querySelector(`[data-name="${o}"]`);
2270
- n && s.getAttribute("type") == "checkbox" && (r = !0);
2270
+ n && s.getAttribute("type") == "checkbox" && (r = !s.checked);
2271
2271
  let d = s.getAttribute("data-filter-text");
2272
2272
  if (n || (n = document.createElement("button"), i.appendChild(n)), n.setAttribute("type", "button"), n.classList.add("filter"), n.setAttribute("data-name", o), n.innerHTML = d.replace("$value", s.value), (!s.value || r) && n.remove(), s.parentNode.closest("[data-filter-text]")) {
2273
2273
  let l = s.parentNode.closest("[data-filter-text]"), m = !0;
@@ -2293,8 +2293,13 @@ function wo(e, a) {
2293
2293
  t(a, i);
2294
2294
  }), Array.from(e.querySelectorAll("input[data-filter-text]")).forEach((i, s) => {
2295
2295
  i.addEventListener("change", function(r) {
2296
- t(a, i);
2296
+ t(a, i), r.stopPropagation();
2297
2297
  });
2298
+ }), e.addEventListener("change", function(i) {
2299
+ if (i && i.target instanceof HTMLElement && i.target.closest("input[data-filter-text]")) {
2300
+ let s = i.target.closest("input[data-filter-text]");
2301
+ t(a, s);
2302
+ }
2298
2303
  }), a.addEventListener("click", function(i) {
2299
2304
  if (i && i.target instanceof HTMLElement && i.target.closest(".filter")) {
2300
2305
  let o = i.target.closest(".filter"), n = o.getAttribute("data-name").split(",");
@@ -2350,7 +2355,7 @@ function xo(e, a, t, i, s, r) {
2350
2355
  }
2351
2356
  const gi = /* @__PURE__ */ A(_o, [["render", xo]]);
2352
2357
  /*!
2353
- * iamKey v4.1.1-beta-5
2358
+ * iamKey v4.1.1-beta-7
2354
2359
  * Copyright 2022-2023 iamproperty
2355
2360
  */
2356
2361
  function Lo(e, a) {
@@ -2517,7 +2522,7 @@ function Co(e, a, t, i, s, r) {
2517
2522
  }
2518
2523
  const vi = /* @__PURE__ */ A(Ho, [["render", Co]]);
2519
2524
  /*!
2520
- * iamKey v4.1.1-beta-5
2525
+ * iamKey v4.1.1-beta-7
2521
2526
  * Copyright 2022-2023 iamproperty
2522
2527
  */
2523
2528
  const Ro = function(e) {
@@ -2902,7 +2907,7 @@ const Ai = /* @__PURE__ */ A(Fo, [["render", Io]]), Bo = (e, a) => {
2902
2907
  name: "Address Lookup",
2903
2908
  mounted() {
2904
2909
  this.$nextTick(function() {
2905
- Bo(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/address-lookup/address-lookup.component.js": () => import("./address-lookup.component-9a910361.mjs"), "../../../assets/js/components/address-lookup/address-lookup.component.min.js": () => import("./address-lookup.component.min-462972f3.mjs") }), "../../../assets/js/components/address-lookup/address-lookup.component.js").then((e) => {
2910
+ Bo(/* @__PURE__ */ Object.assign({ "../../../assets/js/components/address-lookup/address-lookup.component.js": () => import("./address-lookup.component-53f26cc5.mjs"), "../../../assets/js/components/address-lookup/address-lookup.component.min.js": () => import("./address-lookup.component.min-d389641e.mjs") }), "../../../assets/js/components/address-lookup/address-lookup.component.js").then((e) => {
2906
2911
  window.customElements.get("iam-address-lookup") || window.customElements.define("iam-address-lookup", e.default);
2907
2912
  }).catch((e) => {
2908
2913
  console.log(e.message);
@@ -2917,7 +2922,7 @@ function Vo(e, a, t, i, s, r) {
2917
2922
  }
2918
2923
  const _i = /* @__PURE__ */ A(Oo, [["render", Vo]]);
2919
2924
  /*!
2920
- * iamKey v4.1.1-beta-5
2925
+ * iamKey v4.1.1-beta-7
2921
2926
  * Copyright 2022-2023 iamproperty
2922
2927
  */
2923
2928
  window.dataLayer = window.dataLayer || [], window.dataLayer.push({ event: "customElementRegistered", element: "collapsible side menu" });