@sebgroup/green-angular 5.1.2 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/esm2022/lib/shared/core-control/core-control.directive.mjs +3 -3
  2. package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +3 -3
  3. package/esm2022/src/v-angular/account-number/account-number.module.mjs +15 -0
  4. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +55 -0
  5. package/esm2022/src/v-angular/account-number/index.mjs +3 -0
  6. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
  7. package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
  8. package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
  9. package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
  10. package/esm2022/src/v-angular/alert/index.mjs +4 -0
  11. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
  12. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  13. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  14. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  15. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  16. package/esm2022/src/v-angular/button/button.component.mjs +9 -9
  17. package/esm2022/src/v-angular/button/button.module.mjs +11 -11
  18. package/esm2022/src/v-angular/card/card.component.mjs +6 -6
  19. package/esm2022/src/v-angular/card/card.module.mjs +9 -9
  20. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  21. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +9 -7
  22. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +14 -12
  23. package/esm2022/src/v-angular/core/core.utils.mjs +35 -1
  24. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  25. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  26. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  27. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  28. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  29. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
  30. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
  31. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
  32. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
  33. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  34. package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
  35. package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
  36. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  37. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  38. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  39. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
  40. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  41. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  42. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  43. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  44. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  45. package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
  46. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
  47. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  48. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +16 -9
  49. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +31 -15
  50. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  51. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  52. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  53. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  54. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  55. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
  56. package/esm2022/src/v-angular/external-link/external-link.module.mjs +9 -9
  57. package/esm2022/src/v-angular/i18n/i18n.module.mjs +12 -12
  58. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +6 -6
  59. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +6 -6
  60. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +11 -11
  61. package/esm2022/src/v-angular/input/input.component.mjs +11 -15
  62. package/esm2022/src/v-angular/input/input.module.mjs +27 -22
  63. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
  64. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +10 -10
  65. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +53 -31
  66. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  67. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  68. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  69. package/esm2022/src/v-angular/modal/modal.module.mjs +38 -27
  70. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  71. package/esm2022/src/v-angular/pagination/index.mjs +3 -0
  72. package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
  73. package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
  74. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
  75. package/esm2022/src/v-angular/radio/radio.component.mjs +14 -12
  76. package/esm2022/src/v-angular/radio/radio.module.mjs +12 -11
  77. package/esm2022/src/v-angular/slug/slug.module.mjs +6 -6
  78. package/esm2022/src/v-angular/table/index.mjs +9 -0
  79. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
  80. package/esm2022/src/v-angular/table/table.component.mjs +406 -0
  81. package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
  82. package/esm2022/src/v-angular/table/table.models.mjs +2 -0
  83. package/esm2022/src/v-angular/table/table.module.mjs +40 -0
  84. package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
  85. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
  86. package/esm2022/src/v-angular/tabs/index.mjs +8 -0
  87. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
  88. package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
  89. package/esm2022/src/v-angular/tabs/tabs.component.mjs +262 -0
  90. package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
  91. package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
  92. package/esm2022/src/v-angular/textarea/textarea.component.mjs +9 -7
  93. package/esm2022/src/v-angular/textarea/textarea.module.mjs +27 -13
  94. package/esm2022/src/v-angular/toast/index.mjs +8 -0
  95. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
  96. package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
  97. package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
  98. package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
  99. package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
  100. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +35 -15
  101. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +11 -11
  102. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
  103. package/esm2022/v-angular/account-number/account-number.module.mjs +15 -0
  104. package/esm2022/v-angular/account-number/account-number.pipe.mjs +55 -0
  105. package/esm2022/v-angular/account-number/index.mjs +3 -0
  106. package/esm2022/v-angular/alert/alert.component.mjs +47 -0
  107. package/esm2022/v-angular/alert/alert.models.mjs +8 -0
  108. package/esm2022/v-angular/alert/alert.module.mjs +18 -0
  109. package/esm2022/v-angular/alert/index.mjs +4 -0
  110. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  111. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  112. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  113. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  114. package/esm2022/v-angular/button/button.component.mjs +9 -9
  115. package/esm2022/v-angular/button/button.module.mjs +11 -11
  116. package/esm2022/v-angular/card/card.component.mjs +6 -6
  117. package/esm2022/v-angular/card/card.module.mjs +9 -9
  118. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  119. package/esm2022/v-angular/checkbox/checkbox.component.mjs +9 -7
  120. package/esm2022/v-angular/checkbox/checkbox.module.mjs +14 -12
  121. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  122. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  123. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  124. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  125. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  126. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
  127. package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
  128. package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
  129. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
  130. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  131. package/esm2022/v-angular/datepicker/index.mjs +17 -0
  132. package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
  133. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  134. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  135. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  136. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  137. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  138. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  139. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  140. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  141. package/esm2022/v-angular/drag-drop/index.mjs +5 -0
  142. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  143. package/esm2022/v-angular/dropdown/dropdown.component.mjs +16 -9
  144. package/esm2022/v-angular/dropdown/dropdown.module.mjs +31 -15
  145. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  146. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  147. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  148. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  149. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  150. package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
  151. package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
  152. package/esm2022/v-angular/external-link/index.mjs +3 -0
  153. package/esm2022/v-angular/i18n/i18n.module.mjs +12 -12
  154. package/esm2022/v-angular/i18n/i18n.test.module.mjs +6 -6
  155. package/esm2022/v-angular/index.mjs +11 -1
  156. package/esm2022/v-angular/info-circle/info-circle.component.mjs +6 -6
  157. package/esm2022/v-angular/info-circle/info-circle.module.mjs +11 -11
  158. package/esm2022/v-angular/input/input.component.mjs +11 -15
  159. package/esm2022/v-angular/input/input.module.mjs +27 -22
  160. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
  161. package/esm2022/v-angular/input-mask/input-mask.module.mjs +10 -10
  162. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +53 -31
  163. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  164. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  165. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  166. package/esm2022/v-angular/modal/modal.module.mjs +38 -27
  167. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  168. package/esm2022/v-angular/pagination/index.mjs +3 -0
  169. package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
  170. package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
  171. package/esm2022/v-angular/radio/radio.component.mjs +14 -12
  172. package/esm2022/v-angular/radio/radio.module.mjs +12 -11
  173. package/esm2022/v-angular/slug/index.mjs +3 -0
  174. package/esm2022/v-angular/slug/slug.module.mjs +18 -0
  175. package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
  176. package/esm2022/v-angular/table/index.mjs +9 -0
  177. package/esm2022/v-angular/table/table.component.mjs +406 -0
  178. package/esm2022/v-angular/table/table.directive.mjs +110 -0
  179. package/esm2022/v-angular/table/table.models.mjs +2 -0
  180. package/esm2022/v-angular/table/table.module.mjs +40 -0
  181. package/esm2022/v-angular/table/table.tools.mjs +29 -0
  182. package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
  183. package/esm2022/v-angular/tabs/index.mjs +8 -0
  184. package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
  185. package/esm2022/v-angular/tabs/tabs.component.mjs +262 -0
  186. package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
  187. package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
  188. package/esm2022/v-angular/textarea/textarea.component.mjs +9 -7
  189. package/esm2022/v-angular/textarea/textarea.module.mjs +27 -13
  190. package/esm2022/v-angular/toast/index.mjs +8 -0
  191. package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
  192. package/esm2022/v-angular/toast/toast.component.mjs +70 -0
  193. package/esm2022/v-angular/toast/toast.models.mjs +8 -0
  194. package/esm2022/v-angular/toast/toast.module.mjs +21 -0
  195. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +35 -15
  196. package/esm2022/v-angular/tooltip/tooltip.module.mjs +11 -11
  197. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
  198. package/esm2022/v-angular/v-angular.module.mjs +104 -68
  199. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +2 -2
  200. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  201. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +74 -0
  202. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
  203. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
  204. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
  205. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +23 -13
  206. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  207. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +14 -14
  208. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  209. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +18 -18
  210. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  211. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +13 -13
  212. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  213. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +6 -6
  214. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  215. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +21 -17
  216. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  217. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +34 -0
  218. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  219. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
  220. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
  221. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +687 -0
  222. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
  223. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +126 -74
  224. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  225. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +12 -12
  226. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  227. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +17 -17
  228. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  229. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +15 -15
  230. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  231. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +14 -14
  232. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  233. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +36 -35
  234. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  235. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +246 -81
  236. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  237. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
  238. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
  239. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +24 -21
  240. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  241. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +6 -6
  242. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  243. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +604 -0
  244. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
  245. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +367 -0
  246. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
  247. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +33 -18
  248. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  249. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
  250. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
  251. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +103 -24
  252. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  253. package/fesm2022/sebgroup-green-angular-v-angular.mjs +6369 -2156
  254. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  255. package/fesm2022/sebgroup-green-angular.mjs +2 -2
  256. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  257. package/lib/shared/core-control/core-control.directive.d.ts +1 -1
  258. package/package.json +51 -3
  259. package/src/lib/shared/core-control/core-control.directive.d.ts +1 -1
  260. package/src/v-angular/account-number/README.md +63 -0
  261. package/src/v-angular/account-number/account-number.module.d.ts +2 -0
  262. package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
  263. package/src/v-angular/account-number/index.d.ts +2 -0
  264. package/src/v-angular/alert/alert.component.d.ts +19 -0
  265. package/src/v-angular/alert/alert.models.d.ts +13 -0
  266. package/src/v-angular/alert/alert.module.d.ts +8 -0
  267. package/src/v-angular/alert/index.d.ts +3 -0
  268. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  269. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  270. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  271. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  272. package/src/v-angular/button/button.component.d.ts +5 -5
  273. package/src/v-angular/button/button.module.d.ts +4 -4
  274. package/src/v-angular/card/card.component.d.ts +3 -3
  275. package/src/v-angular/card/card.module.d.ts +4 -4
  276. package/src/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  277. package/src/v-angular/checkbox/checkbox.component.d.ts +6 -5
  278. package/src/v-angular/checkbox/checkbox.module.d.ts +5 -4
  279. package/src/v-angular/core/core.utils.d.ts +1 -0
  280. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  281. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  282. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  283. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  284. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  285. package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  286. package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
  287. package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
  288. package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  289. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  290. package/src/v-angular/datepicker/index.d.ts +13 -0
  291. package/src/v-angular/datepicker/models/dates.d.ts +15 -0
  292. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  293. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  294. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  295. package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  296. package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  297. package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  298. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  299. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  300. package/src/v-angular/drag-drop/index.d.ts +4 -0
  301. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  302. package/src/v-angular/dropdown/dropdown.component.d.ts +10 -6
  303. package/src/v-angular/dropdown/dropdown.module.d.ts +8 -7
  304. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  305. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  306. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  307. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  308. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  309. package/src/v-angular/external-link/external-link.directive.d.ts +3 -3
  310. package/src/v-angular/external-link/external-link.module.d.ts +4 -4
  311. package/src/v-angular/i18n/i18n.module.d.ts +7 -7
  312. package/src/v-angular/i18n/i18n.test.module.d.ts +4 -4
  313. package/src/v-angular/info-circle/info-circle.component.d.ts +4 -4
  314. package/src/v-angular/info-circle/info-circle.module.d.ts +4 -4
  315. package/src/v-angular/input/input.component.d.ts +5 -10
  316. package/src/v-angular/input/input.module.d.ts +5 -4
  317. package/src/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  318. package/src/v-angular/input-mask/input-mask.module.d.ts +5 -5
  319. package/src/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  320. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  321. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  322. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  323. package/src/v-angular/modal/modal.module.d.ts +4 -4
  324. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  325. package/src/v-angular/pagination/index.d.ts +2 -0
  326. package/src/v-angular/pagination/pagination.component.d.ts +64 -0
  327. package/src/v-angular/pagination/pagination.module.d.ts +12 -0
  328. package/src/v-angular/radio/radio.component.d.ts +14 -13
  329. package/src/v-angular/radio/radio.module.d.ts +5 -4
  330. package/src/v-angular/slug/slug.module.d.ts +4 -4
  331. package/src/v-angular/table/index.d.ts +5 -0
  332. package/src/v-angular/table/table.component.d.ts +239 -0
  333. package/src/v-angular/table/table.directive.d.ts +36 -0
  334. package/src/v-angular/table/table.models.d.ts +62 -0
  335. package/src/v-angular/table/table.module.d.ts +12 -0
  336. package/src/v-angular/table/table.tools.d.ts +5 -0
  337. package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
  338. package/src/v-angular/tabs/index.d.ts +4 -0
  339. package/src/v-angular/tabs/tab.directive.d.ts +37 -0
  340. package/src/v-angular/tabs/tabs.component.d.ts +65 -0
  341. package/src/v-angular/tabs/tabs.models.d.ts +25 -0
  342. package/src/v-angular/tabs/tabs.module.d.ts +11 -0
  343. package/src/v-angular/textarea/textarea.component.d.ts +6 -5
  344. package/src/v-angular/textarea/textarea.module.d.ts +6 -4
  345. package/src/v-angular/toast/index.d.ts +4 -0
  346. package/src/v-angular/toast/toast-message.service.d.ts +17 -0
  347. package/src/v-angular/toast/toast.component.d.ts +22 -0
  348. package/src/v-angular/toast/toast.models.d.ts +15 -0
  349. package/src/v-angular/toast/toast.module.d.ts +10 -0
  350. package/src/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  351. package/src/v-angular/tooltip/tooltip.module.d.ts +4 -4
  352. package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  353. package/v-angular/account-number/account-number.module.d.ts +2 -0
  354. package/v-angular/account-number/account-number.pipe.d.ts +32 -0
  355. package/v-angular/account-number/index.d.ts +2 -0
  356. package/v-angular/alert/alert.component.d.ts +19 -0
  357. package/v-angular/alert/alert.models.d.ts +13 -0
  358. package/v-angular/alert/alert.module.d.ts +8 -0
  359. package/v-angular/alert/index.d.ts +3 -0
  360. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  361. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  362. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  363. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  364. package/v-angular/button/button.component.d.ts +5 -5
  365. package/v-angular/button/button.module.d.ts +4 -4
  366. package/v-angular/card/card.component.d.ts +3 -3
  367. package/v-angular/card/card.module.d.ts +4 -4
  368. package/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  369. package/v-angular/checkbox/checkbox.component.d.ts +6 -5
  370. package/v-angular/checkbox/checkbox.module.d.ts +5 -4
  371. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  372. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  373. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  374. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  375. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  376. package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  377. package/v-angular/datepicker/datepicker.models.d.ts +50 -0
  378. package/v-angular/datepicker/datepicker.module.d.ts +19 -0
  379. package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  380. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  381. package/v-angular/datepicker/index.d.ts +13 -0
  382. package/v-angular/datepicker/models/dates.d.ts +15 -0
  383. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  384. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  385. package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  386. package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  387. package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  388. package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  389. package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  390. package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  391. package/v-angular/drag-drop/index.d.ts +4 -0
  392. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  393. package/v-angular/dropdown/dropdown.component.d.ts +10 -6
  394. package/v-angular/dropdown/dropdown.module.d.ts +8 -7
  395. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  396. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  397. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  398. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  399. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  400. package/v-angular/external-link/external-link.directive.d.ts +17 -0
  401. package/v-angular/external-link/external-link.module.d.ts +8 -0
  402. package/v-angular/external-link/index.d.ts +2 -0
  403. package/v-angular/i18n/i18n.module.d.ts +7 -7
  404. package/v-angular/i18n/i18n.test.module.d.ts +4 -4
  405. package/v-angular/index.d.ts +10 -0
  406. package/v-angular/info-circle/info-circle.component.d.ts +4 -4
  407. package/v-angular/info-circle/info-circle.module.d.ts +4 -4
  408. package/v-angular/input/input.component.d.ts +5 -10
  409. package/v-angular/input/input.module.d.ts +5 -4
  410. package/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  411. package/v-angular/input-mask/input-mask.module.d.ts +5 -5
  412. package/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  413. package/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  414. package/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  415. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  416. package/v-angular/modal/modal.module.d.ts +4 -4
  417. package/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  418. package/v-angular/pagination/index.d.ts +2 -0
  419. package/v-angular/pagination/pagination.component.d.ts +64 -0
  420. package/v-angular/pagination/pagination.module.d.ts +12 -0
  421. package/v-angular/radio/radio.component.d.ts +14 -13
  422. package/v-angular/radio/radio.module.d.ts +5 -4
  423. package/v-angular/slug/index.d.ts +2 -0
  424. package/v-angular/slug/slug.module.d.ts +8 -0
  425. package/v-angular/slug/slug.pipe.d.ts +12 -0
  426. package/v-angular/table/index.d.ts +5 -0
  427. package/v-angular/table/table.component.d.ts +239 -0
  428. package/v-angular/table/table.directive.d.ts +36 -0
  429. package/v-angular/table/table.models.d.ts +62 -0
  430. package/v-angular/table/table.module.d.ts +12 -0
  431. package/v-angular/table/table.tools.d.ts +5 -0
  432. package/v-angular/table/tr-thook.pipe.d.ts +7 -0
  433. package/v-angular/tabs/index.d.ts +4 -0
  434. package/v-angular/tabs/tab.directive.d.ts +37 -0
  435. package/v-angular/tabs/tabs.component.d.ts +65 -0
  436. package/v-angular/tabs/tabs.models.d.ts +25 -0
  437. package/v-angular/tabs/tabs.module.d.ts +11 -0
  438. package/v-angular/textarea/textarea.component.d.ts +6 -5
  439. package/v-angular/textarea/textarea.module.d.ts +6 -4
  440. package/v-angular/toast/index.d.ts +4 -0
  441. package/v-angular/toast/toast-message.service.d.ts +17 -0
  442. package/v-angular/toast/toast.component.d.ts +22 -0
  443. package/v-angular/toast/toast.models.d.ts +15 -0
  444. package/v-angular/toast/toast.module.d.ts +10 -0
  445. package/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  446. package/v-angular/tooltip/tooltip.module.d.ts +4 -4
  447. package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  448. package/v-angular/v-angular.module.d.ts +27 -18
