@iamproperty/components 7.4.0 → 7.5.1--beta1

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 (349) hide show
  1. package/README.md +1 -1
  2. package/assets/css/components/actionbar.component.css +1 -1
  3. package/assets/css/components/actionbar.component.css.map +1 -1
  4. package/assets/css/components/actionbar.global.css +1 -1
  5. package/assets/css/components/actionbar.global.css.map +1 -1
  6. package/assets/css/components/address-lookup.component.css +1 -0
  7. package/assets/css/components/address-lookup.component.css.map +1 -0
  8. package/assets/css/components/applied-filters.css +1 -1
  9. package/assets/css/components/applied-filters.css.map +1 -1
  10. package/assets/css/components/barchart.component.css +1 -1
  11. package/assets/css/components/barchart.component.css.map +1 -1
  12. package/assets/css/components/calendar.component.css +1 -1
  13. package/assets/css/components/calendar.component.css.map +1 -1
  14. package/assets/css/components/calendar.config.css.map +1 -1
  15. package/assets/css/components/card.component.css +1 -1
  16. package/assets/css/components/card.component.css.map +1 -1
  17. package/assets/css/components/carousel.component.css +1 -1
  18. package/assets/css/components/carousel.component.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/collapsible-side.css +1 -1
  22. package/assets/css/components/collapsible-side.css.map +1 -1
  23. package/assets/css/components/content.component.css +1 -1
  24. package/assets/css/components/content.component.css.map +1 -1
  25. package/assets/css/components/darkmode.component.css +1 -0
  26. package/assets/css/components/darkmode.component.css.map +1 -0
  27. package/assets/css/components/doughnutchart.component.css +1 -1
  28. package/assets/css/components/doughnutchart.component.css.map +1 -1
  29. package/assets/css/components/fileupload.css +1 -1
  30. package/assets/css/components/fileupload.css.map +1 -1
  31. package/assets/css/components/header.css +1 -1
  32. package/assets/css/components/header.css.map +1 -1
  33. package/assets/css/components/inline-edit.css +1 -1
  34. package/assets/css/components/inline-edit.css.map +1 -1
  35. package/assets/css/components/inline-edit.preload.css +1 -1
  36. package/assets/css/components/inline-edit.preload.css.map +1 -1
  37. package/assets/css/components/{menu.css → menu.global.css} +1 -1
  38. package/assets/css/components/menu.global.css.map +1 -0
  39. package/assets/css/components/milestone.css +1 -1
  40. package/assets/css/components/milestone.css.map +1 -1
  41. package/assets/css/components/multi-step.component.css +1 -1
  42. package/assets/css/components/multi-step.component.css.map +1 -1
  43. package/assets/css/components/multiselect.css +1 -1
  44. package/assets/css/components/multiselect.css.map +1 -1
  45. package/assets/css/components/multiselect.preload.css +1 -1
  46. package/assets/css/components/multiselect.preload.css.map +1 -1
  47. package/assets/css/components/nav.component.css +1 -1
  48. package/assets/css/components/nav.component.css.map +1 -1
  49. package/assets/css/components/nav.global.css +1 -1
  50. package/assets/css/components/nav.global.css.map +1 -1
  51. package/assets/css/components/notification.css +1 -1
  52. package/assets/css/components/notification.css.map +1 -1
  53. package/assets/css/components/pagination.css +1 -1
  54. package/assets/css/components/pagination.css.map +1 -1
  55. package/assets/css/components/property-searchbar.css +1 -1
  56. package/assets/css/components/property-searchbar.css.map +1 -1
  57. package/assets/css/components/rank.component.css +1 -1
  58. package/assets/css/components/rank.component.css.map +1 -1
  59. package/assets/css/components/rankings.component.css +1 -1
  60. package/assets/css/components/rankings.component.css.map +1 -1
  61. package/assets/css/components/rankings.global.css +1 -1
  62. package/assets/css/components/rankings.global.css.map +1 -1
  63. package/assets/css/components/slider.css +1 -1
  64. package/assets/css/components/slider.css.map +1 -1
  65. package/assets/css/components/split-button.component.css +1 -1
  66. package/assets/css/components/split-button.component.css.map +1 -1
  67. package/assets/css/components/table-basic.global.css +1 -1
  68. package/assets/css/components/table-basic.global.css.map +1 -1
  69. package/assets/css/components/table.global.css +1 -1
  70. package/assets/css/components/table.global.css.map +1 -1
  71. package/assets/css/components/tabs.component.css +1 -1
  72. package/assets/css/components/tabs.component.css.map +1 -1
  73. package/assets/css/components/tabs.config.css +1 -1
  74. package/assets/css/components/tabs.config.css.map +1 -1
  75. package/assets/css/components/word-count.component.css +1 -0
  76. package/assets/css/components/word-count.component.css.map +1 -0
  77. package/assets/css/core.min.css +1 -1
  78. package/assets/css/core.min.css.map +1 -1
  79. package/assets/css/mobile-core.min.css +1 -1
  80. package/assets/css/mobile-core.min.css.map +1 -1
  81. package/assets/css/mobile.min.css +1 -1
  82. package/assets/css/mobile.min.css.map +1 -1
  83. package/assets/css/style.min.css +1 -1
  84. package/assets/css/style.min.css.map +1 -1
  85. package/assets/js/components/accordion/accordion.component.js +39 -25
  86. package/assets/js/components/accordion/accordion.component.min.js +14 -15
  87. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  88. package/assets/js/components/actionbar/actionbar.component.js +16 -9
  89. package/assets/js/components/actionbar/actionbar.component.min.js +13 -5
  90. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  91. package/assets/js/components/address-lookup/address-lookup.component.js +6 -11
  92. package/assets/js/components/address-lookup/address-lookup.component.min.js +10 -12
  93. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  94. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  95. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  96. package/assets/js/components/applied-filters/applied-filters.component.js +2 -5
  97. package/assets/js/components/applied-filters/applied-filters.component.min.js +7 -7
  98. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  99. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  100. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  101. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  102. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  103. package/assets/js/components/calendar/calendar.component.js +153 -136
  104. package/assets/js/components/calendar/calendar.component.min.js +3 -3
  105. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  106. package/assets/js/components/card/card.component.js +3 -9
  107. package/assets/js/components/card/card.component.min.js +13 -7
  108. package/assets/js/components/card/card.component.min.js.map +1 -1
  109. package/assets/js/components/carousel/carousel.component.js +17 -19
  110. package/assets/js/components/carousel/carousel.component.min.js +17 -19
  111. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  112. package/assets/js/components/collapsible-side/collapsible-side.component.js +0 -5
  113. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -6
  114. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  115. package/assets/js/components/content/content.component.min.js +2 -2
  116. package/assets/js/components/content/content.component.min.js.map +1 -1
  117. package/assets/js/components/darkmode/darkmode.component.js +70 -0
  118. package/assets/js/components/darkmode/darkmode.component.min.js +10 -0
  119. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -0
  120. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  121. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  122. package/assets/js/components/fileupload/fileupload.component.js +1 -5
  123. package/assets/js/components/fileupload/fileupload.component.min.js +5 -6
  124. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  125. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  126. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  127. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  128. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  129. package/assets/js/components/header/header.component.js +0 -5
  130. package/assets/js/components/header/header.component.min.js +4 -6
  131. package/assets/js/components/header/header.component.min.js.map +1 -1
  132. package/assets/js/components/inline-edit/inline-edit.component.js +61 -60
  133. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  134. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  135. package/assets/js/components/marketing/marketing.component.js +0 -4
  136. package/assets/js/components/marketing/marketing.component.min.js +3 -4
  137. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  138. package/assets/js/components/menu/menu.component.js +2 -2
  139. package/assets/js/components/menu/menu.component.min.js +4 -5
  140. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  141. package/assets/js/components/milestone/milestone.component.js +12 -14
  142. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  143. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  144. package/assets/js/components/milestone-group/milestone-group.component.js +10 -12
  145. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  146. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  147. package/assets/js/components/multi-step/multi-step.component.min.js +3 -3
  148. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  149. package/assets/js/components/multiselect/multiselect.component.js +90 -13
  150. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  151. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  152. package/assets/js/components/nav/nav.component.js +4 -7
  153. package/assets/js/components/nav/nav.component.min.js +8 -7
  154. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  155. package/assets/js/components/notification/notification.component.js +2 -7
  156. package/assets/js/components/notification/notification.component.min.js +6 -6
  157. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  158. package/assets/js/components/pagination/pagination.component.js +3 -8
  159. package/assets/js/components/pagination/pagination.component.min.js +7 -8
  160. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  161. package/assets/js/components/password-indicator/password-indicator.component.js +19 -0
  162. package/assets/js/components/password-indicator/password-indicator.component.min.js +7 -0
  163. package/assets/js/components/password-indicator/password-indicator.component.min.js.map +1 -0
  164. package/assets/js/components/rank/rank.component.js +2 -2
  165. package/assets/js/components/rank/rank.component.min.js +4 -5
  166. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  167. package/assets/js/components/rankings/rankings.component.js +3 -0
  168. package/assets/js/components/rankings/rankings.component.min.js +364 -5
  169. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  170. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  171. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  172. package/assets/js/components/search/search.component.js +0 -4
  173. package/assets/js/components/search/search.component.min.js +5 -6
  174. package/assets/js/components/search/search.component.min.js.map +1 -1
  175. package/assets/js/components/slider/slider.component.js +0 -4
  176. package/assets/js/components/slider/slider.component.min.js +4 -5
  177. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  178. package/assets/js/components/split-button/split-button.component.js +1 -3
  179. package/assets/js/components/split-button/split-button.component.min.js +8 -11
  180. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  181. package/assets/js/components/table/table.component.min.js +4 -4
  182. package/assets/js/components/table/table.component.min.js.map +1 -1
  183. package/assets/js/components/table-ajax/table-ajax.component.js +11 -9
  184. package/assets/js/components/table-ajax/table-ajax.component.min.js +4 -4
  185. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  186. package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
  187. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  188. package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -30
  189. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +4 -4
  190. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  191. package/assets/js/components/table-submit/table-submit.component.min.js +4 -4
  192. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  193. package/assets/js/components/tabs/tabs.component.js +1 -4
  194. package/assets/js/components/tabs/tabs.component.min.js +5 -5
  195. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  196. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  197. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  198. package/assets/js/components/word-count/word-count.component.js +81 -0
  199. package/assets/js/components/word-count/word-count.component.min.js +12 -0
  200. package/assets/js/components/word-count/word-count.component.min.js.map +1 -0
  201. package/assets/js/components.js +1 -0
  202. package/assets/js/modules/advanced-select.js +1 -1
  203. package/assets/js/modules/dynamicEvents.js +3 -3
  204. package/assets/js/modules/inputs.js +0 -26
  205. package/assets/js/modules/milestone.js +2 -2
  206. package/assets/js/modules/password-indicator.js +21 -0
  207. package/assets/js/modules/table.js +28 -2
  208. package/assets/js/scripts.bundle.js +3 -3
  209. package/assets/js/scripts.bundle.js.map +1 -1
  210. package/assets/js/scripts.bundle.min.js +2 -2
  211. package/assets/js/scripts.bundle.min.js.map +1 -1
  212. package/assets/js/scripts.js +3 -1
  213. package/assets/sass/_components.scss +6 -5
  214. package/assets/sass/_elements.scss +5 -0
  215. package/assets/sass/_example.scss +1 -1
  216. package/assets/sass/_functions/utility-mixins.scss +21 -1
  217. package/assets/sass/_functions/variables.scss +14 -0
  218. package/assets/sass/components/actionbar.component.scss +38 -1
  219. package/assets/sass/components/actionbar.global.scss +1 -1
  220. package/assets/sass/components/{address-lookup.scss → address-lookup.component.scss} +10 -0
  221. package/assets/sass/components/applied-filters.scss +1 -0
  222. package/assets/sass/components/calendar.component.scss +163 -271
  223. package/assets/sass/components/calendar.config.scss +69 -122
  224. package/assets/sass/components/collapsible-side.scss +2 -0
  225. package/assets/sass/components/darkmode.component.scss +22 -0
  226. package/assets/sass/components/fileupload.scss +18 -0
  227. package/assets/sass/components/header.scss +9 -0
  228. package/assets/sass/components/inline-edit.preload.scss +68 -2
  229. package/assets/sass/components/inline-edit.scss +7 -0
  230. package/assets/sass/components/milestone.scss +69 -60
  231. package/assets/sass/components/multi-step.component.scss +1 -1
  232. package/assets/sass/components/multiselect.preload.scss +11 -1
  233. package/assets/sass/components/multiselect.scss +62 -5
  234. package/assets/sass/components/nav.component.scss +31 -6
  235. package/assets/sass/components/nav.global.scss +8 -12
  236. package/assets/sass/components/notification.scss +38 -17
  237. package/assets/sass/components/pagination.scss +6 -0
  238. package/assets/sass/components/slider.scss +1 -0
  239. package/assets/sass/components/split-button.component.scss +3 -1
  240. package/assets/sass/components/table-basic.global.scss +33 -33
  241. package/assets/sass/components/table.global.scss +9 -4
  242. package/assets/sass/components/tabs.component.scss +4 -0
  243. package/assets/sass/components/tabs.config.scss +231 -4
  244. package/assets/sass/components/word-count.component.scss +26 -0
  245. package/assets/sass/elements/admin-panel.scss +38 -10
  246. package/assets/sass/elements/buttons--compact.scss +1 -1
  247. package/assets/sass/elements/buttons--global.scss +3 -3
  248. package/assets/sass/elements/details.scss +33 -6
  249. package/assets/sass/elements/forms.scss +23 -31
  250. package/assets/sass/elements/hr.scss +50 -0
  251. package/assets/sass/elements/icons.scss +5 -0
  252. package/assets/sass/elements/links.scss +2 -2
  253. package/assets/sass/elements/lists.scss +1 -1
  254. package/assets/sass/elements/modal.scss +1 -5
  255. package/assets/sass/elements/toggle-button.scss +1 -0
  256. package/assets/sass/elements/type.scss +6 -9
  257. package/assets/sass/foundations/colours.scss +0 -0
  258. package/assets/sass/foundations/reboot.scss +14 -18
  259. package/assets/sass/foundations/root.scss +43 -51
  260. package/assets/sass/templates/form.scss +5 -0
  261. package/assets/ts/components/accordion/accordion.component.ts +46 -33
  262. package/assets/ts/components/actionbar/actionbar.component.ts +29 -10
  263. package/assets/ts/components/address-lookup/address-lookup.component.ts +7 -11
  264. package/assets/ts/components/applied-filters/applied-filters.component.ts +2 -5
  265. package/assets/ts/components/calendar/calendar.component.ts +368 -498
  266. package/assets/ts/components/card/card.component.ts +2 -9
  267. package/assets/ts/components/carousel/carousel.component.ts +17 -19
  268. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +1 -5
  269. package/assets/ts/components/darkmode/darkmode.component.ts +85 -0
  270. package/assets/ts/components/fileupload/fileupload.component.ts +2 -5
  271. package/assets/ts/components/header/header.component.ts +1 -5
  272. package/assets/ts/components/inline-edit/inline-edit.component.ts +74 -75
  273. package/assets/ts/components/marketing/marketing.component.ts +0 -4
  274. package/assets/ts/components/menu/menu.component.ts +2 -2
  275. package/assets/ts/components/milestone/milestone.component.ts +43 -45
  276. package/assets/ts/components/milestone-group/milestone-group.component.ts +39 -41
  277. package/assets/ts/components/multiselect/multiselect.component.ts +103 -27
  278. package/assets/ts/components/nav/nav.component.ts +10 -19
  279. package/assets/ts/components/notification/notification.component.ts +3 -9
  280. package/assets/ts/components/pagination/pagination.component.ts +6 -8
  281. package/assets/ts/components/password-indicator/password-indicator.component.ts +24 -0
  282. package/assets/ts/components/rank/rank.component.ts +2 -2
  283. package/assets/ts/components/rankings/rankings.component.ts +4 -0
  284. package/assets/ts/components/search/search.component.ts +0 -4
  285. package/assets/ts/components/slider/slider.component.ts +1 -4
  286. package/assets/ts/components/split-button/split-button.component.ts +1 -3
  287. package/assets/ts/components/table-ajax/table-ajax.component.ts +5 -5
  288. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +10 -21
  289. package/assets/ts/components/tabs/tabs.component.ts +2 -4
  290. package/assets/ts/components/word-count/word-count.component.ts +91 -0
  291. package/assets/ts/components.ts +1 -0
  292. package/assets/ts/modules/advanced-select.ts +11 -16
  293. package/assets/ts/modules/data-layer.md +0 -5
  294. package/assets/ts/modules/dynamicEvents.ts +6 -7
  295. package/assets/ts/modules/inputs.ts +0 -31
  296. package/assets/ts/modules/milestone-group.ts +39 -42
  297. package/assets/ts/modules/milestone.ts +119 -122
  298. package/assets/ts/modules/password-indicator.ts +29 -0
  299. package/assets/ts/modules/table.ts +41 -3
  300. package/assets/ts/scripts.ts +4 -1
  301. package/dist/components.es.js +1691 -41
  302. package/dist/components.umd.js +1398 -231
  303. package/package.json +6 -6
  304. package/src/components/Accordion/Accordion.vue +14 -23
  305. package/src/components/Accordion/AccordionItem.vue +27 -43
  306. package/src/components/Actionbar/Actionbar.vue +17 -19
  307. package/src/components/AddressLookup/AddressLookup.vue +17 -18
  308. package/src/components/AdvancedSelect/AdvancedSelect.vue +17 -18
  309. package/src/components/AppliedFilters/AppliedFilters.vue +16 -18
  310. package/src/components/Banner/Banner.vue +18 -21
  311. package/src/components/BarChart/BarChart.vue +17 -18
  312. package/src/components/Calendar/Calendar.vue +14 -20
  313. package/src/components/Card/Card.vue +17 -17
  314. package/src/components/Carousel/Carousel.vue +17 -20
  315. package/src/components/Content/Content.vue +17 -18
  316. package/src/components/DarkMode/DarkMode.vue +19 -0
  317. package/src/components/DoughnutChart/DoughnutChart.vue +17 -18
  318. package/src/components/FileUpload/FileUpload.vue +22 -28
  319. package/src/components/FilterCard/FilterCard.vue +17 -18
  320. package/src/components/Filterlist/Filterlist.vue +17 -0
  321. package/src/components/Header/Header.vue +28 -29
  322. package/src/components/InlineEdit/InlineEdit.vue +11 -19
  323. package/src/components/Menu/Menu.vue +17 -17
  324. package/src/components/Milestones/Milestone.vue +22 -27
  325. package/src/components/Milestones/MilestoneGroup.vue +24 -27
  326. package/src/components/Multiselect/Multiselect.vue +17 -18
  327. package/src/components/Nav/Nav.vue +17 -19
  328. package/src/components/Notification/Notification.vue +17 -15
  329. package/src/components/Pagination/Pagination.vue +16 -16
  330. package/src/components/PasswordIndicator/PasswordIndicator.vue +23 -0
  331. package/src/components/Rank/Rank.vue +17 -18
  332. package/src/components/Rankings/Rankings.vue +17 -27
  333. package/src/components/RecordCard/RecordCard.vue +17 -18
  334. package/src/components/Search/Search.vue +17 -17
  335. package/src/components/Slider/Slider.vue +17 -17
  336. package/src/components/SplitButton/SplitButton.vue +17 -20
  337. package/src/components/Tabs/Tabs.vue +17 -17
  338. package/src/components/VideoCard/VideoCard.vue +17 -18
  339. package/src/components/WordCount/WordCount.vue +22 -0
  340. package/src/index.js +43 -44
  341. package/assets/css/components/address-lookup.css +0 -1
  342. package/assets/css/components/address-lookup.css.map +0 -1
  343. package/assets/css/components/menu.css.map +0 -1
  344. package/assets/css/components/tabs.css +0 -1
  345. package/assets/css/components/tabs.css.map +0 -1
  346. package/assets/sass/components/tabs.scss +0 -254
  347. package/assets/ts/components/accordion/README.md +0 -31
  348. package/assets/ts/components/fileupload/README.md +0 -28
  349. /package/assets/sass/components/{menu.scss → menu.global.scss} +0 -0
