@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,17 +1,20 @@
1
+ import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
1
2
  import * as i0 from '@angular/core';
2
- import { Component, Self, Optional, Inject, HostBinding, Input, NgModule } from '@angular/core';
3
+ import { Component, Self, Optional, Inject, HostBinding, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
4
  import * as i1 from '@angular/forms';
4
5
  import * as i3 from '@jsverse/transloco';
5
6
  import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
6
- import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
7
+ import { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
7
8
  import * as i2 from '@angular/common';
8
9
  import { CommonModule } from '@angular/common';
9
10
  import * as i4 from '@sebgroup/green-angular/src/v-angular/character-countdown';
10
- import { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';
11
- import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
11
+ import { NggvCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';
12
+ import * as i5 from '@sebgroup/green-angular/src/lib/shared';
13
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
14
+ import { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
12
15
 
13
16
  /** Textarea fields allow users to add and edit longer or multiple line text. */
14
- class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
17
+ class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent {
15
18
  /** Minimum length (number of characters) of value. */
16
19
  set minLength(length) {
17
20
  this._minlength = length;
@@ -68,12 +71,12 @@ class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
68
71
  this.state = event.target.value;
69
72
  this.onChange(this.state);
70
73
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.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 }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgvTextareaComponent, selector: "nggv-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\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\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\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\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 *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", 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: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"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }] }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTextareaComponent, selector: "nggv-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\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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 title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}: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(.gds-field-notice){margin-bottom:.5rem}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-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(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.gds-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}: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"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i5.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
73
76
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTextareaComponent, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaComponent, decorators: [{
75
78
  type: Component,
76
- args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\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\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\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 *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", 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: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"] }]
79
+ args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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 title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}: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(.gds-field-notice){margin-bottom:.5rem}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-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(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.gds-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"] }]
77
80
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
78
81
  type: Self
79
82
  }, {
@@ -104,17 +107,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
104
107
  type: Input
105
108
  }] } });
106
109
 
107
- class NgvTextareaModule {
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
109
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule], exports: [NgvTextareaComponent] }); }
110
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule] }); }
110
+ class NggvTextareaModule {
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
112
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaModule, declarations: [NggvTextareaComponent], imports: [CommonModule,
113
+ NggvI18nModule,
114
+ NggvCharacterCountdownDirectiveModule,
115
+ NggCoreWrapperModule], exports: [NggvTextareaComponent] }); }
116
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaModule, imports: [CommonModule,
117
+ NggvI18nModule,
118
+ NggvCharacterCountdownDirectiveModule,
119
+ NggCoreWrapperModule] }); }
111
120
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTextareaModule, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTextareaModule, decorators: [{
113
122
  type: NgModule,
114
123
  args: [{
115
- declarations: [NgvTextareaComponent],
116
- imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],
117
- exports: [NgvTextareaComponent],
124
+ declarations: [NggvTextareaComponent],
125
+ imports: [
126
+ CommonModule,
127
+ NggvI18nModule,
128
+ NggvCharacterCountdownDirectiveModule,
129
+ NggCoreWrapperModule,
130
+ ],
131
+ exports: [NggvTextareaComponent],
132
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
118
133
  }]
119
134
  }] });
120
135
 
@@ -122,5 +137,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
122
137
  * Generated bundle index. Do not edit.
123
138
  */
124
139
 
125
- export { NgvTextareaComponent, NgvTextareaModule };
140
+ export { NggvTextareaComponent, NggvTextareaModule };
126
141
  //# sourceMappingURL=sebgroup-green-angular-src-v-angular-textarea.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\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\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\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 *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NgvTextareaComponent],\n imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],\n exports: [NgvTextareaComponent],\n})\nexport class NgvTextareaModule {}\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-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></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\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" 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\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-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 title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NggvTextareaComponent],\n imports: [\n CommonModule,\n NggvI18nModule,\n NggvCharacterCountdownDirectiveModule,\n NggCoreWrapperModule,\n ],\n exports: [NggvTextareaComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { trigger, transition, style, animate } from '@angular/animations';
