@iamproperty/components 7.5.1--beta9 → 7.5.1--beta10

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 (150) 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/actionbar.global.css.map +1 -1
  4. package/assets/css/components/address-lookup.component.css +1 -1
  5. package/assets/css/components/address-lookup.component.css.map +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/barchart.component.css.map +1 -1
  8. package/assets/css/components/calendar.component.css +1 -1
  9. package/assets/css/components/calendar.component.css.map +1 -1
  10. package/assets/css/components/calendar.config.css.map +1 -1
  11. package/assets/css/components/card.component.css.map +1 -1
  12. package/assets/css/components/carousel.component.css.map +1 -1
  13. package/assets/css/components/carousel.config.css.map +1 -1
  14. package/assets/css/components/charts.config.css.map +1 -1
  15. package/assets/css/components/collapsible-side.css.map +1 -1
  16. package/assets/css/components/content.component.css.map +1 -1
  17. package/assets/css/components/doughnutchart.component.css.map +1 -1
  18. package/assets/css/components/fileupload.css +1 -1
  19. package/assets/css/components/fileupload.css.map +1 -1
  20. package/assets/css/components/header.css.map +1 -1
  21. package/assets/css/components/inline-edit.css.map +1 -1
  22. package/assets/css/components/inline-edit.preload.css.map +1 -1
  23. package/assets/css/components/marketing.component.css.map +1 -1
  24. package/assets/css/components/menu.global.css.map +1 -1
  25. package/assets/css/components/modal.component.css.map +1 -1
  26. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  27. package/assets/css/components/multi-step-modal.global.css.map +1 -1
  28. package/assets/css/components/multi-step.component.css.map +1 -1
  29. package/assets/css/components/multiselect.css +1 -1
  30. package/assets/css/components/multiselect.css.map +1 -1
  31. package/assets/css/components/multiselect.preload.css.map +1 -1
  32. package/assets/css/components/nav.component.css +1 -1
  33. package/assets/css/components/nav.component.css.map +1 -1
  34. package/assets/css/components/nav.docs.css.map +1 -1
  35. package/assets/css/components/nav.global.css.map +1 -1
  36. package/assets/css/components/nav.preload.css.map +1 -1
  37. package/assets/css/components/notification.css.map +1 -1
  38. package/assets/css/components/pagination.css +1 -1
  39. package/assets/css/components/pagination.css.map +1 -1
  40. package/assets/css/components/property-searchbar.css.map +1 -1
  41. package/assets/css/components/rank.component.css.map +1 -1
  42. package/assets/css/components/rankings.component.css.map +1 -1
  43. package/assets/css/components/rankings.global.css.map +1 -1
  44. package/assets/css/components/slider.css +1 -1
  45. package/assets/css/components/slider.css.map +1 -1
  46. package/assets/css/components/snapshot.css.map +1 -1
  47. package/assets/css/components/split-button.component.css.map +1 -1
  48. package/assets/css/components/stepper.css.map +1 -1
  49. package/assets/css/components/table-basic.component.css.map +1 -1
  50. package/assets/css/components/table-basic.global.css +1 -1
  51. package/assets/css/components/table-basic.global.css.map +1 -1
  52. package/assets/css/components/table.component.css.map +1 -1
  53. package/assets/css/components/table.global.css +1 -1
  54. package/assets/css/components/table.global.css.map +1 -1
  55. package/assets/css/components/tabs.component.css +1 -1
  56. package/assets/css/components/tabs.component.css.map +1 -1
  57. package/assets/css/components/tabs.config.css.map +1 -1
  58. package/assets/css/components/testimonial.css.map +1 -1
  59. package/assets/css/components/timeline.css.map +1 -1
  60. package/assets/css/core.min.css +1 -1
  61. package/assets/css/core.min.css.map +1 -1
  62. package/assets/css/mobile-core.min.css +1 -1
  63. package/assets/css/mobile-core.min.css.map +1 -1
  64. package/assets/css/mobile.min.css +1 -1
  65. package/assets/css/mobile.min.css.map +1 -1
  66. package/assets/css/style.min.css +1 -1
  67. package/assets/css/style.min.css.map +1 -1
  68. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  69. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  70. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  71. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  72. package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
  73. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  74. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  75. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  76. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  77. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  78. package/assets/js/components/card/card.component.min.js +1 -1
  79. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  80. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  81. package/assets/js/components/content/content.component.min.js +1 -1
  82. package/assets/js/components/darkmode/darkmode.component.js +5 -1
  83. package/assets/js/components/darkmode/darkmode.component.min.js +2 -2
  84. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  85. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  86. package/assets/js/components/fileupload/fileupload.component.min.js +3 -3
  87. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  88. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  89. package/assets/js/components/header/header.component.min.js +1 -1
  90. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  91. package/assets/js/components/input/input.component.js +82 -1
  92. package/assets/js/components/input/input.component.min.js +4 -4
  93. package/assets/js/components/input/input.component.min.js.map +1 -1
  94. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  95. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  96. package/assets/js/components/menu/menu.component.min.js +1 -1
  97. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  98. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  99. package/assets/js/components/modal/modal.component.min.js +1 -1
  100. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  101. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  102. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  103. package/assets/js/components/nav/nav.component.min.js +2 -2
  104. package/assets/js/components/notification/notification.component.min.js +1 -1
  105. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  106. package/assets/js/components/password/password.component.min.js +1 -1
  107. package/assets/js/components/rank/rank.component.min.js +1 -1
  108. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  109. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  110. package/assets/js/components/search/search.component.min.js +5 -5
  111. package/assets/js/components/search/search.component.min.js.map +1 -1
  112. package/assets/js/components/slider/slider.component.min.js +2 -2
  113. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  114. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1 -1
  115. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +7 -7
  116. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  117. package/assets/js/components/table/table.component.min.js +5 -5
  118. package/assets/js/components/table/table.component.min.js.map +1 -1
  119. package/assets/js/components/table-ajax/table-ajax.component.min.js +5 -5
  120. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  121. package/assets/js/components/table-basic/table-basic.component.min.js +3 -3
  122. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  123. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
  124. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  125. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  126. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  127. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  128. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  129. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  130. package/assets/js/modules/advanced-select.js +6 -0
  131. package/assets/js/modules/table.js +48 -163
  132. package/assets/js/scripts.bundle.js +1 -1
  133. package/assets/js/scripts.bundle.min.js +1 -1
  134. package/assets/sass/_elements.scss +5 -0
  135. package/assets/sass/_functions/mixins.scss +53 -0
  136. package/assets/sass/components/actionbar.component.scss +8 -1
  137. package/assets/sass/components/address-lookup.component.scss +1 -0
  138. package/assets/sass/components/table-basic.global.scss +0 -6
  139. package/assets/sass/elements/feature.scss +53 -0
  140. package/assets/sass/elements/forms.scss +10 -187
  141. package/assets/sass/elements/input.scss +177 -0
  142. package/assets/sass/elements/links.scss +7 -1
  143. package/assets/ts/components/darkmode/darkmode.component.ts +6 -2
  144. package/assets/ts/components/input/input.component.ts +109 -1
  145. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1 -1
  146. package/assets/ts/modules/advanced-select.ts +8 -0
  147. package/assets/ts/modules/table.ts +14 -160
  148. package/dist/components.es.js +29 -29
  149. package/dist/components.umd.js +107 -107
  150. package/package.json +4 -4
