@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,42 @@
1
+ export const showFuture = function (milestoneGroupElement: Element): void {
2
+ const futureToggle = milestoneGroupElement.dataset.showAllToggle;
3
+
4
+ if (!futureToggle) {
5
+ return;
6
+ }
7
+
8
+ const toggleBtn = document.createElement('button');
9
+ toggleBtn.innerHTML = 'Show next steps';
10
+ toggleBtn.classList.add('btn', 'btn-tertiary', 'show-all-toggle');
11
+
12
+ milestoneGroupElement.appendChild(toggleBtn)
13
+
14
+ toggleBtn.addEventListener('click', () => {
15
+ if(milestoneGroupElement.classList.contains('show-all')) {
16
+ toggleBtn.innerHTML = 'Show next steps';
17
+
18
+ milestoneGroupElement.classList.remove('show-all');
19
+ toggleInteractionEvent('hide-future-items', milestoneGroupElement)
20
+ } else {
21
+ toggleBtn.innerHTML = 'Hide next steps';
22
+
23
+ milestoneGroupElement.classList.add('show-all');
24
+ toggleInteractionEvent('show-future-items', milestoneGroupElement)
25
+ }
26
+
27
+ });
28
+
29
+ }
30
+
31
+ const toggleInteractionEvent = function (eventName: string, element: Element): void {
32
+ const customEvent = new CustomEvent(eventName, {});
33
+
34
+ element.dispatchEvent(customEvent);
35
+ }
36
+
37
+
38
+ const milestoneGroup = function (milestoneGroupElement: Element): void {
39
+ showFuture(milestoneGroupElement);
40
+ };
41
+
42
+ export default milestoneGroup;
@@ -0,0 +1,122 @@
1
+ export const setStatus = function (milestoneElement: Element): void {
2
+ const status = milestoneElement.dataset.status;
3
+
4
+ if(!status) {
5
+ return;
6
+ }
7
+
8
+ const milestoneWrap = milestoneElement.shadowRoot.querySelector('.milestone-wrap')
9
+ const statusTag = document.createElement('span');
10
+ statusTag.setAttribute('part', 'status');
11
+ statusTag.classList.add('milestone-status');
12
+ statusTag.innerHTML = `${status} Step`;
13
+
14
+ if(status === 'Current') {
15
+ milestoneElement.classList.add('current');
16
+ }
17
+
18
+ milestoneWrap.insertAdjacentElement('afterbegin', statusTag)
19
+ }
20
+
21
+ export const getMilestoneTasks = function (milestoneElement: Element): void {
22
+ const taskWrap = milestoneElement.shadowRoot.querySelector('.task-wrap');
23
+ const tasks = milestoneElement.dataset.items ? JSON.parse(milestoneElement.dataset.items) : [];
24
+
25
+ if(!tasks.length) {
26
+ return;
27
+ }
28
+
29
+ tasks.forEach(task => {
30
+ const taskItem = document.createElement('details');
31
+ const taskName = document.createElement('summary');
32
+ const detailsWrap = document.createElement('div');
33
+ const taskDescription = document.createElement('p');
34
+
35
+ detailsWrap.classList.add('task-details');
36
+
37
+ taskName.innerHTML = task.name;
38
+
39
+ if (task.date_completed) {
40
+ taskName.classList.add('complete');
41
+ }
42
+
43
+ taskItem.appendChild(taskName);
44
+
45
+ if (task.description) {
46
+ taskDescription.innerHTML = task.description;
47
+ detailsWrap.appendChild(taskDescription)
48
+ }
49
+
50
+ if (task.actions.length) {
51
+ detailsWrap.appendChild(getSubtasks(task.actions, taskName));
52
+ }
53
+
54
+ taskItem.appendChild(detailsWrap);
55
+
56
+ taskWrap.insertAdjacentElement('beforeend', taskItem)
57
+
58
+ // Fire tracking events
59
+ taskItem.addEventListener('click', () => {
60
+
61
+ if (taskItem?.hasAttribute('open')) {
62
+ itemInteractionEvent('milestone-item-closed', task.name, milestoneElement)
63
+ } else {
64
+ itemInteractionEvent('milestone-item-opened', task.name, milestoneElement)
65
+ }
66
+ });
67
+
68
+ });
69
+
70
+ milestoneElement.appendChild(taskWrap)
71
+ }
72
+
73
+ const itemInteractionEvent = function (eventName: string, taskName: string, element: Element): void {
74
+ const customEvent = new CustomEvent(eventName, {
75
+ detail: {
76
+ title: taskName,
77
+ },
78
+ });
79
+
80
+ element.dispatchEvent(customEvent);
81
+
82
+ }
83
+
84
+ const getSubtasks = function (actions: Array, taskName: Element): void {
85
+ const actionsWrap = document.createElement('ul');
86
+ const totalCount = actions.length;
87
+ const completed = actions.filter((action) => action.date_completed);
88
+ const completedCount = completed.length || 0;
89
+
90
+ if (totalCount < 1) {
91
+ return;
92
+ }
93
+
94
+ taskName.innerHTML += ` (${completedCount}/${totalCount})`;
95
+
96
+ actions.forEach(action => {
97
+ const actionItem = document.createElement('li');
98
+ const actionCompletedDate = document.createElement('span');
99
+
100
+ if(action.date_completed) {
101
+ actionItem.classList.add('complete')
102
+
103
+ actionCompletedDate.classList.add('action-date');
104
+ actionCompletedDate.innerHTML = action.date_completed;
105
+ }
106
+
107
+ actionItem.innerHTML = action.action;
108
+
109
+ actionItem.appendChild(actionCompletedDate);
110
+
111
+ actionsWrap.appendChild(actionItem);
112
+ });
113
+
114
+ return actionsWrap;
115
+ }
116
+
117
+ const milestone = function (milestoneElement: Element): void {
118
+ setStatus(milestoneElement)
119
+ getMilestoneTasks(milestoneElement);
120
+ };
121
+
122
+ export default milestone;
@@ -343,7 +343,21 @@ export const setupAdvancedTable = (component, table): void => {
343
343
  addSelectboxes(component, table, actionbar);
344
344
  }
