@gov-design-system-ce/components 4.0.8-rc11 → 4.0.8-rc13

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 (385) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/gov-accordion-item.cjs.entry.js +1 -1
  3. package/dist/cjs/gov-accordion.cjs.entry.js +1 -1
  4. package/dist/cjs/gov-attachments_3.cjs.entry.js +1 -1
  5. package/dist/cjs/gov-backdrop.cjs.entry.js +1 -1
  6. package/dist/cjs/gov-breadcrumbs.cjs.entry.js +1 -1
  7. package/dist/cjs/gov-button.cjs.entry.js +1 -1
  8. package/dist/cjs/gov-card.cjs.entry.js +1 -1
  9. package/dist/cjs/gov-chip.cjs.entry.js +1 -1
  10. package/dist/cjs/gov-container.cjs.entry.js +1 -1
  11. package/dist/cjs/gov-control-group.cjs.entry.js +1 -1
  12. package/dist/cjs/gov-cookiebar.cjs.entry.js +1 -1
  13. package/dist/cjs/gov-dropdown.cjs.entry.js +1 -1
  14. package/dist/cjs/gov-empty.cjs.entry.js +1 -1
  15. package/dist/cjs/gov-error-code.cjs.entry.js +1 -1
  16. package/dist/cjs/gov-form-autocomplete.cjs.entry.js +1 -1
  17. package/dist/cjs/gov-form-checkbox-group.cjs.entry.js +1 -1
  18. package/dist/cjs/gov-form-checkbox.cjs.entry.js +1 -1
  19. package/dist/cjs/gov-form-control.cjs.entry.js +1 -1
  20. package/dist/cjs/gov-form-file.cjs.entry.js +1 -1
  21. package/dist/cjs/gov-form-group.cjs.entry.js +1 -1
  22. package/dist/cjs/gov-form-input.cjs.entry.js +5 -4
  23. package/dist/cjs/gov-form-input.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gov-form-label.cjs.entry.js +1 -1
  25. package/dist/cjs/gov-form-multi-select.cjs.entry.js +1 -1
  26. package/dist/cjs/gov-form-password-power.cjs.entry.js +1 -1
  27. package/dist/cjs/gov-form-radio-group.cjs.entry.js +1 -1
  28. package/dist/cjs/gov-form-radio.cjs.entry.js +1 -1
  29. package/dist/cjs/gov-form-search.cjs.entry.js +1 -1
  30. package/dist/cjs/gov-form-select.cjs.entry.js +1 -1
  31. package/dist/cjs/gov-form-switch.cjs.entry.js +1 -1
  32. package/dist/cjs/gov-grid-item.cjs.entry.js +1 -1
  33. package/dist/cjs/gov-grid.cjs.entry.js +1 -1
  34. package/dist/cjs/gov-icon.cjs.entry.js +2 -2
  35. package/dist/cjs/gov-infobar.cjs.entry.js +1 -1
  36. package/dist/cjs/gov-layout-column.cjs.entry.js +1 -1
  37. package/dist/cjs/gov-layout.cjs.entry.js +1 -1
  38. package/dist/cjs/gov-loading.cjs.entry.js +1 -1
  39. package/dist/cjs/gov-message.cjs.entry.js +1 -1
  40. package/dist/cjs/gov-modal.cjs.entry.js +1 -1
  41. package/dist/cjs/gov-nav-item.cjs.entry.js +1 -1
  42. package/dist/cjs/gov-nav.cjs.entry.js +1 -1
  43. package/dist/cjs/gov-pagination.cjs.entry.js +4 -2
  44. package/dist/cjs/gov-pagination.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gov-prompt.cjs.entry.js +1 -1
  46. package/dist/cjs/gov-side-nav-item.cjs.entry.js +1 -1
  47. package/dist/cjs/gov-side-nav.cjs.entry.js +1 -1
  48. package/dist/cjs/gov-skeleton.cjs.entry.js +1 -1
  49. package/dist/cjs/gov-spacer.cjs.entry.js +1 -1
  50. package/dist/cjs/gov-statsbar-item.cjs.entry.js +1 -1
  51. package/dist/cjs/gov-statsbar.cjs.entry.js +1 -1
  52. package/dist/cjs/gov-stepper-item.cjs.entry.js +1 -1
  53. package/dist/cjs/gov-stepper.cjs.entry.js +1 -1
  54. package/dist/cjs/gov-tabs-item.cjs.entry.js +13 -2
  55. package/dist/cjs/gov-tabs-item.cjs.entry.js.map +1 -1
  56. package/dist/cjs/gov-tabs.cjs.entry.js +34 -42
  57. package/dist/cjs/gov-tabs.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gov-tag.cjs.entry.js +1 -1
  59. package/dist/cjs/gov-tile.cjs.entry.js +1 -1
  60. package/dist/cjs/gov-tiles.cjs.entry.js +1 -1
  61. package/dist/cjs/gov-toast.cjs.entry.js +1 -1
  62. package/dist/cjs/gov-tooltip-content.cjs.entry.js +1 -1
  63. package/dist/cjs/gov-tooltip.cjs.entry.js +68 -59
  64. package/dist/cjs/gov-tooltip.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gov-wizard-item.cjs.entry.js +1 -1
  66. package/dist/cjs/gov-wizard.cjs.entry.js +1 -1
  67. package/dist/cjs/{index-d7a6145d.js → index-cfb57f19.js} +5 -2
  68. package/dist/cjs/index-cfb57f19.js.map +1 -0
  69. package/dist/cjs/loader.cjs.js +2 -2
  70. package/dist/collection/components/gov-form/input/gov-form-input.js +22 -4
  71. package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
  72. package/dist/collection/components/gov-pagination/gov-pagination.js +20 -1
  73. package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
  74. package/dist/collection/components/gov-tabs/gov-tabs-item.js +20 -2
  75. package/dist/collection/components/gov-tabs/gov-tabs-item.js.map +1 -1
  76. package/dist/collection/components/gov-tabs/gov-tabs.js +52 -43
  77. package/dist/collection/components/gov-tabs/gov-tabs.js.map +1 -1
  78. package/dist/collection/components/gov-tooltip/gov-tooltip.js +66 -56
  79. package/dist/collection/components/gov-tooltip/gov-tooltip.js.map +1 -1
  80. package/dist/components/gov-accordion-item.js +1 -1
  81. package/dist/components/gov-accordion.js +1 -1
  82. package/dist/components/gov-attachments-item.js +1 -1
  83. package/dist/components/gov-attachments.js +1 -1
  84. package/dist/components/gov-backdrop.js +1 -1
  85. package/dist/components/gov-breadcrumbs.js +1 -1
  86. package/dist/components/gov-button.js +1 -1
  87. package/dist/components/gov-card.js +1 -1
  88. package/dist/components/gov-chip.js +1 -1
  89. package/dist/components/gov-container.js +1 -1
  90. package/dist/components/gov-control-group.js +1 -1
  91. package/dist/components/gov-cookiebar.js +1 -1
  92. package/dist/components/gov-dropdown.js +1 -1
  93. package/dist/components/gov-empty.js +1 -1
  94. package/dist/components/gov-error-code.js +1 -1
  95. package/dist/components/gov-form-autocomplete.js +1 -1
  96. package/dist/components/gov-form-checkbox-group.js +1 -1
  97. package/dist/components/gov-form-checkbox.js +1 -1
  98. package/dist/components/gov-form-control.js +1 -1
  99. package/dist/components/gov-form-file.js +1 -1
  100. package/dist/components/gov-form-group.js +1 -1
  101. package/dist/components/gov-form-input.js +1 -1
  102. package/dist/components/gov-form-label.js +1 -1
  103. package/dist/components/gov-form-message.js +1 -1
  104. package/dist/components/gov-form-multi-select.js +1 -1
  105. package/dist/components/gov-form-password-power.js +1 -1
  106. package/dist/components/gov-form-radio-group.js +1 -1
  107. package/dist/components/gov-form-radio.js +1 -1
  108. package/dist/components/gov-form-search.js +1 -1
  109. package/dist/components/gov-form-select.js +1 -1
  110. package/dist/components/gov-form-switch.js +1 -1
  111. package/dist/components/gov-grid-item.js +1 -1
  112. package/dist/components/gov-grid.js +1 -1
  113. package/dist/components/gov-icon.js +1 -1
  114. package/dist/components/gov-infobar.js +1 -1
  115. package/dist/components/gov-layout-column.js +1 -1
  116. package/dist/components/gov-layout.js +1 -1
  117. package/dist/components/gov-loading.js +1 -1
  118. package/dist/components/gov-message.js +1 -1
  119. package/dist/components/gov-modal.js +1 -1
  120. package/dist/components/gov-modal.js.map +1 -1
  121. package/dist/components/gov-nav-item.js +1 -1
  122. package/dist/components/gov-nav.js +1 -1
  123. package/dist/components/gov-pagination.js +1 -1
  124. package/dist/components/gov-pagination.js.map +1 -1
  125. package/dist/components/gov-prompt.js +1 -1
  126. package/dist/components/gov-side-nav-item.js +1 -1
  127. package/dist/components/gov-side-nav.js +1 -1
  128. package/dist/components/gov-skeleton.js +1 -1
  129. package/dist/components/gov-spacer.js +1 -1
  130. package/dist/components/gov-statsbar-item.js +1 -1
  131. package/dist/components/gov-statsbar.js +1 -1
  132. package/dist/components/gov-stepper-item.js +1 -1
  133. package/dist/components/gov-stepper.js +1 -1
  134. package/dist/components/gov-tabs-item.js +1 -1
  135. package/dist/components/gov-tabs-item.js.map +1 -1
  136. package/dist/components/gov-tabs.js +1 -1
  137. package/dist/components/gov-tabs.js.map +1 -1
  138. package/dist/components/gov-tag.js +1 -1
  139. package/dist/components/gov-tile.js +1 -1
  140. package/dist/components/gov-tiles.js +1 -1
  141. package/dist/components/gov-toast.js +1 -1
  142. package/dist/components/gov-tooltip-content.js +1 -1
  143. package/dist/components/gov-tooltip.js +1 -1
  144. package/dist/components/gov-tooltip.js.map +1 -1
  145. package/dist/components/gov-wizard-item.js +1 -1
  146. package/dist/components/gov-wizard.js +1 -1
  147. package/dist/components/index.js +1 -1
  148. package/dist/components/{p-0ef9ca38.js → p-137f86d1.js} +2 -2
  149. package/dist/components/{p-38129200.js → p-3605bf8d.js} +2 -2
  150. package/dist/components/{p-67f93e2f.js → p-4489a1da.js} +2 -2
  151. package/dist/components/{p-8f752a63.js → p-479edf55.js} +2 -2
  152. package/dist/components/p-479edf55.js.map +1 -0
  153. package/dist/components/{p-e6b44c13.js → p-84d0a332.js} +2 -2
  154. package/dist/components/{p-850f41a3.js → p-8df7c635.js} +2 -2
  155. package/dist/components/{p-5a881c4f.js → p-92c6c6aa.js} +2 -2
  156. package/dist/components/{p-f0e6e095.js → p-9c9fc4ae.js} +2 -2
  157. package/dist/components/{p-cff54227.js → p-d6759ac3.js} +3 -3
  158. package/dist/components/p-d6759ac3.js.map +1 -0
  159. package/dist/components/{p-cc51369e.js → p-d9dda24d.js} +2 -2
  160. package/dist/components/{p-3d3231ab.js → p-e01962d9.js} +2 -2
  161. package/dist/core/core.esm.js +1 -1
  162. package/dist/core/core.esm.js.map +1 -1
  163. package/dist/core/{p-7eeb23c5.entry.js → p-02745628.entry.js} +2 -2
  164. package/dist/core/{p-5cf78f1c.entry.js → p-04e48d5d.entry.js} +2 -2
  165. package/dist/core/{p-b25da41e.entry.js → p-0790a27c.entry.js} +2 -2
  166. package/dist/core/p-0a5b0f7d.js +3 -0
  167. package/dist/core/p-0a5b0f7d.js.map +1 -0
  168. package/dist/core/{p-aaad919f.entry.js → p-0d99a3d8.entry.js} +2 -2
  169. package/dist/core/p-0d99a3d8.entry.js.map +1 -0
  170. package/dist/core/{p-893bc0ef.entry.js → p-10dbd2e1.entry.js} +2 -2
  171. package/dist/core/{p-d51fa875.entry.js → p-13a80dc5.entry.js} +2 -2
  172. package/dist/core/{p-35a77e2d.entry.js → p-14e5fd00.entry.js} +2 -2
  173. package/dist/core/{p-6378b5af.entry.js → p-185a46b9.entry.js} +2 -2
  174. package/dist/core/{p-e7845795.entry.js → p-1b212799.entry.js} +2 -2
  175. package/dist/core/{p-a82a8d9c.entry.js → p-1d67220c.entry.js} +2 -2
  176. package/dist/core/{p-9f08ac81.entry.js → p-212e297e.entry.js} +2 -2
  177. package/dist/core/{p-92bef3b8.entry.js → p-290773da.entry.js} +2 -2
  178. package/dist/core/{p-2cc5dda1.entry.js → p-2e647c00.entry.js} +2 -2
  179. package/dist/core/{p-f6416cb8.entry.js → p-2fb0e1cf.entry.js} +2 -2
  180. package/dist/core/{p-51f069f2.entry.js → p-332a43c7.entry.js} +2 -2
  181. package/dist/core/{p-071857ce.entry.js → p-33b1f5d8.entry.js} +2 -2
  182. package/dist/core/{p-314df6e2.entry.js → p-3483a6e8.entry.js} +2 -2
  183. package/dist/core/{p-854e705c.entry.js → p-34cf509a.entry.js} +2 -2
  184. package/dist/core/{p-dd45944f.entry.js → p-36312bef.entry.js} +2 -2
  185. package/dist/core/{p-a0b01f1b.entry.js → p-389edb54.entry.js} +2 -2
  186. package/dist/core/{p-ecbb9731.entry.js → p-3e3a1607.entry.js} +2 -2
  187. package/dist/core/{p-c9bd2a6e.entry.js → p-3f62cf30.entry.js} +2 -2
  188. package/dist/core/{p-28d8b65c.entry.js → p-4978aa0a.entry.js} +2 -2
  189. package/dist/core/{p-b5ceb3ba.entry.js → p-4b048e19.entry.js} +2 -2
  190. package/dist/core/{p-680c0fee.entry.js → p-4c83f443.entry.js} +2 -2
  191. package/dist/core/{p-37f5729b.entry.js → p-4dbaff99.entry.js} +2 -2
  192. package/dist/core/p-56d42f3e.entry.js +2 -0
  193. package/dist/core/p-56d42f3e.entry.js.map +1 -0
  194. package/dist/core/{p-5fa30ebf.entry.js → p-58c875bb.entry.js} +2 -2
  195. package/dist/core/{p-a14aa161.entry.js → p-5d33cb6e.entry.js} +2 -2
  196. package/dist/core/{p-ee1637ef.entry.js → p-5e7e7cb1.entry.js} +2 -2
  197. package/dist/core/{p-4c68eb90.entry.js → p-5facceb9.entry.js} +2 -2
  198. package/dist/core/{p-c1911b6a.entry.js → p-6092fd22.entry.js} +2 -2
  199. package/dist/core/p-618df4db.entry.js +2 -0
  200. package/dist/core/p-618df4db.entry.js.map +1 -0
  201. package/dist/core/{p-8c80d1aa.entry.js → p-650ac6c6.entry.js} +2 -2
  202. package/dist/core/{p-671041de.entry.js → p-6977b168.entry.js} +2 -2
  203. package/dist/core/{p-b4b79f0a.entry.js → p-6c745c3e.entry.js} +2 -2
  204. package/dist/core/{p-a01a9f16.entry.js → p-718d0198.entry.js} +2 -2
  205. package/dist/core/{p-c366f797.entry.js → p-761c33c7.entry.js} +2 -2
  206. package/dist/core/{p-16ed4995.entry.js → p-7695610a.entry.js} +2 -2
  207. package/dist/core/p-7a0b3094.entry.js +2 -0
  208. package/dist/core/p-7a0b3094.entry.js.map +1 -0
  209. package/dist/core/{p-b7e96a9d.entry.js → p-7b598f56.entry.js} +2 -2
  210. package/dist/core/{p-37a58991.entry.js → p-7d1dd58a.entry.js} +2 -2
  211. package/dist/core/{p-8fc87295.entry.js → p-8ab827a1.entry.js} +2 -2
  212. package/dist/core/{p-443894aa.entry.js → p-a87d8f17.entry.js} +2 -2
  213. package/dist/core/{p-de924143.entry.js → p-aa9b5731.entry.js} +2 -2
  214. package/dist/core/p-aa9b5731.entry.js.map +1 -0
  215. package/dist/core/{p-49f584a3.entry.js → p-ab9d9655.entry.js} +2 -2
  216. package/dist/core/{p-5d1f350b.entry.js → p-aba11ab4.entry.js} +2 -2
  217. package/dist/core/{p-47efa303.entry.js → p-b58ed9ce.entry.js} +2 -2
  218. package/dist/core/{p-e1a5a373.entry.js → p-bc2ec133.entry.js} +2 -2
  219. package/dist/core/{p-fccbecd3.entry.js → p-c7e8faec.entry.js} +2 -2
  220. package/dist/core/{p-94bc809d.entry.js → p-cc3c6319.entry.js} +2 -2
  221. package/dist/core/{p-307906c9.entry.js → p-cce125de.entry.js} +2 -2
  222. package/dist/core/{p-3e4a8fa7.entry.js → p-d2fc217d.entry.js} +2 -2
  223. package/dist/core/{p-f10ad856.entry.js → p-dbad9256.entry.js} +2 -2
  224. package/dist/core/{p-815d86ed.entry.js → p-dbb67e76.entry.js} +2 -2
  225. package/dist/core/{p-0c78bb6a.entry.js → p-dbde347f.entry.js} +2 -2
  226. package/dist/core/{p-fbbd1e5d.entry.js → p-eb403270.entry.js} +2 -2
  227. package/dist/core/{p-372910de.entry.js → p-f11f707f.entry.js} +2 -2
  228. package/dist/core/{p-a45a55eb.entry.js → p-f54fe20e.entry.js} +2 -2
  229. package/dist/core/{p-45411344.entry.js → p-f9fee460.entry.js} +2 -2
  230. package/dist/esm/core.js +3 -3
  231. package/dist/esm/gov-accordion-item.entry.js +1 -1
  232. package/dist/esm/gov-accordion.entry.js +1 -1
  233. package/dist/esm/gov-attachments_3.entry.js +1 -1
  234. package/dist/esm/gov-backdrop.entry.js +1 -1
  235. package/dist/esm/gov-breadcrumbs.entry.js +1 -1
  236. package/dist/esm/gov-button.entry.js +1 -1
  237. package/dist/esm/gov-card.entry.js +1 -1
  238. package/dist/esm/gov-chip.entry.js +1 -1
  239. package/dist/esm/gov-container.entry.js +1 -1
  240. package/dist/esm/gov-control-group.entry.js +1 -1
  241. package/dist/esm/gov-cookiebar.entry.js +1 -1
  242. package/dist/esm/gov-dropdown.entry.js +1 -1
  243. package/dist/esm/gov-empty.entry.js +1 -1
  244. package/dist/esm/gov-error-code.entry.js +1 -1
  245. package/dist/esm/gov-form-autocomplete.entry.js +1 -1
  246. package/dist/esm/gov-form-checkbox-group.entry.js +1 -1
  247. package/dist/esm/gov-form-checkbox.entry.js +1 -1
  248. package/dist/esm/gov-form-control.entry.js +1 -1
  249. package/dist/esm/gov-form-file.entry.js +1 -1
  250. package/dist/esm/gov-form-group.entry.js +1 -1
  251. package/dist/esm/gov-form-input.entry.js +5 -4
  252. package/dist/esm/gov-form-input.entry.js.map +1 -1
  253. package/dist/esm/gov-form-label.entry.js +1 -1
  254. package/dist/esm/gov-form-multi-select.entry.js +1 -1
  255. package/dist/esm/gov-form-password-power.entry.js +1 -1
  256. package/dist/esm/gov-form-radio-group.entry.js +1 -1
  257. package/dist/esm/gov-form-radio.entry.js +1 -1
  258. package/dist/esm/gov-form-search.entry.js +1 -1
  259. package/dist/esm/gov-form-select.entry.js +1 -1
  260. package/dist/esm/gov-form-switch.entry.js +1 -1
  261. package/dist/esm/gov-grid-item.entry.js +1 -1
  262. package/dist/esm/gov-grid.entry.js +1 -1
  263. package/dist/esm/gov-icon.entry.js +2 -2
  264. package/dist/esm/gov-infobar.entry.js +1 -1
  265. package/dist/esm/gov-layout-column.entry.js +1 -1
  266. package/dist/esm/gov-layout.entry.js +1 -1
  267. package/dist/esm/gov-loading.entry.js +1 -1
  268. package/dist/esm/gov-message.entry.js +1 -1
  269. package/dist/esm/gov-modal.entry.js +1 -1
  270. package/dist/esm/gov-nav-item.entry.js +1 -1
  271. package/dist/esm/gov-nav.entry.js +1 -1
  272. package/dist/esm/gov-pagination.entry.js +4 -2
  273. package/dist/esm/gov-pagination.entry.js.map +1 -1
  274. package/dist/esm/gov-prompt.entry.js +1 -1
  275. package/dist/esm/gov-side-nav-item.entry.js +1 -1
  276. package/dist/esm/gov-side-nav.entry.js +1 -1
  277. package/dist/esm/gov-skeleton.entry.js +1 -1
  278. package/dist/esm/gov-spacer.entry.js +1 -1
  279. package/dist/esm/gov-statsbar-item.entry.js +1 -1
  280. package/dist/esm/gov-statsbar.entry.js +1 -1
  281. package/dist/esm/gov-stepper-item.entry.js +1 -1
  282. package/dist/esm/gov-stepper.entry.js +1 -1
  283. package/dist/esm/gov-tabs-item.entry.js +14 -3
  284. package/dist/esm/gov-tabs-item.entry.js.map +1 -1
  285. package/dist/esm/gov-tabs.entry.js +35 -43
  286. package/dist/esm/gov-tabs.entry.js.map +1 -1
  287. package/dist/esm/gov-tag.entry.js +1 -1
  288. package/dist/esm/gov-tile.entry.js +1 -1
  289. package/dist/esm/gov-tiles.entry.js +1 -1
  290. package/dist/esm/gov-toast.entry.js +1 -1
  291. package/dist/esm/gov-tooltip-content.entry.js +1 -1
  292. package/dist/esm/gov-tooltip.entry.js +68 -59
  293. package/dist/esm/gov-tooltip.entry.js.map +1 -1
  294. package/dist/esm/gov-wizard-item.entry.js +1 -1
  295. package/dist/esm/gov-wizard.entry.js +1 -1
  296. package/dist/esm/{index-84a63a3e.js → index-b44c6c92.js} +5 -2
  297. package/dist/esm/index-b44c6c92.js.map +1 -0
  298. package/dist/esm/loader.js +3 -3
  299. package/dist/hydrate/index.js +124 -104
  300. package/dist/hydrate/index.mjs +124 -104
  301. package/dist/types/components/gov-form/input/gov-form-input.d.ts +5 -1
  302. package/dist/types/components/gov-pagination/gov-pagination.d.ts +5 -0
  303. package/dist/types/components/gov-tabs/gov-tabs-item.d.ts +1 -0
  304. package/dist/types/components/gov-tabs/gov-tabs.d.ts +6 -4
  305. package/dist/types/components/gov-tooltip/gov-tooltip.d.ts +3 -1
  306. package/dist/types/components.d.ts +22 -2
  307. package/package.json +1 -1
  308. package/dist/cjs/index-d7a6145d.js.map +0 -1
  309. package/dist/components/p-8f752a63.js.map +0 -1
  310. package/dist/components/p-cff54227.js.map +0 -1
  311. package/dist/core/p-4382ee13.entry.js +0 -2
  312. package/dist/core/p-4382ee13.entry.js.map +0 -1
  313. package/dist/core/p-46ddd055.entry.js +0 -2
  314. package/dist/core/p-46ddd055.entry.js.map +0 -1
  315. package/dist/core/p-9de457bf.entry.js +0 -2
  316. package/dist/core/p-9de457bf.entry.js.map +0 -1
  317. package/dist/core/p-a6221940.js +0 -3
  318. package/dist/core/p-a6221940.js.map +0 -1
  319. package/dist/core/p-aaad919f.entry.js.map +0 -1
  320. package/dist/core/p-de924143.entry.js.map +0 -1
  321. package/dist/esm/index-84a63a3e.js.map +0 -1
  322. /package/dist/components/{p-0ef9ca38.js.map → p-137f86d1.js.map} +0 -0
  323. /package/dist/components/{p-38129200.js.map → p-3605bf8d.js.map} +0 -0
  324. /package/dist/components/{p-67f93e2f.js.map → p-4489a1da.js.map} +0 -0
  325. /package/dist/components/{p-e6b44c13.js.map → p-84d0a332.js.map} +0 -0
  326. /package/dist/components/{p-850f41a3.js.map → p-8df7c635.js.map} +0 -0
  327. /package/dist/components/{p-5a881c4f.js.map → p-92c6c6aa.js.map} +0 -0
  328. /package/dist/components/{p-f0e6e095.js.map → p-9c9fc4ae.js.map} +0 -0
  329. /package/dist/components/{p-cc51369e.js.map → p-d9dda24d.js.map} +0 -0
  330. /package/dist/components/{p-3d3231ab.js.map → p-e01962d9.js.map} +0 -0
  331. /package/dist/core/{p-7eeb23c5.entry.js.map → p-02745628.entry.js.map} +0 -0
  332. /package/dist/core/{p-5cf78f1c.entry.js.map → p-04e48d5d.entry.js.map} +0 -0
  333. /package/dist/core/{p-b25da41e.entry.js.map → p-0790a27c.entry.js.map} +0 -0
  334. /package/dist/core/{p-893bc0ef.entry.js.map → p-10dbd2e1.entry.js.map} +0 -0
  335. /package/dist/core/{p-d51fa875.entry.js.map → p-13a80dc5.entry.js.map} +0 -0
  336. /package/dist/core/{p-35a77e2d.entry.js.map → p-14e5fd00.entry.js.map} +0 -0
  337. /package/dist/core/{p-6378b5af.entry.js.map → p-185a46b9.entry.js.map} +0 -0
  338. /package/dist/core/{p-e7845795.entry.js.map → p-1b212799.entry.js.map} +0 -0
  339. /package/dist/core/{p-a82a8d9c.entry.js.map → p-1d67220c.entry.js.map} +0 -0
  340. /package/dist/core/{p-9f08ac81.entry.js.map → p-212e297e.entry.js.map} +0 -0
  341. /package/dist/core/{p-92bef3b8.entry.js.map → p-290773da.entry.js.map} +0 -0
  342. /package/dist/core/{p-2cc5dda1.entry.js.map → p-2e647c00.entry.js.map} +0 -0
  343. /package/dist/core/{p-f6416cb8.entry.js.map → p-2fb0e1cf.entry.js.map} +0 -0
  344. /package/dist/core/{p-51f069f2.entry.js.map → p-332a43c7.entry.js.map} +0 -0
  345. /package/dist/core/{p-071857ce.entry.js.map → p-33b1f5d8.entry.js.map} +0 -0
  346. /package/dist/core/{p-314df6e2.entry.js.map → p-3483a6e8.entry.js.map} +0 -0
  347. /package/dist/core/{p-854e705c.entry.js.map → p-34cf509a.entry.js.map} +0 -0
  348. /package/dist/core/{p-dd45944f.entry.js.map → p-36312bef.entry.js.map} +0 -0
  349. /package/dist/core/{p-a0b01f1b.entry.js.map → p-389edb54.entry.js.map} +0 -0
  350. /package/dist/core/{p-ecbb9731.entry.js.map → p-3e3a1607.entry.js.map} +0 -0
  351. /package/dist/core/{p-c9bd2a6e.entry.js.map → p-3f62cf30.entry.js.map} +0 -0
  352. /package/dist/core/{p-28d8b65c.entry.js.map → p-4978aa0a.entry.js.map} +0 -0
  353. /package/dist/core/{p-b5ceb3ba.entry.js.map → p-4b048e19.entry.js.map} +0 -0
  354. /package/dist/core/{p-680c0fee.entry.js.map → p-4c83f443.entry.js.map} +0 -0
  355. /package/dist/core/{p-37f5729b.entry.js.map → p-4dbaff99.entry.js.map} +0 -0
  356. /package/dist/core/{p-5fa30ebf.entry.js.map → p-58c875bb.entry.js.map} +0 -0
  357. /package/dist/core/{p-a14aa161.entry.js.map → p-5d33cb6e.entry.js.map} +0 -0
  358. /package/dist/core/{p-ee1637ef.entry.js.map → p-5e7e7cb1.entry.js.map} +0 -0
  359. /package/dist/core/{p-4c68eb90.entry.js.map → p-5facceb9.entry.js.map} +0 -0
  360. /package/dist/core/{p-c1911b6a.entry.js.map → p-6092fd22.entry.js.map} +0 -0
  361. /package/dist/core/{p-8c80d1aa.entry.js.map → p-650ac6c6.entry.js.map} +0 -0
  362. /package/dist/core/{p-671041de.entry.js.map → p-6977b168.entry.js.map} +0 -0
  363. /package/dist/core/{p-b4b79f0a.entry.js.map → p-6c745c3e.entry.js.map} +0 -0
  364. /package/dist/core/{p-a01a9f16.entry.js.map → p-718d0198.entry.js.map} +0 -0
  365. /package/dist/core/{p-c366f797.entry.js.map → p-761c33c7.entry.js.map} +0 -0
  366. /package/dist/core/{p-16ed4995.entry.js.map → p-7695610a.entry.js.map} +0 -0
  367. /package/dist/core/{p-b7e96a9d.entry.js.map → p-7b598f56.entry.js.map} +0 -0
  368. /package/dist/core/{p-37a58991.entry.js.map → p-7d1dd58a.entry.js.map} +0 -0
  369. /package/dist/core/{p-8fc87295.entry.js.map → p-8ab827a1.entry.js.map} +0 -0
  370. /package/dist/core/{p-443894aa.entry.js.map → p-a87d8f17.entry.js.map} +0 -0
  371. /package/dist/core/{p-49f584a3.entry.js.map → p-ab9d9655.entry.js.map} +0 -0
  372. /package/dist/core/{p-5d1f350b.entry.js.map → p-aba11ab4.entry.js.map} +0 -0
  373. /package/dist/core/{p-47efa303.entry.js.map → p-b58ed9ce.entry.js.map} +0 -0
  374. /package/dist/core/{p-e1a5a373.entry.js.map → p-bc2ec133.entry.js.map} +0 -0
  375. /package/dist/core/{p-fccbecd3.entry.js.map → p-c7e8faec.entry.js.map} +0 -0
  376. /package/dist/core/{p-94bc809d.entry.js.map → p-cc3c6319.entry.js.map} +0 -0
  377. /package/dist/core/{p-307906c9.entry.js.map → p-cce125de.entry.js.map} +0 -0
  378. /package/dist/core/{p-3e4a8fa7.entry.js.map → p-d2fc217d.entry.js.map} +0 -0
  379. /package/dist/core/{p-f10ad856.entry.js.map → p-dbad9256.entry.js.map} +0 -0
  380. /package/dist/core/{p-815d86ed.entry.js.map → p-dbb67e76.entry.js.map} +0 -0
  381. /package/dist/core/{p-0c78bb6a.entry.js.map → p-dbde347f.entry.js.map} +0 -0
  382. /package/dist/core/{p-fbbd1e5d.entry.js.map → p-eb403270.entry.js.map} +0 -0
  383. /package/dist/core/{p-372910de.entry.js.map → p-f11f707f.entry.js.map} +0 -0
  384. /package/dist/core/{p-a45a55eb.entry.js.map → p-f54fe20e.entry.js.map} +0 -0
  385. /package/dist/core/{p-45411344.entry.js.map → p-f9fee460.entry.js.map} +0 -0
