@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
|
@@ -48,8 +48,12 @@ class iamSearch extends HTMLElement {
|
|
|
48
48
|
const displaySchema = this.hasAttribute('data-display-schema') ? this.getAttribute('data-display-schema') : 'label';
|
|
49
49
|
const loopSchema = this.hasAttribute('data-schema') ? this.getAttribute('data-schema') : '';
|
|
50
50
|
let datalist = this.querySelector('datalist');
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
let minLength = 0;
|
|
52
|
+
|
|
53
|
+
if (searchWrapper.hasAttribute('data-url')) {
|
|
54
|
+
|
|
55
|
+
minLength = 3;
|
|
56
|
+
}
|
|
53
57
|
|
|
54
58
|
// Clone original input field, re-name and use for display purposes
|
|
55
59
|
const displayInputField = inputField.cloneNode();
|
|
@@ -72,40 +76,36 @@ class iamSearch extends HTMLElement {
|
|
|
72
76
|
displayInputField.setAttribute('list', listID);
|
|
73
77
|
}
|
|
74
78
|
|
|
75
|
-
advancedSelect(this, displayInputField, datalist,
|
|
79
|
+
advancedSelect(this, displayInputField, datalist, false);
|
|
76
80
|
|
|
77
|
-
// Search the endpoint when 3 characters has been added
|
|
78
|
-
if (searchWrapper.hasAttribute('data-url')) {
|
|
79
|
-
displayInputField.addEventListener('input', () => {
|
|
80
|
-
if (displayInputField.value.length == 3 && !searched.includes(displayInputField.value)) {
|
|
81
|
-
search(displayInputField.value);
|
|
82
|
-
searched.push(displayInputField.value);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
81
|
|
|
87
82
|
function checkMatch(): void {
|
|
88
|
-
const match = datalist.querySelector(`option[value="${displayInputField.value}"]`);
|
|
83
|
+
const match = datalist.querySelector(`option[value="${displayInputField.value}" i]`);
|
|
89
84
|
const subMatch = datalist.querySelector(`option[value*="${displayInputField.value}" i]`);
|
|
90
85
|
|
|
91
86
|
if (match) {
|
|
92
|
-
inputField.value = match.getAttribute('data-value');
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
inputField.value = match.getAttribute('data-actual-value');
|
|
88
|
+
console.log(inputField)
|
|
89
|
+
displayInputField.value = match.getAttribute('data-actual-value');
|
|
90
|
+
|
|
91
|
+
displayInputField.classList.remove('is-invalid');
|
|
92
|
+
displayInputField.closest('label').removeAttribute('data-error');
|
|
93
|
+
}
|
|
94
|
+
else if (displayInputField.value.length >= minLength && !subMatch) {
|
|
95
95
|
displayInputField.classList.add('is-invalid');
|
|
96
96
|
displayInputField.closest('label').setAttribute('data-error', 'No results returned');
|
|
97
|
-
|
|
97
|
+
datalist.innerHTML = '';
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
98
100
|
displayInputField.classList.remove('is-invalid');
|
|
99
101
|
displayInputField.closest('label').removeAttribute('data-error');
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
displayInputField.addEventListener('input', () => {
|
|
105
|
-
checkMatch();
|
|
106
|
-
});
|
|
107
|
-
|
|
105
|
+
|
|
108
106
|
const search = async (searchterm): any => {
|
|
107
|
+
|
|
108
|
+
let ajaxURL = this.getAttribute('data-url');
|
|
109
109
|
ajaxURL += `${encodeURI(searchterm)}`;
|
|
110
110
|
|
|
111
111
|
// Setup controller vars if not already set
|
|
@@ -141,8 +141,8 @@ class iamSearch extends HTMLElement {
|
|
|
141
141
|
const actualValue = resolvePath(item, valueSchema, '');
|
|
142
142
|
const displayValue = resolvePath(item, displaySchema, '').replace('\n', ', ');
|
|
143
143
|
|
|
144
|
-
if (!datalist.querySelector(`option[data-value="${actualValue}"]`))
|
|
145
|
-
listString += `<option value="${displayValue}" data-value="${actualValue}">${displayValue}</option>`;
|
|
144
|
+
if (!datalist.querySelector(`option[data-actual-value="${actualValue}"]`))
|
|
145
|
+
listString += `<option value="${displayValue}" data-actual-value="${actualValue}">${displayValue}</option>`;
|
|
146
146
|
});
|
|
147
147
|
} else if (typeof loopValues == 'object') {
|
|
148
148
|
for (const [key, value] of Object.entries(loopValues)) {
|
|
@@ -151,8 +151,8 @@ class iamSearch extends HTMLElement {
|
|
|
151
151
|
const actualValue = resolvePath(item, valueSchema, '');
|
|
152
152
|
const displayValue = resolvePath(item, displaySchema, '').replace('\n', ', ');
|
|
153
153
|
|
|
154
|
-
if (!datalist.querySelector(`option[data-value="${actualValue}"]`))
|
|
155
|
-
listString += `<option value="${key}: ${displayValue}" data-value='${actualValue}'>${key}: ${displayValue}</option>`;
|
|
154
|
+
if (!datalist.querySelector(`option[data-actual-value="${actualValue}"]`))
|
|
155
|
+
listString += `<option value="${key}: ${displayValue}" data-actual-value='${actualValue}'>${key}: ${displayValue}</option>`;
|
|
156
156
|
});
|
|
157
157
|
}
|
|
158
158
|
}
|
|
@@ -160,7 +160,19 @@ class iamSearch extends HTMLElement {
|
|
|
160
160
|
|
|
161
161
|
datalist.innerHTML += listString;
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
// filter the list on the client side just in case
|
|
164
|
+
const text = searchterm.toUpperCase();
|
|
165
|
+
for (const option of datalist.options) {
|
|
166
|
+
if (option.value.toUpperCase().indexOf(text) > -1) {
|
|
167
|
+
option.style.display = 'block';
|
|
168
|
+
option.classList.remove('hide');
|
|
169
|
+
} else {
|
|
170
|
+
option.style.display = 'none';
|
|
171
|
+
option.classList.add('hide');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
searchWrapper.classList.add('was-validated');
|
|
164
176
|
checkMatch();
|
|
165
177
|
|
|
166
178
|
return response;
|
|
@@ -170,6 +182,53 @@ class iamSearch extends HTMLElement {
|
|
|
170
182
|
}
|
|
171
183
|
};
|
|
172
184
|
|
|
185
|
+
|
|
186
|
+
datalist.addEventListener('click', function (event) {
|
|
187
|
+
|
|
188
|
+
if (event && event.target instanceof HTMLElement && event.target.closest('option')) {
|
|
189
|
+
|
|
190
|
+
const option = event.target.closest('option');
|
|
191
|
+
const value = option?.hasAttribute('data-actual-value') ? option?.getAttribute('data-actual-value') : option?.getAttribute('data-value');
|
|
192
|
+
inputField.value = value;
|
|
193
|
+
|
|
194
|
+
const changeEvent = new CustomEvent('value-change', {
|
|
195
|
+
detail: { value: value },
|
|
196
|
+
});
|
|
197
|
+
searchWrapper.dispatchEvent(changeEvent);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
this.addEventListener('close-button-pressed', function (event) {
|
|
202
|
+
|
|
203
|
+
datalist.innerHTML = '';
|
|
204
|
+
inputField?.value = '';
|
|
205
|
+
|
|
206
|
+
displayInputField.classList.remove('is-invalid');
|
|
207
|
+
displayInputField.closest('label').removeAttribute('data-error');
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
// Search the endpoint when 3 characters has been added
|
|
212
|
+
if (searchWrapper.hasAttribute('data-url')) {
|
|
213
|
+
|
|
214
|
+
displayInputField.addEventListener('input', () => {
|
|
215
|
+
|
|
216
|
+
if(displayInputField.value.length < minLength){
|
|
217
|
+
datalist.innerHTML = '';
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
if (displayInputField.value.length == minLength) {
|
|
221
|
+
search(displayInputField.value);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
// on change update oringinal field with the actual value and use displayed input for the nice display text
|
|
227
|
+
displayInputField.addEventListener('input', () => {
|
|
228
|
+
checkMatch();
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
|
|
173
232
|
if (searchWrapper.hasAttribute('data-prevent-submit')) {
|
|
174
233
|
const form = searchWrapper.closest('form');
|
|
175
234
|
|