@iamproperty/components 7.1.0--beta7 → 7.2.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 (347) hide show
  1. package/assets/css/components/actionbar.component.css +1 -0
  2. package/assets/css/components/actionbar.component.css.map +1 -0
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/address-lookup.css +1 -1
  6. package/assets/css/components/address-lookup.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/bento-grid.component.css +1 -0
  10. package/assets/css/components/bento-grid.component.css.map +1 -0
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/charts.config.css +1 -1
  18. package/assets/css/components/charts.config.css.map +1 -1
  19. package/assets/css/components/charts.css +1 -1
  20. package/assets/css/components/charts.css.map +1 -1
  21. package/assets/css/components/charts.module.css +1 -1
  22. package/assets/css/components/charts.module.css.map +1 -1
  23. package/assets/css/components/collapsible-side.css +1 -1
  24. package/assets/css/components/collapsible-side.css.map +1 -1
  25. package/assets/css/components/doughnutchart.component.css +1 -0
  26. package/assets/css/components/doughnutchart.component.css.map +1 -0
  27. package/assets/css/components/fileupload.css.map +1 -1
  28. package/assets/css/components/header.css.map +1 -1
  29. package/assets/css/components/inline-edit.preload.css +1 -1
  30. package/assets/css/components/inline-edit.preload.css.map +1 -1
  31. package/assets/css/components/marketing.css.map +1 -1
  32. package/assets/css/components/menu.component.css +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -0
  34. package/assets/css/components/menu.css +1 -0
  35. package/assets/css/components/menu.css.map +1 -0
  36. package/assets/css/components/multi-step.component.css.map +1 -1
  37. package/assets/css/components/multiselect.preload.css +1 -1
  38. package/assets/css/components/multiselect.preload.css.map +1 -1
  39. package/assets/css/components/nav.component.css +1 -0
  40. package/assets/css/components/nav.component.css.map +1 -0
  41. package/assets/css/components/nav.docs.css.map +1 -1
  42. package/assets/css/components/nav.global.css.map +1 -1
  43. package/assets/css/components/nav.old.css +1 -1
  44. package/assets/css/components/nav.old.css.map +1 -1
  45. package/assets/css/components/nav.preload.css +1 -1
  46. package/assets/css/components/nav.preload.css.map +1 -1
  47. package/assets/css/components/notification.css +1 -1
  48. package/assets/css/components/notification.css.map +1 -1
  49. package/assets/css/components/pagination.css +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css.map +1 -1
  52. package/assets/css/components/slider.css +1 -1
  53. package/assets/css/components/slider.css.map +1 -1
  54. package/assets/css/components/snapshot.css.map +1 -1
  55. package/assets/css/components/stepper.css.map +1 -1
  56. package/assets/css/components/{table.css → table.component.css} +1 -1
  57. package/assets/css/components/table.component.css.map +1 -0
  58. package/assets/css/components/table.global.css +1 -1
  59. package/assets/css/components/table.global.css.map +1 -1
  60. package/assets/css/components/tabs.component.css +1 -0
  61. package/assets/css/components/tabs.component.css.map +1 -0
  62. package/assets/css/components/tabs.css.map +1 -1
  63. package/assets/css/components/testimonial.css.map +1 -1
  64. package/assets/css/components/timeline.css.map +1 -1
  65. package/assets/css/core.min.css +1 -1
  66. package/assets/css/core.min.css.map +1 -1
  67. package/assets/css/mobile-core.min.css +1 -0
  68. package/assets/css/mobile-core.min.css.map +1 -0
  69. package/assets/css/mobile.min.css +1 -0
  70. package/assets/css/mobile.min.css.map +1 -0
  71. package/assets/css/style.min.css +1 -1
  72. package/assets/css/style.min.css.map +1 -1
  73. package/assets/js/components/_global.js +0 -1
  74. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  75. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  76. package/assets/js/components/actionbar/actionbar.component.js +86 -8
  77. package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
  78. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  79. package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
  80. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  81. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  82. package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
  83. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  84. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  85. package/assets/js/components/barchart/barchart.component.js +2 -3
  86. package/assets/js/components/barchart/barchart.component.min.js +8 -4
  87. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  88. package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
  89. package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
  90. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
  91. package/assets/js/components/card/card.component.js +10 -13
  92. package/assets/js/components/card/card.component.min.js +7 -7
  93. package/assets/js/components/card/card.component.min.js.map +1 -1
  94. package/assets/js/components/carousel/carousel.component.js +4 -5
  95. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  96. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  97. package/assets/js/components/chart/chart.component.js +1 -5
  98. package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
  99. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  100. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  101. package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
  102. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
  103. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
  104. package/assets/js/components/fileupload/fileupload.component.js +2 -3
  105. package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
  106. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  107. package/assets/js/components/filter-card/filter-card.component.js +3 -4
  108. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  109. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  110. package/assets/js/components/filterlist/filterlist.component.js +0 -1
  111. package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
  112. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  113. package/assets/js/components/header/header.component.js +0 -1
  114. package/assets/js/components/header/header.component.min.js +1 -1
  115. package/assets/js/components/header/header.component.min.js.map +1 -1
  116. package/assets/js/components/inline-edit/inline-edit.component.js +7 -8
  117. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  119. package/assets/js/components/marketing/marketing.component.js +0 -1
  120. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  121. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  122. package/assets/js/components/menu/menu.component.js +200 -0
  123. package/assets/js/components/menu/menu.component.min.js +77 -0
  124. package/assets/js/components/menu/menu.component.min.js.map +1 -0
  125. package/assets/js/components/multi-step/multi-step.component.js +10 -10
  126. package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
  127. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
  128. package/assets/js/components/multiselect/multiselect.component.js +10 -10
  129. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  130. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  131. package/assets/js/components/nav/nav.component.js +7 -7
  132. package/assets/js/components/nav/nav.component.min.js +7 -7
  133. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  134. package/assets/js/components/notification/notification.component.js +3 -3
  135. package/assets/js/components/notification/notification.component.min.js +4 -4
  136. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  137. package/assets/js/components/pagination/pagination.component.js +3 -4
  138. package/assets/js/components/pagination/pagination.component.min.js +4 -4
  139. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  140. package/assets/js/components/record-card/record-card.component.js +6 -8
  141. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  142. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  143. package/assets/js/components/search/search.component.js +9 -6
  144. package/assets/js/components/search/search.component.min.js +8 -5
  145. package/assets/js/components/search/search.component.min.js.map +1 -1
  146. package/assets/js/components/slider/slider.component.js +8 -8
  147. package/assets/js/components/slider/slider.component.min.js +5 -5
  148. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  149. package/assets/js/components/table/table.component.js +8 -9
  150. package/assets/js/components/table/table.component.min.js +7 -7
  151. package/assets/js/components/table/table.component.min.js.map +1 -1
  152. package/assets/js/components/tabs/tabs.component.js +1 -2
  153. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  154. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  155. package/assets/js/components/video-card/video-card.component.js +4 -3
  156. package/assets/js/components/video-card/video-card.component.min.js +3 -3
  157. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  158. package/assets/js/modules/applied-filters.js +8 -9
  159. package/assets/js/modules/carousel.js +9 -10
  160. package/assets/js/modules/chart.js +5 -3
  161. package/assets/js/modules/chart.module.js +108 -1
  162. package/assets/js/modules/dialogs.js +6 -7
  163. package/assets/js/modules/drawer.js +1 -2
  164. package/assets/js/modules/dynamicEvents.js +7 -8
  165. package/assets/js/modules/fileupload.js +7 -7
  166. package/assets/js/modules/filterlist.js +3 -4
  167. package/assets/js/modules/form.js +12 -13
  168. package/assets/js/modules/helpers.js +3 -5
  169. package/assets/js/modules/inputs.js +6 -9
  170. package/assets/js/modules/nav.js +3 -4
  171. package/assets/js/modules/notification.js +2 -3
  172. package/assets/js/modules/orderablelist.js +0 -1
  173. package/assets/js/modules/table.js +80 -42
  174. package/assets/js/modules/tabs.js +3 -6
  175. package/assets/js/scripts.bundle.js +3 -3
  176. package/assets/js/scripts.bundle.js.map +1 -1
  177. package/assets/js/scripts.bundle.min.js +2 -2
  178. package/assets/js/scripts.bundle.min.js.map +1 -1
  179. package/assets/js/scripts.js +64 -6
  180. package/assets/js/tests/card.spec.js +14 -0
  181. package/assets/js/tests/carousel.spec.js +60 -0
  182. package/assets/js/tests/chart.spec.js +7 -5
  183. package/assets/js/tests/fileupload.spec.js +22 -0
  184. package/assets/js/tests/multistep.spec.js +68 -0
  185. package/assets/sass/_bs_grid.scss +4 -1
  186. package/assets/sass/_components.scss +323 -100
  187. package/assets/sass/_corefiles.scss +42 -18
  188. package/assets/sass/_elements.scss +98 -18
  189. package/assets/sass/_example.scss +61 -0
  190. package/assets/sass/_func.scss +5 -13
  191. package/assets/sass/_functions/bs_utilities.scss +43 -39
  192. package/assets/sass/_functions/functions.scss +66 -52
  193. package/assets/sass/_functions/mixins.scss +84 -100
  194. package/assets/sass/_functions/utility-mixins.scss +56 -44
  195. package/assets/sass/_functions/variables.scss +90 -1659
  196. package/assets/sass/_functions/variables_old.scss +1701 -0
  197. package/assets/sass/_grid.scss +19 -5
  198. package/assets/sass/_tests/func.spec.scss +1 -37
  199. package/assets/sass/_tests/mixins.spec.scss +1 -77
  200. package/assets/sass/_tests/typography.spec.scss +1 -1
  201. package/assets/sass/_utilities.scss +15 -5
  202. package/assets/sass/_utility-mixins.scss +6 -1
  203. package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +82 -16
  204. package/assets/sass/components/actionbar.global.scss +28 -14
  205. package/assets/sass/components/address-lookup.scss +6 -0
  206. package/assets/sass/components/barchart.component.scss +7 -20
  207. package/assets/sass/components/bento-grid.component.scss +91 -0
  208. package/assets/sass/components/carousel.config.scss +64 -58
  209. package/assets/sass/components/charts.config.scss +73 -67
  210. package/assets/sass/components/charts.module.scss +128 -97
  211. package/assets/sass/components/charts.scss +43 -42
  212. package/assets/sass/components/collapsible-side.scss +29 -27
  213. package/assets/sass/components/doughnutchart.component.scss +205 -0
  214. package/assets/sass/components/fileupload.scss +4 -3
  215. package/assets/sass/components/header.scss +5 -5
  216. package/assets/sass/components/inline-edit.preload.scss +108 -102
  217. package/assets/sass/components/menu.component.scss +101 -0
  218. package/assets/sass/components/menu.scss +21 -0
  219. package/assets/sass/components/multi-step.component.scss +5 -3
  220. package/assets/sass/components/multiselect.preload.scss +36 -30
  221. package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
  222. package/assets/sass/components/nav.docs.scss +1 -1
  223. package/assets/sass/components/nav.global.scss +13 -11
  224. package/assets/sass/components/nav.old.scss +21 -24
  225. package/assets/sass/components/nav.preload.scss +40 -34
  226. package/assets/sass/components/notification.scss +9 -5
  227. package/assets/sass/components/pagination.scss +6 -0
  228. package/assets/sass/components/property-searchbar.scss +7 -7
  229. package/assets/sass/components/slider.scss +2 -0
  230. package/assets/sass/components/snapshot.scss +2 -2
  231. package/assets/sass/components/stepper.scss +7 -7
  232. package/assets/sass/components/table.global.scss +57 -1
  233. package/assets/sass/components/tabs.component.scss +5 -0
  234. package/assets/sass/components/tabs.scss +7 -3
  235. package/assets/sass/components/testimonial.scss +7 -7
  236. package/assets/sass/components/timeline.scss +1 -1
  237. package/assets/sass/core.scss +13 -4
  238. package/assets/sass/elements/admin-panel.scss +199 -185
  239. package/assets/sass/elements/badge-tag.scss +87 -81
  240. package/assets/sass/elements/brand.scss +67 -61
  241. package/assets/sass/elements/buttons--action.scss +55 -0
  242. package/assets/sass/elements/buttons--compact.scss +135 -0
  243. package/assets/sass/elements/buttons--global.scss +322 -0
  244. package/assets/sass/elements/buttons--secondary.scss +24 -0
  245. package/assets/sass/elements/buttons--tertiary.scss +57 -0
  246. package/assets/sass/elements/buttons.scss +29 -503
  247. package/assets/sass/elements/container.scss +157 -151
  248. package/assets/sass/elements/details.scss +147 -138
  249. package/assets/sass/elements/dialog.scss +36 -30
  250. package/assets/sass/elements/forms.scss +1061 -1047
  251. package/assets/sass/elements/icons.scss +23 -17
  252. package/assets/sass/elements/links.scss +131 -116
  253. package/assets/sass/elements/lists.scss +270 -264
  254. package/assets/sass/elements/media.scss +19 -13
  255. package/assets/sass/elements/modal.scss +336 -330
  256. package/assets/sass/elements/popover.scss +163 -152
  257. package/assets/sass/elements/progress.scss +173 -162
  258. package/assets/sass/elements/table.element.scss +115 -109
  259. package/assets/sass/elements/tooltips.scss +87 -80
  260. package/assets/sass/elements/type.scss +172 -160
  261. package/assets/sass/email.scss +0 -1
  262. package/assets/sass/error.scss +15 -13
  263. package/assets/sass/foundations/reboot.scss +176 -170
  264. package/assets/sass/foundations/root.scss +136 -125
  265. package/assets/sass/helpers/max-height.scss +2 -2
  266. package/assets/sass/main.scss +14 -6
  267. package/assets/sass/mobile-core.scss +14 -0
  268. package/assets/sass/mobile.scss +16 -0
  269. package/assets/sass/templates/auth.scss +88 -83
  270. package/assets/sass/templates/form.scss +68 -59
  271. package/assets/ts/components/_global.ts +2 -3
  272. package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
  273. package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
  274. package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
  275. package/assets/ts/components/barchart/barchart.component.ts +3 -5
  276. package/assets/ts/components/bento-grid/README.md +31 -0
  277. package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
  278. package/assets/ts/components/card/card.component.ts +13 -16
  279. package/assets/ts/components/carousel/carousel.component.ts +5 -7
  280. package/assets/ts/components/chart/chart.component.ts +4 -9
  281. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
  282. package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
  283. package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
  284. package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
  285. package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
  286. package/assets/ts/components/header/header.component.ts +1 -3
  287. package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
  288. package/assets/ts/components/marketing/marketing.component.ts +1 -3
  289. package/assets/ts/components/menu/menu.component.ts +222 -0
  290. package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
  291. package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
  292. package/assets/ts/components/nav/nav.component.ts +8 -9
  293. package/assets/ts/components/notification/notification.component.ts +3 -3
  294. package/assets/ts/components/pagination/pagination.component.ts +7 -8
  295. package/assets/ts/components/record-card/record-card.component.ts +9 -11
  296. package/assets/ts/components/search/search.component.ts +12 -9
  297. package/assets/ts/components/slider/slider.component.ts +9 -10
  298. package/assets/ts/components/table/table.component.ts +14 -16
  299. package/assets/ts/components/tabs/tabs.component.ts +2 -3
  300. package/assets/ts/components/video-card/video-card.component.ts +13 -12
  301. package/assets/ts/modules/applied-filters.ts +10 -11
  302. package/assets/ts/modules/card.module.ts +1 -1
  303. package/assets/ts/modules/carousel.ts +13 -15
  304. package/assets/ts/modules/chart.module.ts +152 -19
  305. package/assets/ts/modules/chart.ts +26 -24
  306. package/assets/ts/modules/dialogs.ts +10 -13
  307. package/assets/ts/modules/drawer.ts +1 -2
  308. package/assets/ts/modules/dynamicEvents.ts +12 -14
  309. package/assets/ts/modules/fileupload.ts +10 -10
  310. package/assets/ts/modules/filterlist.ts +6 -7
  311. package/assets/ts/modules/form.ts +16 -17
  312. package/assets/ts/modules/helpers.ts +18 -21
  313. package/assets/ts/modules/inputs.ts +15 -18
  314. package/assets/ts/modules/nav.ts +4 -5
  315. package/assets/ts/modules/notification.ts +7 -8
  316. package/assets/ts/modules/orderablelist.ts +3 -4
  317. package/assets/ts/modules/pagination.ts +1 -1
  318. package/assets/ts/modules/table.ts +103 -60
  319. package/assets/ts/modules/tabs.ts +5 -8
  320. package/assets/ts/scripts.ts +70 -6
  321. package/assets/ts/tests/card.spec.ts +19 -0
  322. package/assets/ts/tests/carousel.spec.ts +66 -0
  323. package/assets/ts/tests/chart.spec.ts +9 -6
  324. package/assets/ts/tests/fileupload.spec.ts +30 -0
  325. package/assets/ts/tests/multistep.spec.ts +78 -0
  326. package/dist/components.es.js +1258 -1063
  327. package/dist/components.umd.js +473 -195
  328. package/package.json +44 -49
  329. package/src/components/BentoGrid/BentoGrid.vue +20 -0
  330. package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
  331. package/src/components/FileUpload/FileUpload.vue +4 -1
  332. package/src/components/Menu/Menu.vue +22 -0
  333. package/src/components/Tabs/Tabs.vue +0 -4
  334. package/src/index.js +25 -19
  335. package/assets/css/components/actionbar.css +0 -1
  336. package/assets/css/components/actionbar.css.map +0 -1
  337. package/assets/css/components/nav.css +0 -1
  338. package/assets/css/components/nav.css.map +0 -1
  339. package/assets/css/components/table.css.map +0 -1
  340. package/assets/js/components.bundle.js +0 -5
  341. package/assets/js/components.bundle.js.map +0 -1
  342. package/assets/js/components.js +0 -57
  343. package/assets/js/modules/file-upload.js +0 -32
  344. package/assets/ts/components.ts +0 -62
  345. package/assets/ts/modules/file-upload.ts +0 -52
  346. package/dist/style.css +0 -1
  347. /package/assets/sass/components/{table.scss → table.component.scss} +0 -0
