@gov-design-system-ce/components 0.0.6 → 0.0.8

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 (566) hide show
  1. package/dist/cjs/Fragment-52846f79.js +7 -0
  2. package/dist/cjs/Fragment-52846f79.js.map +1 -0
  3. package/dist/cjs/{constants-5f6bbc50.js → constants-245999e7.js} +3 -2
  4. package/dist/cjs/constants-245999e7.js.map +1 -0
  5. package/dist/cjs/{constants-dc2ba6bd.js → constants-61f8be34.js} +3 -3
  6. package/dist/cjs/constants-61f8be34.js.map +1 -0
  7. package/dist/cjs/core.cjs.js +1 -1
  8. package/dist/cjs/gov-accordion-item.cjs.entry.js +2 -2
  9. package/dist/cjs/gov-accordion-item.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gov-accordion.cjs.entry.js +2 -1
  11. package/dist/cjs/gov-accordion.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gov-alert.cjs.entry.js +1 -1
  13. package/dist/cjs/gov-alert.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gov-app.cjs.entry.js +673 -165
  15. package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gov-attachments_3.cjs.entry.js +1 -1
  17. package/dist/cjs/gov-attachments_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gov-backdrop.cjs.entry.js +4 -3
  19. package/dist/cjs/gov-backdrop.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gov-badge.cjs.entry.js +17 -17
  21. package/dist/cjs/gov-badge.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gov-breadcrumbs.cjs.entry.js +1 -1
  23. package/dist/cjs/gov-breadcrumbs.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gov-button.cjs.entry.js +14 -3
  25. package/dist/cjs/gov-button.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gov-card.cjs.entry.js +1 -1
  27. package/dist/cjs/gov-card.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gov-form-autocomplete.cjs.entry.js +4 -0
  29. package/dist/cjs/gov-form-autocomplete.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gov-form-checkbox.cjs.entry.js +23 -7
  31. package/dist/cjs/gov-form-checkbox.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gov-form-file.cjs.entry.js +7 -1
  33. package/dist/cjs/gov-form-file.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gov-form-input.cjs.entry.js +8 -2
  35. package/dist/cjs/gov-form-input.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gov-form-multi-select.cjs.entry.js +11 -3
  37. package/dist/cjs/gov-form-multi-select.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gov-form-password-power.cjs.entry.js +28 -0
  39. package/dist/cjs/gov-form-password-power.cjs.entry.js.map +1 -0
  40. package/dist/cjs/gov-form-radio.cjs.entry.js +17 -1
  41. package/dist/cjs/gov-form-radio.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gov-form-search.cjs.entry.js +1 -1
  43. package/dist/cjs/gov-form-search.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gov-form-select.cjs.entry.js +3 -3
  45. package/dist/cjs/gov-form-select.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gov-form-switch.cjs.entry.js +23 -7
  47. package/dist/cjs/gov-form-switch.cjs.entry.js.map +1 -1
  48. package/dist/cjs/gov-icon.cjs.entry.js +1 -1
  49. package/dist/cjs/gov-modal.cjs.entry.js +19 -13
  50. package/dist/cjs/gov-modal.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gov-pagination.cjs.entry.js +50 -16
  52. package/dist/cjs/gov-pagination.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gov-prompt.cjs.entry.js +12 -6
  54. package/dist/cjs/gov-prompt.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gov-side-nav-item.cjs.entry.js +1 -1
  56. package/dist/cjs/gov-side-nav-item.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gov-spacer.cjs.entry.js +1 -1
  58. package/dist/cjs/gov-spacer.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gov-statsbar-item.cjs.entry.js +1 -1
  60. package/dist/cjs/gov-statsbar.cjs.entry.js +2 -2
  61. package/dist/cjs/gov-statsbar.cjs.entry.js.map +1 -1
  62. package/dist/cjs/gov-tabs.cjs.entry.js +1 -1
  63. package/dist/cjs/gov-tabs.cjs.entry.js.map +1 -1
  64. package/dist/cjs/gov-tile.cjs.entry.js +3 -2
  65. package/dist/cjs/gov-tile.cjs.entry.js.map +1 -1
  66. package/dist/cjs/gov-tiles.cjs.entry.js +2 -1
  67. package/dist/cjs/gov-tiles.cjs.entry.js.map +1 -1
  68. package/dist/cjs/gov-toast.cjs.entry.js +1 -1
  69. package/dist/cjs/gov-toast.cjs.entry.js.map +1 -1
  70. package/dist/cjs/gov-wizzard-item.cjs.entry.js +1 -1
  71. package/dist/cjs/gov-wizzard-item.cjs.entry.js.map +1 -1
  72. package/dist/cjs/index-356717ae.js +4 -0
  73. package/dist/cjs/loader.cjs.js +1 -1
  74. package/dist/collection/collection-manifest.json +1 -0
  75. package/dist/collection/components/gov-accordion/gov-accordion-item.css +37 -5
  76. package/dist/collection/components/gov-accordion/gov-accordion-item.js +1 -1
  77. package/dist/collection/components/gov-accordion/gov-accordion-item.js.map +1 -1
  78. package/dist/collection/components/gov-accordion/gov-accordion.css +6 -0
  79. package/dist/collection/components/gov-accordion/gov-accordion.js +19 -0
  80. package/dist/collection/components/gov-accordion/gov-accordion.js.map +1 -1
  81. package/dist/collection/components/gov-alert/gov-alert.css +3 -0
  82. package/dist/collection/components/gov-alert/gov-alert.js +1 -1
  83. package/dist/collection/components/gov-alert/gov-alert.js.map +1 -1
  84. package/dist/collection/components/gov-app/gov-app.css +3 -0
  85. package/dist/collection/components/gov-attachments/gov-attachments-item.css +3 -0
  86. package/dist/collection/components/gov-attachments/gov-attachments-item.js +1 -1
  87. package/dist/collection/components/gov-attachments/gov-attachments-item.js.map +1 -1
  88. package/dist/collection/components/gov-attachments/gov-attachments.css +3 -0
  89. package/dist/collection/components/gov-backdrop/gov-backdrop.css +3 -0
  90. package/dist/collection/components/gov-backdrop/gov-backdrop.js +5 -4
  91. package/dist/collection/components/gov-backdrop/gov-backdrop.js.map +1 -1
  92. package/dist/collection/components/gov-badge/constants.js +4 -1
  93. package/dist/collection/components/gov-badge/constants.js.map +1 -1
  94. package/dist/collection/components/gov-badge/gov-badge.css +204 -96
  95. package/dist/collection/components/gov-badge/gov-badge.js +26 -47
  96. package/dist/collection/components/gov-badge/gov-badge.js.map +1 -1
  97. package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.css +3 -0
  98. package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.js +1 -1
  99. package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.js.map +1 -1
  100. package/dist/collection/components/gov-button/constants.js +2 -1
  101. package/dist/collection/components/gov-button/constants.js.map +1 -1
  102. package/dist/collection/components/gov-button/gov-button.css +210 -131
  103. package/dist/collection/components/gov-button/gov-button.js +18 -7
  104. package/dist/collection/components/gov-button/gov-button.js.map +1 -1
  105. package/dist/collection/components/gov-card/gov-card.css +3 -0
  106. package/dist/collection/components/gov-card/gov-card.js +1 -1
  107. package/dist/collection/components/gov-card/gov-card.js.map +1 -1
  108. package/dist/collection/components/gov-container/gov-container.css +3 -0
  109. package/dist/collection/components/gov-cookiebar/gov-cookiebar.css +3 -0
  110. package/dist/collection/components/gov-empty/gov-empty.css +3 -0
  111. package/dist/collection/components/gov-error-code/gov-error-code.css +3 -0
  112. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.css +3 -0
  113. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js +4 -0
  114. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js.map +1 -1
  115. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.css +3 -0
  116. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js +53 -19
  117. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js.map +1 -1
  118. package/dist/collection/components/gov-form/control/gov-form-control.css +3 -0
  119. package/dist/collection/components/gov-form/file/gov-form-file.css +3 -0
  120. package/dist/collection/components/gov-form/file/gov-form-file.js +7 -1
  121. package/dist/collection/components/gov-form/file/gov-form-file.js.map +1 -1
  122. package/dist/collection/components/gov-form/group/gov-form-group.css +3 -0
  123. package/dist/collection/components/gov-form/input/gov-form-input.css +6 -3
  124. package/dist/collection/components/gov-form/input/gov-form-input.js +7 -1
  125. package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
  126. package/dist/collection/components/gov-form/label/gov-form-label.css +3 -0
  127. package/dist/collection/components/gov-form/message/gov-form-message.css +3 -0
  128. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.css +3 -3
  129. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js +10 -2
  130. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js.map +1 -1
  131. package/dist/collection/components/gov-form/password-power/constants.js +6 -0
  132. package/dist/collection/components/gov-form/password-power/constants.js.map +1 -0
  133. package/dist/collection/components/gov-form/password-power/gov-form-password-power.css +246 -0
  134. package/dist/collection/components/gov-form/password-power/gov-form-password-power.js +43 -0
  135. package/dist/collection/components/gov-form/password-power/gov-form-password-power.js.map +1 -0
  136. package/dist/collection/components/gov-form/radio/gov-form-radio.css +3 -0
  137. package/dist/collection/components/gov-form/radio/gov-form-radio.js +35 -1
  138. package/dist/collection/components/gov-form/radio/gov-form-radio.js.map +1 -1
  139. package/dist/collection/components/gov-form/search/gov-form-search.css +7 -0
  140. package/dist/collection/components/gov-form/select/gov-form-select.css +3 -3
  141. package/dist/collection/components/gov-form/select/gov-form-select.js +2 -2
  142. package/dist/collection/components/gov-form/select/gov-form-select.js.map +1 -1
  143. package/dist/collection/components/gov-form/switch/gov-form-switch.css +3 -0
  144. package/dist/collection/components/gov-form/switch/gov-form-switch.js +52 -18
  145. package/dist/collection/components/gov-form/switch/gov-form-switch.js.map +1 -1
  146. package/dist/collection/components/gov-grid/gov-grid-item.css +3 -0
  147. package/dist/collection/components/gov-grid/gov-grid.css +3 -0
  148. package/dist/collection/components/gov-icon/gov-icon.css +3 -0
  149. package/dist/collection/components/gov-icon/list.js +148 -5
  150. package/dist/collection/components/gov-icon/list.js.map +1 -1
  151. package/dist/collection/components/gov-layout/gov-layout-column.css +3 -0
  152. package/dist/collection/components/gov-layout/gov-layout.css +3 -0
  153. package/dist/collection/components/gov-loading/gov-loading.css +3 -0
  154. package/dist/collection/components/gov-message/gov-message.css +3 -0
  155. package/dist/collection/components/gov-modal/gov-modal.css +6 -3
  156. package/dist/collection/components/gov-modal/gov-modal.js +35 -22
  157. package/dist/collection/components/gov-modal/gov-modal.js.map +1 -1
  158. package/dist/collection/components/gov-nav/gov-nav-item.css +3 -0
  159. package/dist/collection/components/gov-nav/gov-nav.css +3 -0
  160. package/dist/collection/components/gov-pagination/gov-pagination.css +88 -39
  161. package/dist/collection/components/gov-pagination/gov-pagination.js +63 -29
  162. package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
  163. package/dist/collection/components/gov-promp/gov-prompt.css +6 -3
  164. package/dist/collection/components/gov-promp/gov-prompt.js +18 -5
  165. package/dist/collection/components/gov-promp/gov-prompt.js.map +1 -1
  166. package/dist/collection/components/gov-side-nav/gov-side-nav-item.css +3 -0
  167. package/dist/collection/components/gov-side-nav/gov-side-nav-item.js +1 -1
  168. package/dist/collection/components/gov-side-nav/gov-side-nav-item.js.map +1 -1
  169. package/dist/collection/components/gov-side-nav/gov-side-nav.css +3 -0
  170. package/dist/collection/components/gov-spacer/gov-spacer.css +3 -0
  171. package/dist/collection/components/gov-spacer/gov-spacer.js +3 -2
  172. package/dist/collection/components/gov-spacer/gov-spacer.js.map +1 -1
  173. package/dist/collection/components/gov-statsbar/constants.js +1 -1
  174. package/dist/collection/components/gov-statsbar/constants.js.map +1 -1
  175. package/dist/collection/components/gov-statsbar/gov-statsbar-item.css +3 -0
  176. package/dist/collection/components/gov-statsbar/gov-statsbar.css +3 -0
  177. package/dist/collection/components/gov-statsbar/gov-statsbar.js +2 -2
  178. package/dist/collection/components/gov-statsbar/gov-statsbar.js.map +1 -1
  179. package/dist/collection/components/gov-stepper/gov-stepper-item.css +3 -0
  180. package/dist/collection/components/gov-stepper/gov-stepper.css +3 -0
  181. package/dist/collection/components/gov-tabs/gov-tabs-item.css +3 -0
  182. package/dist/collection/components/gov-tabs/gov-tabs.css +3 -0
  183. package/dist/collection/components/gov-tabs/gov-tabs.js +1 -1
  184. package/dist/collection/components/gov-tabs/gov-tabs.js.map +1 -1
  185. package/dist/collection/components/gov-tile/constants.js +1 -0
  186. package/dist/collection/components/gov-tile/constants.js.map +1 -1
  187. package/dist/collection/components/gov-tile/gov-tile.css +11 -4
  188. package/dist/collection/components/gov-tile/gov-tile.js +3 -6
  189. package/dist/collection/components/gov-tile/gov-tile.js.map +1 -1
  190. package/dist/collection/components/gov-tiles/gov-tiles.css +6 -0
  191. package/dist/collection/components/gov-tiles/gov-tiles.js +19 -0
  192. package/dist/collection/components/gov-tiles/gov-tiles.js.map +1 -1
  193. package/dist/collection/components/gov-toast/gov-toast.css +3 -0
  194. package/dist/collection/components/gov-toast/gov-toast.js +1 -1
  195. package/dist/collection/components/gov-toast/gov-toast.js.map +1 -1
  196. package/dist/collection/components/gov-tooltip/gov-tooltip-content.css +3 -0
  197. package/dist/collection/components/gov-tooltip/gov-tooltip.css +3 -0
  198. package/dist/collection/components/gov-wizzard/gov-wizzard-item.css +3 -0
  199. package/dist/collection/components/gov-wizzard/gov-wizzard-item.js +1 -1
  200. package/dist/collection/components/gov-wizzard/gov-wizzard-item.js.map +1 -1
  201. package/dist/collection/components/gov-wizzard/gov-wizzard.css +3 -0
  202. package/dist/collection/pages/Accordion.js +97 -2
  203. package/dist/collection/pages/Accordion.js.map +1 -1
  204. package/dist/collection/pages/Badge.js +27 -0
  205. package/dist/collection/pages/Badge.js.map +1 -1
  206. package/dist/collection/pages/Button.js +440 -120
  207. package/dist/collection/pages/Button.js.map +1 -1
  208. package/dist/collection/pages/Error.js +1 -1
  209. package/dist/collection/pages/Error.js.map +1 -1
  210. package/dist/collection/pages/Forms.js +46 -29
  211. package/dist/collection/pages/Forms.js.map +1 -1
  212. package/dist/collection/pages/Pagination.js +12 -2
  213. package/dist/collection/pages/Pagination.js.map +1 -1
  214. package/dist/collection/pages/Stepper.js +6 -6
  215. package/dist/collection/pages/Stepper.js.map +1 -1
  216. package/dist/collection/pages/Tiles.js +39 -0
  217. package/dist/collection/pages/Tiles.js.map +1 -1
  218. package/dist/collection/pages/ToastMessage.js +1 -1
  219. package/dist/collection/pages/ToastMessage.js.map +1 -1
  220. package/dist/collection/pages/ToastMessageCountdown.js +1 -1
  221. package/dist/collection/pages/ToastMessageCountdown.js.map +1 -1
  222. package/dist/collection/pages/Wizzard.js +3 -3
  223. package/dist/collection/pages/Wizzard.js.map +1 -1
  224. package/dist/collection/utils/array.utils.js +2 -0
  225. package/dist/collection/utils/array.utils.js.map +1 -0
  226. package/dist/components/Fragment.js +5 -0
  227. package/dist/components/Fragment.js.map +1 -0
  228. package/dist/components/constants11.js +2 -2
  229. package/dist/components/constants11.js.map +1 -1
  230. package/dist/components/constants3.js +2 -1
  231. package/dist/components/constants3.js.map +1 -1
  232. package/dist/components/gov-accordion-item.js +2 -3
  233. package/dist/components/gov-accordion-item.js.map +1 -1
  234. package/dist/components/gov-accordion.js +3 -2
  235. package/dist/components/gov-accordion.js.map +1 -1
  236. package/dist/components/gov-alert.js +1 -2
  237. package/dist/components/gov-alert.js.map +1 -1
  238. package/dist/components/gov-app.js +673 -166
  239. package/dist/components/gov-app.js.map +1 -1
  240. package/dist/components/gov-attachments-item2.js +1 -2
  241. package/dist/components/gov-attachments-item2.js.map +1 -1
  242. package/dist/components/gov-attachments2.js +0 -1
  243. package/dist/components/gov-attachments2.js.map +1 -1
  244. package/dist/components/gov-backdrop2.js +5 -5
  245. package/dist/components/gov-backdrop2.js.map +1 -1
  246. package/dist/components/gov-badge2.js +16 -18
  247. package/dist/components/gov-badge2.js.map +1 -1
  248. package/dist/components/gov-breadcrumbs.js +1 -2
  249. package/dist/components/gov-breadcrumbs.js.map +1 -1
  250. package/dist/components/gov-button2.js +17 -7
  251. package/dist/components/gov-button2.js.map +1 -1
  252. package/dist/components/gov-card.js +1 -2
  253. package/dist/components/gov-card.js.map +1 -1
  254. package/dist/components/gov-container.js +0 -1
  255. package/dist/components/gov-container.js.map +1 -1
  256. package/dist/components/gov-cookiebar.js +0 -1
  257. package/dist/components/gov-cookiebar.js.map +1 -1
  258. package/dist/components/gov-empty.js +0 -1
  259. package/dist/components/gov-empty.js.map +1 -1
  260. package/dist/components/gov-error-code.js +0 -1
  261. package/dist/components/gov-error-code.js.map +1 -1
  262. package/dist/components/gov-form-autocomplete2.js +4 -1
  263. package/dist/components/gov-form-autocomplete2.js.map +1 -1
  264. package/dist/components/gov-form-checkbox.js +24 -8
  265. package/dist/components/gov-form-checkbox.js.map +1 -1
  266. package/dist/components/gov-form-control.js +0 -1
  267. package/dist/components/gov-form-control.js.map +1 -1
  268. package/dist/components/gov-form-file.js +7 -2
  269. package/dist/components/gov-form-file.js.map +1 -1
  270. package/dist/components/gov-form-group.js +0 -1
  271. package/dist/components/gov-form-group.js.map +1 -1
  272. package/dist/components/gov-form-input2.js +8 -3
  273. package/dist/components/gov-form-input2.js.map +1 -1
  274. package/dist/components/gov-form-label.js +0 -1
  275. package/dist/components/gov-form-label.js.map +1 -1
  276. package/dist/components/gov-form-message2.js +0 -1
  277. package/dist/components/gov-form-message2.js.map +1 -1
  278. package/dist/components/gov-form-multi-select.js +11 -4
  279. package/dist/components/gov-form-multi-select.js.map +1 -1
  280. package/dist/components/gov-form-password-power.d.ts +11 -0
  281. package/dist/components/gov-form-password-power.js +43 -0
  282. package/dist/components/gov-form-password-power.js.map +1 -0
  283. package/dist/components/gov-form-radio.js +18 -2
  284. package/dist/components/gov-form-radio.js.map +1 -1
  285. package/dist/components/gov-form-search.js +1 -2
  286. package/dist/components/gov-form-search.js.map +1 -1
  287. package/dist/components/gov-form-select2.js +3 -4
  288. package/dist/components/gov-form-select2.js.map +1 -1
  289. package/dist/components/gov-form-switch.js +24 -8
  290. package/dist/components/gov-form-switch.js.map +1 -1
  291. package/dist/components/gov-grid-item.js +0 -1
  292. package/dist/components/gov-grid-item.js.map +1 -1
  293. package/dist/components/gov-grid.js +0 -1
  294. package/dist/components/gov-grid.js.map +1 -1
  295. package/dist/components/gov-icon2.js +1 -2
  296. package/dist/components/gov-icon2.js.map +1 -1
  297. package/dist/components/gov-layout-column.js +0 -1
  298. package/dist/components/gov-layout-column.js.map +1 -1
  299. package/dist/components/gov-layout.js +0 -1
  300. package/dist/components/gov-layout.js.map +1 -1
  301. package/dist/components/gov-loading.js +0 -1
  302. package/dist/components/gov-loading.js.map +1 -1
  303. package/dist/components/gov-message.js +0 -1
  304. package/dist/components/gov-message.js.map +1 -1
  305. package/dist/components/gov-modal.js +20 -14
  306. package/dist/components/gov-modal.js.map +1 -1
  307. package/dist/components/gov-nav-item.js +0 -1
  308. package/dist/components/gov-nav-item.js.map +1 -1
  309. package/dist/components/gov-nav.js +0 -1
  310. package/dist/components/gov-nav.js.map +1 -1
  311. package/dist/components/gov-pagination.js +50 -17
  312. package/dist/components/gov-pagination.js.map +1 -1
  313. package/dist/components/gov-prompt.js +13 -7
  314. package/dist/components/gov-prompt.js.map +1 -1
  315. package/dist/components/gov-side-nav-item.js +1 -2
  316. package/dist/components/gov-side-nav-item.js.map +1 -1
  317. package/dist/components/gov-side-nav.js +0 -1
  318. package/dist/components/gov-side-nav.js.map +1 -1
  319. package/dist/components/gov-spacer.js +1 -2
  320. package/dist/components/gov-spacer.js.map +1 -1
  321. package/dist/components/gov-statsbar-item.js +0 -1
  322. package/dist/components/gov-statsbar-item.js.map +1 -1
  323. package/dist/components/gov-statsbar.js +2 -3
  324. package/dist/components/gov-statsbar.js.map +1 -1
  325. package/dist/components/gov-stepper-item.js +0 -1
  326. package/dist/components/gov-stepper-item.js.map +1 -1
  327. package/dist/components/gov-stepper.js +0 -1
  328. package/dist/components/gov-stepper.js.map +1 -1
  329. package/dist/components/gov-tabs-item.js +0 -1
  330. package/dist/components/gov-tabs-item.js.map +1 -1
  331. package/dist/components/gov-tabs.js +1 -2
  332. package/dist/components/gov-tabs.js.map +1 -1
  333. package/dist/components/gov-tile.js +3 -3
  334. package/dist/components/gov-tile.js.map +1 -1
  335. package/dist/components/gov-tiles.js +4 -3
  336. package/dist/components/gov-tiles.js.map +1 -1
  337. package/dist/components/gov-toast.js +1 -2
  338. package/dist/components/gov-toast.js.map +1 -1
  339. package/dist/components/gov-tooltip-content.js +0 -1
  340. package/dist/components/gov-tooltip-content.js.map +1 -1
  341. package/dist/components/gov-tooltip.js +0 -1
  342. package/dist/components/gov-tooltip.js.map +1 -1
  343. package/dist/components/gov-wizzard-item.js +1 -2
  344. package/dist/components/gov-wizzard-item.js.map +1 -1
  345. package/dist/components/gov-wizzard.js +0 -1
  346. package/dist/components/gov-wizzard.js.map +1 -1
  347. package/dist/components/index.d.ts +1 -0
  348. package/dist/components/index.js +1 -0
  349. package/dist/components/index.js.map +1 -1
  350. package/dist/core/core.css +1 -1
  351. package/dist/core/core.esm.js +1 -1
  352. package/dist/core/core.esm.js.map +1 -1
  353. package/dist/core/{p-e7dd2002.entry.js → p-00e1e600.entry.js} +2 -2
  354. package/dist/core/p-00e1e600.entry.js.map +1 -0
  355. package/dist/core/{p-ae3e2d60.entry.js → p-04fc18ab.entry.js} +2 -2
  356. package/dist/core/p-04fc18ab.entry.js.map +1 -0
  357. package/dist/core/p-0950ba85.entry.js +2 -0
  358. package/dist/core/p-0950ba85.entry.js.map +1 -0
  359. package/dist/core/{p-5fa41af9.js → p-1020a160.js} +1 -1
  360. package/dist/core/p-1020a160.js.map +1 -0
  361. package/dist/core/{p-9e6a41cc.entry.js → p-16608a87.entry.js} +2 -2
  362. package/dist/core/p-16608a87.entry.js.map +1 -0
  363. package/dist/core/{p-f5ee7634.entry.js → p-1bb5184f.entry.js} +2 -2
  364. package/dist/core/{p-f5ee7634.entry.js.map → p-1bb5184f.entry.js.map} +1 -1
  365. package/dist/core/p-1c06fb0b.entry.js +2 -0
  366. package/dist/core/p-1c06fb0b.entry.js.map +1 -0
  367. package/dist/core/p-1c1d0bbe.js +2 -0
  368. package/dist/core/p-1c1d0bbe.js.map +1 -0
  369. package/dist/core/{p-b48a3112.entry.js → p-4b375a4d.entry.js} +2 -2
  370. package/dist/core/{p-b48a3112.entry.js.map → p-4b375a4d.entry.js.map} +1 -1
  371. package/dist/core/p-5b4e3bdf.entry.js +2 -0
  372. package/dist/core/p-5b4e3bdf.entry.js.map +1 -0
  373. package/dist/core/p-613d8ed8.entry.js +2 -0
  374. package/dist/core/p-613d8ed8.entry.js.map +1 -0
  375. package/dist/core/{p-6d40721b.entry.js → p-63d2e8ec.entry.js} +2 -2
  376. package/dist/core/{p-6d40721b.entry.js.map → p-63d2e8ec.entry.js.map} +1 -1
  377. package/dist/core/{p-f5ffcb3d.entry.js → p-72b9e63a.entry.js} +2 -2
  378. package/dist/core/{p-5cecdaaf.entry.js → p-72f16a95.entry.js} +2 -2
  379. package/dist/core/p-7ac5f119.entry.js +2 -0
  380. package/dist/core/{p-63079b80.entry.js.map → p-7ac5f119.entry.js.map} +1 -1
  381. package/dist/core/{p-03d40bf4.entry.js → p-833ab414.entry.js} +2 -2
  382. package/dist/core/{p-03d40bf4.entry.js.map → p-833ab414.entry.js.map} +1 -1
  383. package/dist/core/{p-34360f92.entry.js → p-84fda9dd.entry.js} +2 -2
  384. package/dist/core/{p-34360f92.entry.js.map → p-84fda9dd.entry.js.map} +1 -1
  385. package/dist/core/p-851939ff.entry.js +2 -0
  386. package/dist/core/p-851939ff.entry.js.map +1 -0
  387. package/dist/core/p-8dacc8dc.entry.js +2 -0
  388. package/dist/core/p-8dacc8dc.entry.js.map +1 -0
  389. package/dist/core/p-8dbad4a2.entry.js +2 -0
  390. package/dist/core/p-8dbad4a2.entry.js.map +1 -0
  391. package/dist/core/p-902002e9.entry.js +2 -0
  392. package/dist/core/p-902002e9.entry.js.map +1 -0
  393. package/dist/core/p-95f21fbf.entry.js +2 -0
  394. package/dist/core/p-95f21fbf.entry.js.map +1 -0
  395. package/dist/core/p-99155ec0.entry.js +2 -0
  396. package/dist/core/p-99155ec0.entry.js.map +1 -0
  397. package/dist/core/{p-7591ecd4.entry.js → p-9ca0a11c.entry.js} +2 -2
  398. package/dist/core/{p-7591ecd4.entry.js.map → p-9ca0a11c.entry.js.map} +1 -1
  399. package/dist/core/p-9ceeba49.entry.js +2 -0
  400. package/dist/core/p-9ceeba49.entry.js.map +1 -0
  401. package/dist/core/{p-ec617f18.entry.js → p-9d30e79e.entry.js} +2 -2
  402. package/dist/core/{p-ec617f18.entry.js.map → p-9d30e79e.entry.js.map} +1 -1
  403. package/dist/core/{p-38fb2d42.entry.js → p-a36234bb.entry.js} +2 -2
  404. package/dist/core/p-a36234bb.entry.js.map +1 -0
  405. package/dist/core/p-ac33c5ef.entry.js +2 -0
  406. package/dist/core/p-ac33c5ef.entry.js.map +1 -0
  407. package/dist/core/p-b966062a.entry.js +2 -0
  408. package/dist/core/p-b966062a.entry.js.map +1 -0
  409. package/dist/core/{p-fc1581f9.entry.js → p-bd560ffc.entry.js} +2 -2
  410. package/dist/core/{p-fc1581f9.entry.js.map → p-bd560ffc.entry.js.map} +1 -1
  411. package/dist/core/{p-93facb4a.entry.js → p-c0430e75.entry.js} +2 -2
  412. package/dist/core/p-c0430e75.entry.js.map +1 -0
  413. package/dist/core/p-c9948e57.entry.js +2 -0
  414. package/dist/core/p-c9948e57.entry.js.map +1 -0
  415. package/dist/core/p-cd869237.js +2 -0
  416. package/dist/core/p-cd869237.js.map +1 -0
  417. package/dist/core/{p-9cc6ed83.entry.js → p-e57d250f.entry.js} +2 -2
  418. package/dist/core/p-e57d250f.entry.js.map +1 -0
  419. package/dist/core/p-ecdfb046.entry.js +2 -0
  420. package/dist/core/p-ecdfb046.entry.js.map +1 -0
  421. package/dist/core/p-fac1c202.entry.js +2 -0
  422. package/dist/core/p-fac1c202.entry.js.map +1 -0
  423. package/dist/custom-elements/index.d.ts +6 -0
  424. package/dist/custom-elements/index.js +1 -1
  425. package/dist/custom-elements/index.js.map +1 -1
  426. package/dist/esm/Fragment-8d8d54fb.js +5 -0
  427. package/dist/esm/Fragment-8d8d54fb.js.map +1 -0
  428. package/dist/esm/{constants-d550c816.js → constants-037c35bc.js} +3 -3
  429. package/dist/esm/constants-037c35bc.js.map +1 -0
  430. package/dist/esm/{constants-1a2146b2.js → constants-45f6db4c.js} +3 -2
  431. package/dist/esm/constants-45f6db4c.js.map +1 -0
  432. package/dist/esm/core.js +1 -1
  433. package/dist/esm/gov-accordion-item.entry.js +2 -2
  434. package/dist/esm/gov-accordion-item.entry.js.map +1 -1
  435. package/dist/esm/gov-accordion.entry.js +2 -1
  436. package/dist/esm/gov-accordion.entry.js.map +1 -1
  437. package/dist/esm/gov-alert.entry.js +1 -1
  438. package/dist/esm/gov-alert.entry.js.map +1 -1
  439. package/dist/esm/gov-app.entry.js +673 -165
  440. package/dist/esm/gov-app.entry.js.map +1 -1
  441. package/dist/esm/gov-attachments_3.entry.js +1 -1
  442. package/dist/esm/gov-attachments_3.entry.js.map +1 -1
  443. package/dist/esm/gov-backdrop.entry.js +5 -4
  444. package/dist/esm/gov-backdrop.entry.js.map +1 -1
  445. package/dist/esm/gov-badge.entry.js +17 -17
  446. package/dist/esm/gov-badge.entry.js.map +1 -1
  447. package/dist/esm/gov-breadcrumbs.entry.js +1 -1
  448. package/dist/esm/gov-breadcrumbs.entry.js.map +1 -1
  449. package/dist/esm/gov-button.entry.js +14 -3
  450. package/dist/esm/gov-button.entry.js.map +1 -1
  451. package/dist/esm/gov-card.entry.js +1 -1
  452. package/dist/esm/gov-card.entry.js.map +1 -1
  453. package/dist/esm/gov-form-autocomplete.entry.js +4 -0
  454. package/dist/esm/gov-form-autocomplete.entry.js.map +1 -1
  455. package/dist/esm/gov-form-checkbox.entry.js +23 -7
  456. package/dist/esm/gov-form-checkbox.entry.js.map +1 -1
  457. package/dist/esm/gov-form-file.entry.js +7 -1
  458. package/dist/esm/gov-form-file.entry.js.map +1 -1
  459. package/dist/esm/gov-form-input.entry.js +8 -2
  460. package/dist/esm/gov-form-input.entry.js.map +1 -1
  461. package/dist/esm/gov-form-multi-select.entry.js +11 -3
  462. package/dist/esm/gov-form-multi-select.entry.js.map +1 -1
  463. package/dist/esm/gov-form-password-power.entry.js +24 -0
  464. package/dist/esm/gov-form-password-power.entry.js.map +1 -0
  465. package/dist/esm/gov-form-radio.entry.js +17 -1
  466. package/dist/esm/gov-form-radio.entry.js.map +1 -1
  467. package/dist/esm/gov-form-search.entry.js +1 -1
  468. package/dist/esm/gov-form-search.entry.js.map +1 -1
  469. package/dist/esm/gov-form-select.entry.js +3 -3
  470. package/dist/esm/gov-form-select.entry.js.map +1 -1
  471. package/dist/esm/gov-form-switch.entry.js +23 -7
  472. package/dist/esm/gov-form-switch.entry.js.map +1 -1
  473. package/dist/esm/gov-icon.entry.js +1 -1
  474. package/dist/esm/gov-modal.entry.js +19 -13
  475. package/dist/esm/gov-modal.entry.js.map +1 -1
  476. package/dist/esm/gov-pagination.entry.js +50 -16
  477. package/dist/esm/gov-pagination.entry.js.map +1 -1
  478. package/dist/esm/gov-prompt.entry.js +12 -6
  479. package/dist/esm/gov-prompt.entry.js.map +1 -1
  480. package/dist/esm/gov-side-nav-item.entry.js +1 -1
  481. package/dist/esm/gov-side-nav-item.entry.js.map +1 -1
  482. package/dist/esm/gov-spacer.entry.js +1 -1
  483. package/dist/esm/gov-spacer.entry.js.map +1 -1
  484. package/dist/esm/gov-statsbar-item.entry.js +1 -1
  485. package/dist/esm/gov-statsbar.entry.js +2 -2
  486. package/dist/esm/gov-statsbar.entry.js.map +1 -1
  487. package/dist/esm/gov-tabs.entry.js +1 -1
  488. package/dist/esm/gov-tabs.entry.js.map +1 -1
  489. package/dist/esm/gov-tile.entry.js +3 -2
  490. package/dist/esm/gov-tile.entry.js.map +1 -1
  491. package/dist/esm/gov-tiles.entry.js +2 -1
  492. package/dist/esm/gov-tiles.entry.js.map +1 -1
  493. package/dist/esm/gov-toast.entry.js +1 -1
  494. package/dist/esm/gov-toast.entry.js.map +1 -1
  495. package/dist/esm/gov-wizzard-item.entry.js +1 -1
  496. package/dist/esm/gov-wizzard-item.entry.js.map +1 -1
  497. package/dist/esm/index-00e9a0d5.js +4 -0
  498. package/dist/esm/loader.js +1 -1
  499. package/dist/hydrate/index.js +946 -271
  500. package/dist/types/components/gov-accordion/gov-accordion.d.ts +4 -0
  501. package/dist/types/components/gov-badge/constants.d.ts +4 -2
  502. package/dist/types/components/gov-badge/gov-badge.d.ts +4 -9
  503. package/dist/types/components/gov-button/constants.d.ts +3 -2
  504. package/dist/types/components/gov-button/gov-button.d.ts +2 -0
  505. package/dist/types/components/gov-form/checkbox/gov-form-checkbox.d.ts +8 -3
  506. package/dist/types/components/gov-form/file/gov-form-file.d.ts +1 -0
  507. package/dist/types/components/gov-form/password-power/constants.d.ts +5 -0
  508. package/dist/types/components/gov-form/password-power/gov-form-password-power.d.ts +7 -0
  509. package/dist/types/components/gov-form/radio/gov-form-radio.d.ts +5 -0
  510. package/dist/types/components/gov-form/switch/gov-form-switch.d.ts +8 -3
  511. package/dist/types/components/gov-modal/gov-modal.d.ts +3 -1
  512. package/dist/types/components/gov-pagination/gov-pagination.d.ts +7 -3
  513. package/dist/types/components/gov-promp/gov-prompt.d.ts +3 -1
  514. package/dist/types/components/gov-statsbar/constants.d.ts +2 -2
  515. package/dist/types/components/gov-tile/constants.d.ts +1 -0
  516. package/dist/types/components/gov-tile/gov-tile.d.ts +1 -2
  517. package/dist/types/components/gov-tiles/gov-tiles.d.ts +4 -0
  518. package/dist/types/components.d.ts +65 -14
  519. package/dist/types/utils/array.utils.d.ts +1 -0
  520. package/package.json +1 -1
  521. package/dist/cjs/constants-5f6bbc50.js.map +0 -1
  522. package/dist/cjs/constants-dc2ba6bd.js.map +0 -1
  523. package/dist/core/p-00182e76.entry.js +0 -2
  524. package/dist/core/p-00182e76.entry.js.map +0 -1
  525. package/dist/core/p-0278fcb3.entry.js +0 -2
  526. package/dist/core/p-0278fcb3.entry.js.map +0 -1
  527. package/dist/core/p-08f14c8b.entry.js +0 -2
  528. package/dist/core/p-08f14c8b.entry.js.map +0 -1
  529. package/dist/core/p-0a152bb7.entry.js +0 -2
  530. package/dist/core/p-0a152bb7.entry.js.map +0 -1
  531. package/dist/core/p-14f8f2fb.js +0 -2
  532. package/dist/core/p-14f8f2fb.js.map +0 -1
  533. package/dist/core/p-2128abe1.entry.js +0 -2
  534. package/dist/core/p-2128abe1.entry.js.map +0 -1
  535. package/dist/core/p-22722ff3.entry.js +0 -2
  536. package/dist/core/p-22722ff3.entry.js.map +0 -1
  537. package/dist/core/p-2419f4cd.entry.js +0 -2
  538. package/dist/core/p-2419f4cd.entry.js.map +0 -1
  539. package/dist/core/p-38fb2d42.entry.js.map +0 -1
  540. package/dist/core/p-4681cb3a.entry.js +0 -2
  541. package/dist/core/p-4681cb3a.entry.js.map +0 -1
  542. package/dist/core/p-469273be.entry.js +0 -2
  543. package/dist/core/p-469273be.entry.js.map +0 -1
  544. package/dist/core/p-5547dbb0.entry.js +0 -2
  545. package/dist/core/p-5547dbb0.entry.js.map +0 -1
  546. package/dist/core/p-5fa41af9.js.map +0 -1
  547. package/dist/core/p-63079b80.entry.js +0 -2
  548. package/dist/core/p-8965f84a.entry.js +0 -2
  549. package/dist/core/p-8965f84a.entry.js.map +0 -1
  550. package/dist/core/p-93facb4a.entry.js.map +0 -1
  551. package/dist/core/p-9cc6ed83.entry.js.map +0 -1
  552. package/dist/core/p-9e6a41cc.entry.js.map +0 -1
  553. package/dist/core/p-ad0cc981.entry.js +0 -2
  554. package/dist/core/p-ad0cc981.entry.js.map +0 -1
  555. package/dist/core/p-ae3e2d60.entry.js.map +0 -1
  556. package/dist/core/p-e52a042f.entry.js +0 -2
  557. package/dist/core/p-e52a042f.entry.js.map +0 -1
  558. package/dist/core/p-e7dd2002.entry.js.map +0 -1
  559. package/dist/core/p-f2dc8ce3.entry.js +0 -2
  560. package/dist/core/p-f2dc8ce3.entry.js.map +0 -1
  561. package/dist/core/p-fc91591d.entry.js +0 -2
  562. package/dist/core/p-fc91591d.entry.js.map +0 -1
  563. package/dist/esm/constants-1a2146b2.js.map +0 -1
  564. package/dist/esm/constants-d550c816.js.map +0 -1
  565. /package/dist/core/{p-f5ffcb3d.entry.js.map → p-72b9e63a.entry.js.map} +0 -0
  566. /package/dist/core/{p-5cecdaaf.entry.js.map → p-72f16a95.entry.js.map} +0 -0
