@iamproperty/components 7.4.0 → 7.5.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 (260) hide show
  1. package/README.md +1 -1
  2. package/assets/css/components/actionbar.component.css +1 -1
  3. package/assets/css/components/actionbar.component.css.map +1 -1
  4. package/assets/css/components/actionbar.global.css +1 -1
  5. package/assets/css/components/actionbar.global.css.map +1 -1
  6. package/assets/css/components/address-lookup.component.css +1 -0
  7. package/assets/css/components/address-lookup.component.css.map +1 -0
  8. package/assets/css/components/barchart.component.css +1 -1
  9. package/assets/css/components/barchart.component.css.map +1 -1
  10. package/assets/css/components/calendar.component.css +1 -1
  11. package/assets/css/components/calendar.component.css.map +1 -1
  12. package/assets/css/components/calendar.config.css.map +1 -1
  13. package/assets/css/components/card.component.css +1 -1
  14. package/assets/css/components/card.component.css.map +1 -1
  15. package/assets/css/components/carousel.component.css +1 -1
  16. package/assets/css/components/carousel.component.css.map +1 -1
  17. package/assets/css/components/charts.css +1 -1
  18. package/assets/css/components/charts.css.map +1 -1
  19. package/assets/css/components/collapsible-side.css +1 -1
  20. package/assets/css/components/collapsible-side.css.map +1 -1
  21. package/assets/css/components/content.component.css +1 -1
  22. package/assets/css/components/content.component.css.map +1 -1
  23. package/assets/css/components/darkmode.component.css +1 -0
  24. package/assets/css/components/darkmode.component.css.map +1 -0
  25. package/assets/css/components/doughnutchart.component.css +1 -1
  26. package/assets/css/components/doughnutchart.component.css.map +1 -1
  27. package/assets/css/components/inline-edit.css.map +1 -1
  28. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  29. package/assets/css/components/menu.global.css.map +1 -0
  30. package/assets/css/components/milestone.css +1 -1
  31. package/assets/css/components/milestone.css.map +1 -1
  32. package/assets/css/components/multi-step.component.css +1 -1
  33. package/assets/css/components/multi-step.component.css.map +1 -1
  34. package/assets/css/components/multiselect.css.map +1 -1
  35. package/assets/css/components/multiselect.preload.css +1 -1
  36. package/assets/css/components/multiselect.preload.css.map +1 -1
  37. package/assets/css/components/nav.component.css +1 -1
  38. package/assets/css/components/nav.component.css.map +1 -1
  39. package/assets/css/components/nav.global.css +1 -1
  40. package/assets/css/components/nav.global.css.map +1 -1
  41. package/assets/css/components/notification.css +1 -1
  42. package/assets/css/components/notification.css.map +1 -1
  43. package/assets/css/components/pagination.css.map +1 -1
  44. package/assets/css/components/property-searchbar.css +1 -1
  45. package/assets/css/components/property-searchbar.css.map +1 -1
  46. package/assets/css/components/split-button.component.css +1 -1
  47. package/assets/css/components/split-button.component.css.map +1 -1
  48. package/assets/css/components/word-count.component.css +1 -0
  49. package/assets/css/components/word-count.component.css.map +1 -0
  50. package/assets/css/core.min.css +1 -1
  51. package/assets/css/core.min.css.map +1 -1
  52. package/assets/css/mobile-core.min.css +1 -1
  53. package/assets/css/mobile-core.min.css.map +1 -1
  54. package/assets/css/mobile.min.css +1 -1
  55. package/assets/css/mobile.min.css.map +1 -1
  56. package/assets/css/style.min.css +1 -1
  57. package/assets/css/style.min.css.map +1 -1
  58. package/assets/js/components/accordion/accordion.component.js +40 -19
  59. package/assets/js/components/accordion/accordion.component.min.js +15 -15
  60. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  61. package/assets/js/components/actionbar/actionbar.component.js +8 -0
  62. package/assets/js/components/actionbar/actionbar.component.min.js +6 -5
  63. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  64. package/assets/js/components/address-lookup/address-lookup.component.js +6 -8
  65. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  66. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  67. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  68. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  69. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  70. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  71. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  72. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  73. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  74. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  75. package/assets/js/components/calendar/calendar.component.js +153 -136
  76. package/assets/js/components/calendar/calendar.component.min.js +3 -3
  77. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  78. package/assets/js/components/card/card.component.js +3 -9
  79. package/assets/js/components/card/card.component.min.js +13 -7
  80. package/assets/js/components/card/card.component.min.js.map +1 -1
  81. package/assets/js/components/carousel/carousel.component.js +17 -19
  82. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  83. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  84. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  85. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  86. package/assets/js/components/content/content.component.min.js +2 -2
  87. package/assets/js/components/content/content.component.min.js.map +1 -1
  88. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  89. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  90. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  91. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  92. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  93. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  94. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  95. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  96. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  97. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  98. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  99. package/assets/js/components/header/header.component.min.js +1 -1
  100. package/assets/js/components/header/header.component.min.js.map +1 -1
  101. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  102. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  103. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  104. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  105. package/assets/js/components/menu/menu.component.js +2 -2
  106. package/assets/js/components/menu/menu.component.min.js +4 -5
  107. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  108. package/assets/js/components/milestone/milestone.component.js +12 -14
  109. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  110. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  111. package/assets/js/components/milestone-group/milestone-group.component.js +10 -12
  112. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  113. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  114. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  115. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  116. package/assets/js/components/multiselect/multiselect.component.js +2 -2
  117. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  118. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  119. package/assets/js/components/nav/nav.component.js +2 -3
  120. package/assets/js/components/nav/nav.component.min.js +5 -5
  121. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  122. package/assets/js/components/notification/notification.component.js +1 -3
  123. package/assets/js/components/notification/notification.component.min.js +5 -5
  124. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  125. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  126. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  127. package/assets/js/components/rank/rank.component.min.js +1 -1
  128. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  129. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  130. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  131. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  132. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  133. package/assets/js/components/search/search.component.min.js +1 -1
  134. package/assets/js/components/search/search.component.min.js.map +1 -1
  135. package/assets/js/components/slider/slider.component.min.js +1 -1
  136. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  137. package/assets/js/components/split-button/split-button.component.js +1 -3
  138. package/assets/js/components/split-button/split-button.component.min.js +8 -11
  139. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  140. package/assets/js/components/table/table.component.min.js +1 -1
  141. package/assets/js/components/table/table.component.min.js.map +1 -1
  142. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  143. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  144. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  145. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  146. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  147. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  148. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  149. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  150. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  151. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  152. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  153. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  154. package/assets/js/components/word-count/word-count.component.js +81 -0
  155. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  156. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  157. package/assets/js/components.js +1 -0
  158. package/assets/js/modules/advanced-select.js +1 -1
  159. package/assets/js/modules/dynamicEvents.js +3 -3
  160. package/assets/js/modules/inputs.js +0 -18
  161. package/assets/js/modules/milestone.js +2 -2
  162. package/assets/js/scripts.bundle.js +3 -3
  163. package/assets/js/scripts.bundle.js.map +1 -1
  164. package/assets/js/scripts.bundle.min.js +2 -2
  165. package/assets/js/scripts.bundle.min.js.map +1 -1
  166. package/assets/js/scripts.js +2 -1
  167. package/assets/sass/_components.scss +4 -4
  168. package/assets/sass/_example.scss +1 -1
  169. package/assets/sass/_functions/utility-mixins.scss +0 -1
  170. package/assets/sass/components/actionbar.component.scss +22 -0
  171. package/assets/sass/components/actionbar.global.scss +1 -1
  172. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  173. package/assets/sass/components/calendar.component.scss +163 -271
  174. package/assets/sass/components/calendar.config.scss +69 -122
  175. package/assets/sass/components/darkmode.component.scss +22 -0
  176. package/assets/sass/components/milestone.scss +69 -60
  177. package/assets/sass/components/multi-step.component.scss +1 -1
  178. package/assets/sass/components/multiselect.preload.scss +1 -1
  179. package/assets/sass/components/multiselect.scss +1 -2
  180. package/assets/sass/components/nav.component.scss +16 -6
  181. package/assets/sass/components/nav.global.scss +8 -12
  182. package/assets/sass/components/notification.scss +32 -13
  183. package/assets/sass/components/split-button.component.scss +3 -1
  184. package/assets/sass/components/table-basic.global.scss +32 -32
  185. package/assets/sass/components/word-count.component.scss +26 -0
  186. package/assets/sass/elements/admin-panel.scss +1 -1
  187. package/assets/sass/elements/buttons--compact.scss +1 -1
  188. package/assets/sass/elements/details.scss +33 -6
  189. package/assets/sass/elements/forms.scss +18 -33
  190. package/assets/sass/elements/lists.scss +1 -1
  191. package/assets/sass/elements/toggle-button.scss +1 -0
  192. package/assets/sass/foundations/colours.scss +0 -0
  193. package/assets/sass/foundations/reboot.scss +8 -1
  194. package/assets/sass/foundations/root.scss +41 -51
  195. package/assets/ts/components/accordion/accordion.component.ts +47 -26
  196. package/assets/ts/components/actionbar/actionbar.component.ts +10 -0
  197. package/assets/ts/components/address-lookup/address-lookup.component.ts +6 -8
  198. package/assets/ts/components/calendar/calendar.component.ts +368 -498
  199. package/assets/ts/components/card/card.component.ts +2 -9
  200. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  201. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  202. package/assets/ts/components/menu/menu.component.ts +2 -2
  203. package/assets/ts/components/milestone/milestone.component.ts +43 -45
  204. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -41
  205. package/assets/ts/components/multiselect/multiselect.component.ts +6 -15
  206. package/assets/ts/components/nav/nav.component.ts +8 -15
  207. package/assets/ts/components/notification/notification.component.ts +1 -5
  208. package/assets/ts/components/split-button/split-button.component.ts +1 -3
  209. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  210. package/assets/ts/components.ts +1 -0
  211. package/assets/ts/modules/advanced-select.ts +11 -16
  212. package/assets/ts/modules/data-layer.md +0 -5
  213. package/assets/ts/modules/dynamicEvents.ts +6 -7
  214. package/assets/ts/modules/inputs.ts +0 -25
  215. package/assets/ts/modules/milestone-group.ts +39 -42
  216. package/assets/ts/modules/milestone.ts +119 -122
  217. package/assets/ts/scripts.ts +2 -1
  218. package/dist/components.es.js +1693 -41
  219. package/dist/components.umd.js +1032 -221
  220. package/package.json +6 -6
  221. package/src/components/Accordion/Accordion.vue +14 -23
  222. package/src/components/Accordion/AccordionItem.vue +27 -43
  223. package/src/components/Actionbar/Actionbar.vue +17 -19
  224. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  225. package/src/components/AdvancedSelect/AdvancedSelect.vue +17 -18
  226. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  227. package/src/components/Banner/Banner.vue +18 -21
  228. package/src/components/BarChart/BarChart.vue +17 -18
  229. package/src/components/Calendar/Calendar.vue +14 -20
  230. package/src/components/Card/Card.vue +17 -17
  231. package/src/components/Carousel/Carousel.vue +17 -20
  232. package/src/components/Content/Content.vue +17 -18
  233. package/src/components/DarkMode/DarkMode.vue +19 -0
  234. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  235. package/src/components/FileUpload/FileUpload.vue +22 -28
  236. package/src/components/FilterCard/FilterCard.vue +17 -18
  237. package/src/components/Filterlist/Filterlist.vue +17 -0
  238. package/src/components/Header/Header.vue +28 -29
  239. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  240. package/src/components/Menu/Menu.vue +17 -17
  241. package/src/components/Milestones/Milestone.vue +22 -27
  242. package/src/components/Milestones/MilestoneGroup.vue +24 -27
  243. package/src/components/Multiselect/Multiselect.vue +17 -18
  244. package/src/components/Nav/Nav.vue +17 -19
  245. package/src/components/Notification/Notification.vue +17 -15
  246. package/src/components/Pagination/Pagination.vue +16 -16
  247. package/src/components/Rank/Rank.vue +17 -18
  248. package/src/components/Rankings/Rankings.vue +17 -27
  249. package/src/components/RecordCard/RecordCard.vue +17 -18
  250. package/src/components/Search/Search.vue +17 -17
  251. package/src/components/Slider/Slider.vue +17 -17
  252. package/src/components/SplitButton/SplitButton.vue +17 -20
  253. package/src/components/Tabs/Tabs.vue +17 -17
  254. package/src/components/VideoCard/VideoCard.vue +17 -18
  255. package/src/components/WordCount/WordCount.vue +22 -0
  256. package/src/index.js +43 -44
  257. package/assets/css/components/address-lookup.css +0 -1
  258. package/assets/css/components/address-lookup.css.map +0 -1
  259. package/assets/css/components/menu.css.map +0 -1
  260. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../../modules/videos.js","video-card.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","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n }), '2000');\n body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {\n let target = event.target.closest('.youtube-link[data-youtube]');\n if (!target) {\n target = event.target.closest('.vimeo-link[data-vimeo]');\n }\n if (target && target.hasAttribute('data-youtube')) {\n event.preventDefault();\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n const link_id = 'youtube-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n createYoutTubeVideo(embed, target.getAttribute('data-youtube'));\n dialog.showModal();\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n else if (target && target.hasAttribute('data-vimeo')) {\n event.preventDefault();\n const link_id = 'vimeo-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const videoId = target.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: target.getAttribute('data-vimeo') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n }));\n});\nexport const loadYouTubeScripts = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n});\nexport const createYoutTubeVideo = (target, video_id) => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n const link_id = target.getAttribute('id');\n if (typeof window.player[link_id] != 'undefined' && typeof window.player[link_id].pauseVideo == 'function') {\n window.player[link_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[link_id] = new YT.Player(link_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(link_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n});\nexport default videoSupport;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\nimport { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n createYoutTubeVideo(embed, this.getAttribute('[data-youtbue]'));\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","loadYouTubeScripts","image","tag","firstScriptTag","createYoutTubeVideo","target","video_id","link_id","onPlayerReady","onPlayerStateChange","done","iamVideoCard","template","dialog","embed","customEvent","videoId","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
1
+ {"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","../../modules/videos.js","video-card.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","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nconst videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {\n if (document.querySelector('.youtube-link[data-youtube]') && !document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n }), '2000');\n body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {\n let target = event.target.closest('.youtube-link[data-youtube]');\n if (!target) {\n target = event.target.closest('.vimeo-link[data-vimeo]');\n }\n if (target && target.hasAttribute('data-youtube')) {\n event.preventDefault();\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n const link_id = 'youtube-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n createYoutTubeVideo(embed, target.getAttribute('data-youtube'));\n dialog.showModal();\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: target.getAttribute('data-youtube') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n else if (target && target.hasAttribute('data-vimeo')) {\n event.preventDefault();\n const link_id = 'vimeo-' + target.getAttribute('data-youtube');\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n const dialog = document.getElementById(`${link_id}-dialog`);\n const embed = document.getElementById(link_id);\n const videoId = target.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: target.getAttribute('data-vimeo') },\n });\n target.dispatchEvent(customEvent);\n window.dataLayer.push(customEvent.detail);\n });\n }\n }));\n});\nexport const loadYouTubeScripts = () => __awaiter(void 0, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n});\nexport const createYoutTubeVideo = (target, video_id) => __awaiter(void 0, void 0, void 0, function* () {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n const link_id = target.getAttribute('id');\n if (typeof window.player[link_id] != 'undefined' && typeof window.player[link_id].pauseVideo == 'function') {\n window.player[link_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[link_id] = new YT.Player(link_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(link_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n});\nexport default videoSupport;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\nimport { loadYouTubeScripts, createYoutTubeVideo } from '../../modules/videos.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n createYoutTubeVideo(embed, this.getAttribute('[data-youtbue]'));\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","loadYouTubeScripts","image","tag","firstScriptTag","createYoutTubeVideo","target","video_id","link_id","onPlayerReady","onPlayerStateChange","done","iamVideoCard","template","dialog","embed","customEvent","videoId","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { trackComponentRegistered } from '../_global.js';
2
+ trackComponentRegistered('iam-word-count');
3
+ class iamCard 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/word-count.component.css";`;
11
+ const template = document.createElement('template');
12
+ template.innerHTML = `
13
+ <style>
14
+
15
+ ${loadCSS}
16
+ </style>
17
+ <slot></slot>
18
+ `;
19
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
20
+ }
21
+ connectedCallback() {
22
+ const input = this.querySelector('input,textarea,select');
23
+ let span = this.querySelector('[data-count]');
24
+ if (!span) {
25
+ span = document.createElement('span');
26
+ this.append(span);
27
+ }
28
+ console.log(input.value.split(' ').length);
29
+ if (this.hasAttribute('data-character'))
30
+ span.setAttribute('data-count', input.value ? input.value.length : '0');
31
+ else
32
+ span.setAttribute('data-count', input.value ? input.value.split(' ').length : '0');
33
+ const maxlength = this.getAttribute('data-max');
34
+ this.style.setProperty('--maxlength', maxlength);
35
+ span.setAttribute('data-max', this.getAttribute('data-max'));
36
+ input.addEventListener('input', (event) => {
37
+ if (this.hasAttribute('data-max') && span && this.hasAttribute('data-character')) {
38
+ input === null || input === void 0 ? void 0 : input.setAttribute('maxlength', this.getAttribute('data-max'));
39
+ span.setAttribute('data-count', input === null || input === void 0 ? void 0 : input.value.length);
40
+ }
41
+ else if (this.hasAttribute('data-max') && span) {
42
+ if ((input === null || input === void 0 ? void 0 : input.value.split(' ').length) >= this.getAttribute('data-max')) {
43
+ event === null || event === void 0 ? void 0 : event.preventDefault();
44
+ input === null || input === void 0 ? void 0 : input.setAttribute('maxlength', input === null || input === void 0 ? void 0 : input.value.length);
45
+ }
46
+ else {
47
+ input === null || input === void 0 ? void 0 : input.removeAttribute('maxlength');
48
+ }
49
+ span.setAttribute('data-count', input === null || input === void 0 ? void 0 : input.value.split(' ').length);
50
+ span.setAttribute('data-max', this.getAttribute('data-max'));
51
+ }
52
+ });
53
+ /*
54
+
55
+ // maxlength counter init
56
+ Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {
57
+ const wrapper = input.parentElement;
58
+ setMaxlengthVars(input, wrapper);
59
+ });
60
+
61
+
62
+
63
+ const wrapper = input.parentElement;
64
+ const maxlength = input.getAttribute('maxlength');
65
+
66
+ wrapper.style.setProperty('--maxlength', maxlength);
67
+
68
+ let span = input.nextElementSibling;
69
+
70
+ if (!span || (span && span.classList.contains('invalid-feedback'))) {
71
+ span = document.createElement('span');
72
+ wrapper.insertBefore(span, input.nextSibling);
73
+ }
74
+ v
75
+ span.setAttribute('data-count', input.value.length);
76
+
77
+
78
+ */
79
+ }
80
+ }
81
+ export default iamCard;
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * iamKey v7.5.0
3
+ * Copyright 2022-2025 iamproperty
4
+ */const o=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})};o("iam-word-count");class n extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
5
+ <style>
6
+
7
+ :host{display:block;max-width:var(--input-max-width, 50rem)}::slotted(span){position:relative;display:block}::slotted(span)::before{display:inline-block;content:attr(data-count) " / " attr(data-max);float:right;margin:0 0 1em 1em}/*# sourceMappingURL=assets/css/components/word-count.component.css.map */
8
+
9
+ </style>
10
+ <slot></slot>
11
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){const t=this.querySelector("input,textarea,select");let e=this.querySelector("[data-count]");e||(e=document.createElement("span"),this.append(e)),console.log(t.value.split(" ").length),this.hasAttribute("data-character")?e.setAttribute("data-count",t.value?t.value.length:"0"):e.setAttribute("data-count",t.value?t.value.split(" ").length:"0");const s=this.getAttribute("data-max");this.style.setProperty("--maxlength",s),e.setAttribute("data-max",this.getAttribute("data-max")),t.addEventListener("input",a=>{this.hasAttribute("data-max")&&e&&this.hasAttribute("data-character")?(t?.setAttribute("maxlength",this.getAttribute("data-max")),e.setAttribute("data-count",t?.value.length)):this.hasAttribute("data-max")&&e&&(t?.value.split(" ").length>=this.getAttribute("data-max")?(a?.preventDefault(),t?.setAttribute("maxlength",t?.value.length)):t?.removeAttribute("maxlength"),e.setAttribute("data-count",t?.value.split(" ").length),e.setAttribute("data-max",this.getAttribute("data-max")))})}}export{n as default};
12
+ //# sourceMappingURL=word-count.component.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"word-count.component.min.js","sources":["../_global.js","word-count.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 { trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-word-count');\nclass iamCard 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/word-count.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n\n ${loadCSS}\n </style>\n <slot></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const input = this.querySelector('input,textarea,select');\n let span = this.querySelector('[data-count]');\n if (!span) {\n span = document.createElement('span');\n this.append(span);\n }\n console.log(input.value.split(' ').length);\n if (this.hasAttribute('data-character'))\n span.setAttribute('data-count', input.value ? input.value.length : '0');\n else\n span.setAttribute('data-count', input.value ? input.value.split(' ').length : '0');\n const maxlength = this.getAttribute('data-max');\n this.style.setProperty('--maxlength', maxlength);\n span.setAttribute('data-max', this.getAttribute('data-max'));\n input.addEventListener('input', (event) => {\n if (this.hasAttribute('data-max') && span && this.hasAttribute('data-character')) {\n input === null || input === void 0 ? void 0 : input.setAttribute('maxlength', this.getAttribute('data-max'));\n span.setAttribute('data-count', input === null || input === void 0 ? void 0 : input.value.length);\n }\n else if (this.hasAttribute('data-max') && span) {\n if ((input === null || input === void 0 ? void 0 : input.value.split(' ').length) >= this.getAttribute('data-max')) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n input === null || input === void 0 ? void 0 : input.setAttribute('maxlength', input === null || input === void 0 ? void 0 : input.value.length);\n }\n else {\n input === null || input === void 0 ? void 0 : input.removeAttribute('maxlength');\n }\n span.setAttribute('data-count', input === null || input === void 0 ? void 0 : input.value.split(' ').length);\n span.setAttribute('data-max', this.getAttribute('data-max'));\n }\n });\n /*\n \n // maxlength counter init\n Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {\n const wrapper = input.parentElement;\n setMaxlengthVars(input, wrapper);\n });\n \n \n \n const wrapper = input.parentElement;\n const maxlength = input.getAttribute('maxlength');\n \n wrapper.style.setProperty('--maxlength', maxlength);\n \n let span = input.nextElementSibling;\n \n if (!span || (span && span.classList.contains('invalid-feedback'))) {\n span = document.createElement('span');\n wrapper.insertBefore(span, input.nextSibling);\n }\n v\n span.setAttribute('data-count', input.value.length);\n \n \n */\n }\n}\nexport default iamCard;\n"],"names":["trackComponentRegistered","componentName","iamCard","template","input","span","maxlength","event"],"mappings":";;;IAAO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,ECNAD,EAAyB,gBAAgB,EACzC,MAAME,UAAgB,WAAY,CAC9B,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOrB,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,MAAMC,EAAQ,KAAK,cAAc,uBAAuB,EACxD,IAAIC,EAAO,KAAK,cAAc,cAAc,EACvCA,IACDA,EAAO,SAAS,cAAc,MAAM,EACpC,KAAK,OAAOA,CAAI,GAEpB,QAAQ,IAAID,EAAM,MAAM,MAAM,GAAG,EAAE,MAAM,EACrC,KAAK,aAAa,gBAAgB,EAClCC,EAAK,aAAa,aAAcD,EAAM,MAAQA,EAAM,MAAM,OAAS,GAAG,EAEtEC,EAAK,aAAa,aAAcD,EAAM,MAAQA,EAAM,MAAM,MAAM,GAAG,EAAE,OAAS,GAAG,EACrF,MAAME,EAAY,KAAK,aAAa,UAAU,EAC9C,KAAK,MAAM,YAAY,cAAeA,CAAS,EAC/CD,EAAK,aAAa,WAAY,KAAK,aAAa,UAAU,CAAC,EAC3DD,EAAM,iBAAiB,QAAUG,GAAU,CACnC,KAAK,aAAa,UAAU,GAAKF,GAAQ,KAAK,aAAa,gBAAgB,GAC7BD,GAAM,aAAa,YAAa,KAAK,aAAa,UAAU,CAAC,EAC3GC,EAAK,aAAa,aAA4DD,GAAM,MAAM,MAAM,GAE3F,KAAK,aAAa,UAAU,GAAKC,IACaD,GAAM,MAAM,MAAM,GAAG,EAAE,QAAW,KAAK,aAAa,UAAU,GAC/DG,GAAM,eAAc,EACpBH,GAAM,aAAa,YAA2DA,GAAM,MAAM,MAAM,GAGhGA,GAAM,gBAAgB,WAAW,EAEnFC,EAAK,aAAa,aAA4DD,GAAM,MAAM,MAAM,GAAG,EAAE,MAAM,EAC3GC,EAAK,aAAa,WAAY,KAAK,aAAa,UAAU,CAAC,EAEnE,CAAC,CA2BL,CACJ"}
@@ -26,6 +26,7 @@ const components = [
26
26
  'marketing',
27
27
  'barchart',
28
28
  'splitbutton',
29
+ 'word-count',
29
30
  ];