@@ -0,0 +1,91 @@
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+
3
+ trackComponentRegistered('iam-word-count');
4
+
5
+ class iamCard extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.attachShadow({ mode: 'open' });
9
+
10
+ const assetLocation = document.body.hasAttribute('data-assets-location')
11
+ ? document.body.getAttribute('data-assets-location')
12
+ : '/assets';
13
+ const loadCSS = `@import "${assetLocation}/css/components/word-count.component.css";`;
14
+
15
+ const template = document.createElement('template');
16
+ template.innerHTML = `
17
+ <style>
18
+
19
+ ${loadCSS}
20
+ </style>
21
+ <slot></slot>
22
+ `;
23
+
24
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
25
+ }
26
+
27
+ connectedCallback(): void {
28
+ const input = this.querySelector('input,textarea,select');
29
+ let span = this.querySelector('[data-count]');
30
+
31
+ if (!span) {
32
+ span = document.createElement('span');
33
+ this.append(span);
34
+ }
35
+
36
+ console.log(input.value.split(' ').length);
37
+
38
+ if (this.hasAttribute('data-character')) span.setAttribute('data-count', input.value ? input.value.length : '0');
39
+ else span.setAttribute('data-count', input.value ? input.value.split(' ').length : '0');
40
+
41
+ const maxlength = this.getAttribute('data-max');
42
+ this.style.setProperty('--maxlength', maxlength);
43
+ span.setAttribute('data-max', this.getAttribute('data-max'));
44
+
45
+ input.addEventListener('input', (event) => {
46
+ if (this.hasAttribute('data-max') && span && this.hasAttribute('data-character')) {
47
+ input?.setAttribute('maxlength', this.getAttribute('data-max'));
48
+ span.setAttribute('data-count', input?.value.length);
49
+ } else if (this.hasAttribute('data-max') && span) {
50
+ if (input?.value.split(' ').length >= this.getAttribute('data-max')) {
51
+ event?.preventDefault();
52
+ input?.setAttribute('maxlength', input?.value.length);
53
+ } else {
54
+ input?.removeAttribute('maxlength');
55
+ }
56
+
57
+ span.setAttribute('data-count', input?.value.split(' ').length);
58
+ span.setAttribute('data-max', this.getAttribute('data-max'));
59
+ }
60
+ });
61
+
62
+ /*
63
+
64
+ // maxlength counter init
65
+ Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {
66
+ const wrapper = input.parentElement;
67
+ setMaxlengthVars(input, wrapper);
68
+ });
69
+
70
+
71
+
72
+ const wrapper = input.parentElement;
73
+ const maxlength = input.getAttribute('maxlength');
74
+
75
+ wrapper.style.setProperty('--maxlength', maxlength);
76
+
77
+ let span = input.nextElementSibling;
78
+
79
+ if (!span || (span && span.classList.contains('invalid-feedback'))) {
80
+ span = document.createElement('span');
81
+ wrapper.insertBefore(span, input.nextSibling);
82
+ }
83
+ v
84
+ span.setAttribute('data-count', input.value.length);
85
+
86
+
87
+ */
88
+ }
89
+ }
90
+
91
+ export default iamCard;
@@ -26,6 +26,7 @@ const components = [
26
26
  'marketing',
27
27
  'barchart',
28
28
  'splitbutton',
29
+ 'word-count',
29
30
  ];
