@iamproperty/components 7.5.1--beta2 → 7.5.1--beta3

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 (133) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/address-lookup.preload.css +1 -0
  6. package/assets/css/components/address-lookup.preload.css.map +1 -0
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/calendar.component.css +1 -1
  10. package/assets/css/components/calendar.component.css.map +1 -1
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/collapsible-side.css +1 -1
  16. package/assets/css/components/collapsible-side.css.map +1 -1
  17. package/assets/css/components/content.component.css +1 -1
  18. package/assets/css/components/content.component.css.map +1 -1
  19. package/assets/css/components/doughnutchart.component.css +1 -1
  20. package/assets/css/components/doughnutchart.component.css.map +1 -1
  21. package/assets/css/components/fileupload.css +1 -1
  22. package/assets/css/components/fileupload.css.map +1 -1
  23. package/assets/css/components/inline-edit.css +1 -1
  24. package/assets/css/components/inline-edit.css.map +1 -1
  25. package/assets/css/components/multiselect.css +1 -1
  26. package/assets/css/components/multiselect.css.map +1 -1
  27. package/assets/css/components/nav.component.css +1 -1
  28. package/assets/css/components/nav.component.css.map +1 -1
  29. package/assets/css/components/pagination.css +1 -1
  30. package/assets/css/components/pagination.css.map +1 -1
  31. package/assets/css/components/slider.css +1 -1
  32. package/assets/css/components/slider.css.map +1 -1
  33. package/assets/css/components/split-button.component.css +1 -1
  34. package/assets/css/components/split-button.component.css.map +1 -1
  35. package/assets/css/components/table-basic.global.css +1 -1
  36. package/assets/css/components/table-basic.global.css.map +1 -1
  37. package/assets/css/components/table.global.css +1 -1
  38. package/assets/css/components/table.global.css.map +1 -1
  39. package/assets/css/components/tabs.component.css +1 -1
  40. package/assets/css/components/tabs.component.css.map +1 -1
  41. package/assets/css/core.min.css +1 -1
  42. package/assets/css/core.min.css.map +1 -1
  43. package/assets/css/mobile-core.min.css +1 -1
  44. package/assets/css/mobile-core.min.css.map +1 -1
  45. package/assets/css/mobile.min.css +1 -1
  46. package/assets/css/mobile.min.css.map +1 -1
  47. package/assets/css/style.min.css +1 -1
  48. package/assets/css/style.min.css.map +1 -1
  49. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  50. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  51. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  52. package/assets/js/components/address-lookup/address-lookup.component.js +332 -102
  53. package/assets/js/components/address-lookup/address-lookup.component.min.js +32 -14
  54. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  55. package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
  56. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  57. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  58. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  59. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  60. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  61. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  62. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  63. package/assets/js/components/card/card.component.min.js +2 -2
  64. package/assets/js/components/carousel/carousel.component.min.js +2 -2
  65. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  66. package/assets/js/components/content/content.component.min.js +2 -2
  67. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  68. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  69. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  70. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  71. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  72. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  73. package/assets/js/components/header/header.component.min.js +1 -1
  74. package/assets/js/components/inline-edit/inline-edit.component.min.js +3 -3
  75. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  76. package/assets/js/components/menu/menu.component.min.js +1 -1
  77. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  78. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  79. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  80. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  81. package/assets/js/components/nav/nav.component.min.js +5 -5
  82. package/assets/js/components/notification/notification.component.min.js +1 -1
  83. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  84. package/assets/js/components/password-indicator/password-indicator.component.min.js +1 -1
  85. package/assets/js/components/rank/rank.component.min.js +1 -1
  86. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  87. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  88. package/assets/js/components/search/search.component.js +64 -24
  89. package/assets/js/components/search/search.component.min.js +5 -5
  90. package/assets/js/components/search/search.component.min.js.map +1 -1
  91. package/assets/js/components/slider/slider.component.min.js +3 -3
  92. package/assets/js/components/split-button/split-button.component.min.js +3 -3
  93. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1715 -0
  94. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +172 -0
  95. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -0
  96. package/assets/js/components/table/table.component.min.js +2 -2
  97. package/assets/js/components/table/table.component.min.js.map +1 -1
  98. package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
  99. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  100. package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
  101. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  102. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +5 -5
  103. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  104. package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
  105. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  106. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  107. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  108. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  109. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  110. package/assets/js/modules/advanced-select.js +26 -25
  111. package/assets/js/modules/helpers.js +15 -3
  112. package/assets/js/scripts.bundle.js +3 -3
  113. package/assets/js/scripts.bundle.js.map +1 -1
  114. package/assets/js/scripts.bundle.min.js +2 -2
  115. package/assets/js/scripts.bundle.min.js.map +1 -1
  116. package/assets/sass/_components.scss +6 -0
  117. package/assets/sass/components/address-lookup.component.scss +91 -5
  118. package/assets/sass/components/address-lookup.preload.scss +81 -0
  119. package/assets/sass/components/table-basic.global.scss +175 -0
  120. package/assets/sass/components/table.global.scss +0 -163
  121. package/assets/sass/elements/buttons--action.scss +26 -0
  122. package/assets/sass/elements/buttons--global.scss +1 -4
  123. package/assets/sass/elements/forms.scss +181 -35
  124. package/assets/ts/components/address-lookup/address-lookup.component.ts +421 -108
  125. package/assets/ts/components/advanced-select/advanced-select.component.ts +1 -0
  126. package/assets/ts/components/search/search.component.ts +85 -26
  127. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1760 -0
  128. package/assets/ts/modules/advanced-select.ts +36 -26
  129. package/assets/ts/modules/helpers.ts +17 -3
  130. package/dist/components.es.js +144 -144
  131. package/dist/components.umd.js +372 -187
  132. package/package.json +1 -1
  133. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -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
- const searched = [];
52
- let ajaxURL = this.getAttribute('data-url');
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, true);
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
- displayInputField.value = match.getAttribute('data-value');
94
- } else if (displayInputField.value.length > 0 && !subMatch) {
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
- } else {
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
- // on change update oringinal field with the actual value and use displayed input for the nice display text
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,6 +160,18 @@ class iamSearch extends HTMLElement {
160
160
 
161
161
  datalist.innerHTML += listString;
162
162
 
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
+
163
175
  displayInputField.closest('form').classList.add('was-validated');
164
176
  checkMatch();
165
177
 
@@ -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