@@ -43,7 +43,7 @@ export class GovCard {
43
43
  }
44
44
  render() {
45
45
  const HeadlineTag = this.headlineTag;
46
- return (h(Host, { class: this.h.classes(CardClass.root), "is-expanded": this.isExpanded, collapsible: booleanString(this.collapsible), promotion: this.promotion }, this.label && this.collapsible ? (h("button", { id: this.headlineId, class: CardClass.header, "aria-label": this.wcagTriggerLabel, "aria-labelledby": this.wcagTriggerLabelledBy, "aria-expanded": booleanString(this.isExpanded), "aria-controls": this.contentId, onClick: this.onClickHandler.bind(this) }, h(HeadlineTag, { class: CardClass.title }, this.label), h("gov-icon", { class: CardClass.arrow, name: "arrow-down" }))) : null, this.label && !this.collapsible ? (h("div", { class: CardClass.header }, h(HeadlineTag, { class: CardClass.title }, this.label))) : null, h("div", { class: CardClass.inner, id: this.contentId, "aria-hidden": this.collapsible ? booleanString(!this.isExpanded) : undefined, hidden: this.collapsible ? !this.isExpanded : undefined, "aria-labelledby": this.collapsible ? this.headlineId : undefined }, this.h.hasSlot('img') && (h("p", { class: CardClass.img }, h("slot", { name: "img" }))), h("div", { class: CardClass.main }, this.h.hasSlot('icon') && this.promotion && (h("div", { class: CardClass.icon }, h("slot", { name: "icon" }))), h("div", { class: CardClass.content }, h("slot", null)), this.h.hasSlot('btn') && this.promotion && (h("div", { class: CardClass.btns }, h("slot", { name: "btn" })))), this.h.hasSlot('footer') && (h("div", { class: CardClass.footer }, h("slot", { name: "footer" }))))));
46
+ return (h(Host, { class: this.h.classes(CardClass.root), "is-expanded": this.isExpanded, collapsible: booleanString(this.collapsible), promotion: this.promotion }, this.label && this.collapsible ? (h("button", { id: this.headlineId, class: CardClass.header, "aria-label": this.wcagTriggerLabel, "aria-labelledby": this.wcagTriggerLabelledBy, "aria-expanded": booleanString(this.isExpanded), "aria-controls": this.contentId, onClick: this.onClickHandler.bind(this) }, h(HeadlineTag, { class: CardClass.title }, this.label), h("gov-icon", { class: CardClass.arrow, name: "chevron-down" }))) : null, this.label && !this.collapsible ? (h("div", { class: CardClass.header }, h(HeadlineTag, { class: CardClass.title }, this.label))) : null, h("div", { class: CardClass.inner, id: this.contentId, "aria-hidden": this.collapsible ? booleanString(!this.isExpanded) : undefined, hidden: this.collapsible ? !this.isExpanded : undefined, "aria-labelledby": this.collapsible ? this.headlineId : undefined }, this.h.hasSlot('img') && (h("p", { class: CardClass.img }, h("slot", { name: "img" }))), h("div", { class: CardClass.main }, this.h.hasSlot('icon') && this.promotion && (h("div", { class: CardClass.icon }, h("slot", { name: "icon" }))), h("div", { class: CardClass.content }, h("slot", null)), this.h.hasSlot('btn') && this.promotion && (h("div", { class: CardClass.btns }, h("slot", { name: "btn" })))), this.h.hasSlot('footer') && (h("div", { class: CardClass.footer }, h("slot", { name: "footer" }))))));
47
47
  }