30
31
 
31
32
  const prefix = 'iam';
@@ -1,7 +1,7 @@
1
1
  function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false): boolean | void {
2
2
  let currentFocus = -1;
3
3
 
4
- if(!isSearch){
4
+ if (!isSearch) {
5
5
  displayInputField.addEventListener('focus', function () {
6
6
  displayInputField.setAttribute('placeholder', displayInputField.value);
7
7
  displayInputField.setAttribute('data-value', displayInputField.value);
@@ -12,10 +12,8 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
12
12
 
13
13
  datalist.style.display = 'block';
14
14
  });
15
- }
16
- else {
15
+ } else {
17
16
  displayInputField.addEventListener('focus', function () {
18
-
19
17
  displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));
20
18
  displayInputField.setAttribute('list', '');
21
19
 
@@ -37,29 +35,24 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
37
35
  if (option.innerHTML == '') option.innerHTML = option.value;
38
36
  }
39
37
 
40
-
41
38
  advancedSelect.addEventListener('click', function () {
42
-
43
39
  if (event && event.target instanceof HTMLElement && event.target.closest('datalist option')) {
44
40
  const option = event.target.closest('datalist option');
45
-
41
+
46
42
  displayInputField.value = option.value;
47
43
 
48
- if(typeof window.triggerDynamicEvent == "function")
49
- window.triggerDynamicEvent(displayInputField);
44
+ if (typeof window.triggerDynamicEvent == 'function') window.triggerDynamicEvent(displayInputField);
50
45
 
51
46
  datalist.style.display = 'none';
52
47
 
53
48
  for (const optionInner of datalist.options) {
54
- optionInner.classList.remove('active')
49
+ optionInner.classList.remove('active');
55
50
  }
56
51
 
57
52
  option.classList.add('active');
58
53
  }
59
-
60
54
  });
61
55
 
62
-
63
56
  displayInputField.addEventListener('input', function () {
64
57
  displayInputField.removeAttribute('data-value');
65
58
  currentFocus = -1;
@@ -103,20 +96,22 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
103
96
  }
104
97
  }
105
98
 
106
-
107
99
  // Add the empty button
108
100
  displayInputField
109
101
  .closest('label')
110
- .insertAdjacentHTML('beforeend', '<button class="empty btn btn-action"><i class="fa-light fa-times me-0"></i></button>');
102
+ .insertAdjacentHTML(
103
+ 'beforeend',
104
+ '<button class="empty btn btn-action"><i class="fa-light fa-times me-0"></i></button>'
105
+ );
111
106
  const closeBtn = advancedSelect.querySelector('.empty');
112
107
 
113
108
  closeBtn.addEventListener('click', function (e) {
114
109
  displayInputField.removeAttribute('placeholder');
115
110
  displayInputField.removeAttribute('data-value');
116
111
  displayInputField.value = '';
117
-
112
+
118
113
  for (const optionInner of datalist.options) {
119
- optionInner.classList.remove('active')
114
+ optionInner.classList.remove('active');
120
115
  optionInner.removeAttribute('style');
121
116
  }
122
117
  });
@@ -13,28 +13,24 @@ The `createDataLayer()` function should be called in the JavaScript code of the
13
13
  ## Events Tracked
14
14
 
15
15
  1. **"Pageview" Event**
16
-
17
16
  - Description: This event is automatically pushed to the `window.dataLayer` array during the function's execution, representing the initial pageview with the current document title.
18
17
  - Event Data:
19
18
  - `event`: "Pageview"
20
19
  - `pageTitle`: The title of the current document.
21
20
 
22
21
  2. **"closeDetails" Event**
23
-
24
22
  - Description: This event is triggered when a click occurs on an element with the attribute `[open] summary`, indicating that a summary element with the `[open]` attribute is being closed.
25
23
  - Event Data:
26
24
  - `event`: "closeDetails"
27
25
  - `detailsTitle`: The text content of the `summary` element associated with the clicked element. If the `summary` element doesn't have any text content, an empty string is used.
28
26
 
29
27
  3. **"openDetails" Event**
30
-
31
28
  - Description: This event is triggered when a click occurs on a `summary` element (not associated with `[open]` attribute), indicating that a summary element is being opened.
32
29
  - Event Data:
33
30
  - `event`: "openDetails"
34
31
  - `detailsTitle`: The text content of the clicked `summary` element. If the `summary` element doesn't have any text content, an empty string is used.
35
32
 
36
33
  4. **"linkClicked" Event**
37
-
38
34
  - Description: This event is triggered when a click occurs on an `a` (anchor) element.
39
35
  - Event Data:
40
36
  - `event`: "linkClicked"
@@ -43,7 +39,6 @@ The `createDataLayer()` function should be called in the JavaScript code of the
43
39
  - `href`: The value of the `href` attribute of the `a` element. If the `a` element doesn't have an `href` attribute, an empty string is used.
44
40
 
45
41
  5. **"buttonClicked" Event**
46
-
47
42
  - Description: This event is triggered when a click occurs on a `button` element.
48
43
  - Event Data:
49
44
  - `event`: "buttonClicked"
@@ -1,13 +1,13 @@
1
1
  // Create the event listeners
2
- window.triggerDynamicEvent = (element, event = "change"): void => {
2
+ window.triggerDynamicEvent = (element, event = 'change'): void => {
3
3
  console.log('event');
4
4
 
5
- if(element.hasAttribute('data-change-events') && event == "change")
5
+ if (element.hasAttribute('data-change-events') && event == 'change')
6
6
  splitEvents(element, element.getAttribute('data-change-events'));
7
-
8
- if(element.hasAttribute('data-click-events') && event == "click")
7
+
8
+ if (element.hasAttribute('data-click-events') && event == 'click')
9
9
  splitEvents(element, element.getAttribute('data-click-events'));
10
- }
10
+ };
11
11
 
12
12
  const createDynamicEvents = (): void => {
13
13
  // Change event
@@ -56,8 +56,7 @@ const checkConditions = (element, event): void | boolean => {
56
56
 
57
57
  if (document.querySelector(`${event['in-list']} option[value="${element.value}"]`)) {
58
58
  runEvent(match, event, 'if');
59
- }
60
- else runEvent(match, event, 'else');
59
+ } else runEvent(match, event, 'else');
61
60
 
62
61
  return false;
63
62
  } else if ('event' in event) {
@@ -2,19 +2,7 @@ import hibpCheck from '../vendor/hibp.js';
2
2
 
3
3
  const extendInputs = (body): void => {
4
4
  function loadInput(): void {
5
- // maxlength counter init
6
- Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input) => {
7
- const wrapper = input.parentElement;
8
- setMaxlengthVars(input, wrapper);
9
- });
10
5
 
11
- Array.from(document.querySelectorAll('label input')).forEach((input) => {
12
- if (!input.closest('label').querySelector('.optional-text') && !input.hasAttribute('required')) {
13
- if (input.parentNode.tagName.toLowerCase() == 'span')
14
- input.parentElement.insertAdjacentHTML('beforebegin', `<span class="optional-text"></span>`);
15
- else input.insertAdjacentHTML('beforebegin', `<span class="optional-text"></span>`);
16
- }
17
- });
18
6
 
19
7
  // Date restrictions
20
8
  if (document.querySelector('input[type="date"]')) {
@@ -76,9 +64,6 @@ const extendInputs = (body): void => {
76
64
  if (input.hasAttribute('type') && input.getAttribute('type') == 'color')
77
65
  input.nextElementSibling.value = input.value;
78
66
 
79
- if (input.hasAttribute('maxlength') && input.nextElementSibling)
80
- input.nextElementSibling.setAttribute('data-count', input.value.length);
81
-
82
67
  if (input.hasAttribute('data-strength-checker')) checkPWDStrength(input);
83
68
  }
84
69
  });
@@ -129,22 +114,6 @@ const extendInputs = (body): void => {
129
114
  });
130
115
  };