@@ -20,7 +20,7 @@ class iamInput extends HTMLElement {
20
20
  <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous">
21
21
  <div class="wrapper" part="wrapper">
22
22
  <span part="prefix"><slot name="prefix"></slot></span>
23
- <slot></slot>
23
+ <slot part="input-wrapper"></slot>
24
24
  <slot part="suffix"><slot name="suffix"></slot></slot>
25
25
  </div>
26
26
  `;
@@ -64,6 +64,61 @@ class iamInput extends HTMLElement {
64
64
  }
65
65
  setIcon(inputType);
66
66
 
67
+
68
+ const setCurrencyRules = () => {
69
+
70
+ input.setAttribute('type','text');
71
+ input?.setAttribute('data-value',input.value);
72
+ input.value = new Intl.NumberFormat("en-GB", {
73
+ style: "currency",
74
+ currency: "GBP",
75
+ minimumFractionDigits: Number.isInteger(input.value) ? 0 : 2,
76
+ maximumFractionDigits: Number.isInteger(input.value) ? 0 : 2,
77
+ trailingZeroDisplay: 'stripIfInteger' // Strip zeros if it's an integer
78
+ }).format(input.value).replace("£", "");
79
+ }
80
+
81
+
82
+ // Currency type
83
+ if(component?.hasAttribute('data-currency')) {
84
+
85
+ // Pre set the icons
86
+ switch (component?.hasAttribute('data-currency')) {
87
+ case "dollar":
88
+ component.setAttribute('data-prefix-icon','dollar-sign') ;
89
+ break;
90
+ case "euro":
91
+ component.setAttribute('data-prefix-icon','euro-sign') ;
92
+ break;
93
+ default:
94
+ component.setAttribute('data-prefix-icon','sterling-sign') ;
95
+ break;
96
+ }
97
+
98
+ setCurrencyRules();
99
+
100
+
101
+ input?.addEventListener('focus',(event) => {
102
+
103
+ input.setAttribute('type', 'number')
104
+
105
+ input.value = input.getAttribute('data-value');
106
+ input.setAttribute('value', input.getAttribute('data-value'));
107
+ });
108
+
109
+ input?.addEventListener('input',(event) => {
110
+
111
+ input?.setAttribute('data-value',input.value);
112
+ });
113
+
114
+ input?.addEventListener('blur',(event) => {
115
+
116
+ setCurrencyRules();
117
+ });
118
+ }
119
+
120
+
121
+
67
122
  // Colour input field
68
123
  if(input?.matches('[type="color"]')){
69
124
  this.insertAdjacentHTML('beforeend', `<output></output>`);
@@ -161,7 +216,60 @@ class iamInput extends HTMLElement {
161
216
  input.showPicker();
162
217
  });
163
218
 
219
+ // Duplicate input watches
220
+ if(component.hasAttribute('data-duplicate')){
221
+
222
+ const id = component.getAttribute('data-duplicate');
223
+ const watchedInputs = document.querySelectorAll(`[name="${id}"], [id="${id}"]`);
224
+
225
+ input.addEventListener('change', (event) => {
226
+
227
+ if(input.closest('iam-modal'))
228
+ return false;
229
+
230
+ if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
231
+ watchedInput.checked = event.target.checked;
232
+
233
+ if(!event.detail && !event.detail?.triggered){
234
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
235
+ watchedInput?.dispatchEvent(changeEvent);
236
+ }
237
+ }
238
+ });
239
+
240
+ Array.from(watchedInputs).forEach((watchedInput) => {
241
+
242
+ watchedInput?.addEventListener('change', (event) => {
243
+
244
+ // If both the duplicate input and the watched input are checkboxes
245
+ if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
246
+ input.checked = event.target.checked;
247
+
248
+ if(!event.detail && !event.detail?.triggered){
249
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
250
+ input?.dispatchEvent(changeEvent);
251
+ }
252
+ }
164
253
 
254
+ // if input is not a checkbox BUT the watched input is
255
+ // Then we need to create the input's value
256
+ if(!input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
257
+
258
+ let computedValue = '';
259
+ Array.from(document.querySelectorAll(`[name="${id}"]:checked`)).forEach((loopInput) => {
260
+
261
+ computedValue += (computedValue == '' ? '' : ',') + loopInput.value;
262
+ });
263
+ input.value = computedValue;
264
+
265
+ if(!event.detail && !event.detail?.triggered){
266
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
267
+ input?.dispatchEvent(changeEvent);
268
+ }
269
+ }
270
+ });
271
+ });
272
+ }
165
273
  }
166
274
  }
167
275
 
@@ -1554,7 +1554,7 @@ class iamSTDAddressLookup extends HTMLElement {
1554
1554
  data-url="/standardaddress.json?search_query="
1555
1555
  data-postcode="true"
1556
1556
  data-min-chars="5"
1557
- data-title="Find an address by postcode"
1557
+ ${this.hasAttribute('data-title') ? `data-title='${this.getAttribute('data-title')}'` : `data-title='Find an address by postcode'`}
1558
1558
  data-placeholder="UK, Isle of Man, & Channel Islands "
1559
1559
  ${this.hasAttribute('data-manual') ? 'data-manual' : ''}
1560
1560
  ${this.hasAttribute('data-allow-manual') ? 'data-allow-manual' : ''}
@@ -24,7 +24,12 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
24
24
 
25
25
  });
26
26
 
27
+ displayInputField.addEventListener('keyup', function () {
27
28
 
29
+ if(displayInputField.value != ""){
30
+ displayInputField.setAttribute('data-value', displayInputField.value);
31
+ }
32
+ });
28
33
 
29
34
  displayInputField.addEventListener('blur', function () {
30
35
  if (displayInputField.hasAttribute('data-value')) {
@@ -113,6 +118,9 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
113
118
 
114
119
 
115
120
  const emptyField = () => {
121
+
122
+ displayInputField.removeAttribute('placeholder');
123
+
116
124
  if(displayInputField.hasAttribute('data-original-placeholder'))
117
125
  displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));
118
126
 
@@ -103,7 +103,7 @@ export const paginateTable = (component, table, form, pagination, callback): voi
103
103
  });
104
104
 
105
105
  pagination.addEventListener('update-page', (event) => {
106
- console.log('update page')
106
+
107
107
  if (form.querySelector('[name=page]').value != event.detail.page) {
108
108
  form.querySelector('[name=page]').value = event.detail.page;
109
109
 
@@ -690,20 +690,6 @@ export const addFilterEventListeners = (component, table, form, pagination, save
690
690
  // Before submitting check if any duplicate checkboxes within the filters dialog needs to upset the original input
691
691
  if (event.type == 'submit') {
692
692
  form.classList.add('processing');
693
- Array.from(form.querySelectorAll('[data-duplicate]')).forEach((element) => {
694
- const id = element.getAttribute('data-duplicate');
695
- const input = document.getElementById(id);
696
- const card = document.querySelector(`[for="${id}"] iam-card`);
697
-
698
- if (input.checked != element.checked) {
699
- if (card) {
700
- const clickEvent = new Event('click');
701
- card.dispatchEvent(clickEvent);
702
- } else {
703
- input.checked = element.checked;
704
- }
705
- }
706
- });
707
693
  form.classList.remove('processing');
708
694
  }
709
695
 
@@ -721,7 +707,7 @@ export const addFilterEventListeners = (component, table, form, pagination, save
721
707
  }
722
708
  */
723
709
  };
724
- /*
710
+ /*
725
711
  if (component.querySelector('iam-actionbar[data-search]')) {
726
712
  component.querySelector('iam-actionbar[data-search]').addEventListener('search-submit', (event) => {
727
713
  if (form.querySelector('input[data-search]')) {
@@ -801,18 +787,6 @@ export const addFilterEventListeners = (component, table, form, pagination, save
801
787
  if (event && event.target instanceof HTMLElement && event.target.closest('[data-show]')) {
802
788
  formSubmit(event);
803
789
  }
804
-
805
- if (event && event.target instanceof HTMLElement && event.target.closest('[data-mimic]')) {
806
- formSubmit(event);
807
- }
808
-
809
- if (event && event.target instanceof HTMLElement && event.target.hasAttribute('id')) {
810
- const id = event.target.getAttribute('id');
811
-
812
- if (document.querySelector(`[data-duplicate="${id}"]`)) {
813
- document.querySelector(`[data-duplicate="${id}"]`).checked = event.target.checked;
814
- }
815
- }
816
790
  });
817
791
 
818
792
  form.addEventListener('click', (event) => {
@@ -903,68 +877,6 @@ export const addFilterEventListeners = (component, table, form, pagination, save
903
877
  formSubmit(event, true);
904
878
  });
905
879
 
906
- // Mmimic fields
907
- const forms = [];
908
- const fields = [];
909
-
910
- // Collect the forms that we need to add an event listener for.
911
- Array.from(form.querySelectorAll('[data-mimic]')).forEach((input) => {
912
- const mimicField = input.getAttribute('data-mimic');
913
-
914
- Array.from(document.querySelectorAll(`[name="${mimicField}"]`)).forEach((mimicInput) => {
915
- const parentForm = mimicInput.closest('form');
916
-
917
- if (!forms.includes(parentForm)) {
918
- forms.push(parentForm);
919
- }
920
-
921
- if (!fields.includes(mimicField)) {
922
- fields.push(mimicField);
923
- }
924
- });
925
- });
926
-
927
- // For each form add change listener
928
- forms.forEach((parentForm) => {
929
- const updateMimicInput = function (): void {
930
- const mimickedAlready = [];
931
- const formData = new FormData(parentForm);
932
-
933
- let i = 1;
934
- for (const [key, value] of formData) {
935
- if (document.querySelector(`[data-mimic="${key}"]`) && !mimickedAlready.includes(key)) {
936
- mimickedAlready.push(key);
937
- document.querySelector(`[data-mimic="${key}"]`).value = value;
938
- } else if (document.querySelector(`[data-mimic="${key}"]`))
939
- document.querySelector(`[data-mimic="${key}"]`).value += ',' + value;
940
-
941
- i++;
942
- }
943
-
944
- for (const value of mimickedAlready) {
945
- const event = new Event('force');
946
- form.dispatchEvent(event);
947
- }
948
-
949
- // Check for empties
950
- for (const field of fields) {
951
- if (!formData.has(field) && parentForm.querySelector(`[name="${field}"]`)) {
952
- document.querySelector(`[data-mimic="${field}"]`).value = '';
953
-
954
- const event = new Event('force');
955
- form.dispatchEvent(event);
956
- }
957
- }
958
- };
959
-
960
- parentForm.addEventListener('force', () => {
961
- updateMimicInput();
962
- });
963
-
964
- parentForm.addEventListener('change', () => {
965
- updateMimicInput();
966
- });
967
- });
968
880
  };
969
881
 
970
882
  export const filterTable = (component, table, form, pagination): void => {
@@ -1255,12 +1167,14 @@ export const setupAjaxTable = (component, table, form, pagination): void => {
1255
1167
 
1256
1168
  form.addEventListener('submit', (event) => {
1257
1169
 
1258
- Array.from(form.querySelectorAll('[data-duplicate]')).forEach((element) => {
1170
+ Array.from(form.querySelectorAll('[data-duplicate]')).forEach((loopElement) => {
1259
1171
 
1260
- const id = element.getAttribute('data-duplicate');
1172
+ const element = loopElement.tagName == "IAM-INPUT" ? loopElement.querySelector('input') : loopElement;
1173
+ const id = loopElement.getAttribute('data-duplicate');
1261
1174
 
1262
- if (document.querySelector(`[id="${id}"]`)) {
1263
- document.querySelector(`[id="${id}"]`).checked = element.checked;
1175
+ if (document.querySelector(`[id="${id}"], [name="${id}"]`)) {
1176
+
1177
+ document.querySelector(`[id="${id}"], [name="${id}"]`).checked = element.checked;
1264
1178
  }
1265
1179
  });
1266
1180
 
@@ -1275,28 +1189,15 @@ export const setupAjaxTable = (component, table, form, pagination): void => {
1275
1189
 
1276
1190
  loadAjaxTable(component, table, form, pagination);
1277
1191
  }
1192
+ });
1278
1193
 
1279
- if (event && event.target instanceof HTMLElement && event.target.hasAttribute('id')) {
1280
- const id = event.target.getAttribute('id');
1281
-
1282
- if (document.querySelector(`[data-duplicate="${id}"]`)) {
1283
- document.querySelector(`[data-duplicate="${id}"]`).checked = event.target.checked;
1284
-
1285
-
1286
- const changeEvent = new CustomEvent('change');
1287
- document.querySelector(`[data-duplicate="${id}"]`)?.dispatchEvent(changeEvent);
1288
-
1289
- }
1290
- }
1291
-
1292
- if (event && event.target instanceof HTMLElement && event.target.hasAttribute('data-duplicate') && !event.target.closest('iam-modal')) {
1293
- const id = event.target.getAttribute('data-duplicate');
1194
+ // watch hidden fields for change events
1195
+ Array.from(form.querySelectorAll('[type="hidden"]')).forEach((input) => {
1294
1196
 
1295
- if (document.querySelector(`[id="${id}"]`)) {
1296
- document.querySelector(`[id="${id}"]`).checked = event.target.checked;
1297
- }
1298
- }
1197
+ input.addEventListener('change', (event) => {
1299
1198
 
1199
+ loadAjaxTable(component, table, form, pagination);
1200
+ });
1300
1201
  });
1301
1202
 
1302
1203
  if (actionbar) {
@@ -1323,53 +1224,6 @@ export const setupAjaxTable = (component, table, form, pagination): void => {
1323
1224
  });
1324
1225
  }
1325
1226
 
1326
- // mimic fields
1327
- const fields = [];
1328
-
1329
- Array.from(form.querySelectorAll('[data-mimic]')).forEach((input) => {
1330
-
1331
- input.addEventListener('change', (event) => {
1332
-
1333
- loadAjaxTable(component, table, form, pagination);
1334
- });
1335
- });
1336
-
1337
-
1338
- Array.from(form.querySelectorAll('[data-mimic]')).forEach((input) => {
1339
- const mimicField = input.getAttribute('data-mimic');
1340
-
1341
- Array.from(document.querySelectorAll(`[name="${mimicField}"]`)).forEach((mimicInput) => {
1342
-
1343
- if (!fields.includes(mimicInput)) {
1344
- fields.push(mimicInput);
1345
- }
1346
- });
1347
- });
1348
-
1349
- fields.forEach((input) => {
1350
-
1351
- input.addEventListener('change', (event) => {
1352
-
1353
- const name = input.getAttribute('name');
1354
- const mimicInput = document.querySelector(`[data-mimic="${name}"]`);
1355
-
1356
- let valueToSend = '';
1357
- Array.from(document.querySelectorAll(`[name="${name}"]:checked`)).forEach((input) => {
1358
-
1359
- if(valueToSend == '')
1360
- valueToSend = input.value;
1361
- else
1362
- valueToSend += ',' + input.value;
1363
- });
1364
-
1365
- console.log(valueToSend);
1366
-
1367
- mimicInput.value = valueToSend;
1368
- const changeEvent = new CustomEvent('change');
1369
- mimicInput?.dispatchEvent(changeEvent);
1370
- });
1371
- });
1372
-
1373
1227
  };
1374
1228
  // #region ajax tables functions
1375
1229