@iamproperty/components 7.3.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 (327) 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 -0
  11. package/assets/css/components/calendar.component.css.map +1 -0
  12. package/assets/css/components/calendar.config.css +1 -0
  13. package/assets/css/components/calendar.config.css.map +1 -0
  14. package/assets/css/components/card.component.css +1 -1
  15. package/assets/css/components/card.component.css.map +1 -1
  16. package/assets/css/components/carousel.component.css +1 -1
  17. package/assets/css/components/carousel.component.css.map +1 -1
  18. package/assets/css/components/charts.css +1 -1
  19. package/assets/css/components/charts.css.map +1 -1
  20. package/assets/css/components/collapsible-side.css +1 -1
  21. package/assets/css/components/collapsible-side.css.map +1 -1
  22. package/assets/css/components/content.component.css +1 -0
  23. package/assets/css/components/content.component.css.map +1 -0
  24. package/assets/css/components/darkmode.component.css +1 -0
  25. package/assets/css/components/darkmode.component.css.map +1 -0
  26. package/assets/css/components/doughnutchart.component.css +1 -1
  27. package/assets/css/components/doughnutchart.component.css.map +1 -1
  28. package/assets/css/components/fileupload.css.map +1 -1
  29. package/assets/css/components/inline-edit.css +1 -1
  30. package/assets/css/components/inline-edit.css.map +1 -1
  31. package/assets/css/components/marketing.component.css +1 -0
  32. package/assets/css/components/marketing.component.css.map +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -1
  34. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  35. package/assets/css/components/menu.global.css.map +1 -0
  36. package/assets/css/components/milestone.css +1 -0
  37. package/assets/css/components/milestone.css.map +1 -0
  38. package/assets/css/components/multi-step.component.css +1 -1
  39. package/assets/css/components/multi-step.component.css.map +1 -1
  40. package/assets/css/components/multiselect.css +1 -1
  41. package/assets/css/components/multiselect.css.map +1 -1
  42. package/assets/css/components/multiselect.preload.css +1 -1
  43. package/assets/css/components/multiselect.preload.css.map +1 -1
  44. package/assets/css/components/nav.component.css +1 -1
  45. package/assets/css/components/nav.component.css.map +1 -1
  46. package/assets/css/components/nav.global.css +1 -1
  47. package/assets/css/components/nav.global.css.map +1 -1
  48. package/assets/css/components/notification.css +1 -1
  49. package/assets/css/components/notification.css.map +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css +1 -1
  52. package/assets/css/components/property-searchbar.css.map +1 -1
  53. package/assets/css/components/rank.component.css +1 -1
  54. package/assets/css/components/rank.component.css.map +1 -1
  55. package/assets/css/components/rankings.component.css +1 -1
  56. package/assets/css/components/rankings.component.css.map +1 -1
  57. package/assets/css/components/rankings.global.css +1 -1
  58. package/assets/css/components/rankings.global.css.map +1 -1
  59. package/assets/css/components/slider.css.map +1 -1
  60. package/assets/css/components/split-button.component.css +1 -0
  61. package/assets/css/components/split-button.component.css.map +1 -0
  62. package/assets/css/components/word-count.component.css +1 -0
  63. package/assets/css/components/word-count.component.css.map +1 -0
  64. package/assets/css/core.min.css +1 -1
  65. package/assets/css/core.min.css.map +1 -1
  66. package/assets/css/mobile-core.min.css +1 -1
  67. package/assets/css/mobile-core.min.css.map +1 -1
  68. package/assets/css/mobile.min.css +1 -1
  69. package/assets/css/mobile.min.css.map +1 -1
  70. package/assets/css/style.min.css +1 -1
  71. package/assets/css/style.min.css.map +1 -1
  72. package/assets/js/components/accordion/accordion.component.js +40 -19
  73. package/assets/js/components/accordion/accordion.component.min.js +15 -15
  74. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  75. package/assets/js/components/actionbar/actionbar.component.js +59 -31
  76. package/assets/js/components/actionbar/actionbar.component.min.js +18 -17
  77. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  78. package/assets/js/components/address-lookup/address-lookup.component.js +6 -8
  79. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  80. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  81. package/assets/js/components/advanced-select/advanced-select.component.js +63 -0
  82. package/assets/js/components/advanced-select/advanced-select.component.min.js +23 -0
  83. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -0
  84. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  85. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  86. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  87. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  88. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  89. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  90. package/assets/js/components/calendar/calendar.component.js +1100 -0
  91. package/assets/js/components/calendar/calendar.component.min.js +170 -0
  92. package/assets/js/components/calendar/calendar.component.min.js.map +1 -0
  93. package/assets/js/components/card/card.component.js +14 -8
  94. package/assets/js/components/card/card.component.min.js +16 -10
  95. package/assets/js/components/card/card.component.min.js.map +1 -1
  96. package/assets/js/components/carousel/carousel.component.js +17 -19
  97. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  98. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  99. package/assets/js/components/collapsible-side/collapsible-side.component.js +47 -12
  100. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +6 -5
  101. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  102. package/assets/js/components/content/content.component.js +66 -0
  103. package/assets/js/components/content/content.component.min.js +15 -0
  104. package/assets/js/components/content/content.component.min.js.map +1 -0
  105. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  106. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  107. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  108. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  109. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  110. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  111. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  112. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  113. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  114. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  115. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  116. package/assets/js/components/header/header.component.min.js +1 -1
  117. package/assets/js/components/header/header.component.min.js.map +1 -1
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  119. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  120. package/assets/js/components/marketing/marketing.component.js +1 -1
  121. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  122. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  123. package/assets/js/components/menu/menu.component.js +12 -4
  124. package/assets/js/components/menu/menu.component.min.js +4 -5
  125. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  126. package/assets/js/components/milestone/milestone.component.js +36 -0
  127. package/assets/js/components/milestone/milestone.component.min.js +15 -0
  128. package/assets/js/components/milestone/milestone.component.min.js.map +1 -0
  129. package/assets/js/components/milestone-group/milestone-group.component.js +33 -0
  130. package/assets/js/components/milestone-group/milestone-group.component.min.js +13 -0
  131. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -0
  132. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  133. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  134. package/assets/js/components/multiselect/multiselect.component.js +54 -2
  135. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  136. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  137. package/assets/js/components/nav/nav.component.js +18 -0
  138. package/assets/js/components/nav/nav.component.min.js +6 -6
  139. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  140. package/assets/js/components/notification/notification.component.js +15 -11
  141. package/assets/js/components/notification/notification.component.min.js +4 -4
  142. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  143. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  144. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  145. package/assets/js/components/rank/rank.component.js +346 -210
  146. package/assets/js/components/rank/rank.component.min.js +346 -211
  147. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  148. package/assets/js/components/rankings/rankings.component.js +17 -8
  149. package/assets/js/components/rankings/rankings.component.min.js +14 -8
  150. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  151. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  152. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  153. package/assets/js/components/search/search.component.js +5 -3
  154. package/assets/js/components/search/search.component.min.js +6 -6
  155. package/assets/js/components/search/search.component.min.js.map +1 -1
  156. package/assets/js/components/slider/slider.component.min.js +1 -1
  157. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  158. package/assets/js/components/split-button/split-button.component.js +58 -0
  159. package/assets/js/components/split-button/split-button.component.min.js +31 -0
  160. package/assets/js/components/split-button/split-button.component.min.js.map +1 -0
  161. package/assets/js/components/table/table.component.js +12 -0
  162. package/assets/js/components/table/table.component.min.js +3 -3
  163. package/assets/js/components/table/table.component.min.js.map +1 -1
  164. package/assets/js/components/table-ajax/table-ajax.component.js +12 -0
  165. package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
  166. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  167. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  168. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  169. package/assets/js/components/table-no-submit/table-no-submit.component.js +12 -0
  170. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
  171. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  172. package/assets/js/components/table-submit/table-submit.component.js +12 -0
  173. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  174. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  175. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  176. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  177. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  178. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  179. package/assets/js/components/word-count/word-count.component.js +81 -0
  180. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  181. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  182. package/assets/js/components.js +59 -0
  183. package/assets/js/modules/advanced-select.js +106 -0
  184. package/assets/js/modules/dialogs.js +53 -51
  185. package/assets/js/modules/dynamicEvents.js +7 -0
  186. package/assets/js/modules/inputs.js +0 -18
  187. package/assets/js/modules/milestone-group.js +30 -0
  188. package/assets/js/modules/milestone.js +89 -0
  189. package/assets/js/modules/table.js +11 -1
  190. package/assets/js/modules/videos.js +1 -1
  191. package/assets/js/scripts.bundle.js +3 -3
  192. package/assets/js/scripts.bundle.js.map +1 -1
  193. package/assets/js/scripts.bundle.min.js +2 -2
  194. package/assets/js/scripts.bundle.min.js.map +1 -1
  195. package/assets/js/scripts.js +5 -0
  196. package/assets/sass/_components.scss +15 -4
  197. package/assets/sass/_example.scss +1 -1
  198. package/assets/sass/_functions/utility-mixins.scss +40 -0
  199. package/assets/sass/_functions/variables.scss +11 -5
  200. package/assets/sass/components/actionbar.component.scss +23 -1
  201. package/assets/sass/components/actionbar.global.scss +5 -5
  202. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  203. package/assets/sass/components/calendar.component.scss +1272 -0
  204. package/assets/sass/components/calendar.config.scss +423 -0
  205. package/assets/sass/components/card.component.scss +4 -34
  206. package/assets/sass/components/carousel.component.scss +5 -0
  207. package/assets/sass/components/collapsible-side.scss +91 -95
  208. package/assets/sass/components/content.component.scss +18 -0
  209. package/assets/sass/components/darkmode.component.scss +22 -0
  210. package/assets/sass/components/inline-edit.scss +2 -0
  211. package/assets/sass/components/{marketing.scss → marketing.component.scss} +2 -6
  212. package/assets/sass/components/menu.component.scss +3 -8
  213. package/assets/sass/components/milestone.scss +216 -0
  214. package/assets/sass/components/multi-step.component.scss +1 -1
  215. package/assets/sass/components/multiselect.preload.scss +1 -1
  216. package/assets/sass/components/multiselect.scss +2 -0
  217. package/assets/sass/components/nav.component.scss +17 -6
  218. package/assets/sass/components/nav.global.scss +29 -3
  219. package/assets/sass/components/notification.scss +32 -13
  220. package/assets/sass/components/rank.component.scss +197 -24
  221. package/assets/sass/components/rankings.component.scss +38 -28
  222. package/assets/sass/components/rankings.global.scss +64 -2
  223. package/assets/sass/components/split-button.component.scss +79 -0
  224. package/assets/sass/components/table-basic.global.scss +32 -32
  225. package/assets/sass/components/word-count.component.scss +26 -0
  226. package/assets/sass/elements/admin-panel.scss +1 -1
  227. package/assets/sass/elements/badge-tag.scss +5 -1
  228. package/assets/sass/elements/buttons--compact.scss +4 -0
  229. package/assets/sass/elements/details.scss +33 -7
  230. package/assets/sass/elements/forms.scss +135 -28
  231. package/assets/sass/elements/links.scss +132 -4
  232. package/assets/sass/elements/lists.scss +62 -1
  233. package/assets/sass/elements/popover.scss +64 -10
  234. package/assets/sass/elements/toggle-button.scss +8 -8
  235. package/assets/sass/elements/type.scss +7 -10
  236. package/assets/sass/foundations/colours.scss +0 -0
  237. package/assets/sass/foundations/reboot.scss +8 -1
  238. package/assets/sass/foundations/root.scss +41 -51
  239. package/assets/sass/templates/form.scss +0 -2
  240. package/assets/ts/components/accordion/accordion.component.ts +47 -26
  241. package/assets/ts/components/actionbar/actionbar.component.ts +58 -22
  242. package/assets/ts/components/address-lookup/address-lookup.component.ts +6 -8
  243. package/assets/ts/components/advanced-select/advanced-select.component.ts +74 -0
  244. package/assets/ts/components/calendar/calendar.component.ts +1330 -0
  245. package/assets/ts/components/card/card.component.ts +15 -14
  246. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  247. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +53 -12
  248. package/assets/ts/components/content/content.component.ts +78 -0
  249. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  250. package/assets/ts/components/marketing/marketing.component.ts +1 -1
  251. package/assets/ts/components/menu/menu.component.ts +18 -10
  252. package/assets/ts/components/milestone/milestone.component.ts +43 -0
  253. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -0
  254. package/assets/ts/components/multiselect/multiselect.component.ts +60 -3
  255. package/assets/ts/components/nav/nav.component.ts +18 -0
  256. package/assets/ts/components/notification/notification.component.ts +30 -11
  257. package/assets/ts/components/rank/rank.component.ts +345 -209
  258. package/assets/ts/components/rankings/rankings.component.ts +27 -8
  259. package/assets/ts/components/search/search.component.ts +6 -4
  260. package/assets/ts/components/split-button/split-button.component.ts +67 -0
  261. package/assets/ts/components/table/table.component.ts +14 -0
  262. package/assets/ts/components/table-ajax/table-ajax.component.ts +14 -0
  263. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +14 -0
  264. package/assets/ts/components/table-submit/table-submit.component.ts +14 -0
  265. package/assets/ts/components/video-card/video-card.component.ts +2 -3
  266. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  267. package/assets/ts/components.ts +64 -0
  268. package/assets/ts/modules/advanced-select.ts +120 -0
  269. package/assets/ts/modules/data-layer.md +0 -5
  270. package/assets/ts/modules/dialogs.ts +64 -61
  271. package/assets/ts/modules/dynamicEvents.ts +10 -0
  272. package/assets/ts/modules/inputs.ts +0 -25
  273. package/assets/ts/modules/milestone-group.ts +39 -0
  274. package/assets/ts/modules/milestone.ts +119 -0
  275. package/assets/ts/modules/table.ts +15 -1
  276. package/assets/ts/modules/videos.ts +19 -37
  277. package/assets/ts/scripts.ts +6 -3
  278. package/dist/components.es.js +849 -1079
  279. package/dist/components.umd.js +1052 -220
  280. package/package.json +6 -6
  281. package/src/components/Accordion/Accordion.vue +14 -23
  282. package/src/components/Accordion/AccordionItem.vue +27 -43
  283. package/src/components/Actionbar/Actionbar.vue +17 -19
  284. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  285. package/src/components/AdvancedSelect/AdvancedSelect.vue +22 -0
  286. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  287. package/src/components/Banner/Banner.vue +18 -21
  288. package/src/components/BarChart/BarChart.vue +17 -18
  289. package/src/components/Calendar/Calendar.vue +20 -0
  290. package/src/components/Card/Card.vue +17 -17
  291. package/src/components/Carousel/Carousel.vue +17 -20
  292. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +7 -13
  293. package/src/components/Content/Content.vue +22 -0
  294. package/src/components/DarkMode/DarkMode.vue +19 -0
  295. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  296. package/src/components/FileUpload/FileUpload.vue +22 -28
  297. package/src/components/FilterCard/FilterCard.vue +17 -18
  298. package/src/components/Filterlist/Filterlist.vue +17 -0
  299. package/src/components/Header/Header.vue +28 -29
  300. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  301. package/src/components/Menu/Menu.vue +17 -17
  302. package/src/components/Milestones/Milestone.vue +22 -0
  303. package/src/components/Milestones/MilestoneGroup.vue +24 -0
  304. package/src/components/Multiselect/Multiselect.vue +17 -18
  305. package/src/components/Nav/Nav.vue +17 -19
  306. package/src/components/Notification/Notification.vue +17 -15
  307. package/src/components/Pagination/Pagination.vue +16 -16
  308. package/src/components/Rank/Rank.vue +17 -18
  309. package/src/components/Rankings/Rankings.vue +17 -27
  310. package/src/components/RecordCard/RecordCard.vue +17 -18
  311. package/src/components/Search/Search.vue +17 -17
  312. package/src/components/Slider/Slider.vue +17 -17
  313. package/src/components/SplitButton/README.md +19 -0
  314. package/src/components/SplitButton/SplitButton.vue +23 -0
  315. package/src/components/Tabs/Tabs.vue +17 -17
  316. package/src/components/VideoCard/VideoCard.vue +17 -18
  317. package/src/components/WordCount/WordCount.vue +22 -0
  318. package/src/index.js +2 -0
  319. package/assets/css/components/address-lookup.css +0 -1
  320. package/assets/css/components/address-lookup.css.map +0 -1
  321. package/assets/css/components/marketing.css +0 -1
  322. package/assets/css/components/marketing.css.map +0 -1
  323. package/assets/css/components/menu.css.map +0 -1
  324. package/assets/css/components/nav.old.css +0 -1
  325. package/assets/css/components/nav.old.css.map +0 -1
  326. package/assets/sass/components/nav.old.scss +0 -891
  327. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -105,63 +105,65 @@ const extendDialogs = (body) => {
105
105
  }