@@ -1,6 +1,66 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Directive, Input, Output, HostListener, NgModule } from '@angular/core';
3
- import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
3
+ import { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
4
+
5
+ const tooltipBoxStyles = new Map([
6
+ ['position', 'absolute'],
7
+ ['z-index', '1040'],
8
+ ['border-radius', '.25rem'],
9
+ ['padding', '.5rem 1rem'],
10
+ ['background-color', '#1a1a1a'],
11
+ ['color', '#fff'],
12
+ ['font-size', '0.875rem'],
13
+ ['font-weight', '400'],
14
+ ['line-height', '1.5'],
15
+ ['padding', '0.5rem'],
16
+ ['pointer-events', 'none'],
17
+ ]);
18
+ const tooltipArrowTopStyles = new Map([
19
+ ['position', 'absolute'],
20
+ ['width', '0'],
21
+ ['height', '0'],
22
+ ['border', '0.5rem solid transparent'],
23
+ ['bottom', '-1rem'],
24
+ ['left', '50%'],
25
+ ['transform', 'translateX(-50%)'],
26
+ ['border-color', '#1a1a1a transparent transparent'],
27
+ ]);
28
+ const tooltipArrowBottomStyles = new Map([
29
+ ['position', 'absolute'],
30
+ ['width', '0'],
31
+ ['height', '0'],
32
+ ['border', '0.5rem solid transparent'],
33
+ ['top', '-1rem'],
34
+ ['left', '50%'],
35
+ ['transform', 'translateX(-50%)'],
36
+ ['border-color', 'transparent transparent #1a1a1a'],
37
+ ]);
38
+ const tooltipArrowLeftStyles = new Map([
39
+ ['position', 'absolute'],
40
+ ['width', '0'],
41
+ ['height', '0'],
42
+ ['border', '0.5rem solid transparent'],
43
+ ['right', '-1rem'],
44
+ ['top', '50%'],
45
+ ['transform', 'translateY(-50%)'],
46
+ ['border-color', 'transparent transparent transparent #1a1a1a'],
47
+ ]);
48
+ const tooltipArrowRightStyles = new Map([
49
+ ['position', 'absolute'],
50
+ ['width', '0'],
51
+ ['height', '0'],
52
+ ['border', '0.5rem solid transparent'],
53
+ ['left', '-1rem'],
54
+ ['top', '50%'],
55
+ ['transform', 'translateY(-50%)'],
56
+ ['border-color', 'transparent #1a1a1a transparent transparent'],
57
+ ]);
58
+ const tooltipArrowStyles = {
59
+ top: tooltipArrowTopStyles,
60
+ bottom: tooltipArrowBottomStyles,
61
+ left: tooltipArrowLeftStyles,
62
+ right: tooltipArrowRightStyles,
63
+ };
4
64
 
5
65
  /**
6
66
  * A tooltip is a text label that acts as a helper to a specific item.
@@ -8,7 +68,7 @@ import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
8
68
  * Dynamic resizing and tooltip position are a work in progress.
9
69
  * https://designlibrary.sebgroup.com/components/component-tooltip
10
70
  */
11
- class NgvTooltipDirective {
71
+ class NggvTooltipDirective {
12
72
  /** @internal Check if changes should trigger a re-render */
13
73
  static shouldUpdate(change) {
14
74
  return (change &&
@@ -46,15 +106,15 @@ class NgvTooltipDirective {
46
106
  setTimeout(() => (this.shown ? this.show(true) : this.hide(true)));
47
107
  }
48
108
  ngOnChanges(changes) {
49
- if (NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||
50
- NgvTooltipDirective.shouldUpdate(changes.placement) ||
51
- NgvTooltipDirective.shouldUpdate(changes.thook)) {
109
+ if (NggvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||
110
+ NggvTooltipDirective.shouldUpdate(changes.placement) ||
111
+ NggvTooltipDirective.shouldUpdate(changes.thook)) {
52
112
  this.shown ? this.show(true) : this.hide(true);
53
113
  }
54
- if (NgvTooltipDirective.shouldUpdate(changes.shown)) {
114
+ if (NggvTooltipDirective.shouldUpdate(changes.shown)) {
55
115
  this.shown ? this.show() : this.hide();
56
116
  }
57
- if (NgvTooltipDirective.shouldUpdate(changes.offset)) {
117
+ if (NggvTooltipDirective.shouldUpdate(changes.offset)) {
58
118
  this.updatePosition();
59
119
  }
60
120
  }
@@ -104,8 +164,9 @@ class NgvTooltipDirective {
104
164
  hide(destroy = false) {
105
165
  if (!this.tooltipElement)
106
166
  return;
107
- if (this.parentElement.contains(this.tooltipElement))
167
+ if (this.parentElement.contains(this.tooltipElement)) {
108
168
  this.renderer.removeChild(this.parentElement, this.tooltipElement);
169
+ }
109
170
  if (destroy)
110
171
  this.destroy();
111
172
  this.shown = false;
@@ -120,10 +181,14 @@ class NgvTooltipDirective {
120
181
  this.tooltipElement = this.renderer.createElement('div');
121
182
  this.renderer.addClass(this.tooltipElement, 'gds-tooltip');
122
183
  this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook);
123
- this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
124
- this.renderer.setStyle(this.tooltipElement, 'z-index', '1040');
125
- this.renderer.setStyle(this.tooltipElement, 'border-radius', '.25rem');
126
- this.renderer.setStyle(this.tooltipElement, 'padding', '.5rem 1rem');
184
+ this.renderer.setAttribute(this.tooltipElement, 'role', 'tooltip');
185
+ if (this.tooltipId) {
186
+ this.renderer.setAttribute(this.tooltipElement, 'id', this.tooltipId);
187
+ }
188
+ // set styling
189
+ Array.from(tooltipBoxStyles.entries()).forEach(([style, value]) => {
190
+ this.renderer.setStyle(this.tooltipElement, style, value);
191
+ });
127
192
  const relativeMaxWidth = this.pxToRem(this.maxWidth);
128
193
  this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth);
129
194
  this.renderer.appendChild(this.tooltipElement, this.renderer.createText(text));
@@ -226,6 +291,9 @@ class NgvTooltipDirective {
226
291
  const position = this.pxToRem(value);
227
292
  this.renderer.setStyle(this.arrowElement, prop, position);
228
293
  });
294
+ Array.from(tooltipArrowStyles[this.placement].entries()).forEach(([style, value]) => {
295
+ this.renderer.setStyle(this.arrowElement, style, value);
296
+ });
229
297
  }
230
298
  pxToRem(value) {
231
299
  const fontSizePx = window
@@ -236,10 +304,10 @@ class NgvTooltipDirective {
236
304
  const remValue = value / fontSize;
237
305
  return `${remValue}rem`;
238
306
  }
239
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
240
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgvTooltipDirective, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
307
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
308
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NggvTooltipDirective, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", tooltipId: "tooltipId", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "focus": "onMouseEnter()", "mouseleave": "onMouseLeave()", "blur": "onMouseLeave()", "keyup.escape": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
241
309
  }
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipDirective, decorators: [{
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipDirective, decorators: [{
243
311
  type: Directive,
244
312
  args: [{
245
313
  selector: '[nggvTooltip]',
@@ -256,6 +324,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
256
324
  type: Input
257
325
  }], resizeThrottle: [{
258
326
  type: Input
327
+ }], tooltipId: [{
328
+ type: Input
259
329
  }], maxWidth: [{
260
330
  type: Input
261
331
  }], nggvShow: [{
@@ -265,25 +335,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
265
335
  }], onMouseEnter: [{
266
336
  type: HostListener,
267
337
  args: ['mouseenter']
338
+ }, {
339
+ type: HostListener,
340
+ args: ['focus']
268
341
  }], onMouseLeave: [{
269
342
  type: HostListener,
270
343
  args: ['mouseleave']
344
+ }, {
345
+ type: HostListener,
346
+ args: ['blur']
347
+ }, {
348
+ type: HostListener,
349
+ args: ['keyup.escape']
271
350
  }], resize: [{
272
351
  type: HostListener,
273
352
  args: ['window:resize']
274
353
  }] } });
275
354
 
276
- class NgvTooltipModule {
277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
278
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, declarations: [NgvTooltipDirective], imports: [NgvI18nModule], exports: [NgvTooltipDirective] }); }
279
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, imports: [NgvI18nModule] }); }
355
+ class NggvTooltipModule {
356
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
357
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipModule, declarations: [NggvTooltipDirective], imports: [NggvI18nModule], exports: [NggvTooltipDirective] }); }
358
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipModule, imports: [NggvI18nModule] }); }
280
359
  }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTooltipModule, decorators: [{
360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTooltipModule, decorators: [{
282
361
  type: NgModule,
283
362
  args: [{
284
- declarations: [NgvTooltipDirective],
285
- exports: [NgvTooltipDirective],
286
- imports: [NgvI18nModule],
363
+ declarations: [NggvTooltipDirective],
364
+ exports: [NggvTooltipDirective],
365
+ imports: [NggvI18nModule],
287
366
  }]
288
367
  }] });
