@sebgroup/green-angular 4.5.0 → 4.6.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 (321) hide show
  1. package/esm2022/index.mjs +19 -1
  2. package/esm2022/lib/shared/on-scroll.directive.mjs +2 -2
  3. package/esm2022/src/lib/shared/on-scroll.directive.mjs +2 -2
  4. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +287 -0
  5. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  6. package/esm2022/src/v-angular/base-control-value-accessor/index.mjs +3 -0
  7. package/esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +5 -0
  8. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  9. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  10. package/esm2022/src/v-angular/breadcrumbs/index.mjs +3 -0
  11. package/esm2022/src/v-angular/breadcrumbs/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +5 -0
  12. package/esm2022/src/v-angular/button/button.component.mjs +108 -0
  13. package/esm2022/src/v-angular/button/button.module.mjs +20 -0
  14. package/esm2022/src/v-angular/button/index.mjs +3 -0
  15. package/esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs +5 -0
  16. package/esm2022/src/v-angular/card/card.component.mjs +11 -0
  17. package/esm2022/src/v-angular/card/card.module.mjs +18 -0
  18. package/esm2022/src/v-angular/card/index.mjs +3 -0
  19. package/esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs +5 -0
  20. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
  21. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +18 -0
  22. package/esm2022/src/v-angular/character-countdown/index.mjs +3 -0
  23. package/esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs +5 -0
  24. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +72 -0
  25. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +19 -0
  26. package/esm2022/src/v-angular/checkbox/index.mjs +3 -0
  27. package/esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs +5 -0
  28. package/esm2022/src/v-angular/core/core.globals.mjs +17 -0
  29. package/esm2022/src/v-angular/core/core.utils.mjs +28 -0
  30. package/esm2022/src/v-angular/core/index.mjs +3 -0
  31. package/esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs +5 -0
  32. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +256 -0
  33. package/esm2022/src/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  34. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +239 -0
  35. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +22 -0
  36. package/esm2022/src/v-angular/dropdown/index.mjs +6 -0
  37. package/esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs +5 -0
  38. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +3 -0
  39. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  40. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  41. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  42. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  43. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +37 -0
  44. package/esm2022/src/v-angular/external-link/external-link.module.mjs +18 -0
  45. package/esm2022/src/v-angular/external-link/index.mjs +3 -0
  46. package/esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs +5 -0
  47. package/esm2022/src/v-angular/i18n/i18n.json +12 -0
  48. package/esm2022/src/v-angular/i18n/i18n.module.mjs +83 -0
  49. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +89 -0
  50. package/esm2022/src/v-angular/i18n/index.mjs +3 -0
  51. package/esm2022/src/v-angular/i18n/sebgroup-green-angular-src-v-angular-i18n.mjs +5 -0
  52. package/esm2022/src/v-angular/info-circle/index.mjs +3 -0
  53. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +28 -0
  54. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +21 -0
  55. package/esm2022/src/v-angular/info-circle/sebgroup-green-angular-src-v-angular-info-circle.mjs +5 -0
  56. package/esm2022/src/v-angular/input/index.mjs +3 -0
  57. package/esm2022/src/v-angular/input/input.component.mjs +221 -0
  58. package/esm2022/src/v-angular/input/input.module.mjs +32 -0
  59. package/esm2022/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.mjs +5 -0
  60. package/esm2022/src/v-angular/input-mask/config.mjs +9 -0
  61. package/esm2022/src/v-angular/input-mask/constants.mjs +2 -0
  62. package/esm2022/src/v-angular/input-mask/index.mjs +6 -0
  63. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +20 -0
  64. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +165 -0
  65. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +35 -0
  66. package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +2 -0
  67. package/esm2022/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.mjs +5 -0
  68. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +190 -0
  69. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +56 -0
  70. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  71. package/esm2022/src/v-angular/modal/index.mjs +6 -0
  72. package/esm2022/src/v-angular/modal/modal.globals.mjs +17 -0
  73. package/esm2022/src/v-angular/modal/modal.module.mjs +40 -0
  74. package/esm2022/src/v-angular/modal/modal.types.mjs +2 -0
  75. package/esm2022/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.mjs +5 -0
  76. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +229 -0
  77. package/esm2022/src/v-angular/radio/index.mjs +3 -0
  78. package/esm2022/src/v-angular/radio/radio.component.mjs +130 -0
  79. package/esm2022/src/v-angular/radio/radio.module.mjs +20 -0
  80. package/esm2022/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.mjs +5 -0
  81. package/esm2022/src/v-angular/slug/index.mjs +3 -0
  82. package/esm2022/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.mjs +5 -0
  83. package/esm2022/src/v-angular/slug/slug.module.mjs +18 -0
  84. package/esm2022/src/v-angular/slug/slug.pipe.mjs +27 -0
  85. package/esm2022/src/v-angular/textarea/index.mjs +3 -0
  86. package/esm2022/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.mjs +5 -0
  87. package/esm2022/src/v-angular/textarea/textarea.component.mjs +101 -0
  88. package/esm2022/src/v-angular/textarea/textarea.module.mjs +18 -0
  89. package/esm2022/src/v-angular/tooltip/index.mjs +3 -0
  90. package/esm2022/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.mjs +5 -0
  91. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +273 -0
  92. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +18 -0
  93. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +287 -0
  94. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  95. package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
  96. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  97. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  98. package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
  99. package/esm2022/v-angular/button/button.component.mjs +108 -0
  100. package/esm2022/v-angular/button/button.module.mjs +20 -0
  101. package/esm2022/v-angular/button/index.mjs +3 -0
  102. package/esm2022/v-angular/card/card.component.mjs +11 -0
  103. package/esm2022/v-angular/card/card.module.mjs +18 -0
  104. package/esm2022/v-angular/card/index.mjs +3 -0
  105. package/esm2022/v-angular/checkbox/checkbox.component.mjs +72 -0
  106. package/esm2022/v-angular/checkbox/checkbox.module.mjs +19 -0
  107. package/esm2022/v-angular/checkbox/index.mjs +3 -0
  108. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +256 -0
  109. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  110. package/esm2022/v-angular/dropdown/dropdown.component.mjs +239 -0
  111. package/esm2022/v-angular/dropdown/dropdown.module.mjs +22 -0
  112. package/esm2022/v-angular/dropdown/index.mjs +6 -0
  113. package/esm2022/v-angular/dropdown/typeahead/index.mjs +3 -0
  114. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  115. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  116. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  117. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  118. package/esm2022/v-angular/i18n/i18n.json +12 -0
  119. package/esm2022/v-angular/i18n/i18n.module.mjs +83 -0
  120. package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
  121. package/esm2022/v-angular/i18n/index.mjs +3 -0
  122. package/esm2022/v-angular/info-circle/index.mjs +3 -0
  123. package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
  124. package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
  125. package/esm2022/v-angular/input/index.mjs +3 -0
  126. package/esm2022/v-angular/input/input.component.mjs +221 -0
  127. package/esm2022/v-angular/input/input.module.mjs +32 -0
  128. package/esm2022/v-angular/input-mask/config.mjs +9 -0
  129. package/esm2022/v-angular/input-mask/constants.mjs +2 -0
  130. package/esm2022/v-angular/input-mask/index.mjs +6 -0
  131. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +20 -0
  132. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
  133. package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
  134. package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
  135. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +190 -0
  136. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +56 -0
  137. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  138. package/esm2022/v-angular/modal/index.mjs +6 -0
  139. package/esm2022/v-angular/modal/modal.globals.mjs +17 -0
  140. package/esm2022/v-angular/modal/modal.module.mjs +40 -0
  141. package/esm2022/v-angular/modal/modal.types.mjs +2 -0
  142. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +229 -0
  143. package/esm2022/v-angular/radio/index.mjs +3 -0
  144. package/esm2022/v-angular/radio/radio.component.mjs +130 -0
  145. package/esm2022/v-angular/radio/radio.module.mjs +20 -0
  146. package/esm2022/v-angular/textarea/index.mjs +3 -0
  147. package/esm2022/v-angular/textarea/textarea.component.mjs +101 -0
  148. package/esm2022/v-angular/textarea/textarea.module.mjs +18 -0
  149. package/esm2022/v-angular/tooltip/index.mjs +3 -0
  150. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +273 -0
  151. package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
  152. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +1 -1
  153. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  154. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +308 -0
  155. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -0
  156. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +49 -0
  157. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -0
  158. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +131 -0
  159. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -0
  160. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +33 -0
  161. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -0
  162. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +73 -0
  163. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -0
  164. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +94 -0
  165. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -0
  166. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +51 -0
  167. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -0
  168. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +830 -0
  169. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -0
  170. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +58 -0
  171. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -0
  172. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +192 -0
  173. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -0
  174. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +53 -0
  175. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -0
  176. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +226 -0
  177. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -0
  178. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +256 -0
  179. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -0
  180. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +542 -0
  181. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -0
  182. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +153 -0
  183. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -0
  184. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +49 -0
  185. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -0
  186. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +122 -0
  187. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -0
  188. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +295 -0
  189. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -0
  190. package/fesm2022/sebgroup-green-angular.mjs +3106 -14
  191. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  192. package/index.d.ts +18 -0
  193. package/package.json +114 -3
  194. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +124 -0
  195. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  196. package/src/v-angular/base-control-value-accessor/index.d.ts +2 -0
  197. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  198. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  199. package/src/v-angular/breadcrumbs/index.d.ts +2 -0
  200. package/src/v-angular/button/button.component.d.ts +62 -0
  201. package/src/v-angular/button/button.module.d.ts +10 -0
  202. package/src/v-angular/button/index.d.ts +2 -0
  203. package/src/v-angular/card/card.component.d.ts +5 -0
  204. package/src/v-angular/card/card.module.d.ts +8 -0
  205. package/src/v-angular/card/index.d.ts +2 -0
  206. package/src/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
  207. package/src/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
  208. package/src/v-angular/character-countdown/index.d.ts +2 -0
  209. package/src/v-angular/checkbox/checkbox.component.d.ts +27 -0
  210. package/src/v-angular/checkbox/checkbox.module.d.ts +9 -0
  211. package/src/v-angular/checkbox/index.d.ts +2 -0
  212. package/src/v-angular/core/core.globals.d.ts +13 -0
  213. package/src/v-angular/core/core.utils.d.ts +22 -0
  214. package/src/v-angular/core/index.d.ts +2 -0
  215. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +89 -0
  216. package/src/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  217. package/src/v-angular/dropdown/dropdown.component.d.ts +99 -0
  218. package/src/v-angular/dropdown/dropdown.module.d.ts +12 -0
  219. package/src/v-angular/dropdown/index.d.ts +5 -0
  220. package/src/v-angular/dropdown/typeahead/index.d.ts +2 -0
  221. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  222. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  223. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  224. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  225. package/src/v-angular/external-link/external-link.directive.d.ts +17 -0
  226. package/src/v-angular/external-link/external-link.module.d.ts +8 -0
  227. package/src/v-angular/external-link/index.d.ts +2 -0
  228. package/src/v-angular/i18n/i18n.module.d.ts +15 -0
  229. package/src/v-angular/i18n/i18n.test.module.d.ts +27 -0
  230. package/src/v-angular/i18n/index.d.ts +2 -0
  231. package/src/v-angular/info-circle/index.d.ts +2 -0
  232. package/src/v-angular/info-circle/info-circle.component.d.ts +16 -0
  233. package/src/v-angular/info-circle/info-circle.module.d.ts +10 -0
  234. package/src/v-angular/input/index.d.ts +2 -0
  235. package/src/v-angular/input/input.component.d.ts +90 -0
  236. package/src/v-angular/input/input.module.d.ts +11 -0
  237. package/src/v-angular/input-mask/config.d.ts +6 -0
  238. package/src/v-angular/input-mask/constants.d.ts +2 -0
  239. package/src/v-angular/input-mask/index.d.ts +5 -0
  240. package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  241. package/src/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  242. package/src/v-angular/input-mask/input-mask.module.d.ts +11 -0
  243. package/src/v-angular/input-mask/input-mask.types.d.ts +20 -0
  244. package/src/v-angular/modal/dialog/dialog.component.d.ts +55 -0
  245. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +24 -0
  246. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  247. package/src/v-angular/modal/index.d.ts +5 -0
  248. package/src/v-angular/modal/modal.globals.d.ts +13 -0
  249. package/src/v-angular/modal/modal.module.d.ts +13 -0
  250. package/src/v-angular/modal/modal.types.d.ts +5 -0
  251. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +76 -0
  252. package/src/v-angular/radio/index.d.ts +2 -0
  253. package/src/v-angular/radio/radio.component.d.ts +48 -0
  254. package/src/v-angular/radio/radio.module.d.ts +9 -0
  255. package/src/v-angular/slug/index.d.ts +2 -0
  256. package/src/v-angular/slug/slug.module.d.ts +8 -0
  257. package/src/v-angular/slug/slug.pipe.d.ts +12 -0
  258. package/src/v-angular/textarea/index.d.ts +2 -0
  259. package/src/v-angular/textarea/textarea.component.d.ts +44 -0
  260. package/src/v-angular/textarea/textarea.module.d.ts +8 -0
  261. package/src/v-angular/tooltip/index.d.ts +2 -0
  262. package/src/v-angular/tooltip/tooltip.directive.d.ts +106 -0
  263. package/src/v-angular/tooltip/tooltip.module.d.ts +8 -0
  264. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +124 -0
  265. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  266. package/v-angular/base-control-value-accessor/index.d.ts +2 -0
  267. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  268. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  269. package/v-angular/breadcrumbs/index.d.ts +2 -0
  270. package/v-angular/button/button.component.d.ts +62 -0
  271. package/v-angular/button/button.module.d.ts +10 -0
  272. package/v-angular/button/index.d.ts +2 -0
  273. package/v-angular/card/card.component.d.ts +5 -0
  274. package/v-angular/card/card.module.d.ts +8 -0
  275. package/v-angular/card/index.d.ts +2 -0
  276. package/v-angular/checkbox/checkbox.component.d.ts +27 -0
  277. package/v-angular/checkbox/checkbox.module.d.ts +9 -0
  278. package/v-angular/checkbox/index.d.ts +2 -0
  279. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +89 -0
  280. package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  281. package/v-angular/dropdown/dropdown.component.d.ts +99 -0
  282. package/v-angular/dropdown/dropdown.module.d.ts +12 -0
  283. package/v-angular/dropdown/index.d.ts +5 -0
  284. package/v-angular/dropdown/typeahead/index.d.ts +2 -0
  285. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  286. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  287. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  288. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  289. package/v-angular/i18n/i18n.module.d.ts +15 -0
  290. package/v-angular/i18n/i18n.test.module.d.ts +27 -0
  291. package/v-angular/i18n/index.d.ts +2 -0
  292. package/v-angular/info-circle/index.d.ts +2 -0
  293. package/v-angular/info-circle/info-circle.component.d.ts +16 -0
  294. package/v-angular/info-circle/info-circle.module.d.ts +10 -0
  295. package/v-angular/input/index.d.ts +2 -0
  296. package/v-angular/input/input.component.d.ts +90 -0
  297. package/v-angular/input/input.module.d.ts +11 -0
  298. package/v-angular/input-mask/config.d.ts +6 -0
  299. package/v-angular/input-mask/constants.d.ts +2 -0
  300. package/v-angular/input-mask/index.d.ts +5 -0
  301. package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  302. package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  303. package/v-angular/input-mask/input-mask.module.d.ts +11 -0
  304. package/v-angular/input-mask/input-mask.types.d.ts +20 -0
  305. package/v-angular/modal/dialog/dialog.component.d.ts +55 -0
  306. package/v-angular/modal/fold-out/fold-out.component.d.ts +24 -0
  307. package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  308. package/v-angular/modal/index.d.ts +5 -0
  309. package/v-angular/modal/modal.globals.d.ts +13 -0
  310. package/v-angular/modal/modal.module.d.ts +13 -0
  311. package/v-angular/modal/modal.types.d.ts +5 -0
  312. package/v-angular/modal/slide-out/slide-out.component.d.ts +76 -0
  313. package/v-angular/radio/index.d.ts +2 -0
  314. package/v-angular/radio/radio.component.d.ts +48 -0
  315. package/v-angular/radio/radio.module.d.ts +9 -0
  316. package/v-angular/textarea/index.d.ts +2 -0
  317. package/v-angular/textarea/textarea.component.d.ts +44 -0
  318. package/v-angular/textarea/textarea.module.d.ts +8 -0
  319. package/v-angular/tooltip/index.d.ts +2 -0
  320. package/v-angular/tooltip/tooltip.directive.d.ts +106 -0
  321. package/v-angular/tooltip/tooltip.module.d.ts +8 -0
