@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
@@ -0,0 +1,222 @@
1
+ class iamMenu extends HTMLElement {
2
+ constructor() {
3
+ super();
4
+ this.attachShadow({ mode: 'open' });
5
+
6
+ const assetLocation = document.body.hasAttribute('data-assets-location')
7
+ ? document.body.getAttribute('data-assets-location')
8
+ : '/assets';
9
+ const loadCSS = `@import "${assetLocation}/css/components/menu.component.css";`;
10
+
11
+ const template = document.createElement('template');
12
+
13
+ template.innerHTML = `
14
+ <style>
15
+ ${loadCSS}
16
+ </style>
17
+ <div class="menu--inner" part="inner">
18
+ <slot></slot>
19
+ </div>`;
20
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
21
+ }
22
+
23
+ connectedCallback(): void {
24
+ const menuID = this.hasAttribute('id') ? this.getAttribute('id') : false;
25
+ const menuButton = document.querySelector(`[popovertarget="${menuID}"]`);
26
+
27
+ const menuInner = this.shadowRoot.querySelector('.menu--inner');
28
+ const topLevelmenuItems = this.querySelectorAll(':scope > a, :scope > button, :scope > details > summary');
29
+ const menuItems = this.querySelectorAll('a, button');
30
+ const subMenus = this.querySelectorAll('details');
31
+
32
+ let subNextIndex;
33
+ let subPrevIndex;
34
+
35
+ // Set the needed CSS styles to connect the ID attribute to the anchor name
36
+ if (menuID && menuButton) {
37
+ menuInner?.setAttribute('role', 'menu');
38
+ this.style['position-anchor'] = `--${menuID}`;
39
+
40
+ menuButton?.setAttribute('aria-haspopup', 'true');
41
+ menuButton?.style['anchor-name'] = `--${menuID}`;
42
+ menuButton?.setAttribute('aria-controls', menuID);
43
+
44
+ subMenus.forEach((item, index) => {
45
+ item.setAttribute('role', 'menu');
46
+ });
47
+
48
+ menuItems.forEach((item, index) => {
49
+ item.setAttribute('role', 'menuitem');
50
+ item.setAttribute('tabindex', '0');
51
+
52
+ if (index == 0) {
53
+ item.setAttribute('autofocus', true);
54
+ }
55
+ });
56
+
57
+ this.addEventListener('keydown', (event) => {
58
+ if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary')) {
59
+ const activeItem = document.activeElement;
60
+ const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;
61
+ const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;
62
+
63
+ switch (
64
+ event.keyCode // change to event.key to key to use the above variable
65
+ ) {
66
+ case 27: // Esc
67
+ if (activeItem.closest('details')) {
68
+ event.stopPropagation();
69
+ event.preventDefault();
70
+ activeItem.closest('details').removeAttribute('open');
71
+ activeItem.closest('details').querySelector(':scope summary').focus();
72
+ } else {
73
+ event.stopPropagation();
74
+ menuButton.focus();
75
+ }
76
+
77
+ break;
78
+ case 32: // Space
79
+ case 13: // Enter
80
+ if (activeItem.matches('summary') && !activeItem.parentElement.matches('details[open]')) {
81
+ activeItem.parentElement.setAttribute('open', true);
82
+ const subMenuItems = activeItem
83
+ .closest('details')
84
+ .querySelectorAll('a, button, :scope details > summary');
85
+ Array.from(subMenuItems)[0].focus();
86
+ }
87
+
88
+ break;
89
+ case 35: // end
90
+ event.stopPropagation();
91
+ event.preventDefault();
92
+
93
+ this.querySelector('details[open]').removeAttribute('open');
94
+ Array.from(menuItems)[menuItems.length - 1].focus();
95
+
96
+ break;
97
+ case 36: // home
98
+ event.stopPropagation();
99
+ event.preventDefault();
100
+
101
+ this.querySelector('details[open]').removeAttribute('open');
102
+ Array.from(menuItems)[0].focus();
103
+
104
+ break;
105
+ case 38: // up
106
+ event.stopPropagation();
107
+ event.preventDefault();
108
+
109
+ if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {
110
+ if (Array.from(topLevelmenuItems)[prevIndex] != undefined)
111
+ Array.from(topLevelmenuItems)[prevIndex].focus();
112
+ else Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();
113
+ } else if (activeItem.closest('details')) {
114
+ const subMenuItems = activeItem
115
+ .closest('details')
116
+ .querySelectorAll('a, button, :scope details > summary');
117
+ subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;
118
+
119
+ if (Array.from(subMenuItems)[subPrevIndex] != undefined) Array.from(subMenuItems)[subPrevIndex].focus();
120
+ else Array.from(subMenuItems)[subMenuItems.length - 1].focus();
121
+ }
122
+
123
+ break;
124
+ case 40: // down
125
+ event.stopPropagation();
126
+ event.preventDefault();
127
+
128
+ if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {
129
+ if (Array.from(topLevelmenuItems)[nextIndex] != undefined)
130
+ Array.from(topLevelmenuItems)[nextIndex].focus();
131
+ else Array.from(topLevelmenuItems)[0].focus();
132
+ } else if (activeItem.closest('details')) {
133
+ const subMenuItems = activeItem
134
+ .closest('details')
135
+ .querySelectorAll('a, button, :scope details > summary');
136
+ subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;
137
+
138
+ if (Array.from(subMenuItems)[subNextIndex] != undefined) Array.from(subMenuItems)[subNextIndex].focus();
139
+ else Array.from(subMenuItems)[0].focus();
140
+ }
141
+
142
+ break;
143
+ }
144
+ }
145
+ });
146
+ }
147
+
148
+ // insert extra CSS to help style inline details and summary items to allow collapsible sub menus
149
+ if (this.querySelector('details') && !document.getElementById('menuGlobalStyles'))
150
+ document.head.insertAdjacentHTML(
151
+ 'beforeend',
152
+ `<style id="menuGlobalStyles">
153
+ iam-menu details > * {
154
+ background: unset !important;
155
+ border: unset !important;
156
+ color: inherit!important;
157
+ font-weight: inherit!important;
158
+ font-family: inherit!important;
159
+ font-size: 1rem!important;
160
+ display: block!important;
161
+ margin: var(--menu-item-margin, 0 0 0.25rem 0)!important;
162
+ padding: var(--menu-item-padding, 0)!important;
163
+ width: var(--menu-item-width, 100%)!important;
164
+ text-align: var(--menu-item-text-align, left)!important;
165
+ cursor: var(--menu-item-cursor, pointer)!important;
166
+ }
167
+ iam-menu details > *:after,
168
+ iam-menu details > *:not(summary):before {
169
+ display: none!important;
170
+ }
171
+ iam-menu details :is(button,a) {
172
+ padding-inline-start: var(--menu-dialog-offset,1rem)!important;
173
+ }
174
+ iam-menu details :is(button,a):last-child {
175
+ margin-block-end: var(--menu-dialog-offset,1rem)!important;
176
+ }
177
+ iam-menu details summary {
178
+ padding: 0 !important;
179
+ margin: var(--menu-item-margin, 0 0 0.25rem 0)!important;
180
+ }
181
+ iam-menu details summary:before {
182
+ text-align: center;
183
+ display: inline-block!important;
184
+ vertical-align: bottom;
185
+ float: right;
186
+ color: inherit;
187
+ height: 1em;
188
+ width: 1em;
189
+ }
190
+
191
+ iam-menu details summary[class*="fa-"]:before {
192
+ font-family: var(--fa-font-family, "Font Awesome 6 Pro");
193
+ }
194
+
195
+ iam-menu details summary:not([class*="fa-"]:before {
196
+ --icon-arrow: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3e%3cpath d='M6.5,2l9,9-9,9' style='fill:none;stroke:%23000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px'/%3e%3c/svg%3e");
197
+
198
+ content: ""!important;
199
+ height: 1.2rem;
200
+ width: 1.2rem;
201
+ background: var(--colour-primary-theme);
202
+ mask-image: var(--icon, var(--icon-arrow));
203
+ mask-size: 50%;
204
+ mask-repeat: no-repeat;
205
+ mask-position: 50% 50%;
206
+ -webkit-mask-image: var(--icon, var(--icon-arrow));
207
+ -webkit-mask-size: 50%;
208
+ -webkit-mask-repeat: no-repeat;
209
+ -webkit-mask-position: 50% 50%;
210
+ z-index: 2;
211
+ display: inline-block;
212
+ vertical-align: bottom;
213
+ float: right;
214
+ rotate: 90deg;
215
+ color: inherit;
216
+ }
217
+ </style>`
218
+ );
219
+ }
220
+ }
221
+
222
+ export default iamMenu;
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  import { trackComponent, trackComponentRegistered } from '../_global';
3
2
 
