@iamproperty/components 7.5.1--beta5 → 7.5.1--beta7

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 (196) 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/applied-filters.css +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/calendar.component.css +1 -1
  8. package/assets/css/components/calendar.component.css.map +1 -1
  9. package/assets/css/components/card.component.css +1 -1
  10. package/assets/css/components/card.component.css.map +1 -1
  11. package/assets/css/components/fileupload.css +1 -1
  12. package/assets/css/components/fileupload.css.map +1 -1
  13. package/assets/css/components/input-range.component.css +1 -0
  14. package/assets/css/components/input-range.component.css.map +1 -0
  15. package/assets/css/components/input.component.css +1 -0
  16. package/assets/css/components/input.component.css.map +1 -0
  17. package/assets/css/components/modal.component.css +1 -0
  18. package/assets/css/components/modal.component.css.map +1 -0
  19. package/assets/css/components/multi-step-modal.component.css +1 -0
  20. package/assets/css/components/multi-step-modal.component.css.map +1 -0
  21. package/assets/css/components/multi-step-modal.global.css +1 -0
  22. package/assets/css/components/multi-step-modal.global.css.map +1 -0
  23. package/assets/css/components/multiselect.css +1 -1
  24. package/assets/css/components/multiselect.css.map +1 -1
  25. package/assets/css/components/nav.component.css +1 -1
  26. package/assets/css/components/nav.component.css.map +1 -1
  27. package/assets/css/components/pagination.css +1 -1
  28. package/assets/css/components/pagination.css.map +1 -1
  29. package/assets/css/components/password.component.css +1 -0
  30. package/assets/css/components/password.component.css.map +1 -0
  31. package/assets/css/components/slider.css +1 -1
  32. package/assets/css/components/slider.css.map +1 -1
  33. package/assets/css/components/tabs.component.css +1 -1
  34. package/assets/css/components/tabs.component.css.map +1 -1
  35. package/assets/css/components/tabs.config.css +1 -1
  36. package/assets/css/components/tabs.config.css.map +1 -1
  37. package/assets/css/core.min.css +1 -1
  38. package/assets/css/core.min.css.map +1 -1
  39. package/assets/css/mobile-core.min.css +1 -1
  40. package/assets/css/mobile-core.min.css.map +1 -1
  41. package/assets/css/mobile.min.css +1 -1
  42. package/assets/css/mobile.min.css.map +1 -1
  43. package/assets/css/style.min.css +1 -1
  44. package/assets/css/style.min.css.map +1 -1
  45. package/assets/js/components/accordion/accordion.component.js +1 -1
  46. package/assets/js/components/accordion/accordion.component.min.js +3 -3
  47. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  48. package/assets/js/components/actionbar/actionbar.component.js +2 -4
  49. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  50. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  51. package/assets/js/components/address-lookup/address-lookup.component.js +45 -0
  52. package/assets/js/components/address-lookup/address-lookup.component.min.js +12 -4
  53. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  54. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  55. package/assets/js/components/applied-filters/applied-filters.component.js +0 -2
  56. package/assets/js/components/applied-filters/applied-filters.component.min.js +5 -7
  57. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  58. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  59. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  60. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  61. package/assets/js/components/card/card.component.min.js +8 -8
  62. package/assets/js/components/card/card.component.min.js.map +1 -1
  63. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  64. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  65. package/assets/js/components/content/content.component.min.js +1 -1
  66. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  67. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  68. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  69. package/assets/js/components/filter-card/filter-card.component.js +19 -0
  70. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  71. package/assets/js/components/filter-card/filter-card.component.min.js.map +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 +1 -1
  75. package/assets/js/components/input/input.component.js +128 -0
  76. package/assets/js/components/input/input.component.min.js +16 -0
  77. package/assets/js/components/input/input.component.min.js.map +1 -0
  78. package/assets/js/components/input-range/input-range.component.js +62 -0
  79. package/assets/js/components/input-range/input-range.component.min.js +14 -0
  80. package/assets/js/components/input-range/input-range.component.min.js.map +1 -0
  81. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  82. package/assets/js/components/menu/menu.component.min.js +1 -1
  83. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  84. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  85. package/assets/js/components/modal/modal.component.js +141 -0
  86. package/assets/js/components/modal/modal.component.min.js +28 -0
  87. package/assets/js/components/modal/modal.component.min.js.map +1 -0
  88. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  89. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +233 -0
  90. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +17 -0
  91. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -0
  92. package/assets/js/components/multiselect/multiselect.component.js +1 -1
  93. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  94. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  95. package/assets/js/components/nav/nav.component.min.js +5 -5
  96. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  97. package/assets/js/components/notification/notification.component.min.js +1 -1
  98. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  99. package/assets/js/components/password/password.component.js +93 -0
  100. package/assets/js/components/password/password.component.min.js +17 -0
  101. package/assets/js/components/password/password.component.min.js.map +1 -0
  102. package/assets/js/components/rank/rank.component.min.js +1 -1
  103. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  104. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  105. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  106. package/assets/js/components/search/search.component.js +1 -1
  107. package/assets/js/components/search/search.component.min.js +5 -5
  108. package/assets/js/components/search/search.component.min.js.map +1 -1
  109. package/assets/js/components/slider/slider.component.min.js +3 -3
  110. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  111. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +5 -1
  112. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +22 -9
  113. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  114. package/assets/js/components/table/table.component.min.js +3 -3
  115. package/assets/js/components/table/table.component.min.js.map +1 -1
  116. package/assets/js/components/table-ajax/table-ajax.component.min.js +4 -4
  117. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  118. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  119. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  120. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  121. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  122. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  123. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  124. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  125. package/assets/js/components/video-card/video-card.component.min.js +4 -4
  126. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  127. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  128. package/assets/js/modules/applied-filters.js +78 -61
  129. package/assets/js/modules/card.module.js +6 -1
  130. package/assets/js/modules/dialogs.js +6 -2
  131. package/assets/js/modules/password.js +72 -0
  132. package/assets/js/modules/table.js +10 -6
  133. package/assets/js/scripts.bundle.js +2 -3
  134. package/assets/js/scripts.bundle.js.map +1 -1
  135. package/assets/js/scripts.bundle.min.js +2 -2
  136. package/assets/js/scripts.bundle.min.js.map +1 -1
  137. package/assets/js/scripts.js +0 -2
  138. package/assets/js/tests/helpers.spec.js +54 -1
  139. package/assets/sass/_components.scss +2 -0
  140. package/assets/sass/_elements.scss +2 -0
  141. package/assets/sass/components/actionbar.component.scss +1 -0
  142. package/assets/sass/components/address-lookup.component.scss +24 -0
  143. package/assets/sass/components/applied-filters.scss +10 -14
  144. package/assets/sass/components/input-range.component.scss +38 -0
  145. package/assets/sass/components/input.component.scss +102 -0
  146. package/assets/sass/components/modal.component.scss +269 -0
  147. package/assets/sass/components/multi-step-modal.component.scss +255 -0
  148. package/assets/sass/components/multi-step-modal.global.scss +92 -0
  149. package/assets/sass/components/multiselect.scss +2 -2
  150. package/assets/sass/components/password.component.scss +60 -0
  151. package/assets/sass/components/tabs.config.scss +2 -2
  152. package/assets/sass/elements/badge-tag.scss +0 -1
  153. package/assets/sass/elements/details.scss +12 -7
  154. package/assets/sass/elements/dialog.scss +46 -5
  155. package/assets/sass/elements/forms.scss +41 -177
  156. package/assets/sass/elements/hr.scss +1 -1
  157. package/assets/sass/elements/modal.scss +19 -21
  158. package/assets/sass/elements/prefix.scss +115 -0
  159. package/assets/ts/components/accordion/accordion.component.ts +1 -1
  160. package/assets/ts/components/actionbar/actionbar.component.ts +3 -10
  161. package/assets/ts/components/address-lookup/address-lookup.component.ts +60 -0
  162. package/assets/ts/components/applied-filters/applied-filters.component.ts +0 -2
  163. package/assets/ts/components/filter-card/filter-card.component.ts +27 -0
  164. package/assets/ts/components/input/input.component.ts +168 -0
  165. package/assets/ts/components/input-range/input-range.component.ts +78 -0
  166. package/assets/ts/components/modal/modal.component.ts +188 -0
  167. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -0
  168. package/assets/ts/components/multiselect/multiselect.component.ts +1 -1
  169. package/assets/ts/components/password/password.component.ts +118 -0
  170. package/assets/ts/components/search/search.component.ts +1 -1
  171. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +5 -3
  172. package/assets/ts/modules/applied-filters.ts +107 -71
  173. package/assets/ts/modules/card.module.ts +9 -4
  174. package/assets/ts/modules/dialogs.ts +6 -2
  175. package/assets/ts/modules/password.ts +82 -0
  176. package/assets/ts/modules/table.ts +13 -6
  177. package/assets/ts/scripts.ts +2 -2
  178. package/assets/ts/tests/helpers.spec.ts +100 -1
  179. package/dist/components.es.js +641 -959
  180. package/dist/components.umd.js +281 -182
  181. package/package.json +2 -2
  182. package/src/components/Input/Input.vue +19 -363
  183. package/src/components/InputRange/InputRange.vue +22 -0
  184. package/src/components/Modal/Modal.vue +22 -0
  185. package/src/components/MultiStepModal/MultiStepModal.vue +23 -0
  186. package/src/components/{PasswordIndicator/PasswordIndicator.vue → Password/Password.vue} +23 -23
  187. package/assets/js/components/password-indicator/password-indicator.component.js +0 -19
  188. package/assets/js/components/password-indicator/password-indicator.component.min.js +0 -7
  189. package/assets/js/components/password-indicator/password-indicator.component.min.js.map +0 -1
  190. package/assets/js/modules/form.js +0 -125
  191. package/assets/js/modules/inputs.js +0 -151
  192. package/assets/js/modules/password-indicator.js +0 -21
  193. package/assets/ts/components/password-indicator/password-indicator.component.ts +0 -24
  194. package/assets/ts/modules/form.ts +0 -166
  195. package/assets/ts/modules/inputs.ts +0 -181
  196. package/assets/ts/modules/password-indicator.ts +0 -29