106
106
  // Popover
107
107
  if (event && event.target instanceof HTMLElement && event.target.closest('.dialog__wrapper > button')) {
108
- event.stopPropagation();
109
108
  const btn = event.target.closest('.dialog__wrapper > button');
110
109
  const parent = btn.parentNode;
111
- let dataEvent = 'openPopover';
112
- const popover = parent.querySelector(':scope > dialog');
113
- // close open dialogs
114
- if (document.querySelector('*:not([data-keep-open]) > dialog[open]') &&
115
- document.querySelector('*:not([data-keep-open]) > dialog[open]') != popover) {
116
- // Check that the ope dialog isn't a parent of the dialog being opened
117
- if (btn.closest('dialog[open]') != document.querySelector('*:not([data-keep-open]) > dialog[open]')) {
118
- document.querySelector('*:not([data-keep-open]) > dialog[open]').close();
110
+ if (parent.querySelector('dialog')) {
111
+ event.stopPropagation();
112
+ let dataEvent = 'openPopover';
113
+ const popover = parent.querySelector(':scope > dialog');
114
+ // close open dialogs
115
+ if (document.querySelector('*:not([data-keep-open]) > dialog[open]') &&
116
+ document.querySelector('*:not([data-keep-open]) > dialog[open]') != popover) {
117
+ // Check that the ope dialog isn't a parent of the dialog being opened
118
+ if (btn.closest('dialog[open]') != document.querySelector('*:not([data-keep-open]) > dialog[open]')) {
119
+ document.querySelector('*:not([data-keep-open]) > dialog[open]').close();
120
+ }
119
121
  }
120
- }
121
- // Remove active class from exiting active buttons
122
- Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
123
- btnElement.removeAttribute('aria-expanded');
124
- });
125
- if (popover.hasAttribute('open')) {
126
- popover.close();
127
- dataEvent = 'closePopover';
128
- popover.removeAttribute('style');
129
- btn.removeAttribute('aria-expanded');
130
- }
131
- else {
132
- popover.show();
133
- btn.setAttribute('aria-expanded', true);
134
- const position = btn.getBoundingClientRect();
135
- let topOffset = position.top;
136
- let leftOffset = position.left;
137
- if (btn.closest('iam-table')) {
138
- const container = btn.closest('iam-table').parentNode.getBoundingClientRect();
139
- topOffset -= container.top;
140
- leftOffset -= container.left;
122
+ // Remove active class from exiting active buttons
123
+ Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
124
+ btnElement.removeAttribute('aria-expanded');
125
+ });
126
+ if (popover.hasAttribute('open')) {
127
+ popover.close();
128
+ dataEvent = 'closePopover';
129
+ popover.removeAttribute('style');
130
+ btn.removeAttribute('aria-expanded');
141
131
  }
142
- if (popover.classList.contains('dialog--fix')) {
143
- popover.setAttribute('style', `position:fixed;top: ${topOffset}px; left: ${leftOffset}px; margin: 3rem 0 0 0;`);
132
+ else {
133
+ popover.show();
134
+ btn.setAttribute('aria-expanded', true);
135
+ const position = btn.getBoundingClientRect();
136
+ let topOffset = position.top;
137
+ let leftOffset = position.left;
138
+ if (btn.closest('iam-table')) {
139
+ const container = btn.closest('iam-table').parentNode.getBoundingClientRect();
140
+ topOffset -= container.top;
141
+ leftOffset -= container.left;
142
+ }
143
+ if (popover.classList.contains('dialog--fix')) {
144
+ popover.setAttribute('style', `position:fixed;top: ${topOffset}px; left: ${leftOffset}px; margin: 3rem 0 0 0;`);
145
+ }
144
146
  }
147
+ // When the dialog is fixed it could dip under the viewport
148
+ // Lets check the dimensions and transform it to appear above
149
+ let boundingRec = popover.getBoundingClientRect();
150
+ const popoverBottom = boundingRec.bottom - window.scrollY;
151
+ const windowPos = window.innerHeight - window.scrollY;
152
+ if (popoverBottom > windowPos) {
153
+ const currentStyle = popover.hasAttribute('style') ? popover.getAttribute('style') + ' ' : '';
154
+ popover.setAttribute('style', currentStyle + `transform: translate(0, calc(-100% - 4rem))`);
155
+ // Check that the dialog doesn't go over the top of the page
156
+ boundingRec = popover.getBoundingClientRect();
157
+ const popoverTop = boundingRec.top - window.scrollY;
158
+ if (popoverTop < 100)
159
+ popover.removeAttribute('style');
160
+ }
161
+ window.dataLayer = window.dataLayer || [];
162
+ window.dataLayer.push({
163
+ event: dataEvent,
164
+ id: btn.textContent,
165
+ });
145
166
  }
146
- // When the dialog is fixed it could dip under the viewport
147
- // Lets check the dimensions and transform it to appear above
148
- let boundingRec = popover.getBoundingClientRect();
149
- const popoverBottom = boundingRec.bottom - window.scrollY;
150
- const windowPos = window.innerHeight - window.scrollY;
151
- if (popoverBottom > windowPos) {
152
- const currentStyle = popover.hasAttribute('style') ? popover.getAttribute('style') + ' ' : '';
153
- popover.setAttribute('style', currentStyle + `transform: translate(0, calc(-100% - 4rem))`);
154
- // Check that the dialog doesn't go over the top of the page
155
- boundingRec = popover.getBoundingClientRect();
156
- const popoverTop = boundingRec.top - window.scrollY;
157
- if (popoverTop < 100)
158
- popover.removeAttribute('style');
159
- }
160
- window.dataLayer = window.dataLayer || [];
161
- window.dataLayer.push({
162
- event: dataEvent,
163
- id: btn.textContent,
164
- });
165
167
  }