48
48
  onClickHandler(e) {
49
49
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"gov-card.js","sourceRoot":"","sources":["../../../../../../src/components/gov-card/gov-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAOzC,MAAM,OAAO,OAAO;EAKnB;qBAWsC,KAAK;;uBAQH,KAAK;oBAIR,KAAK;uBAI0B,IAAI;;;;IA1BvE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IAC7C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;GAC3C;EAuCD,mBAAmB,CAAC,QAAgB;IACnC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9D,IAAI,QAAQ,EAAE;MACb,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClC,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,UAAU,QAAQ,kBAAkB,CAAC,CAAA;OACnE;KACD;EACF,CAAC;EAED,iBAAiB;IAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;EAC3C,CAAC;EAED,KAAK,CAAC,kBAAkB;IACvB,IAAI,uBAAuB,EAAE,EAAE;MAC9B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;MAChB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;KACzB;EACF,CAAC;EAEO,WAAW;IAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;EACnE,CAAC;EAED,MAAM;IACL,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAEpC,OAAO,CACN,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAe,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;MAChJ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjC,cACC,EAAE,EAAE,IAAI,CAAC,UAAU,EACnB,KAAK,EAAE,SAAS,CAAC,MAAM,gBACX,IAAI,CAAC,gBAAgB,qBAChB,IAAI,CAAC,qBAAqB,mBAC5B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,mBAC9B,IAAI,CAAC,SAAS,EAC7B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAEvC,EAAC,WAAW,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAG,IAAI,CAAC,KAAK,CAAe;QAC/D,gBAAU,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAC,YAAY,GAAY,CACvD,CACT,CAAC,CAAC,CAAC,IAAI;MAEP,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClC,WAAK,KAAK,EAAE,SAAS,CAAC,MAAM;QAC3B,EAAC,WAAW,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAG,IAAI,CAAC,KAAK,CAAe,CAC1D,CACN,CAAC,CAAC,CAAC,IAAI;MAER,WACC,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,EAAE,EAAE,IAAI,CAAC,SAAS,iBACL,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3E,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,qBACtC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAE9D,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CACzB,SAAG,KAAK,EAAE,SAAS,CAAC,GAAG;UACtB,YAAM,IAAI,EAAC,KAAK,GAAG,CAChB,CACJ;QAED,WAAK,KAAK,EAAE,SAAS,CAAC,IAAI;UACxB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAC5C,WAAK,KAAK,EAAE,SAAS,CAAC,IAAI;YACzB,YAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACN;UAED,WAAK,KAAK,EAAE,SAAS,CAAC,OAAO;YAC5B,eAAQ,CACH;UAEL,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAC3C,WAAK,KAAK,EAAE,SAAS,CAAC,IAAI;YACzB,YAAM,IAAI,EAAC,KAAK,GAAG,CACd,CACN,CACI;QAEL,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC5B,WAAK,KAAK,EAAE,SAAS,CAAC,MAAM;UAC3B,YAAM,IAAI,EAAC,QAAQ,GAAG,CACjB,CACN,CACI,CACA,CACP,CAAA;EACF,CAAC;EAEO,cAAc,CAAC,CAAC;IACvB,CAAC,CAAC,eAAe,EAAE,CAAA;IACnB,IAAI,IAAI,CAAC,WAAW,EAAE;MACrB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;MAClC,IAAI,CAAC,WAAW,EAAE,CAAA;KAClB;EACF,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,IAAI;IACT,IAAI,IAAI,CAAC,WAAW,EAAE;MACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;MACtB,IAAI,CAAC,WAAW,EAAE,CAAA;KAClB;EACF,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,KAAK;IACV,IAAI,IAAI,CAAC,WAAW,EAAE;MACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;MACvB,IAAI,CAAC,WAAW,EAAE,CAAA;KAClB;EACF,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,YAAY;IACjB,IAAI,IAAI,CAAC,WAAW,EAAE;MACrB,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;KACpF;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Element, h, Host, Prop, Watch, State, Method, Event, EventEmitter } from '@stencil/core'\nimport { CardClass } from './constants'\nimport { govHost, booleanString } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { createID } from '../../utils/string.utils'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { GovCardChangeEvent } from './interfaces'\n\n@Component({\n\ttag: 'gov-card',\n\tstyleUrl: 'gov-card.scss',\n})\nexport class GovCard {\n\tprivate h: GovHost\n\tprivate readonly headlineId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.headlineId = createID('GovCardHeadline')\n\t\tthis.contentId = createID('GovCardContent')\n\t}\n\n\t@Element() host: HTMLGovCardElement\n\n\t/**\n\t * Style variation of the card.\n\t */\n\t@Prop() readonly promotion: boolean = false\n\t/**\n\t * Item label of the card\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Defines wether the card can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Defines whether the card is open or closed by default\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Used to change the HMTL tag in the card headline for correct semantic structure\n\t */\n\t@Prop({ attribute: 'headline-tag' }) readonly headlineTag: string = 'h3'\n\t/**\n\t * Adds accessible label for the collapsible button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-trigger-label' }) wcagTriggerLabel: string\n\t/**\n\t * A string of identifiers that indicate alternative label elements for collapsible card\n\t */\n\t@Prop({ attribute: 'wcag-trigger-labelled-by' }) wcagTriggerLabelledBy: string\n\t/**\n\t * Called when the card toggle state changes\n\t */\n\t@Event({ eventName: 'gov-toggle' }) govToggle: EventEmitter<GovCardChangeEvent>\n\t@State() isExpanded: boolean\n\n\t@Watch('headlineTag')\n\tvalidateHeadlineTag(newValue: string): void {\n\t\tconst validTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span']\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${CardClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.isExpanded = this.label ? this.expanded : true\n\t\tthis.validateHeadlineTag(this.headlineTag)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govToggle.emit({ open: this.isExpanded, element: this.host })\n\t}\n\n\trender() {\n\t\tconst HeadlineTag = this.headlineTag\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(CardClass.root)} is-expanded={this.isExpanded} collapsible={booleanString(this.collapsible)} promotion={this.promotion}>\n\t\t\t\t{this.label && this.collapsible ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tid={this.headlineId}\n\t\t\t\t\t\tclass={CardClass.header}\n\t\t\t\t\t\taria-label={this.wcagTriggerLabel}\n\t\t\t\t\t\taria-labelledby={this.wcagTriggerLabelledBy}\n\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t\t<gov-icon class={CardClass.arrow} name=\"arrow-down\"></gov-icon>\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.label && !this.collapsible ? (\n\t\t\t\t\t<div class={CardClass.header}>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t<div\n\t\t\t\t\tclass={CardClass.inner}\n\t\t\t\t\tid={this.contentId}\n\t\t\t\t\taria-hidden={this.collapsible ? booleanString(!this.isExpanded) : undefined}\n\t\t\t\t\thidden={this.collapsible ? !this.isExpanded : undefined}\n\t\t\t\t\taria-labelledby={this.collapsible ? this.headlineId : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.h.hasSlot('img') && (\n\t\t\t\t\t\t<p class={CardClass.img}>\n\t\t\t\t\t\t\t<slot name=\"img\" />\n\t\t\t\t\t\t</p>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div class={CardClass.main}>\n\t\t\t\t\t\t{this.h.hasSlot('icon') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div class={CardClass.content}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{this.h.hasSlot('btn') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.btns}>\n\t\t\t\t\t\t\t\t<slot name=\"btn\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{this.h.hasSlot('footer') && (\n\t\t\t\t\t\t<div class={CardClass.footer}>\n\t\t\t\t\t\t\t<slot name=\"footer\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e) {\n\t\te.stopPropagation()\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = !this.isExpanded\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Open the card if it is collapsible\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = true\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Close the card if it is collapsible\n\t */\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = false\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tvalidateWcagLabel(this.wcagTriggerLabel, this.wcagTriggerLabelledBy, CardClass.root)\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-card.js","sourceRoot":"","sources":["../../../../../../src/components/gov-card/gov-card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, Watch, State, Method, Event, EventEmitter } from '@stencil/core'\nimport { CardClass } from './constants'\nimport { govHost, booleanString } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { createID } from '../../utils/string.utils'\nimport { govErrorLog } from '../../helpers/Log/gov.log'\nimport { validateWcagLabel } from '../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../helpers/Dom/win'\nimport { delay } from '../../utils/utils'\nimport { GovCardChangeEvent } from './interfaces'\n\n@Component({\n\ttag: 'gov-card',\n\tstyleUrl: 'gov-card.scss',\n})\nexport class GovCard {\n\tprivate h: GovHost\n\tprivate readonly headlineId: string\n\tprivate readonly contentId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.headlineId = createID('GovCardHeadline')\n\t\tthis.contentId = createID('GovCardContent')\n\t}\n\n\t@Element() host: HTMLGovCardElement\n\n\t/**\n\t * Style variation of the card.\n\t */\n\t@Prop() readonly promotion: boolean = false\n\t/**\n\t * Item label of the card\n\t */\n\t@Prop() readonly label: string\n\t/**\n\t * Defines wether the card can be collapsible\n\t */\n\t@Prop() readonly collapsible: boolean = false\n\t/**\n\t * Defines whether the card is open or closed by default\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Used to change the HMTL tag in the card headline for correct semantic structure\n\t */\n\t@Prop({ attribute: 'headline-tag' }) readonly headlineTag: string = 'h3'\n\t/**\n\t * Adds accessible label for the collapsible button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-trigger-label' }) wcagTriggerLabel: string\n\t/**\n\t * A string of identifiers that indicate alternative label elements for collapsible card\n\t */\n\t@Prop({ attribute: 'wcag-trigger-labelled-by' }) wcagTriggerLabelledBy: string\n\t/**\n\t * Called when the card toggle state changes\n\t */\n\t@Event({ eventName: 'gov-toggle' }) govToggle: EventEmitter<GovCardChangeEvent>\n\t@State() isExpanded: boolean\n\n\t@Watch('headlineTag')\n\tvalidateHeadlineTag(newValue: string): void {\n\t\tconst validTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'span']\n\t\tif (newValue) {\n\t\t\tif (!validTags.includes(newValue)) {\n\t\t\t\tgovErrorLog(`[${CardClass.root}]: Tag ${newValue} is not allowed.`)\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.isExpanded = this.label ? this.expanded : true\n\t\tthis.validateHeadlineTag(this.headlineTag)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate emmitChange(): void {\n\t\tthis.govToggle.emit({ open: this.isExpanded, element: this.host })\n\t}\n\n\trender() {\n\t\tconst HeadlineTag = this.headlineTag\n\n\t\treturn (\n\t\t\t<Host class={this.h.classes(CardClass.root)} is-expanded={this.isExpanded} collapsible={booleanString(this.collapsible)} promotion={this.promotion}>\n\t\t\t\t{this.label && this.collapsible ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\tid={this.headlineId}\n\t\t\t\t\t\tclass={CardClass.header}\n\t\t\t\t\t\taria-label={this.wcagTriggerLabel}\n\t\t\t\t\t\taria-labelledby={this.wcagTriggerLabelledBy}\n\t\t\t\t\t\taria-expanded={booleanString(this.isExpanded)}\n\t\t\t\t\t\taria-controls={this.contentId}\n\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t\t<gov-icon class={CardClass.arrow} name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t</button>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.label && !this.collapsible ? (\n\t\t\t\t\t<div class={CardClass.header}>\n\t\t\t\t\t\t<HeadlineTag class={CardClass.title}>{this.label}</HeadlineTag>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t<div\n\t\t\t\t\tclass={CardClass.inner}\n\t\t\t\t\tid={this.contentId}\n\t\t\t\t\taria-hidden={this.collapsible ? booleanString(!this.isExpanded) : undefined}\n\t\t\t\t\thidden={this.collapsible ? !this.isExpanded : undefined}\n\t\t\t\t\taria-labelledby={this.collapsible ? this.headlineId : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.h.hasSlot('img') && (\n\t\t\t\t\t\t<p class={CardClass.img}>\n\t\t\t\t\t\t\t<slot name=\"img\" />\n\t\t\t\t\t\t</p>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div class={CardClass.main}>\n\t\t\t\t\t\t{this.h.hasSlot('icon') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.icon}>\n\t\t\t\t\t\t\t\t<slot name=\"icon\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div class={CardClass.content}>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{this.h.hasSlot('btn') && this.promotion && (\n\t\t\t\t\t\t\t<div class={CardClass.btns}>\n\t\t\t\t\t\t\t\t<slot name=\"btn\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{this.h.hasSlot('footer') && (\n\t\t\t\t\t\t<div class={CardClass.footer}>\n\t\t\t\t\t\t\t<slot name=\"footer\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e) {\n\t\te.stopPropagation()\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = !this.isExpanded\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Open the card if it is collapsible\n\t */\n\t@Method()\n\tasync open(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = true\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Close the card if it is collapsible\n\t */\n\t@Method()\n\tasync close(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tthis.isExpanded = false\n\t\t\tthis.emmitChange()\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tif (this.collapsible) {\n\t\t\tvalidateWcagLabel(this.wcagTriggerLabel, this.wcagTriggerLabelledBy, CardClass.root)\n\t\t}\n\t}\n}\n"]}
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -162,6 +162,9 @@
162
162
  /*
163
163
  - Variables - Form multiselect
164
164
  */
165
+ /*
166
+ - Variables - Form password power
167
+ */
165
168
  /*
166
169
  - Variables - Form checkbox & radio
167
170
  */
@@ -81,6 +81,7 @@ export class GovFormAutocomplete {
81
81
  this.doSearch();
82
82
  }
83
83
  e.stopPropagation();
84
+ e.preventDefault();
84
85
  this.govFocus.emit(e);
85
86
  }
