@iamproperty/components 7.5.1--beta2 → 7.5.1--beta4
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/address-lookup.preload.css +1 -0
- package/assets/css/components/address-lookup.preload.css.map +1 -0
- 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/inline-edit.css +1 -1
- package/assets/css/components/inline-edit.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/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/table-basic.global.css +1 -1
- package/assets/css/components/table-basic.global.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.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/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/mobile-core.min.css +1 -1
- package/assets/css/mobile-core.min.css.map +1 -1
- package/assets/css/mobile.min.css +1 -1
- package/assets/css/mobile.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 +4 -4
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +336 -102
- package/assets/js/components/address-lookup/address-lookup.component.min.js +32 -14
- 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 +2 -2
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +5 -5
- package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
- package/assets/js/components/card/card.component.min.js +2 -2
- package/assets/js/components/carousel/carousel.component.min.js +2 -2
- 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 +2 -2
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- 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 +3 -3
- 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/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- package/assets/js/components/nav/nav.component.min.js +5 -5
- 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-indicator/password-indicator.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/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.js +65 -25
- 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 +3 -3
- package/assets/js/components/split-button/split-button.component.min.js +3 -3
- package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1715 -0
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +172 -0
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -0
- package/assets/js/components/table/table.component.min.js +2 -2
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +5 -5
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +2 -2
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +35 -26
- package/assets/js/modules/helpers.js +19 -3
- package/assets/js/scripts.bundle.js +3 -3
- 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/tests/helpers.spec.js +26 -0
- package/assets/sass/_components.scss +6 -0
- package/assets/sass/components/address-lookup.component.scss +91 -5
- package/assets/sass/components/address-lookup.preload.scss +81 -0
- package/assets/sass/components/table-basic.global.scss +175 -0
- package/assets/sass/components/table.global.scss +0 -163
- package/assets/sass/elements/buttons--action.scss +26 -0
- package/assets/sass/elements/buttons--global.scss +1 -4
- package/assets/sass/elements/forms.scss +182 -37
- package/assets/ts/components/address-lookup/address-lookup.component.ts +432 -109
- package/assets/ts/components/advanced-select/advanced-select.component.ts +1 -0
- package/assets/ts/components/search/search.component.ts +86 -27
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1757 -0
- package/assets/ts/modules/advanced-select.ts +55 -27
- package/assets/ts/modules/helpers.ts +25 -3
- package/assets/ts/tests/helpers.spec.ts +38 -0
- package/dist/components.es.js +144 -144
- package/dist/components.umd.js +376 -191
- package/package.json +2 -1
- package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -0
- /package/assets/js/{tests → ui-tests}/card.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/carousel.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/chart.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/fileupload.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/filterlist.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/multistep.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/slider.spec.js +0 -0
- /package/assets/js/{tests → ui-tests}/table.spec.js +0 -0
- /package/assets/ts/{tests → ui-tests}/card.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/carousel.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/chart.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/data-layer.spec.js +0 -0
- /package/assets/ts/{tests → ui-tests}/fileupload.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/filterlist.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/multistep.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/slider.spec.ts +0 -0
- /package/assets/ts/{tests → ui-tests}/table.spec.ts +0 -0
|
@@ -1,50 +1,53 @@
|
|
|
1
1
|
function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false): boolean | void {
|
|
2
2
|
let currentFocus = -1;
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const datalistWrapper = datalist.closest('.datalist__wrapper') ? datalist.closest('.datalist__wrapper') : datalist;
|
|
5
|
+
|
|
6
|
+
// Hide the default datalist
|
|
7
|
+
displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));
|
|
8
|
+
displayInputField.setAttribute('list', '');
|
|
9
|
+
|
|
10
|
+
if(displayInputField.hasAttribute('placeholder'))
|
|
11
|
+
displayInputField.setAttribute('data-placeholder', displayInputField.getAttribute('placeholder'));
|
|
12
|
+
|
|
13
|
+
if(displayInputField.hasAttribute('placeholder'))
|
|
14
|
+
displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));
|
|
15
|
+
|
|
16
|
+
displayInputField.addEventListener('focus', function () {
|
|
17
|
+
|
|
18
|
+
if(displayInputField.value != ""){
|
|
19
|
+
|
|
6
20
|
displayInputField.setAttribute('placeholder', displayInputField.value);
|
|
7
21
|
displayInputField.setAttribute('data-value', displayInputField.value);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));
|
|
11
|
-
displayInputField.setAttribute('list', '');
|
|
22
|
+
}
|
|
23
|
+
displayInputField.value = '';
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
});
|
|
15
|
-
} else {
|
|
16
|
-
displayInputField.addEventListener('focus', function () {
|
|
17
|
-
displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));
|
|
18
|
-
displayInputField.setAttribute('list', '');
|
|
25
|
+
});
|
|
19
26
|
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
}
|
|
27
|
+
|
|
23
28
|
|
|
24
29
|
displayInputField.addEventListener('blur', function () {
|
|
25
30
|
if (displayInputField.hasAttribute('data-value')) {
|
|
26
31
|
displayInputField.value = displayInputField.getAttribute('data-value');
|
|
27
32
|
}
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}, 500);
|
|
34
|
+
if(displayInputField.hasAttribute('data-placeholder'))
|
|
35
|
+
displayInputField.setAttribute('placeholder',displayInputField.getAttribute('data-placeholder'));
|
|
32
36
|
});
|
|
33
37
|
|
|
34
38
|
for (const option of datalist.options) {
|
|
35
39
|
if (option.innerHTML == '') option.innerHTML = option.value;
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
datalist.addEventListener('click', function (event) {
|
|
43
|
+
|
|
44
|
+
if (event && event.target instanceof HTMLElement && event.target.closest('option')) {
|
|
45
|
+
const option = event.target.closest('option');
|
|
41
46
|
|
|
42
47
|
displayInputField.value = option.value;
|
|
43
48
|
|
|
44
49
|
if (typeof window.triggerDynamicEvent == 'function') window.triggerDynamicEvent(displayInputField);
|
|
45
50
|
|
|
46
|
-
datalist.style.display = 'none';
|
|
47
|
-
|
|
48
51
|
for (const optionInner of datalist.options) {
|
|
49
52
|
optionInner.classList.remove('active');
|
|
50
53
|
}
|
|
@@ -60,13 +63,16 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
|
|
|
60
63
|
for (const option of datalist.options) {
|
|
61
64
|
if (option.value.toUpperCase().indexOf(text) > -1) {
|
|
62
65
|
option.style.display = 'block';
|
|
66
|
+
option.classList.remove('hide');
|
|
63
67
|
} else {
|
|
64
68
|
option.style.display = 'none';
|
|
69
|
+
option.classList.add('hide');
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
});
|
|
68
73
|
|
|
69
|
-
|
|
74
|
+
advancedSelect.addEventListener('keydown', function (e) {
|
|
75
|
+
|
|
70
76
|
if (e.keyCode == 40) {
|
|
71
77
|
currentFocus++;
|
|
72
78
|
addActive(datalist.options);
|
|
@@ -91,6 +97,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
|
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
function removeActive(x): void {
|
|
100
|
+
if (!x) return false;
|
|
94
101
|
for (let i = 0; i < x.length; i++) {
|
|
95
102
|
x[i].classList.remove('active');
|
|
96
103
|
}
|
|
@@ -103,10 +110,13 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
|
|
|
103
110
|
'beforeend',
|
|
104
111
|
'<button class="empty btn btn-action"><i class="fa-light fa-times me-0"></i></button>'
|
|
105
112
|
);
|
|
106
|
-
const closeBtn = advancedSelect.querySelector('.empty');
|
|
107
113
|
|
|
108
|
-
|
|
109
|
-
|
|
114
|
+
|
|
115
|
+
const emptyField = () => {
|
|
116
|
+
if(displayInputField.hasAttribute('data-original-placeholder'))
|
|
117
|
+
displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));
|
|
118
|
+
|
|
119
|
+
|
|
110
120
|
displayInputField.removeAttribute('data-value');
|
|
111
121
|
displayInputField.value = '';
|
|
112
122
|
|
|
@@ -114,6 +124,24 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
|
|
|
114
124
|
optionInner.classList.remove('active');
|
|
115
125
|
optionInner.removeAttribute('style');
|
|
116
126
|
}
|
|
127
|
+
|
|
128
|
+
const updateEvent = new CustomEvent('close-button-pressed');
|
|
129
|
+
advancedSelect.dispatchEvent(updateEvent);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
const closeBtn = advancedSelect.querySelector('.empty') ? advancedSelect.querySelector('.empty') : advancedSelect.shadowRoot.querySelector('.empty');
|
|
136
|
+
|
|
137
|
+
closeBtn.addEventListener('click', function (e) {
|
|
138
|
+
|
|
139
|
+
emptyField();
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
advancedSelect.addEventListener('empty', function (e) {
|
|
143
|
+
|
|
144
|
+
emptyField();
|
|
117
145
|
});
|
|
118
146
|
}
|
|
119
147
|
|
|
@@ -54,9 +54,22 @@ export const addGlobalEvents = (body): void => {
|
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
document.
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
Array.from(document.querySelectorAll('form')).forEach((form) => {
|
|
58
|
+
form.addEventListener('submit', (event) => {
|
|
59
|
+
if (
|
|
60
|
+
form.querySelector(':invalid')
|
|
61
|
+
) {
|
|
62
|
+
form.classList.add('was-validated');
|
|
63
|
+
form?.querySelector('input:invalid')?.scrollIntoView();
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
document.addEventListener('click', (event) => {
|
|
70
|
+
|
|
71
|
+
if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {
|
|
72
|
+
const form = event.target.closest('form');
|
|
60
73
|
|
|
61
74
|
// Reset password types
|
|
62
75
|
Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {
|
|
@@ -69,6 +82,7 @@ export const addGlobalEvents = (body): void => {
|
|
|
69
82
|
form.querySelector('.pwd-checker[data-strength="2"]')
|
|
70
83
|
) {
|
|
71
84
|
form.classList.add('was-validated');
|
|
85
|
+
form?.querySelector('input:invalid')?.scrollIntoView();
|
|
72
86
|
event.preventDefault();
|
|
73
87
|
}
|
|
74
88
|
|
|
@@ -183,3 +197,11 @@ export const uniqueID = (index = 1): number => {
|
|
|
183
197
|
|
|
184
198
|
return ID;
|
|
185
199
|
};
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
export const isValidPostcode = (searchValue: string): boolean => {
|
|
203
|
+
|
|
204
|
+
const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;
|
|
205
|
+
|
|
206
|
+
return regexp.test(searchValue.trim());
|
|
207
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { isValidPostcode } from '../modules/helpers';
|
|
3
|
+
|
|
4
|
+
describe('The postcode helper function', () => {
|
|
5
|
+
|
|
6
|
+
test('should return true when testing the postcode "ne33hd"', () => {
|
|
7
|
+
|
|
8
|
+
expect(isValidPostcode("ne33hd")).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
test('should return true when testing the postcode "ne3 3hd"', () => {
|
|
11
|
+
|
|
12
|
+
expect(isValidPostcode("ne3 3hd")).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
test('should return true when testing the postcode "NE3 3HD"', () => {
|
|
15
|
+
|
|
16
|
+
expect(isValidPostcode("NE3 3HD")).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
test('should return true when testing the postcode "NE33HD"', () => {
|
|
19
|
+
|
|
20
|
+
expect(isValidPostcode("NE33HD")).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test('should return true when testing the postcode " NE33HD"', () => {
|
|
24
|
+
|
|
25
|
+
expect(isValidPostcode(" NE33HD")).toBe(true);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('should return true when testing the postcode " NE33HD "', () => {
|
|
29
|
+
|
|
30
|
+
expect(isValidPostcode(" NE33HD ")).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// false results
|
|
34
|
+
test('should return false when testing the postcode "NE3"', () => {
|
|
35
|
+
|
|
36
|
+
expect(isValidPostcode("NE3")).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
});
|