166
168
  // Close popovers when clicked away
167
169
  if (event &&
@@ -1,4 +1,11 @@
1
1
  // Create the event listeners
2
+ window.triggerDynamicEvent = (element, event = 'change') => {
3
+ console.log('event');
4
+ if (element.hasAttribute('data-change-events') && event == 'change')
5
+ splitEvents(element, element.getAttribute('data-change-events'));
6
+ if (element.hasAttribute('data-click-events') && event == 'click')
7
+ splitEvents(element, element.getAttribute('data-click-events'));
8
+ };
2
9
  const createDynamicEvents = () => {
3
10
  // Change event
4
11
  document.addEventListener('change', (event) => {
@@ -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);
@@ -0,0 +1,30 @@
1
+ export const showFuture = function (milestoneGroupElement) {
2
+ const futureToggle = milestoneGroupElement.dataset.showAllToggle;
3
+ if (!futureToggle) {
4
+ return;
5
+ }
6
+ const toggleBtn = document.createElement('button');
7
+ toggleBtn.innerHTML = 'Show next steps';
8
+ toggleBtn.classList.add('btn', 'btn-tertiary', 'show-all-toggle');
9
+ milestoneGroupElement.appendChild(toggleBtn);
10
+ toggleBtn.addEventListener('click', () => {
11
+ if (milestoneGroupElement.classList.contains('show-all')) {
12
+ toggleBtn.innerHTML = 'Show next steps';
13
+ milestoneGroupElement.classList.remove('show-all');
14
+ toggleInteractionEvent('hide-future-items', milestoneGroupElement);
15
+ }
16
+ else {
17
+ toggleBtn.innerHTML = 'Hide next steps';
18
+ milestoneGroupElement.classList.add('show-all');
19
+ toggleInteractionEvent('show-future-items', milestoneGroupElement);
20
+ }
21
+ });
22
+ };
23
+ const toggleInteractionEvent = function (eventName, element) {
24
+ const customEvent = new CustomEvent(eventName, {});
25
+ element.dispatchEvent(customEvent);
26
+ };
27
+ const milestoneGroup = function (milestoneGroupElement) {
28
+ showFuture(milestoneGroupElement);
29
+ };
30
+ export default milestoneGroup;
@@ -0,0 +1,89 @@
1
+ export const setStatus = function (milestoneElement) {
2
+ const status = milestoneElement.dataset.status;
3
+ if (!status) {
4
+ return;
5
+ }
6
+ const milestoneWrap = milestoneElement.shadowRoot.querySelector('.milestone-wrap');
7
+ const statusTag = document.createElement('span');
8
+ statusTag.setAttribute('part', 'status');
9
+ statusTag.classList.add('milestone-status');
10
+ statusTag.innerHTML = `${status} Step`;
11
+ if (status === 'Current') {
12
+ milestoneElement.classList.add('current');
13
+ }
14
+ milestoneWrap.insertAdjacentElement('afterbegin', statusTag);
15
+ };
16
+ export const getMilestoneTasks = function (milestoneElement) {
17
+ const taskWrap = milestoneElement.shadowRoot.querySelector('.task-wrap');
18
+ const tasks = milestoneElement.dataset.items ? JSON.parse(milestoneElement.dataset.items) : [];
19
+ if (!tasks.length) {
20
+ return;
21
+ }
22
+ tasks.forEach((task) => {
23
+ const taskItem = document.createElement('details');
24
+ const taskName = document.createElement('summary');
25
+ const detailsWrap = document.createElement('div');
26
+ const taskDescription = document.createElement('p');
27
+ detailsWrap.classList.add('task-details');
28
+ taskName.innerHTML = task.name;
29
+ if (task.date_completed) {
30
+ taskName.classList.add('complete');
31
+ }
32
+ taskItem.appendChild(taskName);
33
+ if (task.description) {
34
+ taskDescription.innerHTML = task.description;
35
+ detailsWrap.appendChild(taskDescription);
36
+ }
37
+ if (task.actions.length) {
38
+ detailsWrap.appendChild(getSubtasks(task.actions, taskName));
39
+ }
40
+ taskItem.appendChild(detailsWrap);
41
+ taskWrap.insertAdjacentElement('beforeend', taskItem);
42
+ // Fire tracking events
43
+ taskItem.addEventListener('click', () => {
44
+ if (taskItem === null || taskItem === void 0 ? void 0 : taskItem.hasAttribute('open')) {
45
+ itemInteractionEvent('milestone-item-closed', task.name, milestoneElement);
46
+ }
47
+ else {
48
+ itemInteractionEvent('milestone-item-opened', task.name, milestoneElement);
49
+ }
50
+ });
51
+ });
52
+ milestoneElement.appendChild(taskWrap);
53
+ };
54
+ const itemInteractionEvent = function (eventName, taskName, element) {
55
+ const customEvent = new CustomEvent(eventName, {
56
+ detail: {
57
+ title: taskName,
58
+ },
59
+ });
60
+ element.dispatchEvent(customEvent);
61
+ };
62
+ const getSubtasks = function (actions, taskName) {
63
+ const actionsWrap = document.createElement('ul');
64
+ const totalCount = actions.length;
65
+ const completed = actions.filter((action) => action.date_completed);
66
+ const completedCount = completed.length || 0;
67
+ if (totalCount < 1) {
68
+ return;
69
+ }
70
+ taskName.innerHTML += ` (${completedCount}/${totalCount})`;
71
+ actions.forEach((action) => {
72
+ const actionItem = document.createElement('li');
73
+ const actionCompletedDate = document.createElement('span');
74
+ if (action.date_completed) {
75
+ actionItem.classList.add('complete');
76
+ actionCompletedDate.classList.add('action-date');
77
+ actionCompletedDate.innerHTML = action.date_completed;
78
+ }
79
+ actionItem.innerHTML = action.action;
80
+ actionItem.appendChild(actionCompletedDate);
81
+ actionsWrap.appendChild(actionItem);
82
+ });
83
+ return actionsWrap;
84
+ };
85
+ const milestone = function (milestoneElement) {
86
+ setStatus(milestoneElement);
87
+ getMilestoneTasks(milestoneElement);
88
+ };
89
+ export default milestone;
@@ -296,7 +296,17 @@ export const setupAdvancedTable = (component, table) => {
296
296
  : document.querySelector(`iam-actionbar[data-for='${component.getAttribute('id')}']`);
297
297
  addSelectboxes(component, table, actionbar);
298
298
  }
299
- component.querySelectorAll('.dialog__wrapper .btn-compact').forEach((btn) => {
299
+ component.querySelectorAll('.dialog__wrapper .btn-compact').forEach((btn, index) => {
300
+ const wrapper = btn.closest('.dialog__wrapper');
301
+ const dialog = wrapper.querySelector('dialog');
302
+ // Transform dialog into a menu custom element
303
+ if (dialog) {
304
+ const id = `menu${uniqueID(index)}`;
305
+ dialog.setAttribute('id', id);
306
+ dialog.setAttribute('popover', 'auto');
307
+ btn.setAttribute('popovertarget', id);
308
+ dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
309
+ }
300
310
  btn.classList.add('btn-sm');
301
311
  btn.classList.add('m-0');
302
312
  const tr = btn.closest('tr');
@@ -17,7 +17,7 @@ const videoSupport = (body) => __awaiter(void 0, void 0, void 0, function* () {
17
17
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
18
  const loaded = yield loadYouTubeScripts();
19
19
  }
20
- }), "2000");
20
+ }), '2000');
21
21
  body.addEventListener('click', (event) => __awaiter(void 0, void 0, void 0, function* () {
22
22
  let target = event.target.closest('.youtube-link[data-youtube]');
23
23
  if (!target) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v7.3.0
2
+ * iamKey v7.5.0
3
3
  * Copyright 2022-2025 iamproperty
4
- */(function(h){typeof define=="function"&&define.amd?define(h):h()})(function(){"use strict";var h=r=>{r.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie")},C=r=>{var e=function(t){var o=document.querySelector('label[for="'.concat(t.replace("#",""),'"]')),i=document.querySelector(t+" summary"),c=document.querySelector("dialog".concat(t)),n=document.querySelector("detail".concat(t));o instanceof HTMLElement?o.click():i instanceof HTMLElement?i.click():c instanceof HTMLElement?c.showModal():n instanceof HTMLElement&&n.addAttribute("open")};location.hash&&e(location.hash),window.addEventListener("hashchange",function(){e(location.hash)},!1),addEventListener("popstate",a=>{if(a&&a.state&&a.state.type&&a.state.type=="pagination"){var t=document.querySelector("#".concat(a.state.form)),o=document.querySelector("#".concat(a.state.form," [data-pagination]"));o?o.value=a.state.page:t.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(a.state.page,'" />'),t.dispatchEvent(new Event("submit"))}}),document.addEventListener("submit",a=>{if(a&&a.target instanceof HTMLElement&&a.target.matches("form")){var t=a.target;Array.from(t.querySelectorAll("[data-password-type]")).forEach(o=>{o.setAttribute("type","password")}),(t.querySelector(":invalid")||t.querySelector('.pwd-checker[data-strength="1"]')||t.querySelector('.pwd-checker[data-strength="2"]'))&&(t.classList.add("was-validated"),a.preventDefault()),t.querySelector("iam-multiselect[data-is-required][data-error]")&&(t.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 t=a.closest("label");t.setAttribute("data-percent",a.getAttribute("value"))})},H=r=>(Array.from(r.querySelectorAll("dialog[open]")).forEach(e=>{var a=e.closest(".dialog__wrapper");a||(e.removeAttribute("open"),e.showModal(),e.focus(),E(e))}),r.addEventListener("click",e=>{if(e.target.tagName=="IAM-ACTIONBAR")return!1;if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-modal]")){var a=e.target.closest("[data-modal]"),t=a.hasAttribute("data-modal")?a.getAttribute("data-modal"):a.getAttribute("data-filter"),o=document.querySelector("dialog#".concat(t));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(g=>{var X=g.getAttribute("data-duplicate"),M=document.getElementById(X);if(g.checked!=M.checked){g.checked=M.checked;var z=new Event("change");g.dispatchEvent(z)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:t})}if(e&&e.target instanceof HTMLElement&&e.target.closest("button.dialog__close")){var c=e.target.closest("dialog[open]");e.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}});e.target.dispatchEvent(n),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:c.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest('button[formmethod="dialog"]')){var l=e.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(e&&e.target instanceof HTMLElement&&e.target.closest("dialog[open]")){var s=e.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();(e.clientX<u.left||e.clientX>u.right||e.clientY<u.top||e.clientY>u.bottom)&&(e.target.closest("dialog *")||s.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")}))}}if(e&&e.target instanceof HTMLElement&&e.target.closest(".dialog__wrapper > button")){e.stopPropagation();var f=e.target.closest(".dialog__wrapper > button"),F=f.parentNode,S="openPopover",y=F.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(),S="closePopover",y.removeAttribute("style"),f.removeAttribute("aria-expanded");else{y.show(),f.setAttribute("aria-expanded",!0);var q=f.getBoundingClientRect(),k=q.top,T=q.left;if(f.closest("iam-table")){var x=f.closest("iam-table").parentNode.getBoundingClientRect();k-=x.top,T-=x.left}y.classList.contains("dialog--fix")&&y.setAttribute("style","position:fixed;top: ".concat(k,"px; left: ").concat(T,"px; margin: 3rem 0 0 0;"))}var A=y.getBoundingClientRect(),W=A.bottom-window.scrollY,G=window.innerHeight-window.scrollY;if(W>G){var J=y.hasAttribute("style")?y.getAttribute("style")+" ":"";y.setAttribute("style",J+"transform: translate(0, calc(-100% - 4rem))"),A=y.getBoundingClientRect();var U=A.top-window.scrollY;U<100&&y.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:S,id:f.textContent})}e&&e.target instanceof HTMLElement&&!e.target.closest("dialog[open]")&&!e.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),E=r=>{if(!r.querySelector(":scope .mh-lg")&&!r.querySelector("iam-multi-step")){r.innerHTML='<div class="mh-lg">'.concat(r.innerHTML,"</div>");var e=r.querySelector(".mh-lg"),a=r.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(a){var t=a.previousSibling;e.before(a),t&&a.before(t)}}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 e=r.target.closest("[open] summary");if(e)window.dataLayer.push({event:"closeDetails",detailsTitle:e.textContent||""});else{var a=r.target.closest("summary"),t=r.target.closest("a"),o=r.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),t&&window.dataLayer.push({event:"linkClicked",linkText:t.hasAttribute("title")?t.getAttribute("title")||"":t.textContent||"",class:t.hasAttribute("class")&&t.getAttribute("class")||"",href:t.getAttribute("href")||""}),o&&window.dataLayer.push({event:"buttonClicked",buttonText:o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||""})}})}function D(r){var e=new TextEncoder("utf-8").encode(r);return crypto.subtle.digest("SHA-1",e).then(function(a){for(var t=[],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);t.push(s)}return t.join("")})}var B=(r,e)=>{D(r).then(function(a){var t=new XMLHttpRequest;t.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});e.dispatchEvent(l)}),t.open("GET","https://api.pwnedpasswords.com/range/"+a.substr(0,5)),t.send()})},V=r=>{function e(){if(Array.from(document.querySelectorAll("input[maxlength],textarea[maxlength]")).forEach(t=>{t.parentElement,N(t)}),Array.from(document.querySelectorAll("label input")).forEach(t=>{!t.closest("label").querySelector(".optional-text")&&!t.hasAttribute("required")&&(t.parentNode.tagName.toLowerCase()=="span"?t.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):t.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))}),document.querySelector('input[type="date"]')){let t=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",t(i))),o.hasAttribute("data-period")){var c=parseInt(o.getAttribute("data-period")),n=new Date;n.setDate(i.getDate()+c),o.setAttribute("max",t(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"&&e(),document.onreadystatechange=()=>{document.readyState==="complete"&&e()},r.addEventListener("input",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("input,textarea,select")){var t=a.target.closest("input,textarea,select");t.hasAttribute("type")&&t.getAttribute("type")=="color"&&(t.nextElementSibling.value=t.value),t.hasAttribute("maxlength")&&t.nextElementSibling&&t.nextElementSibling.setAttribute("data-count",t.value.length),t.hasAttribute("data-strength-checker")&&b(t)}}),r.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("select")){var t=a.target.closest("select");if(t.hasAttribute("data-change-type")&&t.hasAttribute("data-input")){var o=document.getElementById(t.getAttribute("data-input")),i=t.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 t=a.target.closest("[data-change-type]"),o=document.getElementById(t.getAttribute("data-input")),i=t.getAttribute("data-change-type");if(t.setAttribute("data-change-type",o.getAttribute("type")),L(o,i),t.hasAttribute("data-alt-class")){var c=t.getAttribute("data-alt-class");t.setAttribute("data-alt-class",t.getAttribute("class")),t.setAttribute("class",c)}}})},N=r=>{var e=r.parentElement,a=r.getAttribute("maxlength");e.style.setProperty("--maxlength",a);var t=r.nextElementSibling;(!t||t&&t.classList.contains("invalid-feedback"))&&(t=document.createElement("span"),e.insertBefore(t,r.nextSibling)),t.setAttribute("data-count",r.value.length)},L=(r,e)=>{r.hasAttribute("type")&&r.getAttribute("type")=="password"&&r.setAttribute("data-password-type",!0),r.setAttribute("type",e)},b=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"no",t=document.getElementById(e.getAttribute("data-strength-checker")),o=e.value,i=e.hasAttribute("minlength")?e.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?b(u,"danger"):b(u,"success"),u.removeEventListener("hibpCheck",s)};B(o,e),e.addEventListener("hibpCheck",function(d){s(d,e)})}else c>=3&&a=="danger"&&(c=3,l="(this password is very common)");t&&(c<=3?t.classList.add("invalid-feedback"):t.classList.remove("invalid-feedback"),t.setAttribute("data-strength",c),t.innerHTML="Password strength: ".concat(n[c-1]," ").concat(l))},Y=()=>{document.addEventListener("change",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&v(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]")&&v(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]")&&v(r.target,r.target.closest("[data-click-events]").getAttribute("data-click-events"))})},v=(r,e)=>{if(e||(e=r.parentNode.getAttribute("data-change-events")),!e)return!1;Array.from(JSON.parse(e)).forEach(a=>{P(r,a)})},P=(r,e)=>{if("matches"in e)return e.matches=="any"||r.value==e.matches?m(r,e,"if"):m(r,e,"else"),!1;if("in-list"in e){var a=document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'));return document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'))?m(a,e,"if"):m(a,e,"else"),!1}else"event"in e&&m(r,e,"event")},m=(r,e,a)=>{if(!(a in e))return!1;switch(e[a]){case"hide":if(document.querySelector(e.target)){var t=document.querySelector(e.target);t.classList.add("js-hide"),Array.from(t.querySelectorAll("[data-required]")).forEach(n=>{n.removeAttribute("required")})}break;case"show":if(document.querySelector(e.target)){var o=document.querySelector(e.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":j(r,e);break;case"dispatchEvent":var i=new Event(e.value);document.querySelector("".concat(e.target)).dispatchEvent(i);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n){n.setAttribute(e.attribute,e.value)});break;case"focus":document.querySelector("".concat(e.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n){n.removeAttribute(e.attribute)});break;case"updateValue":document.querySelector("".concat(e.target)).value=e.value?e.value:"";var c=new Event("change");document.querySelector("".concat(e.target)).dispatchEvent(c);break;case"submitForm":document.querySelector("".concat(e.target)).submit();break;case"openLink":document.querySelector("".concat(e.target)).value&&(window.location.href=document.querySelector("".concat(e.target)).value);break}},j=function(e,a){var t=JSON.parse(e.getAttribute("data-values")),o=document.querySelector(a.target);if(!t)return!1;Object.keys(t).forEach(i=>{document.getElementById(i)&&document.getElementById(i).tagName=="SPAN"&&(document.getElementById(i).innerHTML=t[i]),o.querySelector('select[name="'.concat(i,'"] [value="').concat(t[i],'"]'))?(o.querySelector('select[name="'.concat(i,'"]')).value=t[i],e.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(i,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(t[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(t[i],'"]')).checked=!0,o.querySelector('input[name="'.concat(i,'"][type="radio"][value="').concat(t[i],'"]')).disabled=!1):o.querySelector('input[name="'.concat(i,'"]'))&&(o.querySelector('input[name="'.concat(i,'"]')).value=t[i],e.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(i,'"]')).setAttribute("readonly","true"))})},p=function(r,e,a,t){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(t.next(d))}catch(u){c(u)}}function l(d){try{s(t.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((t=t.apply(r,e||[])).next())})},_=r=>p(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w()),setTimeout(()=>p(void 0,void 0,void 0,function*(){document.querySelector(".youtube-link[data-youtube]")&&!document.body.classList.contains("youtubeLoaded")&&(yield w())}),"2000"),r.addEventListener("click",e=>p(void 0,void 0,void 0,function*(){var a=e.target.closest(".youtube-link[data-youtube]");if(a||(a=e.target.closest(".vimeo-link[data-vimeo]")),a&&a.hasAttribute("data-youtube")){e.preventDefault(),document.body.classList.contains("youtubeLoaded")||(yield w());var t="youtube-"+a.getAttribute("data-youtube");document.getElementById("".concat(t,"-dialog"))||document.body.insertAdjacentHTML("beforeend",'<dialog id="'.concat(t,'-dialog"><div class="embed" id="').concat(t,'"></div></dialog>'));var o=document.getElementById("".concat(t,"-dialog")),i=document.getElementById(t),c=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:a.getAttribute("data-youtube")}});a.dispatchEvent(c),window.dataLayer.push(c.detail),R(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")){e.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=()=>p(void 0,void 0,void 0,function*(){return new Promise((r,e)=>{var a=new Image;a.onload=function(){var t=document.createElement("script");t.src="https://www.youtube.com/iframe_api";var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(t,o),document.body.classList.add("youtubeLoaded"),r(!0)},a.onerror=function(){e(!1)},a.src="https://youtube.com/favicon.ico"})}),R=(r,e)=>p(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:e,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:t,onStateChange:i}});function t(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}}}),O=function(r,e,a,t){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(t.next(d))}catch(u){c(u)}}function l(d){try{s(t.throw(d))}catch(u){c(u)}}function s(d){d.done?i(d.value):o(d.value).then(n,l)}s((t=t.apply(r,e||[])).next())})};document.addEventListener("DOMContentLoaded",()=>O(void 0,void 0,void 0,function*(){I(),Y(),h(document.body),C(),H(document.body),V(document.body),_(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