@iamproperty/components 7.2.2--beta3 → 7.4.0

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 (247) 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 +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/barchart.component.css +1 -1
  6. package/assets/css/components/barchart.component.css.map +1 -1
  7. package/assets/css/components/bento-grid.global.css.map +1 -1
  8. package/assets/css/components/calendar.component.css +1 -0
  9. package/assets/css/components/calendar.component.css.map +1 -0
  10. package/assets/css/components/calendar.config.css +1 -0
  11. package/assets/css/components/calendar.config.css.map +1 -0
  12. package/assets/css/components/card.component.css +1 -1
  13. package/assets/css/components/card.component.css.map +1 -1
  14. package/assets/css/components/carousel.component.css +1 -1
  15. package/assets/css/components/carousel.component.css.map +1 -1
  16. package/assets/css/components/charts.module.css.map +1 -1
  17. package/assets/css/components/collapsible-side.css +1 -1
  18. package/assets/css/components/collapsible-side.css.map +1 -1
  19. package/assets/css/components/content.component.css +1 -0
  20. package/assets/css/components/content.component.css.map +1 -0
  21. package/assets/css/components/doughnutchart.component.css +1 -1
  22. package/assets/css/components/doughnutchart.component.css.map +1 -1
  23. package/assets/css/components/fileupload.css.map +1 -1
  24. package/assets/css/components/inline-edit.css +1 -1
  25. package/assets/css/components/inline-edit.css.map +1 -1
  26. package/assets/css/components/marketing.component.css +1 -0
  27. package/assets/css/components/marketing.component.css.map +1 -0
  28. package/assets/css/components/menu.component.css +1 -1
  29. package/assets/css/components/menu.component.css.map +1 -1
  30. package/assets/css/components/menu.css +1 -1
  31. package/assets/css/components/menu.css.map +1 -1
  32. package/assets/css/components/milestone.css +1 -0
  33. package/assets/css/components/milestone.css.map +1 -0
  34. package/assets/css/components/multiselect.css +1 -1
  35. package/assets/css/components/multiselect.css.map +1 -1
  36. package/assets/css/components/nav.component.css +1 -1
  37. package/assets/css/components/nav.component.css.map +1 -1
  38. package/assets/css/components/nav.global.css +1 -1
  39. package/assets/css/components/nav.global.css.map +1 -1
  40. package/assets/css/components/pagination.css.map +1 -1
  41. package/assets/css/components/rank.component.css +1 -1
  42. package/assets/css/components/rank.component.css.map +1 -1
  43. package/assets/css/components/rankings.component.css +1 -1
  44. package/assets/css/components/rankings.component.css.map +1 -1
  45. package/assets/css/components/rankings.global.css +1 -1
  46. package/assets/css/components/rankings.global.css.map +1 -1
  47. package/assets/css/components/slider.css.map +1 -1
  48. package/assets/css/components/split-button.component.css +1 -0
  49. package/assets/css/components/split-button.component.css.map +1 -0
  50. package/assets/css/components/table-basic.global.css.map +1 -1
  51. package/assets/css/components/table.global.css.map +1 -1
  52. package/assets/css/core.min.css +1 -1
  53. package/assets/css/core.min.css.map +1 -1
  54. package/assets/css/mobile-core.min.css +1 -1
  55. package/assets/css/mobile-core.min.css.map +1 -1
  56. package/assets/css/mobile.min.css +1 -1
  57. package/assets/css/mobile.min.css.map +1 -1
  58. package/assets/css/style.min.css +1 -1
  59. package/assets/css/style.min.css.map +1 -1
  60. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  61. package/assets/js/components/actionbar/actionbar.component.js +51 -31
  62. package/assets/js/components/actionbar/actionbar.component.min.js +17 -17
  63. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  64. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  65. package/assets/js/components/advanced-select/advanced-select.component.js +63 -0
  66. package/assets/js/components/advanced-select/advanced-select.component.min.js +23 -0
  67. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -0
  68. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  69. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  70. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  71. package/assets/js/components/calendar/calendar.component.js +1083 -0
  72. package/assets/js/components/calendar/calendar.component.min.js +170 -0
  73. package/assets/js/components/calendar/calendar.component.min.js.map +1 -0
  74. package/assets/js/components/card/card.component.js +20 -8
  75. package/assets/js/components/card/card.component.min.js +10 -10
  76. package/assets/js/components/card/card.component.min.js.map +1 -1
  77. package/assets/js/components/carousel/carousel.component.min.js +2 -2
  78. package/assets/js/components/collapsible-side/collapsible-side.component.js +47 -12
  79. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +6 -5
  80. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  81. package/assets/js/components/content/content.component.js +66 -0
  82. package/assets/js/components/content/content.component.min.js +15 -0
  83. package/assets/js/components/content/content.component.min.js.map +1 -0
  84. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  85. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  86. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  87. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  88. package/assets/js/components/header/header.component.min.js +1 -1
  89. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  90. package/assets/js/components/marketing/marketing.component.js +1 -1
  91. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  92. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  93. package/assets/js/components/menu/menu.component.js +148 -161
  94. package/assets/js/components/menu/menu.component.min.js +4 -69
  95. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  96. package/assets/js/components/milestone/milestone.component.js +38 -0
  97. package/assets/js/components/milestone/milestone.component.min.js +15 -0
  98. package/assets/js/components/milestone/milestone.component.min.js.map +1 -0
  99. package/assets/js/components/milestone-group/milestone-group.component.js +35 -0
  100. package/assets/js/components/milestone-group/milestone-group.component.min.js +13 -0
  101. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -0
  102. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  103. package/assets/js/components/multiselect/multiselect.component.js +54 -2
  104. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  105. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  106. package/assets/js/components/nav/nav.component.js +19 -0
  107. package/assets/js/components/nav/nav.component.min.js +6 -6
  108. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  109. package/assets/js/components/notification/notification.component.js +17 -11
  110. package/assets/js/components/notification/notification.component.min.js +4 -4
  111. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  112. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  113. package/assets/js/components/rank/rank.component.js +346 -210
  114. package/assets/js/components/rank/rank.component.min.js +346 -211
  115. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  116. package/assets/js/components/rankings/rankings.component.js +17 -8
  117. package/assets/js/components/rankings/rankings.component.min.js +14 -8
  118. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  119. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  120. package/assets/js/components/search/search.component.js +5 -3
  121. package/assets/js/components/search/search.component.min.js +6 -6
  122. package/assets/js/components/search/search.component.min.js.map +1 -1
  123. package/assets/js/components/slider/slider.component.min.js +1 -1
  124. package/assets/js/components/split-button/split-button.component.js +60 -0
  125. package/assets/js/components/split-button/split-button.component.min.js +34 -0
  126. package/assets/js/components/split-button/split-button.component.min.js.map +1 -0
  127. package/assets/js/components/table/table.component.js +12 -0
  128. package/assets/js/components/table/table.component.min.js +3 -3
  129. package/assets/js/components/table/table.component.min.js.map +1 -1
  130. package/assets/js/components/table-ajax/table-ajax.component.js +12 -0
  131. package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
  132. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  133. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  134. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  135. package/assets/js/components/table-no-submit/table-no-submit.component.js +12 -0
  136. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
  137. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  138. package/assets/js/components/table-submit/table-submit.component.js +12 -0
  139. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  140. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  141. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  142. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  143. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  144. package/assets/js/components.js +58 -0
  145. package/assets/js/modules/advanced-select.js +106 -0
  146. package/assets/js/modules/dialogs.js +53 -51
  147. package/assets/js/modules/dynamicEvents.js +7 -0
  148. package/assets/js/modules/milestone-group.js +30 -0
  149. package/assets/js/modules/milestone.js +89 -0
  150. package/assets/js/modules/table.js +11 -1
  151. package/assets/js/modules/videos.js +1 -1
  152. package/assets/js/scripts.bundle.js +3 -3
  153. package/assets/js/scripts.bundle.js.map +1 -1
  154. package/assets/js/scripts.bundle.min.js +2 -2
  155. package/assets/js/scripts.bundle.min.js.map +1 -1
  156. package/assets/js/scripts.js +4 -0
  157. package/assets/sass/_components.scss +11 -0
  158. package/assets/sass/_functions/utility-mixins.scss +41 -0
  159. package/assets/sass/_functions/variables.scss +11 -8
  160. package/assets/sass/components/actionbar.component.scss +3 -4
  161. package/assets/sass/components/actionbar.global.scss +4 -4
  162. package/assets/sass/components/bento-grid.global.scss +0 -1
  163. package/assets/sass/components/calendar.component.scss +1380 -0
  164. package/assets/sass/components/calendar.config.scss +476 -0
  165. package/assets/sass/components/card.component.scss +4 -34
  166. package/assets/sass/components/carousel.component.scss +5 -0
  167. package/assets/sass/components/charts.module.scss +0 -2
  168. package/assets/sass/components/collapsible-side.scss +91 -95
  169. package/assets/sass/components/content.component.scss +18 -0
  170. package/assets/sass/components/inline-edit.scss +2 -0
  171. package/assets/sass/components/{marketing.scss → marketing.component.scss} +2 -6
  172. package/assets/sass/components/menu.component.scss +118 -31
  173. package/assets/sass/components/menu.scss +68 -7
  174. package/assets/sass/components/milestone.scss +207 -0
  175. package/assets/sass/components/multiselect.scss +3 -0
  176. package/assets/sass/components/nav.component.scss +1 -0
  177. package/assets/sass/components/nav.global.scss +30 -0
  178. package/assets/sass/components/rank.component.scss +197 -33
  179. package/assets/sass/components/rankings.component.scss +39 -35
  180. package/assets/sass/components/rankings.global.scss +66 -10
  181. package/assets/sass/components/split-button.component.scss +77 -0
  182. package/assets/sass/components/table-basic.global.scss +2 -4
  183. package/assets/sass/components/table.global.scss +4 -4
  184. package/assets/sass/elements/badge-tag.scss +5 -1
  185. package/assets/sass/elements/buttons--compact.scss +4 -0
  186. package/assets/sass/elements/buttons--global.scss +1 -1
  187. package/assets/sass/elements/details.scss +0 -1
  188. package/assets/sass/elements/dialog.scss +1 -3
  189. package/assets/sass/elements/forms.scss +148 -22
  190. package/assets/sass/elements/links.scss +132 -4
  191. package/assets/sass/elements/lists.scss +61 -0
  192. package/assets/sass/elements/popover.scss +64 -10
  193. package/assets/sass/elements/toggle-button.scss +7 -8
  194. package/assets/sass/elements/type.scss +7 -10
  195. package/assets/sass/foundations/reboot.scss +3 -3
  196. package/assets/sass/templates/form.scss +0 -2
  197. package/assets/ts/components/actionbar/actionbar.component.ts +49 -23
  198. package/assets/ts/components/advanced-select/advanced-select.component.ts +74 -0
  199. package/assets/ts/components/calendar/calendar.component.ts +1460 -0
  200. package/assets/ts/components/card/card.component.ts +22 -14
  201. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +53 -12
  202. package/assets/ts/components/content/content.component.ts +78 -0
  203. package/assets/ts/components/marketing/marketing.component.ts +1 -1
  204. package/assets/ts/components/menu/menu.component.ts +162 -173
  205. package/assets/ts/components/milestone/milestone.component.ts +45 -0
  206. package/assets/ts/components/milestone-group/milestone-group.component.ts +41 -0
  207. package/assets/ts/components/multiselect/multiselect.component.ts +69 -3
  208. package/assets/ts/components/nav/nav.component.ts +25 -0
  209. package/assets/ts/components/notification/notification.component.ts +34 -11
  210. package/assets/ts/components/rank/rank.component.ts +345 -214
  211. package/assets/ts/components/rankings/rankings.component.ts +28 -15
  212. package/assets/ts/components/search/search.component.ts +6 -4
  213. package/assets/ts/components/split-button/split-button.component.ts +69 -0
  214. package/assets/ts/components/table/table.component.ts +14 -0
  215. package/assets/ts/components/table-ajax/table-ajax.component.ts +14 -0
  216. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +14 -0
  217. package/assets/ts/components/table-submit/table-submit.component.ts +14 -0
  218. package/assets/ts/components/video-card/video-card.component.ts +2 -3
  219. package/assets/ts/components.ts +63 -0
  220. package/assets/ts/modules/advanced-select.ts +125 -0
  221. package/assets/ts/modules/dialogs.ts +64 -61
  222. package/assets/ts/modules/dynamicEvents.ts +12 -1
  223. package/assets/ts/modules/milestone-group.ts +42 -0
  224. package/assets/ts/modules/milestone.ts +122 -0
  225. package/assets/ts/modules/table.ts +15 -1
  226. package/assets/ts/modules/videos.ts +19 -37
  227. package/assets/ts/scripts.ts +5 -3
  228. package/dist/components.es.js +41 -1923
  229. package/dist/components.umd.js +127 -171
  230. package/package.json +1 -1
  231. package/src/components/AdvancedSelect/AdvancedSelect.vue +23 -0
  232. package/src/components/Calendar/Calendar.vue +26 -0
  233. package/src/components/Card/Card.vue +1 -1
  234. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +7 -13
  235. package/src/components/Content/Content.vue +23 -0
  236. package/src/components/Milestones/Milestone.vue +27 -0
  237. package/src/components/Milestones/MilestoneGroup.vue +27 -0
  238. package/src/components/Rank/Rank.vue +1 -2
  239. package/src/components/Rankings/Rankings.vue +9 -10
  240. package/src/components/SplitButton/README.md +19 -0
  241. package/src/components/SplitButton/SplitButton.vue +26 -0
  242. package/src/index.js +44 -41
  243. package/assets/css/components/marketing.css +0 -1
  244. package/assets/css/components/marketing.css.map +0 -1
  245. package/assets/css/components/nav.old.css +0 -1
  246. package/assets/css/components/nav.old.css.map +0 -1
  247. package/assets/sass/components/nav.old.scss +0 -891
