@iamproperty/components 7.7.1--beta6 → 7.7.1--beta8

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 (593) hide show
  1. package/README.md +4 -4
  2. package/assets/bootstrap/README.md +247 -247
  3. package/assets/bootstrap/js/index.esm.js +19 -19
  4. package/assets/bootstrap/js/index.umd.js +34 -34
  5. package/assets/bootstrap/js/src/alert.js +87 -87
  6. package/assets/bootstrap/js/src/base-component.js +85 -85
  7. package/assets/bootstrap/js/src/button.js +72 -72
  8. package/assets/bootstrap/js/src/carousel.js +475 -475
  9. package/assets/bootstrap/js/src/collapse.js +302 -302
  10. package/assets/bootstrap/js/src/dom/data.js +55 -55
  11. package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
  12. package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
  13. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
  14. package/assets/bootstrap/js/src/dropdown.js +445 -445
  15. package/assets/bootstrap/js/src/modal.js +373 -373
  16. package/assets/bootstrap/js/src/offcanvas.js +283 -283
  17. package/assets/bootstrap/js/src/popover.js +97 -97
  18. package/assets/bootstrap/js/src/scrollspy.js +290 -290
  19. package/assets/bootstrap/js/src/tab.js +307 -307
  20. package/assets/bootstrap/js/src/toast.js +220 -220
  21. package/assets/bootstrap/js/src/tooltip.js +651 -651
  22. package/assets/bootstrap/js/src/util/backdrop.js +149 -149
  23. package/assets/bootstrap/js/src/util/component-functions.js +34 -34
  24. package/assets/bootstrap/js/src/util/config.js +66 -66
  25. package/assets/bootstrap/js/src/util/focustrap.js +115 -115
  26. package/assets/bootstrap/js/src/util/index.js +336 -336
  27. package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
  28. package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
  29. package/assets/bootstrap/js/src/util/swipe.js +146 -146
  30. package/assets/bootstrap/js/src/util/template-factory.js +160 -160
  31. package/assets/bootstrap/package.json +180 -180
  32. package/assets/bootstrap/scss/_accordion.scss +146 -146
  33. package/assets/bootstrap/scss/_button-group.scss +142 -142
  34. package/assets/bootstrap/scss/_buttons.scss +186 -186
  35. package/assets/bootstrap/scss/_carousel.scss +229 -229
  36. package/assets/bootstrap/scss/_dropdown.scss +248 -248
  37. package/assets/bootstrap/scss/_functions.scss +302 -302
  38. package/assets/bootstrap/scss/_list-group.scss +191 -191
  39. package/assets/bootstrap/scss/_modal.scss +237 -237
  40. package/assets/bootstrap/scss/_nav.scss +172 -172
  41. package/assets/bootstrap/scss/_navbar.scss +276 -276
  42. package/assets/bootstrap/scss/_offcanvas.scss +143 -143
  43. package/assets/bootstrap/scss/_pagination.scss +109 -109
  44. package/assets/bootstrap/scss/_popover.scss +196 -196
  45. package/assets/bootstrap/scss/_toasts.scss +70 -70
  46. package/assets/bootstrap/scss/_variables-dark.scss +87 -87
  47. package/assets/bootstrap/scss/_variables.scss +1633 -1633
  48. package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
  49. package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
  50. package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
  51. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
  52. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
  53. package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
  54. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
  55. package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
  56. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
  57. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
  58. package/assets/css/components/{header.css → header.component.css} +1 -1
  59. package/assets/css/components/header.component.css.map +1 -0
  60. package/assets/css/components/header.preload.css +1 -0
  61. package/assets/css/components/header.preload.css.map +1 -0
  62. package/assets/css/components/nav.component.css +1 -1
  63. package/assets/css/components/nav.component.css.map +1 -1
  64. package/assets/css/components/notification.css +1 -1
  65. package/assets/css/components/notification.css.map +1 -1
  66. package/assets/css/components/table-basic.global.css +1 -1
  67. package/assets/css/components/table-basic.global.css.map +1 -1
  68. package/assets/css/components/table.global.css +1 -1
  69. package/assets/css/components/table.global.css.map +1 -1
  70. package/assets/css/core.min.css +1 -1
  71. package/assets/css/core.min.css.map +1 -1
  72. package/assets/css/style.min.css +1 -1
  73. package/assets/css/style.min.css.map +1 -1
  74. package/assets/favicons/README.md +20 -20
  75. package/assets/favicons/browserconfig.xml +9 -9
  76. package/assets/favicons/manifest.json +31 -31
  77. package/assets/favicons/safari-pinned-tab.svg +35 -35
  78. package/assets/favicons/site.webmanifest +20 -20
  79. package/assets/js/components/accordion/accordion.component.js +14 -14
  80. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  81. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  82. package/assets/js/components/actionbar/actionbar.component.js +66 -66
  83. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  84. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  85. package/assets/js/components/address-lookup/address-lookup.component.js +58 -58
  86. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  87. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  88. package/assets/js/components/advanced-select/advanced-select.component.js +18 -18
  89. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  90. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  91. package/assets/js/components/applied-filters/applied-filters.component.js +6 -6
  92. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  93. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  94. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  95. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  96. package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
  97. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  98. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  99. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  100. package/assets/js/components/card/card.component.min.js +1 -1
  101. package/assets/js/components/card/card.component.min.js.map +1 -1
  102. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  103. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
  104. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  105. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  106. package/assets/js/components/config/config.component.js +53 -53
  107. package/assets/js/components/config/config.component.min.js +1 -1
  108. package/assets/js/components/config/config.component.min.js.map +1 -1
  109. package/assets/js/components/content/content.component.js +9 -9
  110. package/assets/js/components/content/content.component.min.js +1 -1
  111. package/assets/js/components/content/content.component.min.js.map +1 -1
  112. package/assets/js/components/darkmode/darkmode.component.js +4 -4
  113. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  114. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  115. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  116. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  117. package/assets/js/components/fileupload/fileupload.component.js +16 -16
  118. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  119. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  120. package/assets/js/components/filter-card/filter-card.component.js +7 -7
  121. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  122. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  123. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  124. package/assets/js/components/form/form.component.js +4 -4
  125. package/assets/js/components/form/form.component.min.js +1 -1
  126. package/assets/js/components/form/form.component.min.js.map +1 -1
  127. package/assets/js/components/header/header.component.js +54 -54
  128. package/assets/js/components/header/header.component.min.js +2 -2
  129. package/assets/js/components/header/header.component.min.js.map +1 -1
  130. package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
  131. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  132. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  133. package/assets/js/components/input/input.component.js +10 -10
  134. package/assets/js/components/input/input.component.min.js +1 -1
  135. package/assets/js/components/input/input.component.min.js.map +1 -1
  136. package/assets/js/components/input-range/input-range.component.js +8 -8
  137. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  138. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  139. package/assets/js/components/marketing/marketing.component.js +10 -10
  140. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  141. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  142. package/assets/js/components/menu/menu.component.js +6 -6
  143. package/assets/js/components/menu/menu.component.min.js +1 -1
  144. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  145. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  146. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  147. package/assets/js/components/modal/modal.component.js +21 -21
  148. package/assets/js/components/modal/modal.component.min.js +1 -1
  149. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  150. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  151. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +11 -11
  152. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  153. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  154. package/assets/js/components/multiselect/multiselect.component.js +20 -20
  155. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  156. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  157. package/assets/js/components/nav/nav.component.js +45 -45
  158. package/assets/js/components/nav/nav.component.min.js +2 -2
  159. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  160. package/assets/js/components/notification/notification.component.js +14 -13
  161. package/assets/js/components/notification/notification.component.min.js +5 -4
  162. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  163. package/assets/js/components/pagination/pagination.component.js +39 -39
  164. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  165. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  166. package/assets/js/components/password/password.component.js +10 -10
  167. package/assets/js/components/password/password.component.min.js +1 -1
  168. package/assets/js/components/password/password.component.min.js.map +1 -1
  169. package/assets/js/components/popover/popover.component.js +7 -7
  170. package/assets/js/components/popover/popover.component.min.js +1 -1
  171. package/assets/js/components/popover/popover.component.min.js.map +1 -1
  172. package/assets/js/components/rank/rank.component.js +359 -359
  173. package/assets/js/components/rank/rank.component.min.js +1 -1
  174. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  175. package/assets/js/components/rankings/rankings.component.js +16 -16
  176. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  177. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  178. package/assets/js/components/rating/rating.component.js +9 -9
  179. package/assets/js/components/rating/rating.component.min.js +1 -1
  180. package/assets/js/components/rating/rating.component.min.js.map +1 -1
  181. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  182. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  183. package/assets/js/components/search/search.component.js +17 -17
  184. package/assets/js/components/search/search.component.min.js +1 -1
  185. package/assets/js/components/search/search.component.min.js.map +1 -1
  186. package/assets/js/components/slider/slider.component.js +12 -12
  187. package/assets/js/components/slider/slider.component.min.js +1 -1
  188. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  189. package/assets/js/components/split-button/split-button.component.js +18 -18
  190. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  191. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  192. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +113 -113
  193. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
  194. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  195. package/assets/js/components/table/table.component.js +15 -15
  196. package/assets/js/components/table/table.component.min.js +2 -2
  197. package/assets/js/components/table/table.component.min.js.map +1 -1
  198. package/assets/js/components/table-ajax/table-ajax.component.js +15 -15
  199. package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
  200. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  201. package/assets/js/components/table-basic/table-basic.component.js +15 -15
  202. package/assets/js/components/table-basic/table-basic.component.min.js +2 -2
  203. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  204. package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -15
  205. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
  206. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  207. package/assets/js/components/table-submit/table-submit.component.js +15 -15
  208. package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
  209. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  210. package/assets/js/components/tabs/tabs.component.js +17 -17
  211. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  212. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  213. package/assets/js/components/tag/tag.component.js +12 -12
  214. package/assets/js/components/tag/tag.component.min.js +1 -1
  215. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  216. package/assets/js/components/tooltip/tooltip.component.js +8 -8
  217. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  218. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
  219. package/assets/js/components/video/video.component.js +9 -9
  220. package/assets/js/components/video/video.component.min.js +1 -1
  221. package/assets/js/components/video/video.component.min.js.map +1 -1
  222. package/assets/js/components/video-card/video-card.component.js +12 -12
  223. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  224. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  225. package/assets/js/components/video-modal/video-modal.component.js +13 -13
  226. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  227. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  228. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  229. package/assets/js/modules/card.module.js +14 -14
  230. package/assets/js/modules/chart.module.js +4 -4
  231. package/assets/js/modules/integration-tests.js +3 -3
  232. package/assets/js/modules/table.js +2 -2
  233. package/assets/js/modules/videos.js +6 -6
  234. package/assets/js/scripts.bundle.js +1 -1
  235. package/assets/js/scripts.bundle.js.map +1 -1
  236. package/assets/js/scripts.bundle.min.js +1 -1
  237. package/assets/js/scripts.bundle.min.js.map +1 -1
  238. package/assets/sass/_bs_grid.scss +41 -41
  239. package/assets/sass/_bs_utilities.scss +51 -51
  240. package/assets/sass/_components.scss +151 -162
  241. package/assets/sass/_corefiles.scss +31 -31
  242. package/assets/sass/_elements.scss +30 -30
  243. package/assets/sass/_fonts.scss +28 -28
  244. package/assets/sass/_func.scss +2 -2
  245. package/assets/sass/_functions/bs_functions.scss +487 -487
  246. package/assets/sass/_functions/bs_mixins.scss +2103 -2103
  247. package/assets/sass/_functions/bs_utilities.scss +922 -922
  248. package/assets/sass/_functions/bs_variables.scss +1701 -1701
  249. package/assets/sass/_functions/functions.scss +48 -48
  250. package/assets/sass/_functions/mixins.scss +1 -1
  251. package/assets/sass/_grid.scss +320 -320
  252. package/assets/sass/_print.scss +64 -64
  253. package/assets/sass/_utilities.scss +35 -35
  254. package/assets/sass/components/actionbar.component.scss +421 -421
  255. package/assets/sass/components/actionbar.global.scss +115 -115
  256. package/assets/sass/components/address-lookup.component.scss +160 -160
  257. package/assets/sass/components/address-lookup.preload.scss +90 -90
  258. package/assets/sass/components/applied-filters.scss +19 -19
  259. package/assets/sass/components/barchart.component.scss +347 -347
  260. package/assets/sass/components/bento-grid.component.scss +109 -109
  261. package/assets/sass/components/bento-grid.global.scss +248 -248
  262. package/assets/sass/components/calendar.component.scss +1272 -1272
  263. package/assets/sass/components/calendar.config.scss +423 -423
  264. package/assets/sass/components/card.component.scss +187 -187
  265. package/assets/sass/components/card.module.scss +154 -154
  266. package/assets/sass/components/carousel.component.scss +631 -631
  267. package/assets/sass/components/carousel.config.scss +84 -84
  268. package/assets/sass/components/charts.config.scss +86 -86
  269. package/assets/sass/components/charts.module.scss +588 -588
  270. package/assets/sass/components/charts.scss +1298 -1298
  271. package/assets/sass/components/collapsible-side.scss +307 -307
  272. package/assets/sass/components/config.component.scss +235 -235
  273. package/assets/sass/components/content.component.scss +18 -18
  274. package/assets/sass/components/darkmode.component.scss +20 -20
  275. package/assets/sass/components/doughnutchart.component.scss +206 -206
  276. package/assets/sass/components/fileupload.scss +162 -162
  277. package/assets/sass/components/filter-card.component.scss +99 -99
  278. package/assets/sass/components/{header.scss → header.component.scss} +249 -251
  279. package/assets/sass/components/header.preload.scss +26 -0
  280. package/assets/sass/components/inline-edit.preload.scss +203 -203
  281. package/assets/sass/components/inline-edit.scss +40 -40
  282. package/assets/sass/components/input-range.component.scss +46 -46
  283. package/assets/sass/components/input.component.scss +101 -101
  284. package/assets/sass/components/marketing.component.scss +65 -65
  285. package/assets/sass/components/menu.component.scss +161 -161
  286. package/assets/sass/components/menu.global.scss +82 -82
  287. package/assets/sass/components/milestone.scss +216 -216
  288. package/assets/sass/components/modal.component.scss +252 -252
  289. package/assets/sass/components/multi-step-modal.component.scss +255 -255
  290. package/assets/sass/components/multi-step-modal.global.scss +91 -91
  291. package/assets/sass/components/multi-step.component.scss +144 -144
  292. package/assets/sass/components/multiselect.preload.scss +8 -8
  293. package/assets/sass/components/multiselect.scss +238 -238
  294. package/assets/sass/components/nav.component.scss +718 -718
  295. package/assets/sass/components/nav.docs.scss +55 -55
  296. package/assets/sass/components/nav.global.scss +870 -870
  297. package/assets/sass/components/nav.preload.scss +54 -54
  298. package/assets/sass/components/notification.scss +204 -217
  299. package/assets/sass/components/pagination.scss +237 -237
  300. package/assets/sass/components/password.component.scss +55 -55
  301. package/assets/sass/components/popover.component.scss +28 -28
  302. package/assets/sass/components/property-searchbar.scss +139 -139
  303. package/assets/sass/components/rank.component.scss +275 -275
  304. package/assets/sass/components/rankings.component.scss +70 -70
  305. package/assets/sass/components/rankings.global.scss +140 -140
  306. package/assets/sass/components/rating.component.css +211 -211
  307. package/assets/sass/components/record-card.component.scss +191 -191
  308. package/assets/sass/components/slider.scss +127 -127
  309. package/assets/sass/components/snapshot.scss +65 -65
  310. package/assets/sass/components/split-button.component.scss +83 -83
  311. package/assets/sass/components/stepper.scss +157 -157
  312. package/assets/sass/components/table-basic.component.scss +136 -136
  313. package/assets/sass/components/table-basic.global.scss +676 -676
  314. package/assets/sass/components/table.component.scss +51 -51
  315. package/assets/sass/components/table.global.scss +399 -398
  316. package/assets/sass/components/tabs.component.scss +34 -34
  317. package/assets/sass/components/tabs.config.scss +258 -258
  318. package/assets/sass/components/tag.component.scss +59 -59
  319. package/assets/sass/components/tag.preload.scss +20 -20
  320. package/assets/sass/components/testimonial.scss +125 -125
  321. package/assets/sass/components/timeline.scss +92 -92
  322. package/assets/sass/components/tooltip.component.scss +148 -148
  323. package/assets/sass/components/video-card.component.scss +48 -48
  324. package/assets/sass/components/video-modal.component.scss +26 -26
  325. package/assets/sass/components/video.component.scss +74 -74
  326. package/assets/sass/components/word-count.component.scss +26 -26
  327. package/assets/sass/core.scss +4 -4
  328. package/assets/sass/elements/admin-panel.css +310 -310
  329. package/assets/sass/elements/badge-tag.css +101 -101
  330. package/assets/sass/elements/brand.css +80 -80
  331. package/assets/sass/elements/button__group.css +135 -135
  332. package/assets/sass/elements/buttons--action.css +71 -71
  333. package/assets/sass/elements/buttons--compact.css +168 -168
  334. package/assets/sass/elements/buttons--global.css +239 -239
  335. package/assets/sass/elements/buttons--secondary.css +18 -18
  336. package/assets/sass/elements/buttons--special.css +164 -164
  337. package/assets/sass/elements/buttons--tertiary.css +51 -51
  338. package/assets/sass/elements/buttons.scss +9 -9
  339. package/assets/sass/elements/code.css +45 -45
  340. package/assets/sass/elements/container.scss +118 -118
  341. package/assets/sass/elements/details.css +224 -224
  342. package/assets/sass/elements/dialog.scss +75 -75
  343. package/assets/sass/elements/dropdown.css +85 -85
  344. package/assets/sass/elements/feature.css +174 -174
  345. package/assets/sass/elements/forms.scss +1337 -1337
  346. package/assets/sass/elements/highlight.css +76 -76
  347. package/assets/sass/elements/hr.css +41 -41
  348. package/assets/sass/elements/icons.css +48 -48
  349. package/assets/sass/elements/input.scss +212 -212
  350. package/assets/sass/elements/label.css +20 -20
  351. package/assets/sass/elements/links--collapsible-side.scss +129 -129
  352. package/assets/sass/elements/links--global.scss +155 -155
  353. package/assets/sass/elements/links--video.scss +73 -73
  354. package/assets/sass/elements/links.scss +4 -4
  355. package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
  356. package/assets/sass/elements/lists--steps.css +171 -171
  357. package/assets/sass/elements/lists--tick-list.scss +112 -112
  358. package/assets/sass/elements/lists.scss +99 -99
  359. package/assets/sass/elements/media.css +20 -20
  360. package/assets/sass/elements/modal.scss +411 -411
  361. package/assets/sass/elements/popover.scss +259 -259
  362. package/assets/sass/elements/prefix.scss +139 -139
  363. package/assets/sass/elements/progress.scss +208 -208
  364. package/assets/sass/elements/table.element.scss +144 -144
  365. package/assets/sass/elements/textarea.css +84 -84
  366. package/assets/sass/elements/toggle-button.css +49 -49
  367. package/assets/sass/elements/tooltips.scss +152 -152
  368. package/assets/sass/elements/type.css +166 -166
  369. package/assets/sass/email.scss +68 -68
  370. package/assets/sass/error.scss +31 -31
  371. package/assets/sass/foundations/animations.scss +2 -2
  372. package/assets/sass/foundations/colours.scss +104 -104
  373. package/assets/sass/foundations/reboot.scss +166 -166
  374. package/assets/sass/foundations/root.scss +269 -269
  375. package/assets/sass/main.scss +7 -7
  376. package/assets/sass/templates/auth.scss +106 -106
  377. package/assets/sass/templates/form.scss +95 -95
  378. package/assets/sass/utilities/align.css +24 -24
  379. package/assets/sass/utilities/border.css +65 -65
  380. package/assets/sass/utilities/clearfix.css +8 -8
  381. package/assets/sass/utilities/colours.scss +43 -43
  382. package/assets/sass/utilities/columns.css +61 -61
  383. package/assets/sass/utilities/display.scss +89 -89
  384. package/assets/sass/utilities/fixed.css +16 -16
  385. package/assets/sass/utilities/flex.scss +291 -291
  386. package/assets/sass/utilities/font-awesome-iso-fallbacks.css +43 -43
  387. package/assets/sass/utilities/gap.css +25 -25
  388. package/assets/sass/utilities/gradients.css +39 -39
  389. package/assets/sass/utilities/js-display.css +12 -12
  390. package/assets/sass/utilities/line-clamp.css +24 -24
  391. package/assets/sass/utilities/margins.scss +74 -74
  392. package/assets/sass/utilities/max-height.scss +93 -93
  393. package/assets/sass/utilities/opacity.css +20 -20
  394. package/assets/sass/utilities/order.css +104 -104
  395. package/assets/sass/utilities/overflow.css +16 -16
  396. package/assets/sass/utilities/paddings.scss +33 -33
  397. package/assets/sass/utilities/pointer-events.css +8 -8
  398. package/assets/sass/utilities/position.css +67 -67
  399. package/assets/sass/utilities/ratio.css +33 -33
  400. package/assets/sass/utilities/rounded.css +56 -56
  401. package/assets/sass/utilities/shadow.css +6 -6
  402. package/assets/sass/utilities/sizes.css +92 -92
  403. package/assets/sass/utilities/sticky.css +38 -38
  404. package/assets/sass/utilities/text-truncate.css +6 -6
  405. package/assets/sass/utilities/text.css +190 -190
  406. package/assets/sass/utilities/visible.css +8 -8
  407. package/assets/sass/utilities/visually-hidden.css +13 -13
  408. package/assets/sass/utilities/wider-colours.scss +8 -8
  409. package/assets/svg/illustrations/table.svg +165 -165
  410. package/assets/svg/logo.svg +56 -56
  411. package/assets/ts/components/accordion/accordion.component.ts +77 -77
  412. package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
  413. package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
  414. package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
  415. package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
  416. package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
  417. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
  418. package/assets/ts/components/config/config.component.ts +699 -699
  419. package/assets/ts/components/content/content.component.ts +78 -78
  420. package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
  421. package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
  422. package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
  423. package/assets/ts/components/form/form.component.ts +102 -102
  424. package/assets/ts/components/header/header.component.ts +97 -97
  425. package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
  426. package/assets/ts/components/input/input.component.ts +278 -278
  427. package/assets/ts/components/input-range/input-range.component.ts +78 -78
  428. package/assets/ts/components/marketing/marketing.component.ts +44 -44
  429. package/assets/ts/components/menu/menu.component.ts +212 -212
  430. package/assets/ts/components/modal/modal.component.ts +184 -184
  431. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
  432. package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
  433. package/assets/ts/components/nav/nav.component.ts +369 -369
  434. package/assets/ts/components/notification/notification.component.ts +173 -172
  435. package/assets/ts/components/pagination/pagination.component.ts +213 -213
  436. package/assets/ts/components/password/password.component.ts +118 -118
  437. package/assets/ts/components/popover/popover.component.ts +50 -50
  438. package/assets/ts/components/rank/rank.component.ts +394 -394
  439. package/assets/ts/components/rankings/rankings.component.ts +79 -79
  440. package/assets/ts/components/rating/rating.component.ts +86 -86
  441. package/assets/ts/components/search/search.component.ts +244 -244
  442. package/assets/ts/components/slider/slider.component.ts +170 -170
  443. package/assets/ts/components/split-button/split-button.component.ts +63 -63
  444. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
  445. package/assets/ts/components/table/table.component.ts +94 -94
  446. package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
  447. package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
  448. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
  449. package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
  450. package/assets/ts/components/tabs/tabs.component.ts +70 -70
  451. package/assets/ts/components/tag/tag.component.ts +104 -104
  452. package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
  453. package/assets/ts/components/video/video.component.ts +74 -74
  454. package/assets/ts/components/video-card/video-card.component.ts +129 -129
  455. package/assets/ts/components/video-modal/video-modal.component.ts +88 -88
  456. package/assets/ts/modules/advanced-select.ts +186 -186
  457. package/assets/ts/modules/applied-filters.ts +238 -238
  458. package/assets/ts/modules/card.module.ts +46 -46
  459. package/assets/ts/modules/chart.module.ts +594 -594
  460. package/assets/ts/modules/data-layer.md +71 -71
  461. package/assets/ts/modules/dialogs.ts +259 -259
  462. package/assets/ts/modules/dropdown.ts +216 -216
  463. package/assets/ts/modules/helper.test.ts +143 -143
  464. package/assets/ts/modules/helpers.ts +212 -212
  465. package/assets/ts/modules/integration-tests.ts +525 -525
  466. package/assets/ts/modules/modal.ts +45 -45
  467. package/assets/ts/modules/password.ts +82 -82
  468. package/assets/ts/modules/table.ts +1500 -1500
  469. package/assets/ts/modules/test.ts +22 -22
  470. package/assets/ts/modules/videos.ts +233 -233
  471. package/assets/ts/scripts.ts +111 -111
  472. package/dist/components.es.js +25 -25
  473. package/dist/components.umd.js +10 -9
  474. package/package.json +115 -115
  475. package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
  476. package/src/components/Config/Config.vue +23 -23
  477. package/src/components/DarkMode/DarkMode.vue +19 -19
  478. package/src/components/Filterlist/Filterlist.vue +23 -23
  479. package/src/components/Form/Form.vue +22 -22
  480. package/src/components/Header/Header.vue +36 -36
  481. package/src/components/Input/Input.vue +22 -22
  482. package/src/components/InputRange/InputRange.vue +22 -22
  483. package/src/components/Modal/Modal.vue +22 -22
  484. package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
  485. package/src/components/NoteFeed/NoteFeed.vue +82 -82
  486. package/src/components/Password/Password.vue +23 -23
  487. package/src/components/Popover/Popover.vue +22 -22
  488. package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
  489. package/src/components/PropertySearchbar/README.md +25 -25
  490. package/src/components/Rating/Rating.vue +22 -22
  491. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
  492. package/src/components/Snapshot/Snapshot.vue +30 -30
  493. package/src/components/Tag/Tag.vue +22 -22
  494. package/src/components/Tooltip/Tooltip.vue +22 -22
  495. package/src/components/Video/Video.vue +22 -22
  496. package/src/components/VideoModal/VideoModal.vue +22 -22
  497. package/assets/bootstrap/dist/css/bootstrap-grid.css +0 -4124
  498. package/assets/bootstrap/dist/css/bootstrap-grid.css.map +0 -1
  499. package/assets/bootstrap/dist/css/bootstrap-grid.min.css +0 -7
  500. package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +0 -1
  501. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +0 -4123
  502. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +0 -1
  503. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -7
  504. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +0 -1
  505. package/assets/bootstrap/dist/css/bootstrap-reboot.css +0 -488
  506. package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +0 -1
  507. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +0 -7
  508. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +0 -1
  509. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +0 -485
  510. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +0 -1
  511. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -7
  512. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +0 -1
  513. package/assets/bootstrap/dist/css/bootstrap-utilities.css +0 -4197
  514. package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +0 -1
  515. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +0 -7
  516. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +0 -1
  517. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +0 -4188
  518. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +0 -1
  519. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -7
  520. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +0 -1
  521. package/assets/bootstrap/dist/css/bootstrap.css +0 -10907
  522. package/assets/bootstrap/dist/css/bootstrap.css.map +0 -1
  523. package/assets/bootstrap/dist/css/bootstrap.min.css +0 -7
  524. package/assets/bootstrap/dist/css/bootstrap.min.css.map +0 -1
  525. package/assets/bootstrap/dist/css/bootstrap.rtl.css +0 -10867
  526. package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +0 -1
  527. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +0 -7
  528. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +0 -1
  529. package/assets/bootstrap/dist/js/bootstrap.bundle.js +0 -7066
  530. package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +0 -1
  531. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +0 -7
  532. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +0 -1
  533. package/assets/bootstrap/dist/js/bootstrap.esm.js +0 -5204
  534. package/assets/bootstrap/dist/js/bootstrap.esm.js.map +0 -1
  535. package/assets/bootstrap/dist/js/bootstrap.esm.min.js +0 -7
  536. package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +0 -1
  537. package/assets/bootstrap/dist/js/bootstrap.js +0 -5251
  538. package/assets/bootstrap/dist/js/bootstrap.js.map +0 -1
  539. package/assets/bootstrap/dist/js/bootstrap.min.js +0 -7
  540. package/assets/bootstrap/dist/js/bootstrap.min.js.map +0 -1
  541. package/assets/bootstrap/js/dist/alert.js +0 -100
  542. package/assets/bootstrap/js/dist/alert.js.map +0 -1
  543. package/assets/bootstrap/js/dist/base-component.js +0 -100
  544. package/assets/bootstrap/js/dist/base-component.js.map +0 -1
  545. package/assets/bootstrap/js/dist/button.js +0 -82
  546. package/assets/bootstrap/js/dist/button.js.map +0 -1
  547. package/assets/bootstrap/js/dist/carousel.js +0 -471
  548. package/assets/bootstrap/js/dist/carousel.js.map +0 -1
  549. package/assets/bootstrap/js/dist/collapse.js +0 -311
  550. package/assets/bootstrap/js/dist/collapse.js.map +0 -1
  551. package/assets/bootstrap/js/dist/dom/data.js +0 -67
  552. package/assets/bootstrap/js/dist/dom/data.js.map +0 -1
  553. package/assets/bootstrap/js/dist/dom/event-handler.js +0 -284
  554. package/assets/bootstrap/js/dist/dom/event-handler.js.map +0 -1
  555. package/assets/bootstrap/js/dist/dom/manipulator.js +0 -85
  556. package/assets/bootstrap/js/dist/dom/manipulator.js.map +0 -1
  557. package/assets/bootstrap/js/dist/dom/selector-engine.js +0 -86
  558. package/assets/bootstrap/js/dist/dom/selector-engine.js.map +0 -1
  559. package/assets/bootstrap/js/dist/dropdown.js +0 -471
  560. package/assets/bootstrap/js/dist/dropdown.js.map +0 -1
  561. package/assets/bootstrap/js/dist/modal.js +0 -397
  562. package/assets/bootstrap/js/dist/modal.js.map +0 -1
  563. package/assets/bootstrap/js/dist/offcanvas.js +0 -298
  564. package/assets/bootstrap/js/dist/offcanvas.js.map +0 -1
  565. package/assets/bootstrap/js/dist/popover.js +0 -102
  566. package/assets/bootstrap/js/dist/popover.js.map +0 -1
  567. package/assets/bootstrap/js/dist/scrollspy.js +0 -308
  568. package/assets/bootstrap/js/dist/scrollspy.js.map +0 -1
  569. package/assets/bootstrap/js/dist/tab.js +0 -334
  570. package/assets/bootstrap/js/dist/tab.js.map +0 -1
  571. package/assets/bootstrap/js/dist/toast.js +0 -237
  572. package/assets/bootstrap/js/dist/toast.js.map +0 -1
  573. package/assets/bootstrap/js/dist/tooltip.js +0 -663
  574. package/assets/bootstrap/js/dist/tooltip.js.map +0 -1
  575. package/assets/bootstrap/js/dist/util/backdrop.js +0 -166
  576. package/assets/bootstrap/js/dist/util/backdrop.js.map +0 -1
  577. package/assets/bootstrap/js/dist/util/component-functions.js +0 -47
  578. package/assets/bootstrap/js/dist/util/component-functions.js.map +0 -1
  579. package/assets/bootstrap/js/dist/util/config.js +0 -80
  580. package/assets/bootstrap/js/dist/util/config.js.map +0 -1
  581. package/assets/bootstrap/js/dist/util/focustrap.js +0 -130
  582. package/assets/bootstrap/js/dist/util/focustrap.js.map +0 -1
  583. package/assets/bootstrap/js/dist/util/index.js +0 -351
  584. package/assets/bootstrap/js/dist/util/index.js.map +0 -1
  585. package/assets/bootstrap/js/dist/util/sanitizer.js +0 -123
  586. package/assets/bootstrap/js/dist/util/sanitizer.js.map +0 -1
  587. package/assets/bootstrap/js/dist/util/scrollbar.js +0 -139
  588. package/assets/bootstrap/js/dist/util/scrollbar.js.map +0 -1
  589. package/assets/bootstrap/js/dist/util/swipe.js +0 -156
  590. package/assets/bootstrap/js/dist/util/swipe.js.map +0 -1
  591. package/assets/bootstrap/js/dist/util/template-factory.js +0 -178
  592. package/assets/bootstrap/js/dist/util/template-factory.js.map +0 -1
  593. package/assets/css/components/header.css.map +0 -1