86
87
  onBlurHandler(e) {
@@ -88,11 +89,13 @@ export class GovFormAutocomplete {
88
89
  setTimeout(() => (this.list = []), 200);
89
90
  this.arrowCounter = -1;
90
91
  e.stopPropagation();
92
+ e.preventDefault();
91
93
  this.govBlur.emit(e);
92
94
  }
93
95
  onInputHandler(e) {
94
96
  this.value = e.target.value;
95
97
  e.stopPropagation();
98
+ e.preventDefault();
96
99
  this.govInput.emit(e);
97
100
  this.doSearch();
98
101
  }
@@ -115,6 +118,7 @@ export class GovFormAutocomplete {
115
118
  onKeyUpHandler(e) {
116
119
  const event = e.detail;
117
120
  e.stopPropagation();
121
+ e.preventDefault();
118
122
  if (event.keyCode === 38)
119
123
  this.onArrowUp();
120
124
  else if (event.keyCode === 40)
@@ -1 +1 @@
1
- {"version":3,"file":"gov-form-autocomplete.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, h, Prop, Watch, Event, EventEmitter, State, Method } from '@stencil/core'\nimport { SizesType } from './constants'\nimport { createID } from '../../../utils/string.utils'\nimport { FormAutocompleteClass, FormAutocompleteVariants, VariantType, FormAutocompleteSizes } from './constants'\nimport { validateProp } from '../../../helpers/Validate/props'\nimport { has, throttle } from '../../../utils/utils'\nimport { GovFormAutocompleteItem } from './gov-form-autocomplete.types'\nimport { toBoolAttr } from '../../../helpers/Dom/template'\nimport { Nullable } from '../../../types/interfaces'\n\n@Component({\n\ttag: 'gov-form-autocomplete',\n\tstyleUrl: 'gov-form-autocomplete.scss',\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID('GovListBox')\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = ''\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = 'm'\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = 'name'\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 2\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: 'wcag-owns' }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-input' }) govInput: EventEmitter<InputEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-select' }) govSelect: EventEmitter<GovFormAutocompleteItem>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && String(this.value).length <= this.minlength && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={'searchbox'}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={'list'}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(' ')}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list} role={'listbox'} id={this.listBoxId}>\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={'option'}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit(e)\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit(e)\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit(selected)\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === 'string') {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = e.detail as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) this.onSelectHandler()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = ''\n\t\tthis.inputRef.value = ''\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-form-autocomplete.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, h, Prop, Watch, Event, EventEmitter, State, Method } from '@stencil/core'\nimport { SizesType } from './constants'\nimport { createID } from '../../../utils/string.utils'\nimport { FormAutocompleteClass, FormAutocompleteVariants, VariantType, FormAutocompleteSizes } from './constants'\nimport { validateProp } from '../../../helpers/Validate/props'\nimport { has, throttle } from '../../../utils/utils'\nimport { GovFormAutocompleteItem } from './gov-form-autocomplete.types'\nimport { toBoolAttr } from '../../../helpers/Dom/template'\nimport { Nullable } from '../../../types/interfaces'\n\n@Component({\n\ttag: 'gov-form-autocomplete',\n\tstyleUrl: 'gov-form-autocomplete.scss',\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID('GovListBox')\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = ''\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = 'm'\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = 'name'\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the input component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 2\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: 'wcag-owns' }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-input' }) govInput: EventEmitter<InputEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: 'gov-select' }) govSelect: EventEmitter<GovFormAutocompleteItem>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && String(this.value).length <= this.minlength && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={'searchbox'}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={'list'}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(' ')}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list} role={'listbox'} id={this.listBoxId}>\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={'option'}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govBlur.emit(e)\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govInput.emit(e)\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit(selected)\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === 'string') {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = e.detail as KeyboardEvent\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) this.onSelectHandler()\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = ''\n\t\tthis.inputRef.value = ''\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"]}
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -1,14 +1,15 @@
1
- import { Host, h } from '@stencil/core';
2
- import { createID } from '../../../utils/string.utils';
3
- import { validateProp } from '../../../helpers/Validate/props';
4
- import { FormCheckboxClass, FormCheckboxSizes } from './constants';
5
- import { toBoolAttrIfDefined } from '../../../helpers/Dom/template';
6
- import { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag';
7
- import { canValidateWcagOnRender } from '../../../helpers/Dom/win';
8
- import { delay } from '../../../utils/utils';
9
- import { govHost, toBoolAttr } from '../../../helpers/Dom/template';
10
- import { govForm } from '../../../helpers/Dom/form';
11
- import { FormLabelClass } from '../label/constants';
1
+ import { Host, h } from "@stencil/core";
2
+ import { createID } from "../../../utils/string.utils";
3
+ import { validateProp } from "../../../helpers/Validate/props";
4
+ import { FormCheckboxClass, FormCheckboxSizes } from "./constants";
5
+ import { toBoolAttrIfDefined } from "../../../helpers/Dom/template";
6
+ import { validateWcagLabelFor, validateWcagRef } from "../../../helpers/Validate/wcag";
7
+ import { canValidateWcagOnRender } from "../../../helpers/Dom/win";
8
+ import { delay } from "../../../utils/utils";
9
+ import { govHost, toBoolAttr } from "../../../helpers/Dom/template";
10
+ import { govForm } from "../../../helpers/Dom/form";
11
+ import { FormLabelClass } from "../label/constants";
12
+ import Fragment from "../../../helpers/Fragment";
12
13
  export class GovFormCheckbox {
13
14
  constructor() {
14
15
  this.value = undefined;
@@ -16,13 +17,14 @@ export class GovFormCheckbox {
16
17
  this.required = false;
17
18
  this.disabled = undefined;
18
19
  this.name = undefined;
19
- this.size = 'm';
20
+ this.size = "m";
20
21
  this.identifier = undefined;
22
+ this.noLabel = false;
21
23
  this.invalid = undefined;
22
24
  this.wcagDescribedBy = undefined;
23
25
  this.wcagLabelledBy = undefined;
24
26
  this.isChecked = undefined;
25
- this.checkboxId = createID('GovCheckbox');
27
+ this.checkboxId = createID("GovCheckbox");
26
28
  this.h = govHost(this.host);
27
29
  this.f = govForm(this.h);
28
30
  }
@@ -38,8 +40,8 @@ export class GovFormCheckbox {
38
40
  }
39
41
  componentWillLoad() {
40
42
  this.isChecked = this.checked;
41
- this.f.passAttrToControl('type', 'checkbox');
42
- this.h.passChildAttr(FormLabelClass.root, 'identifier', this.identifier || this.checkboxId);
43
+ this.f.passAttrToControl("type", "checkbox");
44
+ this.h.passChildAttr(FormLabelClass.root, "identifier", this.identifier || this.checkboxId);
43
45
  }
44
46
  async componentDidRender() {
45
47
  if (canValidateWcagOnRender()) {
@@ -49,17 +51,31 @@ export class GovFormCheckbox {
49
51
  }
50
52
  render() {
51
53
  const { isChecked } = this;
52
- return (h(Host, { class: FormCheckboxClass.root, "is-checked": isChecked, size: this.size, invalid: toBoolAttrIfDefined(this.invalid) }, h("input", { id: this.identifier || this.checkboxId, type: "checkbox", value: this.value, name: this.name, checked: this.isChecked, onChange: this.onChangeHandler.bind(this), onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, "aria-checked": toBoolAttr(this.isChecked), "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-disabled": toBoolAttrIfDefined(this.disabled) }), h("span", null, h("slot", { name: "label" }), h("gov-icon", { class: FormCheckboxClass.check, name: "check" }))));
54
+ const wrapCheckbox = (children) => {
55
+ if (this.noLabel) {
56
+ return (h("label", null, children));
57
+ }
58
+ return children;
59
+ };
60
+ return (h(Host, { class: FormCheckboxClass.root, "is-checked": isChecked, size: this.size, invalid: toBoolAttrIfDefined(this.invalid) }, wrapCheckbox(h(Fragment, null, h("input", { id: this.identifier || this.checkboxId, type: "checkbox", value: this.value, name: this.name, checked: this.isChecked, onClick: this.onClickHandler.bind(this), onChange: this.onChangeHandler.bind(this), onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, "aria-checked": toBoolAttr(this.isChecked), "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-disabled": toBoolAttrIfDefined(this.disabled) }), h("span", null, h("slot", { name: "label" }), h("gov-icon", { class: FormCheckboxClass.check, name: "check-lg" }))))));
53
61
  }
54
62
  onFocusHandler(e) {
63
+ e.stopPropagation();
64
+ e.preventDefault();
55
65
  this.govFocus.emit(e);
56
66
  }
57
67
  onBlurHandler(e) {
68
+ e.stopPropagation();
69
+ e.preventDefault();
58
70
  this.govBlur.emit(e);
59
71
  }
72
+ onClickHandler(e) {
73
+ e.stopPropagation();
74
+ }
60
75
  onChangeHandler(e) {
61
76
  this.isChecked = e.target.checked;
62
77
  e.stopPropagation();
78
+ e.preventDefault();
63
79
  this.govChange.emit({
64
80
  checked: this.isChecked,
65
81
  value: this.value,
@@ -69,8 +85,8 @@ export class GovFormCheckbox {
69
85
  * Validate the WCAG attributes of the component
70
86
  */
71
87
  async validateWcag() {
72
- validateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormCheckboxClass.root);
73
- validateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormCheckboxClass.root);
88
+ validateWcagRef(this.wcagDescribedBy, "wcag-described-by", FormCheckboxClass.root);
89
+ validateWcagRef(this.wcagLabelledBy, "wcag-labelled-by", FormCheckboxClass.root);
74
90
  validateWcagLabelFor(this.identifier || this.checkboxId, this.wcagLabelledBy, FormCheckboxClass.root);
75
91
  }
76
92
  static get is() { return "gov-form-checkbox"; }
@@ -194,7 +210,7 @@ export class GovFormCheckbox {
194
210
  },
195
211
  "attribute": "size",
196
212
  "reflect": false,
197
- "defaultValue": "'m'"
213
+ "defaultValue": "\"m\""
198
214
  },
199
215
  "identifier": {
200
216
  "type": "string",
@@ -213,6 +229,24 @@ export class GovFormCheckbox {
213
229
  "attribute": "identifier",
214
230
  "reflect": false
215
231
  },
232
+ "noLabel": {
233
+ "type": "boolean",
234
+ "mutable": false,
235
+ "complexType": {
236
+ "original": "boolean",
237
+ "resolved": "boolean",
238
+ "references": {}
239
+ },
240
+ "required": false,
241
+ "optional": false,
242
+ "docs": {
243
+ "tags": [],
244
+ "text": "When you can't use the form label."
245
+ },
246
+ "attribute": "no-label",
247
+ "reflect": false,
248
+ "defaultValue": "false"
249
+ },
216
250
  "invalid": {
217
251
  "type": "boolean",
218
252
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"gov-form-checkbox.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/checkbox/gov-form-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Watch, Method } from '@stencil/core'\nimport { createID } from '../../../utils/string.utils'\nimport { validateProp } from '../../../helpers/Validate/props'\nimport { FormCheckboxClass, FormCheckboxSizes, FormCheckboxSizesType } from './constants'\nimport { toBoolAttrIfDefined } from '../../../helpers/Dom/template'\nimport { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../../helpers/Dom/win'\nimport { delay } from '../../../utils/utils'\nimport { GovForm } from '../../../helpers/Dom/form.types'\nimport { govHost, toBoolAttr } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\nimport { govForm } from '../../../helpers/Dom/form'\nimport { FormLabelClass } from '../label/constants'\nimport { GovFormCheckboxChangeEvent } from './interfaces'\n\n@Component({\n\ttag: 'gov-form-checkbox',\n\tstyleUrl: 'gov-form-checkbox.scss',\n})\nexport class GovFormCheckbox {\n\tprivate h: GovHost\n\tprivate f: GovForm\n\n\tprivate readonly checkboxId: string\n\n\tconstructor() {\n\t\tthis.checkboxId = createID('GovCheckbox')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormCheckboxElement\n\t/**\n\t * Value of checkbox\n\t */\n\t@Prop() readonly value: string\n\t/**\n\t * Checkbox default state\n\t */\n\t@Prop({ reflect: true }) readonly checked: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the checkbox component disabled.\n\t * This prevents users from being able to interact with the checkbox, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Name of the checkbox.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Checkbox's size.\n\t */\n\t@Prop() readonly size?: FormCheckboxSizesType = 'm'\n\t/**\n\t * Custom checkbox identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the checkbox has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the checkbox loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the checkbox change value.\n\t */\n\t@Event({ eventName: 'gov-change' }) govChange: EventEmitter<GovFormCheckboxChangeEvent>\n\n\t@State() isChecked: boolean\n\n\t@Watch('checked')\n\tupdateCheckedState(newValue: boolean): void {\n\t\tthis.isChecked = newValue\n\t\tthis.govChange.emit({\n\t\t\tchecked: this.isChecked,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormCheckboxSizes, newValue, FormCheckboxClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.isChecked = this.checked\n\n\t\tthis.f.passAttrToControl('type', 'checkbox')\n\t\tthis.h.passChildAttr(FormLabelClass.root, 'identifier', this.identifier || this.checkboxId)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isChecked } = this\n\n\t\treturn (\n\t\t\t<Host class={FormCheckboxClass.root} is-checked={isChecked} size={this.size} invalid={toBoolAttrIfDefined(this.invalid)}>\n\t\t\t\t<input\n\t\t\t\t\tid={this.identifier || this.checkboxId}\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tchecked={this.isChecked}\n\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\taria-checked={toBoolAttr(this.isChecked)}\n\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t/>\n\t\t\t\t<span>\n\t\t\t\t\t<slot name=\"label\" />\n\t\t\t\t\t<gov-icon class={FormCheckboxClass.check} name=\"check\"></gov-icon>\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.govBlur.emit(e)\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.isChecked = (e.target as HTMLInputElement).checked\n\t\te.stopPropagation()\n\t\tthis.govChange.emit({\n\t\t\tchecked: this.isChecked,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormCheckboxClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormCheckboxClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.checkboxId, this.wcagLabelledBy, FormCheckboxClass.root)\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-form-checkbox.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/checkbox/gov-form-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Watch, Method } from \"@stencil/core\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { FormCheckboxClass, FormCheckboxSizes, FormCheckboxSizesType } from \"./constants\"\nimport { toBoolAttrIfDefined } from \"../../../helpers/Dom/template\"\nimport { validateWcagLabelFor, validateWcagRef } from \"../../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../../helpers/Dom/win\"\nimport { delay } from \"../../../utils/utils\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { govHost, toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { FormLabelClass } from \"../label/constants\"\nimport { GovFormCheckboxChangeEvent } from \"./interfaces\"\nimport Fragment from \"../../../helpers/Fragment\"\n\n@Component({\n\ttag: \"gov-form-checkbox\",\n\tstyleUrl: \"gov-form-checkbox.scss\",\n})\nexport class GovFormCheckbox {\n\tprivate h: GovHost\n\tprivate f: GovForm\n\n\tprivate readonly checkboxId: string\n\n\tconstructor() {\n\t\tthis.checkboxId = createID(\"GovCheckbox\")\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormCheckboxElement\n\t/**\n\t * Value of checkbox\n\t */\n\t@Prop() readonly value: string\n\t/**\n\t * Checkbox default state\n\t */\n\t@Prop({ reflect: true }) readonly checked: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the checkbox component disabled.\n\t * This prevents users from being able to interact with the checkbox, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Name of the checkbox.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Checkbox's size.\n\t */\n\t@Prop() readonly size?: FormCheckboxSizesType = \"m\"\n\t/**\n\t * Custom checkbox identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * When you can't use the form label.\n\t */\n\t@Prop({ attribute: \"no-label\" }) readonly noLabel: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: \"wcag-described-by\" }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the checkbox has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the checkbox loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the checkbox change value.\n\t */\n\t@Event({ eventName: \"gov-change\" }) govChange: EventEmitter<GovFormCheckboxChangeEvent>\n\n\t@State() isChecked: boolean\n\n\t@Watch(\"checked\")\n\tupdateCheckedState(newValue: boolean): void {\n\t\tthis.isChecked = newValue\n\t\tthis.govChange.emit({\n\t\t\tchecked: this.isChecked,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormCheckboxSizes, newValue, FormCheckboxClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.isChecked = this.checked\n\n\t\tthis.f.passAttrToControl(\"type\", \"checkbox\")\n\t\tthis.h.passChildAttr(FormLabelClass.root, \"identifier\", this.identifier || this.checkboxId)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isChecked } = this\n\t\tconst wrapCheckbox = (children) => {\n\t\t\tif (this.noLabel) {\n\t\t\t\treturn (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</label>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn children\n\t\t}\n\n\t\treturn (\n\t\t\t<Host class={FormCheckboxClass.root} is-checked={isChecked} size={this.size} invalid={toBoolAttrIfDefined(this.invalid)}>\n\t\t\t\t{wrapCheckbox(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={this.identifier || this.checkboxId}\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\tchecked={this.isChecked}\n\t\t\t\t\t\t\tonClick={this.onClickHandler.bind(this)}\n\t\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\taria-checked={toBoolAttr(this.isChecked)}\n\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<slot name=\"label\" />\n\t\t\t\t\t\t\t<gov-icon class={FormCheckboxClass.check} name=\"check-lg\"></gov-icon>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Fragment>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govBlur.emit(e)\n\t}\n\n\tprivate onClickHandler(e: PointerEvent) {\n\t\te.stopPropagation()\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\tthis.isChecked = (e.target as HTMLInputElement).checked\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govChange.emit({\n\t\t\tchecked: this.isChecked,\n\t\t\tvalue: this.value,\n\t\t})\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, \"wcag-described-by\", FormCheckboxClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, \"wcag-labelled-by\", FormCheckboxClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.checkboxId, this.wcagLabelledBy, FormCheckboxClass.root)\n\t}\n}\n"]}
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */
@@ -92,7 +92,7 @@ export class GovFormFile {
92
92
  this.registerListeners();
93
93
  }
94
94
  render() {
95
- return (h(Host, { class: this.h.classes([FormFileClass.root]), invalid: toBoolAttrIfDefined(this.invalid), expanded: toBoolAttrIfDefined(this.expanded) }, h("div", { class: FormFileClass.area, ref: el => (this.areaRef = el) }, h("slot", null), h("input", { class: FormFileClass.input, ref: el => (this.inputRef = el), id: this.identifier || this.fileId, type: "file", name: this.name, accept: this.accept, onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, disabled: this.disabled, "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-disabled": toBoolAttrIfDefined(this.disabled) })), this.h.hasSlot('attachments') ? (h("div", { class: FormFileClass.attachments }, h("slot", { name: 'attachments' }))) : null, this.files.length && this.displayAttachments ? (h("div", { class: FormFileClass.attachments }, h("gov-attachments", { label: this.wcagAttachmentsLabel, "wcag-label": this.wcagAttachmentsLabel }, this.files.map(item => (h("gov-attachments-item", { "wcag-remove-labelled-by": item.id, "on-gov-remove": () => this.onRemoveFileHandler(item) }, h("span", { class: 'sr-only', id: item.id }, this.wcagRemoveLabel.replace('{FILE_NAME}', item.file.name)), item.file.name, item.acceptValid === false ? (h("gov-form-message", { slot: "message", variant: "error" }, h("gov-icon", { slot: "icon", name: "warning" }), item.acceptValid === false ? this.errorAccept : null)) : null, item.sizeValid === false ? (h("gov-form-message", { slot: "message", variant: "error" }, h("gov-icon", { slot: "icon", name: "warning" }), this.errorSize.replace('{FILE_SIZE}', formatBytes(this.maxFileSize * 1024)))) : null, h("span", { slot: "info" }, "(", formatBytes(item.file.size), ")"))))))) : null));
95
+ return (h(Host, { class: this.h.classes([FormFileClass.root]), invalid: toBoolAttrIfDefined(this.invalid), expanded: toBoolAttrIfDefined(this.expanded) }, h("div", { class: FormFileClass.area, ref: el => (this.areaRef = el) }, h("slot", null), h("input", { class: FormFileClass.input, ref: el => (this.inputRef = el), id: this.identifier || this.fileId, type: "file", name: this.name, accept: this.accept, onChange: this.onChangeHandler.bind(this), onFocus: this.onFocusHandler.bind(this), onBlur: this.onBlurHandler.bind(this), required: this.required, disabled: this.disabled, "aria-required": toBoolAttrIfDefined(this.required), "aria-invalid": toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-disabled": toBoolAttrIfDefined(this.disabled) })), this.h.hasSlot('attachments') ? (h("div", { class: FormFileClass.attachments }, h("slot", { name: 'attachments' }))) : null, this.files.length && this.displayAttachments ? (h("div", { class: FormFileClass.attachments }, h("gov-attachments", { label: this.wcagAttachmentsLabel, "wcag-label": this.wcagAttachmentsLabel }, this.files.map(item => (h("gov-attachments-item", { "wcag-remove-labelled-by": item.id, "on-gov-remove": () => this.onRemoveFileHandler(item) }, h("span", { class: 'sr-only', id: item.id }, this.wcagRemoveLabel.replace('{FILE_NAME}', item.file.name)), item.file.name, item.acceptValid === false ? (h("gov-form-message", { slot: "message", variant: "error" }, h("gov-icon", { slot: "icon", name: "exclamation-triangle-fill" }), item.acceptValid === false ? this.errorAccept : null)) : null, item.sizeValid === false ? (h("gov-form-message", { slot: "message", variant: "error" }, h("gov-icon", { slot: "icon", name: "exclamation-triangle-fill" }), this.errorSize.replace('{FILE_SIZE}', formatBytes(this.maxFileSize * 1024)))) : null, h("span", { slot: "info" }, "(", formatBytes(item.file.size), ")"))))))) : null));
96
96
  }
97
97
  onRemoveFileHandler(file) {
98
98
  const index = this.files.findIndex(item => item.id === file.id);
@@ -106,13 +106,19 @@ export class GovFormFile {
106
106
  }
107
107
  }
108
108
  onFocusHandler(e) {
109
+ e.stopPropagation();
109
110
  e.preventDefault();
110
111
  this.govFocus.emit(e);
111
112
  }
112
113
  onBlurHandler(e) {
114
+ e.stopPropagation();
113
115
  e.preventDefault();
114
116
  this.govBlur.emit(e);
115
117
  }
118
+ onChangeHandler(e) {
119
+ e.stopPropagation();
120
+ e.preventDefault();
121
+ }
116
122
  /**
117
123
  * Validate the WCAG attributes of the component
118
124
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gov-form-file.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/file/gov-form-file.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter, Element, Method, State } from '@stencil/core'\nimport { createID } from '../../../utils/string.utils'\nimport { FormFileClass } from './constants'\nimport { toBoolAttrIfDefined } from '../../../helpers/Dom/template'\nimport { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../../helpers/Dom/win'\nimport { fileAcceptValidation, fileSizeValidation, formatBytes } from '../../../utils/file.utils'\nimport { delay } from '../../../utils/utils'\nimport { GovForm } from '../../../helpers/Dom/form.types'\nimport { govHost } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\nimport { govForm } from '../../../helpers/Dom/form'\nimport { GovFormFileItem } from './gov-form-file.types'\n\n@Component({\n\ttag: 'gov-form-file',\n\tstyleUrl: 'gov-form-file.scss',\n})\nexport class GovFormFile {\n\tprivate f: GovForm\n\tprivate h: GovHost\n\n\tprivate areaRef?: HTMLDivElement\n\tprivate inputRef?: HTMLInputElement\n\tprivate readonly fileId: string\n\n\tconstructor() {\n\t\tthis.fileId = createID('GovInputFile')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormFileElement\n\t/**\n\t * Expands the file input to fill 100% of the container width.\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the File component disabled.\n\t * This prevents users from being able to interact with the File, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Show list of attachments\n\t */\n\t@Prop({ attribute: 'display-attachments' }) readonly displayAttachments: boolean = true\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept\n\t */\n\t@Prop() readonly accept: string\n\t/**\n\t * Maximum embedded file size\n\t */\n\t@Prop({ attribute: 'max-file-size' }) readonly maxFileSize: number = -1\n\t/**\n\t * Custom File identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Error message when the maximum file size is exceeded\n\t */\n\t@Prop({ attribute: 'error-size' }) readonly errorSize: string = 'Soubor je větší než povolená velikost {FILE_SIZE}'\n\t/**\n\t * Insert unsupported file error message\n\t */\n\t@Prop({ attribute: 'error-accept' }) readonly errorAccept: string = 'Soubor tohoto typu není povolen'\n\t/**\n\t * Description of the list of attachments\n\t */\n\t@Prop({ attribute: 'attachments-label' }) readonly attachmentsLabel: string = 'Přílohy'\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Adds accessible label for the remove button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-remove-label' }) readonly wcagRemoveLabel: string = 'Odebrat soubor {FILE_NAME}'\n\t/**\n\t * Adds accessible label for the list of attachments.\n\t */\n\t@Prop({ attribute: 'wcag-attachments-label' }) readonly wcagAttachmentsLabel: string = 'Přílohy'\n\t/**\n\t * Emitted when the File has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the File loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Called when the list of inserted files is changed\n\t */\n\t@Event({ eventName: 'gov-files' }) govFiles: EventEmitter<GovFormFileItem[]>\n\t/**\n\t * Called when a new file is added\n\t */\n\t@Event({ eventName: 'gov-add-file' }) govAddFile: EventEmitter<GovFormFileItem>\n\t/**\n\t * Called when a file is removed from the list\n\t */\n\t@Event({ eventName: 'gov-remove-file' }) govRemovFile: EventEmitter<GovFormFileItem>\n\n\t@State() files: GovFormFileItem[] = []\n\n\tprivate registerListeners() {\n\t\tfunction highlight() {\n\t\t\tthis.areaRef.classList.add('highlight')\n\t\t}\n\t\tfunction unhighlight() {\n\t\t\tthis.areaRef.classList.remove('highlight')\n\t\t}\n\n\t\tthis.inputRef.addEventListener(\n\t\t\t'change',\n\t\t\te => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tconst files = (e.target as HTMLInputElement).files\n\t\t\t\tthis.validateFiles(files)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\t\t//this.inputRef.addEventListener('focus')\n\n\t\tif (this.expanded) {\n\t\t\tconst events = ['dragover', 'dragleave']\n\t\t\tconst inEvents = ['dragenter', 'dragover', 'mouseenter']\n\t\t\tconst outEvents = ['dragleave', 'drop', 'mouseleave']\n\n\t\t\tevents.map(eventName => this.inputRef.addEventListener(eventName, this.preventDefaults.bind(this), false))\n\t\t\tinEvents.map(eventName => this.inputRef.addEventListener(eventName, highlight.bind(this), false))\n\t\t\toutEvents.forEach(eventName => this.inputRef.addEventListener(eventName, unhighlight.bind(this), false))\n\n\t\t\tthis.areaRef.addEventListener('drop', this.handleDrop.bind(this), false)\n\t\t}\n\t}\n\n\tpreventDefaults(e) {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\t}\n\n\thandleDrop(e: DragEvent) {\n\t\tconst dataTransfer = e.dataTransfer\n\t\tthis.validateFiles(dataTransfer.files)\n\t}\n\n\tprivate validateFiles(files: FileList) {\n\t\tArray.from(files).map(file => {\n\t\t\tconst isFile = this.files.find(item => item.file.name === file.name && item.file.size === file.size) || null\n\t\t\tif (isFile === null) {\n\t\t\t\tconst isSizeValid = typeof this.maxFileSize === 'number' && this.maxFileSize > 0 ? fileSizeValidation(file, this.maxFileSize) : true\n\t\t\t\tconst isAcceptValid = fileAcceptValidation(file, this.accept)\n\t\t\t\tconst newFile = {\n\t\t\t\t\tid: createID('GovFormFile'),\n\t\t\t\t\tfile,\n\t\t\t\t\tacceptValid: isAcceptValid,\n\t\t\t\t\tsizeValid: isSizeValid,\n\t\t\t\t}\n\t\t\t\tthis.files = [...this.files, newFile]\n\t\t\t\tthis.govAddFile.emit(newFile)\n\t\t\t}\n\t\t})\n\n\t\tthis.govFiles.emit(this.files)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.f.passAttrToControl('type', 'File')\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\n\t\tthis.registerListeners()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes([FormFileClass.root])} invalid={toBoolAttrIfDefined(this.invalid)} expanded={toBoolAttrIfDefined(this.expanded)}>\n\t\t\t\t<div class={FormFileClass.area} ref={el => (this.areaRef = el as HTMLDivElement)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass={FormFileClass.input}\n\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\tid={this.identifier || this.fileId}\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\taccept={this.accept}\n\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{this.h.hasSlot('attachments') ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<slot name={'attachments'} />\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.files.length && this.displayAttachments ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<gov-attachments label={this.wcagAttachmentsLabel} wcag-label={this.wcagAttachmentsLabel}>\n\t\t\t\t\t\t\t{this.files.map(item => (\n\t\t\t\t\t\t\t\t<gov-attachments-item wcag-remove-labelled-by={item.id} on-gov-remove={() => this.onRemoveFileHandler(item)}>\n\t\t\t\t\t\t\t\t\t<span class={'sr-only'} id={item.id}>\n\t\t\t\t\t\t\t\t\t\t{this.wcagRemoveLabel.replace('{FILE_NAME}', item.file.name)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{item.file.name}\n\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"warning\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? this.errorAccept : null}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{item.sizeValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"warning\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{this.errorSize.replace('{FILE_SIZE}', formatBytes(this.maxFileSize * 1024))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t<span slot=\"info\">({formatBytes(item.file.size)})</span>\n\t\t\t\t\t\t\t\t</gov-attachments-item>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</gov-attachments>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onRemoveFileHandler(file: GovFormFileItem) {\n\t\tconst index = this.files.findIndex(item => item.id === file.id)\n\t\tif (index !== -1) {\n\t\t\tconst files = this.files\n\t\t\tconst removeFile = this.files[index]\n\t\t\tfiles.splice(index, 1)\n\t\t\tthis.files = [...files]\n\t\t\tthis.govRemovFile.emit(removeFile)\n\t\t\tthis.govFiles.emit(this.files)\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.preventDefault()\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.preventDefault()\n\t\tthis.govBlur.emit(e)\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormFileClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormFileClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.fileId, this.wcagLabelledBy, FormFileClass.root)\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-form-file.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/file/gov-form-file.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter, Element, Method, State } from '@stencil/core'\nimport { createID } from '../../../utils/string.utils'\nimport { FormFileClass } from './constants'\nimport { toBoolAttrIfDefined } from '../../../helpers/Dom/template'\nimport { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag'\nimport { canValidateWcagOnRender } from '../../../helpers/Dom/win'\nimport { fileAcceptValidation, fileSizeValidation, formatBytes } from '../../../utils/file.utils'\nimport { delay } from '../../../utils/utils'\nimport { GovForm } from '../../../helpers/Dom/form.types'\nimport { govHost } from '../../../helpers/Dom/template'\nimport { GovHost } from '../../../helpers/Dom/template.types'\nimport { govForm } from '../../../helpers/Dom/form'\nimport { GovFormFileItem } from './gov-form-file.types'\n\n@Component({\n\ttag: 'gov-form-file',\n\tstyleUrl: 'gov-form-file.scss',\n})\nexport class GovFormFile {\n\tprivate f: GovForm\n\tprivate h: GovHost\n\n\tprivate areaRef?: HTMLDivElement\n\tprivate inputRef?: HTMLInputElement\n\tprivate readonly fileId: string\n\n\tconstructor() {\n\t\tthis.fileId = createID('GovInputFile')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormFileElement\n\t/**\n\t * Expands the file input to fill 100% of the container width.\n\t */\n\t@Prop() readonly expanded: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the File component disabled.\n\t * This prevents users from being able to interact with the File, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Show list of attachments\n\t */\n\t@Prop({ attribute: 'display-attachments' }) readonly displayAttachments: boolean = true\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Same as original parameter\n\t * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept\n\t */\n\t@Prop() readonly accept: string\n\t/**\n\t * Maximum embedded file size\n\t */\n\t@Prop({ attribute: 'max-file-size' }) readonly maxFileSize: number = -1\n\t/**\n\t * Custom File identifier.\n\t */\n\t@Prop({ attribute: 'identifier' }) readonly identifier: string\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Error message when the maximum file size is exceeded\n\t */\n\t@Prop({ attribute: 'error-size' }) readonly errorSize: string = 'Soubor je větší než povolená velikost {FILE_SIZE}'\n\t/**\n\t * Insert unsupported file error message\n\t */\n\t@Prop({ attribute: 'error-accept' }) readonly errorAccept: string = 'Soubor tohoto typu není povolen'\n\t/**\n\t * Description of the list of attachments\n\t */\n\t@Prop({ attribute: 'attachments-label' }) readonly attachmentsLabel: string = 'Přílohy'\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({ attribute: 'wcag-described-by' }) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({ attribute: 'wcag-labelled-by' }) readonly wcagLabelledBy: string\n\t/**\n\t * Adds accessible label for the remove button that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: 'wcag-remove-label' }) readonly wcagRemoveLabel: string = 'Odebrat soubor {FILE_NAME}'\n\t/**\n\t * Adds accessible label for the list of attachments.\n\t */\n\t@Prop({ attribute: 'wcag-attachments-label' }) readonly wcagAttachmentsLabel: string = 'Přílohy'\n\t/**\n\t * Emitted when the File has focus.\n\t */\n\t@Event({ eventName: 'gov-focus' }) govFocus: EventEmitter<FocusEvent>\n\t/**\n\t * Emitted when the File loses focus.\n\t */\n\t@Event({ eventName: 'gov-blur' }) govBlur: EventEmitter<FocusEvent>\n\t/**\n\t * Called when the list of inserted files is changed\n\t */\n\t@Event({ eventName: 'gov-files' }) govFiles: EventEmitter<GovFormFileItem[]>\n\t/**\n\t * Called when a new file is added\n\t */\n\t@Event({ eventName: 'gov-add-file' }) govAddFile: EventEmitter<GovFormFileItem>\n\t/**\n\t * Called when a file is removed from the list\n\t */\n\t@Event({ eventName: 'gov-remove-file' }) govRemovFile: EventEmitter<GovFormFileItem>\n\n\t@State() files: GovFormFileItem[] = []\n\n\tprivate registerListeners() {\n\t\tfunction highlight() {\n\t\t\tthis.areaRef.classList.add('highlight')\n\t\t}\n\t\tfunction unhighlight() {\n\t\t\tthis.areaRef.classList.remove('highlight')\n\t\t}\n\n\t\tthis.inputRef.addEventListener(\n\t\t\t'change',\n\t\t\te => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tconst files = (e.target as HTMLInputElement).files\n\t\t\t\tthis.validateFiles(files)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\t\t//this.inputRef.addEventListener('focus')\n\n\t\tif (this.expanded) {\n\t\t\tconst events = ['dragover', 'dragleave']\n\t\t\tconst inEvents = ['dragenter', 'dragover', 'mouseenter']\n\t\t\tconst outEvents = ['dragleave', 'drop', 'mouseleave']\n\n\t\t\tevents.map(eventName => this.inputRef.addEventListener(eventName, this.preventDefaults.bind(this), false))\n\t\t\tinEvents.map(eventName => this.inputRef.addEventListener(eventName, highlight.bind(this), false))\n\t\t\toutEvents.forEach(eventName => this.inputRef.addEventListener(eventName, unhighlight.bind(this), false))\n\n\t\t\tthis.areaRef.addEventListener('drop', this.handleDrop.bind(this), false)\n\t\t}\n\t}\n\n\tpreventDefaults(e) {\n\t\te.preventDefault()\n\t\te.stopPropagation()\n\t}\n\n\thandleDrop(e: DragEvent) {\n\t\tconst dataTransfer = e.dataTransfer\n\t\tthis.validateFiles(dataTransfer.files)\n\t}\n\n\tprivate validateFiles(files: FileList) {\n\t\tArray.from(files).map(file => {\n\t\t\tconst isFile = this.files.find(item => item.file.name === file.name && item.file.size === file.size) || null\n\t\t\tif (isFile === null) {\n\t\t\t\tconst isSizeValid = typeof this.maxFileSize === 'number' && this.maxFileSize > 0 ? fileSizeValidation(file, this.maxFileSize) : true\n\t\t\t\tconst isAcceptValid = fileAcceptValidation(file, this.accept)\n\t\t\t\tconst newFile = {\n\t\t\t\t\tid: createID('GovFormFile'),\n\t\t\t\t\tfile,\n\t\t\t\t\tacceptValid: isAcceptValid,\n\t\t\t\t\tsizeValid: isSizeValid,\n\t\t\t\t}\n\t\t\t\tthis.files = [...this.files, newFile]\n\t\t\t\tthis.govAddFile.emit(newFile)\n\t\t\t}\n\t\t})\n\n\t\tthis.govFiles.emit(this.files)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.f.passAttrToControl('type', 'File')\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\n\t\tthis.registerListeners()\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes([FormFileClass.root])} invalid={toBoolAttrIfDefined(this.invalid)} expanded={toBoolAttrIfDefined(this.expanded)}>\n\t\t\t\t<div class={FormFileClass.area} ref={el => (this.areaRef = el as HTMLDivElement)}>\n\t\t\t\t\t<slot />\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass={FormFileClass.input}\n\t\t\t\t\t\tref={el => (this.inputRef = el as HTMLInputElement)}\n\t\t\t\t\t\tid={this.identifier || this.fileId}\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\taccept={this.accept}\n\t\t\t\t\t\tonChange={this.onChangeHandler.bind(this)}\n\t\t\t\t\t\tonFocus={this.onFocusHandler.bind(this)}\n\t\t\t\t\t\tonBlur={this.onBlurHandler.bind(this)}\n\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{this.h.hasSlot('attachments') ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<slot name={'attachments'} />\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\n\t\t\t\t{this.files.length && this.displayAttachments ? (\n\t\t\t\t\t<div class={FormFileClass.attachments}>\n\t\t\t\t\t\t<gov-attachments label={this.wcagAttachmentsLabel} wcag-label={this.wcagAttachmentsLabel}>\n\t\t\t\t\t\t\t{this.files.map(item => (\n\t\t\t\t\t\t\t\t<gov-attachments-item wcag-remove-labelled-by={item.id} on-gov-remove={() => this.onRemoveFileHandler(item)}>\n\t\t\t\t\t\t\t\t\t<span class={'sr-only'} id={item.id}>\n\t\t\t\t\t\t\t\t\t\t{this.wcagRemoveLabel.replace('{FILE_NAME}', item.file.name)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{item.file.name}\n\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{item.acceptValid === false ? this.errorAccept : null}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{item.sizeValid === false ? (\n\t\t\t\t\t\t\t\t\t\t<gov-form-message slot=\"message\" variant=\"error\">\n\t\t\t\t\t\t\t\t\t\t\t<gov-icon slot=\"icon\" name=\"exclamation-triangle-fill\"></gov-icon>\n\t\t\t\t\t\t\t\t\t\t\t{this.errorSize.replace('{FILE_SIZE}', formatBytes(this.maxFileSize * 1024))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-message>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t<span slot=\"info\">({formatBytes(item.file.size)})</span>\n\t\t\t\t\t\t\t\t</gov-attachments-item>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</gov-attachments>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onRemoveFileHandler(file: GovFormFileItem) {\n\t\tconst index = this.files.findIndex(item => item.id === file.id)\n\t\tif (index !== -1) {\n\t\t\tconst files = this.files\n\t\t\tconst removeFile = this.files[index]\n\t\t\tfiles.splice(index, 1)\n\t\t\tthis.files = [...files]\n\t\t\tthis.govRemovFile.emit(removeFile)\n\t\t\tthis.govFiles.emit(this.files)\n\t\t}\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govFocus.emit(e)\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t\tthis.govBlur.emit(e)\n\t}\n\n\tprivate onChangeHandler(e: Event) {\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormFileClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormFileClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.fileId, this.wcagLabelledBy, FormFileClass.root)\n\t}\n}\n"]}
@@ -148,6 +148,9 @@
148
148
  /*
149
149
  - Variables - Form multiselect
150
150
  */
151
+ /*
152
+ - Variables - Form password power
153
+ */
151
154
  /*
152
155
  - Variables - Form checkbox & radio
153
156
  */