@@ -0,0 +1,101 @@
1
+ import { ChangeDetectorRef, Component, HostBinding, Inject, Input, Optional, Self, } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
4
+ import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/common";
8
+ /** Textarea fields allow users to add and edit longer or multiple line text. */
9
+ export class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
10
+ /** Minimum length (number of characters) of value. */
11
+ set minLength(length) {
12
+ this._minlength = length;
13
+ this.cdr.detectChanges();
14
+ }
15
+ get minlength() {
16
+ return this._minlength;
17
+ }
18
+ /**
19
+ * Minimum length (number of characters) of value.
20
+ * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.
21
+ */
22
+ set minlength(length) {
23
+ this._minlength = length;
24
+ this.cdr.detectChanges();
25
+ }
26
+ /** Maximum length (number of characters) of value. */
27
+ set maxLength(length) {
28
+ this._maxlength = length;
29
+ this.cdr.detectChanges();
30
+ }
31
+ get maxlength() {
32
+ return this._maxlength;
33
+ }
34
+ /**
35
+ * Maximum length (number of characters) of value.
36
+ * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.
37
+ */
38
+ set maxlength(length) {
39
+ this._maxlength = length;
40
+ this.cdr.detectChanges();
41
+ }
42
+ /** Returns if maxlength is used */
43
+ get hasMaxLength() {
44
+ return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER;
45
+ }
46
+ constructor(ngControl, translocoScope, cdr) {
47
+ super(ngControl, translocoScope, cdr);
48
+ this.ngControl = ngControl;
49
+ this.translocoScope = translocoScope;
50
+ this.cdr = cdr;
51
+ /** Special property used for selecting DOM elements during automated UI testing. */
52
+ this.thook = 'textarea';
53
+ /** If set to true, the value will not be editable. */
54
+ this.readonly = false;
55
+ this._maxlength = Number.MAX_SAFE_INTEGER;
56
+ this._minlength = 0;
57
+ }
58
+ /** @internal */
59
+ onInput(event) {
60
+ event.stopPropagation();
61
+ if (this.disabled)
62
+ return;
63
+ this.state = event.target.value;
64
+ this.onChange(this.state);
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvTextareaComponent, selector: "ngv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\">\n <ng-template *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"optional === true || required !== true && optional !== false\"\n class=\"sdv-field-label--optional\">\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{description}}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div [id]=\"id + '-textarea'\"\n class=\"ngv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\">\n <span *ngIf=\"!state\"\n class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.ngv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n</textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\"\n *transloco=\"let t; read: scope\">\n <label class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\">\n <span *ngIf=\"error; else errorsRef\">{{error}}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *ngvCharacterCountdown=\"maxlength; currentLength: (inputRef?.nativeElement?.value ?? '').length; charactersLeft as charactersLeft\"\n class=\"sdv-field-notice\"\n style=\"text-align: right\">\n {{ charactersLeft }} {{ t('label.maxlength')}}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n\n</ng-container>", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'ngv-textarea', template: "<!-- LABEL -->\n<label [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\">\n <ng-template *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"optional === true || required !== true && optional !== false\"\n class=\"sdv-field-label--optional\">\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{description}}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div [id]=\"id + '-textarea'\"\n class=\"ngv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\">\n <span *ngIf=\"!state\"\n class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.ngv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\">\n</textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\"\n *transloco=\"let t; read: scope\">\n <label class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\">\n <span *ngIf=\"error; else errorsRef\">{{error}}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *ngvCharacterCountdown=\"maxlength; currentLength: (inputRef?.nativeElement?.value ?? '').length; charactersLeft as charactersLeft\"\n class=\"sdv-field-notice\"\n style=\"text-align: right\">\n {{ charactersLeft }} {{ t('label.maxlength')}}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n\n</ng-container>", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"] }]
72
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
73
+ type: Self
74
+ }, {
75
+ type: Optional
76
+ }] }, { type: undefined, decorators: [{
77
+ type: Optional
78
+ }, {
79
+ type: Inject,
80
+ args: [TRANSLOCO_SCOPE]
81
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { thook: [{
82
+ type: HostBinding,
83
+ args: ['attr.data-thook']
84
+ }, {
85
+ type: Input
86
+ }], placeholder: [{
87
+ type: Input
88
+ }], readonly: [{
89
+ type: Input
90
+ }], minLength: [{
91
+ type: Input
92
+ }], minlength: [{
93
+ type: Input
94
+ }], maxLength: [{
95
+ type: Input
96
+ }], maxlength: [{
97
+ type: Input
98
+ }], rows: [{
99
+ type: Input
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxtQkFBbUIsQ0FBQTtBQUVuRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTs7OztBQUV4SCxnRkFBZ0Y7QUFNaEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9DQUFvQztJQU81RSxzREFBc0Q7SUFDdEQsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0Qsc0RBQXNEO0lBQ3RELElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLGdCQUFnQixDQUFBO0lBQ3ZFLENBQUM7SUFTRCxZQUM2QixTQUFvQixFQUdyQyxjQUE4QixFQUM5QixHQUFzQjtRQUVoQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQU5WLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFHckMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekRsQyxvRkFBb0Y7UUFDM0MsVUFBSyxHQUFHLFVBQVUsQ0FBQTtRQUczRCxzREFBc0Q7UUFDN0MsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQXdDakIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtRQUVwQyxlQUFVLEdBQUcsQ0FBQyxDQUFBO0lBYXRCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsT0FBTyxDQUFDLEtBQVk7UUFDbEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQThCLENBQUMsS0FBSyxDQUFBO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNCLENBQUM7K0dBckVVLG9CQUFvQix1RUF3RHJCLGVBQWU7bUdBeERkLG9CQUFvQixrVUNyQmpDLHN0RkF1RmU7OzRGRGxFRixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsY0FBYzs7MEJBMERyQixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlOzRFQXREZ0IsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBRTdCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxTQUFTO3NCQUFyQixLQUFLO2dCQVlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFXTyxTQUFTO3NCQUFyQixLQUFLO2dCQWVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nXG5cbmltcG9ydCB7IE5ndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yJ1xuXG4vKiogVGV4dGFyZWEgZmllbGRzIGFsbG93IHVzZXJzIHRvIGFkZCBhbmQgZWRpdCBsb25nZXIgb3IgbXVsdGlwbGUgbGluZSB0ZXh0LiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd2LXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQge1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICd0ZXh0YXJlYSdcbiAgLyoqIFRleHQgc2hvd24gYmVmb3JlIGlucHV0IGhhcyBhIHdyaXR0ZW4gdmFsdWUuICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHZhbHVlIHdpbGwgbm90IGJlIGVkaXRhYmxlLiAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlXG4gIC8qKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLiAqL1xuICBASW5wdXQoKSBzZXQgbWluTGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWlubGVuZ3RoID0gbGVuZ3RoXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgZ2V0IG1pbmxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW5sZW5ndGhcbiAgfVxuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBtaW5sZW5ndGggdHJpZ2dlcnMgYW5ndWxhci10ZW1wbGF0ZS12YWxpZGF0aW9uLiBVc2UgQElucHV0KCkgbWluTGVuZ3RoIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWlubGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWlubGVuZ3RoID0gbGVuZ3RoXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbiAgLyoqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuICovXG4gIEBJbnB1dCgpIHNldCBtYXhMZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbWF4bGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heGxlbmd0aFxuICB9XG4gIC8qKlxuICAgKiBNYXhpbXVtIGxlbmd0aCAobnVtYmVyIG9mIGNoYXJhY3RlcnMpIG9mIHZhbHVlLlxuICAgKiBAZGVwcmVjYXRlZCBtYXhsZW5ndGggdHJpZ2dlcnMgYW5ndWxhci10ZW1wbGF0ZS12YWxpZGF0aW9uLiBVc2UgQElucHV0KCkgbWF4TGVuZ3RoIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWF4bGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4bGVuZ3RoID0gbGVuZ3RoXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvKiogUmV0dXJucyBpZiBtYXhsZW5ndGggaXMgdXNlZCAqL1xuICBnZXQgaGFzTWF4TGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubWF4bGVuZ3RoICYmIHRoaXMubWF4bGVuZ3RoICE9PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuICB9XG5cbiAgcHJpdmF0ZSBfbWF4bGVuZ3RoID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcblxuICBwcml2YXRlIF9taW5sZW5ndGggPSAwXG5cbiAgLyoqIFNldHMgdGhlIGhlaWdodCBvZiB0aGUgdGV4dGFyZWEgYW5kIGRpc2FibGVzIHJlc2l6ZS4gQSBzY3JvbGxiYXIgd2lsbCBhcHBlYXIgaWYgbmVjZXNzYXJ5LiAqL1xuICBASW5wdXQoKSByb3dzPzogbnVtYmVyXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bGFiZWwgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICBjbGFzcz1cInNkdi1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgW2F0dHIuZm9yXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCI+XG4gIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgPCEtLSB0byB0cmlnZ2VyIGNzczplbXB0eSBpZiBubyBsYWJlbCB3YXMgYWRkZWQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25hbCA9PT0gdHJ1ZSB8fCByZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2VcIlxuICAgICAgICBjbGFzcz1cInNkdi1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIj5cbiAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIERFU0NSSVBUSU9OIC0tPlxuPGRpdiBjbGFzcz1cInNkdi1maWVsZC1sYWJlbC0tc21hbGwgZGVzY3JpcHRpb25cIj57e2Rlc2NyaXB0aW9ufX08L2Rpdj5cblxuPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gIDxkaXYgW2lkXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgIGNsYXNzPVwibmd2LWZpZWxkLS1sb2NrZWRcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIudmFsdWVdPVwic3RhdGVcIlxuICAgIFthdHRyLnJvbGVdPVwicm9sZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCJcbiAgICAgIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZVwiPlxuICAgICAge3sgc3RhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBJTlBVVCBGSUVMRCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gIDx0ZXh0YXJlYSAjaW5wdXRcbiAgICBbaWRdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICAgY2xhc3M9XCJzZHYtZmllbGRcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ25vLXJlc2l6ZSc6ICEhcm93cyB9XCJcbiAgICBbY2xhc3Mubmd2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgW2F0dHIucm93c109XCJyb3dzXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgW3ZhbHVlXT1cInN0YXRlXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiPlxuPC90ZXh0YXJlYT5cblxuICA8IS0tIEVSUk9SUyAtLT5cbiAgPGRpdiBjbGFzcz1cImVycm9yLXdyYXBwZXJcIlxuICAgICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJzZHYtZmllbGQtbm90aWNlIHNkdi1maWVsZC1ub3RpY2UtLWVycm9yXCJcbiAgICAgIFthdHRyLmZvcl09XCJpZCArICctdGV4dGFyZWEnXCJcbiAgICAgICpuZ0lmPVwiaW52YWxpZCAmJiAoZXJyb3IgfHwgbmdDb250cm9sPy5pbnZhbGlkKVwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJlcnJvcjsgZWxzZSBlcnJvcnNSZWZcIj57e2Vycm9yfX08L3NwYW4+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCI+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNNYXhMZW5ndGhcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICAqbmd2Q2hhcmFjdGVyQ291bnRkb3duPVwibWF4bGVuZ3RoOyBjdXJyZW50TGVuZ3RoOiAoaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlID8/ICcnKS5sZW5ndGg7IGNoYXJhY3RlcnNMZWZ0IGFzIGNoYXJhY3RlcnNMZWZ0XCJcbiAgICAgICAgY2xhc3M9XCJzZHYtZmllbGQtbm90aWNlXCJcbiAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodFwiPlxuICAgICAgICB7eyBjaGFyYWN0ZXJzTGVmdCB9fSB7eyB0KCdsYWJlbC5tYXhsZW5ndGgnKX19XG4gICAgICA8L2xhYmVsPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIENISUxEUkVOIC0tPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgvTextareaComponent } from './textarea.component';
4
+ import * as i0 from "@angular/core";
5
+ export class NgvTextareaModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule], exports: [NgvTextareaComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [NgvTextareaComponent],
14
+ imports: [CommonModule],
15
+ exports: [NgvTextareaComponent],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBOztBQU8zRCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFKYixvQkFBb0IsYUFDekIsWUFBWSxhQUNaLG9CQUFvQjtnSEFFbkIsaUJBQWlCLFlBSGxCLFlBQVk7OzRGQUdYLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IE5ndlRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05ndlRleHRhcmVhQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtOZ3ZUZXh0YXJlYUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndlRleHRhcmVhTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './tooltip.directive';
2
+ export * from './tooltip.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAubW9kdWxlJ1xuIl19
@@ -0,0 +1,273 @@
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * A tooltip is a text label that acts as a helper to a specific item.
5
+ * Recommended to use value `top` or `bottom` with `placement` for responsive design.
6
+ * Dynamic resizing and tooltip position are a work in progress.
7
+ * https://designlibrary.sebgroup.com/components/component-tooltip
8
+ */
9
+ export class NgvTooltipDirective {
10
+ /** @internal Check if changes should trigger a re-render */
11
+ static shouldUpdate(change) {
12
+ return (change &&
13
+ !change.firstChange &&
14
+ change.previousValue !== change.currentValue);
15
+ }
16
+ constructor(anchorElementRef, renderer) {
17
+ this.anchorElementRef = anchorElementRef;
18
+ this.renderer = renderer;
19
+ /** Special property used for selecting DOM elements during automated UI testing. */
20
+ this.thook = 'tooltip';
21
+ /** The side of the anchor which the tooltip will be rendered.
22
+ * Recommended `top` and `bottom` for responsive designs as these are more stable.
23
+ */
24
+ this.placement = 'top';
25
+ /** Initial state and subsequent updates on wether the tooltip is visible. */
26
+ this.shown = false;
27
+ /** How far off from the text the tooltip will be rendered. */
28
+ this.offset = 10;
29
+ /** How frequently the tooltip will be re-rendered when the page size changes. */
30
+ this.resizeThrottle = 50;
31
+ /** Numeric max-width for tooltip. */
32
+ this.maxWidth = 343;
33
+ /** Emits a show event triggered changing visibility state of the tooltip. */
34
+ this.ngvShow = new EventEmitter();
35
+ /** Emits a hide event triggered changing visibility state of the tooltip. */
36
+ this.ngvHide = new EventEmitter();
37
+ /** @internal */
38
+ this.timeout = 0;
39
+ this.anchorElement = this.anchorElementRef.nativeElement;
40
+ this.parentElement = document.body;
41
+ }
42
+ ngAfterViewInit() {
43
+ // Set a timeout to allow view to fully render before creating tooltip.
44
+ setTimeout(() => (this.shown ? this.show(true) : this.hide(true)));
45
+ }
46
+ ngOnChanges(changes) {
47
+ if (NgvTooltipDirective.shouldUpdate(changes.ngvTooltip) ||
48
+ NgvTooltipDirective.shouldUpdate(changes.placement) ||
49
+ NgvTooltipDirective.shouldUpdate(changes.thook)) {
50
+ this.shown ? this.show(true) : this.hide(true);
51
+ }
52
+ if (NgvTooltipDirective.shouldUpdate(changes.shown)) {
53
+ this.shown ? this.show() : this.hide();
54
+ }
55
+ if (NgvTooltipDirective.shouldUpdate(changes.offset)) {
56
+ this.updatePosition();
57
+ }
58
+ }
59
+ ngOnDestroy() {
60
+ this.hide(true);
61
+ }
62
+ /** @internal */
63
+ onMouseEnter() {
64
+ this.show();
65
+ }
66
+ /** @internal */
67
+ onMouseLeave() {
68
+ this.hide();
69
+ }
70
+ /** @internal */
71
+ resize() {
72
+ if (this.timeout)
73
+ return;
74
+ this.timeout = window.setTimeout(() => {
75
+ this.timeout = 0;
76
+ this.updatePosition();
77
+ }, this.resizeThrottle);
78
+ }
79
+ /**
80
+ * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.
81
+ * @param recreate if set to true, destroy any existing tooltip and create a new one.
82
+ */
83
+ show(recreate = false) {
84
+ // Require tooltip text to create
85
+ if (!this.ngvTooltip || this.ngvTooltip.length === 0)
86
+ return;
87
+ if (recreate || !this.tooltipElement) {
88
+ this.hide(true);
89
+ this.create(this.ngvTooltip);
90
+ }
91
+ else {
92
+ this.renderer.appendChild(this.parentElement, this.tooltipElement);
93
+ }
94
+ this.updatePosition();
95
+ this.shown = true;
96
+ this.ngvShow.emit(this.tooltipElement);
97
+ }
98
+ /**
99
+ * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.
100
+ * @param destroy if set to true, destroy any existing tooltip.
101
+ */
102
+ hide(destroy = false) {
103
+ if (!this.tooltipElement)
104
+ return;
105
+ if (this.parentElement.contains(this.tooltipElement))
106
+ this.renderer.removeChild(this.parentElement, this.tooltipElement);
107
+ if (destroy)
108
+ this.destroy();
109
+ this.shown = false;
110
+ this.ngvHide.emit(this.tooltipElement);
111
+ }
112
+ /**
113
+ * @internal
114
+ * Creates a new tooltip with the set placement and a given text as its body.
115
+ * @param text the string to be displayed in the tooltip body.
116
+ */
117
+ create(text) {
118
+ this.tooltipElement = this.renderer.createElement('div');
119
+ this.renderer.addClass(this.tooltipElement, 'gds-tooltip');
120
+ this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook);
121
+ this.renderer.setStyle(this.tooltipElement, 'position', 'absolute');
122
+ this.renderer.setStyle(this.tooltipElement, 'z-index', '1040');
123
+ this.renderer.setStyle(this.tooltipElement, 'border-radius', '.25rem');
124
+ this.renderer.setStyle(this.tooltipElement, 'padding', '.5rem 1rem');
125
+ const relativeMaxWidth = this.pxToRem(this.maxWidth);
126
+ this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth);
127
+ this.renderer.appendChild(this.tooltipElement, this.renderer.createText(text));
128
+ // add tooltip to DOM
129
+ this.renderer.appendChild(this.parentElement, this.tooltipElement);
130
+ this.arrowElement = this.renderer.createElement('div');
131
+ this.renderer.addClass(this.arrowElement, `gds-tooltip__arrow-${this.placement}`);
132
+ // add arrow to tooltip element
133
+ this.renderer.appendChild(this.tooltipElement, this.arrowElement);
134
+ }
135
+ /**
136
+ * @internal
137
+ * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.
138
+ */
139
+ destroy() {
140
+ this.tooltipElement = undefined;
141
+ this.arrowElement = undefined;
142
+ }
143
+ /**
144
+ * @internal
145
+ * Recalculates the position of the tooltip.
146
+ */
147
+ updatePosition() {
148
+ if (!this.tooltipElement || !this.arrowElement)
149
+ return;
150
+ const scrollPos = window.pageYOffset ||
151
+ document.documentElement.scrollTop ||
152
+ this.parentElement.scrollTop ||
153
+ 0;
154
+ const anchorRect = this.anchorElement.getBoundingClientRect();
155
+ const tooltipRect = this.tooltipElement.getBoundingClientRect();
156
+ const arrowRect = this.arrowElement.getBoundingClientRect();
157
+ switch (this.placement) {
158
+ case 'top':
159
+ this.alignVertical(true, scrollPos, anchorRect, tooltipRect.width, tooltipRect.height, arrowRect.width);
160
+ break;
161
+ case 'bottom':
162
+ this.alignVertical(false, scrollPos, anchorRect, tooltipRect.width, tooltipRect.height, arrowRect.width);
163
+ break;
164
+ case 'left':
165
+ this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height);
166
+ break;
167
+ case 'right':
168
+ this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height);
169
+ break;
170
+ default:
171
+ return;
172
+ }
173
+ }
174
+ /**
175
+ * @internal
176
+ * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.
177
+ */
178
+ alignVertical(above, scrollPos, anchor, tooltipWidth, tooltipHeight, arrowWidth) {
179
+ const width = this.parentElement.clientWidth;
180
+ const anchorMidX = anchor.left + anchor.width / 2;
181
+ const tooltip = {};
182
+ const arrow = {};
183
+ if (above)
184
+ tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos;
185
+ else
186
+ tooltip.top = anchor.bottom + this.offset + scrollPos;
187
+ if (anchorMidX < width / 2) {
188
+ tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2);
189
+ arrow.left = anchorMidX - tooltip.left;
190
+ }
191
+ else {
192
+ tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2));
193
+ arrow.right = width - anchorMidX - tooltip.right - arrowWidth;
194
+ }
195
+ this.setStyle(tooltip, arrow);
196
+ }
197
+ /**
198
+ * @internal
199
+ * Calculates and set the position of the tooltip when the placement is `left` or `right`.
200
+ */
201
+ alignHorizontal(before, scrollPos, anchor, tooltipHeight) {
202
+ const width = this.parentElement.clientWidth;
203
+ const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos;
204
+ const tooltip = { top };
205
+ const arrow = { top: tooltipHeight / 2 };
206
+ if (before)
207
+ tooltip.right = width - anchor.left + this.offset;
208
+ else
209
+ tooltip.left = anchor.right + this.offset;
210
+ this.setStyle(tooltip, arrow);
211
+ }
212
+ /**
213
+ * @internal
214
+ * Updates the CSS properties for the tooltip position.
215
+ */
216
+ setStyle(tooltip, arrow) {
217
+ // Tooltip
218
+ Object.entries(tooltip).forEach(([prop, value]) => {
219
+ const position = this.pxToRem(value);
220
+ this.renderer.setStyle(this.tooltipElement, prop, position);
221
+ });
222
+ // Arrow
223
+ Object.entries(arrow).forEach(([prop, value]) => {
224
+ const position = this.pxToRem(value);
225
+ this.renderer.setStyle(this.arrowElement, prop, position);
226
+ });
227
+ }
228
+ pxToRem(value) {
229
+ const fontSizePx = window
230
+ ?.getComputedStyle(this.parentElement)
231
+ ?.getPropertyValue('font-size');
232
+ const fontSizeNumberMatch = fontSizePx?.match(/\d{1,}/);
233
+ const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16;
234
+ const remValue = value / fontSize;
235
+ return `${remValue}rem`;
236
+ }
237
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
238
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvTooltipDirective, selector: "[ngvTooltip]", inputs: { ngvTooltip: "ngvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { ngvShow: "ngvShow", ngvHide: "ngvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
239
+ }
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, decorators: [{
241
+ type: Directive,
242
+ args: [{
243
+ selector: '[ngvTooltip]',
244
+ }]
245
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { ngvTooltip: [{
246
+ type: Input
247
+ }], thook: [{
248
+ type: Input
249
+ }], placement: [{
250
+ type: Input
251
+ }], shown: [{
252
+ type: Input
253
+ }], offset: [{
254
+ type: Input
255
+ }], resizeThrottle: [{
256
+ type: Input
257
+ }], maxWidth: [{
258
+ type: Input
259
+ }], ngvShow: [{
260
+ type: Output
261
+ }], ngvHide: [{
262
+ type: Output
263
+ }], onMouseEnter: [{
264
+ type: HostListener,
265
+ args: ['mouseenter']
266
+ }], onMouseLeave: [{
267
+ type: HostListener,
268
+ args: ['mouseleave']
269
+ }], resize: [{
270
+ type: HostListener,
271
+ args: ['window:resize']
272
+ }] } });
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7O0FBV3RCOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBb0I7UUFDdEMsT0FBTyxDQUNMLE1BQU07WUFDTixDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLE1BQU0sQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUNVLGdCQUE0QixFQUM1QixRQUFtQjtRQURuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVk7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDN0Isb0ZBQW9GO1FBQzNFLFVBQUssR0FBRyxTQUFTLENBQUE7UUFDMUI7O1dBRUc7UUFDTSxjQUFTLEdBQWMsS0FBSyxDQUFBO1FBQ3JDLDZFQUE2RTtRQUNwRSxVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLDhEQUE4RDtRQUNyRCxXQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGlGQUFpRjtRQUN4RSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixxQ0FBcUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsQ0FBQTtRQUV2Qiw2RUFBNkU7UUFDbkUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7UUFDbkQsNkVBQTZFO1FBQ25FLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBRW5ELGdCQUFnQjtRQUNOLFlB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QkFPMUIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnXG5cbnR5cGUgUG9zaXRpb24gPSB7XG4gIHRvcD86IG51bWJlclxuICByaWdodD86IG51bWJlclxuICBib3R0b20/OiBudW1iZXJcbiAgbGVmdD86IG51bWJlclxufVxuXG4vKipcbiAqIEEgdG9vbHRpcCBpcyBhIHRleHQgbGFiZWwgdGhhdCBhY3RzIGFzIGEgaGVscGVyIHRvIGEgc3BlY2lmaWMgaXRlbS5cbiAqIFJlY29tbWVuZGVkIHRvIHVzZSB2YWx1ZSBgdG9wYCBvciBgYm90dG9tYCB3aXRoIGBwbGFjZW1lbnRgIGZvciByZXNwb25zaXZlIGRlc2lnbi5cbiAqIER5bmFtaWMgcmVzaXppbmcgYW5kIHRvb2x0aXAgcG9zaXRpb24gYXJlIGEgd29yayBpbiBwcm9ncmVzcy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtdG9vbHRpcFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd2VG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUb29sdGlwRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgLyoqIFRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbmd2VG9vbHRpcD86IHN0cmluZ1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQElucHV0KCkgdGhvb2sgPSAndG9vbHRpcCdcbiAgLyoqIFRoZSBzaWRlIG9mIHRoZSBhbmNob3Igd2hpY2ggdGhlIHRvb2x0aXAgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogUmVjb21tZW5kZWQgYHRvcGAgYW5kIGBib3R0b21gIGZvciByZXNwb25zaXZlIGRlc2lnbnMgYXMgdGhlc2UgYXJlIG1vcmUgc3RhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAndG9wJ1xuICAvKiogSW5pdGlhbCBzdGF0ZSBhbmQgc3Vic2VxdWVudCB1cGRhdGVzIG9uIHdldGhlciB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLiAqL1xuICBASW5wdXQoKSBzaG93biA9IGZhbHNlXG4gIC8qKiBIb3cgZmFyIG9mZiBmcm9tIHRoZSB0ZXh0IHRoZSB0b29sdGlwIHdpbGwgYmUgcmVuZGVyZWQuICovXG4gIEBJbnB1dCgpIG9mZnNldCA9IDEwXG4gIC8qKiBIb3cgZnJlcXVlbnRseSB0aGUgdG9vbHRpcCB3aWxsIGJlIHJlLXJlbmRlcmVkIHdoZW4gdGhlIHBhZ2Ugc2l6ZSBjaGFuZ2VzLiAqL1xuICBASW5wdXQoKSByZXNpemVUaHJvdHRsZSA9IDUwXG4gIC8qKiBOdW1lcmljIG1heC13aWR0aCBmb3IgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbWF4V2lkdGggPSAzNDNcblxuICAvKiogRW1pdHMgYSBzaG93IGV2ZW50IHRyaWdnZXJlZCBjaGFuZ2luZyB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB0b29sdGlwLiAqL1xuICBAT3V0cHV0KCkgbmd2U2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KClcbiAgLyoqIEVtaXRzIGEgaGlkZSBldmVudCB0cmlnZ2VyZWQgY2hhbmdpbmcgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcC4gKi9cbiAgQE91dHB1dCgpIG5ndkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEhUTUxFbGVtZW50PigpXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDBcblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIGFuY2hvckVsZW1lbnQ6IEhUTUxFbGVtZW50XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgYXJyb3dFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgQ2hlY2sgaWYgY2hhbmdlcyBzaG91bGQgdHJpZ2dlciBhIHJlLXJlbmRlciAqL1xuICBzdGF0aWMgc2hvdWxkVXBkYXRlKGNoYW5nZTogU2ltcGxlQ2hhbmdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNoYW5nZSAmJlxuICAgICAgIWNoYW5nZS5maXJzdENoYW5nZSAmJlxuICAgICAgY2hhbmdlLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZS5jdXJyZW50VmFsdWVcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuY2hvckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICB0aGlzLmFuY2hvckVsZW1lbnQgPSB0aGlzLmFuY2hvckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIHRoaXMucGFyZW50RWxlbWVudCA9IGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBTZXQgYSB0aW1lb3V0IHRvIGFsbG93IHZpZXcgdG8gZnVsbHkgcmVuZGVyIGJlZm9yZSBjcmVhdGluZyB0b29sdGlwLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSkpKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMubmd2VG9vbHRpcCkgfHxcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMucGxhY2VtZW50KSB8fFxuICAgICAgTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy50aG9vaylcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSlcbiAgICB9XG5cbiAgICBpZiAoTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5zaG93bikpIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpXG4gICAgfVxuXG4gICAgaWYgKE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMub2Zmc2V0KSkge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oaWRlKHRydWUpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5zaG93KClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhpZGUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcmVzaXplKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHJldHVyblxuICAgIHRoaXMudGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGltZW91dCA9IDBcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKVxuICAgIH0sIHRoaXMucmVzaXplVGhyb3R0bGUpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byB0cnVlIGFuZCBjcmVhdGVzIGEgbmV3IHRvb2x0aXAgaWYgaXQgZG9lc24ndCBleGlzdCBvciBgcmVjcmVhdGVgIGlzIHNldC5cbiAgICogQHBhcmFtIHJlY3JlYXRlIGlmIHNldCB0byB0cnVlLCBkZXN0cm95IGFueSBleGlzdGluZyB0b29sdGlwIGFuZCBjcmVhdGUgYSBuZXcgb25lLlxuICAgKi9cbiAgc2hvdyhyZWNyZWF0ZSA9IGZhbHNlKSB7XG4gICAgLy8gUmVxdWlyZSB0b29sdGlwIHRleHQgdG8gY3JlYXRlXG4gICAgaWYgKCF0aGlzLm5ndlRvb2x0aXAgfHwgdGhpcy5uZ3ZUb29sdGlwLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICBpZiAocmVjcmVhdGUgfHwgIXRoaXMudG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGlkZSh0cnVlKVxuICAgICAgdGhpcy5jcmVhdGUodGhpcy5uZ3ZUb29sdGlwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50RWxlbWVudCwgdGhpcy50b29sdGlwRWxlbWVudClcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKClcbiAgICB0aGlzLnNob3duID0gdHJ1ZVxuICAgIHRoaXMubmd2U2hvdy5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byBmYWxzZSBhbmQgZGVzdHJveXMgYW4gZXhpc3RpbmcgdG9vbHRpcCBpZiBgZGVzdHJveWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gZGVzdHJveSBpZiBzZXQgdG8gdHJ1ZSwgZGVzdHJveSBhbnkgZXhpc3RpbmcgdG9vbHRpcC5cbiAgICovXG4gIGhpZGUoZGVzdHJveSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudG9vbHRpcEVsZW1lbnQpKVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gICAgaWYgKGRlc3Ryb3kpIHRoaXMuZGVzdHJveSgpXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXG4gICAgdGhpcy5uZ3ZIaWRlLmVtaXQodGhpcy50b29sdGlwRWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ3JlYXRlcyBhIG5ldyB0b29sdGlwIHdpdGggdGhlIHNldCBwbGFjZW1lbnQgYW5kIGEgZ2l2ZW4gdGV4dCBhcyBpdHMgYm9keS5cbiAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2x0aXAgYm9keS5cbiAgICovXG4gIGNyZWF0ZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ2dkcy10b29sdGlwJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnZGF0YS10aG9vaycsIHRoaXMudGhvb2spXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3otaW5kZXgnLCAnMTA0MCcpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnYm9yZGVyLXJhZGl1cycsICcuMjVyZW0nKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3BhZGRpbmcnLCAnLjVyZW0gMXJlbScpXG4gICAgY29uc3QgcmVsYXRpdmVNYXhXaWR0aCA9IHRoaXMucHhUb1JlbSh0aGlzLm1heFdpZHRoKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ21heC13aWR0aCcsIHJlbGF0aXZlTWF4V2lkdGgpXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgIHRoaXMudG9vbHRpcEVsZW1lbnQsXG4gICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGV4dCksXG4gICAgKVxuXG4gICAgLy8gYWRkIHRvb2x0aXAgdG8gRE9NXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG5cbiAgICB0aGlzLmFycm93RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgdGhpcy5hcnJvd0VsZW1lbnQsXG4gICAgICBgZ2RzLXRvb2x0aXBfX2Fycm93LSR7dGhpcy5wbGFjZW1lbnR9YCxcbiAgICApXG5cbiAgICAvLyBhZGQgYXJyb3cgdG8gdG9vbHRpcCBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbGVtZW50LCB0aGlzLmFycm93RWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRGVzdHJveXMgdGhlIGN1cnJlbnQgdG9vbHRpcCBieSB1bi1zZXR0aW5nIHZhcmlhYmxlcywgc2hvdWxkIG9ubHkgYmUgdXNlZCBhZnRlciBkZXRhY2hpbmcgZWxlbWVudHMgZnJvbSB0aGUgRE9NLlxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5hcnJvd0VsZW1lbnQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmVjYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC5cbiAgICovXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCB8fCAhdGhpcy5hcnJvd0VsZW1lbnQpIHJldHVyblxuICAgIGNvbnN0IHNjcm9sbFBvcyA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIDBcbiAgICBjb25zdCBhbmNob3JSZWN0ID0gdGhpcy5hbmNob3JFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYXJyb3dSZWN0ID0gdGhpcy5hcnJvd0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblxuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbChcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgdGhpcy5hbGlnblZlcnRpY2FsKFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKHRydWUsIHNjcm9sbFBvcywgYW5jaG9yUmVjdCwgdG9vbHRpcFJlY3QuaGVpZ2h0KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKGZhbHNlLCBzY3JvbGxQb3MsIGFuY2hvclJlY3QsIHRvb2x0aXBSZWN0LmhlaWdodClcbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgdG9wYCBvciBgYm90dG9tYC5cbiAgICovXG4gIGFsaWduVmVydGljYWwoXG4gICAgYWJvdmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBXaWR0aDogbnVtYmVyLFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgICBhcnJvd1dpZHRoOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgY29uc3QgYW5jaG9yTWlkWCA9IGFuY2hvci5sZWZ0ICsgYW5jaG9yLndpZHRoIC8gMlxuICAgIGNvbnN0IHRvb2x0aXA6IFBvc2l0aW9uID0ge31cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7fVxuXG4gICAgaWYgKGFib3ZlKVxuICAgICAgdG9vbHRpcC50b3AgPSBhbmNob3IudG9wIC0gdG9vbHRpcEhlaWdodCAtIHRoaXMub2Zmc2V0ICsgc2Nyb2xsUG9zXG4gICAgZWxzZSB0b29sdGlwLnRvcCA9IGFuY2hvci5ib3R0b20gKyB0aGlzLm9mZnNldCArIHNjcm9sbFBvc1xuXG4gICAgaWYgKGFuY2hvck1pZFggPCB3aWR0aCAvIDIpIHtcbiAgICAgIHRvb2x0aXAubGVmdCA9IE1hdGgubWF4KDAsIGFuY2hvck1pZFggLSB0b29sdGlwV2lkdGggLyAyKVxuICAgICAgYXJyb3cubGVmdCA9IGFuY2hvck1pZFggLSB0b29sdGlwLmxlZnRcbiAgICB9IGVsc2Uge1xuICAgICAgdG9vbHRpcC5yaWdodCA9IE1hdGgubWF4KDAsIHdpZHRoIC0gKGFuY2hvck1pZFggKyB0b29sdGlwV2lkdGggLyAyKSlcbiAgICAgIGFycm93LnJpZ2h0ID0gd2lkdGggLSBhbmNob3JNaWRYIC0gdG9vbHRpcC5yaWdodCAtIGFycm93V2lkdGhcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0eWxlKHRvb2x0aXAsIGFycm93KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgbGVmdGAgb3IgYHJpZ2h0YC5cbiAgICovXG4gIGFsaWduSG9yaXpvbnRhbChcbiAgICBiZWZvcmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICBjb25zdCB0b3AgPSBhbmNob3IudG9wICsgKGFuY2hvci5oZWlnaHQgLSB0b29sdGlwSGVpZ2h0KSAvIDIgKyBzY3JvbGxQb3NcbiAgICBjb25zdCB0b29sdGlwOiBQb3NpdGlvbiA9IHsgdG9wIH1cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7IHRvcDogdG9vbHRpcEhlaWdodCAvIDIgfVxuXG4gICAgaWYgKGJlZm9yZSkgdG9vbHRpcC5yaWdodCA9IHdpZHRoIC0gYW5jaG9yLmxlZnQgKyB0aGlzLm9mZnNldFxuICAgIGVsc2UgdG9vbHRpcC5sZWZ0ID0gYW5jaG9yLnJpZ2h0ICsgdGhpcy5vZmZzZXRcblxuICAgIHRoaXMuc2V0U3R5bGUodG9vbHRpcCwgYXJyb3cpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFVwZGF0ZXMgdGhlIENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgdG9vbHRpcCBwb3NpdGlvbi5cbiAgICovXG4gIHNldFN0eWxlKHRvb2x0aXA6IFBvc2l0aW9uLCBhcnJvdzogUG9zaXRpb24pIHtcbiAgICAvLyBUb29sdGlwXG4gICAgT2JqZWN0LmVudHJpZXModG9vbHRpcCkuZm9yRWFjaCgoW3Byb3AsIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnB4VG9SZW0odmFsdWUpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG5cbiAgICAvLyBBcnJvd1xuICAgIE9iamVjdC5lbnRyaWVzKGFycm93KS5mb3JFYWNoKChbcHJvcCwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucHhUb1JlbSh2YWx1ZSlcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5hcnJvd0VsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHB4VG9SZW0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZm9udFNpemVQeCA9IHdpbmRvd1xuICAgICAgPy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucGFyZW50RWxlbWVudClcbiAgICAgID8uZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJylcbiAgICBjb25zdCBmb250U2l6ZU51bWJlck1hdGNoID0gZm9udFNpemVQeD8ubWF0Y2goL1xcZHsxLH0vKVxuICAgIGNvbnN0IGZvbnRTaXplID0gZm9udFNpemVOdW1iZXJNYXRjaCA/ICtmb250U2l6ZU51bWJlck1hdGNoWzBdIDogMTZcbiAgICBjb25zdCByZW1WYWx1ZSA9IHZhbHVlIC8gZm9udFNpemVcbiAgICByZXR1cm4gYCR7cmVtVmFsdWV9cmVtYFxuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
3
+ import { NgvTooltipDirective } from './tooltip.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class NgvTooltipModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipModule, declarations: [NgvTooltipDirective], imports: [NgvI18nModule], exports: [NgvTooltipDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipModule, imports: [NgvI18nModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [NgvTooltipDirective],
14
+ exports: [NgvTooltipDirective],
15
+ imports: [NgvI18nModule],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBOztBQU96RCxNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQixpQkFKWixtQkFBbUIsYUFFeEIsYUFBYSxhQURiLG1CQUFtQjtnSEFHbEIsZ0JBQWdCLFlBRmpCLGFBQWE7OzRGQUVaLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ3ZJMThuTW9kdWxlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuJ1xuaW1wb3J0IHsgTmd2VG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05ndlRvb2x0aXBEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbTmd2VG9vbHRpcERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtOZ3ZJMThuTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VG9vbHRpcE1vZHVsZSB7fVxuIl19
@@ -17,7 +17,7 @@ class NggOnScrollDirective {
17
17
  fromEvent(this.elementRef?.nativeElement, 'scroll')
18
18
  .pipe(takeUntil(this.destroy$), throttle(() => interval(30)))
19
19
  .subscribe(() => {
20
- this.onScroll$.next();
20
+ this.onScroll$.next(null); // Changes: added null due to TS error
21
21
  });
22
22
  }
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-lib-shared.mjs","sources":["../../../../libs/angular/src/lib/shared/on-scroll.directive.ts","../../../../libs/angular/src/lib/shared/shared.module.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.directive.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.module.ts","../../../../libs/angular/src/lib/shared/sebgroup-green-angular-src-lib-shared.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n} from '@angular/core'\nimport { Subject, fromEvent, interval } from 'rxjs'\nimport { takeUntil, throttle } from 'rxjs/operators'\n\nexport const ON_SCROLL_TOKEN = new InjectionToken<string>('ON_SCROLL_TOKEN')\n\n@Directive({\n selector: '[nggOnScroll]',\n providers: [\n {\n provide: ON_SCROLL_TOKEN,\n useFactory: (component: NggOnScrollDirective): Subject<unknown> =>\n component?.onScroll$,\n deps: [NggOnScrollDirective],\n },\n ],\n})\nexport class NggOnScrollDirective implements AfterViewInit, OnDestroy {\n onScroll$ = new Subject()\n destroy$ = new Subject()\n\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.elementRef) {\n fromEvent(this.elementRef?.nativeElement, 'scroll')\n .pipe(\n takeUntil(this.destroy$),\n throttle(() => interval(30)),\n )\n .subscribe(() => {\n this.onScroll$.next()\n })\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(null)\n this.destroy$.complete()\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggOnScrollDirective } from './on-scroll.directive'\n\n@NgModule({\n declarations: [NggOnScrollDirective],\n imports: [CommonModule],\n exports: [NggOnScrollDirective],\n})\nexport class NggSharedModule {}\n","import { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core'\n\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\n\n@Directive({\n selector: '[nggCoreElement]',\n})\nexport class NggCoreElementDirective implements OnInit {\n private viewRef: EmbeddedViewRef<any> | null = null\n private readonly document = inject(DOCUMENT)\n private readonly renderer = inject(Renderer2)\n private readonly vcr = inject(ViewContainerRef)\n private readonly cdr = inject(ChangeDetectorRef)\n private readonly template = inject(TemplateRef<any>)\n\n ngOnInit() {\n this.vcr.clear()\n const originalCreateElement = this.renderer.createElement\n\n this.renderer.createElement = (name: string, _namespace: string) => {\n return this.document.createElement(getScopedTagName(name))\n }\n\n this.viewRef = this.vcr.createEmbeddedView(this.template)\n this.renderer.createElement = originalCreateElement\n this.cdr.markForCheck()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggCoreElementDirective } from './core-element.directive'\n\n@NgModule({\n declarations: [NggCoreElementDirective],\n imports: [CommonModule],\n exports: [NggCoreElementDirective],\n})\nexport class NggCoreWrapperModule {}\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-lib-shared.mjs","sources":["../../../../libs/angular/src/lib/shared/on-scroll.directive.ts","../../../../libs/angular/src/lib/shared/shared.module.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.directive.ts","../../../../libs/angular/src/lib/shared/core-element/core-element.module.ts","../../../../libs/angular/src/lib/shared/sebgroup-green-angular-src-lib-shared.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n} from '@angular/core'\nimport { Subject, fromEvent, interval } from 'rxjs'\nimport { takeUntil, throttle } from 'rxjs/operators'\n\nexport const ON_SCROLL_TOKEN = new InjectionToken<string>('ON_SCROLL_TOKEN')\n\n@Directive({\n selector: '[nggOnScroll]',\n providers: [\n {\n provide: ON_SCROLL_TOKEN,\n useFactory: (component: NggOnScrollDirective): Subject<unknown> =>\n component?.onScroll$,\n deps: [NggOnScrollDirective],\n },\n ],\n})\nexport class NggOnScrollDirective implements AfterViewInit, OnDestroy {\n onScroll$ = new Subject()\n destroy$ = new Subject()\n\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n if (this.elementRef) {\n fromEvent(this.elementRef?.nativeElement, 'scroll')\n .pipe(\n takeUntil(this.destroy$),\n throttle(() => interval(30)),\n )\n .subscribe(() => {\n this.onScroll$.next(null) // Changes: added null due to TS error\n })\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(null)\n this.destroy$.complete()\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggOnScrollDirective } from './on-scroll.directive'\n\n@NgModule({\n declarations: [NggOnScrollDirective],\n imports: [CommonModule],\n exports: [NggOnScrollDirective],\n})\nexport class NggSharedModule {}\n","import { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Directive,\n EmbeddedViewRef,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core'\n\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\n\n@Directive({\n selector: '[nggCoreElement]',\n})\nexport class NggCoreElementDirective implements OnInit {\n private viewRef: EmbeddedViewRef<any> | null = null\n private readonly document = inject(DOCUMENT)\n private readonly renderer = inject(Renderer2)\n private readonly vcr = inject(ViewContainerRef)\n private readonly cdr = inject(ChangeDetectorRef)\n private readonly template = inject(TemplateRef<any>)\n\n ngOnInit() {\n this.vcr.clear()\n const originalCreateElement = this.renderer.createElement\n\n this.renderer.createElement = (name: string, _namespace: string) => {\n return this.document.createElement(getScopedTagName(name))\n }\n\n this.viewRef = this.vcr.createEmbeddedView(this.template)\n this.renderer.createElement = originalCreateElement\n this.cdr.markForCheck()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\n\nimport { NggCoreElementDirective } from './core-element.directive'\n\n@NgModule({\n declarations: [NggCoreElementDirective],\n imports: [CommonModule],\n exports: [NggCoreElementDirective],\n})\nexport class NggCoreWrapperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}