@iamproperty/components 7.6.3--beta3 → 7.6.3
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.
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/content.component.css +1 -1
- package/assets/css/components/content.component.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/rating.component.css +1 -0
- package/assets/css/components/rating.component.css.map +1 -0
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tag.component.css +1 -1
- package/assets/css/components/tag.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
- package/assets/js/components/address-lookup/address-lookup.component.js +91 -66
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -6
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +4 -4
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +4 -4
- package/assets/js/components/card/card.component.min.js +2 -2
- package/assets/js/components/carousel/carousel.component.min.js +3 -3
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
- package/assets/js/components/content/content.component.min.js +2 -2
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +3 -3
- package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.min.js +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.js +47 -24
- package/assets/js/components/modal/modal.component.min.js +10 -11
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +3 -3
- package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +3 -3
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.js +66 -0
- package/assets/js/components/rating/rating.component.min.js +15 -0
- package/assets/js/components/rating/rating.component.min.js.map +1 -0
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +5 -5
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.min.js +2 -2
- package/assets/js/components/split-button/split-button.component.min.js +2 -2
- package/assets/js/components/std-address-lookup/std-address-lookup.component.js +383 -383
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +18 -19
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +3 -3
- package/assets/js/components/tag/tag.component.min.js +2 -2
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js +2 -2
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +11 -9
- package/assets/js/scripts.bundle.js +2 -2
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/scripts.js +2 -4
- package/assets/sass/components/modal.component.scss +179 -198
- package/assets/sass/components/rating.component.css +212 -0
- package/assets/sass/elements/button__group.css +25 -4
- package/assets/sass/elements/buttons--compact.scss +12 -3
- package/assets/sass/elements/buttons--special.scss +2 -1
- package/assets/sass/elements/forms.scss +33 -21
- package/assets/sass/elements/highlight.css +7 -0
- package/assets/sass/elements/label.scss +17 -0
- package/assets/sass/foundations/colours.scss +10 -0
- package/assets/sass/utilities/colours.scss +4 -3
- package/assets/sass/utilities/font-awesome-iso-fallbacks.scss +6 -0
- package/assets/sass/utilities/wider-colours.scss +1 -0
- package/assets/ts/components/address-lookup/address-lookup.component.ts +154 -190
- package/assets/ts/components/modal/modal.component.ts +63 -26
- package/assets/ts/components/rating/rating.component.ts +86 -0
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +383 -383
- package/assets/ts/modules/advanced-select.ts +13 -9
- package/assets/ts/scripts.ts +2 -2
- package/dist/components.es.js +88 -88
- package/dist/components.umd.js +214 -204
- package/package.json +1 -1
- package/src/components/Rating/Rating.vue +22 -0
|
@@ -28,7 +28,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
28
28
|
template.innerHTML = `
|
|
29
29
|
<style>
|
|
30
30
|
${loadCSS}
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
</style>
|
|
33
33
|
<link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
|
|
34
34
|
<div class="wrapper">
|
|
@@ -49,7 +49,6 @@ class iamAddressLookup extends HTMLElement {
|
|
|
49
49
|
<button id="postcode__submit" class="suffix fa-regular fa-search" part="suffix"></button>
|
|
50
50
|
</span>
|
|
51
51
|
</label>
|
|
52
|
-
|
|
53
52
|
<span class="invalid-feedback mb-2" id="invalid-feedback-address-lookup">${this.hasAttribute('data-error-msg') ? this.getAttribute('data-error-msg') : 'Required address fields'}</span>
|
|
54
53
|
|
|
55
54
|
<div class="datalist__wrapper ${this.hasAttribute('data-list-class') ? this.getAttribute('data-list-class') : ''}" tabindex="0" part="list-wrapper">
|
|
@@ -94,7 +93,9 @@ class iamAddressLookup extends HTMLElement {
|
|
|
94
93
|
const lookupWrapper = this.shadowRoot.querySelector('.postcode-lookup');
|
|
95
94
|
const manualWrapper = this.shadowRoot.querySelector('.manual-address');
|
|
96
95
|
const preFilledWrapper = this.shadowRoot.querySelector('.pre-filled');
|
|
97
|
-
const list = this.querySelector('datalist[slot="preloadedList"]')
|
|
96
|
+
const list = this.querySelector('datalist[slot="preloadedList"]')
|
|
97
|
+
? this.querySelector('datalist[slot="preloadedList"]')
|
|
98
|
+
: this.shadowRoot.querySelector('.datalist__wrapper datalist');
|
|
98
99
|
const listWrapper = this.shadowRoot.querySelector('.datalist__wrapper');
|
|
99
100
|
const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');
|
|
100
101
|
const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');
|
|
@@ -112,6 +113,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
112
113
|
const matchedAddressWrapper = this.shadowRoot.querySelector('.matched');
|
|
113
114
|
const matchedAddressUse = this.shadowRoot.querySelector('.matched .use-matched');
|
|
114
115
|
const matchedAddressEntered = this.shadowRoot.querySelector('.matched .use-entered');
|
|
116
|
+
let cacheSearchQuery = '';
|
|
115
117
|
Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement) => {
|
|
116
118
|
titleElement.innerHTML = title;
|
|
117
119
|
});
|
|
@@ -122,7 +124,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
122
124
|
preFilledAddress.innerHTML = '';
|
|
123
125
|
Array.from(component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')).forEach((input) => {
|
|
124
126
|
let value = input.hasAttribute('data-value') ? input.getAttribute('data-value') : input.value;
|
|
125
|
-
if (input.tagName ==
|
|
127
|
+
if (input.tagName == 'SELECT' && component.querySelector(`[value="${input.value}"][data-value]`))
|
|
126
128
|
value = component.querySelector(`[value="${input.value}"][data-value]`).getAttribute('data-value');
|
|
127
129
|
if (!value) {
|
|
128
130
|
if (input.closest('.atleastone')) {
|
|
@@ -159,7 +161,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
159
161
|
}
|
|
160
162
|
const atleastoneValidate = () => {
|
|
161
163
|
if (atleastone.querySelector('input:valid, input.is-valid')) {
|
|
162
|
-
Array.from(atleastone.querySelectorAll('input')).forEach(element => {
|
|
164
|
+
Array.from(atleastone.querySelectorAll('input')).forEach((element) => {
|
|
163
165
|
element.removeAttribute('required');
|
|
164
166
|
});
|
|
165
167
|
}
|
|
@@ -181,7 +183,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
181
183
|
input = this.querySelector(`[data-name-alt="${key}"]`);
|
|
182
184
|
else if (this.querySelector(`[name="${key}"]`))
|
|
183
185
|
input = this.querySelector(`[name="${key}"]`);
|
|
184
|
-
if (input && input.tagName ==
|
|
186
|
+
if (input && input.tagName == 'SELECT' && value.id) {
|
|
185
187
|
input.value = value.id;
|
|
186
188
|
}
|
|
187
189
|
else if (input && value != '') {
|
|
@@ -191,7 +193,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
191
193
|
input.classList.add('is-valid');
|
|
192
194
|
}
|
|
193
195
|
}
|
|
194
|
-
else if (value !=
|
|
196
|
+
else if (value != '') {
|
|
195
197
|
this.insertAdjacentHTML('beforeend', `<input type="hidden" class="inserted" data-hidden name="${key}" value="${value}" />`);
|
|
196
198
|
}
|
|
197
199
|
if (this.querySelector(`[data-name-2="${key}"]`))
|
|
@@ -208,6 +210,16 @@ class iamAddressLookup extends HTMLElement {
|
|
|
208
210
|
checkFilled(this);
|
|
209
211
|
};
|
|
210
212
|
const search = (searchValue_1, ...args_1) => __awaiter(this, [searchValue_1, ...args_1], void 0, function* (searchValue, paginate = false) {
|
|
213
|
+
var _a, _b;
|
|
214
|
+
if (!paginate && searchValue === cacheSearchQuery) {
|
|
215
|
+
if ((_a = list === null || list === void 0 ? void 0 : list.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
216
|
+
list === null || list === void 0 ? void 0 : list.classList.remove('loading');
|
|
217
|
+
list === null || list === void 0 ? void 0 : list.classList.remove('noresults');
|
|
218
|
+
listWrapper === null || listWrapper === void 0 ? void 0 : listWrapper.focus();
|
|
219
|
+
(_b = list === null || list === void 0 ? void 0 : list.querySelector('option')) === null || _b === void 0 ? void 0 : _b.focus();
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
211
223
|
// check if postcode is valid
|
|
212
224
|
const limit = this.hasAttribute('data-limit') ? parseInt(this.getAttribute('data-limit')) : 100;
|
|
213
225
|
if (paginate)
|
|
@@ -222,15 +234,15 @@ class iamAddressLookup extends HTMLElement {
|
|
|
222
234
|
const postcode = searchValue; // TODO: remove when postcode comes from response
|
|
223
235
|
if (this.hasAttribute('data-postcode')) {
|
|
224
236
|
if (!isValidPostcode(searchValue)) {
|
|
225
|
-
return
|
|
237
|
+
return 'Invalid postcode, please enter a valid postcode';
|
|
226
238
|
}
|
|
227
239
|
else {
|
|
228
240
|
if (!paginate)
|
|
229
|
-
list.innerHTML =
|
|
241
|
+
list.innerHTML = '';
|
|
230
242
|
list === null || list === void 0 ? void 0 : list.classList.add('loading');
|
|
231
243
|
list === null || list === void 0 ? void 0 : list.classList.remove('noresults');
|
|
232
244
|
lookup === null || lookup === void 0 ? void 0 : lookup.classList.remove('is-invalid');
|
|
233
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML =
|
|
245
|
+
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = '';
|
|
234
246
|
list === null || list === void 0 ? void 0 : list.classList.remove('show-welsh-banner');
|
|
235
247
|
Array.from(this.querySelectorAll('[data-required]')).forEach((input) => {
|
|
236
248
|
input.removeAttribute('required');
|
|
@@ -254,7 +266,7 @@ class iamAddressLookup extends HTMLElement {
|
|
|
254
266
|
window.controller[ajaxURL].abort();
|
|
255
267
|
// Create a new controller so it can be aborted if new fetch made
|
|
256
268
|
window.controller[ajaxURL] = new AbortController();
|
|
257
|
-
const { signal } = controller[ajaxURL];
|
|
269
|
+
const { signal } = window.controller[ajaxURL];
|
|
258
270
|
try {
|
|
259
271
|
return yield fetch(ajaxURL, {
|
|
260
272
|
signal: signal,
|
|
@@ -276,10 +288,18 @@ class iamAddressLookup extends HTMLElement {
|
|
|
276
288
|
addresses.forEach((address) => {
|
|
277
289
|
// Deal with agent platform response
|
|
278
290
|
if (typeof address.attributes == 'object' && address.attributes.label) {
|
|
291
|
+
if (address.id)
|
|
292
|
+
address.attributes.id = address.id;
|
|
293
|
+
if (address.relationships)
|
|
294
|
+
address.attributes = Object.assign(address.attributes, address.relationships);
|
|
279
295
|
const values = JSON.stringify(address.attributes);
|
|
280
296
|
listString += `<option data-values='${values}' >${address.attributes.label}</option>`;
|
|
281
297
|
}
|
|
282
298
|
else if (typeof address.value == 'object') {
|
|
299
|
+
if (address.id)
|
|
300
|
+
address.attributes.id = address.id;
|
|
301
|
+
if (address.relationships)
|
|
302
|
+
address.attributes = Object.assign(address.attributes, address.relationships);
|
|
283
303
|
const values = JSON.stringify(address.value);
|
|
284
304
|
listString += `<option data-values='${values}'>${address['label']}, ${postcode}</option>`;
|
|
285
305
|
}
|
|
@@ -304,6 +324,8 @@ class iamAddressLookup extends HTMLElement {
|
|
|
304
324
|
list.innerHTML += listString;
|
|
305
325
|
else
|
|
306
326
|
list.innerHTML = listString;
|
|
327
|
+
// Cache the search value to prevent further calls
|
|
328
|
+
cacheSearchQuery = searchValue;
|
|
307
329
|
if (addresses.length) {
|
|
308
330
|
list === null || list === void 0 ? void 0 : list.classList.remove('loading');
|
|
309
331
|
}
|
|
@@ -312,7 +334,10 @@ class iamAddressLookup extends HTMLElement {
|
|
|
312
334
|
list === null || list === void 0 ? void 0 : list.classList.add('noresults');
|
|
313
335
|
}
|
|
314
336
|
// pagination
|
|
315
|
-
if (response.meta &&
|
|
337
|
+
if (response.meta &&
|
|
338
|
+
response.meta.current_page &&
|
|
339
|
+
response.meta.total_pages &&
|
|
340
|
+
response.meta.total_pages > response.meta.current_page) {
|
|
316
341
|
paginationWrapper === null || paginationWrapper === void 0 ? void 0 : paginationWrapper.innerHTML = `<div class="bg-light text-center p-2"><p class="m-0">Showing 1-${response.meta.current_page * limit} of ${response.meta.total_results} addresses <br /><button type="button" data-next="${response.meta.current_page + 1}" class="mt-1 mb-0 btn btn-action"><i class="fa-regular fa-eye me-1"></i>Show more addresses</button></p></div>`;
|
|
317
342
|
}
|
|
318
343
|
else {
|
|
@@ -327,12 +352,32 @@ class iamAddressLookup extends HTMLElement {
|
|
|
327
352
|
});
|
|
328
353
|
}
|
|
329
354
|
catch (error) {
|
|
355
|
+
if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {
|
|
356
|
+
return true;
|
|
357
|
+
}
|
|
330
358
|
console.log(error);
|
|
331
|
-
return
|
|
359
|
+
return 'There has been a problem. Please try again in a few moments.';
|
|
332
360
|
}
|
|
333
361
|
});
|
|
362
|
+
let searchTimer;
|
|
363
|
+
const triggerSearch = (raw, paginate = false, immediate = false) => {
|
|
364
|
+
const value = (raw !== null && raw !== void 0 ? raw : '').trim();
|
|
365
|
+
if (value.length < minChars)
|
|
366
|
+
return;
|
|
367
|
+
if (immediate) {
|
|
368
|
+
if (searchTimer)
|
|
369
|
+
window.clearTimeout(searchTimer);
|
|
370
|
+
void search(value, paginate);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
if (searchTimer)
|
|
374
|
+
window.clearTimeout(searchTimer);
|
|
375
|
+
searchTimer = window.setTimeout(() => {
|
|
376
|
+
void search(value, paginate);
|
|
377
|
+
}, 200);
|
|
378
|
+
};
|
|
334
379
|
// #endregion
|
|
335
|
-
// #region check attributes and trigger functions
|
|
380
|
+
// #region check attributes and trigger functions
|
|
336
381
|
if (!this.hasAttribute('data-force-manual'))
|
|
337
382
|
checkFilled(this);
|
|
338
383
|
this.addEventListener('filled', () => {
|
|
@@ -383,14 +428,14 @@ class iamAddressLookup extends HTMLElement {
|
|
|
383
428
|
preFilledWrapper.classList.add('js-hide');
|
|
384
429
|
lookupWrapper.classList.remove('js-hide');
|
|
385
430
|
manualWrapper.classList.add('js-hide');
|
|
386
|
-
list.innerHTML =
|
|
431
|
+
list.innerHTML = '';
|
|
387
432
|
list === null || list === void 0 ? void 0 : list.classList.remove('loading');
|
|
388
433
|
list === null || list === void 0 ? void 0 : list.classList.remove('noresults');
|
|
389
434
|
lookup === null || lookup === void 0 ? void 0 : lookup.classList.remove('is-invalid');
|
|
390
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML =
|
|
435
|
+
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = '';
|
|
391
436
|
list === null || list === void 0 ? void 0 : list.classList.remove('show-welsh-banner');
|
|
392
437
|
lookup.focus();
|
|
393
|
-
lookup.value =
|
|
438
|
+
lookup.value = '';
|
|
394
439
|
if (lookup === null || lookup === void 0 ? void 0 : lookup.hasAttribute('data-placeholder'))
|
|
395
440
|
lookup.setAttribute('placeholder', lookup === null || lookup === void 0 ? void 0 : lookup.getAttribute('data-placeholder'));
|
|
396
441
|
const updateEvent = new CustomEvent('switch-to-lookup');
|
|
@@ -410,35 +455,30 @@ class iamAddressLookup extends HTMLElement {
|
|
|
410
455
|
this.dispatchEvent(updateEvent);
|
|
411
456
|
lookupWrapper.scrollIntoView();
|
|
412
457
|
});
|
|
413
|
-
lookup.addEventListener('keyup', (e) =>
|
|
414
|
-
if (
|
|
415
|
-
|
|
416
|
-
console.log(errorMsg);
|
|
417
|
-
console.log(valid);
|
|
418
|
-
if (valid != true) {
|
|
419
|
-
lookup === null || lookup === void 0 ? void 0 : lookup.classList.add('is-invalid');
|
|
420
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = valid;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
if (e.keyCode == 13) {
|
|
424
|
-
const valid = yield search(lookup.value);
|
|
425
|
-
if (valid != true) {
|
|
426
|
-
lookup === null || lookup === void 0 ? void 0 : lookup.classList.add('is-invalid');
|
|
427
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = valid;
|
|
428
|
-
}
|
|
458
|
+
lookup.addEventListener('keyup', (e) => {
|
|
459
|
+
if (e.keyCode === 13) {
|
|
460
|
+
triggerSearch(lookup.value, false, true);
|
|
429
461
|
}
|
|
430
|
-
})
|
|
431
|
-
lookup.addEventListener('
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
462
|
+
});
|
|
463
|
+
lookup.addEventListener('input', () => {
|
|
464
|
+
var _a;
|
|
465
|
+
lookup.classList.remove('is-invalid');
|
|
466
|
+
if (errorMsg)
|
|
467
|
+
errorMsg.innerHTML = '';
|
|
468
|
+
const v = ((_a = lookup.value) !== null && _a !== void 0 ? _a : '').trim();
|
|
469
|
+
if (v.length < minChars) {
|
|
470
|
+
list.innerHTML = '';
|
|
471
|
+
if (paginationWrapper) {
|
|
472
|
+
paginationWrapper.innerHTML = '';
|
|
437
473
|
}
|
|
474
|
+
list === null || list === void 0 ? void 0 : list.classList.remove('loading', 'noresults');
|
|
475
|
+
cacheSearchQuery = '';
|
|
476
|
+
return;
|
|
438
477
|
}
|
|
439
|
-
|
|
478
|
+
triggerSearch(v);
|
|
479
|
+
});
|
|
440
480
|
list.addEventListener('click', (e) => {
|
|
441
|
-
if (e.target.tagName ==
|
|
481
|
+
if (e.target.tagName == 'OPTION') {
|
|
442
482
|
const values = JSON.parse(e.target.getAttribute('data-values'));
|
|
443
483
|
fillInputs(values);
|
|
444
484
|
if (this.shadowRoot.querySelector('[name="use"]'))
|
|
@@ -451,38 +491,23 @@ class iamAddressLookup extends HTMLElement {
|
|
|
451
491
|
});
|
|
452
492
|
atleastoneValidate();
|
|
453
493
|
});
|
|
454
|
-
postcodeSubmit === null || postcodeSubmit === void 0 ? void 0 : postcodeSubmit.addEventListener('click', () =>
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
lookup === null || lookup === void 0 ? void 0 : lookup.classList.add('is-invalid');
|
|
458
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = valid;
|
|
459
|
-
}
|
|
460
|
-
}));
|
|
461
|
-
this === null || this === void 0 ? void 0 : this.addEventListener('search', () => __awaiter(this, void 0, void 0, function* () {
|
|
462
|
-
const valid = yield search(lookup.value);
|
|
463
|
-
if (valid != true) {
|
|
464
|
-
lookup === null || lookup === void 0 ? void 0 : lookup.classList.add('is-invalid');
|
|
465
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = valid;
|
|
466
|
-
}
|
|
467
|
-
}));
|
|
494
|
+
postcodeSubmit === null || postcodeSubmit === void 0 ? void 0 : postcodeSubmit.addEventListener('click', () => {
|
|
495
|
+
triggerSearch(lookup.value, false, true);
|
|
496
|
+
});
|
|
468
497
|
this === null || this === void 0 ? void 0 : this.addEventListener('close-button-pressed', () => {
|
|
469
|
-
list.innerHTML =
|
|
498
|
+
list.innerHTML = '';
|
|
470
499
|
list === null || list === void 0 ? void 0 : list.classList.remove('loading');
|
|
471
500
|
list === null || list === void 0 ? void 0 : list.classList.remove('noresults');
|
|
472
501
|
lookup === null || lookup === void 0 ? void 0 : lookup.classList.remove('is-invalid');
|
|
473
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML =
|
|
502
|
+
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = '';
|
|
474
503
|
list === null || list === void 0 ? void 0 : list.classList.remove('show-welsh-banner');
|
|
475
504
|
lookup.focus();
|
|
476
505
|
});
|
|
477
|
-
paginationWrapper === null || paginationWrapper === void 0 ? void 0 : paginationWrapper.addEventListener('click', (e) =>
|
|
478
|
-
if (e.target.tagName
|
|
479
|
-
|
|
480
|
-
if (valid != true) {
|
|
481
|
-
lookup === null || lookup === void 0 ? void 0 : lookup.classList.add('is-invalid');
|
|
482
|
-
errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.innerHTML = valid;
|
|
483
|
-
}
|
|
506
|
+
paginationWrapper === null || paginationWrapper === void 0 ? void 0 : paginationWrapper.addEventListener('click', (e) => {
|
|
507
|
+
if (e.target.tagName === 'BUTTON') {
|
|
508
|
+
triggerSearch(lookup.value, true, true);
|
|
484
509
|
}
|
|
485
|
-
})
|
|
510
|
+
});
|
|
486
511
|
// #endregion
|
|
487
512
|
// #region Matched address
|
|
488
513
|
if (this.hasAttribute('data-matched')) {
|