30
31
  const prefix = 'iam';
31
32
  const options = {
@@ -33,7 +33,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
33
33
  if (event && event.target instanceof HTMLElement && event.target.closest('datalist option')) {
34
34
  const option = event.target.closest('datalist option');
35
35
  displayInputField.value = option.value;
36
- if (typeof window.triggerDynamicEvent == "function")
36
+ if (typeof window.triggerDynamicEvent == 'function')
37
37
  window.triggerDynamicEvent(displayInputField);
38
38
  datalist.style.display = 'none';
39
39
  for (const optionInner of datalist.options) {
@@ -1,9 +1,9 @@
1
1
  // Create the event listeners
2
- window.triggerDynamicEvent = (element, event = "change") => {
2
+ window.triggerDynamicEvent = (element, event = 'change') => {
3
3
  console.log('event');
4
- if (element.hasAttribute('data-change-events') && event == "change")
4
+ if (element.hasAttribute('data-change-events') && event == 'change')
5
5
  splitEvents(element, element.getAttribute('data-change-events'));
6
- if (element.hasAttribute('data-click-events') && event == "click")
6
+ if (element.hasAttribute('data-click-events') && event == 'click')
7
7
  splitEvents(element, element.getAttribute('data-click-events'));
8
8
  };
9
9
  const createDynamicEvents = () => {
@@ -1,11 +1,6 @@
1
1
  import hibpCheck from '../vendor/hibp.js';
2
2
  const extendInputs = (body) => {
3
3
  function loadInput() {
4
- // maxlength counter init
5
- Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {
6
- const wrapper = input.parentElement;
7
- setMaxlengthVars(input, wrapper);
8
- });
9
4
  Array.from(document.querySelectorAll('label input')).forEach((input) => {
10
5
  if (!input.closest('label').querySelector('.optional-text') && !input.hasAttribute('required')) {
11
6
  if (input.parentNode.tagName.toLowerCase() == 'span')
@@ -62,8 +57,6 @@ const extendInputs = (body) => {
62
57
  // Output the color hex
63
58
  if (input.hasAttribute('type') && input.getAttribute('type') == 'color')
64
59
  input.nextElementSibling.value = input.value;
65
- if (input.hasAttribute('maxlength') && input.nextElementSibling)
66
- input.nextElementSibling.setAttribute('data-count', input.value.length);
67
60
  if (input.hasAttribute('data-strength-checker'))
68
61
  checkPWDStrength(input);
69
62
  }
@@ -104,17 +97,6 @@ const extendInputs = (body) => {
104
97
  }
105
98
  });
106
99
  };
107
- export const setMaxlengthVars = (input) => {
108
- const wrapper = input.parentElement;
109
- const maxlength = input.getAttribute('maxlength');
110
- wrapper.style.setProperty('--maxlength', maxlength);
111
- let span = input.nextElementSibling;
112
- if (!span || (span && span.classList.contains('invalid-feedback'))) {
113
- span = document.createElement('span');
114
- wrapper.insertBefore(span, input.nextSibling);
115
- }
116
- span.setAttribute('data-count', input.value.length);
117
- };
118
100
  export const changeType = (input, type) => {
119
101
  if (input.hasAttribute('type') && input.getAttribute('type') == 'password')
120
102
  input.setAttribute('data-password-type', true);
@@ -19,7 +19,7 @@ export const getMilestoneTasks = function (milestoneElement) {
19
19
  if (!tasks.length) {
20
20
  return;
21
21
  }
22
- tasks.forEach(task => {
22
+ tasks.forEach((task) => {
23
23
  const taskItem = document.createElement('details');
24
24
  const taskName = document.createElement('summary');
25
25
  const detailsWrap = document.createElement('div');
@@ -68,7 +68,7 @@ const getSubtasks = function (actions, taskName) {
68
68
  return;
69
69
  }
70
70
  taskName.innerHTML += ` (${completedCount}/${totalCount})`;
71
- actions.forEach(action => {
71
+ actions.forEach((action) => {
72
72
  const actionItem = document.createElement('li');
73
73
  const actionCompletedDate = document.createElement('span');
74
74
  if (action.date_completed) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v7.4.0
2
+ * iamKey v7.5.0
3
3
  * Copyright 2022-2025 iamproperty
4
- */(function(b){typeof define=="function"&&define.amd?define(b):b()})(function(){"use strict";var b=r=>{r.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie")},H=r=>{var t=function(e){var o=document.querySelector('label[for="'.concat(e.replace("#",""),'"]')),i=document.querySelector(e+" summary"),c=document.querySelector("dialog".concat(e)),n=document.querySelector("detail".concat(e));o instanceof HTMLElement?o.click():i instanceof HTMLElement?i.click():c instanceof HTMLElement?c.showModal():n instanceof HTMLElement&&n.addAttribute("open")};location.hash&&t(location.hash),window.addEventListener("hashchange",function(){t(location.hash)},!1),addEventListener("popstate",a=>{if(a&&a.state&&a.state.type&&a.state.type=="pagination"){var e=document.querySelector("#".concat(a.state.form)),o=document.querySelector("#".concat(a.state.form," [data-pagination]"));o?o.value=a.state.page:e.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(a.state.page,'" />'),e.dispatchEvent(new Event("submit"))}}),document.addEventListener("submit",a=>{if(a&&a.target instanceof HTMLElement&&a.target.matches("form")){var e=a.target;Array.from(e.querySelectorAll("[data-password-type]")).forEach(o=>{o.setAttribute("type","password")}),(e.querySelector(":invalid")||e.querySelector('.pwd-checker[data-strength="1"]')||e.querySelector('.pwd-checker[data-strength="2"]'))&&(e.classList.add("was-validated"),a.preventDefault()),e.querySelector("iam-multiselect[data-is-required][data-error]")&&(e.classList.add("was-validated"),a.preventDefault())}}),document.addEventListener("keydown",a=>{a.key==="Escape"&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(a.preventDefault(),a.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach(a=>{var e=a.closest("label");e.setAttribute("data-percent",a.getAttribute("value"))})},D=r=>(Array.from(r.querySelectorAll("dialog[open]")).forEach(t=>{var a=t.closest(".dialog__wrapper");a||(t.removeAttribute("open"),t.showModal(),t.focus(),E(t))}),r.addEventListener("click",t=>{if(t.target.tagName=="IAM-ACTIONBAR")return!1;if(t&&t.target instanceof HTMLElement&&t.target.closest("[data-modal]")){var a=t.target.closest("[data-modal]"),e=a.hasAttribute("data-modal")?a.getAttribute("data-modal"):a.getAttribute("data-filter"),o=document.querySelector("dialog#".concat(e));if(E(o),o.showModal(),o.focus(),!o.querySelector("iam-multi-step")){var i=o.offsetWidth;o.setAttribute("style","max-width: ".concat(i,"px;"))}Array.from(o.querySelectorAll("[data-duplicate]")).forEach(y=>{var X=y.getAttribute("data-duplicate"),C=document.getElementById(X);if(y.checked!=C.checked){y.checked=C.checked;var z=new Event("change");y.dispatchEvent(z)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:e})}if(t&&t.target instanceof HTMLElement&&t.target.closest("button.dialog__close")){var c=t.target.closest("dialog[open]");t.preventDefault(),c.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(y=>{y.classList.remove("active")});var n=new CustomEvent("dialog-closed",{bubbles:!0,cancelable:!0,detail:{modalId:c.id}});t.target.dispatchEvent(n),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:c.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest('button[formmethod="dialog"]')){var l=t.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(y=>{y.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:l.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest("dialog[open]")){var s=t.target.closest("dialog[open]"),d=window.getComputedStyle(s);if(d.display==="contents"&&(s=s.parentNode.closest("dialog[open]")),!s.classList.contains("dialog--transactional")&&!s.classList.contains("dialog--acknowledgement")){var u=s.getBoundingClientRect();(t.clientX<u.left||t.clientX>u.right||t.clientY<u.top||t.clientY>u.bottom)&&(t.target.closest("dialog *")||s.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")}))}}if(t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__wrapper > button")){var f=t.target.closest(".dialog__wrapper > button"),S=f.parentNode;if(S.querySelector("dialog")){t.stopPropagation();var q="openPopover",g=S.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=g&&f.closest("dialog[open]")!=document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(y=>{y.removeAttribute("aria-expanded")}),g.hasAttribute("open"))g.close(),q="closePopover",g.removeAttribute("style"),f.removeAttribute("aria-expanded");else{g.show(),f.setAttribute("aria-expanded",!0);var k=f.getBoundingClientRect(),T=k.top,x=k.left;if(f.closest("iam-table")){var M=f.closest("iam-table").parentNode.getBoundingClientRect();T-=M.top,x-=M.left}g.classList.contains("dialog--fix")&&g.setAttribute("style","position:fixed;top: ".concat(T,"px; left: ").concat(x,"px; margin: 3rem 0 0 0;"))}var A=g.getBoundingClientRect(),W=A.bottom-window.scrollY,G=window.innerHeight-window.scrollY;if(W>G){var J=g.hasAttribute("style")?g.getAttribute("style")+" ":"";g.setAttribute("style",J+"transform: translate(0, calc(-100% - 4rem))"),A=g.getBoundingClientRect();var U=A.top-window.scrollY;U<100&&g.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:q,id:f.textContent})}}t&&t.target instanceof HTMLElement&&!t.target.closest("dialog[open]")&&!t.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach(y=>{y.removeAttribute("aria-expanded")}))}),null),E=r=>{if(!r.querySelector(":scope .mh-lg")&&!r.querySelector("iam-multi-step")){r.innerHTML='<div class="mh-lg">'.concat(r.innerHTML,"</div>");var t=r.querySelector(".mh-lg"),a=r.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(a){var e=a.previousSibling;t.before(a),e&&a.before(e)}}r.querySelector(":scope > button:first-child")||r.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')};function I(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",r=>{var t=r.target.closest("[open] summary");if(t)window.dataLayer.push({event:"closeDetails",detailsTitle:t.textContent||""});else{var a=r.target.closest("summary"),e=r.target.closest("a"),o=r.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),e&&window.dataLayer.push({event:"linkClicked",linkText:e.hasAttribute("title")?e.getAttribute("title")||"":e.textContent||"",class:e.hasAttribute("class")&&e.getAttribute("class")||"",href:e.getAttribute("href")||""}),o&&window.dataLayer.push({event:"buttonClicked",buttonText:o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||""})}})}function B(r){var t=new TextEncoder("utf-8").encode(r);return crypto.subtle.digest("SHA-1",t).then(function(a){for(var e=[],o=new DataView(a),i=0;i<o.byteLength;i+=4){var c=o.getUint32(i),n=c.toString(16),l="00000000",s=(l+n).slice(-l.length);e.push(s)}return e.join("")})}var V=(r,t)=>{B(r).then(function(a){var e=new XMLHttpRequest;e.addEventListener("load",function(){var o=this.responseText.split(`
5
- `),i=a.slice(5).toUpperCase(),c=!1;for(var n in o)if(o[n].substring(0,35)==i){c=!0;break}var l=new CustomEvent("hibpCheck",{detail:c});t.dispatchEvent(l)}),e.open("GET","https://api.pwnedpasswords.com/range/"+a.substr(0,5)),e.send()})},N=r=>{function t(){if(Array.from(document.querySelectorAll("input[maxlength],textarea[maxlength]")).forEach(e=>{e.parentElement,Y(e)}),Array.from(document.querySelectorAll("label input")).forEach(e=>{!e.closest("label").querySelector(".optional-text")&&!e.hasAttribute("required")&&(e.parentNode.tagName.toLowerCase()=="span"?e.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):e.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))}),document.querySelector('input[type="date"]')){let e=function(o){var i=o.getFullYear(),c=String(o.getMonth()+1).padStart(2,"0"),n=String(o.getDate()).padStart(2,"0");return"".concat(i,"-").concat(c,"-").concat(n)};var a=new Date;Array.from(document.querySelectorAll('input[type="date"]')).forEach(o=>{var i=a;if(o.hasAttribute("data-start")&&(i.setDate(i.getDate()+parseInt(o.getAttribute("data-start"))),o.setAttribute("min",e(i))),o.hasAttribute("data-period")){var c=parseInt(o.getAttribute("data-period")),n=new Date;n.setDate(i.getDate()+c),o.setAttribute("max",e(n))}if(o.hasAttribute("data-allowed-days")){var l=JSON.parse("[".concat(o.getAttribute("data-allowed-days"),"]"));o.addEventListener("input",function(){var s=new Date(this.value).getUTCDay();l.includes(s)?o.setCustomValidity(""):o.setCustomValidity("That day of the week is not allowed")})}})}}document.readyState==="complete"&&t(),document.onreadystatechange=()=>{document.readyState==="complete"&&t()},r.addEventListener("input",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("input,textarea,select")){var e=a.target.closest("input,textarea,select");e.hasAttribute("type")&&e.getAttribute("type")=="color"&&(e.nextElementSibling.value=e.value),e.hasAttribute("maxlength")&&e.nextElementSibling&&e.nextElementSibling.setAttribute("data-count",e.value.length),e.hasAttribute("data-strength-checker")&&v(e)}}),r.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("select")){var e=a.target.closest("select");if(e.hasAttribute("data-change-type")&&e.hasAttribute("data-input")){var o=document.getElementById(e.getAttribute("data-input")),i=e.value;L(o,i)}}if(a&&a.target instanceof HTMLElement&&a.target.closest('dialog [type="radio"]')){var c=a.target.closest("dialog");Array.from(c.querySelectorAll('[type="radio"][autofocus]')).forEach(n=>{n.removeAttribute("autofocus")}),Array.from(c.querySelectorAll('[type="radio"]:checked')).forEach(n=>{n.setAttribute("autofocus",!0)})}}),r.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-change-type][data-input]:not(select)")){var e=a.target.closest("[data-change-type]"),o=document.getElementById(e.getAttribute("data-input")),i=e.getAttribute("data-change-type");if(e.setAttribute("data-change-type",o.getAttribute("type")),L(o,i),e.hasAttribute("data-alt-class")){var c=e.getAttribute("data-alt-class");e.setAttribute("data-alt-class",e.getAttribute("class")),e.setAttribute("class",c)}}})},Y=r=>{var t=r.parentElement,a=r.getAttribute("maxlength");t.style.setProperty("--maxlength",a);var e=r.nextElementSibling;(!e||e&&e.classList.contains("invalid-feedback"))&&(e=document.createElement("span"),t.insertBefore(e,r.nextSibling)),e.setAttribute("data-count",r.value.length)},L=(r,t)=>{r.hasAttribute("type")&&r.getAttribute("type")=="password"&&r.setAttribute("data-password-type",!0),r.setAttribute("type",t)},v=function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"no",e=document.getElementById(t.getAttribute("data-strength-checker")),o=t.value,i=t.hasAttribute("minlength")?t.getAttribute("minlength"):12,c=1,n=["Very weak","Weak","Average","Strong","Very strong"],l="";if(o.match(/(?=.*[0-9])/)&&(c+=1),o.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/)&&(c+=1),o.match(/(?=.*[a-z])/)&&(c+=1),o.match(/(?=.*[A-Z])/)&&(c+=1),o.length<i&&(c=1,l="(must be at least ".concat(i," characters.)")),c>=3&&a=="no"){let s=function(d,u){d.detail?v(u,"danger"):v(u,"success"),u.removeEventListener("hibpCheck",s)};V(o,t),t.addEventListener("hibpCheck",function(d){s(d,t)})}else c>=3&&a=="danger"&&(c=3,l="(this password is very common)");e&&(c<=3?e.classList.add("invalid-feedback"):e.classList.remove("invalid-feedback"),e.setAttribute("data-strength",c),e.innerHTML="Password strength: ".concat(n[c-1]," ").concat(l))};window.triggerDynamicEvent=function(r){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"change";console.log("event"),r.hasAttribute("data-change-events")&&t=="change"&&p(r,r.getAttribute("data-change-events")),r.hasAttribute("data-click-events")&&t=="click"&&p(r,r.getAttribute("data-click-events"))};var P=()=>{document.addEventListener("change",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&p(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&p(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-click-events]")&&p(r.target,r.target.closest("[data-click-events]").getAttribute("data-click-events"))})},p=(r,t)=>{if(t||(t=r.parentNode.getAttribute("data-change-events")),!t)return!1;Array.from(JSON.parse(t)).forEach(a=>{j(r,a)})},j=(r,t)=>{if("matches"in t)return t.matches=="any"||r.value==t.matches?m(r,t,"if"):m(r,t,"else"),!1;if("in-list"in t){var a=document.querySelector("".concat(t["in-list"],' option[value="').concat(r.value,'"]'));return document.querySelector("".concat(t["in-list"],' option[value="').concat(r.value,'"]'))?m(a,t,"if"):m(a,t,"else"),!1}else"event"in t&&m(r,t,"event")},m=(r,t,a)=>{if(!(a in t))return!1;switch(t[a]){case"hide":if(document.querySelector(t.target)){var e=document.querySelector(t.target);e.classList.add("js-hide"),Array.from(e.querySelectorAll("[data-required]")).forEach(n=>{n.removeAttribute("required")})}break;case"show":if(document.querySelector(t.target)){var o=document.querySelector(t.target);o.classList.remove("js-hide"),Array.from(o.querySelectorAll("[data-required]")).forEach(n=>{n.closest(".js-hide")||n.setAttribute("required","true")})}break;case"populate-form":_(r,t);break;case"dispatchEvent":var i=new Event(t.value);document.querySelector("".concat(t.target)).dispatchEvent(i);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(n){n.setAttribute(t.attribute,t.value)});break;case"focus":document.querySelector("".concat(t.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(n){n.removeAttribute(t.attribute)});break;case"updateValue":document.querySelector("".concat(t.target)).value=t.value?t.value:"";var c=new Event("change");document.querySelector("".concat(t.target)).dispatchEvent(c);break;case"submitForm":document.querySelector("".concat(t.target)).submit();break;case"openLink":document.querySelector("".concat(t.target)).value&&(window.location.href=document.querySelector("".concat(t.target)).value);break}},_=function(t,a){var e=JSON.parse(t.getAttribute("data-values")),o=document.querySelector(a.target);if(!e)return!1;Object.keys(e).forEach(i=>{document.getElementById(i)&&document.getElementById(i).tagName=="SPAN"&&(document.getElementById(i).innerHTML=e[i]),o.querySelector('select[name="'.concat(i,'"] [value="').concat(e[i],'"]'))?(o.querySelector('select[name="'.concat(i,'"]')).value=e[i],t.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(i,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(e[i],'"]'))?(Array.from(o.querySelectorAll('input[name="'.concat(i,'"][type="radio"]'))).forEach(function(c){c.disabled=!0}),o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(e[i],'"]')).checked=!0,o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(e[i],'"]')).disabled=!1):o.querySelector('input[name="'.concat(i,'"]'))&&(o.querySelector('input[name="'.concat(i,'"]')).value=e[i],t.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(i,'"]')).setAttribute("readonly","true"))})},h=function(r,t,a,e){function o(i){return i instanceof a?i:new a(function(c){c(i)})}return new(a||(a=Promise))(function(i,c){function n(d){try{s(e.next(d))}catch(u){c(u)}}function l(d){try{s(e.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((e=e.apply(r,t||[])).next())})},R=r=>h(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w()),setTimeout(()=>h(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w())}),"2000"),r.addEventListener("click",t=>h(void 0,void 0,void 0,function*(){var a=t.target.closest(".youtube-link[data-youtube]");if(a||(a=t.target.closest(".vimeo-link[data-vimeo]")),a&&a.hasAttribute("data-youtube")){t.preventDefault(),document.body.classList.contains("youtubeLoaded")||(yield w());var e="youtube-"+a.getAttribute("data-youtube");document.getElementById("".concat(e,"-dialog"))||document.body.insertAdjacentHTML("beforeend",'<dialog id="'.concat(e,'-dialog"><div class="embed" id="').concat(e,'"></div></dialog>'));var o=document.getElementById("".concat(e,"-dialog")),i=document.getElementById(e),c=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:a.getAttribute("data-youtube")}});a.dispatchEvent(c),window.dataLayer.push(c.detail),O(i,a.getAttribute("data-youtube")),o.showModal(),o.addEventListener("close",()=>{window.player[i.getAttribute("id")]&&typeof window.player[i.getAttribute("id")].pauseVideo=="function"&&window.player[i.getAttribute("id")].pauseVideo();var f=new CustomEvent("close-video",{detail:{"Video Type":"YoutTube",ID:a.getAttribute("data-youtube")}});a.dispatchEvent(f),window.dataLayer.push(f.detail)})}else if(a&&a.hasAttribute("data-vimeo")){t.preventDefault();var n="vimeo-"+a.getAttribute("data-youtube");document.getElementById("".concat(n,"-dialog"))||document.body.insertAdjacentHTML("beforeend",'<dialog id="'.concat(n,'-dialog"><div class="embed" id="').concat(n,'"></div></dialog>'));var l=document.getElementById("".concat(n,"-dialog")),s=document.getElementById(n),d=a.getAttribute("data-vimeo"),u=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:d}});a.dispatchEvent(u),window.dataLayer.push(u.detail),s.querySelector("iframe")||(s.innerHTML='<iframe src="https://player.vimeo.com/video/'.concat(d,'?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>')),l.showModal(),l.addEventListener("close",()=>{s.innerHTML="";var f=new CustomEvent("close-video",{detail:{"Video Type":"Vimeo",ID:a.getAttribute("data-vimeo")}});a.dispatchEvent(f),window.dataLayer.push(f.detail)})}}))}),w=()=>h(void 0,void 0,void 0,function*(){return new Promise((r,t)=>{var a=new Image;a.onload=function(){var e=document.createElement("script");e.src="https://www.youtube.com/iframe_api";var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(e,o),document.body.classList.add("youtubeLoaded"),r(!0)},a.onerror=function(){t(!1)},a.src="https://youtube.com/favicon.ico"})}),O=(r,t)=>h(void 0,void 0,void 0,function*(){typeof window.player>"u"&&(window.player=[]);var a=r.getAttribute("id");if(typeof window.player[a]<"u"&&typeof window.player[a].pauseVideo=="function")return window.player[a].playVideo(),!1;window.player[a]=new YT.Player(a,{height:"100%",width:"100%",videoId:t,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:e,onStateChange:i}});function e(c){c.target.playVideo()}var o=!1;function i(c){if(c.data==YT.PlayerState.PLAYING&&!o){var n=document.getElementById(a);n.classList.add("player-ready"),o=!0}}}),F=function(r,t,a,e){function o(i){return i instanceof a?i:new a(function(c){c(i)})}return new(a||(a=Promise))(function(i,c){function n(d){try{s(e.next(d))}catch(u){c(u)}}function l(d){try{s(e.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((e=e.apply(r,t||[])).next())})};document.addEventListener("DOMContentLoaded",()=>F(void 0,void 0,void 0,function*(){I(),P(),b(document.body),H(),D(document.body),N(document.body),R(document.body)}))});
4
+ */(function(b){typeof define=="function"&&define.amd?define(b):b()})((function(){"use strict";var b=r=>{r.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie")},H=r=>{var t=function(a){var o=document.querySelector('label[for="'.concat(a.replace("#",""),'"]')),i=document.querySelector(a+" summary"),c=document.querySelector("dialog".concat(a)),n=document.querySelector("detail".concat(a));o instanceof HTMLElement?o.click():i instanceof HTMLElement?i.click():c instanceof HTMLElement?c.showModal():n instanceof HTMLElement&&n.addAttribute("open")};location.hash&&t(location.hash),window.addEventListener("hashchange",function(){t(location.hash)},!1),addEventListener("popstate",e=>{if(e&&e.state&&e.state.type&&e.state.type=="pagination"){var a=document.querySelector("#".concat(e.state.form)),o=document.querySelector("#".concat(e.state.form," [data-pagination]"));o?o.value=e.state.page:a.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(e.state.page,'" />'),a.dispatchEvent(new Event("submit"))}}),document.addEventListener("submit",e=>{if(e&&e.target instanceof HTMLElement&&e.target.matches("form")){var a=e.target;Array.from(a.querySelectorAll("[data-password-type]")).forEach(o=>{o.setAttribute("type","password")}),(a.querySelector(":invalid")||a.querySelector('.pwd-checker[data-strength="1"]')||a.querySelector('.pwd-checker[data-strength="2"]'))&&(a.classList.add("was-validated"),e.preventDefault()),a.querySelector("iam-multiselect[data-is-required][data-error]")&&(a.classList.add("was-validated"),e.preventDefault())}}),document.addEventListener("keydown",e=>{e.key==="Escape"&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(e.preventDefault(),e.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach(e=>{var a=e.closest("label");a.setAttribute("data-percent",e.getAttribute("value"))})},D=r=>(Array.from(r.querySelectorAll("dialog[open]")).forEach(t=>{var e=t.closest(".dialog__wrapper");e||(t.removeAttribute("open"),t.showModal(),t.focus(),L(t))}),r.addEventListener("click",t=>{if(t.target.tagName=="IAM-ACTIONBAR")return!1;if(t&&t.target instanceof HTMLElement&&t.target.closest("[data-modal]")){var e=t.target.closest("[data-modal]"),a=e.hasAttribute("data-modal")?e.getAttribute("data-modal"):e.getAttribute("data-filter"),o=document.querySelector("dialog#".concat(a));if(L(o),o.showModal(),o.focus(),!o.querySelector("iam-multi-step")){var i=o.offsetWidth;o.setAttribute("style","max-width: ".concat(i,"px;"))}Array.from(o.querySelectorAll("[data-duplicate]")).forEach(g=>{var U=g.getAttribute("data-duplicate"),x=document.getElementById(U);if(g.checked!=x.checked){g.checked=x.checked;var X=new Event("change");g.dispatchEvent(X)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:a})}if(t&&t.target instanceof HTMLElement&&t.target.closest("button.dialog__close")){var c=t.target.closest("dialog[open]");t.preventDefault(),c.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(g=>{g.classList.remove("active")});var n=new CustomEvent("dialog-closed",{bubbles:!0,cancelable:!0,detail:{modalId:c.id}});t.target.dispatchEvent(n),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:c.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest('button[formmethod="dialog"]')){var l=t.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(g=>{g.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:l.getAttribute("id")})}if(t&&t.target instanceof HTMLElement&&t.target.closest("dialog[open]")){var s=t.target.closest("dialog[open]"),d=window.getComputedStyle(s);if(d.display==="contents"&&(s=s.parentNode.closest("dialog[open]")),!s.classList.contains("dialog--transactional")&&!s.classList.contains("dialog--acknowledgement")){var u=s.getBoundingClientRect();(t.clientX<u.left||t.clientX>u.right||t.clientY<u.top||t.clientY>u.bottom)&&(t.target.closest("dialog *")||s.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")}))}}if(t&&t.target instanceof HTMLElement&&t.target.closest(".dialog__wrapper > button")){var f=t.target.closest(".dialog__wrapper > button"),S=f.parentNode;if(S.querySelector("dialog")){t.stopPropagation();var q="openPopover",y=S.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=y&&f.closest("dialog[open]")!=document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach(g=>{g.removeAttribute("aria-expanded")}),y.hasAttribute("open"))y.close(),q="closePopover",y.removeAttribute("style"),f.removeAttribute("aria-expanded");else{y.show(),f.setAttribute("aria-expanded",!0);var k=f.getBoundingClientRect(),T=k.top,M=k.left;if(f.closest("iam-table")){var C=f.closest("iam-table").parentNode.getBoundingClientRect();T-=C.top,M-=C.left}y.classList.contains("dialog--fix")&&y.setAttribute("style","position:fixed;top: ".concat(T,"px; left: ").concat(M,"px; margin: 3rem 0 0 0;"))}var A=y.getBoundingClientRect(),F=A.bottom-window.scrollY,W=window.innerHeight-window.scrollY;if(F>W){var G=y.hasAttribute("style")?y.getAttribute("style")+" ":"";y.setAttribute("style",G+"transform: translate(0, calc(-100% - 4rem))"),A=y.getBoundingClientRect();var J=A.top-window.scrollY;J<100&&y.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:q,id:f.textContent})}}t&&t.target instanceof HTMLElement&&!t.target.closest("dialog[open]")&&!t.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach(g=>{g.removeAttribute("aria-expanded")}))}),null),L=r=>{if(!r.querySelector(":scope .mh-lg")&&!r.querySelector("iam-multi-step")){r.innerHTML='<div class="mh-lg">'.concat(r.innerHTML,"</div>");var t=r.querySelector(".mh-lg"),e=r.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(e){var a=e.previousSibling;t.before(e),a&&e.before(a)}}r.querySelector(":scope > button:first-child")||r.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')};function I(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",r=>{var t=r.target.closest("[open] summary");if(t)window.dataLayer.push({event:"closeDetails",detailsTitle:t.textContent||""});else{var e=r.target.closest("summary"),a=r.target.closest("a"),o=r.target.closest("button");e&&window.dataLayer.push({event:"openDetails",detailsTitle:e.textContent||""}),a&&window.dataLayer.push({event:"linkClicked",linkText:a.hasAttribute("title")?a.getAttribute("title")||"":a.textContent||"",class:a.hasAttribute("class")&&a.getAttribute("class")||"",href:a.getAttribute("href")||""}),o&&window.dataLayer.push({event:"buttonClicked",buttonText:o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||""})}})}function B(r){var t=new TextEncoder("utf-8").encode(r);return crypto.subtle.digest("SHA-1",t).then(function(e){for(var a=[],o=new DataView(e),i=0;i<o.byteLength;i+=4){var c=o.getUint32(i),n=c.toString(16),l="00000000",s=(l+n).slice(-l.length);a.push(s)}return a.join("")})}var V=(r,t)=>{B(r).then(function(e){var a=new XMLHttpRequest;a.addEventListener("load",function(){var o=this.responseText.split(`
5
+ `),i=e.slice(5).toUpperCase(),c=!1;for(var n in o)if(o[n].substring(0,35)==i){c=!0;break}var l=new CustomEvent("hibpCheck",{detail:c});t.dispatchEvent(l)}),a.open("GET","https://api.pwnedpasswords.com/range/"+e.substr(0,5)),a.send()})},N=r=>{function t(){if(Array.from(document.querySelectorAll("label input")).forEach(a=>{!a.closest("label").querySelector(".optional-text")&&!a.hasAttribute("required")&&(a.parentNode.tagName.toLowerCase()=="span"?a.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):a.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))}),document.querySelector('input[type="date"]')){let a=function(o){var i=o.getFullYear(),c=String(o.getMonth()+1).padStart(2,"0"),n=String(o.getDate()).padStart(2,"0");return"".concat(i,"-").concat(c,"-").concat(n)};var e=new Date;Array.from(document.querySelectorAll('input[type="date"]')).forEach(o=>{var i=e;if(o.hasAttribute("data-start")&&(i.setDate(i.getDate()+parseInt(o.getAttribute("data-start"))),o.setAttribute("min",a(i))),o.hasAttribute("data-period")){var c=parseInt(o.getAttribute("data-period")),n=new Date;n.setDate(i.getDate()+c),o.setAttribute("max",a(n))}if(o.hasAttribute("data-allowed-days")){var l=JSON.parse("[".concat(o.getAttribute("data-allowed-days"),"]"));o.addEventListener("input",function(){var s=new Date(this.value).getUTCDay();l.includes(s)?o.setCustomValidity(""):o.setCustomValidity("That day of the week is not allowed")})}})}}document.readyState==="complete"&&t(),document.onreadystatechange=()=>{document.readyState==="complete"&&t()},r.addEventListener("input",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("input,textarea,select")){var a=e.target.closest("input,textarea,select");a.hasAttribute("type")&&a.getAttribute("type")=="color"&&(a.nextElementSibling.value=a.value),a.hasAttribute("data-strength-checker")&&v(a)}}),r.addEventListener("change",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("select")){var a=e.target.closest("select");if(a.hasAttribute("data-change-type")&&a.hasAttribute("data-input")){var o=document.getElementById(a.getAttribute("data-input")),i=a.value;E(o,i)}}if(e&&e.target instanceof HTMLElement&&e.target.closest('dialog [type="radio"]')){var c=e.target.closest("dialog");Array.from(c.querySelectorAll('[type="radio"][autofocus]')).forEach(n=>{n.removeAttribute("autofocus")}),Array.from(c.querySelectorAll('[type="radio"]:checked')).forEach(n=>{n.setAttribute("autofocus",!0)})}}),r.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-change-type][data-input]:not(select)")){var a=e.target.closest("[data-change-type]"),o=document.getElementById(a.getAttribute("data-input")),i=a.getAttribute("data-change-type");if(a.setAttribute("data-change-type",o.getAttribute("type")),E(o,i),a.hasAttribute("data-alt-class")){var c=a.getAttribute("data-alt-class");a.setAttribute("data-alt-class",a.getAttribute("class")),a.setAttribute("class",c)}}})},E=(r,t)=>{r.hasAttribute("type")&&r.getAttribute("type")=="password"&&r.setAttribute("data-password-type",!0),r.setAttribute("type",t)},v=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"no",a=document.getElementById(t.getAttribute("data-strength-checker")),o=t.value,i=t.hasAttribute("minlength")?t.getAttribute("minlength"):12,c=1,n=["Very weak","Weak","Average","Strong","Very strong"],l="";if(o.match(/(?=.*[0-9])/)&&(c+=1),o.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/)&&(c+=1),o.match(/(?=.*[a-z])/)&&(c+=1),o.match(/(?=.*[A-Z])/)&&(c+=1),o.length<i&&(c=1,l="(must be at least ".concat(i," characters.)")),c>=3&&e=="no"){let s=function(d,u){d.detail?v(u,"danger"):v(u,"success"),u.removeEventListener("hibpCheck",s)};V(o,t),t.addEventListener("hibpCheck",function(d){s(d,t)})}else c>=3&&e=="danger"&&(c=3,l="(this password is very common)");a&&(c<=3?a.classList.add("invalid-feedback"):a.classList.remove("invalid-feedback"),a.setAttribute("data-strength",c),a.innerHTML="Password strength: ".concat(n[c-1]," ").concat(l))};window.triggerDynamicEvent=function(r){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"change";console.log("event"),r.hasAttribute("data-change-events")&&t=="change"&&p(r,r.getAttribute("data-change-events")),r.hasAttribute("data-click-events")&&t=="click"&&p(r,r.getAttribute("data-click-events"))};var Y=()=>{document.addEventListener("change",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&p(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&p(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-click-events]")&&p(r.target,r.target.closest("[data-click-events]").getAttribute("data-click-events"))})},p=(r,t)=>{if(t||(t=r.parentNode.getAttribute("data-change-events")),!t)return!1;Array.from(JSON.parse(t)).forEach(e=>{j(r,e)})},j=(r,t)=>{if("matches"in t)return t.matches=="any"||r.value==t.matches?m(r,t,"if"):m(r,t,"else"),!1;if("in-list"in t){var e=document.querySelector("".concat(t["in-list"],' option[value="').concat(r.value,'"]'));return document.querySelector("".concat(t["in-list"],' option[value="').concat(r.value,'"]'))?m(e,t,"if"):m(e,t,"else"),!1}else"event"in t&&m(r,t,"event")},m=(r,t,e)=>{if(!(e in t))return!1;switch(t[e]){case"hide":if(document.querySelector(t.target)){var a=document.querySelector(t.target);a.classList.add("js-hide"),Array.from(a.querySelectorAll("[data-required]")).forEach(n=>{n.removeAttribute("required")})}break;case"show":if(document.querySelector(t.target)){var o=document.querySelector(t.target);o.classList.remove("js-hide"),Array.from(o.querySelectorAll("[data-required]")).forEach(n=>{n.closest(".js-hide")||n.setAttribute("required","true")})}break;case"populate-form":P(r,t);break;case"dispatchEvent":var i=new Event(t.value);document.querySelector("".concat(t.target)).dispatchEvent(i);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(n){n.setAttribute(t.attribute,t.value)});break;case"focus":document.querySelector("".concat(t.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(n){n.removeAttribute(t.attribute)});break;case"updateValue":document.querySelector("".concat(t.target)).value=t.value?t.value:"";var c=new Event("change");document.querySelector("".concat(t.target)).dispatchEvent(c);break;case"submitForm":document.querySelector("".concat(t.target)).submit();break;case"openLink":document.querySelector("".concat(t.target)).value&&(window.location.href=document.querySelector("".concat(t.target)).value);break}},P=function(t,e){var a=JSON.parse(t.getAttribute("data-values")),o=document.querySelector(e.target);if(!a)return!1;Object.keys(a).forEach(i=>{document.getElementById(i)&&document.getElementById(i).tagName=="SPAN"&&(document.getElementById(i).innerHTML=a[i]),o.querySelector('select[name="'.concat(i,'"] [value="').concat(a[i],'"]'))?(o.querySelector('select[name="'.concat(i,'"]')).value=a[i],t.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(i,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(a[i],'"]'))?(Array.from(o.querySelectorAll('input[name="'.concat(i,'"][type="radio"]'))).forEach(function(c){c.disabled=!0}),o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(a[i],'"]')).checked=!0,o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(a[i],'"]')).disabled=!1):o.querySelector('input[name="'.concat(i,'"]'))&&(o.querySelector('input[name="'.concat(i,'"]')).value=a[i],t.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(i,'"]')).setAttribute("readonly","true"))})},h=function(r,t,e,a){function o(i){return i instanceof e?i:new e(function(c){c(i)})}return new(e||(e=Promise))(function(i,c){function n(d){try{s(a.next(d))}catch(u){c(u)}}function l(d){try{s(a.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((a=a.apply(r,t||[])).next())})},_=r=>h(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w()),setTimeout(()=>h(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w())}),"2000"),r.addEventListener("click",t=>h(void 0,void 0,void 0,function*(){var e=t.target.closest(".youtube-link[data-youtube]");if(e||(e=t.target.closest(".vimeo-link[data-vimeo]")),e&&e.hasAttribute("data-youtube")){t.preventDefault(),document.body.classList.contains("youtubeLoaded")||(yield w());var a="youtube-"+e.getAttribute("data-youtube");document.getElementById("".concat(a,"-dialog"))||document.body.insertAdjacentHTML("beforeend",'<dialog id="'.concat(a,'-dialog"><div class="embed" id="').concat(a,'"></div></dialog>'));var o=document.getElementById("".concat(a,"-dialog")),i=document.getElementById(a),c=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:e.getAttribute("data-youtube")}});e.dispatchEvent(c),window.dataLayer.push(c.detail),R(i,e.getAttribute("data-youtube")),o.showModal(),o.addEventListener("close",()=>{window.player[i.getAttribute("id")]&&typeof window.player[i.getAttribute("id")].pauseVideo=="function"&&window.player[i.getAttribute("id")].pauseVideo();var f=new CustomEvent("close-video",{detail:{"Video Type":"YoutTube",ID:e.getAttribute("data-youtube")}});e.dispatchEvent(f),window.dataLayer.push(f.detail)})}else if(e&&e.hasAttribute("data-vimeo")){t.preventDefault();var n="vimeo-"+e.getAttribute("data-youtube");document.getElementById("".concat(n,"-dialog"))||document.body.insertAdjacentHTML("beforeend",'<dialog id="'.concat(n,'-dialog"><div class="embed" id="').concat(n,'"></div></dialog>'));var l=document.getElementById("".concat(n,"-dialog")),s=document.getElementById(n),d=e.getAttribute("data-vimeo"),u=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:d}});e.dispatchEvent(u),window.dataLayer.push(u.detail),s.querySelector("iframe")||(s.innerHTML='<iframe src="https://player.vimeo.com/video/'.concat(d,'?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>')),l.showModal(),l.addEventListener("close",()=>{s.innerHTML="";var f=new CustomEvent("close-video",{detail:{"Video Type":"Vimeo",ID:e.getAttribute("data-vimeo")}});e.dispatchEvent(f),window.dataLayer.push(f.detail)})}}))}),w=()=>h(void 0,void 0,void 0,function*(){return new Promise((r,t)=>{var e=new Image;e.onload=function(){var a=document.createElement("script");a.src="https://www.youtube.com/iframe_api";var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(a,o),document.body.classList.add("youtubeLoaded"),r(!0)},e.onerror=function(){t(!1)},e.src="https://youtube.com/favicon.ico"})}),R=(r,t)=>h(void 0,void 0,void 0,function*(){typeof window.player>"u"&&(window.player=[]);var e=r.getAttribute("id");if(typeof window.player[e]<"u"&&typeof window.player[e].pauseVideo=="function")return window.player[e].playVideo(),!1;window.player[e]=new YT.Player(e,{height:"100%",width:"100%",videoId:t,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:a,onStateChange:i}});function a(c){c.target.playVideo()}var o=!1;function i(c){if(c.data==YT.PlayerState.PLAYING&&!o){var n=document.getElementById(e);n.classList.add("player-ready"),o=!0}}}),O=function(r,t,e,a){function o(i){return i instanceof e?i:new e(function(c){c(i)})}return new(e||(e=Promise))(function(i,c){function n(d){try{s(a.next(d))}catch(u){c(u)}}function l(d){try{s(a.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((a=a.apply(r,t||[])).next())})};document.addEventListener("DOMContentLoaded",()=>O(void 0,void 0,void 0,function*(){I(),Y(),b(document.body),H(),D(document.body),N(document.body),_(document.body)}))}));
6
6
  //# sourceMappingURL=scripts.bundle.js.map