@@ -0,0 +1,233 @@
1
+ import { trackComponent, trackComponentRegistered } from '../_global.js';
2
+ trackComponentRegistered('iam-multi-step-modal');
3
+ class iamMultiStepModal extends HTMLElement {
4
+ constructor() {
5
+ super();
6
+ this.attachShadow({ mode: 'open' });
7
+ const assetLocation = document.body.hasAttribute('data-assets-location')
8
+ ? document.body.getAttribute('data-assets-location')
9
+ : '/assets';
10
+ const loadCSS = `@import "${assetLocation}/css/components/multi-step-modal.component.css";`;
11
+ const template = document.createElement('template');
12
+ template.innerHTML = `
13
+ <style>
14
+ ${loadCSS}
15
+ </style>
16
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
17
+ <dialog>
18
+ <button class="btn btn-compact btn-secondary fa-xmark-large" data-close>Close</button>
19
+ <div class="steps" parts="steps">
20
+ </div>
21
+ <slot></slot>
22
+ </dialog>
23
+ `;
24
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
25
+ }
26
+ connectedCallback() {
27
+ var _a, _b;
28
+ const originalDialog = this.querySelector('dialog');
29
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
30
+ const MultiStepComponent = this;
31
+ const id = this.hasAttribute('id') ? this.getAttribute('id') : originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.getAttribute('id');
32
+ const dialog = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');
33
+ const closeButton = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[data-close]');
34
+ const button = document.querySelector(`[data-modal="${id}"]`);
35
+ const steps = this.shadowRoot.querySelector('.steps');
36
+ const form = this.querySelector('form');
37
+ const openModal = () => {
38
+ dialog === null || dialog === void 0 ? void 0 : dialog.showModal();
39
+ dialog === null || dialog === void 0 ? void 0 : dialog.focus();
40
+ const closeEvent = new CustomEvent('modal-opened', {
41
+ bubbles: true,
42
+ cancelable: true,
43
+ detail: { modalId: id },
44
+ });
45
+ this.dispatchEvent(closeEvent);
46
+ window.dataLayer = window.dataLayer || [];
47
+ window.dataLayer.push({
48
+ event: 'openModal',
49
+ id: id,
50
+ });
51
+ };
52
+ // Disable the original event
53
+ originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.addEventListener('command', (e) => {
54
+ if (event.command == "show-modal") {
55
+ e.preventDefault();
56
+ }
57
+ });
58
+ document.addEventListener('click', (e) => {
59
+ if (e.target.matches(`[command="show-modal"][commandfor="${id}"]`) || e.target.matches(`[data-modal="${id}"]`)) {
60
+ openModal();
61
+ }
62
+ });
63
+ button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {
64
+ dialog === null || dialog === void 0 ? void 0 : dialog.showModal();
65
+ dialog === null || dialog === void 0 ? void 0 : dialog.focus();
66
+ const closeEvent = new CustomEvent('modal-opened', {
67
+ bubbles: true,
68
+ cancelable: true,
69
+ detail: { modalId: id },
70
+ });
71
+ this.dispatchEvent(closeEvent);
72
+ window.dataLayer = window.dataLayer || [];
73
+ window.dataLayer.push({
74
+ event: 'openModal',
75
+ id: id,
76
+ });
77
+ });
78
+ const closeModal = () => {
79
+ dialog === null || dialog === void 0 ? void 0 : dialog.close();
80
+ const closeEvent = new CustomEvent('modal-closed', {
81
+ bubbles: true,
82
+ cancelable: true,
83
+ detail: { modalId: id },
84
+ });
85
+ this.dispatchEvent(closeEvent);
86
+ window.dataLayer = window.dataLayer || [];
87
+ window.dataLayer.push({
88
+ event: 'closeModal',
89
+ id: id,
90
+ });
91
+ };
92
+ closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {
93
+ closeModal();
94
+ });
95
+ const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));
96
+ fieldsets.forEach((fieldset, index) => {
97
+ steps.insertAdjacentHTML('beforeend', `<button data-title="${fieldset.getAttribute('data-title')}" type="button" class="${index == 0 ? 'active' : ''}" tabindex="-1">${fieldset.getAttribute('data-title')}</button>`);
98
+ if (index === 0)
99
+ fieldset.classList.add('active');
100
+ const btnWrapper = document.createElement('div');
101
+ btnWrapper.classList.add('btn--wrapper');
102
+ fieldset.appendChild(btnWrapper);
103
+ if (index != 0)
104
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index - 1].getAttribute('data-title')}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`;
105
+ if (index != fieldsets.length - 1)
106
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index + 1].getAttribute('data-title')}" class="btn btn-primary mb-0" data-next type="button">Next</button>`;
107
+ // Last fieldset
108
+ if (index == fieldsets.length - 1) {
109
+ if (form && form.querySelector(':scope > button[type="submit"]')) {
110
+ const existingButton = form.querySelector(':scope > button[type="submit"]');
111
+ existingButton.classList.add('mb-0');
112
+ btnWrapper.insertAdjacentElement('beforeend', existingButton);
113
+ }
114
+ else
115
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index].getAttribute('data-title')}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`;
116
+ }
117
+ });
118
+ // Open the fieldset with an error inside
119
+ const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));
120
+ for (let i = 0; i < validatedFieldsets.length; i++) {
121
+ const fieldset = validatedFieldsets[i];
122
+ const fieldsetID = fieldset.getAttribute('data-title');
123
+ if (fieldset.querySelector('.is-invalid')) {
124
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element) => {
125
+ element.classList.add('active');
126
+ });
127
+ break;
128
+ }
129
+ else {
130
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element) => {
131
+ element.classList.add('valid');
132
+ });
133
+ }
134
+ }
135
+ // Prevent the bubble messages
136
+ MultiStepComponent.addEventListener('invalid', (function () {
137
+ return function (e) {
138
+ e.preventDefault();
139
+ };
140
+ })(), true);
141
+ function validateFieldset(button) {
142
+ const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)
143
+ ? MultiStepComponent.querySelector(`fieldset.active`)
144
+ : MultiStepComponent.querySelector(`fieldset[data-title]`);
145
+ const currentFieldsetID = currentFieldset.getAttribute('data-title');
146
+ let isFieldsetValid = true;
147
+ currentFieldset.classList.add('was-validated');
148
+ Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {
149
+ if (!input.checkValidity())
150
+ isFieldsetValid = false;
151
+ });
152
+ // If valid mode to next field set
153
+ if (!isFieldsetValid) {
154
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
155
+ element.classList.remove('valid');
156
+ });
157
+ Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
158
+ element.classList.remove('valid');
159
+ });
160
+ }
161
+ else {
162
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
163
+ element.classList.add('valid');
164
+ });
165
+ Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
166
+ element.classList.add('valid');
167
+ });
168
+ }
169
+ // Allow the previous button to navigate
170
+ if (isFieldsetValid || !button.hasAttribute('data-next')) {
171
+ const fieldset = MultiStepComponent.querySelector(`fieldset[data-title="${button.getAttribute('data-title')}"]`);
172
+ const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title="${button.getAttribute('data-title')}"]`);
173
+ Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {
174
+ button.classList.remove('active');
175
+ });
176
+ Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {
177
+ button.classList.remove('active');
178
+ });
179
+ step.classList.add('active');
180
+ fieldset.classList.add('active');
181
+ }
182
+ const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;
183
+ const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;
184
+ // update the progress bar
185
+ MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);
186
+ }
187
+ // remove error messages from server
188
+ MultiStepComponent.addEventListener('keydown', (event) => {
189
+ if (event && event.target instanceof HTMLElement && event.target.closest('button')) {
190
+ const button = event.target.closest('button');
191
+ if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {
192
+ event.preventDefault();
193
+ validateFieldset(button);
194
+ }
195
+ }
196
+ if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
197
+ const input = event.target.closest('input');
198
+ input.classList.remove('is-invalid');
199
+ if (event.keyCode == 13) {
200
+ event.preventDefault();
201
+ }
202
+ }
203
+ });
204
+ MultiStepComponent.addEventListener('click', (event) => {
205
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[type="submit"]')) {
206
+ const form = event.target.closest('form');
207
+ form.classList.add('was-validated');
208
+ }
209
+ return null;
210
+ });
211
+ MultiStepComponent.shadowRoot.addEventListener('click', (event) => {
212
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {
213
+ const button = event.target.closest('button[data-title]');
214
+ validateFieldset(button);
215
+ }
216
+ return null;
217
+ });
218
+ trackComponent(MultiStepComponent, 'iam-multi-step', []);
219
+ }
220
+ static get observedAttributes() {
221
+ return ['data-image'];
222
+ }
223
+ attributeChangedCallback(attrName, oldVal, newVal) {
224
+ switch (attrName) {
225
+ case 'data-total': {
226
+ if (this.shadowRoot.querySelector('.card__total'))
227
+ this.shadowRoot.querySelector('.card__total').innerHTML = newVal;
228
+ break;
229
+ }
230
+ }
231
+ }
232
+ }
233
+ export default iamMultiStepModal;
@@ -0,0 +1,17 @@
1
+ /*!
2
+ * iamKey v7.5.1--beta7
3
+ * Copyright 2022-2025 iamproperty
4
+ */const z=g=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:g})},E=(g,i,c)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),c.forEach(d=>{g.addEventListener(d,function(e){const n={event:d,element:i,target:e.target};Object.keys(e.detail).forEach(a=>{const m=e.detail[a];n[a]=m}),window.dataLayer.push(n)})}),!0);z("iam-multi-step-modal");class S extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
+ <style>
6
+ @layer elements{body:not(.js-enabled) dialog:not([open]):target{display:block}dialog{--dialog-padding: 1.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;background:var(--colour-canvas-2);box-shadow:0px 2px 9px rgba(0,0,0,.11);border-radius:0.625rem;padding:var(--dialog-padding);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}dialog>*:last-child{margin-bottom:0}dialog>:is(p):last-child{padding-bottom:0}dialog::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(4px);overscroll-behavior:contain}dialog[open]{display:flex;flex-direction:column}*:not(.dialog__wrapper)>dialog[open]:not([popover]){overflow-y:auto;width:90vw;max-width:20.25rem;max-height:min(90vh,47rem);overscroll-behavior:contain}@media screen and (min-width: 36em){*:not(.dialog__wrapper)>dialog[open]:not([popover]){--dialog-padding: 2rem;padding:var(--dialog-padding);min-width:20.9375rem;width:fit-content;max-width:42.875rem}}@media screen and (min-width: 62em){*:not(.dialog__wrapper)>dialog[open]:not([popover]){min-width:28.375rem;width:fit-content;max-width:46rem}}details.bg-light{margin-inline:calc(var(--dialog-padding)*-1);padding-inline:var(--dialog-padding)}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 0.125rem;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:500;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn:has(select){position:relative;padding-right:3.5rem}.btn:has(select) select{all:unset !important;margin:calc(-0.75rem) calc(-2.5rem) !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:3.5rem !important;margin-right:-3.5rem !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;max-width:100% !important;outline:none;font-weight:500;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important}.btn:has(select) select option{padding:0;text-align:left;color:var(--colour-primary)}.btn:has(select):after{position:absolute;top:0.625rem;right:2rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn:has(select).active:after{transform:rotate(-90deg)}.btn:has(select:focus):after{transform:rotate(-90deg)}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 6 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.btn-secondary:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 0.0625rem;--btn-padding-block: 0.3125rem;--btn-padding-inline: 0.3125rem;--btn-margin: 0.5rem}.btn-action:not(.btn-primary){color:var(--colour-heading)}.btn-action:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}.btn-action{border-radius:0.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) .btn-action,.btn-action:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}.btn:has(select){padding-block:0;padding-right:2rem}.btn:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important}.btn:has(select):after{top:.2rem;right:0.5rem}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:0.5rem}.btn-compact:not(:last-child){margin-right:0.5rem}.btn-compact{text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;line-height:var(--compact-size) !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem}.btn-compact:before{content:var(--fa);position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - 0.25rem);font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - 0.25rem)}@container style(--theme: dark){.btn-compact[class*=fa-]:before{color:#fff}}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse){background-color:var(--colour-inverted) !important;border-color:var(--colour-inverted) !important;color:var(--colour-primary-theme)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse){background-color:rgba(0,0,0,0);border-color:var(--colour-inverted) !important;color:var(--colour-inverted)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary[disabled],.invert-colours .btn-compact.btn-secondary[disabled]{background-color:var(--colour-inverted) !important;border-color:var(--colour-inverted) !important;color:var(--colour-primary-theme) !important}}*,*:before,*:after{box-sizing:border-box}dialog[open]{--dialog-padding: 1.5rem;box-sizing:border-box;padding-top:calc(var(--dialog-padding)*4);padding-left:var(--dialog-padding)}@media screen and (min-width: 62em){dialog[open]{padding-top:var(--dialog-padding);padding-left:calc(var(--dialog-padding) + 17.625rem) !important;flex-direction:column}}::slotted(dialog){display:contents !important}::slotted(button){margin:0 !important}dialog[open]{padding:6rem 1.5rem 0 1.5rem}@media screen and (min-width: 36em){dialog[open]{min-width:28.25rem;width:28.25rem;max-width:28.25rem}}@media screen and (min-width: 62em){dialog[open]{min-width:57.75rem;width:57.75rem;max-width:57.75rem;padding:0}}@media screen and (min-width: 62em)and (min-height: 31.25rem){dialog[open]{height:29.875rem;max-height:29.875rem}}dialog[open]>button:first-child{position:absolute;top:5rem;right:6px;z-index:var(--index-floating);margin:0}dialog[open]>button:first-child:not(:hover,:focus,:active){background-color:Canvas}@media screen and (min-width: 62em){dialog[open]>button:first-child{top:calc(var(--dialog-padding) - .75rem);right:calc(var(--dialog-padding) - .75rem)}}@media screen and (max-width: 36em){dialog[open]{min-width:100%;min-height:100%;border-radius:0;overflow-y:auto}dialog[open] iam-multi-step{padding-inline:0 !important}dialog[open] form{height:calc(100vh - 6rem);padding-inline:var(--dialog-padding) !important}dialog[open] .btn--wrapper{padding-top:4rem}dialog[open] .mh-lg{max-height:none !important;overflow:visible}dialog[open]:before,dialog[open] *:first-child{margin-top:auto !important}dialog[open] *:last-child{margin-bottom:auto !important}}.steps{width:100%;position:absolute;top:0;left:0;padding:var(--dialog-padding);counter-reset:section;display:flex;justify-content:space-between;background-color:var(--colour-primary)}.steps:before{content:"";position:absolute;top:calc(50% - 1px);left:var(--dialog-padding);z-index:2;width:calc(100% - var(--dialog-padding) - var(--dialog-padding));height:2px;background:currentColor;z-index:1;background:linear-gradient(90deg, var(--colour-success) 0%, var(--colour-success) var(--progress, 0%), rgba(255, 255, 255, 0.5) var(--progress, 0%), rgba(255, 255, 255, 0.5) 100%)}.steps button{position:relative;background:rgba(0,0,0,0);border:none;color:hsla(0,0%,100%,.5);height:1.5rem;line-height:1.5rem;width:1.5rem;text-indent:300%;overflow:hidden;z-index:2;background-color:var(--colour-primary);outline:.5rem solid var(--colour-primary);cursor:pointer}.steps button:before{position:absolute;top:0;left:0;counter-increment:section;content:counter(section);border:1px solid currentColor;height:1.5rem;line-height:1.5rem;width:1.5rem;text-align:center;display:inline-block;text-indent:0;border-radius:50%}.steps button:not(.active):not(.valid){pointer-events:none}.steps button:not(.active):not(.valid):before{opacity:.5}.steps button.active{color:var(--colour-white)}.steps button.valid{color:var(--colour-success)}@container style(--theme: dark){.steps button{color:rgba(0,0,0,.5)}.steps button.active{color:#000}.steps button.valid{color:var(--colour-complete)}}@media screen and (min-width: 62em){.steps{width:17.625rem;height:100%;flex-direction:column;justify-content:center}.steps:before{display:none}.steps button{margin-block:.5rem;width:100%;text-indent:0;text-align:left;padding-left:2rem;font-size:1.125rem;outline-width:1px}}/*# sourceMappingURL=assets/css/components/multi-step-modal.component.css.map */
7
+
8
+ </style>
9
+ <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous" />
10
+ <dialog>
11
+ <button class="btn btn-compact btn-secondary fa-xmark-large" data-close>Close</button>
12
+ <div class="steps" parts="steps">
13
+ </div>
14
+ <slot></slot>
15
+ </dialog>
16
+ `,this.shadowRoot.appendChild(i.content.cloneNode(!0))}connectedCallback(){var i,c;const d=this.querySelector("dialog"),e=this,n=this.hasAttribute("id")?this.getAttribute("id"):d?.getAttribute("id"),a=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector("dialog"),m=(c=this.shadowRoot)===null||c===void 0?void 0:c.querySelector("[data-close]"),p=document.querySelector(`[data-modal="${n}"]`),w=this.shadowRoot.querySelector(".steps"),u=this.querySelector("form"),y=()=>{a?.showModal(),a?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:n}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:n})};d?.addEventListener("command",t=>{event.command=="show-modal"&&t.preventDefault()}),document.addEventListener("click",t=>{(t.target.matches(`[command="show-modal"][commandfor="${n}"]`)||t.target.matches(`[data-modal="${n}"]`))&&y()}),p?.addEventListener("click",()=>{a?.showModal(),a?.focus();const t=new CustomEvent("modal-opened",{bubbles:!0,cancelable:!0,detail:{modalId:n}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:n})});const k=()=>{a?.close();const t=new CustomEvent("modal-closed",{bubbles:!0,cancelable:!0,detail:{modalId:n}});this.dispatchEvent(t),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:n})};m?.addEventListener("click",()=>{k()});const b=Array.from(e.querySelectorAll("fieldset[data-title]"));b.forEach((t,o)=>{w.insertAdjacentHTML("beforeend",`<button data-title="${t.getAttribute("data-title")}" type="button" class="${o==0?"active":""}" tabindex="-1">${t.getAttribute("data-title")}</button>`),o===0&&t.classList.add("active");const r=document.createElement("div");if(r.classList.add("btn--wrapper"),t.appendChild(r),o!=0&&(r.innerHTML+=`<button data-title="${b[o-1].getAttribute("data-title")}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`),o!=b.length-1&&(r.innerHTML+=`<button data-title="${b[o+1].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="button">Next</button>`),o==b.length-1)if(u&&u.querySelector(':scope > button[type="submit"]')){const s=u.querySelector(':scope > button[type="submit"]');s.classList.add("mb-0"),r.insertAdjacentElement("beforeend",s)}else r.innerHTML+=`<button data-title="${b[o].getAttribute("data-title")}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`});const v=Array.from(e.querySelectorAll("fieldset.was-validated"));for(let t=0;t<v.length;t++){const o=v[t],r=o.getAttribute("data-title");if(o.querySelector(".is-invalid")){Array.from(e.querySelectorAll(`[data-title="${r}"]`)).forEach(s=>{s.classList.add("active")});break}else Array.from(e.querySelectorAll(`[data-title="${r}"]`)).forEach(s=>{s.classList.add("valid")})}e.addEventListener("invalid",(function(){return function(t){t.preventDefault()}})(),!0);function f(t){const o=e.querySelector("fieldset.active")?e.querySelector("fieldset.active"):e.querySelector("fieldset[data-title]"),r=o.getAttribute("data-title");let s=!0;if(o.classList.add("was-validated"),Array.from(o.querySelectorAll("input")).forEach(l=>{l.checkValidity()||(s=!1)}),s?(Array.from(e.querySelectorAll(`[data-title="${r}"]`)).forEach(l=>{l.classList.add("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${r}"]`)).forEach(l=>{l.classList.add("valid")})):(Array.from(e.querySelectorAll(`[data-title="${r}"]`)).forEach(l=>{l.classList.remove("valid")}),Array.from(e.shadowRoot.querySelectorAll(`[data-title="${r}"]`)).forEach(l=>{l.classList.remove("valid")})),s||!t.hasAttribute("data-next")){const l=e.querySelector(`fieldset[data-title="${t.getAttribute("data-title")}"]`),A=e.shadowRoot.querySelector(`.steps button[data-title="${t.getAttribute("data-title")}"]`);Array.from(e.querySelectorAll("button")).forEach(h=>{h.classList.remove("active")}),Array.from(e.querySelectorAll("fieldset")).forEach(h=>{h.classList.remove("active")}),A.classList.add("active"),l.classList.add("active")}const x=Array.from(e.querySelectorAll("fieldset")).length,L=Array.from(e.querySelectorAll("fieldset.valid")).length;e.style.setProperty("--progress",`${L/(x-1)*100}%`)}e.addEventListener("keydown",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button")){const o=t.target.closest("button");t.keyCode==13&&o.getAttribute("type")!="submit"&&(t.preventDefault(),f(o))}t&&t.target instanceof HTMLElement&&t.target.closest("input")&&(t.target.closest("input").classList.remove("is-invalid"),t.keyCode==13&&t.preventDefault())}),e.addEventListener("click",t=>(t&&t.target instanceof HTMLElement&&t.target.closest('button[type="submit"]')&&t.target.closest("form").classList.add("was-validated"),null)),e.shadowRoot.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest("button[data-title]")){const o=t.target.closest("button[data-title]");f(o)}return null}),E(e,"iam-multi-step",[])}static get observedAttributes(){return["data-image"]}attributeChangedCallback(i,c,d){switch(i){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=d);break}}}}export{S as default};
17
+ //# sourceMappingURL=multi-step-modal.component.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-step-modal.component.min.js","sources":["../_global.js","multi-step-modal.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-multi-step-modal');\nclass iamMultiStepModal extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/multi-step-modal.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n <dialog>\n <button class=\"btn btn-compact btn-secondary fa-xmark-large\" data-close>Close</button>\n <div class=\"steps\" parts=\"steps\">\n </div>\n <slot></slot>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n const originalDialog = this.querySelector('dialog');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const MultiStepComponent = this;\n const id = this.hasAttribute('id') ? this.getAttribute('id') : originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.getAttribute('id');\n const dialog = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dialog');\n const closeButton = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('[data-close]');\n const button = document.querySelector(`[data-modal=\"${id}\"]`);\n const steps = this.shadowRoot.querySelector('.steps');\n const form = this.querySelector('form');\n const openModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n };\n // Disable the original event \n originalDialog === null || originalDialog === void 0 ? void 0 : originalDialog.addEventListener('command', (e) => {\n if (event.command == \"show-modal\") {\n e.preventDefault();\n }\n });\n document.addEventListener('click', (e) => {\n if (e.target.matches(`[command=\"show-modal\"][commandfor=\"${id}\"]`) || e.target.matches(`[data-modal=\"${id}\"]`)) {\n openModal();\n }\n });\n button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.showModal();\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n const closeEvent = new CustomEvent('modal-opened', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openModal',\n id: id,\n });\n });\n const closeModal = () => {\n dialog === null || dialog === void 0 ? void 0 : dialog.close();\n const closeEvent = new CustomEvent('modal-closed', {\n bubbles: true,\n cancelable: true,\n detail: { modalId: id },\n });\n this.dispatchEvent(closeEvent);\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'closeModal',\n id: id,\n });\n };\n closeButton === null || closeButton === void 0 ? void 0 : closeButton.addEventListener('click', () => {\n closeModal();\n });\n const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));\n fieldsets.forEach((fieldset, index) => {\n steps.insertAdjacentHTML('beforeend', `<button data-title=\"${fieldset.getAttribute('data-title')}\" type=\"button\" class=\"${index == 0 ? 'active' : ''}\" tabindex=\"-1\">${fieldset.getAttribute('data-title')}</button>`);\n if (index === 0)\n fieldset.classList.add('active');\n const btnWrapper = document.createElement('div');\n btnWrapper.classList.add('btn--wrapper');\n fieldset.appendChild(btnWrapper);\n if (index != 0)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index - 1].getAttribute('data-title')}\" class=\"btn btn-secondary mb-0\" data-previous type=\"button\">Previous</button>`;\n if (index != fieldsets.length - 1)\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index + 1].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"button\">Next</button>`;\n // Last fieldset\n if (index == fieldsets.length - 1) {\n if (form && form.querySelector(':scope > button[type=\"submit\"]')) {\n const existingButton = form.querySelector(':scope > button[type=\"submit\"]');\n existingButton.classList.add('mb-0');\n btnWrapper.insertAdjacentElement('beforeend', existingButton);\n }\n else\n btnWrapper.innerHTML += `<button data-title=\"${fieldsets[index].getAttribute('data-title')}\" class=\"btn btn-primary mb-0\" data-next type=\"submit\">Submit</button>`;\n }\n });\n // Open the fieldset with an error inside\n const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));\n for (let i = 0; i < validatedFieldsets.length; i++) {\n const fieldset = validatedFieldsets[i];\n const fieldsetID = fieldset.getAttribute('data-title');\n if (fieldset.querySelector('.is-invalid')) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('active');\n });\n break;\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${fieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n }\n // Prevent the bubble messages\n MultiStepComponent.addEventListener('invalid', (function () {\n return function (e) {\n e.preventDefault();\n };\n })(), true);\n function validateFieldset(button) {\n const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)\n ? MultiStepComponent.querySelector(`fieldset.active`)\n : MultiStepComponent.querySelector(`fieldset[data-title]`);\n const currentFieldsetID = currentFieldset.getAttribute('data-title');\n let isFieldsetValid = true;\n currentFieldset.classList.add('was-validated');\n Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {\n if (!input.checkValidity())\n isFieldsetValid = false;\n });\n // If valid mode to next field set\n if (!isFieldsetValid) {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.remove('valid');\n });\n }\n else {\n Array.from(MultiStepComponent.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title=\"${currentFieldsetID}\"]`)).forEach((element) => {\n element.classList.add('valid');\n });\n }\n // Allow the previous button to navigate\n if (isFieldsetValid || !button.hasAttribute('data-next')) {\n const fieldset = MultiStepComponent.querySelector(`fieldset[data-title=\"${button.getAttribute('data-title')}\"]`);\n const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title=\"${button.getAttribute('data-title')}\"]`);\n Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {\n button.classList.remove('active');\n });\n Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {\n button.classList.remove('active');\n });\n step.classList.add('active');\n fieldset.classList.add('active');\n }\n const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;\n const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;\n // update the progress bar\n MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);\n }\n // remove error messages from server\n MultiStepComponent.addEventListener('keydown', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button')) {\n const button = event.target.closest('button');\n if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {\n event.preventDefault();\n validateFieldset(button);\n }\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('input')) {\n const input = event.target.closest('input');\n input.classList.remove('is-invalid');\n if (event.keyCode == 13) {\n event.preventDefault();\n }\n }\n });\n MultiStepComponent.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[type=\"submit\"]')) {\n const form = event.target.closest('form');\n form.classList.add('was-validated');\n }\n return null;\n });\n MultiStepComponent.shadowRoot.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {\n const button = event.target.closest('button[data-title]');\n validateFieldset(button);\n }\n return null;\n });\n trackComponent(MultiStepComponent, 'iam-multi-step', []);\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (this.shadowRoot.querySelector('.card__total'))\n this.shadowRoot.querySelector('.card__total').innerHTML = newVal;\n break;\n }\n }\n }\n}\nexport default iamMultiStepModal;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamMultiStepModal","template","_a","_b","originalDialog","MultiStepComponent","id","dialog","closeButton","button","steps","form","openModal","closeEvent","e","closeModal","fieldsets","fieldset","index","btnWrapper","existingButton","validatedFieldsets","i","fieldsetID","element","validateFieldset","currentFieldset","currentFieldsetID","isFieldsetValid","input","step","fieldsetCount","validFieldsetCount","attrName","oldVal","newVal"],"mappings":"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"}
@@ -39,7 +39,7 @@ class iamMultiselect extends HTMLElement {
39
39
  <div class="admin-panel dropdown" part="dropdown">
40
40
  <slot></slot>
41
41
  </div>
42
- <button id="clear"><span class="visually-hidden">Clear</span></button>
42
+ <button id="clear" class="btn btn-action "><span class="visually-hidden">Clear</span></button>
43
43
  </div>
44
44
  </div>
45
45
  </label>