@@ -1,278 +1,278 @@
1
- import { trackComponent, trackComponentRegistered } from '../_global';
2
-
3
- trackComponentRegistered('iam-iamPrefix');
4
- class iamInput extends HTMLElement {
5
- constructor() {
6
- super();
7
- this.attachShadow({ mode: 'open' });
8
-
9
- const assetLocation = document.body.hasAttribute('data-assets-location')
10
- ? document.body.getAttribute('data-assets-location')
11
- : '/assets';
12
-
13
- const loadCSS = `@import "${assetLocation}/css/components/input.component.css";`;
14
-
15
- const template = document.createElement('template');
16
- template.innerHTML = `
17
- <style>
18
- ${loadCSS}
19
- </style>
20
- <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
21
- <div class="wrapper" part="wrapper">
22
- <span part="prefix"><slot name="prefix"></slot></span>
23
- <slot part="input-wrapper"></slot>
24
- <slot part="suffix"><slot name="suffix"></slot></slot>
25
- </div>
26
- `;
27
- this.shadowRoot.appendChild(template.content.cloneNode(true));
28
- }
29
-
30
- connectedCallback(): void {
31
-
32
- const component = this;
33
- const input = this.querySelector('input');
34
- const inputType = input?.hasAttribute('type') ? input?.getAttribute('type') : 'text';
35
- const prefixIcon = this.shadowRoot?.querySelector('[part="prefix"]');
36
- const suffixIcon = this.shadowRoot?.querySelector('[part="suffix"]');
37
-
38
-
39
- if(this.closest('label'))
40
- this.classList.add('mb-0');
41
-
42
-
43
- const setIcon = (inputType): void => {
44
-
45
- // Pre set the icons
46
- switch (inputType) {
47
- case "date":
48
- case "datetime-local":
49
- case "year":
50
- case "month":
51
- case "week":
52
- this.setAttribute('data-suffix-icon','calendar') ;
53
- suffixIcon?.setAttribute('role','button');
54
- break;
55
- case "time":
56
- this.setAttribute('data-suffix-icon','clock') ;
57
- suffixIcon?.setAttribute('role','button');
58
- break;
59
- default:
60
- this.removeAttribute('data-suffix-icon') ;
61
- suffixIcon?.removeAttribute('role');
62
- break;
63
- }
64
- }
65
- setIcon(inputType);
66
-
67
-
68
- const setCurrencyRules = (): void => {
69
- let originalValue = input.value.replace(',','');
70
-
71
- input?.setAttribute('data-value',originalValue);
72
- input.setAttribute('type','text');
73
- originalValue = new Intl.NumberFormat("en-GB", {
74
- style: "currency",
75
- currency: "GBP",
76
- minimumFractionDigits: Number.isInteger(originalValue) ? 0 : 2,
77
- maximumFractionDigits: Number.isInteger(originalValue) ? 0 : 2,
78
- trailingZeroDisplay: 'stripIfInteger' // Strip zeros if it's an integer
79
- }).format(originalValue).replace("£", "");
80
- input.value = originalValue;
81
- }
82
-
83
-
84
- // Currency type
85
- if(component?.hasAttribute('data-currency')) {
86
-
87
- // Pre set the icons
88
- switch (component?.hasAttribute('data-currency')) {
89
- case "dollar":
90
- component.setAttribute('data-prefix-icon','dollar-sign') ;
91
- break;
92
- case "euro":
93
- component.setAttribute('data-prefix-icon','euro-sign') ;
94
- break;
95
- default:
96
- component.setAttribute('data-prefix-icon','sterling-sign') ;
97
- break;
98
- }
99
-
100
- setCurrencyRules();
101
-
102
-
103
- input?.addEventListener('focus',(event) => {
104
-
105
- input.setAttribute('type', 'number')
106
-
107
- input.value = input.getAttribute('data-value');
108
- input.setAttribute('value', input.getAttribute('data-value'));
109
- });
110
-
111
- input?.addEventListener('input',(event) => {
112
-
113
- input?.setAttribute('data-value',input.value);
114
- });
115
-
116
- input?.addEventListener('blur',(event) => {
117
-
118
- setCurrencyRules();
119
- });
120
- }
121
-
122
-
123
-
124
- // Colour input field
125
- if(input?.matches('[type="color"]')){
126
- this.insertAdjacentHTML('beforeend', `<output></output>`);
127
-
128
- input.addEventListener('input', () => {
129
-
130
- input.nextElementSibling.value = input.value;
131
- });
132
- }
133
-
134
-
135
- if(this.hasAttribute('data-prefix-icon')){
136
- prefixIcon?.className = `prefix fa-${this.hasAttribute('data-prefix-weight') ? this.getAttribute('data-prefix-weight') : 'regular'} fa-${this.getAttribute('data-prefix-icon')}`;
137
- this.querySelector('input')?.classList.add('has-prefix');
138
- }
139
- if(this.hasAttribute('data-suffix-icon')){
140
- suffixIcon?.className = `suffix fa-${this.hasAttribute('data-suffix-weight') ? this.getAttribute('data-suffix-weight') : 'regular'} fa-${this.getAttribute('data-suffix-icon')}`;
141
- this.querySelector('input')?.classList.add('has-suffix');
142
- }
143
-
144
- if(this.shadowRoot.querySelector('[name="prefix"]')?.assignedElements().length){
145
- this.shadowRoot.querySelector('[name="prefix"]')?.classList.add('prefix');
146
- this.querySelector('input')?.classList.add('has-prefix');
147
- }
148
-
149
- if(this.shadowRoot.querySelector('[name="suffix"]')?.assignedElements().length){
150
- this.shadowRoot.querySelector('[name="suffix"]')?.classList.add('suffix');
151
- this.querySelector('input')?.classList.add('has-suffix');
152
- }
153
-
154
-
155
- // Change type
156
-
157
- if(this.querySelector('[data-change-type]')){
158
- const select = this.querySelector('[data-change-type]');
159
-
160
- select.addEventListener('change', () => {
161
-
162
- input.setAttribute('type', select.value);
163
-
164
- setIcon(select.value);
165
- if(this.getAttribute('data-suffix-icon')){
166
-
167
- suffixIcon?.className = `suffix fa-${this.hasAttribute('data-suffix-weight') ? this.getAttribute('data-suffix-weight') : 'regular'} fa-${this.getAttribute('data-suffix-icon')}`;
168
- input?.classList.add('has-suffix');
169
- }
170
- else {
171
- suffixIcon?.removeAttribute('class');
172
- input?.classList.remove('has-suffix');
173
- }
174
- });
175
- }
176
-
177
-
178
-
179
- // #region Date restrictions
180
- const today = new Date();
181
-
182
- function formatDate(date, type = "date"): string {
183
- const year = date.getFullYear();
184
- const month = String(date.getMonth() + 1).padStart(2, '0');
185
- const day = String(date.getDate()).padStart(2, '0');
186
-
187
- if(type == "datetime-local")
188
- return `${year}-${month}-${day}T00:00:00`;
189
-
190
- return `${year}-${month}-${day}`;
191
- }
192
-
193
- const checkDayAllowed = (input,allowedDays): void => {
194
-
195
- const day = new Date(input.value).getUTCDay();
196
-
197
- if (allowedDays.includes(day)) input.setCustomValidity('');
198
- else input.setCustomValidity('That day of the week is not allowed');
199
- }
200
-
201
- if(input?.matches('[type="date"], [type="datetime-local"]') && this.hasAttribute('data-allowed-days')){
202
- const allowedDays = JSON.parse(`[${this.getAttribute('data-allowed-days')}]`);
203
-
204
- checkDayAllowed(input,allowedDays);
205
- input.addEventListener('input', () => { checkDayAllowed(input,allowedDays); });
206
- }
207
- // #endregion
208
-
209
- suffixIcon.addEventListener('click', function () {
210
-
211
- if(!component?.querySelector('select[data-change-type][slot="suffix"]'))
212
- input.showPicker();
213
- });
214
-
215
- prefixIcon.addEventListener('click', function () {
216
-
217
- if(!component?.querySelector('select[data-change-type][slot="prefix"]'))
218
- input.showPicker();
219
- });
220
-
221
- // Duplicate input watches
222
- if(component.hasAttribute('data-duplicate')){
223
-
224
- const id = component.getAttribute('data-duplicate');
225
- const watchedInputs = document.querySelectorAll(`[name="${id}"], [id="${id}"]`);
226
-
227
- input.addEventListener('change', (event) => {
228
-
229
- if(input.closest('iam-modal'))
230
- return false;
231
-
232
- if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
233
- watchedInput.checked = event.target.checked;
234
-
235
- if(!event.detail && !event.detail?.triggered){
236
- const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
237
- watchedInput?.dispatchEvent(changeEvent);
238
- }
239
- }
240
- });
241
-
242
- Array.from(watchedInputs).forEach((watchedInput) => {
243
-
244
- watchedInput?.addEventListener('change', (event) => {
245
-
246
- // If both the duplicate input and the watched input are checkboxes
247
- if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
248
- input.checked = event.target.checked;
249
-
250
- if(!event.detail && !event.detail?.triggered){
251
- const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
252
- input?.dispatchEvent(changeEvent);
253
- }
254
- }
255
-
256
- // if input is not a checkbox BUT the watched input is
257
- // Then we need to create the input's value
258
- if(!input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
259
-
260
- let computedValue = '';
261
- Array.from(document.querySelectorAll(`[name="${id}"]:checked`)).forEach((loopInput) => {
262
-
263
- computedValue += (computedValue == '' ? '' : ',') + loopInput.value;
264
- });
265
- input.value = computedValue;
266
-
267
- if(!event.detail && !event.detail?.triggered){
268
- const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
269
- input?.dispatchEvent(changeEvent);
270
- }
271
- }
272
- });
273
- });
274
- }
275
- }
276
- }
277
-
278
- export default iamInput;
1
+ import { trackComponent, trackComponentRegistered } from '../_global';
2
+
3
+ trackComponentRegistered('iam-iamPrefix');
4
+ class iamInput extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.attachShadow({ mode: 'open' });
8
+
9
+ const assetLocation = document.body.hasAttribute('data-assets-location')
10
+ ? document.body.getAttribute('data-assets-location')
11
+ : '/assets';
12
+
13
+ const loadCSS = `@import "${assetLocation}/css/components/input.component.css";`;
14
+
15
+ const template = document.createElement('template');
16
+ template.innerHTML = `
17
+ <style>
18
+ ${loadCSS}
19
+ </style>
20
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
21
+ <div class="wrapper" part="wrapper">
22
+ <span part="prefix"><slot name="prefix"></slot></span>
23
+ <slot part="input-wrapper"></slot>
24
+ <slot part="suffix"><slot name="suffix"></slot></slot>
25
+ </div>
26
+ `;
27
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
28
+ }
29
+
30
+ connectedCallback(): void {
31
+
32
+ const component = this;
33
+ const input = this.querySelector('input');
34
+ const inputType = input?.hasAttribute('type') ? input?.getAttribute('type') : 'text';
35
+ const prefixIcon = this.shadowRoot?.querySelector('[part="prefix"]');
36
+ const suffixIcon = this.shadowRoot?.querySelector('[part="suffix"]');
37
+
38
+
39
+ if(this.closest('label'))
40
+ this.classList.add('mb-0');
41
+
42
+
43
+ const setIcon = (inputType): void => {
44
+
45
+ // Pre set the icons
46
+ switch (inputType) {
47
+ case "date":
48
+ case "datetime-local":
49
+ case "year":
50
+ case "month":
51
+ case "week":
52
+ this.setAttribute('data-suffix-icon','calendar') ;
53
+ suffixIcon?.setAttribute('role','button');
54
+ break;
55
+ case "time":
56
+ this.setAttribute('data-suffix-icon','clock') ;
57
+ suffixIcon?.setAttribute('role','button');
58
+ break;
59
+ default:
60
+ this.removeAttribute('data-suffix-icon') ;
61
+ suffixIcon?.removeAttribute('role');
62
+ break;
63
+ }
64
+ }
65
+ setIcon(inputType);
66
+
67
+
68
+ const setCurrencyRules = (): void => {
69
+ let originalValue = input.value.replace(',','');
70
+
71
+ input?.setAttribute('data-value',originalValue);
72
+ input.setAttribute('type','text');
73
+ originalValue = new Intl.NumberFormat("en-GB", {
74
+ style: "currency",
75
+ currency: "GBP",
76
+ minimumFractionDigits: Number.isInteger(originalValue) ? 0 : 2,
77
+ maximumFractionDigits: Number.isInteger(originalValue) ? 0 : 2,
78
+ trailingZeroDisplay: 'stripIfInteger' // Strip zeros if it's an integer
79
+ }).format(originalValue).replace("£", "");
80
+ input.value = originalValue;
81
+ }
82
+
83
+
84
+ // Currency type
85
+ if(component?.hasAttribute('data-currency')) {
86
+
87
+ // Pre set the icons
88
+ switch (component?.hasAttribute('data-currency')) {
89
+ case "dollar":
90
+ component.setAttribute('data-prefix-icon','dollar-sign') ;
91
+ break;
92
+ case "euro":
93
+ component.setAttribute('data-prefix-icon','euro-sign') ;
94
+ break;
95
+ default:
96
+ component.setAttribute('data-prefix-icon','sterling-sign') ;
97
+ break;
98
+ }
99
+
100
+ setCurrencyRules();
101
+
102
+
103
+ input?.addEventListener('focus',(event) => {
104
+
105
+ input.setAttribute('type', 'number')
106
+
107
+ input.value = input.getAttribute('data-value');
108
+ input.setAttribute('value', input.getAttribute('data-value'));
109
+ });
110
+
111
+ input?.addEventListener('input',(event) => {
112
+
113
+ input?.setAttribute('data-value',input.value);
114
+ });
115
+
116
+ input?.addEventListener('blur',(event) => {
117
+
118
+ setCurrencyRules();
119
+ });
120
+ }
121
+
122
+
123
+
124
+ // Colour input field
125
+ if(input?.matches('[type="color"]')){
126
+ this.insertAdjacentHTML('beforeend', `<output></output>`);
127
+
128
+ input.addEventListener('input', () => {
129
+
130
+ input.nextElementSibling.value = input.value;
131
+ });
132
+ }
133
+
134
+
135
+ if(this.hasAttribute('data-prefix-icon')){
136
+ prefixIcon?.className = `prefix fa-${this.hasAttribute('data-prefix-weight') ? this.getAttribute('data-prefix-weight') : 'regular'} fa-${this.getAttribute('data-prefix-icon')}`;
137
+ this.querySelector('input')?.classList.add('has-prefix');
138
+ }
139
+ if(this.hasAttribute('data-suffix-icon')){
140
+ suffixIcon?.className = `suffix fa-${this.hasAttribute('data-suffix-weight') ? this.getAttribute('data-suffix-weight') : 'regular'} fa-${this.getAttribute('data-suffix-icon')}`;
141
+ this.querySelector('input')?.classList.add('has-suffix');
142
+ }
143
+
144
+ if(this.shadowRoot.querySelector('[name="prefix"]')?.assignedElements().length){
145
+ this.shadowRoot.querySelector('[name="prefix"]')?.classList.add('prefix');
146
+ this.querySelector('input')?.classList.add('has-prefix');
147
+ }
148
+
149
+ if(this.shadowRoot.querySelector('[name="suffix"]')?.assignedElements().length){
150
+ this.shadowRoot.querySelector('[name="suffix"]')?.classList.add('suffix');
151
+ this.querySelector('input')?.classList.add('has-suffix');
152
+ }
153
+
154
+
155
+ // Change type
156
+
157
+ if(this.querySelector('[data-change-type]')){
158
+ const select = this.querySelector('[data-change-type]');
159
+
160
+ select.addEventListener('change', () => {
161
+
162
+ input.setAttribute('type', select.value);
163
+
164
+ setIcon(select.value);
165
+ if(this.getAttribute('data-suffix-icon')){
166
+
167
+ suffixIcon?.className = `suffix fa-${this.hasAttribute('data-suffix-weight') ? this.getAttribute('data-suffix-weight') : 'regular'} fa-${this.getAttribute('data-suffix-icon')}`;
168
+ input?.classList.add('has-suffix');
169
+ }
170
+ else {
171
+ suffixIcon?.removeAttribute('class');
172
+ input?.classList.remove('has-suffix');
173
+ }
174
+ });
175
+ }
176
+
177
+
178
+
179
+ // #region Date restrictions
180
+ const today = new Date();
181
+
182
+ function formatDate(date, type = "date"): string {
183
+ const year = date.getFullYear();
184
+ const month = String(date.getMonth() + 1).padStart(2, '0');
185
+ const day = String(date.getDate()).padStart(2, '0');
186
+
187
+ if(type == "datetime-local")
188
+ return `${year}-${month}-${day}T00:00:00`;
189
+
190
+ return `${year}-${month}-${day}`;
191
+ }
192
+
193
+ const checkDayAllowed = (input,allowedDays): void => {
194
+
195
+ const day = new Date(input.value).getUTCDay();
196
+
197
+ if (allowedDays.includes(day)) input.setCustomValidity('');
198
+ else input.setCustomValidity('That day of the week is not allowed');
199
+ }
200
+
201
+ if(input?.matches('[type="date"], [type="datetime-local"]') && this.hasAttribute('data-allowed-days')){
202
+ const allowedDays = JSON.parse(`[${this.getAttribute('data-allowed-days')}]`);
203
+
204
+ checkDayAllowed(input,allowedDays);
205
+ input.addEventListener('input', () => { checkDayAllowed(input,allowedDays); });
206
+ }
207
+ // #endregion
208
+
209
+ suffixIcon.addEventListener('click', function () {
210
+
211
+ if(!component?.querySelector('select[data-change-type][slot="suffix"]'))
212
+ input.showPicker();
213
+ });
214
+
215
+ prefixIcon.addEventListener('click', function () {
216
+
217
+ if(!component?.querySelector('select[data-change-type][slot="prefix"]'))
218
+ input.showPicker();
219
+ });
220
+
221
+ // Duplicate input watches
222
+ if(component.hasAttribute('data-duplicate')){
223
+
224
+ const id = component.getAttribute('data-duplicate');
225
+ const watchedInputs = document.querySelectorAll(`[name="${id}"], [id="${id}"]`);
226
+
227
+ input.addEventListener('change', (event) => {
228
+
229
+ if(input.closest('iam-modal'))
230
+ return false;
231
+
232
+ if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
233
+ watchedInput.checked = event.target.checked;
234
+
235
+ if(!event.detail && !event.detail?.triggered){
236
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
237
+ watchedInput?.dispatchEvent(changeEvent);
238
+ }
239
+ }
240
+ });
241
+
242
+ Array.from(watchedInputs).forEach((watchedInput) => {
243
+
244
+ watchedInput?.addEventListener('change', (event) => {
245
+
246
+ // If both the duplicate input and the watched input are checkboxes
247
+ if(input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
248
+ input.checked = event.target.checked;
249
+
250
+ if(!event.detail && !event.detail?.triggered){
251
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
252
+ input?.dispatchEvent(changeEvent);
253
+ }
254
+ }
255
+
256
+ // if input is not a checkbox BUT the watched input is
257
+ // Then we need to create the input's value
258
+ if(!input?.matches('[type="checkbox"]') && watchedInput?.matches('[type="checkbox"]')){
259
+
260
+ let computedValue = '';
261
+ Array.from(document.querySelectorAll(`[name="${id}"]:checked`)).forEach((loopInput) => {
262
+
263
+ computedValue += (computedValue == '' ? '' : ',') + loopInput.value;
264
+ });
265
+ input.value = computedValue;
266
+
267
+ if(!event.detail && !event.detail?.triggered){
268
+ const changeEvent = new CustomEvent('change', { detail: {triggered: true} });
269
+ input?.dispatchEvent(changeEvent);
270
+ }
271
+ }
272
+ });
273
+ });
274
+ }
275
+ }
276
+ }
277
+
278
+ export default iamInput;