@@ -0,0 +1,45 @@
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+ import milestone from '../../modules/milestone';
3
+
4
+ trackComponentRegistered('iam-milestone');
5
+
6
+ class iamMilestone extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.attachShadow({ mode: 'open' });
10
+
11
+ const assetLocation = document.body.hasAttribute('data-assets-location')
12
+ ? document.body.getAttribute('data-assets-location')
13
+ : '/assets';
14
+ const coreCSS = document.body.hasAttribute('data-core-css')
15
+ ? document.body.getAttribute('data-core-css')
16
+ : `${assetLocation}/css/core.min.css`;
17
+
18
+ const template = document.createElement('template');
19
+ template.innerHTML = `
20
+ <style>
21
+ @import "${coreCSS}";
22
+ </style>
23
+ <div class="milestone-wrap" part="milestone-wrap">
24
+ <slot name="milestone-intro" class="milestone-intro" part="milestone-intro"></slot>
25
+ <slot>
26
+ <div class="task-wrap" part="milestone-task-wrap"></div>
27
+ </slot>
28
+ </div>
29
+ `;
30
+ this.shadowRoot?.appendChild(template.content.cloneNode(true));
31
+ }
32
+
33
+ connectedCallback(): void {
34
+ const milestoneComponent = this;
35
+
36
+ trackComponent(milestoneComponent, 'iam-milestone', [
37
+ 'milestone-item-closed',
38
+ 'milestone-item-opened',
39
+ ]);
40
+
41
+ milestone(this);
42
+ }
43
+ }
44
+
45
+ export default iamMilestone;
@@ -0,0 +1,41 @@
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+ import milestoneGroup from '../../modules/milestone-group';
3
+
4
+ trackComponentRegistered('iam-milestone-group');
5
+
6
+ class iamMilestoneGroup extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ const assetLocation = document.body.hasAttribute('data-assets-location')
10
+ ? document.body.getAttribute('data-assets-location')
11
+ : '/assets';
12
+ const coreCSS = document.body.hasAttribute('data-core-css')
13
+ ? document.body.getAttribute('data-core-css')
14
+ : `${assetLocation}/css/core.min.css`;
15
+
16
+ const template = document.createElement('template');
17
+ template.innerHTML = `
18
+ <style>
19
+ @import "${coreCSS}";
20
+ </style>
21
+ <div class="milestone-group" part="milestone-group">
22
+ <slot>
23
+ </slot>
24
+ </div>
25
+ `;
26
+ this.shadowRoot?.appendChild(template.content.cloneNode(true));
27
+ }
28
+
29
+ connectedCallback(): void {
30
+ const milestoneGroupComponent = this;
31
+
32
+ trackComponent(milestoneGroupComponent, 'iam-milestone-group', [
33
+ 'hide-future-items',
34
+ 'show-future-items'
35
+ ]);
36
+
37
+ milestoneGroup(this);
38
+ }
39
+ }
40
+
41
+ export default iamMilestoneGroup;
@@ -67,8 +67,6 @@ class iamMultiselect extends HTMLElement {
67
67
  mutations.forEach(function (mutationRecord) {
68
68
  const targetElement = mutationRecord.target as HTMLElement;
69
69
 
70
- console.log(targetElement);
71
-
72
70
  if (targetElement.classList.contains('was-validated')) {
73
71
  wrapper.classList.add('was-validated');
74
72
  } else {
@@ -149,9 +147,30 @@ class iamMultiselect extends HTMLElement {
149
147
  clearTimeout(hoverTimeout);
150
148
  });
151
149
 
152
- search.addEventListener('blur', () => {
150
+ search.addEventListener('blur', (event) => {
151
+
152
+ setTimeout(function () {
153
+ const activeElement = document.activeElement;
154
+
155
+ if(activeElement.getAttribute('type') != 'checkbox'){
156
+
157
+ if(multiselect.querySelector(`input[type="checkbox"][value="${search.value}" i]`)){
158
+
159
+ multiselect.querySelector(`input[type="checkbox"][value="${search.value}" i]`).checked = true;
160
+ setItem(multiselect.querySelector(`input[type="checkbox"][value="${search.value}" i]`));
161
+ }
162
+ search.value = "";
163
+
164
+ Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]`)).forEach((checkbox) => {
165
+ setItem(checkbox);
166
+ });
167
+ }
168
+
169
+ }, 200);
170
+
153
171
  clearTimeout(hoverTimeout);
154
172
  hoverTimeout = setTimeout(function () {
173
+
155
174
  multiselect.classList.remove('hover');
156
175
  }, 1000);
157
176
  });
@@ -163,6 +182,7 @@ class iamMultiselect extends HTMLElement {
163
182
 
164
183
  setItem(checkbox);
165
184
 
185
+ search.value = "";
166
186
  search.focus();
167
187
  clearTimeout(hoverTimeout);
168
188
  multiselect.classList.add('hover');
@@ -190,6 +210,43 @@ class iamMultiselect extends HTMLElement {
190
210
  switch (
191
211
  event.key // change to event.key to key to use the above variable
192
212
  ) {
213
+ case 'ArrowLeft':
214
+ // Up pressed
215
+ event.preventDefault();
216
+
217
+ if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
218
+ const arrCheckboxes = multiselect.querySelectorAll(`label[slot="checked"][slot="checked"]`);
219
+
220
+ const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));
221
+ const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];
222
+
223
+ if (prevCheckbox) prevCheckbox.focus();
224
+ else search.focus();
225
+ }
226
+ else if (activeElement == multiselect){
227
+
228
+ const options = Array.from(multiselect.querySelectorAll('label[slot="checked"]')).sort(function(a, b) {
229
+ return +a.dataset.order - +b.dataset.order;
230
+ });
231
+
232
+ options.pop().focus();
233
+ }
234
+
235
+ break;
236
+ case 'ArrowRight':
237
+ // Up pressed
238
+ event.preventDefault();
239
+
240
+ if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
241
+ const arrCheckboxes = multiselect.querySelectorAll(`label[slot="checked"][slot="checked"]`);
242
+
243
+ const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));
244
+ const nextCheckbox = Array.from(arrCheckboxes)[activeIndex + 1];
245
+
246
+ if (nextCheckbox) nextCheckbox.focus();
247
+ else search.focus();
248
+ }
249
+ break;
193
250
  case 'ArrowUp':
194
251
  // Up pressed
195
252
  event.preventDefault();
@@ -234,6 +291,14 @@ class iamMultiselect extends HTMLElement {
234
291
  setItem(activeElement);
235
292
  search.focus();
236
293
 
294
+ break;
295
+ case 'Backspace':
296
+ if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
297
+
298
+ activeElement.checked = false;
299
+ setItem(activeElement);
300
+ search.focus();
301
+ }
237
302
  break;
238
303
  }
239
304
  });
@@ -250,6 +315,7 @@ class iamMultiselect extends HTMLElement {
250
315
  return lastTag;
251
316
  }
252
317
 
318
+
253
319
  search.addEventListener('keydown', function (event) {
254
320
  switch (
255
321
  event.key // change to event.key to key to use the above variable
@@ -347,6 +347,31 @@ class iamNav extends HTMLElement {
347
347
  searchButton.removeAttribute('aria-expanded');
348
348
  });
349
349
  }
350
+
351
+ if(this.classList.contains('nav--sticky')){
352
+
353
+ console.log('hey');
354
+
355
+ let oldScrollY = window.scrollY;
356
+ window.onscroll = function(e) {
357
+ if(oldScrollY < window.scrollY){
358
+ document.body.setAttribute('data-direction', "down");
359
+ } else {
360
+ document.body.setAttribute('data-direction', "up");
361
+ }
362
+
363
+ if(window.scrollY > 100){
364
+ document.body.classList.add('past100');
365
+ }
366
+ else {
367
+
368
+ document.body.classList.remove('past100');
369
+ }
370
+ oldScrollY = window.scrollY;
371
+ }
372
+
373
+ }
374
+
350
375
  }
351
376
  }
352
377
 
@@ -1,11 +1,8 @@
1
1
  import setupNotification, { closeNotification } from '../../modules/notification';
2
+ import { trackComponent, trackComponentRegistered } from '../_global';
3
+
4
+ trackComponentRegistered('iam-notification');
2
5
 
3
- // Data layer Web component created
4
- window.dataLayer = window.dataLayer || [];
5
- window.dataLayer.push({
6
- event: 'customElementRegistered',
7
- element: 'Notification',
8
- });
9
6
 
10
7
  class iamNotification extends HTMLElement {
11
8
  constructor() {
@@ -44,7 +41,8 @@ class iamNotification extends HTMLElement {
44
41
  connectedCallback(): void {
45
42
  // eslint-disable-next-line @typescript-eslint/no-this-alias
46
43
  const wrapper = this;
47
- const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white';
44
+ const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';
45
+ const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;
48
46
 
49
47
  if (this.hasAttribute('data-type')) this.classList.add(`bg-${statusBG}`);
50
48
  else {
@@ -54,16 +52,28 @@ class iamNotification extends HTMLElement {
54
52
  if (!this.querySelector('i')) {
55
53
  switch (statusBG) {
56
54
  case 'danger':
57
- this.innerHTML += '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>';
55
+ this.insertAdjacentHTML(
56
+ 'beforeend',
57
+ '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>'
58
+ );
58
59
  break;
59
60
  case 'warning':
60
- this.innerHTML += '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>';
61
+ this.insertAdjacentHTML(
62
+ 'beforeend',
63
+ '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>'
64
+ );
61
65
  break;
62
66
  case 'success':
63
- this.innerHTML += '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>';
67
+ this.insertAdjacentHTML(
68
+ 'beforeend',
69
+ '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>'
70
+ );
64
71
  break;
65
72
  default:
66
- this.innerHTML += '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>';
73
+ this.insertAdjacentHTML(
74
+ 'beforeend',
75
+ '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>'
76
+ );
67
77
  }
68
78
  }
69
79
 
@@ -92,12 +102,25 @@ class iamNotification extends HTMLElement {
92
102
  'click',
93
103
  function () {
94
104
  closeNotification(wrapper);
105
+
106
+ const customEvent = new CustomEvent('dismiss', {
107
+ detail: {
108
+ class: this.classList,
109
+ },
110
+ });
111
+
112
+ this.dispatchEvent(customEvent);
113
+
95
114
  },
96
115
  false
97
116
  );
98
117
  }
99
118
 
100
119
  setupNotification(this);
120
+
121
+ trackComponent(this, 'iam-notification', [
122
+ 'dismiss'
123
+ ]);
101
124
  }
102
125
  }
103
126