@@ -1,3 +1,4 @@
1
+ import { ucfirst, unsnake } from './helpers.js';
1
2
  // #region Functions that setup and trigger other functions
2
3
  export const addClasses = (chartElement, chartOuter) => {
3
4
  // add colour classes
@@ -16,6 +17,10 @@ export const addClasses = (chartElement, chartOuter) => {
16
17
  return true;
17
18
  };
18
19
  export const setupChart = (chartElement, chartOuter, tableElement) => {
20
+ if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
21
+ setupDoughnutChart(chartElement, chartOuter, tableElement);
22
+ return true;
23
+ }
19
24
  // #region Reset the chart
20
25
  // empty divs to re-populate
21
26
  const chartKey = chartOuter.querySelector('.chart__key');
@@ -39,6 +44,21 @@ export const setupChart = (chartElement, chartOuter, tableElement) => {
39
44
  }
40
45
  return true;
41
46
  };
47
+ export const setupDoughnutChart = (chartElement, chartOuter, tableElement) => {
48
+ // #region Reset the chart
49
+ // empty divs to re-populate
50
+ const chartKey = chartOuter.querySelector('.chart__key');
51
+ chartKey.innerHTML = '';
52
+ // Remove old input fields
53
+ Array.from(chartOuter.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map((element) => {
54
+ element.remove();
55
+ });
56
+ // #endregion
57
+ setCellData(chartElement, tableElement);
58
+ createChartKey(chartOuter, tableElement, chartKey);
59
+ createdoughnuts(chartOuter);
60
+ return true;
61
+ };
42
62
  // #endregion
43
63
  // #region Event handlers and observers
44
64
  export const setEventListener = function (chartElement, chartOuter) {
@@ -81,6 +101,9 @@ export const setEventListener = function (chartElement, chartOuter) {
81
101
  });
82
102
  shadowTable.innerHTML = table.innerHTML;
83
103
  setCellData(chartElement, shadowTable);
104
+ if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
105
+ createdoughnuts(chartOuter);
106
+ }
84
107
  });