5
+ import '@sebgroup/green-core/components/icon/icons/cross-small.js';
6
+ import '@sebgroup/green-core/components/icon/icons/checkmark.js';
7
+ import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
8
+ import '@sebgroup/green-core/components/icon/icons/circle-info.js';
9
+ import * as i2 from '@angular/common';
10
+ import { CommonModule } from '@angular/common';
11
+ import * as i3 from '@jsverse/transloco';
12
+ import { TranslocoModule } from '@jsverse/transloco';
13
+ import * as i4 from '@sebgroup/green-angular/src/lib/shared';
14
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
15
+
16
+ class ToastMessageService {
17
+ constructor() {
18
+ this.messages = [];
19
+ this.messageSubject = new Subject();
20
+ }
21
+ addMessage(type, translocoScope, titleText, bodyText, timeout) {
22
+ const newMessage = {
23
+ type,
24
+ translocoScope,
25
+ titleText,
26
+ bodyText,
27
+ timeout,
28
+ };
29
+ this.removeMessage(newMessage);
30
+ this.messages.push(newMessage);
31
+ this.messageSubject.next([...this.messages]);
32
+ this.setMessageRemoveTimeout(newMessage);
33
+ }
34
+ removeMessage(message) {
35
+ const index = this.getDuplicateMessageIndex(message.titleText);
36
+ this.removeMessageByIndex(index);
37
+ }
38
+ pauseMessageTimeout(message) {
39
+ if (message.timeoutStartTime && message.timeout) {
40
+ const remainingTime = message.timeoutStartTime - Date.now() + message.timeout * 1000;
41
+ message.timeout = remainingTime / 1000;
42
+ window.clearTimeout(message.timeoutId);
43
+ }
44
+ }
45
+ resumeMessageTimeout(message) {
46
+ this.setMessageRemoveTimeout(message);
47
+ }
48
+ getMessages() {
49
+ return this.messageSubject.asObservable();
50
+ }
51
+ getDuplicateMessageIndex(newMessageText) {
52
+ return this.messages.findIndex((message) => message.titleText === newMessageText);
53
+ }
54
+ removeMessageByIndex(id) {
55
+ if (id !== -1) {
56
+ this.messages.splice(id, 1);
57
+ this.messageSubject.next([...this.messages]);
58
+ }
59
+ }
60
+ setMessageRemoveTimeout(newMessage) {
61
+ if (newMessage.timeout) {
62
+ newMessage.timeoutId = window.setTimeout(() => this.removeMessage(newMessage), newMessage.timeout * 1000);
63
+ newMessage.timeoutStartTime = Date.now();
64
+ }
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastMessageService, providedIn: 'root' }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastMessageService, decorators: [{
70
+ type: Injectable,
71
+ args: [{
72
+ providedIn: 'root',
73
+ }]
74
+ }] });
75
+
76
+ class ToastComponent {
77
+ // faTimes = faTimes;
78
+ // confirmCheck = faCheck;
79
+ // errorIcon = faExclamationSquare;
80
+ // informationIcon = faInfoSquare;
81
+ constructor(toastMessageService) {
82
+ this.toastMessageService = toastMessageService;
83
+ this.messages = [];
84
+ }
85
+ ngOnInit() {
86
+ this.toastMessagesSubscription = this.toastMessageService
87
+ .getMessages()
88
+ .subscribe((messages) => (this.messages = messages));
89
+ }
90
+ onMouseEnter(message) {
91
+ this.toastMessageService.pauseMessageTimeout(message);
92
+ }
93
+ onMouseLeave(message) {
94
+ this.toastMessageService.resumeMessageTimeout(message);
95
+ }
96
+ removeMessage(message) {
97
+ this.toastMessageService.removeMessage(message);
98
+ }
99
+ ngOnDestroy() {
100
+ if (this.toastMessagesSubscription) {
101
+ this.toastMessagesSubscription.unsubscribe();
102
+ }
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, deps: [{ token: ToastMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToastComponent, selector: "nggv-toast", inputs: { closeButtonAriaLabel: "closeButtonAriaLabel" }, ngImport: i0, template: "<output class=\"messages-container\" aria-live=\"polite\">\n <div\n class=\"message\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n @toastAnimation\n (mouseenter)=\"onMouseEnter(message)\"\n (mouseleave)=\"onMouseLeave(message)\"\n >\n <div class=\"content\" *transloco=\"let t; read: message.translocoScope\">\n <div class=\"message-type-icon-wrapper\">\n <ng-container *ngIf=\"message.type === 'success'\">\n <gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\n </ng-container>\n <ng-container\n *ngIf=\"message.type === 'error' || message.type === 'warning'\"\n >\n <gds-icon-triangle-exclamation\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </ng-container>\n <ng-container *ngIf=\"message.type === 'information'\">\n <gds-icon-circle-info *nggCoreElement></gds-icon-circle-info>\n </ng-container>\n </div>\n <div class=\"text-content\">\n <div>{{ t(message.titleText) }}</div>\n <div *ngIf=\"message.bodyText\" class=\"text-body-content\">\n {{ t(message.bodyText) }}\n </div>\n </div>\n <button\n class=\"close-icon-button\"\n [ngClass]=\"{ information: message.type === 'information' }\"\n (click)=\"removeMessage(message)\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n >\n <gds-icon-cross-small\n class=\"close-icon\"\n *nggCoreElement\n ></gds-icon-cross-small>\n </button>\n </div>\n </div>\n</output>\n", styles: [":host .messages-container{position:fixed;bottom:1rem;right:1rem;z-index:9999}:host .message{position:relative;font-size:1rem;max-width:22rem;min-width:22rem;min-height:3rem;box-shadow:0 2px 6px #00000026;margin-top:1rem}:host .content{display:flex;height:100%;padding:0;justify-content:space-between}:host .text-content{margin-top:1rem;margin-bottom:1rem;width:100%}:host .text-body-content{padding-top:1.5rem}:host .message-type-icon-wrapper{padding:1rem}:host .close-icon-button{box-sizing:border-box;display:grid;place-content:center;width:2rem;height:2rem;flex-shrink:0;font-size:1rem;line-height:1.5rem;margin:.5rem;background:transparent;border:none;color:inherit;padding:0;cursor:pointer}:host .close-icon-button:hover{color:#333;border-radius:100%}:host .close-icon-button:not(.information):hover{background-color:#fff}:host .close-icon-button.information:hover{background-color:#dedede}:host .success{background-color:#308800;color:#fff}:host .error{background-color:#d81a1a;color:#fff}:host .warning{background-color:#ffc500;color:#333}:host .information{background-color:#333;color:#e9e9e9}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }], animations: [
106
+ trigger('toastAnimation', [
107
+ transition(':enter', [
108
+ style({ opacity: 0, transform: 'translateY(100%)' }),
109
+ animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' })),
110
+ ]),
111
+ transition(':leave', [
112
+ animate('300ms ease-out', style({ opacity: 0, transform: 'translateY(100%)' })),
113
+ ]),
114
+ ]),
115
+ ] }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'nggv-toast', animations: [
120
+ trigger('toastAnimation', [
121
+ transition(':enter', [
122
+ style({ opacity: 0, transform: 'translateY(100%)' }),
123
+ animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' })),
124
+ ]),
125
+ transition(':leave', [
126
+ animate('300ms ease-out', style({ opacity: 0, transform: 'translateY(100%)' })),
127
+ ]),
128
+ ]),
129
+ ], template: "<output class=\"messages-container\" aria-live=\"polite\">\n <div\n class=\"message\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n @toastAnimation\n (mouseenter)=\"onMouseEnter(message)\"\n (mouseleave)=\"onMouseLeave(message)\"\n >\n <div class=\"content\" *transloco=\"let t; read: message.translocoScope\">\n <div class=\"message-type-icon-wrapper\">\n <ng-container *ngIf=\"message.type === 'success'\">\n <gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\n </ng-container>\n <ng-container\n *ngIf=\"message.type === 'error' || message.type === 'warning'\"\n >\n <gds-icon-triangle-exclamation\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </ng-container>\n <ng-container *ngIf=\"message.type === 'information'\">\n <gds-icon-circle-info *nggCoreElement></gds-icon-circle-info>\n </ng-container>\n </div>\n <div class=\"text-content\">\n <div>{{ t(message.titleText) }}</div>\n <div *ngIf=\"message.bodyText\" class=\"text-body-content\">\n {{ t(message.bodyText) }}\n </div>\n </div>\n <button\n class=\"close-icon-button\"\n [ngClass]=\"{ information: message.type === 'information' }\"\n (click)=\"removeMessage(message)\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n >\n <gds-icon-cross-small\n class=\"close-icon\"\n *nggCoreElement\n ></gds-icon-cross-small>\n </button>\n </div>\n </div>\n</output>\n", styles: [":host .messages-container{position:fixed;bottom:1rem;right:1rem;z-index:9999}:host .message{position:relative;font-size:1rem;max-width:22rem;min-width:22rem;min-height:3rem;box-shadow:0 2px 6px #00000026;margin-top:1rem}:host .content{display:flex;height:100%;padding:0;justify-content:space-between}:host .text-content{margin-top:1rem;margin-bottom:1rem;width:100%}:host .text-body-content{padding-top:1.5rem}:host .message-type-icon-wrapper{padding:1rem}:host .close-icon-button{box-sizing:border-box;display:grid;place-content:center;width:2rem;height:2rem;flex-shrink:0;font-size:1rem;line-height:1.5rem;margin:.5rem;background:transparent;border:none;color:inherit;padding:0;cursor:pointer}:host .close-icon-button:hover{color:#333;border-radius:100%}:host .close-icon-button:not(.information):hover{background-color:#fff}:host .close-icon-button.information:hover{background-color:#dedede}:host .success{background-color:#308800;color:#fff}:host .error{background-color:#d81a1a;color:#fff}:host .warning{background-color:#ffc500;color:#333}:host .information{background-color:#333;color:#e9e9e9}\n"] }]
130
+ }], ctorParameters: () => [{ type: ToastMessageService }], propDecorators: { closeButtonAriaLabel: [{
131
+ type: Input
132
+ }] } });
133
+
134
+ var MessageType;
135
+ (function (MessageType) {
136
+ MessageType["Success"] = "success";
137
+ MessageType["Information"] = "information";
138
+ MessageType["Error"] = "error";
139
+ MessageType["Warning"] = "warning";
140
+ })(MessageType || (MessageType = {}));
141
+
142
+ class NggvToastModule {
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
144
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvToastModule, declarations: [ToastComponent], imports: [CommonModule, TranslocoModule, NggCoreWrapperModule], exports: [ToastComponent] }); }
145
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvToastModule, imports: [CommonModule, TranslocoModule, NggCoreWrapperModule] }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvToastModule, decorators: [{
148
+ type: NgModule,
149
+ args: [{
150
+ declarations: [ToastComponent],
151
+ imports: [CommonModule, TranslocoModule, NggCoreWrapperModule],
152
+ exports: [ToastComponent],
153
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
154
+ }]
155
+ }] });
156
+
157
+ /*
158
+ * Public API Surface of toast
159
+ */
160
+
161
+ /**
162
+ * Generated bundle index. Do not edit.
163
+ */
164
+
165
+ export { MessageType, NggvToastModule, ToastComponent, ToastMessageService };
166
+ //# sourceMappingURL=sebgroup-green-angular-src-v-angular-toast.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-toast.mjs","sources":["../../../../libs/angular/src/v-angular/toast/toast-message.service.ts","../../../../libs/angular/src/v-angular/toast/toast.component.ts","../../../../libs/angular/src/v-angular/toast/toast.component.html","../../../../libs/angular/src/v-angular/toast/toast.models.ts","../../../../libs/angular/src/v-angular/toast/toast.module.ts","../../../../libs/angular/src/v-angular/toast/index.ts","../../../../libs/angular/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\n\nimport { MessageType, ToastMessage } from './toast.models'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastMessageService {\n private messages: ToastMessage[] = []\n private messageSubject = new Subject<ToastMessage[]>()\n\n addMessage(\n type: 'success' | 'information' | 'error' | 'warning',\n translocoScope: string,\n titleText: string,\n bodyText?: string,\n timeout?: number,\n ): void\n addMessage(\n type: MessageType,\n translocoScope: string,\n titleText: string,\n bodyText?: string,\n timeout?: number,\n ): void {\n const newMessage: ToastMessage = {\n type,\n translocoScope,\n titleText,\n bodyText,\n timeout,\n }\n\n this.removeMessage(newMessage)\n this.messages.push(newMessage)\n this.messageSubject.next([...this.messages])\n this.setMessageRemoveTimeout(newMessage)\n }\n\n removeMessage(message: ToastMessage): void {\n const index = this.getDuplicateMessageIndex(message.titleText)\n this.removeMessageByIndex(index)\n }\n\n pauseMessageTimeout(message: ToastMessage): void {\n if (message.timeoutStartTime && message.timeout) {\n const remainingTime =\n message.timeoutStartTime - Date.now() + message.timeout * 1000\n\n message.timeout = remainingTime / 1000\n window.clearTimeout(message.timeoutId)\n }\n }\n\n resumeMessageTimeout(message: ToastMessage): void {\n this.setMessageRemoveTimeout(message)\n }\n\n getMessages(): Observable<ToastMessage[]> {\n return this.messageSubject.asObservable()\n }\n\n private getDuplicateMessageIndex(newMessageText: string): number {\n return this.messages.findIndex(\n (message) => message.titleText === newMessageText,\n )\n }\n\n private removeMessageByIndex(id: number): void {\n if (id !== -1) {\n this.messages.splice(id, 1)\n this.messageSubject.next([...this.messages])\n }\n }\n\n private setMessageRemoveTimeout(newMessage: ToastMessage): void {\n if (newMessage.timeout) {\n newMessage.timeoutId = window.setTimeout(\n () => this.removeMessage(newMessage),\n newMessage.timeout * 1000,\n )\n newMessage.timeoutStartTime = Date.now()\n }\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations'\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core'\nimport { Subscription } from 'rxjs'\n\nimport { ToastMessageService } from './toast-message.service'\n// import { faCheck, faExclamationSquare, faInfoSquare, faTimes } from '@fortawesome/pro-solid-svg-icons';\nimport { ToastMessage } from './toast.models'\n\nimport '@sebgroup/green-core/components/icon/icons/cross-small.js'\nimport '@sebgroup/green-core/components/icon/icons/checkmark.js'\nimport '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\nimport '@sebgroup/green-core/components/icon/icons/circle-info.js'\n\n@Component({\n selector: 'nggv-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n animations: [\n trigger('toastAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(100%)' }),\n animate(\n '300ms ease-in',\n style({ opacity: 1, transform: 'translateY(0)' }),\n ),\n ]),\n transition(':leave', [\n animate(\n '300ms ease-out',\n style({ opacity: 0, transform: 'translateY(100%)' }),\n ),\n ]),\n ]),\n ],\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n @Input() closeButtonAriaLabel?: string\n\n private toastMessagesSubscription!: Subscription\n\n messages: ToastMessage[] = []\n\n // faTimes = faTimes;\n // confirmCheck = faCheck;\n // errorIcon = faExclamationSquare;\n // informationIcon = faInfoSquare;\n\n constructor(private toastMessageService: ToastMessageService) {}\n\n ngOnInit() {\n this.toastMessagesSubscription = this.toastMessageService\n .getMessages()\n .subscribe((messages) => (this.messages = messages))\n }\n\n onMouseEnter(message: ToastMessage) {\n this.toastMessageService.pauseMessageTimeout(message)\n }\n\n onMouseLeave(message: ToastMessage) {\n this.toastMessageService.resumeMessageTimeout(message)\n }\n\n removeMessage(message: ToastMessage) {\n this.toastMessageService.removeMessage(message)\n }\n\n ngOnDestroy(): void {\n if (this.toastMessagesSubscription) {\n this.toastMessagesSubscription.unsubscribe()\n }\n }\n}\n","<output class=\"messages-container\" aria-live=\"polite\">\n <div\n class=\"message\"\n *ngFor=\"let message of messages\"\n [ngClass]=\"message.type\"\n @toastAnimation\n (mouseenter)=\"onMouseEnter(message)\"\n (mouseleave)=\"onMouseLeave(message)\"\n >\n <div class=\"content\" *transloco=\"let t; read: message.translocoScope\">\n <div class=\"message-type-icon-wrapper\">\n <ng-container *ngIf=\"message.type === 'success'\">\n <gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\n </ng-container>\n <ng-container\n *ngIf=\"message.type === 'error' || message.type === 'warning'\"\n >\n <gds-icon-triangle-exclamation\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </ng-container>\n <ng-container *ngIf=\"message.type === 'information'\">\n <gds-icon-circle-info *nggCoreElement></gds-icon-circle-info>\n </ng-container>\n </div>\n <div class=\"text-content\">\n <div>{{ t(message.titleText) }}</div>\n <div *ngIf=\"message.bodyText\" class=\"text-body-content\">\n {{ t(message.bodyText) }}\n </div>\n </div>\n <button\n class=\"close-icon-button\"\n [ngClass]=\"{ information: message.type === 'information' }\"\n (click)=\"removeMessage(message)\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n >\n <gds-icon-cross-small\n class=\"close-icon\"\n *nggCoreElement\n ></gds-icon-cross-small>\n </button>\n </div>\n </div>\n</output>\n","export interface ToastMessage {\n type: MessageType\n translocoScope: string\n titleText: string\n bodyText?: string\n timeout?: number\n timeoutId?: number\n timeoutStartTime?: number\n}\n\nexport enum MessageType {\n Success = 'success',\n Information = 'information',\n Error = 'error',\n Warning = 'warning',\n}\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { ToastComponent } from './toast.component'\n\n@NgModule({\n declarations: [ToastComponent],\n imports: [CommonModule, TranslocoModule, NggCoreWrapperModule],\n exports: [ToastComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvToastModule {}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './toast-message.service'\nexport * from './toast.component'\nexport * from './toast.models'\nexport * from './toast.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ToastMessageService"],"mappings":"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"}