@@ -4,12 +4,12 @@ import { canValidateWcagOnRender } from "../../helpers/Dom/win";
4
4
  import { validateProp } from "../../helpers/Validate/props";
5
5
  import { validateWcagLabel, validateWcagProp } from "../../helpers/Validate/wcag";
6
6
  import { createID } from "../../utils/string.utils";
7
- import { delay, throttle } from "../../utils/utils";
7
+ import { delay } from "../../utils/utils";
8
8
  import { TabsClass, TabsItemClass, TabTypes, TabVariants } from "./constants";
9
9
  export class GovTabs {
10
10
  constructor() {
11
11
  this.triggerRefs = {};
12
- this.controller = [];
12
+ this.controllers = [];
13
13
  this.focusIndex = 0;
14
14
  this.compactControls = false;
15
15
  this.type = "text";
@@ -28,17 +28,16 @@ export class GovTabs {
28
28
  validateProp(TabVariants, newValue, TabsClass.root);
29
29
  }
30
30
  componentWillLoad() {
31
- this.prepareDataSource();
31
+ this.prepareControllers();
32
32
  }
33
33
  async componentDidRender() {
34
34
  if (canValidateWcagOnRender()) {
35
35
  await delay(500);
36
36
  await this.validateWcag();
37
37
  }
38
- this.resizeObserver();
39
38
  }
40
- prepareDataSource() {
41
- this.controller = [];
39
+ prepareControllers() {
40
+ this.controllers = [];
42
41
  const promises = [];
43
42
  this.host.querySelectorAll(TabsItemClass.root).forEach((tab) => {
44
43
  const controlItem = Promise.all([
@@ -60,49 +59,36 @@ export class GovTabs {
60
59
  promises.push(controlItem);
61
60
  });
62
61
  Promise.all(promises).then(controllers => {
63
- let defaultTab = controllers.findIndex(controller => controller.default);
64
- if (defaultTab === -1)
65
- defaultTab = 0;
66
- this.focusIndex = defaultTab;
67
- controllers[defaultTab].active = true;
68
- this.controller = [...controllers];
62
+ let defaultTabIndex = controllers.findIndex(controller => controller.default);
63
+ if (defaultTabIndex === -1)
64
+ defaultTabIndex = 0;
65
+ this.focusIndex = defaultTabIndex;
66
+ controllers[defaultTabIndex].active = true;
67
+ this.controllers = [...controllers];
69
68
  this.reRender();
70
69
  });
71
70
  }
72
71
  setActiveByIdentifier(identifier) {
73
72
  const temp = [];
74
- this.controller.map(item => {
73
+ this.controllers.map(item => {
75
74
  item.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier;
76
75
  temp.push(item);
77
76
  });
78
- this.controller = [...temp];
77
+ this.controllers = [...temp];
79
78
  }
80
79
  reRender() {
81
- this.controller.map(control => {
82
- control.element.setActiveStatus(control.active);
80
+ this.controllers.map(control => {
81
+ control.element.setActiveStatus(control.active).catch();
83
82
  });
84
83
  }
85
- /*
86
- private evaluateControls() {
87
- this.compactControls = false
88
- let sumOfWidth = this.tabsRef.querySelector("ul").offsetWidth
89
- this.compactControls = this.tabsRef.offsetWidth < sumOfWidth
90
- }
91
- */
92
- resizeObserver() {
93
- const resizeObserver = new ResizeObserver(throttle(() => {
94
- // this.evaluateControls()
95
- }, 200));
96
- resizeObserver.observe(this.tabsRef);
97
- }
98
84
  render() {
99
- return (h(Host, { key: '561251fc7844ec9d11f72ff6e03ac6656b298ac9', class: this.h.classes(TabsClass.root), variant: this.variant, type: this.type, role: "tablist", ref: el => (this.tabsRef = el), "aria-label": this.wcagLabel, "aria-labelledby": this.wcagLabelledBy, onKeyDown: this.onKeydownHandler.bind(this) }, h("div", { key: 'c5ecb113f0c39857a3d4eea506b08321b577f2b1', class: TabsClass.tabs, "aria-hidden": toBoolAttr(this.compactControls) }, h("ul", { key: 'd1d1d166a43ddc69d35ec6c359dbab589e3c92fd', class: TabsClass.list }, this.controller.map(control => (h("li", { class: TabsClass.item }, this.type == "text" ? (h("button", { class: TabsClass.btn, id: control.triggerIdentifier, role: "tab", onClick: () => this.onSelectHandler(control), disabled: control.disabled, "aria-disabled": toBoolAttr(control.disabled), "aria-selected": toBoolAttr(control.active), "aria-controls": control.contentIdentifier, tabindex: control.active && !control.disabled ? 0 : -1, ref: el => (this.triggerRefs[control.triggerIdentifier] = el) }, control.label)) : (h("gov-chip", { role: "tab", tag: 'button', identifier: control.triggerIdentifier, "wcag-selected": control.active, "wcag-controls": control.contentIdentifier, focusable: control.active, disabled: control.disabled, variant: this.variant, inverse: !control.active, ref: el => (this.triggerRefs[control.triggerIdentifier] = el), "on-gov-click": () => this.onSelectHandler(control) }, control.label))))))), h("span", { key: '713c0bcfb6ff3377c77bff908b7e30ecd084d64f', id: this.formSelectId, hidden: true }, this.wcagSelectLabel), this.compactControls ? (h("gov-form-select", { "wcag-labelled-by": this.formSelectId, "onGov-change": this.onChangeHandler.bind(this) }, this.controller.map(control => (h("option", { value: control.triggerIdentifier, selected: control.active }, control.label))))) : null, h("slot", { key: '176d4c69a319e1d0630db64ad853bd3358db865c' })));
85
+ return (h(Host, { key: 'fa6bb0777c56edcb61f5acfa4cac75fae2f8bb78', class: this.h.classes(TabsClass.root), variant: this.variant, type: this.type, role: "tablist", "aria-label": this.wcagLabel, "aria-labelledby": this.wcagLabelledBy, onKeyDown: this.onKeydownHandler.bind(this) }, h("div", { key: '3e764b20b9a1e3221232d7567e45acae8701a963', class: TabsClass.tabs, "aria-hidden": toBoolAttr(this.compactControls) }, h("ul", { key: 'adedeb20cd2d5608502410f1b843ba6293000e7c', class: TabsClass.list }, this.controllers.map(control => (h("li", { class: TabsClass.item }, this.type == "text" ? (h("button", { class: TabsClass.btn, id: control.triggerIdentifier, role: "tab", onClick: () => this.onSelectHandler(control), disabled: control.disabled, "aria-disabled": toBoolAttr(control.disabled), "aria-selected": toBoolAttr(control.active), "aria-controls": control.contentIdentifier, tabindex: control.active && !control.disabled ? 0 : -1, ref: el => (this.triggerRefs[control.triggerIdentifier] = el) }, control.label)) : (h("gov-chip", { role: "tab", tag: 'button', identifier: control.triggerIdentifier, "wcag-selected": control.active, "wcag-controls": control.contentIdentifier, focusable: control.active, disabled: control.disabled, variant: this.variant, inverse: !control.active, ref: el => (this.triggerRefs[control.triggerIdentifier] = el), "on-gov-click": () => this.onSelectHandler(control) }, control.label))))))), h("span", { key: '6d855cd5195673b6a13aaf4b357b74bdcfd0ef4d', id: this.formSelectId, hidden: true }, this.wcagSelectLabel), this.compactControls ? (h("gov-form-select", { "wcag-labelled-by": this.formSelectId, "onGov-change": this.onChangeHandler.bind(this) }, this.controllers.map(control => (h("option", { value: control.triggerIdentifier, selected: control.active }, control.label))))) : null, h("slot", { key: 'd7ea30baebad93b05c1f978fcca0c19989be7227' })));
100
86
  }
101
87
  getCurrentTab() {
102
- return this.controller.find(control => control.active) || null;
88
+ return this.controllers.find(control => control.active) || null;
103
89
  }
104
90
  onSelectHandler(control) {
105
- const index = this.controller.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);
91
+ const index = this.controllers.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);
106
92
  this.focusIndex = index;
107
93
  this.setActiveByIdentifier(control.triggerIdentifier);
108
94
  this.reRender();
@@ -122,30 +108,30 @@ export class GovTabs {
122
108
  }
123
109
  goToPrevNext(keyCode) {
124
110
  if ([37, 38, 39, 40].includes(keyCode)) {
125
- if (false === (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1)) {
111
+ if (false === (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1)) {
126
112
  return;
127
113
  }
128
- this.controller[this.focusIndex].active = false;
114
+ this.controllers[this.focusIndex].active = false;
129
115
  if (keyCode === 39 || keyCode === 40) {
130
116
  this.focusIndex++;
131
- if (this.focusIndex >= this.controller.length) {
117
+ if (this.focusIndex >= this.controllers.length) {
132
118
  this.focusIndex = 0;
133
119
  }
134
- if (this.controller[this.focusIndex].disabled) {
120
+ if (this.controllers[this.focusIndex].disabled) {
135
121
  this.goToPrevNext(40);
136
122
  }
137
123
  }
138
124
  else if (keyCode === 37 || keyCode === 38) {
139
125
  this.focusIndex--;
140
126
  if (this.focusIndex < 0) {
141
- this.focusIndex = this.controller.length - 1;
127
+ this.focusIndex = this.controllers.length - 1;
142
128
  }
143
- if (this.controller[this.focusIndex].disabled) {
129
+ if (this.controllers[this.focusIndex].disabled) {
144
130
  this.goToPrevNext(38);
145
131
  }
146
132
  }
147
- if (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1) {
148
- const current = this.controller[this.focusIndex];
133
+ if (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1) {
134
+ const current = this.controllers[this.focusIndex];
149
135
  current.active = true;
150
136
  const trigger = this.triggerRefs[current.triggerIdentifier];
151
137
  if (trigger.nodeName.toLowerCase() === 'gov-chip') {
@@ -154,7 +140,7 @@ export class GovTabs {
154
140
  else {
155
141
  this.triggerRefs[current.triggerIdentifier].focus();
156
142
  }
157
- this.controller = [...this.controller];
143
+ this.controllers = [...this.controllers];
158
144
  this.reRender();
159
145
  this.govChange.emit(this.getCurrentTab().element);
160
146
  }
@@ -164,7 +150,7 @@ export class GovTabs {
164
150
  * Regenerate tabs controllers
165
151
  */
166
152
  async refresh() {
167
- this.prepareDataSource();
153
+ this.prepareControllers();
168
154
  }
169
155
  /**
170
156
  * Returns the currently selected tabs-item
@@ -179,6 +165,12 @@ export class GovTabs {
179
165
  this.setActiveByIdentifier(identifier);
180
166
  this.reRender();
181
167
  }
168
+ /**
169
+ * Regenerate tabs controllers
170
+ */
171
+ async rerender() {
172
+ this.prepareControllers();
173
+ }
182
174
  /**
183
175
  * Validate the WCAG attributes of the component
184
176
  */
@@ -326,7 +318,7 @@ export class GovTabs {
326
318
  }
327
319
  static get states() {
328
320
  return {
329
- "controller": {},
321
+ "controllers": {},
330
322
  "focusIndex": {},
331
323
  "compactControls": {}
332
324
  };
@@ -420,6 +412,23 @@ export class GovTabs {
420
412
  "tags": []
421
413
  }
422
414
  },
415
+ "rerender": {
416
+ "complexType": {
417
+ "signature": "() => Promise<void>",
418
+ "parameters": [],
419
+ "references": {
420
+ "Promise": {
421
+ "location": "global",
422
+ "id": "global::Promise"
423
+ }
424
+ },
425
+ "return": "Promise<void>"
426
+ },
427
+ "docs": {
428
+ "text": "Regenerate tabs controllers",
429
+ "tags": []
430
+ }
431
+ },
423
432
  "validateWcag": {
424
433
  "complexType": {
425
434
  "signature": "() => Promise<void>",
@@ -1 +1 @@
1
- {"version":3,"file":"gov-tabs.js","sourceRoot":"","sources":["../../../../../../src/components/gov-tabs/gov-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\n\nimport {govHost, toBoolAttr} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {canValidateWcagOnRender} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {validateWcagLabel, validateWcagProp} from \"../../helpers/Validate/wcag\"\nimport {Nullable} from \"../../types/interfaces\"\nimport {createID} from \"../../utils/string.utils\"\nimport {delay, throttle} from \"../../utils/utils\"\nimport {TabOrientationType, TabsClass, TabsItemClass, TabType, TabTypes, TabVariants, VariantType} from \"./constants\"\nimport {GovTabControllerItem} from \"./gov-tabs.types\"\n\n@Component({\n\ttag: \"gov-tabs\",\n\tstyleUrl: \"gov-tabs.scss\",\n})\nexport class GovTabs {\n\tprivate h: GovHost\n\tprivate triggerRefs: { [key: string]: HTMLButtonElement | HTMLGovChipElement } = {}\n\tprivate tabsRef?: HTMLDivElement\n\n\tprivate readonly formSelectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.formSelectId = createID(\"GovFormSelect\")\n\t}\n\n\t@Element() host: HTMLGovTabsElement\n\t@State() controller: GovTabControllerItem[] = []\n\t@State() focusIndex = 0\n\t@State() compactControls = false\n\t/**\n\t * Tabs type\n\t */\n\t@Prop() readonly type: TabType = \"text\"\n\t/**\n\t * Style variation of the tab chips.\n\t */\n\t@Prop() readonly variant?: VariantType = \"primary\"\n\t/**\n\t * Tabs orientation\n\t */\n\t@Prop() readonly orientation: TabOrientationType = \"horizontal\"\n\t/**\n\t * Adds accessible label for the tabs that is only shown for screen readers.\n\t */\n\t@Prop({attribute: \"wcag-label\"}) readonly wcagLabel: string\n\t/**\n\t * Adds accessible label for the tabs select\n\t */\n\t@Prop({attribute: \"wcag-select-label\"}) readonly wcagSelectLabel: string\n\t/**\n\t * Indicates the id of a component that labels the tabs.\n\t */\n\t@Prop({attribute: \"wcag-labelled-by\"}) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the tab is changed.\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<HTMLGovTabsItemElement>\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(TabTypes, newValue, TabsClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TabVariants, newValue, TabsClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.prepareDataSource()\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.resizeObserver()\n\t}\n\n\tprivate prepareDataSource(): void {\n\t\tthis.controller = []\n\t\tconst promises: Promise<GovTabControllerItem>[] = []\n\t\tthis.host.querySelectorAll(TabsItemClass.root).forEach((tab: HTMLGovTabsItemElement) => {\n\t\t\tconst controlItem = Promise.all([\n\t\t\t\ttab.getIdentifier(),\n\t\t\t\ttab.getTriggerIdentifier(),\n\t\t\t\ttab.getDisableState()\n\t\t\t]).then(([identifier, triggerIdentifier, disabled]) => {\n\t\t\t\tconst isDefault = typeof tab.getAttribute(\"default\") === \"string\"\n\t\t\t\treturn {\n\t\t\t\t\tlabel: tab.getAttribute(\"label\"),\n\t\t\t\t\tcontentIdentifier: identifier,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\ttriggerIdentifier: triggerIdentifier,\n\t\t\t\t\telement: tab,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tdefault: isDefault,\n\t\t\t\t}\n\t\t\t})\n\t\t\tpromises.push(controlItem)\n\t\t});\n\t\tPromise.all(promises).then(controllers => {\n\t\t\tlet defaultTab = controllers.findIndex(controller => controller.default)\n\t\t\tif (defaultTab === -1) defaultTab = 0\n\t\t\tthis.focusIndex = defaultTab\n\t\t\tcontrollers[defaultTab].active = true\n\t\t\tthis.controller = [...controllers]\n\t\t\tthis.reRender()\n\t\t})\n\t}\n\n\tprivate setActiveByIdentifier(identifier: string) {\n\t\tconst temp = []\n\t\tthis.controller.map(item => {\n\t\t\titem.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier\n\t\t\ttemp.push(item)\n\t\t})\n\t\tthis.controller = [...temp]\n\t}\n\n\tprivate reRender() {\n\t\tthis.controller.map(control => {\n\t\t\tcontrol.element.setActiveStatus(control.active)\n\t\t})\n\t}\n\n\t/*\n\tprivate evaluateControls() {\n\t\tthis.compactControls = false\n\t\tlet sumOfWidth = this.tabsRef.querySelector(\"ul\").offsetWidth\n\t\tthis.compactControls = this.tabsRef.offsetWidth < sumOfWidth\n\t}\n\t*/\n\n\tprivate resizeObserver() {\n\t\tconst resizeObserver = new ResizeObserver(\n\t\t\tthrottle(() => {\n\t\t\t\t// this.evaluateControls()\n\t\t\t}, 200),\n\t\t)\n\n\t\tresizeObserver.observe(this.tabsRef)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TabsClass.root)}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\trole=\"tablist\"\n\t\t\t\tref={el => (this.tabsRef = el as HTMLDivElement)}\n\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\tonKeyDown={this.onKeydownHandler.bind(this)}\n\t\t\t>\n\t\t\t\t<div class={TabsClass.tabs} aria-hidden={toBoolAttr(this.compactControls)}>\n\t\t\t\t\t<ul class={TabsClass.list}>\n\t\t\t\t\t\t{this.controller.map(control => (\n\t\t\t\t\t\t\t<li class={TabsClass.item}>\n\t\t\t\t\t\t\t\t{this.type == \"text\" ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass={TabsClass.btn}\n\t\t\t\t\t\t\t\t\t\tid={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\taria-disabled={toBoolAttr(control.disabled)}\n\t\t\t\t\t\t\t\t\t\taria-selected={toBoolAttr(control.active)}\n\t\t\t\t\t\t\t\t\t\taria-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\ttabindex={control.active && !control.disabled ? 0 : -1}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLButtonElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<gov-chip\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\ttag={'button'}\n\t\t\t\t\t\t\t\t\t\tidentifier={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\twcag-selected={control.active}\n\t\t\t\t\t\t\t\t\t\twcag-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\tfocusable={control.active}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\tinverse={!control.active}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLGovChipElement)}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</gov-chip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\n\t\t\t\t<span id={this.formSelectId} hidden>\n\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t</span>\n\t\t\t\t{this.compactControls ? (\n\t\t\t\t\t<gov-form-select wcag-labelled-by={this.formSelectId} onGov-change={this.onChangeHandler.bind(this)}>\n\t\t\t\t\t\t{this.controller.map(control => (\n\t\t\t\t\t\t\t<option value={control.triggerIdentifier} selected={control.active}>\n\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t) : null}\n\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate getCurrentTab(): GovTabControllerItem | null {\n\t\treturn this.controller.find(control => control.active) || null\n\t}\n\n\tprivate onSelectHandler(control: GovTabControllerItem) {\n\t\tconst index = this.controller.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);\n\t\tthis.focusIndex = index\n\t\tthis.setActiveByIdentifier(control.triggerIdentifier)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onChangeHandler(e: CustomEvent) {\n\t\tconst triggerId = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.setActiveByIdentifier(triggerId)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onKeydownHandler(e: KeyboardEvent) {\n\t\tconst keyCode = e.keyCode\n\n\t\te.stopPropagation()\n\t\tthis.goToPrevNext(keyCode)\n\t}\n\n\tprivate goToPrevNext(keyCode: number) {\n\t\tif ([37, 38, 39, 40].includes(keyCode)) {\n\t\t\tif (false === (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.controller[this.focusIndex].active = false\n\n\t\t\tif (keyCode === 39 || keyCode === 40) {\n\t\t\t\tthis.focusIndex++\n\t\t\t\tif (this.focusIndex >= this.controller.length) {\n\t\t\t\t\tthis.focusIndex = 0\n\t\t\t\t}\n\t\t\t\tif (this.controller[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(40)\n\t\t\t\t}\n\t\t\t} else if (keyCode === 37 || keyCode === 38) {\n\t\t\t\tthis.focusIndex--\n\t\t\t\tif (this.focusIndex < 0) {\n\t\t\t\t\tthis.focusIndex = this.controller.length - 1\n\t\t\t\t}\n\t\t\t\tif (this.controller[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(38)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1) {\n\t\t\t\tconst current = this.controller[this.focusIndex]\n\t\t\t\tcurrent.active = true\n\t\t\t\tconst trigger = this.triggerRefs[current.triggerIdentifier]\n\t\t\t\tif (trigger.nodeName.toLowerCase() === 'gov-chip') {\n\t\t\t\t\t(this.triggerRefs[current.triggerIdentifier] as HTMLGovChipElement).setFocus()\n\t\t\t\t} else {\n\t\t\t\t\tthis.triggerRefs[current.triggerIdentifier].focus()\n\t\t\t\t}\n\n\t\t\t\tthis.controller = [...this.controller]\n\t\t\t\tthis.reRender()\n\t\t\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync refresh(): Promise<void> {\n\t\tthis.prepareDataSource()\n\t}\n\n\t/**\n\t * Returns the currently selected tabs-item\n\t */\n\t@Method()\n\tasync currentTab(): Promise<Nullable<HTMLGovTabsItemElement>> {\n\t\treturn this.getCurrentTab().element || null\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync setActiveTab(identifier: string): Promise<void> {\n\t\tthis.setActiveByIdentifier(identifier)\n\t\tthis.reRender()\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\tvalidateWcagProp(this.wcagSelectLabel, \"wcag-select-label\", TabsClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, TabsClass.root)\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-tabs.js","sourceRoot":"","sources":["../../../../../../src/components/gov-tabs/gov-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\n\nimport {govHost, toBoolAttr} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {canValidateWcagOnRender} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {validateWcagLabel, validateWcagProp} from \"../../helpers/Validate/wcag\"\nimport {Nullable} from \"../../types/interfaces\"\nimport {createID} from \"../../utils/string.utils\"\nimport {delay} from \"../../utils/utils\"\nimport {TabOrientationType, TabsClass, TabsItemClass, TabType, TabTypes, TabVariants, VariantType} from \"./constants\"\nimport {GovTabControllerItem} from \"./gov-tabs.types\"\n\n@Component({\n\ttag: \"gov-tabs\",\n\tstyleUrl: \"gov-tabs.scss\",\n})\nexport class GovTabs {\n\tprivate h: GovHost\n\tprivate triggerRefs: Record<string, HTMLButtonElement | HTMLGovChipElement> = {}\n\n\tprivate readonly formSelectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.formSelectId = createID(\"GovFormSelect\")\n\t}\n\n\t@Element() host: HTMLGovTabsElement\n\t@State() controllers: GovTabControllerItem[] = []\n\t@State() focusIndex = 0\n\t@State() compactControls = false\n\t/**\n\t * Tabs type\n\t */\n\t@Prop() readonly type: TabType = \"text\"\n\t/**\n\t * Style variation of the tab chips.\n\t */\n\t@Prop() readonly variant?: VariantType = \"primary\"\n\t/**\n\t * Tabs orientation\n\t */\n\t@Prop() readonly orientation: TabOrientationType = \"horizontal\"\n\t/**\n\t * Adds accessible label for the tabs that is only shown for screen readers.\n\t */\n\t@Prop({attribute: \"wcag-label\"}) readonly wcagLabel: string\n\t/**\n\t * Adds accessible label for the tabs select\n\t */\n\t@Prop({attribute: \"wcag-select-label\"}) readonly wcagSelectLabel: string\n\t/**\n\t * Indicates the id of a component that labels the tabs.\n\t */\n\t@Prop({attribute: \"wcag-labelled-by\"}) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the tab is changed.\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<HTMLGovTabsItemElement>\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(TabTypes, newValue, TabsClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TabVariants, newValue, TabsClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.prepareControllers()\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 prepareControllers(): void {\n\t\tthis.controllers = []\n\t\tconst promises: Promise<GovTabControllerItem>[] = []\n\t\tthis.host.querySelectorAll(TabsItemClass.root).forEach((tab: HTMLGovTabsItemElement) => {\n\t\t\tconst controlItem = Promise.all([\n\t\t\t\ttab.getIdentifier(),\n\t\t\t\ttab.getTriggerIdentifier(),\n\t\t\t\ttab.getDisableState()\n\t\t\t]).then(([identifier, triggerIdentifier, disabled]) => {\n\t\t\t\tconst isDefault = typeof tab.getAttribute(\"default\") === \"string\"\n\t\t\t\treturn {\n\t\t\t\t\tlabel: tab.getAttribute(\"label\"),\n\t\t\t\t\tcontentIdentifier: identifier,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\ttriggerIdentifier: triggerIdentifier,\n\t\t\t\t\telement: tab,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tdefault: isDefault,\n\t\t\t\t}\n\t\t\t})\n\t\t\tpromises.push(controlItem)\n\t\t});\n\t\tPromise.all(promises).then(controllers => {\n\t\t\tlet defaultTabIndex = controllers.findIndex(controller => controller.default)\n\t\t\tif (defaultTabIndex === -1) defaultTabIndex = 0\n\t\t\tthis.focusIndex = defaultTabIndex\n\t\t\tcontrollers[defaultTabIndex].active = true\n\t\t\tthis.controllers = [...controllers]\n\t\t\tthis.reRender()\n\t\t})\n\t}\n\n\tprivate setActiveByIdentifier(identifier: string) {\n\t\tconst temp = []\n\t\tthis.controllers.map(item => {\n\t\t\titem.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier\n\t\t\ttemp.push(item)\n\t\t})\n\t\tthis.controllers = [...temp]\n\t}\n\n\tprivate reRender() {\n\t\tthis.controllers.map(control => {\n\t\t\tcontrol.element.setActiveStatus(control.active).catch()\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TabsClass.root)}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\trole=\"tablist\"\n\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\tonKeyDown={this.onKeydownHandler.bind(this)}\n\t\t\t>\n\t\t\t\t<div class={TabsClass.tabs} aria-hidden={toBoolAttr(this.compactControls)}>\n\t\t\t\t\t<ul class={TabsClass.list}>\n\t\t\t\t\t\t{this.controllers.map(control => (\n\t\t\t\t\t\t\t<li class={TabsClass.item}>\n\t\t\t\t\t\t\t\t{this.type == \"text\" ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass={TabsClass.btn}\n\t\t\t\t\t\t\t\t\t\tid={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\taria-disabled={toBoolAttr(control.disabled)}\n\t\t\t\t\t\t\t\t\t\taria-selected={toBoolAttr(control.active)}\n\t\t\t\t\t\t\t\t\t\taria-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\ttabindex={control.active && !control.disabled ? 0 : -1}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLButtonElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<gov-chip\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\ttag={'button'}\n\t\t\t\t\t\t\t\t\t\tidentifier={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\twcag-selected={control.active}\n\t\t\t\t\t\t\t\t\t\twcag-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\tfocusable={control.active}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\tinverse={!control.active}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLGovChipElement)}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</gov-chip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\n\t\t\t\t<span id={this.formSelectId} hidden>\n\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t</span>\n\t\t\t\t{this.compactControls ? (\n\t\t\t\t\t<gov-form-select wcag-labelled-by={this.formSelectId} onGov-change={this.onChangeHandler.bind(this)}>\n\t\t\t\t\t\t{this.controllers.map(control => (\n\t\t\t\t\t\t\t<option value={control.triggerIdentifier} selected={control.active}>\n\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t) : null}\n\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate getCurrentTab(): GovTabControllerItem | null {\n\t\treturn this.controllers.find(control => control.active) || null\n\t}\n\n\tprivate onSelectHandler(control: GovTabControllerItem) {\n\t\tconst index = this.controllers.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);\n\t\tthis.focusIndex = index\n\t\tthis.setActiveByIdentifier(control.triggerIdentifier)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onChangeHandler(e: CustomEvent) {\n\t\tconst triggerId = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.setActiveByIdentifier(triggerId)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onKeydownHandler(e: KeyboardEvent) {\n\t\tconst keyCode = e.keyCode\n\n\t\te.stopPropagation()\n\t\tthis.goToPrevNext(keyCode)\n\t}\n\n\tprivate goToPrevNext(keyCode: number) {\n\t\tif ([37, 38, 39, 40].includes(keyCode)) {\n\t\t\tif (false === (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.controllers[this.focusIndex].active = false\n\n\t\t\tif (keyCode === 39 || keyCode === 40) {\n\t\t\t\tthis.focusIndex++\n\t\t\t\tif (this.focusIndex >= this.controllers.length) {\n\t\t\t\t\tthis.focusIndex = 0\n\t\t\t\t}\n\t\t\t\tif (this.controllers[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(40)\n\t\t\t\t}\n\t\t\t} else if (keyCode === 37 || keyCode === 38) {\n\t\t\t\tthis.focusIndex--\n\t\t\t\tif (this.focusIndex < 0) {\n\t\t\t\t\tthis.focusIndex = this.controllers.length - 1\n\t\t\t\t}\n\t\t\t\tif (this.controllers[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(38)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1) {\n\t\t\t\tconst current = this.controllers[this.focusIndex]\n\t\t\t\tcurrent.active = true\n\t\t\t\tconst trigger = this.triggerRefs[current.triggerIdentifier]\n\t\t\t\tif (trigger.nodeName.toLowerCase() === 'gov-chip') {\n\t\t\t\t\t(this.triggerRefs[current.triggerIdentifier] as HTMLGovChipElement).setFocus()\n\t\t\t\t} else {\n\t\t\t\t\tthis.triggerRefs[current.triggerIdentifier].focus()\n\t\t\t\t}\n\n\t\t\t\tthis.controllers = [...this.controllers]\n\t\t\t\tthis.reRender()\n\t\t\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync refresh(): Promise<void> {\n\t\tthis.prepareControllers()\n\t}\n\n\t/**\n\t * Returns the currently selected tabs-item\n\t */\n\t@Method()\n\tasync currentTab(): Promise<Nullable<HTMLGovTabsItemElement>> {\n\t\treturn this.getCurrentTab().element || null\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync setActiveTab(identifier: string): Promise<void> {\n\t\tthis.setActiveByIdentifier(identifier)\n\t\tthis.reRender()\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync rerender(): Promise<void> {\n\t\tthis.prepareControllers();\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\tvalidateWcagProp(this.wcagSelectLabel, \"wcag-select-label\", TabsClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, TabsClass.root)\n\t}\n}\n"]}
@@ -3,6 +3,8 @@ import { validateProp } from "../../helpers/Validate/props";
3
3
  import { TooltipClass, TooltipContentClass, TooltipPosition, TooltipSize, TooltipVariant, } from "./constants";
4
4
  import { createID } from "../../utils/string.utils";
5
5
  import { govHost } from "../../helpers/Dom/template";
6
+ import { documentNode } from "../../helpers/Dom/win";
7
+ import { tick } from "../../utils/stencil.utils";
6
8
  export class GovTooltip {
7
9
  constructor() {
8
10
  this.tooltipContentId = undefined;
@@ -28,11 +30,7 @@ export class GovTooltip {
28
30
  validateProp(TooltipPosition, newValue, TooltipClass.root);
29
31
  }
30
32
  rerenderMessage() {
31
- var _a;
32
- const isContent = document.body.querySelector(`#${(_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId}`);
33
- if (!isContent) {
34
- this.createContentWrapper();
35
- }
33
+ this.createContentWrapper();
36
34
  }
37
35
  componentWillLoad() {
38
36
  this.validateVariant(this.variant);
@@ -41,45 +39,53 @@ export class GovTooltip {
41
39
  this.createContentWrapper();
42
40
  this.registerListeners();
43
41
  }
42
+ componentDidUpdate() {
43
+ this.createContentWrapper();
44
+ }
44
45
  disconnectedCallback() {
45
46
  this.removeContent();
46
47
  }
47
48
  createContentWrapper() {
48
49
  var _a;
49
- const hasContentInside = this.host.querySelector(TooltipContentClass.root);
50
- if (hasContentInside) {
51
- this.content = hasContentInside;
50
+ if (this.tooltipContent) {
51
+ if (this.message) {
52
+ this.tooltipContent.innerHTML = this.message;
53
+ }
54
+ else if (this.insideContent) {
55
+ this.tooltipContent.innerHTML = this.insideContent.innerHTML;
56
+ }
57
+ return;
58
+ }
59
+ let content;
60
+ if (this.insideContent) {
61
+ content = this.insideContent;
52
62
  }
53
63
  else {
54
- this.content = document.createElement(TooltipContentClass.root);
55
- this.content.innerHTML = this.message;
56
- this.host.appendChild(this.content);
64
+ content = documentNode().createElement(TooltipContentClass.root);
65
+ content.innerHTML = this.message;
57
66
  }
58
- this.content.setAttribute("id", (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId);
59
- this.content.setAttribute("parent-id", this.tooltipId);
60
- this.content.setAttribute("variant", this.variant);
61
- this.content.setAttribute("size", this.size);
62
- document.body.appendChild(this.content);
67
+ content.setAttribute("id", (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId);
68
+ content.setAttribute("parent-id", this.tooltipId);
69
+ content.setAttribute("variant", this.variant);
70
+ content.setAttribute("size", this.size);
71
+ documentNode().body.appendChild(content);
72
+ }
73
+ get tooltipContent() {
74
+ var _a;
75
+ return documentNode().body.querySelector(`#${(_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId}`);
76
+ }
77
+ get insideContent() {
78
+ return this.host.querySelector(TooltipContentClass.root);
63
79
  }
64
80
  registerListeners() {
65
81
  this.host.addEventListener("click", e => {
66
82
  e.preventDefault();
67
83
  this.persist = true;
68
- if (this.content) {
69
- this.content.setAttribute("persist", "true");
84
+ if (this.tooltipContent) {
85
+ this.tooltipContent.setAttribute("persist", "true");
70
86
  }
71
87
  this.showTooltip();
72
88
  });
73
- this.host.addEventListener("focus", e => {
74
- e.preventDefault();
75
- this.showTooltip();
76
- });
77
- this.host.addEventListener("blur", e => {
78
- e.preventDefault();
79
- if (this.persist === false) {
80
- this.hideTooltip();
81
- }
82
- });
83
89
  this.host.addEventListener("mouseenter", e => {
84
90
  e.preventDefault();
85
91
  this.showTooltip();
@@ -97,8 +103,8 @@ export class GovTooltip {
97
103
  const trigger = this.host.getBoundingClientRect();
98
104
  const trgWidth = this.host.offsetWidth;
99
105
  const trgHeight = this.host.offsetHeight;
100
- const contentWidth = this.content.offsetWidth;
101
- const contentHeight = this.content.offsetHeight;
106
+ const contentWidth = this.tooltipContent.offsetWidth;
107
+ const contentHeight = this.tooltipContent.offsetHeight;
102
108
  const triggerPos = {
103
109
  left: trigger.left + document.documentElement.scrollLeft,
104
110
  top: trigger.top + document.documentElement.scrollTop,
@@ -107,10 +113,10 @@ export class GovTooltip {
107
113
  const isLeftSpace = triggerPos.left > contentWidth;
108
114
  // LEFT/RIGHT
109
115
  if (this.position === TooltipPosition.LEFT || this.position === TooltipPosition.RIGHT) {
110
- this.content.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + "px";
116
+ this.tooltipContent.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + "px";
111
117
  if (isRightSpace === false && isLeftSpace === false) {
112
118
  this.position = TooltipPosition.TOP;
113
- this.content.setAttribute("position", TooltipPosition.TOP);
119
+ this.tooltipContent.setAttribute("position", TooltipPosition.TOP);
114
120
  }
115
121
  if (isLeftSpace && isRightSpace === false && this.position === TooltipPosition.RIGHT) {
116
122
  this.position = TooltipPosition.LEFT;
@@ -120,12 +126,12 @@ export class GovTooltip {
120
126
  }
121
127
  }
122
128
  if (this.position === TooltipPosition.RIGHT) {
123
- this.content.setAttribute("position", TooltipPosition.RIGHT);
124
- this.content.style.left = (triggerPos.left + offset + trigger.width) + "px";
129
+ this.tooltipContent.setAttribute("position", TooltipPosition.RIGHT);
130
+ this.tooltipContent.style.left = (triggerPos.left + offset + trigger.width) + "px";
125
131
  }
126
132
  if (this.position === TooltipPosition.LEFT) {
127
- this.content.setAttribute("position", TooltipPosition.LEFT);
128
- this.content.style.left = (triggerPos.left - (contentWidth + offset)) + "px";
133
+ this.tooltipContent.setAttribute("position", TooltipPosition.LEFT);
134
+ this.tooltipContent.style.left = (triggerPos.left - (contentWidth + offset)) + "px";
129
135
  }
130
136
  // LEFT/RIGHT FOR TOP/BOTTOM
131
137
  if (this.position === TooltipPosition.TOP || this.position === TooltipPosition.BOTTOM) {
@@ -134,9 +140,9 @@ export class GovTooltip {
134
140
  const isNotLeftSpace = leftPosition < 0;
135
141
  const isNotRightSpace = (leftPosition + contentWidth) > windowWidth;
136
142
  if (isNotLeftSpace && isNotRightSpace) {
137
- this.content.style.width = "auto";
138
- this.content.style.left = offset + "px";
139
- this.content.style.right = offset + "px";
143
+ this.tooltipContent.style.width = "auto";
144
+ this.tooltipContent.style.left = offset + "px";
145
+ this.tooltipContent.style.right = offset + "px";
140
146
  }
141
147
  else {
142
148
  if (isNotLeftSpace) {
@@ -145,39 +151,39 @@ export class GovTooltip {
145
151
  if (isNotRightSpace) {
146
152
  leftPosition = leftPosition - ((windowWidth - (leftPosition + contentWidth + offset)) * -1);
147
153
  }
148
- this.content.style.left = leftPosition + "px";
154
+ this.tooltipContent.style.left = leftPosition + "px";
149
155
  }
150
156
  }
151
157
  else {
152
158
  const leftPosition = (triggerPos.left + ((trgWidth - contentWidth) / 2));
153
- this.content.style.left = leftPosition + "px";
159
+ this.tooltipContent.style.left = leftPosition + "px";
154
160
  }
155
161
  }
156
162
  if (this.position === TooltipPosition.TOP) {
157
- this.content.setAttribute("position", TooltipPosition.TOP);
158
- this.content.style.top = (triggerPos.top - (contentHeight + offset)) + "px";
163
+ this.tooltipContent.setAttribute("position", TooltipPosition.TOP);
164
+ this.tooltipContent.style.top = (triggerPos.top - (contentHeight + offset)) + "px";
159
165
  }
160
166
  if (this.position === TooltipPosition.BOTTOM) {
161
- this.content.setAttribute("position", TooltipPosition.BOTTOM);
162
- this.content.style.top = (triggerPos.top + (trgHeight + offset)) + "px";
167
+ this.tooltipContent.setAttribute("position", TooltipPosition.BOTTOM);
168
+ this.tooltipContent.style.top = (triggerPos.top + (trgHeight + offset)) + "px";
163
169
  }
164
- this.content.style.opacity = '1';
170
+ this.tooltipContent.style.opacity = '1';
165
171
  }
166
172
  showTooltip() {
167
- if (this.content) {
168
- this.content.style.opacity = '0';
169
- this.content.hidden = false;
170
- this.content.setAttribute("is-visible", "true");
171
- requestAnimationFrame(() => {
173
+ if (this.tooltipContent) {
174
+ this.tooltipContent.style.opacity = '0';
175
+ this.tooltipContent.hidden = false;
176
+ this.tooltipContent.setAttribute("is-visible", "true");
177
+ tick(() => {
172
178
  this.verifyPositionSpace();
173
179
  });
174
180
  }
175
181
  }
176
182
  hideTooltip() {
177
- if (this.content) {
178
- this.content.setAttribute("is-visible", "false");
179
- this.content.setAttribute("persist", "false");
180
- this.content.removeAttribute('style');
183
+ if (this.tooltipContent) {
184
+ this.tooltipContent.setAttribute("is-visible", "false");
185
+ this.tooltipContent.setAttribute("persist", "false");
186
+ this.tooltipContent.removeAttribute('style');
181
187
  }
182
188
  }
183
189
  removeContent() {
@@ -188,7 +194,11 @@ export class GovTooltip {
188
194
  }
189
195
  render() {
190
196
  var _a;
191
- return (h(Host, { key: '2073902a25078b3875e41e710a9b583a30d2d09e', id: this.tooltipId, class: this.h.classes(TooltipClass.root), position: this.position }, h("span", { key: '56d35be005985c3a4a22d4975714141ae4817157', role: 'button', tabindex: 0, "aria-describedby": (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId }, h("slot", { key: '61c4bc19ef21b15791eff343964aafa4fc4dde99' }))));
197
+ return (h(Host, { key: 'd16d7493cc470032d16e762e75c426c919b683d5', id: this.tooltipId, class: this.h.classes(TooltipClass.root), position: this.position }, h("span", { key: 'd80316da39311fde00a00bb7867fd4c73864bd7e', role: 'button', tabindex: 0, onKeyPress: () => this.showTooltip(), onBlur: () => {
198
+ if (this.persist === false) {
199
+ this.hideTooltip();
200
+ }
201
+ }, "aria-describedby": (_a = this.identifier) !== null && _a !== void 0 ? _a : this.tooltipContentId }, h("slot", { key: '1ccc180def543def370a189a5c10351fc166dcdd' }))));
192
202
  }
193
203
  /**
194
204
  * Showing the modal
@@ -1 +1 @@
1
- {"version":3,"file":"gov-tooltip.js","sourceRoot":"","sources":["../../../../../../src/components/gov-tooltip/gov-tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AACrF,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAA;AACzD,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,eAAe,EAEf,WAAW,EAEX,cAAc,GAEd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAC,OAAO,EAAC,MAAM,4BAA4B,CAAA;AAOlD,MAAM,OAAO,UAAU;IAMtB;QAHiB,qBAAgB,GAAG,SAAS,CAAA;QAC5B,cAAS,GAAG,SAAS,CAAA;uBAYU,cAAc,CAAC,OAAO;oBAI5B,WAAW,CAAC,EAAE;wBAID,OAAO;uBAI3B,SAAS;;oBAQI,SAAS;uBAEtC,KAAK;QA/BvB,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;QACvC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;KACrD;IA+BD,eAAe,CAAC,QAAgB;QAC/B,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC;IAGD,YAAY,CAAC,QAAgB;QAC5B,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;IACvD,CAAC;IAGD,gBAAgB,CAAC,QAAgB;QAChC,YAAY,CAAC,eAAe,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;IAGD,eAAe;;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACzB,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,aAAa,EAAE,CAAA;IACrB,CAAC;IAEO,oBAAoB;;QAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAiC,CAAA;QAC1G,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAA;QAChC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAiC,CAAA;YAC/F,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;YACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACzE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAEO,iBAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YACvC,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YACvC,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;YACnB,CAAC;QACF,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;YAC5C,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;YAC5C,CAAC,CAAC,cAAc,EAAE,CAAA;YAClB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;YACnB,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,mBAAmB;QAC1B,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACnG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAA;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAA;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;QAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;QAC/C,MAAM,UAAU,GAAG;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU;YACxD,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS;SACrD,CAAA;QAED,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,IAAI,WAAW,CAAC;QAChG,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC;QAEnD,aAAa;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;YACvF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACrF,IAAI,YAAY,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gBACrD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAA;gBACnC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,WAAW,IAAI,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;gBACtF,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAA;YACrC,CAAC;YACD,IAAI,YAAY,IAAI,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gBACrF,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAA;YACtC,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,CAAA;YAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAC5E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;QAC7E,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YACvF,IAAI,YAAY,GAAG,QAAQ,EAAE,CAAC;gBAC7B,IAAI,YAAY,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,cAAc,GAAG,YAAY,GAAG,CAAC,CAAC;gBACxC,MAAM,eAAe,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,WAAW,CAAC;gBACpE,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;oBACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;oBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;oBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACP,IAAI,cAAc,EAAE,CAAC;wBACpB,YAAY,GAAG,MAAM,CAAA;oBACtB,CAAC;oBACD,IAAI,eAAe,EAAE,CAAC;wBACrB,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC5F,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,CAAA;gBAC9C,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAExE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,CAAA;YAC9C,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,GAAG,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;YAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;QAC5E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAA;QACxE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;IAEjC,CAAC;IAEO,WAAW;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;YAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YAC/C,qBAAqB,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC3B,CAAC,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAEO,WAAW;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAChD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC7C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;IACF,CAAC;IAEO,aAAa;QACpB,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChE,IAAI,SAAS,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,EAAE,CAAA;QACnB,CAAC;IACF,CAAC;IAED,MAAM;;QACL,OAAO,CACN,EAAC,IAAI,qDACJ,EAAE,EAAE,IAAI,CAAC,SAAS,EAClB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,6DAAM,IAAI,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,sBACO,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,gBAAgB;gBAAE,8DAAO,CAAO,CACvE,CACP,CAAA;IACF,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,WAAW,EAAE,CAAA;IACnB,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,WAAW,EAAE,CAAA;IACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import {Component, Element, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipVariant,\n\tTooltipVariantType,\n} from \"./constants\"\nimport {createID} from \"../../utils/string.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\n\n@Component({\n\ttag: \"gov-tooltip\",\n\tstyleUrl: \"gov-tooltip.scss\",\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate content: HTMLGovTooltipContentElement\n\tprivate readonly tooltipContentId = undefined\n\tprivate readonly tooltipId = undefined\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID(\"GovTooltip\")\n\t\tthis.tooltipContentId = createID(\"GovContentTooltip\")\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly variant?: TooltipVariantType = TooltipVariant.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop({mutable: true}) position: TooltipPositionType = \"right\"\n\t/**\n\t * Information contained in the tooltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({reflect: true}) readonly icon: boolean = undefined\n\n\t@State() persist = false\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TooltipVariant, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"position\")\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"message\")\n\trerenderMessage(): void {\n\t\tconst isContent = document.body.querySelector(`#${this.identifier ?? this.tooltipContentId}`)\n\t\tif (!isContent) {\n\t\t\tthis.createContentWrapper();\n\t\t}\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.removeContent()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tconst hasContentInside = this.host.querySelector(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\tif (hasContentInside) {\n\t\t\tthis.content = hasContentInside\n\t\t} else {\n\t\t\tthis.content = document.createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tthis.content.innerHTML = this.message\n\t\t\tthis.host.appendChild(this.content)\n\t\t}\n\n\t\tthis.content.setAttribute(\"id\", this.identifier ?? this.tooltipContentId)\n\t\tthis.content.setAttribute(\"parent-id\", this.tooltipId)\n\t\tthis.content.setAttribute(\"variant\", this.variant)\n\t\tthis.content.setAttribute(\"size\", this.size)\n\t\tdocument.body.appendChild(this.content)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener(\"click\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.persist = true\n\t\t\tif (this.content) {\n\t\t\t\tthis.content.setAttribute(\"persist\", \"true\")\n\t\t\t}\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"focus\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"blur\", e => {\n\t\t\te.preventDefault()\n\t\t\tif (this.persist === false) {\n\t\t\t\tthis.hideTooltip()\n\t\t\t}\n\t\t})\n\t\tthis.host.addEventListener(\"mouseenter\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseleave\", e => {\n\t\t\te.preventDefault()\n\t\t\tif (this.persist === false) {\n\t\t\t\tthis.hideTooltip()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth - (window.innerWidth - document.documentElement.clientWidth);\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst trgHeight = this.host.offsetHeight\n\t\tconst contentWidth = this.content.offsetWidth\n\t\tconst contentHeight = this.content.offsetHeight\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\n\t\tconst isRightSpace = ((triggerPos.left + offset + trigger.width) + contentWidth) <= windowWidth;\n\t\tconst isLeftSpace = triggerPos.left > contentWidth;\n\n\t\t// LEFT/RIGHT\n\t\tif (this.position === TooltipPosition.LEFT || this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.content.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + \"px\";\n\t\t\tif (isRightSpace === false && isLeftSpace === false) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.content.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\t}\n\t\t\tif (isLeftSpace && isRightSpace === false && this.position === TooltipPosition.RIGHT) {\n\t\t\t\tthis.position = TooltipPosition.LEFT\n\t\t\t}\n\t\t\tif (isRightSpace && isLeftSpace === false && this.position === TooltipPosition.LEFT) {\n\t\t\t\tthis.position = TooltipPosition.RIGHT\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.content.setAttribute(\"position\", TooltipPosition.RIGHT)\n\t\t\tthis.content.style.left = (triggerPos.left + offset + trigger.width) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tthis.content.setAttribute(\"position\", TooltipPosition.LEFT)\n\t\t\tthis.content.style.left = (triggerPos.left - (contentWidth + offset)) + \"px\"\n\t\t}\n\n\t\t// LEFT/RIGHT FOR TOP/BOTTOM\n\t\tif (this.position === TooltipPosition.TOP || this.position === TooltipPosition.BOTTOM) {\n\t\t\tif (contentWidth > trgWidth) {\n\t\t\t\tlet leftPosition = (triggerPos.left - ((contentWidth - trgWidth) / 2));\n\t\t\t\tconst isNotLeftSpace = leftPosition < 0;\n\t\t\t\tconst isNotRightSpace = (leftPosition + contentWidth) > windowWidth;\n\t\t\t\tif (isNotLeftSpace && isNotRightSpace) {\n\t\t\t\t\tthis.content.style.width = \"auto\";\n\t\t\t\t\tthis.content.style.left = offset + \"px\";\n\t\t\t\t\tthis.content.style.right = offset + \"px\";\n\t\t\t\t} else {\n\t\t\t\t\tif (isNotLeftSpace) {\n\t\t\t\t\t\tleftPosition = offset\n\t\t\t\t\t}\n\t\t\t\t\tif (isNotRightSpace) {\n\t\t\t\t\t\tleftPosition = leftPosition - ((windowWidth - (leftPosition + contentWidth + offset)) * -1)\n\t\t\t\t\t}\n\t\t\t\t\tthis.content.style.left = leftPosition + \"px\"\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst leftPosition = (triggerPos.left + ((trgWidth - contentWidth) / 2))\n\n\t\t\t\tthis.content.style.left = leftPosition + \"px\"\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.TOP) {\n\t\t\tthis.content.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\tthis.content.style.top = (triggerPos.top - (contentHeight + offset)) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.BOTTOM) {\n\t\t\tthis.content.setAttribute(\"position\", TooltipPosition.BOTTOM)\n\t\t\tthis.content.style.top = (triggerPos.top + (trgHeight + offset)) + \"px\"\n\t\t}\n\n\t\tthis.content.style.opacity = '1'\n\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.content.style.opacity = '0'\n\t\t\tthis.content.hidden = false\n\t\t\tthis.content.setAttribute(\"is-visible\", \"true\")\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.verifyPositionSpace()\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.content) {\n\t\t\tthis.content.setAttribute(\"is-visible\", \"false\")\n\t\t\tthis.content.setAttribute(\"persist\", \"false\")\n\t\t\tthis.content.removeAttribute('style')\n\t\t}\n\t}\n\n\tprivate removeContent() {\n\t\tconst contentEl = document.getElementById(this.tooltipContentId)\n\t\tif (contentEl) {\n\t\t\tcontentEl.remove()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tid={this.tooltipId}\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}>\n\t\t\t\t<span role={'button'}\n\t\t\t\t\t\t\ttabindex={0}\n\t\t\t\t\t\t\taria-describedby={this.identifier ?? this.tooltipContentId}><slot/></span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.persist = false\n\t\tthis.hideTooltip()\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-tooltip.js","sourceRoot":"","sources":["../../../../../../src/components/gov-tooltip/gov-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Component, Element, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {\n\tTooltipClass,\n\tTooltipContentClass,\n\tTooltipPosition,\n\tTooltipPositionType,\n\tTooltipSize,\n\tTooltipSizeType,\n\tTooltipVariant,\n\tTooltipVariantType,\n} from \"./constants\"\nimport {createID} from \"../../utils/string.utils\"\nimport {govHost} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {documentNode} from \"../../helpers/Dom/win\";\nimport {Nullable} from \"../../utils/helpers.types\";\nimport {tick} from \"../../utils/stencil.utils\";\n\n@Component({\n\ttag: \"gov-tooltip\",\n\tstyleUrl: \"gov-tooltip.scss\",\n})\nexport class GovTooltip {\n\tprivate h: GovHost\n\tprivate readonly tooltipContentId = undefined\n\tprivate readonly tooltipId = undefined\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.tooltipId = createID(\"GovTooltip\")\n\t\tthis.tooltipContentId = createID(\"GovContentTooltip\")\n\t}\n\n\t@Element() host: HTMLGovTooltipElement\n\t/**\n\t * Style variation of the tooltip\n\t */\n\t@Prop() readonly variant?: TooltipVariantType = TooltipVariant.PRIMARY\n\t/**\n\t * Tooltip’s size.\n\t */\n\t@Prop() readonly size?: TooltipSizeType = TooltipSize._M\n\t/**\n\t * Tooltip display position\n\t */\n\t@Prop({mutable: true}) position: TooltipPositionType = \"right\"\n\t/**\n\t * Information contained in the tooltip\n\t */\n\t@Prop() readonly message: string = undefined\n\t/**\n\t * Custom tooltip identifier.\n\t */\n\t@Prop({attribute: \"identifier\"}) readonly identifier: string\n\t/**\n\t * Trigger is just an icon\n\t */\n\t@Prop({reflect: true}) readonly icon: boolean = undefined\n\n\t@State() persist = false\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TooltipVariant, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(TooltipSize, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"position\")\n\tvalidatePosition(newValue: string): void {\n\t\tvalidateProp(TooltipPosition, newValue, TooltipClass.root)\n\t}\n\n\t@Watch(\"message\")\n\trerenderMessage(): void {\n\t\tthis.createContentWrapper();\n\t}\n\n\tcomponentWillLoad(): void {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.validatePosition(this.position)\n\t\tthis.createContentWrapper()\n\t\tthis.registerListeners()\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.createContentWrapper()\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.removeContent()\n\t}\n\n\tprivate createContentWrapper() {\n\t\tif (this.tooltipContent) {\n\t\t\tif (this.message) {\n\t\t\t\tthis.tooltipContent.innerHTML = this.message\n\t\t\t} else if (this.insideContent) {\n\t\t\t\tthis.tooltipContent.innerHTML = this.insideContent.innerHTML\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tlet content: HTMLGovTooltipContentElement;\n\t\tif (this.insideContent) {\n\t\t\tcontent = this.insideContent\n\t\t} else {\n\t\t\tcontent = documentNode().createElement(TooltipContentClass.root) as HTMLGovTooltipContentElement\n\t\t\tcontent.innerHTML = this.message\n\t\t}\n\n\t\tcontent.setAttribute(\"id\", this.identifier ?? this.tooltipContentId)\n\t\tcontent.setAttribute(\"parent-id\", this.tooltipId)\n\t\tcontent.setAttribute(\"variant\", this.variant)\n\t\tcontent.setAttribute(\"size\", this.size)\n\t\tdocumentNode().body.appendChild(content)\n\t}\n\n\tprivate get tooltipContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn documentNode().body.querySelector(`#${this.identifier ?? this.tooltipContentId}`);\n\t}\n\n\tprivate get insideContent(): Nullable<HTMLGovTooltipContentElement> {\n\t\treturn this.host.querySelector(TooltipContentClass.root)\n\t}\n\n\tprivate registerListeners() {\n\t\tthis.host.addEventListener(\"click\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.persist = true\n\t\t\tif (this.tooltipContent) {\n\t\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"true\")\n\t\t\t}\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseenter\", e => {\n\t\t\te.preventDefault()\n\t\t\tthis.showTooltip()\n\t\t})\n\t\tthis.host.addEventListener(\"mouseleave\", e => {\n\t\t\te.preventDefault()\n\t\t\tif (this.persist === false) {\n\t\t\t\tthis.hideTooltip()\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate verifyPositionSpace() {\n\t\tconst offset = 12\n\t\tconst windowWidth = window.innerWidth - (window.innerWidth - document.documentElement.clientWidth);\n\t\tconst trigger = this.host.getBoundingClientRect()\n\t\tconst trgWidth = this.host.offsetWidth\n\t\tconst trgHeight = this.host.offsetHeight\n\t\tconst contentWidth = this.tooltipContent.offsetWidth\n\t\tconst contentHeight = this.tooltipContent.offsetHeight\n\t\tconst triggerPos = {\n\t\t\tleft: trigger.left + document.documentElement.scrollLeft,\n\t\t\ttop: trigger.top + document.documentElement.scrollTop,\n\t\t}\n\n\t\tconst isRightSpace = ((triggerPos.left + offset + trigger.width) + contentWidth) <= windowWidth;\n\t\tconst isLeftSpace = triggerPos.left > contentWidth;\n\n\t\t// LEFT/RIGHT\n\t\tif (this.position === TooltipPosition.LEFT || this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - ((contentHeight - trgHeight) / 2)) + \"px\";\n\t\t\tif (isRightSpace === false && isLeftSpace === false) {\n\t\t\t\tthis.position = TooltipPosition.TOP\n\t\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\t}\n\t\t\tif (isLeftSpace && isRightSpace === false && this.position === TooltipPosition.RIGHT) {\n\t\t\t\tthis.position = TooltipPosition.LEFT\n\t\t\t}\n\t\t\tif (isRightSpace && isLeftSpace === false && this.position === TooltipPosition.LEFT) {\n\t\t\t\tthis.position = TooltipPosition.RIGHT\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.RIGHT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.RIGHT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left + offset + trigger.width) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.LEFT) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.LEFT)\n\t\t\tthis.tooltipContent.style.left = (triggerPos.left - (contentWidth + offset)) + \"px\"\n\t\t}\n\n\t\t// LEFT/RIGHT FOR TOP/BOTTOM\n\t\tif (this.position === TooltipPosition.TOP || this.position === TooltipPosition.BOTTOM) {\n\t\t\tif (contentWidth > trgWidth) {\n\t\t\t\tlet leftPosition = (triggerPos.left - ((contentWidth - trgWidth) / 2));\n\t\t\t\tconst isNotLeftSpace = leftPosition < 0;\n\t\t\t\tconst isNotRightSpace = (leftPosition + contentWidth) > windowWidth;\n\t\t\t\tif (isNotLeftSpace && isNotRightSpace) {\n\t\t\t\t\tthis.tooltipContent.style.width = \"auto\";\n\t\t\t\t\tthis.tooltipContent.style.left = offset + \"px\";\n\t\t\t\t\tthis.tooltipContent.style.right = offset + \"px\";\n\t\t\t\t} else {\n\t\t\t\t\tif (isNotLeftSpace) {\n\t\t\t\t\t\tleftPosition = offset\n\t\t\t\t\t}\n\t\t\t\t\tif (isNotRightSpace) {\n\t\t\t\t\t\tleftPosition = leftPosition - ((windowWidth - (leftPosition + contentWidth + offset)) * -1)\n\t\t\t\t\t}\n\t\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst leftPosition = (triggerPos.left + ((trgWidth - contentWidth) / 2))\n\n\t\t\t\tthis.tooltipContent.style.left = leftPosition + \"px\"\n\t\t\t}\n\t\t}\n\t\tif (this.position === TooltipPosition.TOP) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.TOP)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top - (contentHeight + offset)) + \"px\"\n\t\t}\n\t\tif (this.position === TooltipPosition.BOTTOM) {\n\t\t\tthis.tooltipContent.setAttribute(\"position\", TooltipPosition.BOTTOM)\n\t\t\tthis.tooltipContent.style.top = (triggerPos.top + (trgHeight + offset)) + \"px\"\n\t\t}\n\n\t\tthis.tooltipContent.style.opacity = '1'\n\n\t}\n\n\tprivate showTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.style.opacity = '0'\n\t\t\tthis.tooltipContent.hidden = false\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"true\")\n\t\t\ttick(() => {\n\t\t\t\tthis.verifyPositionSpace()\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate hideTooltip() {\n\t\tif (this.tooltipContent) {\n\t\t\tthis.tooltipContent.setAttribute(\"is-visible\", \"false\")\n\t\t\tthis.tooltipContent.setAttribute(\"persist\", \"false\")\n\t\t\tthis.tooltipContent.removeAttribute('style')\n\t\t}\n\t}\n\n\tprivate removeContent() {\n\t\tconst contentEl = document.getElementById(this.tooltipContentId)\n\t\tif (contentEl) {\n\t\t\tcontentEl.remove()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tid={this.tooltipId}\n\t\t\t\tclass={this.h.classes(TooltipClass.root)}\n\t\t\t\tposition={this.position}>\n\t\t\t\t<span role={'button'}\n\t\t\t\t\t\t\ttabindex={0}\n\t\t\t\t\t\t\tonKeyPress={() => this.showTooltip()}\n\t\t\t\t\t\t\tonBlur={() => {\n\t\t\t\t\t\t\t\tif (this.persist === false) {\n\t\t\t\t\t\t\t\t\tthis.hideTooltip()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-describedby={this.identifier ?? this.tooltipContentId}><slot/></span>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Showing the modal\n\t */\n\t@Method()\n\tasync show(): Promise<void> {\n\t\tthis.showTooltip()\n\t}\n\n\t/**\n\t * Hiding the modal\n\t */\n\t@Method()\n\tasync hide(): Promise<void> {\n\t\tthis.persist = false\n\t\tthis.hideTooltip()\n\t}\n}\n"]}