345
345
 
346
- component.querySelectorAll('.dialog__wrapper .btn-compact').forEach((btn) => {
346
+ component.querySelectorAll('.dialog__wrapper .btn-compact').forEach((btn, index) => {
347
+ const wrapper = btn.closest('.dialog__wrapper');
348
+ const dialog = wrapper.querySelector('dialog');
349
+
350
+ // Transform dialog into a menu custom element
351
+ if (dialog) {
352
+ const id = `menu${uniqueID(index)}`;
353
+
354
+ dialog.setAttribute('id', id);
355
+ dialog.setAttribute('popover', 'auto');
356
+ btn.setAttribute('popovertarget', id);
357
+
358
+ dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
359
+ }
360
+
347
361
  btn.classList.add('btn-sm');
348
362
  btn.classList.add('m-0');
349
363
 
@@ -1,30 +1,23 @@
1
- const videoSupport = async(body): void => {
2
-
3
- if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {
4
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
- const loaded = await loadYouTubeScripts();
6
- }
7
- setTimeout(async() => {
8
-
1
+ const videoSupport = async (body): void => {
9
2
  if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {
10
3
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
4
  const loaded = await loadYouTubeScripts();
12
5
  }
13
- }, "2000");
14
-
15
-
16
- body.addEventListener('click', async(event) => {
6
+ setTimeout(async () => {
7
+ if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ const loaded = await loadYouTubeScripts();
10
+ }
11
+ }, '2000');
17
12
 
13
+ body.addEventListener('click', async (event) => {
18
14
  let target = (event.target as HTMLElement).closest<HTMLElement>('.youtube-link[data-youtube]');
19
15
 
20
- if(!target){
16
+ if (!target) {
21
17
  target = (event.target as HTMLElement).closest<HTMLElement>('.vimeo-link[data-vimeo]');
22
18
  }
23
-
24
-
25
- if(target && target.hasAttribute('data-youtube')){
26
-
27
19
 
20
+ if (target && target.hasAttribute('data-youtube')) {
28
21
  event.preventDefault();
29
22
 
30
23
  if (!document.body.classList.contains('youtubeLoaded')) {
@@ -33,7 +26,7 @@ setTimeout(async() => {
33
26
  }
34
27
 
35
28
  const link_id = 'youtube-' + target.getAttribute('data-youtube');
36
-
29
+
37
30
  if (!document.getElementById(`${link_id}-dialog`)) {
38
31
  document.body.insertAdjacentHTML(
39
32
  'beforeend',
@@ -49,7 +42,7 @@ setTimeout(async() => {
49
42
  });
50
43
  target.dispatchEvent(customEvent);
51
44
  window.dataLayer.push(customEvent.detail);
52
-
45
+
53
46
  createYoutTubeVideo(embed, target.getAttribute('data-youtube'));
54
47
  dialog.showModal();
55
48
 
@@ -67,14 +60,11 @@ setTimeout(async() => {
67
60
  target.dispatchEvent(customEvent);
68
61
  window.dataLayer.push(customEvent.detail);
69
62
  });
70
-
71
- }
72
- else if(target && target.hasAttribute('data-vimeo')){
73
-
63
+ } else if (target && target.hasAttribute('data-vimeo')) {
74
64
  event.preventDefault();
75
65
 
76
66
  const link_id = 'vimeo-' + target.getAttribute('data-youtube');
77
-
67
+
78
68
  if (!document.getElementById(`${link_id}-dialog`)) {
79
69
  document.body.insertAdjacentHTML(
80
70
  'beforeend',
@@ -85,7 +75,6 @@ setTimeout(async() => {
85
75
  const dialog = document.getElementById(`${link_id}-dialog`);
86
76
  const embed = document.getElementById(link_id);
87
77
 
88
-
89
78
  const videoId = target.getAttribute('data-vimeo');
90
79
 
91
80
  const customEvent = new CustomEvent('play-video', {
@@ -99,7 +88,6 @@ setTimeout(async() => {
99
88
 
100
89
  dialog.showModal();
101
90
 
102
-
103
91
  dialog.addEventListener('close', () => {
104
92
  embed.innerHTML = ``; // Remove the video since we cant pause it
105
93
 
@@ -110,16 +98,11 @@ setTimeout(async() => {
110
98
  window.dataLayer.push(customEvent.detail);
111
99
  });
112
100
  }
113
-
114
-
115
101
  });
102
+ };
116
103
 
117
- }
118
-
119
-
120
- export const loadYouTubeScripts = async(): any => {
104
+ export const loadYouTubeScripts = async (): any => {
121
105
  return new Promise((resolve, reject) => {
122
-
123
106
  const image = new Image();
124
107
  image.onload = function (): any {
125
108
  // This code loads the IFrame Player API code asynchronously.
@@ -135,10 +118,9 @@ export const loadYouTubeScripts = async(): any => {
135
118
  };
136
119
  image.src = 'https://youtube.com/favicon.ico';
137
120
  });
138
- }
139
-
121
+ };
140
122
 
141
- export const createYoutTubeVideo = async(target, video_id): void | boolean => {
123
+ export const createYoutTubeVideo = async (target, video_id): void | boolean => {
142
124
  if (typeof window.player == 'undefined') {
143
125
  window.player = [];
144
126
  }
@@ -189,6 +171,6 @@ export const createYoutTubeVideo = async(target, video_id): void | boolean => {
189
171
  done = true;
190
172
  }
191
173
  }
192
- }
174
+ };
193
175
 
194
176
  export default videoSupport;
@@ -14,6 +14,8 @@ const components = [
14
14
  'table-no-submit',
15
15
  'tabs',
16
16
  'card',
17
+ 'calendar',
18
+ 'content',
17
19
  'filter-card',
18
20
  'video-card',
19
21
  'record-card',
@@ -37,10 +39,12 @@ const components = [
37
39
  'barchart',
38
40
  'doughnutchart',
39
41
  'bento-grid',
42
+ 'milestone-group',
43
+ 'milestone'
40
44
  ];
41
45
 
42
46
  // Attach classes to dom elements
43
- document.addEventListener('DOMContentLoaded', async():void => {
47
+ document.addEventListener('DOMContentLoaded', async (): void => {
44
48
  createDataLayer();
45
49
  createDynamicEvents();
46
50
 
@@ -53,8 +57,6 @@ document.addEventListener('DOMContentLoaded', async():void => {
53
57
 
54
58
  videoSupport(document.body);
55
59
 
56
-
57
-
58
60
  /*
59
61
  const prefix = 'iam';
60
62
  const options = {