4
3
  trackComponentRegistered('iam-multi-step');
@@ -26,7 +25,8 @@ class iamMultiStep extends HTMLElement {
26
25
  this.shadowRoot.appendChild(template.content.cloneNode(true));
27
26
  }
28
27
 
29
- connectedCallback() {
28
+ connectedCallback(): void {
29
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
30
30
  const MultiStepComponent = this;
31
31
  const steps = this.shadowRoot.querySelector('.steps');
32
32
  const form = this.querySelector('form');
@@ -70,13 +70,13 @@ class iamMultiStep extends HTMLElement {
70
70
  const fieldsetID = fieldset.getAttribute('data-title');
71
71
 
72
72
  if (fieldset.querySelector('.is-invalid')) {
73
- Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element, index) => {
73
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element) => {
74
74
  element.classList.add('active');
75
75
  });
76
76
 
77
77
  break;
78
78
  } else {
79
- Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element, index) => {
79
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element) => {
80
80
  element.classList.add('valid');
81
81
  });
82
82
  }
@@ -86,14 +86,14 @@ class iamMultiStep extends HTMLElement {
86
86
  MultiStepComponent.addEventListener(
87
87
  'invalid',
88
88
  (function () {
89
- return function (e) {
89
+ return function (e): any {
90
90
  e.preventDefault();
91
91
  };
92
92
  })(),
93
93
  true
94
94
  );
95
95
 
96
- function validateFieldset(button) {
96
+ function validateFieldset(button): void {
97
97
  const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)
98
98
  ? MultiStepComponent.querySelector(`fieldset.active`)
99
99
  : MultiStepComponent.querySelector(`fieldset[data-title]`);
@@ -102,32 +102,28 @@ class iamMultiStep extends HTMLElement {
102
102
 
103
103
  currentFieldset.classList.add('was-validated');
104
104
 
105
- Array.from(currentFieldset.querySelectorAll('input')).forEach((input, index) => {
105
+ Array.from(currentFieldset.querySelectorAll('input')).forEach((input) => {
106
106
  if (!input.checkValidity()) isFieldsetValid = false;
107
107
  });
108
108
 
109
109
  // If valid mode to next field set
110
110
  if (!isFieldsetValid) {
111
- Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach(
112
- (element, index) => {
113
- element.classList.remove('valid');
114
- }
115
- );
111
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
112
+ element.classList.remove('valid');
113
+ });
116
114
 
117
115
  Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach(
118
- (element, index) => {
116
+ (element) => {
119
117
  element.classList.remove('valid');
120
118
  }
121
119
  );
122
120
  } else {
123
- Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach(
124
- (element, index) => {
125
- element.classList.add('valid');
126
- }
127
- );
121
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element) => {
122
+ element.classList.add('valid');
123
+ });
128
124
 
129
125
  Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach(
130
- (element, index) => {
126
+ (element) => {
131
127
  element.classList.add('valid');
132
128
  }
133
129
  );
@@ -142,10 +138,10 @@ class iamMultiStep extends HTMLElement {
142
138
  `.steps button[data-title="${button.getAttribute('data-title')}"]`
143
139
  );
144
140
 
145
- Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button, index) => {
141
+ Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button) => {
146
142
  button.classList.remove('active');
147
143
  });
148
- Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button, index) => {
144
+ Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button) => {
149
145
  button.classList.remove('active');
150
146
  });
151
147
 
@@ -202,11 +198,11 @@ class iamMultiStep extends HTMLElement {
202
198
  trackComponent(MultiStepComponent, 'iam-multi-step', []);
203
199
  }
204
200
 
205
- static get observedAttributes() {
201
+ static get observedAttributes(): any {
206
202
  return ['data-image'];
207
203
  }
208
204
 
209
- attributeChangedCallback(attrName, oldVal, newVal) {
205
+ attributeChangedCallback(attrName, oldVal, newVal): void {
210
206
  switch (attrName) {
211
207
  case 'data-total': {
212
208
  if (this.shadowRoot.querySelector('.card__total'))
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  // Data layer Web component created
4
2
  window.dataLayer = window.dataLayer || [];
5
3
  window.dataLayer.push({
@@ -45,7 +43,8 @@ class iamMultiselect extends HTMLElement {
45
43
  this.shadowRoot.appendChild(template.content.cloneNode(true));
46
44
  }
47
45
 
48
- connectedCallback() {
46
+ connectedCallback(): void {
47
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
49
48
  const multiselect = this;
50
49
  const form = this.closest('form');
51
50
  const wrapper = this.shadowRoot.querySelector('.wrapper');
@@ -91,7 +90,7 @@ class iamMultiselect extends HTMLElement {
91
90
  }
92
91
 
93
92
  // Set the correct attributes
94
- function setItem(inputToSet) {
93
+ function setItem(inputToSet): void {
95
94
  if (inputToSet.checked == false) {
96
95
  inputToSet.closest('label').removeAttribute('slot');
97
96
  inputToSet.closest('label').removeAttribute('style');
@@ -121,13 +120,13 @@ class iamMultiselect extends HTMLElement {
121
120
  }
122
121
 
123
122
  // Set on load
124
- Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]:checked`)).forEach((checkbox, index) => {
123
+ Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]:checked`)).forEach((checkbox) => {
125
124
  setItem(checkbox);
126
125
  });
127
126
 
128
127
  // Filter list
129
- search.addEventListener('input', (event) => {
130
- Array.from(multiselect.querySelectorAll(`label:not([slot="checked"])`)).forEach((label, index) => {
128
+ search.addEventListener('input', () => {
129
+ Array.from(multiselect.querySelectorAll(`label:not([slot="checked"])`)).forEach((label) => {
131
130
  const checkbox = label.querySelector('input');
132
131
  const searchValue = checkbox.value;
133
132
  const labelText = label.textContent;
@@ -145,12 +144,12 @@ class iamMultiselect extends HTMLElement {
145
144
 
146
145
  // Add a delayed hover effect for non hover devices
147
146
  let hoverTimeout;
148
- multiselect.addEventListener('focus', (event) => {
147
+ multiselect.addEventListener('focus', () => {
149
148
  multiselect.classList.add('hover');
150
149
  clearTimeout(hoverTimeout);
151
150
  });
152
151
 
153
- search.addEventListener('blur', (event) => {
152
+ search.addEventListener('blur', () => {
154
153
  clearTimeout(hoverTimeout);
155
154
  hoverTimeout = setTimeout(function () {
156
155
  multiselect.classList.remove('hover');
@@ -174,8 +173,8 @@ class iamMultiselect extends HTMLElement {
174
173
  });
175
174
 
176
175
  // Clear all
177
- button.addEventListener('click', function (event) {
178
- Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]`)).forEach((checkbox, index) => {
176
+ button.addEventListener('click', function () {
177
+ Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]`)).forEach((checkbox) => {
179
178
  checkbox.checked = false;
180
179
 
181
180
  setItem(checkbox);
@@ -239,7 +238,7 @@ class iamMultiselect extends HTMLElement {
239
238
  }
240
239
  });
241
240
 
242
- function checkLastTag() {
241
+ function checkLastTag(): Element | null {
243
242
  if (order == 0) return false;
244
243
 
245
244
  let lastTag = multiselect.querySelector(`label[data-order="${order}"]`);
@@ -281,11 +280,11 @@ class iamMultiselect extends HTMLElement {
281
280
  });
282
281
 
283
282
  // Fix for the inline edit multiselect
284
- multiselect.addEventListener('mousedown', (event) => {
283
+ multiselect.addEventListener('mousedown', () => {
285
284
  wrapper.setAttribute('data-mousedown', 'true');
286
285
  });
287
286
 
288
- multiselect.addEventListener('mouseup', (event) => {
287
+ multiselect.addEventListener('mouseup', () => {
289
288
  wrapper.removeAttribute('data-mousedown');
290
289
  });
291
290
  }
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  // Data layer Web component created
4
2
  window.dataLayer = window.dataLayer || [];
5
3
  window.dataLayer.push({
@@ -18,7 +16,7 @@ class iamNav extends HTMLElement {
18
16
  const coreCSS = document.body.hasAttribute('data-core-css')
19
17
  ? document.body.getAttribute('data-core-css')
20
18
  : `${assetLocation}/css/core.min.css`;
21
- const loadCSS = `@import "${assetLocation}/css/components/nav.css";`;
19
+ const loadCSS = `@import "${assetLocation}/css/components/nav.component.css";`;
22
20
  const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
23
21
 
24
22
  const template = document.createElement('template');
@@ -63,7 +61,7 @@ class iamNav extends HTMLElement {
63
61
  document.head.insertAdjacentHTML('beforeend', `<style id="navGlobal">${loadExtraCSS}</style>`);
64
62
  }
65
63
 
66
- connectedCallback() {
64
+ connectedCallback(): void {
67
65
  // Load external CSS if needed
68
66
  if (this.hasAttribute('data-css'))
69
67
  this.shadowRoot
@@ -72,6 +70,7 @@ class iamNav extends HTMLElement {
72
70
 
73
71
  const menuButton = this.shadowRoot.querySelector('.btn-menu');
74
72
  const menu = this.shadowRoot.querySelector('.menu');
73
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
75
74
  const iamNav = this;
76
75
  const backdrop = this.shadowRoot.querySelector('.backdrop');
77
76
  const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');
@@ -225,14 +224,14 @@ class iamNav extends HTMLElement {
225
224
  );
226
225
 
227
226
  // Allow outside JS to close the menu
228
- this.addEventListener('request-close', (event) => {
227
+ this.addEventListener('request-close', () => {
229
228
  menuButton.removeAttribute('aria-expanded');
230
229
  menu.classList.remove('open');
231
230
  iamNav.classList.remove('open');
232
231
  });
233
232
 
234
233
  // Close the menu on the click of the backdrop on desktop
235
- backdrop.addEventListener('click', (event) => {
234
+ backdrop.addEventListener('click', () => {
236
235
  const openMenu = this.querySelector('details[open] summary');
237
236
 
238
237
  if (openMenu) openMenu.click();
@@ -275,7 +274,7 @@ class iamNav extends HTMLElement {
275
274
  });
276
275
 
277
276
  // Close any other dropdowns on the same level
278
- Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement, index) => {
277
+ Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {
279
278
  if (detailsArrayElement != details) detailsArrayElement.removeAttribute('open');
280
279
  });
281
280
 
@@ -334,14 +333,14 @@ class iamNav extends HTMLElement {
334
333
  searchButton.setAttribute('aria-expanded', true);
335
334
  }
336
335
 
337
- searchButton.addEventListener('click', (event) => {
336
+ searchButton.addEventListener('click', () => {
338
337
  searchDialog.setAttribute('open', 'open');
339
338
  this.classList.add('search-open');
340
339
 
341
340
  searchButton.setAttribute('aria-expanded', true);
342
341
  });
343
342
 
344
- searchClose.addEventListener('click', (event) => {
343
+ searchClose.addEventListener('click', () => {
345
344
  searchDialog.removeAttribute('open');
346
345
  this.classList.remove('search-open');
347
346
 
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  import setupNotification, { closeNotification } from '../../modules/notification';
3
2
 
4
3
  // Data layer Web component created
@@ -43,6 +42,7 @@ class iamNotification extends HTMLElement {
43
42
  }
44
43
 
45
44
  connectedCallback(): void {
45
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
46
46
  const wrapper = this;
47
47
  const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white';
48
48
 
@@ -69,7 +69,7 @@ class iamNotification extends HTMLElement {
69
69
 
70
70
  const buttons = this.querySelectorAll('a,button');
71
71
 
72
- Array.from(buttons).forEach((button, index) => {
72
+ Array.from(buttons).forEach((button) => {
73
73
  button.setAttribute('slot', 'btns');
74
74
  button.classList.add('link');
75
75
  });
@@ -90,7 +90,7 @@ class iamNotification extends HTMLElement {
90
90
 
91
91
  this.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener(
92
92
  'click',
93
- function (e) {
93
+ function () {
94
94
  closeNotification(wrapper);
95
95
  },
96
96
  false
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  class iamPagination extends HTMLElement {
3
2
  constructor() {
4
3
  super();
@@ -53,7 +52,7 @@ class iamPagination extends HTMLElement {
53
52
  this.shadowRoot.appendChild(template.content.cloneNode(true));
54
53
  }
55
54
 
56
- connectedCallback() {
55
+ connectedCallback(): void {
57
56
  // Set default attributes
58
57
  const params = new URLSearchParams(window.location.search);
59
58
 
@@ -82,12 +81,12 @@ class iamPagination extends HTMLElement {
82
81
  });
83
82
 
84
83
  // Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event
85
- next.addEventListener('click', (event) => {
84
+ next.addEventListener('click', () => {
86
85
  select.value = parseInt(select.value) + 1;
87
86
  select.dispatchEvent(new Event('change'));
88
87
  });
89
88
 
90
- prev.addEventListener('click', (event) => {
89
+ prev.addEventListener('click', () => {
91
90
  select.value = parseInt(select.value) - 1;
92
91
  select.dispatchEvent(new Event('change'));
93
92
  });
@@ -97,7 +96,7 @@ class iamPagination extends HTMLElement {
97
96
  this.setAttribute('data-increment', event.target.value);
98
97
  });
99
98
 
100
- loadMore.addEventListener('click', (event) => {
99
+ loadMore.addEventListener('click', () => {
101
100
  const newValue = parseInt(this.getAttribute('data-show')) + parseInt(this.getAttribute('data-increment'));
102
101
  this.setAttribute('data-show', newValue);
103
102
 
@@ -107,7 +106,7 @@ class iamPagination extends HTMLElement {
107
106
  });
108
107
  }
109
108
 
110
- setup() {
109
+ setup(): void {
111
110
  // Elements
112
111
  const wrapper = this.shadowRoot.querySelector('.pagination');
113
112
  const select = this.shadowRoot.querySelector('.page-jump select');
@@ -160,11 +159,11 @@ class iamPagination extends HTMLElement {
160
159
  perPage.value = increment;
161
160
  }
162
161
 
163
- static get observedAttributes() {
162
+ static get observedAttributes(): any {
164
163
  return ['data-total', 'data-increment', 'data-page', 'data-show'];
165
164
  }
166
165
 
167
- attributeChangedCallback(attrName, oldVal, newVal) {
166
+ attributeChangedCallback(attrName, oldVal, newVal): void {
168
167
  switch (attrName) {
169
168
  case 'data-total': {
170
169
  if (oldVal != newVal) {
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  import { trackComponent, trackComponentRegistered } from '../_global';
3
2
  import { cardHTML, setupCard } from '../../modules/card.module';
4
3
 
@@ -27,27 +26,26 @@ class iamRecordCard extends HTMLElement {
27
26
  this.shadowRoot.appendChild(template.content.cloneNode(true));
28
27
  }
29
28
 
30
- async connectedCallback() {
31
- const cardComponent = this;
32
- const cardHead = cardComponent.shadowRoot.querySelector('.card__head');
33
- setupCard(cardComponent);
29
+ async connectedCallback(): void {
30
+ const cardHead = this.shadowRoot.querySelector('.card__head');
31
+ setupCard(this);
34
32
 
35
- Array.from(cardComponent.querySelectorAll(':scope > *:not([slot])')).forEach((element, index) => {
33
+ Array.from(this.querySelectorAll(':scope > *:not([slot])')).forEach((element) => {
36
34
  element.setAttribute('slot', 'details');
37
35
  });
38
36
 
39
- if (cardComponent.hasAttribute('data-avatar')) {
40
- cardHead.innerHTML += `<img src="${cardComponent.getAttribute('data-avatar')}" alt="" loading="lazy" class="card__avatar" part="avatar" />`;
37
+ if (this.hasAttribute('data-avatar')) {
38
+ cardHead.innerHTML += `<img src="${this.getAttribute('data-avatar')}" alt="" loading="lazy" class="card__avatar" part="avatar" />`;
41
39
  }
42
40
 
43
- trackComponent(cardComponent, 'iam-record-card', []);
41
+ trackComponent(this, 'iam-record-card', []);
44
42
  }
45
43
 
46
- static get observedAttributes() {
44
+ static get observedAttributes(): any {
47
45
  return ['data-image'];
48
46
  }
49
47
 
50
- attributeChangedCallback(attrName, oldVal, newVal) {
48
+ attributeChangedCallback(attrName, oldVal, newVal): void {
51
49
  switch (attrName) {
52
50
  case 'data-image': {
53
51
  if (oldVal != newVal) {