85
108
  };
86
109
  export const setEventObservers = function (chartElement, chartOuter) {
@@ -116,6 +139,14 @@ export const setEventObservers = function (chartElement, chartOuter) {
116
139
  observer2.observe(chartElement, { attributes: true });
117
140
  return true;
118
141
  };
142
+ function getCoordinatesForPercent(percent, doughnutCount) {
143
+ // This moves the start point to the top middle point like a clock
144
+ if (doughnutCount > 1)
145
+ percent = percent - 0.25;
146
+ const x = Math.cos(2 * Math.PI * percent);
147
+ const y = Math.sin(2 * Math.PI * percent);
148
+ return [x * 100, y * 100];
149
+ }
119
150
  // #endregion
120
151
  // #region GET functions
121
152
  export const getChartData = function (chartElement) {
@@ -293,6 +324,7 @@ export const createChartKey = function (chartOuter, tableElement, chartKey) {
293
324
  return true;
294
325
  };
295
326
  function createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {
327
+ var _a;
296
328
  const input = document.createElement('input');
297
329
  input.setAttribute('name', `${chartID}-dataset-${index}`);
298
330
  input.setAttribute('id', `${chartID}-dataset-${index}`);
@@ -310,12 +342,15 @@ function createChartKeyItem(chartID, index, text, chartKey, chartOuter, previous
310
342
  label.setAttribute('for', `${chartID}-dataset-${index}`);
311
343
  label.setAttribute('data-label', `${text}`);
312
344
  label.setAttribute('part', `key`);
345
+ const total = (_a = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)) === null || _a === void 0 ? void 0 : _a.getAttribute('data-numeric');
346
+ label.setAttribute('data-numeric', total);
313
347
  label.innerHTML = `${text}`;
314
348
  chartKey.append(label);
315
349
  return previousInput;
316
350
  }
317
351
  export const createChartGuidelines = function (chartElement, chartGuidelines) {
318
- let { min, max, yaxis, guidelines } = getChartData(chartElement);
352
+ const { min, max, yaxis } = getChartData(chartElement);
353
+ let { guidelines } = getChartData(chartElement);
319
354
  if (!guidelines.length)
320
355
  guidelines = yaxis;
321
356
  chartGuidelines.innerHTML = '';
@@ -351,5 +386,77 @@ export const createTooltips = function (chartOuter) {
351
386
  //title.removeAttribute('title'); // TODO add a supports query for anchor positioning
352
387
  });
353
388
  };
389
+ export const createdoughnuts = function (chartOuter) {
390
+ let returnString = '';
391
+ const chartInner = chartOuter.querySelector('.chart');
392
+ let doughnutWrapper = chartOuter.querySelector('.doughnuts');
393
+ if (!doughnutWrapper) {
394
+ doughnutWrapper = document.createElement('div');
395
+ doughnutWrapper.setAttribute('class', 'doughnuts');
396
+ chartInner.append(doughnutWrapper);
397
+ }
398
+ Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item, index) => {
399
+ let paths = '';
400
+ let tooltips = '';
401
+ let cumulativePercent = 0;
402
+ let total = 0;
403
+ const titleKey = item.querySelectorAll('td')[0];
404
+ const title = titleKey.innerHTML;
405
+ let doughnutCount = 0;
406
+ const rowTotal = item.getAttribute('data-numeric');
407
+ // Work out the total amount
408
+ Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {
409
+ const display = getComputedStyle(td).display;
410
+ if (subindex != 0 && display != 'none') {
411
+ let value = td.getAttribute('data-numeric');
412
+ value = value.replace('£', '');
413
+ value = value.replace('%', '');
414
+ value = value.replace(',', '');
415
+ value = Number.parseInt(value);
416
+ total += value;
417
+ doughnutCount++;
418
+ }
419
+ });
420
+ // Create the paths
421
+ Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {
422
+ var _a, _b;
423
+ const display = getComputedStyle(td).display;
424
+ if (subindex != 0 && doughnutCount == 1 && display != 'none') {
425
+ const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;
426
+ paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};"></path>`;
427
+ tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_a = td.querySelector('[part="popover"]')) === null || _a === void 0 ? void 0 : _a.innerHTML}</span>`;
428
+ }
429
+ else if (subindex != 0) {
430
+ let value = td.getAttribute('data-numeric');
431
+ const hide = display == 'none' ? 'display: none;' : '';
432
+ value = value.replace('£', '');
433
+ value = value.replace('%', '');
434
+ value = value.replace(',', '');
435
+ value = Number.parseInt(value);
436
+ const percent = value / total;
437
+ const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);
438
+ const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);
439
+ const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)
440
+ const pathData = [
441
+ `M 0 0`,
442
+ `L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move
443
+ `A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc
444
+ `L 0 0`, // Line
445
+ ].join(' ');
446
+ paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};${hide}"></path>`;
447
+ tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_b = td.querySelector('[part="popover"]')) === null || _b === void 0 ? void 0 : _b.innerHTML}</span>`;
448
+ // each slice starts where the last slice ended, so keep a cumulative percent
449
+ if (display != 'none')
450
+ cumulativePercent += percent;
451
+ }
452
+ });
453
+ returnString += `<div class="doughnut">
454
+ <svg viewBox="-105 -105 210 210" preserveAspectRatio="none" style="--row-index: ${index + 1};">${paths}</svg>
455
+ <div class="doughnut__title" data-numeric="${rowTotal}"><span class="h5 mb-0">${title}</span></div>
456
+ <div class="tooltips">${tooltips}</div>
457
+ </div>`;
458
+ });
459
+ doughnutWrapper.innerHTML = returnString;
460
+ };
354
461
  // #endregion
355
462
  export default setupChart;
@@ -1,6 +1,5 @@
1
- // @ts-nocheck
2
1
  const extendDialogs = (body) => {
3
- Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog, index) => {
2
+ Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog) => {
4
3
  const parent = dialog.closest('.dialog__wrapper');
5
4
  if (!parent) {
6
5
  dialog.removeAttribute('open');
@@ -29,7 +28,7 @@ const extendDialogs = (body) => {
29
28
  dialog.setAttribute('style', `max-width: ${firstWidth}px;`);
30
29
  }
31
30
  // When the modal is opened we want to make sure any duplicate checkboxes are matching the originals
32
- Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element, index) => {
31
+ Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element) => {
33
32
  const id = element.getAttribute('data-duplicate');
34
33
  const originalInput = document.getElementById(id);
35
34
  if (element.checked != originalInput.checked) {
@@ -50,7 +49,7 @@ const extendDialogs = (body) => {
50
49
  event.preventDefault();
51
50
  dialog.close();
52
51
  // Remove active class from exiting active buttons
53
- Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement, index) => {
52
+ Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
54
53
  btnElement.classList.remove('active');
55
54
  });
56
55
  const closeEvent = new CustomEvent('dialog-closed', {
@@ -69,7 +68,7 @@ const extendDialogs = (body) => {
69
68
  if (event && event.target instanceof HTMLElement && event.target.closest('button[formmethod="dialog"]')) {
70
69
  const dialog = event.target.closest('dialog[open]');
71
70
  // Remove active class from exiting active buttons
72
- Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement, index) => {
71
+ Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
73
72
  btnElement.classList.remove('active');
74
73
  });
75
74
  window.dataLayer = window.dataLayer || [];
@@ -120,7 +119,7 @@ const extendDialogs = (body) => {
120
119
  }
121
120
  }
122
121
  // Remove active class from exiting active buttons
123
- Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement, index) => {
122
+ Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
124
123
  btnElement.removeAttribute('aria-expanded');
125
124
  });
126
125
  if (popover.hasAttribute('open')) {
@@ -171,7 +170,7 @@ const extendDialogs = (body) => {
171
170
  !event.target.closest('.dialog__wrapper > button')) {
172
171
  if (document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]'))
173
172
  document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]').close();
174
- Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement, index) => {
173
+ Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement) => {
175
174
  btnElement.removeAttribute('aria-expanded');
176
175
  });
177
176
  }
@@ -1,5 +1,4 @@
1
- // @ts-nocheck
2
- const drawer = (element) => {
1
+ const drawer = () => {
3
2
  const observer = new IntersectionObserver(function ([e]) {
4
3
  e.target.classList.toggle('in-view', e.intersectionRatio > 0);
5
4
  document.getElementById('showDrawer').checked = false;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  // Create the event listeners
3
2
  const createDynamicEvents = () => {
4
3
  // Change event
@@ -26,7 +25,7 @@ const splitEvents = (element, events) => {
26
25
  if (!events)
27
26
  return false;
28
27
  // Split out each event
29
- Array.from(JSON.parse(events)).forEach((event, index) => {
28
+ Array.from(JSON.parse(events)).forEach((event) => {
30
29
  checkConditions(element, event);
31
30
  });
32
31
  };
@@ -62,7 +61,7 @@ const runEvent = (element, event, eventType) => {
62
61
  if (document.querySelector(event['target'])) {
63
62
  const hideElement = document.querySelector(event['target']);
64
63
  hideElement.classList.add('js-hide');
65
- Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input, index) => {
64
+ Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input) => {
66
65
  input.removeAttribute('required');
67
66
  });
68
67
  }
@@ -71,7 +70,7 @@ const runEvent = (element, event, eventType) => {
71
70
  if (document.querySelector(event['target'])) {
72
71
  const showElement = document.querySelector(event['target']);
73
72
  showElement.classList.remove('js-hide');
74
- Array.from(showElement.querySelectorAll('[data-required]')).forEach((input, index) => {
73
+ Array.from(showElement.querySelectorAll('[data-required]')).forEach((input) => {
75
74
  if (!input.closest('.js-hide'))
76
75
  input.setAttribute('required', 'true');
77
76
  });
@@ -85,7 +84,7 @@ const runEvent = (element, event, eventType) => {
85
84
  document.querySelector(`${event['target']}`).dispatchEvent(theEvent);
86
85
  break;
87
86
  case 'setAttribute':
88
- Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
87
+ Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element) {
89
88
  element.setAttribute(event['attribute'], event['value']);
90
89
  });
91
90
  break;
@@ -93,7 +92,7 @@ const runEvent = (element, event, eventType) => {
93
92
  document.querySelector(`${event['target']}`).focus();
94
93
  break;
95
94
  case 'removeAttribute':
96
- Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
95
+ Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element) {
97
96
  element.removeAttribute(event['attribute']);
98
97
  });
99
98
  break;
@@ -118,7 +117,7 @@ const populateForm = function (element, event) {
118
117
  const form = document.querySelector(event['target']);
119
118
  if (!values)
120
119
  return false;
121
- Object.keys(values).forEach((field, index) => {
120
+ Object.keys(values).forEach((field) => {
122
121
  if (document.getElementById(field) && document.getElementById(field).tagName == 'SPAN')
123
122
  document.getElementById(field).innerHTML = values[field];
124
123
  if (form.querySelector(`select[name="${field}"] [value="${values[field]}"]`)) {
@@ -127,7 +126,7 @@ const populateForm = function (element, event) {
127
126
  form.querySelector(`select[name="${field}"]`).disabled = true;
128
127
  }
129
128
  else if (form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`)) {
130
- Array.from(form.querySelectorAll(`input[name="${field}"][type="radio"]`)).forEach(function (input, index) {
129
+ Array.from(form.querySelectorAll(`input[name="${field}"][type="radio"]`)).forEach(function (input) {
131
130
  input.disabled = true;
132
131
  });
133
132
  form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`).checked = true;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  function fileupload(fileupload, wrapper) {
3
2
  const filesWrapper = wrapper.querySelector('.files');
4
3
  const dropArea = wrapper.querySelector('.drop-area');
@@ -20,7 +19,6 @@ function fileupload(fileupload, wrapper) {
20
19
  };
21
20
  wrapper.addEventListener('click', (event) => {
22
21
  if (event && event.target instanceof HTMLElement && event.target.closest('.btn-primary')) {
23
- const button = event.target.closest('.btn-primary');
24
22
  // If the input allows multiples then use the buffer clone input
25
23
  errorMsgExt.classList.remove('d-block');
26
24
  errorMsgSize.classList.remove('d-block');
@@ -41,10 +39,12 @@ function fileupload(fileupload, wrapper) {
41
39
  input.files = dt.files; // Assign the updates list
42
40
  const changeEvent = new Event('change');
43
41
  input.dispatchEvent(changeEvent);
42
+ const fileRemovedEvent = new CustomEvent('fileRemoved', { detail: { removedFile: button === null || button === void 0 ? void 0 : button.dataset.file } });
43
+ fileupload.dispatchEvent(fileRemovedEvent);
44
44
  }
45
45
  });
46
46
  // Buffer input change event
47
- cloneInput.addEventListener('change', (event) => {
47
+ cloneInput.addEventListener('change', () => {
48
48
  if (input.hasAttribute('multiple')) {
49
49
  const filesArray = [...input.files, ...cloneInput.files];
50
50
  const fileNames = [];
@@ -70,16 +70,16 @@ function fileupload(fileupload, wrapper) {
70
70
  const changeEvent = new Event('change');
71
71
  input.dispatchEvent(changeEvent);
72
72
  });
73
- cloneInput.addEventListener('dragenter', (event) => {
73
+ cloneInput.addEventListener('dragenter', () => {
74
74
  cloneInput.classList.add('focus');
75
75
  });
76
- cloneInput.addEventListener('dragleave', (event) => {
76
+ cloneInput.addEventListener('dragleave', () => {
77
77
  cloneInput.classList.remove('focus');
78
78
  });
79
- cloneInput.addEventListener('drop', (event) => {
79
+ cloneInput.addEventListener('drop', () => {
80
80
  cloneInput.classList.remove('focus');
81
81
  });
82
- input.addEventListener('change', (event) => {
82
+ input.addEventListener('change', () => {
83
83
  if (input.files.length == 1) {
84
84
  const file = input.files[0];
85
85
  const size = file.size / 1000;
@@ -1,22 +1,21 @@
1
- // @ts-nocheck
2
1
  function filterlist(list, input) {
3
2
  addFilterlistEventListeners(list, input);
4
3
  }
5
4
  function addFilterlistEventListeners(list, input) {
6
5
  let timer;
7
- input.addEventListener('keyup', (event) => {
6
+ input.addEventListener('keyup', () => {
8
7
  clearTimeout(timer);
9
8
  timer = setTimeout(function () {
10
9
  filterTheList(list, input.value);
11
10
  }, 500);
12
11
  });
13
- input.addEventListener('change', (event) => {
12
+ input.addEventListener('change', () => {
14
13
  clearTimeout(timer);
15
14
  filterTheList(list, input.value);
16
15
  });
17
16
  }
18
17
  export const filterTheList = function (list, searchTerm) {
19
- Array.from(list.querySelectorAll(':scope > li')).forEach((item, index) => {
18
+ Array.from(list.querySelectorAll(':scope > li')).forEach((item) => {
20
19
  const content = item.textContent.toLowerCase();
21
20
  item.classList.add('d-none');
22
21
  if (content.includes(searchTerm.toLowerCase()))
@@ -1,25 +1,24 @@
1
- // @ts-nocheck
2
1
  // Create a link between two input/selects with one acting as setting a minimum value and the second a maximum
3
2
  // The link between the two will prevent the max input field form setting a lower value than the min and vice versa
4
3
  function inputRange(inputWrapper) {
5
- inputWrapper.addEventListener('change', function (e) {
4
+ inputWrapper.addEventListener('change', function () {
6
5
  const min = parseInt(inputWrapper.querySelector('[data-min] select,[data-min] input').value);
7
6
  const max = parseInt(inputWrapper.querySelector('[data-max] select,[data-max] input').value);
8
7
  // Set attributes for input fields
9
- Array.from(inputWrapper.querySelectorAll('[data-min] input')).forEach((input, index) => {
8
+ Array.from(inputWrapper.querySelectorAll('[data-min] input')).forEach((input) => {
10
9
  input.setAttribute('max', max);
11
10
  });
12
- Array.from(inputWrapper.querySelectorAll('[data-max] input')).forEach((input, index) => {
11
+ Array.from(inputWrapper.querySelectorAll('[data-max] input')).forEach((input) => {
13
12
  input.setAttribute('min', min);
14
13
  });
15
14
  // Hide select options if they are higher or lower than the min and max values
16
- Array.from(inputWrapper.querySelectorAll('[data-min] select option')).forEach((option, index) => {
15
+ Array.from(inputWrapper.querySelectorAll('[data-min] select option')).forEach((option) => {
17
16
  if (parseInt(option.getAttribute('value')) > max)
18
17
  option.classList.add('d-none');
19
18
  else
20
19
  option.classList.remove('d-none');
21
20
  });
22
- Array.from(inputWrapper.querySelectorAll('[data-max] select option')).forEach((option, index) => {
21
+ Array.from(inputWrapper.querySelectorAll('[data-max] select option')).forEach((option) => {
23
22
  if (parseInt(option.getAttribute('value')) < min)
24
23
  option.classList.add('d-none');
25
24
  else
@@ -28,7 +27,7 @@ function inputRange(inputWrapper) {
28
27
  }, false);
29
28
  }
30
29
  function inputRedirect(inputWrapper) {
31
- inputWrapper.addEventListener('change', function (e) {
30
+ inputWrapper.addEventListener('change', function () {
32
31
  if (inputWrapper.matches('[data-value-if]')) {
33
32
  const url = inputWrapper.getAttribute('data-redirect');
34
33
  const desiredValue = inputWrapper.getAttribute('data-value-if');
@@ -72,13 +71,13 @@ function multipleFileUploads(wrapper) {
72
71
  // Acts as an overall initialise function to trigger other functions.
73
72
  function form(formElement) {
74
73
  // Check for input range groups
75
- Array.from(formElement.querySelectorAll('[data-input-range]')).forEach((arrayElement, index) => {
74
+ Array.from(formElement.querySelectorAll('[data-input-range]')).forEach((arrayElement) => {
76
75
  inputRange(arrayElement);
77
76
  });
78
- Array.from(formElement.querySelectorAll('[data-redirect]')).forEach((arrayElement, index) => {
77
+ Array.from(formElement.querySelectorAll('[data-redirect]')).forEach((arrayElement) => {
79
78
  inputRedirect(arrayElement);
80
79
  });
81
- Array.from(formElement.querySelectorAll('.multiple-file-uploads')).forEach((arrayElement, index) => {
80
+ Array.from(formElement.querySelectorAll('.multiple-file-uploads')).forEach((arrayElement) => {
82
81
  multipleFileUploads(arrayElement);
83
82
  });
84
83
  // Check the file size of a file when uploaded in case it exceeds the max file size set
@@ -95,9 +94,9 @@ function form(formElement) {
95
94
  }
96
95
  }, false);
97
96
  // When a form is updated we may want to update some of the existing input fields; setting active fields when some data is selected.
98
- formElement.addEventListener('change', function (e) {
97
+ formElement.addEventListener('change', function () {
99
98
  // Remove disabled attribute when a pre-selected input field equals a certain value
100
- Array.from(formElement.querySelectorAll('select[data-activeif][data-equals],input[data-activeif][data-equals]')).forEach((arrayElement, index) => {
99
+ Array.from(formElement.querySelectorAll('select[data-activeif][data-equals],input[data-activeif][data-equals]')).forEach((arrayElement) => {
101
100
  const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
102
101
  const selector = arrayElement.dataset.activeif;
103
102
  const value = arrayElement.dataset.equals;
@@ -111,7 +110,7 @@ function form(formElement) {
111
110
  }
112
111
  });
113
112
  // Show this input wrapper when a pre-selected input field equals a certain value
114
- Array.from(formElement.querySelectorAll('.form-control__wrapper[data-displayif][data-equals]')).forEach((arrayElement, index) => {
113
+ Array.from(formElement.querySelectorAll('.form-control__wrapper[data-displayif][data-equals]')).forEach((arrayElement) => {
115
114
  const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
116
115
  const selector = arrayElement.dataset.activeif;
117
116
  const value = arrayElement.dataset.equals;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  /**
3
2
  * Global helper functions to help maintain and enhance framework elements.
4
3
  * @module Helpers
@@ -12,7 +11,6 @@ export const addBodyClasses = (body) => {
12
11
  if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
13
12
  body.classList.add('ie');
14
13
  }
15
- return null;
16
14
  };
17
15
  /**
18
16
  * Add global events.
@@ -53,7 +51,7 @@ export const addGlobalEvents = (body) => {
53
51
  if (event && event.target instanceof HTMLElement && event.target.matches('form')) {
54
52
  const form = event.target;
55
53
  // Reset password types
56
- Array.from(form.querySelectorAll('[data-password-type]')).forEach((input, index) => {
54
+ Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {
57
55
  input.setAttribute('type', 'password');
58
56
  });
59
57
  if (form.querySelector(':invalid') ||
@@ -76,11 +74,10 @@ export const addGlobalEvents = (body) => {
76
74
  }
77
75
  }
78
76
  });
79
- Array.from(document.querySelectorAll('label progress')).forEach((progress, index) => {
77
+ Array.from(document.querySelectorAll('label progress')).forEach((progress) => {
80
78
  const label = progress.closest('label');
81
79
  label.setAttribute('data-percent', progress.getAttribute('value'));
82
80
  });
83
- return null;
84
81
  };
85
82
  export const isNumeric = function (str) {
86
83
  if (typeof str != 'string')
@@ -120,6 +117,7 @@ export const numberOfDays = function (startDateString, endDateString) {
120
117
  };
121
118
  // Used to get values from nested json objects
122
119
  export const resolvePath = (object, path, defaultValue) => path
120
+ // eslint-disable-next-line no-useless-escape
123
121
  .split(/[\.\[\]\'\"]/)
124
122
  .filter((p) => p)
125
123
  .reduce((o, p) => (o ? o[p] : defaultValue), object);
@@ -1,13 +1,12 @@
1
- // @ts-nocheck
2
1
  import hibpCheck from '../vendor/hibp.js';
3
2
  const extendInputs = (body) => {
4
3
  function loadInput() {
5
4
  // maxlength counter init
6
- Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input, index) => {
5
+ Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {
7
6
  const wrapper = input.parentElement;
8
7
  setMaxlengthVars(input, wrapper);
9
8
  });
10
- Array.from(document.querySelectorAll('label input')).forEach((input, index) => {
9
+ Array.from(document.querySelectorAll('label input')).forEach((input) => {
11
10
  if (!input.closest('label').querySelector('.optional-text') && !input.hasAttribute('required')) {
12
11
  if (input.parentNode.tagName.toLowerCase() == 'span')
13
12
  input.parentElement.insertAdjacentHTML('beforebegin', `<span class="optional-text"></span>`);
@@ -24,7 +23,7 @@ const extendInputs = (body) => {
24
23
  const day = String(date.getDate()).padStart(2, '0');
25
24
  return `${year}-${month}-${day}`;
26
25
  }
27
- Array.from(document.querySelectorAll('input[type="date"]')).forEach((input, index) => {
26
+ Array.from(document.querySelectorAll('input[type="date"]')).forEach((input) => {
28
27
  const startDate = today;
29
28
  if (input.hasAttribute('data-start')) {
30
29
  startDate.setDate(startDate.getDate() + parseInt(input.getAttribute('data-start')));
@@ -38,7 +37,7 @@ const extendInputs = (body) => {
38
37
  }
39
38
  if (input.hasAttribute('data-allowed-days')) {
40
39
  const allowedDays = JSON.parse(`[${input.getAttribute('data-allowed-days')}]`);
41
- input.addEventListener('input', function (e) {
40
+ input.addEventListener('input', function () {
42
41
  const day = new Date(this.value).getUTCDay();
43
42
  if (allowedDays.includes(day))
44
43
  input.setCustomValidity('');
@@ -60,7 +59,6 @@ const extendInputs = (body) => {
60
59
  body.addEventListener('input', (event) => {
61
60
  if (event && event.target instanceof HTMLElement && event.target.closest('input,textarea,select')) {
62
61
  const input = event.target.closest('input,textarea,select');
63
- const wrapper = input.parentElement;
64
62
  // Output the color hex
65
63
  if (input.hasAttribute('type') && input.getAttribute('type') == 'color')
66
64
  input.nextElementSibling.value = input.value;
@@ -81,11 +79,10 @@ const extendInputs = (body) => {
81
79
  }
82
80
  if (event && event.target instanceof HTMLElement && event.target.closest('dialog [type="radio"]')) {
83
81
  const dialog = event.target.closest('dialog');
84
- const radio = event.target.closest('dialog [type="radio"]');
85
- Array.from(dialog.querySelectorAll('[type="radio"][autofocus]')).forEach((input, index) => {
82
+ Array.from(dialog.querySelectorAll('[type="radio"][autofocus]')).forEach((input) => {
86
83
  input.removeAttribute('autofocus');
87
84
  });
88
- Array.from(dialog.querySelectorAll('[type="radio"]:checked')).forEach((input, index) => {
85
+ Array.from(dialog.querySelectorAll('[type="radio"]:checked')).forEach((input) => {
89
86
  input.setAttribute('autofocus', true);
90
87
  });
91
88
  }
@@ -1,11 +1,10 @@
1
- // @ts-nocheck
2
1
  const navbar = (element) => {
3
- Array.from(element.querySelectorAll('details')).forEach((detail, index) => {
4
- detail.addEventListener('mouseenter', function (e) {
2
+ Array.from(element.querySelectorAll('details')).forEach((detail) => {
3
+ detail.addEventListener('mouseenter', function () {
5
4
  if (window.matchMedia('(min-width: 62em)').matches)
6
5
  detail.setAttribute('open', 'true');
7
6
  }, false);
8
- detail.addEventListener('mouseleave', function (e) {
7
+ detail.addEventListener('mouseleave', function () {
9
8
  if (window.matchMedia('(min-width: 62em)').matches)
10
9
  detail.removeAttribute('open');
11
10
  }, false);
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  function setupNotification(element) {
3
2
  // Add toast to notification holder
4
3
  if (element.hasAttribute('data-type') && element.getAttribute('data-type') == 'toast') {
@@ -28,10 +27,10 @@ function setupNotification(element) {
28
27
  const timer = new Timer(function () {
29
28
  closeNotification(element);
30
29
  }, timeOut);
31
- element.addEventListener('mouseenter', (event) => {
30
+ element.addEventListener('mouseenter', () => {
32
31
  timer.pause();
33
32
  });
34
- element.addEventListener('mouseleave', (event) => {
33
+ element.addEventListener('mouseleave', () => {
35
34
  timer.resume();
36
35
  });
37
36
  }
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  function orderlist(list) {
3
2
  const randID = 'list_' + Math.random().toString(36).substr(2, 9);
4
3
  const listItems = list.querySelectorAll('li');