289
368
 
@@ -291,5 +370,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
291
370
  * Generated bundle index. Do not edit.
292
371
  */
293
372
 
294
- export { NgvTooltipDirective, NgvTooltipModule };
373
+ export { NggvTooltipDirective, NggvTooltipModule };
295
374
  //# sourceMappingURL=sebgroup-green-angular-src-v-angular-tooltip.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n})\nexport class NgvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NgvTooltipDirective.shouldUpdate(changes.placement) ||\n NgvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NgvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement))\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setStyle(this.tooltipElement, 'position', 'absolute')\n this.renderer.setStyle(this.tooltipElement, 'z-index', '1040')\n this.renderer.setStyle(this.tooltipElement, 'border-radius', '.25rem')\n this.renderer.setStyle(this.tooltipElement, 'padding', '.5rem 1rem')\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NgvTooltipDirective],\n exports: [NgvTooltipDirective],\n imports: [NgvI18nModule],\n})\nexport class NgvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.styles.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["export const tooltipBoxStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['z-index', '1040'],\n ['border-radius', '.25rem'],\n ['padding', '.5rem 1rem'],\n ['background-color', '#1a1a1a'],\n ['color', '#fff'],\n ['font-size', '0.875rem'],\n ['font-weight', '400'],\n ['line-height', '1.5'],\n ['padding', '0.5rem'],\n ['pointer-events', 'none'],\n])\n\nexport const tooltipArrowTopStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['bottom', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', '#1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowBottomStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['top', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', 'transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowLeftStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['right', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowRightStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['left', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent #1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowStyles = {\n top: tooltipArrowTopStyles,\n bottom: tooltipArrowBottomStyles,\n left: tooltipArrowLeftStyles,\n right: tooltipArrowRightStyles,\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nimport { tooltipArrowStyles, tooltipBoxStyles } from './tooltip.styles'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n})\nexport class NggvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Id of tooltip element. */\n @Input() tooltipId?: string\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NggvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NggvTooltipDirective.shouldUpdate(changes.placement) ||\n NggvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n @HostListener('focus')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n @HostListener('blur')\n @HostListener('keyup.escape')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement)) {\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n }\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setAttribute(this.tooltipElement, 'role', 'tooltip')\n if (this.tooltipId) {\n this.renderer.setAttribute(this.tooltipElement, 'id', this.tooltipId)\n }\n // set styling\n Array.from(tooltipBoxStyles.entries()).forEach(([style, value]) => {\n this.renderer.setStyle(this.tooltipElement, style, value)\n })\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n\n Array.from(tooltipArrowStyles[this.placement].entries()).forEach(\n ([style, value]) => {\n this.renderer.setStyle(this.arrowElement, style, value)\n },\n )\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NggvTooltipDirective],\n exports: [NggvTooltipDirective],\n imports: [NggvI18nModule],\n})\nexport class NggvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}