131
116
 
132
- export const setMaxlengthVars = (input): void => {
133
- const wrapper = input.parentElement;
134
- const maxlength = input.getAttribute('maxlength');
135
-
136
- wrapper.style.setProperty('--maxlength', maxlength);
137
-
138
- let span = input.nextElementSibling;
139
-
140
- if (!span || (span && span.classList.contains('invalid-feedback'))) {
141
- span = document.createElement('span');
142
- wrapper.insertBefore(span, input.nextSibling);
143
- }
144
-
145
- span.setAttribute('data-count', input.value.length);
146
- };
147
-
148
117
  export const changeType = (input, type): void => {
149
118
  if (input.hasAttribute('type') && input.getAttribute('type') == 'password')
150
119
  input.setAttribute('data-password-type', true);
@@ -1,42 +1,39 @@
1
- export const showFuture = function (milestoneGroupElement: Element): void {
2
- const futureToggle = milestoneGroupElement.dataset.showAllToggle;
3
-
4
- if (!futureToggle) {
5
- return;
6
- }
7
-
8
- const toggleBtn = document.createElement('button');
9
- toggleBtn.innerHTML = 'Show next steps';
10
- toggleBtn.classList.add('btn', 'btn-tertiary', 'show-all-toggle');
11
-
12
- milestoneGroupElement.appendChild(toggleBtn)
13
-
14
- toggleBtn.addEventListener('click', () => {
15
- if(milestoneGroupElement.classList.contains('show-all')) {
16
- toggleBtn.innerHTML = 'Show next steps';
17
-
18
- milestoneGroupElement.classList.remove('show-all');
19
- toggleInteractionEvent('hide-future-items', milestoneGroupElement)
20
- } else {
21
- toggleBtn.innerHTML = 'Hide next steps';
22
-
23
- milestoneGroupElement.classList.add('show-all');
24
- toggleInteractionEvent('show-future-items', milestoneGroupElement)
25
- }
26
-
27
- });
28
-
29
- }
30
-
31
- const toggleInteractionEvent = function (eventName: string, element: Element): void {
32
- const customEvent = new CustomEvent(eventName, {});
33
-
34
- element.dispatchEvent(customEvent);
35
- }
36
-
37
-
38
- const milestoneGroup = function (milestoneGroupElement: Element): void {
39
- showFuture(milestoneGroupElement);
40
- };
41
-
42
- export default milestoneGroup;
1
+ export const showFuture = function (milestoneGroupElement: Element): void {
2
+ const futureToggle = milestoneGroupElement.dataset.showAllToggle;
3
+
4
+ if (!futureToggle) {
5
+ return;
6
+ }
7
+
8
+ const toggleBtn = document.createElement('button');
9
+ toggleBtn.innerHTML = 'Show next steps';
10
+ toggleBtn.classList.add('btn', 'btn-tertiary', 'show-all-toggle');
11
+
12
+ milestoneGroupElement.appendChild(toggleBtn);
13
+
14
+ toggleBtn.addEventListener('click', () => {
15
+ if (milestoneGroupElement.classList.contains('show-all')) {
16
+ toggleBtn.innerHTML = 'Show next steps';
17
+
18
+ milestoneGroupElement.classList.remove('show-all');
19
+ toggleInteractionEvent('hide-future-items', milestoneGroupElement);
20
+ } else {
21
+ toggleBtn.innerHTML = 'Hide next steps';
22
+
23
+ milestoneGroupElement.classList.add('show-all');
24
+ toggleInteractionEvent('show-future-items', milestoneGroupElement);
25
+ }
26
+ });
27
+ };
28
+
29
+ const toggleInteractionEvent = function (eventName: string, element: Element): void {
30
+ const customEvent = new CustomEvent(eventName, {});
31
+
32
+ element.dispatchEvent(customEvent);
33
+ };
34
+
35
+ const milestoneGroup = function (milestoneGroupElement: Element): void {
36
+ showFuture(milestoneGroupElement);
37
+ };
38
+
39
+ export default milestoneGroup;
@@ -1,122 +1,119 @@
1
- export const setStatus = function (milestoneElement: Element): void {
2
- const status = milestoneElement.dataset.status;
3
-
4
- if(!status) {
5
- return;
6
- }
7
-
8
- const milestoneWrap = milestoneElement.shadowRoot.querySelector('.milestone-wrap')
9
- const statusTag = document.createElement('span');
10
- statusTag.setAttribute('part', 'status');
11
- statusTag.classList.add('milestone-status');
12
- statusTag.innerHTML = `${status} Step`;
13
-
14
- if(status === 'Current') {
15
- milestoneElement.classList.add('current');
16
- }
17
-
18
- milestoneWrap.insertAdjacentElement('afterbegin', statusTag)
19
- }
20
-
21
- export const getMilestoneTasks = function (milestoneElement: Element): void {
22
- const taskWrap = milestoneElement.shadowRoot.querySelector('.task-wrap');
23
- const tasks = milestoneElement.dataset.items ? JSON.parse(milestoneElement.dataset.items) : [];
24
-
25
- if(!tasks.length) {
26
- return;
27
- }
28
-
29
- tasks.forEach(task => {
30
- const taskItem = document.createElement('details');
31
- const taskName = document.createElement('summary');
32
- const detailsWrap = document.createElement('div');
33
- const taskDescription = document.createElement('p');
34
-
35
- detailsWrap.classList.add('task-details');
36
-
37
- taskName.innerHTML = task.name;
38
-
39
- if (task.date_completed) {
40
- taskName.classList.add('complete');
41
- }
42
-
43
- taskItem.appendChild(taskName);
44
-
45
- if (task.description) {
46
- taskDescription.innerHTML = task.description;
47
- detailsWrap.appendChild(taskDescription)
48
- }
49
-
50
- if (task.actions.length) {
51
- detailsWrap.appendChild(getSubtasks(task.actions, taskName));
52
- }
53
-
54
- taskItem.appendChild(detailsWrap);
55
-
56
- taskWrap.insertAdjacentElement('beforeend', taskItem)
57
-
58
- // Fire tracking events
59
- taskItem.addEventListener('click', () => {
60
-
61
- if (taskItem?.hasAttribute('open')) {
62
- itemInteractionEvent('milestone-item-closed', task.name, milestoneElement)
63
- } else {
64
- itemInteractionEvent('milestone-item-opened', task.name, milestoneElement)
65
- }
66
- });
67
-
68
- });
69
-
70
- milestoneElement.appendChild(taskWrap)
71
- }
72
-
73
- const itemInteractionEvent = function (eventName: string, taskName: string, element: Element): void {
74
- const customEvent = new CustomEvent(eventName, {
75
- detail: {
76
- title: taskName,
77
- },
78
- });
79
-
80
- element.dispatchEvent(customEvent);
81
-
82
- }
83
-
84
- const getSubtasks = function (actions: Array, taskName: Element): void {
85
- const actionsWrap = document.createElement('ul');
86
- const totalCount = actions.length;
87
- const completed = actions.filter((action) => action.date_completed);
88
- const completedCount = completed.length || 0;
89
-
90
- if (totalCount < 1) {
91
- return;
92
- }
93
-
94
- taskName.innerHTML += ` (${completedCount}/${totalCount})`;
95
-
96
- actions.forEach(action => {
97
- const actionItem = document.createElement('li');
98
- const actionCompletedDate = document.createElement('span');
99
-
100
- if(action.date_completed) {
101
- actionItem.classList.add('complete')
102
-
103
- actionCompletedDate.classList.add('action-date');
104
- actionCompletedDate.innerHTML = action.date_completed;
105
- }
106
-
107
- actionItem.innerHTML = action.action;
108
-
109
- actionItem.appendChild(actionCompletedDate);
110
-
111
- actionsWrap.appendChild(actionItem);
112
- });
113
-
114
- return actionsWrap;
115
- }
116
-
117
- const milestone = function (milestoneElement: Element): void {
118
- setStatus(milestoneElement)
119
- getMilestoneTasks(milestoneElement);
120
- };
121
-
122
- export default milestone;
1
+ export const setStatus = function (milestoneElement: Element): void {
2
+ const status = milestoneElement.dataset.status;
3
+
4
+ if (!status) {
5
+ return;
6
+ }
7
+
8
+ const milestoneWrap = milestoneElement.shadowRoot.querySelector('.milestone-wrap');
9
+ const statusTag = document.createElement('span');
10
+ statusTag.setAttribute('part', 'status');
11
+ statusTag.classList.add('milestone-status');
12
+ statusTag.innerHTML = `${status} Step`;
13
+
14
+ if (status === 'Current') {
15
+ milestoneElement.classList.add('current');
16
+ }
17
+
18
+ milestoneWrap.insertAdjacentElement('afterbegin', statusTag);
19
+ };
20
+
21
+ export const getMilestoneTasks = function (milestoneElement: Element): void {
22
+ const taskWrap = milestoneElement.shadowRoot.querySelector('.task-wrap');
23
+ const tasks = milestoneElement.dataset.items ? JSON.parse(milestoneElement.dataset.items) : [];
24
+
25
+ if (!tasks.length) {
26
+ return;
27
+ }
28
+
29
+ tasks.forEach((task) => {
30
+ const taskItem = document.createElement('details');
31
+ const taskName = document.createElement('summary');
32
+ const detailsWrap = document.createElement('div');
33
+ const taskDescription = document.createElement('p');
34
+
35
+ detailsWrap.classList.add('task-details');
36
+
37
+ taskName.innerHTML = task.name;
38
+
39
+ if (task.date_completed) {
40
+ taskName.classList.add('complete');
41
+ }
42
+
43
+ taskItem.appendChild(taskName);
44
+
45
+ if (task.description) {
46
+ taskDescription.innerHTML = task.description;
47
+ detailsWrap.appendChild(taskDescription);
48
+ }
49
+
50
+ if (task.actions.length) {
51
+ detailsWrap.appendChild(getSubtasks(task.actions, taskName));
52
+ }
53
+
54
+ taskItem.appendChild(detailsWrap);
55
+
56
+ taskWrap.insertAdjacentElement('beforeend', taskItem);
57
+
58
+ // Fire tracking events
59
+ taskItem.addEventListener('click', () => {
60
+ if (taskItem?.hasAttribute('open')) {
61
+ itemInteractionEvent('milestone-item-closed', task.name, milestoneElement);
62
+ } else {
63
+ itemInteractionEvent('milestone-item-opened', task.name, milestoneElement);
64
+ }
65
+ });
66
+ });
67
+
68
+ milestoneElement.appendChild(taskWrap);
69
+ };
70
+
71
+ const itemInteractionEvent = function (eventName: string, taskName: string, element: Element): void {
72
+ const customEvent = new CustomEvent(eventName, {
73
+ detail: {
74
+ title: taskName,
75
+ },
76
+ });
77
+
78
+ element.dispatchEvent(customEvent);
79
+ };
80
+
81
+ const getSubtasks = function (actions: Array, taskName: Element): void {
82
+ const actionsWrap = document.createElement('ul');
83
+ const totalCount = actions.length;
84
+ const completed = actions.filter((action) => action.date_completed);
85
+ const completedCount = completed.length || 0;
86
+
87
+ if (totalCount < 1) {
88
+ return;
89
+ }
90
+
91
+ taskName.innerHTML += ` (${completedCount}/${totalCount})`;
92
+
93
+ actions.forEach((action) => {
94
+ const actionItem = document.createElement('li');
95
+ const actionCompletedDate = document.createElement('span');
96
+
97
+ if (action.date_completed) {
98
+ actionItem.classList.add('complete');
99
+
100
+ actionCompletedDate.classList.add('action-date');
101
+ actionCompletedDate.innerHTML = action.date_completed;
102
+ }
103
+
104
+ actionItem.innerHTML = action.action;
105
+
106
+ actionItem.appendChild(actionCompletedDate);
107
+
108
+ actionsWrap.appendChild(actionItem);
109
+ });
110
+
111
+ return actionsWrap;
112
+ };
113
+
114
+ const milestone = function (milestoneElement: Element): void {
115
+ setStatus(milestoneElement);
116
+ getMilestoneTasks(milestoneElement);
117
+ };
118
+
119
+ export default milestone;
@@ -0,0 +1,29 @@
1
+ export const changeType = function (element: Element): void {
2
+ const buttonEle = element.querySelector('button')
3
+ const associatedInput = element?.parentNode?.querySelector('input');
4
+
5
+ element.addEventListener('click', (event) => {
6
+ const currentType = associatedInput.type;
7
+
8
+ const newType = currentType === 'password' ? 'text' : 'password';
9
+ const isPasswordType = currentType === 'password';
10
+
11
+ associatedInput.setAttribute('type', newType);
12
+ associatedInput.setAttribute('data-password-type', isPasswordType);
13
+
14
+ if (element.hasAttribute('data-alt-class')) {
15
+ const newClass = element.getAttribute('data-alt-class');
16
+ element.setAttribute('data-alt-class', buttonEle.getAttribute('class'));
17
+ buttonEle.setAttribute('class', newClass);
18
+ }
19
+
20
+ });
21
+ }
22
+
23
+
24
+ const passwordIndicator = function (element: Element): void {
25
+ changeType(element)
26
+ };
27
+
28
+ export default passwordIndicator;
29
+