@sebgroup/green-angular 4.6.5 → 4.6.7

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 (244) hide show
  1. package/esm2022/lib/accordion/accordion-list-item.component.mjs +3 -3
  2. package/esm2022/lib/accordion/accordion.component.mjs +1 -1
  3. package/esm2022/lib/accordion/accordion.module.mjs +1 -1
  4. package/esm2022/lib/badge/badge.component.mjs +1 -1
  5. package/esm2022/lib/badge/badge.module.mjs +2 -2
  6. package/esm2022/lib/button/button.component.mjs +1 -1
  7. package/esm2022/lib/button/button.module.mjs +2 -2
  8. package/esm2022/lib/cell-table/cell-table-item.component.mjs +1 -1
  9. package/esm2022/lib/cell-table/cell-table.component.mjs +1 -1
  10. package/esm2022/lib/cell-table/cell-table.module.mjs +2 -2
  11. package/esm2022/lib/cell-table/cell-underline.directive.mjs +1 -1
  12. package/esm2022/lib/context-menu/context-menu.component.mjs +2 -2
  13. package/esm2022/lib/context-menu/context-menu.module.mjs +2 -2
  14. package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
  15. package/esm2022/lib/datepicker/datepicker.module.mjs +3 -3
  16. package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
  17. package/esm2022/lib/dropdown/dropdown.module.mjs +5 -5
  18. package/esm2022/lib/green-angular.module.mjs +2 -2
  19. package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +1 -1
  20. package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +2 -2
  21. package/esm2022/lib/modal/modal.component.mjs +4 -4
  22. package/esm2022/lib/modal/modal.module.mjs +4 -4
  23. package/esm2022/lib/pagination/pagination.component.mjs +2 -2
  24. package/esm2022/lib/pagination/pagination.module.mjs +2 -2
  25. package/esm2022/lib/progress-circle/progress-circle.component.mjs +1 -1
  26. package/esm2022/lib/progress-circle/progress-circle.module.mjs +2 -2
  27. package/esm2022/lib/segmented-control/segmented-control.component.mjs +2 -2
  28. package/esm2022/lib/segmented-control/segmented-control.module.mjs +3 -3
  29. package/esm2022/lib/shared/core-element/core-element.directive.mjs +2 -2
  30. package/esm2022/lib/shared/core-element/core-element.module.mjs +2 -2
  31. package/esm2022/lib/shared/on-scroll.directive.mjs +2 -2
  32. package/esm2022/lib/shared/shared.module.mjs +1 -1
  33. package/esm2022/lib/slider/slider.component.mjs +1 -1
  34. package/esm2022/lib/sortable-list/sortable-list.component.mjs +2 -2
  35. package/esm2022/lib/sortable-list/sortable-list.module.mjs +2 -2
  36. package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +3 -3
  37. package/esm2022/src/lib/accordion/accordion.component.mjs +1 -1
  38. package/esm2022/src/lib/accordion/accordion.module.mjs +1 -1
  39. package/esm2022/src/lib/badge/badge.component.mjs +1 -1
  40. package/esm2022/src/lib/badge/badge.module.mjs +2 -2
  41. package/esm2022/src/lib/button/button.component.mjs +1 -1
  42. package/esm2022/src/lib/button/button.module.mjs +2 -2
  43. package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +1 -1
  44. package/esm2022/src/lib/cell-table/cell-table.component.mjs +1 -1
  45. package/esm2022/src/lib/cell-table/cell-table.module.mjs +2 -2
  46. package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +1 -1
  47. package/esm2022/src/lib/context-menu/context-menu.component.mjs +2 -2
  48. package/esm2022/src/lib/context-menu/context-menu.module.mjs +2 -2
  49. package/esm2022/src/lib/datepicker/datepicker.component.mjs +3 -3
  50. package/esm2022/src/lib/datepicker/datepicker.module.mjs +3 -3
  51. package/esm2022/src/lib/dropdown/dropdown.component.mjs +3 -3
  52. package/esm2022/src/lib/dropdown/dropdown.module.mjs +5 -5
  53. package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +1 -1
  54. package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +2 -2
  55. package/esm2022/src/lib/modal/modal.component.mjs +4 -4
  56. package/esm2022/src/lib/modal/modal.module.mjs +4 -4
  57. package/esm2022/src/lib/pagination/pagination.component.mjs +2 -2
  58. package/esm2022/src/lib/pagination/pagination.module.mjs +2 -2
  59. package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +1 -1
  60. package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +2 -2
  61. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +2 -2
  62. package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +3 -3
  63. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +2 -2
  64. package/esm2022/src/lib/shared/core-element/core-element.module.mjs +2 -2
  65. package/esm2022/src/lib/shared/on-scroll.directive.mjs +2 -2
  66. package/esm2022/src/lib/shared/shared.module.mjs +1 -1
  67. package/esm2022/src/lib/slider/slider.component.mjs +1 -1
  68. package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +2 -2
  69. package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +2 -2
  70. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +3 -3
  71. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +1 -1
  72. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +3 -3
  73. package/esm2022/src/v-angular/button/button.component.mjs +2 -2
  74. package/esm2022/src/v-angular/button/button.module.mjs +3 -3
  75. package/esm2022/src/v-angular/card/card.module.mjs +2 -2
  76. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +2 -2
  77. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +4 -4
  78. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +3 -3
  79. package/esm2022/src/v-angular/core/core.utils.mjs +1 -1
  80. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +5 -5
  81. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +5 -5
  82. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +5 -5
  83. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
  84. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +3 -3
  85. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +5 -5
  86. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -2
  87. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
  88. package/esm2022/src/v-angular/external-link/external-link.module.mjs +2 -2
  89. package/esm2022/src/v-angular/i18n/i18n.module.mjs +9 -3
  90. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +2 -2
  91. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +1 -1
  92. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +3 -3
  93. package/esm2022/src/v-angular/input/input.component.mjs +5 -4
  94. package/esm2022/src/v-angular/input/input.module.mjs +9 -5
  95. package/esm2022/src/v-angular/input-mask/config.mjs +1 -1
  96. package/esm2022/src/v-angular/input-mask/constants.mjs +1 -1
  97. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +1 -1
  98. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +1 -1
  99. package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +1 -1
  100. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +2 -2
  101. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +1 -1
  102. package/esm2022/src/v-angular/modal/modal.module.mjs +3 -3
  103. package/esm2022/src/v-angular/modal/modal.types.mjs +1 -1
  104. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +4 -4
  105. package/esm2022/src/v-angular/radio/radio.component.mjs +4 -4
  106. package/esm2022/src/v-angular/radio/radio.module.mjs +3 -3
  107. package/esm2022/src/v-angular/slug/slug.module.mjs +2 -2
  108. package/esm2022/src/v-angular/slug/slug.pipe.mjs +1 -1
  109. package/esm2022/src/v-angular/textarea/textarea.component.mjs +5 -4
  110. package/esm2022/src/v-angular/textarea/textarea.module.mjs +7 -6
  111. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +1 -1
  112. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +3 -3
  113. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +1 -1
  114. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +3 -3
  115. package/esm2022/v-angular/button/button.component.mjs +2 -2
  116. package/esm2022/v-angular/button/button.module.mjs +3 -3
  117. package/esm2022/v-angular/card/card.module.mjs +2 -2
  118. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +2 -2
  119. package/esm2022/v-angular/checkbox/checkbox.component.mjs +4 -4
  120. package/esm2022/v-angular/checkbox/checkbox.module.mjs +3 -3
  121. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +5 -5
  122. package/esm2022/v-angular/dropdown/dropdown.component.mjs +5 -5
  123. package/esm2022/v-angular/dropdown/dropdown.module.mjs +5 -5
  124. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
  125. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +3 -3
  126. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +5 -5
  127. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -2
  128. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
  129. package/esm2022/v-angular/i18n/i18n.module.mjs +9 -3
  130. package/esm2022/v-angular/i18n/i18n.test.module.mjs +2 -2
  131. package/esm2022/v-angular/info-circle/info-circle.component.mjs +1 -1
  132. package/esm2022/v-angular/info-circle/info-circle.module.mjs +3 -3
  133. package/esm2022/v-angular/input/input.component.mjs +5 -4
  134. package/esm2022/v-angular/input/input.module.mjs +9 -5
  135. package/esm2022/v-angular/input-mask/config.mjs +1 -1
  136. package/esm2022/v-angular/input-mask/constants.mjs +1 -1
  137. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +1 -1
  138. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +1 -1
  139. package/esm2022/v-angular/input-mask/input-mask.types.mjs +1 -1
  140. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +2 -2
  141. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +1 -1
  142. package/esm2022/v-angular/modal/modal.module.mjs +3 -3
  143. package/esm2022/v-angular/modal/modal.types.mjs +1 -1
  144. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +4 -4
  145. package/esm2022/v-angular/radio/radio.component.mjs +4 -4
  146. package/esm2022/v-angular/radio/radio.module.mjs +3 -3
  147. package/esm2022/v-angular/textarea/textarea.component.mjs +5 -4
  148. package/esm2022/v-angular/textarea/textarea.module.mjs +7 -6
  149. package/esm2022/v-angular/tooltip/tooltip.module.mjs +1 -1
  150. package/esm2022/v-angular/v-angular.module.mjs +3 -3
  151. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +2 -2
  152. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  153. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  154. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  155. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  156. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  157. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +1 -1
  158. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  159. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +10 -10
  160. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  161. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  162. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +12 -12
  163. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  164. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  165. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  166. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  167. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  168. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  169. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +2 -2
  170. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  171. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +1 -1
  172. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  173. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  174. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +1 -1
  175. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  176. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  177. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  178. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +3 -3
  179. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  180. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  181. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +100 -100
  182. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  183. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  184. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +8 -2
  185. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  186. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  187. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  188. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +10 -5
  189. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  190. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +5 -5
  191. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  192. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +3 -3
  193. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  194. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  195. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +8 -6
  196. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  197. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  198. package/fesm2022/sebgroup-green-angular-v-angular.mjs +125 -114
  199. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  200. package/fesm2022/sebgroup-green-angular.mjs +287 -287
  201. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  202. package/lib/cell-table/cell-table-item.component.d.ts +1 -1
  203. package/lib/cell-table/cell-underline.directive.d.ts +1 -1
  204. package/lib/datepicker/datepicker.component.d.ts +1 -1
  205. package/lib/dropdown/dropdown.component.d.ts +1 -1
  206. package/lib/modal/modal.component.d.ts +2 -2
  207. package/lib/sortable-list/sortable-list.component.d.ts +1 -1
  208. package/package.json +3 -3
  209. package/src/lib/cell-table/cell-table-item.component.d.ts +1 -1
  210. package/src/lib/cell-table/cell-underline.directive.d.ts +1 -1
  211. package/src/lib/datepicker/datepicker.component.d.ts +1 -1
  212. package/src/lib/dropdown/dropdown.component.d.ts +1 -1
  213. package/src/lib/modal/modal.component.d.ts +2 -2
  214. package/src/lib/sortable-list/sortable-list.component.d.ts +1 -1
  215. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +1 -1
  216. package/src/v-angular/button/button.component.d.ts +1 -1
  217. package/src/v-angular/checkbox/checkbox.component.d.ts +1 -1
  218. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
  219. package/src/v-angular/dropdown/dropdown.component.d.ts +1 -1
  220. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +2 -2
  221. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +2 -2
  222. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +1 -1
  223. package/src/v-angular/i18n/i18n.module.d.ts +2 -2
  224. package/src/v-angular/i18n/i18n.test.module.d.ts +1 -1
  225. package/src/v-angular/input/input.component.d.ts +1 -1
  226. package/src/v-angular/input/input.module.d.ts +2 -1
  227. package/src/v-angular/radio/radio.component.d.ts +1 -1
  228. package/src/v-angular/textarea/textarea.component.d.ts +1 -1
  229. package/src/v-angular/textarea/textarea.module.d.ts +2 -1
  230. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +1 -1
  231. package/v-angular/button/button.component.d.ts +1 -1
  232. package/v-angular/checkbox/checkbox.component.d.ts +1 -1
  233. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
  234. package/v-angular/dropdown/dropdown.component.d.ts +1 -1
  235. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +2 -2
  236. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +2 -2
  237. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +1 -1
  238. package/v-angular/i18n/i18n.module.d.ts +2 -2
  239. package/v-angular/i18n/i18n.test.module.d.ts +1 -1
  240. package/v-angular/input/input.component.d.ts +1 -1
  241. package/v-angular/input/input.module.d.ts +2 -1
  242. package/v-angular/radio/radio.component.d.ts +1 -1
  243. package/v-angular/textarea/textarea.component.d.ts +1 -1
  244. package/v-angular/textarea/textarea.module.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-input-mask.mjs","sources":["../../../../libs/angular/src/v-angular/input-mask/input-mask-format.pipe.ts","../../../../libs/angular/src/v-angular/input-mask/config.ts","../../../../libs/angular/src/v-angular/input-mask/input-mask.directive.ts","../../../../libs/angular/src/v-angular/input-mask/input-mask.module.ts","../../../../libs/angular/src/v-angular/input-mask/constants.ts","../../../../libs/angular/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core'\n\nimport type Inputmask from 'inputmask'\nimport _Inputmask from 'inputmask'\n\nimport type { InputmaskOptions } from './input-mask.types'\n\nconst InputmaskStatic =\n (_Inputmask as unknown as { default?: Inputmask.Static }).default ||\n _Inputmask\n\n@Pipe({\n name: 'nggvInputMaskFormat',\n})\nexport class InputMaskFormatPipe implements PipeTransform {\n transform<T = any>(value: any, options: InputmaskOptions<T>): any {\n if (!value) return value\n return InputmaskStatic.format(value, options)\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport class InputMaskConfig {\n isAsync = false;\n inputSelector = 'input';\n}\n\nexport const INPUT_MASK_CONFIG = new InjectionToken<InputMaskConfig>(\n 'InputMaskConfig'\n);\n","import { isPlatformServer } from '@angular/common'\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n PLATFORM_ID,\n Renderer2,\n Self,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NgControl,\n Validator,\n} from '@angular/forms'\n\nimport type Inputmask from 'inputmask'\nimport _Inputmask from 'inputmask'\n\nimport { INPUT_MASK_CONFIG, InputMaskConfig } from './config'\nimport type { InputmaskOptions } from './input-mask.types'\n\nconst InputmaskConstructor =\n (_Inputmask as unknown as { default?: Inputmask.Static }).default ||\n _Inputmask\n\n@Directive({\n selector: '[nggvInputMask]',\n})\nexport class NgvInputMaskDirective<T = any>\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, Validator\n{\n /** Input settings of directive */\n @Input() nggvInputMask: InputmaskOptions<T> = {}\n\n inputMaskPlugin: Inputmask.Instance | undefined\n nativeInputElement: HTMLInputElement | undefined\n defaultInputMaskConfig = new InputMaskConfig()\n\n private mutationObserver: MutationObserver | undefined\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n @Inject(INPUT_MASK_CONFIG) config: InputMaskConfig,\n @Inject(PLATFORM_ID) private platformId: string,\n private elementRef: ElementRef<HTMLInputElement | any>,\n private renderer: Renderer2,\n private ngZone: NgZone,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this\n }\n this.setNativeInputElement(config)\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput = (_: any) => {\n // Empty method\n }\n\n @HostListener('blur', ['$event.target.value'])\n onTouched = (_: any) => {\n // Empty method\n }\n\n @HostListener('keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n // Trigger \"onInput\" when pressing delete or backspace, when input is focused\n if (['Delete', 'Backspace'].includes(event.key)) {\n this.elementRef.nativeElement.dispatchEvent(\n new Event('input', {\n bubbles: true,\n cancelable: true,\n }),\n )\n }\n }\n\n ngOnInit() {\n if (this.control) {\n this.control.setValidators(\n this.control.validator\n ? [this.control.validator, this.validate]\n : [this.validate],\n )\n\n this.control.updateValueAndValidity()\n }\n }\n\n ngOnDestroy(): void {\n this.inputMaskPlugin?.remove()\n this.mutationObserver?.disconnect()\n }\n\n initInputMask() {\n if (\n isPlatformServer(this.platformId) ||\n !this.nativeInputElement ||\n !Object.keys(this.nggvInputMask).length\n ) {\n return\n }\n\n this.inputMaskPlugin = this.ngZone.runOutsideAngular(() =>\n new InputmaskConstructor(this.inputMaskOptions).mask(\n this.nativeInputElement as HTMLInputElement,\n ),\n )\n\n if (this.control) {\n setTimeout(() => {\n this.control!.updateValueAndValidity()\n })\n }\n }\n\n ngAfterViewInit() {\n this.initInputMask()\n }\n\n get inputMaskOptions(): Inputmask.Options {\n const { parser, ...options } = this.nggvInputMask\n return options\n }\n\n writeValue(value: string): void {\n if (this.nativeInputElement) {\n this.renderer.setProperty(this.nativeInputElement, 'value', value ?? '')\n }\n }\n\n registerOnChange(fn: (_: T | null) => void): void {\n // Use injected parser from settings to modify value\n // of users desire\n this.onInput = (value) => {\n const parser = this.nggvInputMask?.parser\n const newValue = parser && value ? parser(value) : value\n fn(newValue)\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n validate = (control: AbstractControl): { [key: string]: any } | null =>\n !control.value || !this.inputMaskPlugin || this.inputMaskPlugin.isValid()\n ? null\n : { invalidformat: true }\n\n setDisabledState(disabled: boolean): void {\n if (this.nativeInputElement) {\n this.renderer.setProperty(this.nativeInputElement, 'disabled', disabled)\n }\n }\n\n private get control(): AbstractControl | null | undefined {\n return this.ngControl?.control\n }\n\n private setNativeInputElement(config: InputMaskConfig) {\n if (this.elementRef.nativeElement.tagName === 'INPUT') {\n this.nativeInputElement = this.elementRef.nativeElement\n } else {\n this.defaultInputMaskConfig = {\n ...this.defaultInputMaskConfig,\n ...config,\n }\n if (this.defaultInputMaskConfig.isAsync) {\n // Create an observer instance linked to the callback function\n this.mutationObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const nativeInputElement =\n this.elementRef.nativeElement.querySelector(\n this.defaultInputMaskConfig.inputSelector,\n )\n if (nativeInputElement) {\n this.nativeInputElement = nativeInputElement\n this.mutationObserver?.disconnect()\n this.initInputMask()\n }\n }\n }\n })\n\n // Start observing the target node for configured mutations\n this.mutationObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n subtree: true,\n })\n } else {\n this.nativeInputElement = this.elementRef.nativeElement.querySelector(\n this.defaultInputMaskConfig.inputSelector,\n )\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\n\nimport { INPUT_MASK_CONFIG, InputMaskConfig } from './config'\nimport { InputMaskFormatPipe } from './input-mask-format.pipe'\nimport { NgvInputMaskDirective } from './input-mask.directive'\n\n@NgModule({\n declarations: [NgvInputMaskDirective, InputMaskFormatPipe],\n exports: [NgvInputMaskDirective, InputMaskFormatPipe],\n providers: [\n {\n provide: INPUT_MASK_CONFIG,\n useClass: InputMaskConfig,\n },\n ],\n})\nexport class NgvInputMaskModule {\n static forRoot(\n config?: Partial<InputMaskConfig>,\n ): ModuleWithProviders<NgvInputMaskModule> {\n return {\n ngModule: NgvInputMaskModule,\n providers: [{ provide: INPUT_MASK_CONFIG, useValue: config }],\n }\n }\n}\n","import { InputmaskOptions } from './input-mask.types';\n\nexport const createMask = <T>(\n options: string | InputmaskOptions<T>\n): InputmaskOptions<T> =>\n typeof options === 'string' ? { mask: options } : options;\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-input-mask.mjs","sources":["../../../../libs/angular/src/v-angular/input-mask/input-mask-format.pipe.ts","../../../../libs/angular/src/v-angular/input-mask/config.ts","../../../../libs/angular/src/v-angular/input-mask/input-mask.directive.ts","../../../../libs/angular/src/v-angular/input-mask/input-mask.module.ts","../../../../libs/angular/src/v-angular/input-mask/constants.ts","../../../../libs/angular/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core'\nimport _Inputmask from 'inputmask'\n\nimport type Inputmask from 'inputmask'\n\nimport type { InputmaskOptions } from './input-mask.types'\n\nconst InputmaskStatic =\n (_Inputmask as unknown as { default?: Inputmask.Static }).default ||\n _Inputmask\n\n@Pipe({\n name: 'nggvInputMaskFormat',\n})\nexport class InputMaskFormatPipe implements PipeTransform {\n transform<T = any>(value: any, options: InputmaskOptions<T>): any {\n if (!value) return value\n return InputmaskStatic.format(value, options)\n }\n}\n","import { InjectionToken } from '@angular/core'\n\nexport class InputMaskConfig {\n isAsync = false\n inputSelector = 'input'\n}\n\nexport const INPUT_MASK_CONFIG = new InjectionToken<InputMaskConfig>(\n 'InputMaskConfig',\n)\n","import { isPlatformServer } from '@angular/common'\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n PLATFORM_ID,\n Renderer2,\n Self,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NgControl,\n Validator,\n} from '@angular/forms'\nimport _Inputmask from 'inputmask'\n\nimport type Inputmask from 'inputmask'\n\nimport { INPUT_MASK_CONFIG, InputMaskConfig } from './config'\n\nimport type { InputmaskOptions } from './input-mask.types'\n\nconst InputmaskConstructor =\n (_Inputmask as unknown as { default?: Inputmask.Static }).default ||\n _Inputmask\n\n@Directive({\n selector: '[nggvInputMask]',\n})\nexport class NgvInputMaskDirective<T = any>\n implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, Validator\n{\n /** Input settings of directive */\n @Input() nggvInputMask: InputmaskOptions<T> = {}\n\n inputMaskPlugin: Inputmask.Instance | undefined\n nativeInputElement: HTMLInputElement | undefined\n defaultInputMaskConfig = new InputMaskConfig()\n\n private mutationObserver: MutationObserver | undefined\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n @Inject(INPUT_MASK_CONFIG) config: InputMaskConfig,\n @Inject(PLATFORM_ID) private platformId: string,\n private elementRef: ElementRef<HTMLInputElement | any>,\n private renderer: Renderer2,\n private ngZone: NgZone,\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this\n }\n this.setNativeInputElement(config)\n }\n\n @HostListener('input', ['$event.target.value'])\n onInput = (_: any) => {\n // Empty method\n }\n\n @HostListener('blur', ['$event.target.value'])\n onTouched = (_: any) => {\n // Empty method\n }\n\n @HostListener('keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n // Trigger \"onInput\" when pressing delete or backspace, when input is focused\n if (['Delete', 'Backspace'].includes(event.key)) {\n this.elementRef.nativeElement.dispatchEvent(\n new Event('input', {\n bubbles: true,\n cancelable: true,\n }),\n )\n }\n }\n\n ngOnInit() {\n if (this.control) {\n this.control.setValidators(\n this.control.validator\n ? [this.control.validator, this.validate]\n : [this.validate],\n )\n\n this.control.updateValueAndValidity()\n }\n }\n\n ngOnDestroy(): void {\n this.inputMaskPlugin?.remove()\n this.mutationObserver?.disconnect()\n }\n\n initInputMask() {\n if (\n isPlatformServer(this.platformId) ||\n !this.nativeInputElement ||\n !Object.keys(this.nggvInputMask).length\n ) {\n return\n }\n\n this.inputMaskPlugin = this.ngZone.runOutsideAngular(() =>\n new InputmaskConstructor(this.inputMaskOptions).mask(\n this.nativeInputElement as HTMLInputElement,\n ),\n )\n\n if (this.control) {\n setTimeout(() => {\n this.control!.updateValueAndValidity()\n })\n }\n }\n\n ngAfterViewInit() {\n this.initInputMask()\n }\n\n get inputMaskOptions(): Inputmask.Options {\n const { parser, ...options } = this.nggvInputMask\n return options\n }\n\n writeValue(value: string): void {\n if (this.nativeInputElement) {\n this.renderer.setProperty(this.nativeInputElement, 'value', value ?? '')\n }\n }\n\n registerOnChange(fn: (_: T | null) => void): void {\n // Use injected parser from settings to modify value\n // of users desire\n this.onInput = (value) => {\n const parser = this.nggvInputMask?.parser\n const newValue = parser && value ? parser(value) : value\n fn(newValue)\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n validate = (control: AbstractControl): { [key: string]: any } | null =>\n !control.value || !this.inputMaskPlugin || this.inputMaskPlugin.isValid()\n ? null\n : { invalidformat: true }\n\n setDisabledState(disabled: boolean): void {\n if (this.nativeInputElement) {\n this.renderer.setProperty(this.nativeInputElement, 'disabled', disabled)\n }\n }\n\n private get control(): AbstractControl | null | undefined {\n return this.ngControl?.control\n }\n\n private setNativeInputElement(config: InputMaskConfig) {\n if (this.elementRef.nativeElement.tagName === 'INPUT') {\n this.nativeInputElement = this.elementRef.nativeElement\n } else {\n this.defaultInputMaskConfig = {\n ...this.defaultInputMaskConfig,\n ...config,\n }\n if (this.defaultInputMaskConfig.isAsync) {\n // Create an observer instance linked to the callback function\n this.mutationObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n const nativeInputElement =\n this.elementRef.nativeElement.querySelector(\n this.defaultInputMaskConfig.inputSelector,\n )\n if (nativeInputElement) {\n this.nativeInputElement = nativeInputElement\n this.mutationObserver?.disconnect()\n this.initInputMask()\n }\n }\n }\n })\n\n // Start observing the target node for configured mutations\n this.mutationObserver.observe(this.elementRef.nativeElement, {\n childList: true,\n subtree: true,\n })\n } else {\n this.nativeInputElement = this.elementRef.nativeElement.querySelector(\n this.defaultInputMaskConfig.inputSelector,\n )\n }\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\n\nimport { INPUT_MASK_CONFIG, InputMaskConfig } from './config'\nimport { InputMaskFormatPipe } from './input-mask-format.pipe'\nimport { NgvInputMaskDirective } from './input-mask.directive'\n\n@NgModule({\n declarations: [NgvInputMaskDirective, InputMaskFormatPipe],\n exports: [NgvInputMaskDirective, InputMaskFormatPipe],\n providers: [\n {\n provide: INPUT_MASK_CONFIG,\n useClass: InputMaskConfig,\n },\n ],\n})\nexport class NgvInputMaskModule {\n static forRoot(\n config?: Partial<InputMaskConfig>,\n ): ModuleWithProviders<NgvInputMaskModule> {\n return {\n ngModule: NgvInputMaskModule,\n providers: [{ provide: INPUT_MASK_CONFIG, useValue: config }],\n }\n }\n}\n","import { InputmaskOptions } from './input-mask.types'\n\nexport const createMask = <T>(\n options: string | InputmaskOptions<T>,\n): InputmaskOptions<T> =>\n typeof options === 'string' ? { mask: options } : options\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,15 +2,17 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Self, Optional, Inject, HostBinding, Input, Output, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/forms';
4
4
  import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import * as i3 from '@jsverse/transloco';
6
+ import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
5
7
  import { Subject } from 'rxjs';
6
8
  import { takeUntil, debounceTime } from 'rxjs/operators';
7
- import * as i3 from '@ngneat/transloco';
8
- import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
9
9
  import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
10
10
  import * as i2 from '@angular/common';
11
11
  import { CommonModule } from '@angular/common';
12
12
  import * as i4 from '@sebgroup/green-angular/src/v-angular/input-mask';
13
13
  import { NgvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask';
14
+ import * as i5 from '@sebgroup/green-angular/src/v-angular/character-countdown';
15
+ import { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';
14
16
  import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
15
17
 
16
18
  /**
@@ -163,7 +165,7 @@ class NgvInputComponent extends NgvBaseControlValueAccessorComponent {
163
165
  this.inputChange$.next(this.state);
164
166
  }
165
167
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvInputComponent, selector: "nggv-input", inputs: { thook: "thook", type: "type", placeholder: "placeholder", autocomplete: "autocomplete", readonly: "readonly", email: "email", min: "min", max: "max", step: "step", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", showCharacterCountdown: "showCharacterCountdown", pattern: "pattern", debounceTime: "debounceTime", badgeText: "badgeText", inputMask: "inputMask" }, outputs: { nggvInput: "nggvInput" }, host: { properties: { "class": "this.class", "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 + '-input'\"\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=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\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 <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\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 />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\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.id]=\"id + '-message'\"\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 </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\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</ng-container>\n", styles: [":host.gds-form-item{display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host.gds-form-item:not(:last-child){margin-bottom:1.5rem}:host.gds-form-item .gds-form-item__header{display:flex}:host.gds-form-item .gds-form-item__header .form-info{font-weight:400}:host.gds-form-item .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host.gds-form-item .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host.gds-form-item .gds-form-item__labels .form-info{margin-bottom:0}:host.gds-form-item .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host.gds-form-item .gds-form-item__labels>*{width:100%;display:block}:host.gds-form-item .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host.gds-form-item .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host.gds-form-item .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host.gds-form-item .gds-form-item__backdrop{transition:none}}:host.gds-form-item:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host.gds-form-item .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:1rem}:host.gds-form-item .gds-form-item__footer:not(:empty)>span{font-weight:500}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{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);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][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 input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%}:host .gds-input-wrapper{display:flex;flex-direction:column;position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}: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{color:var(--intent-danger-background, #9f000a)}\n"], dependencies: [{ 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", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NgvInputMaskDirective, selector: "[nggvInputMask]", inputs: ["nggvInputMask"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.InputMaskFormatPipe, name: "nggvInputMaskFormat" }] }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvInputComponent, selector: "nggv-input", inputs: { thook: "thook", type: "type", placeholder: "placeholder", autocomplete: "autocomplete", readonly: "readonly", email: "email", min: "min", max: "max", step: "step", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", showCharacterCountdown: "showCharacterCountdown", pattern: "pattern", debounceTime: "debounceTime", badgeText: "badgeText", inputMask: "inputMask" }, outputs: { nggvInput: "nggvInput" }, host: { properties: { "class": "this.class", "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 + '-input'\"\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=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\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 <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\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 />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\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.id]=\"id + '-message'\"\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 </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\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</ng-container>\n", styles: [":host.gds-form-item{display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0}:host.gds-form-item:not(:last-child){margin-bottom:1.5rem}:host.gds-form-item .gds-form-item__header{display:flex}:host.gds-form-item .gds-form-item__header .form-info{font-weight:400}:host.gds-form-item .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host.gds-form-item .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host.gds-form-item .gds-form-item__labels .form-info{margin-bottom:0}:host.gds-form-item .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host.gds-form-item .gds-form-item__labels>*{width:100%;display:block}:host.gds-form-item .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host.gds-form-item .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host.gds-form-item .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host.gds-form-item .gds-form-item__backdrop{transition:none}}:host.gds-form-item:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host.gds-form-item .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:1rem}:host.gds-form-item .gds-form-item__footer:not(:empty)>span{font-weight:500}:host .hide-if-empty:empty{display:none}:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{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);background-color:var(--sg-form-control-bg);color:var(--sg-text-primary);min-height:2.75rem;display:flex;align-items:center;justify-content:center}:host input:not([type]):focus:not(:focus-visible),:host input[type=date]:focus:not(:focus-visible),:host input[type=datetime]:focus:not(:focus-visible),:host input[type=datetime-local]:focus:not(:focus-visible),:host input[type=email]:focus:not(:focus-visible),:host input[type=month]:focus:not(:focus-visible),:host input[type=number]:focus:not(:focus-visible),:host input[type=password]:focus:not(:focus-visible),:host input[type=search]:focus:not(:focus-visible),:host input[type=tel]:focus:not(:focus-visible),:host input[type=text]:focus:not(:focus-visible),:host input[type=time]:focus:not(:focus-visible),:host input[type=url]:focus:not(:focus-visible),:host input[type=week]:focus:not(:focus-visible){box-shadow:none;outline:0}:host input:not([type]):focus,:host input:not([type]):focus-visible,:host input[type=date]:focus,:host input[type=date]:focus-visible,:host input[type=datetime]:focus,:host input[type=datetime]:focus-visible,:host input[type=datetime-local]:focus,:host input[type=datetime-local]:focus-visible,:host input[type=email]:focus,:host input[type=email]:focus-visible,:host input[type=month]:focus,:host input[type=month]:focus-visible,:host input[type=number]:focus,:host input[type=number]:focus-visible,:host input[type=password]:focus,:host input[type=password]:focus-visible,:host input[type=search]:focus,:host input[type=search]:focus-visible,:host input[type=tel]:focus,:host input[type=tel]:focus-visible,:host input[type=text]:focus,:host input[type=text]:focus-visible,:host input[type=time]:focus,:host input[type=time]:focus-visible,:host input[type=url]:focus,:host input[type=url]:focus-visible,:host input[type=week]:focus,:host input[type=week]:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host input:not([type]).small,:host input[type=date].small,:host input[type=datetime].small,:host input[type=datetime-local].small,:host input[type=email].small,:host input[type=month].small,:host input[type=number].small,:host input[type=password].small,:host input[type=search].small,:host input[type=tel].small,:host input[type=text].small,:host input[type=time].small,:host input[type=url].small,:host input[type=week].small{min-height:2rem;padding:.25rem .75rem;line-height:1rem}@media screen and (-ms-high-contrast: active){:host input:not([type]),:host input[type=date],:host input[type=datetime],:host input[type=datetime-local],:host input[type=email],:host input[type=month],:host input[type=number],:host input[type=password],:host input[type=search],:host input[type=tel],:host input[type=text],:host input[type=time],:host input[type=url],:host input[type=week]{border:2px solid currentcolor}}:host input:not([type]):disabled,:host input:not([type]).disabled,:host input:not([type])[aria-disabled=true],:host input[type=date]:disabled,:host input[type=date].disabled,:host input[type=date][aria-disabled=true],:host input[type=datetime]:disabled,:host input[type=datetime].disabled,:host input[type=datetime][aria-disabled=true],:host input[type=datetime-local]:disabled,:host input[type=datetime-local].disabled,:host input[type=datetime-local][aria-disabled=true],:host input[type=email]:disabled,:host input[type=email].disabled,:host input[type=email][aria-disabled=true],:host input[type=month]:disabled,:host input[type=month].disabled,:host input[type=month][aria-disabled=true],:host input[type=number]:disabled,:host input[type=number].disabled,:host input[type=number][aria-disabled=true],:host input[type=password]:disabled,:host input[type=password].disabled,:host input[type=password][aria-disabled=true],:host input[type=search]:disabled,:host input[type=search].disabled,:host input[type=search][aria-disabled=true],:host input[type=tel]:disabled,:host input[type=tel].disabled,:host input[type=tel][aria-disabled=true],:host input[type=text]:disabled,:host input[type=text].disabled,:host input[type=text][aria-disabled=true],:host input[type=time]:disabled,:host input[type=time].disabled,:host input[type=time][aria-disabled=true],:host input[type=url]:disabled,:host input[type=url].disabled,:host input[type=url][aria-disabled=true],:host input[type=week]:disabled,:host input[type=week].disabled,:host input[type=week][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 input:not([type]):disabled::placeholder,:host input:not([type]).disabled::placeholder,:host input:not([type])[aria-disabled=true]::placeholder,:host input[type=date]:disabled::placeholder,:host input[type=date].disabled::placeholder,:host input[type=date][aria-disabled=true]::placeholder,:host input[type=datetime]:disabled::placeholder,:host input[type=datetime].disabled::placeholder,:host input[type=datetime][aria-disabled=true]::placeholder,:host input[type=datetime-local]:disabled::placeholder,:host input[type=datetime-local].disabled::placeholder,:host input[type=datetime-local][aria-disabled=true]::placeholder,:host input[type=email]:disabled::placeholder,:host input[type=email].disabled::placeholder,:host input[type=email][aria-disabled=true]::placeholder,:host input[type=month]:disabled::placeholder,:host input[type=month].disabled::placeholder,:host input[type=month][aria-disabled=true]::placeholder,:host input[type=number]:disabled::placeholder,:host input[type=number].disabled::placeholder,:host input[type=number][aria-disabled=true]::placeholder,:host input[type=password]:disabled::placeholder,:host input[type=password].disabled::placeholder,:host input[type=password][aria-disabled=true]::placeholder,:host input[type=search]:disabled::placeholder,:host input[type=search].disabled::placeholder,:host input[type=search][aria-disabled=true]::placeholder,:host input[type=tel]:disabled::placeholder,:host input[type=tel].disabled::placeholder,:host input[type=tel][aria-disabled=true]::placeholder,:host input[type=text]:disabled::placeholder,:host input[type=text].disabled::placeholder,:host input[type=text][aria-disabled=true]::placeholder,:host input[type=time]:disabled::placeholder,:host input[type=time].disabled::placeholder,:host input[type=time][aria-disabled=true]::placeholder,:host input[type=url]:disabled::placeholder,:host input[type=url].disabled::placeholder,:host input[type=url][aria-disabled=true]::placeholder,:host input[type=week]:disabled::placeholder,:host input[type=week].disabled::placeholder,:host input[type=week][aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host input:not([type]):hover,:host input[type=date]:hover,:host input[type=datetime]:hover,:host input[type=datetime-local]:hover,:host input[type=email]:hover,:host input[type=month]:hover,:host input[type=number]:hover,:host input[type=password]:hover,:host input[type=search]:hover,:host input[type=tel]:hover,:host input[type=text]:hover,:host input[type=time]:hover,:host input[type=url]:hover,:host input[type=week]:hover{background-color:var(--gds-ref-pallet-base100)}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-outer-spin-button,:host input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host input{width:100%}:host .gds-input-wrapper{display:flex;flex-direction:column;position:relative;transition:all .2s ease-in-out,outline-offset 0s,outline-width 0s}:host .gds-input-wrapper:before{background:transparent;border-radius:0 0 4px 4px;clip-path:inset(4px 0 0 0);content:\"\";display:block;height:4px;position:absolute;transition:.3s ease-in-out;width:100%}:host .gds-input-wrapper:before{bottom:0}.is-invalid :host .gds-input-wrapper{color:var(--intent-danger-background);opacity:1}.is-invalid :host .gds-input-wrapper:before{background:var(--intent-danger-background);clip-path:inset(1px 0 0 0)}:host label:is(label),:host .label:is(label),:host legend:is(label){margin-bottom:0}:host label.form-control,:host .label.form-control,:host legend.form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label.form-control:focus:not(:focus-visible),:host .label.form-control:focus:not(:focus-visible),:host legend.form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:focus,:host label.form-control:focus-within,:host .label.form-control:focus,:host .label.form-control:focus-within,:host legend.form-control:focus,:host legend.form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.form-control),:host .label:not(.form-control),:host legend:not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label+input,:host label+textarea,fieldset :host label+div,:host label+button,:host label+.group-stepper,:host label+.stepper-wrapper,:host label+.group,:host .label+input,:host .label+textarea,fieldset :host .label+div,:host .label+button,:host .label+.group-stepper,:host .label+.stepper-wrapper,:host .label+.group,:host legend+input,:host legend+textarea,fieldset :host legend+div,:host legend+button,:host legend+.group-stepper,:host legend+.stepper-wrapper,:host legend+.group{margin-top:.5rem}:host label+.form-info,:host .label+.form-info,:host legend+.form-info{margin-bottom:.5rem}: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{color:var(--intent-danger-background, #9f000a)}\n"], dependencies: [{ 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.NgvInputMaskDirective, selector: "[nggvInputMask]", inputs: ["nggvInputMask"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.InputMaskFormatPipe, name: "nggvInputMaskFormat" }] }); }
167
169
  }
168
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputComponent, decorators: [{
169
171
  type: Component,
@@ -228,11 +230,13 @@ class NgvInputModule {
228
230
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, declarations: [NgvInputComponent], imports: [CommonModule,
229
231
  NgvI18nModule,
230
232
  NgvInputMaskModule,
231
- ReactiveFormsModule], exports: [NgvInputComponent] }); }
233
+ ReactiveFormsModule,
234
+ NggCharacterCountdownDirectiveModule], exports: [NgvInputComponent] }); }
232
235
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, imports: [CommonModule,
233
236
  NgvI18nModule,
234
237
  NgvInputMaskModule,
235
- ReactiveFormsModule] }); }
238
+ ReactiveFormsModule,
239
+ NggCharacterCountdownDirectiveModule] }); }
236
240
  }
237
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvInputModule, decorators: [{
238
242
  type: NgModule,
@@ -243,6 +247,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
243
247
  NgvI18nModule,
244
248
  NgvInputMaskModule,
245
249
  ReactiveFormsModule,
250
+ NggCharacterCountdownDirectiveModule,
246
251
  ],
247
252
  exports: [NgvInputComponent],
248
253
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-input.mjs","sources":["../../../../libs/angular/src/v-angular/input/input.component.ts","../../../../libs/angular/src/v-angular/input/input.component.html","../../../../libs/angular/src/v-angular/input/input.module.ts","../../../../libs/angular/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core'\nimport { NgControl, UntypedFormControl } from '@angular/forms'\n\nimport { Subject } from 'rxjs'\nimport { debounceTime, takeUntil } from 'rxjs/operators'\n\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@ngneat/transloco'\nimport type { InputmaskOptions } from '@sebgroup/green-angular/src/v-angular/input-mask'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/**\n * Input fields allow users to add and edit text.\n * https://designlibrary.sebgroup.com/components/component-input\n */\n@Component({\n selector: 'nggv-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n})\nexport class NgvInputComponent\n extends NgvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /** Adding .gds-form-item as a class to host element */\n @HostBinding('class') class = 'gds-form-item'\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'input'\n /** Type of input field. Should avoid types that modify field too much such as range. */\n @Input() type = 'text'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to \"on\", hint for form autofill feature. */\n @Input() autocomplete = 'on'\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** If set to true, enables the Angular template-driven email validator. */\n @Input() email = false\n /** Minimum value required for numeric input types. */\n @Input() min = 0\n /** Maximum value required for numeric input types. */\n @Input() max = Number.MAX_SAFE_INTEGER\n /** Incremental values that are valid for numeric input types. */\n @Input() step = 1\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\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 }\n get minlength(): number {\n return this._minlength\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.writeValue(this.state)\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.writeValue(this.state)\n }\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Wether to show label that tells how many characters are still left to be entered. Will only be set if maxLength is also set */\n private _showCharacterCountDown = true\n @Input() set showCharacterCountdown(option: boolean) {\n this._showCharacterCountDown = option\n }\n get showCharacterCountdown(): boolean {\n return this._showCharacterCountDown && this.hasMaxLength\n }\n\n /** Pattern the value must match to be valid. */\n @Input() pattern = ''\n /** Amount of time to wait until emitting (nggvINput) event */\n @Input() debounceTime = 500\n /**\n * @deprecated\n * Text to put in badge\n */\n @Input() badgeText = ''\n\n /** Settings for input mask if requested */\n private _inputMask!: InputmaskOptions<any>\n @Input() set inputMask(newInputMask: InputmaskOptions<any>) {\n // Hide input field\n this.hideInput$.next(true)\n this.cdr.detectChanges()\n this._inputMask = newInputMask\n\n // Show input field to reload input-mask settings upon update\n setTimeout(() => {\n this.hideInput$.next(false)\n this.cdr.detectChanges()\n }, 200)\n }\n get inputMask(): InputmaskOptions<any> {\n return this._inputMask\n }\n\n /** Emits every time the value of the inner input field changes, independantly of updates on the formcontroller */\n @Output() nggvInput = new EventEmitter<any>()\n\n private _formControl = new UntypedFormControl()\n get control(): UntypedFormControl {\n return (this.ngControl?.control as UntypedFormControl) ?? this._formControl\n }\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n /** Toggler for showing or hiding the input field */\n hideInput$ = new Subject<boolean>()\n\n protected inputChange$ = new Subject<any>()\n protected _destroy$ = new Subject<boolean>()\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 ngOnInit() {\n super.ngOnInit()\n this.inputChange$\n .pipe(takeUntil(this._destroy$), debounceTime(this.debounceTime))\n .subscribe((inputValue) => {\n this.nggvInput.emit(inputValue)\n })\n }\n\n ngOnDestroy(): void {\n this._destroy$.next(true)\n this._destroy$.complete()\n }\n\n writeValue(value: any) {\n // maxLength will only work with string values\n if (value?.length && value.length > this.maxlength) {\n // cut value to match max length\n this.state = this.cutTextAfterMaxLength(value)\n if (value.length !== this.state.length) {\n this.onChange(this.state)\n }\n // emit value\n } else {\n // update state\n this.state = value\n }\n this.cdr.detectChanges()\n }\n\n cutTextAfterMaxLength(value: any): any {\n if (typeof value === 'string') {\n return value.substring(0, this.maxlength)\n }\n return value\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLInputElement).value\n this.onChange(this.state)\n this.inputChange$.next(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\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=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\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 <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\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 />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\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.id]=\"id + '-message'\"\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 </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\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</ng-container>\n","import { NgModule } from '@angular/core'\nimport { CommonModule } from '@angular/common'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvInputComponent } from './input.component'\nimport { NgvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask'\n\n@NgModule({\n declarations: [NgvInputComponent],\n imports: [\n CommonModule,\n NgvI18nModule,\n NgvInputMaskModule,\n ReactiveFormsModule,\n ],\n exports: [NgvInputComponent],\n})\nexport class NgvInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBA;;;AAGG;AAMG,MAAO,iBACX,SAAQ,oCAAoC,CAAA;;IAwB5C,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;KACzB;AACD;;;AAGG;IACH,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;KACzB;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;;IAED,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;AACD;;;AAGG;IACH,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;IAOD,IAAa,sBAAsB,CAAC,MAAe,EAAA;AACjD,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAA;KACtC;AACD,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,YAAY,CAAA;KACzD;IAcD,IAAa,SAAS,CAAC,YAAmC,EAAA;;AAExD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAA;;QAG9B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;SACzB,EAAE,GAAG,CAAC,CAAA;KACR;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;AAMD,IAAA,IAAI,OAAO,GAAA;QACT,OAAQ,IAAI,CAAC,SAAS,EAAE,OAA8B,IAAI,IAAI,CAAC,YAAY,CAAA;KAC5E;;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,gBAAgB,CAAA;KACtE;AAQD,IAAA,WAAA,CAC6B,SAAoB,EAGrC,cAA8B,EAC9B,GAAsB,EAAA;AAEhC,QAAA,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;QANV,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAGrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;QAjHZ,IAAK,CAAA,KAAA,GAAG,eAAe,CAAA;;QAEJ,IAAK,CAAA,KAAA,GAAG,OAAO,CAAA;;QAE/C,IAAI,CAAA,IAAA,GAAG,MAAM,CAAA;;QAIb,IAAY,CAAA,YAAA,GAAG,IAAI,CAAA;;QAEnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;;QAEhB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAA;;QAEb,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;;AAEP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAA;;QAE7B,IAAI,CAAA,IAAA,GAAG,CAAC,CAAA;AA+BT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAA;QAEpC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAA;;QAGd,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAA;;QAS7B,IAAO,CAAA,OAAA,GAAG,EAAE,CAAA;;QAEZ,IAAY,CAAA,YAAA,GAAG,GAAG,CAAA;AAC3B;;;AAGG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAA;;AAqBb,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAA;AAErC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAA;;AAU/C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAW,CAAA;AAEzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAO,CAAA;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAW,CAAA;KAU3C;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,YAAY;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,aAAA,SAAS,CAAC,CAAC,UAAU,KAAI;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACjC,SAAC,CAAC,CAAA;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;KAC1B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;;QAEnB,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;YAElD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1B,aAAA;;AAEF,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;KACzB;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAC1C,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;;AAGD,IAAA,OAAO,CAAC,KAAY,EAAA;QAClB,KAAK,CAAC,eAAe,EAAE,CAAA;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QACzB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;AAvKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,uEAoHlB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApHd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,omBChC9B,4xIAqJA,EAAA,MAAA,EAAA,CAAA,4lXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrHa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,4xIAAA,EAAA,MAAA,EAAA,CAAA,4lXAAA,CAAA,EAAA,CAAA;;0BAsHnB,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;;0BACR,MAAM;2BAAC,eAAe,CAAA;4EA/GH,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO,CAAA;gBAEqB,KAAK,EAAA,CAAA;sBAA7C,WAAW;uBAAC,iBAAiB,CAAA;;sBAAG,KAAK;gBAE7B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAOO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAOO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAWO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAUO,sBAAsB,EAAA,CAAA;sBAAlC,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAiBI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;ME/GI,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAd,cAAc,EAAA,YAAA,EAAA,CATV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,aAAa;YACb,kBAAkB;AAClB,YAAA,mBAAmB,aAEX,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAPvB,YAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,kBAAkB;wBAClB,mBAAmB;AACpB,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;AChBD;;AAEG;;;;"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-input.mjs","sources":["../../../../libs/angular/src/v-angular/input/input.component.ts","../../../../libs/angular/src/v-angular/input/input.component.html","../../../../libs/angular/src/v-angular/input/input.module.ts","../../../../libs/angular/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core'\nimport { NgControl, UntypedFormControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\nimport { Subject } from 'rxjs'\nimport { debounceTime, takeUntil } from 'rxjs/operators'\n\nimport type { InputmaskOptions } from '@sebgroup/green-angular/src/v-angular/input-mask'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/**\n * Input fields allow users to add and edit text.\n * https://designlibrary.sebgroup.com/components/component-input\n */\n@Component({\n selector: 'nggv-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n})\nexport class NgvInputComponent\n extends NgvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /** Adding .gds-form-item as a class to host element */\n @HostBinding('class') class = 'gds-form-item'\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'input'\n /** Type of input field. Should avoid types that modify field too much such as range. */\n @Input() type = 'text'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to \"on\", hint for form autofill feature. */\n @Input() autocomplete = 'on'\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** If set to true, enables the Angular template-driven email validator. */\n @Input() email = false\n /** Minimum value required for numeric input types. */\n @Input() min = 0\n /** Maximum value required for numeric input types. */\n @Input() max = Number.MAX_SAFE_INTEGER\n /** Incremental values that are valid for numeric input types. */\n @Input() step = 1\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\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 }\n get minlength(): number {\n return this._minlength\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.writeValue(this.state)\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.writeValue(this.state)\n }\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Wether to show label that tells how many characters are still left to be entered. Will only be set if maxLength is also set */\n private _showCharacterCountDown = true\n @Input() set showCharacterCountdown(option: boolean) {\n this._showCharacterCountDown = option\n }\n get showCharacterCountdown(): boolean {\n return this._showCharacterCountDown && this.hasMaxLength\n }\n\n /** Pattern the value must match to be valid. */\n @Input() pattern = ''\n /** Amount of time to wait until emitting (nggvINput) event */\n @Input() debounceTime = 500\n /**\n * @deprecated\n * Text to put in badge\n */\n @Input() badgeText = ''\n\n /** Settings for input mask if requested */\n private _inputMask!: InputmaskOptions<any>\n @Input() set inputMask(newInputMask: InputmaskOptions<any>) {\n // Hide input field\n this.hideInput$.next(true)\n this.cdr.detectChanges()\n this._inputMask = newInputMask\n\n // Show input field to reload input-mask settings upon update\n setTimeout(() => {\n this.hideInput$.next(false)\n this.cdr.detectChanges()\n }, 200)\n }\n get inputMask(): InputmaskOptions<any> {\n return this._inputMask\n }\n\n /** Emits every time the value of the inner input field changes, independantly of updates on the formcontroller */\n @Output() nggvInput = new EventEmitter<any>()\n\n private _formControl = new UntypedFormControl()\n get control(): UntypedFormControl {\n return (this.ngControl?.control as UntypedFormControl) ?? this._formControl\n }\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n /** Toggler for showing or hiding the input field */\n hideInput$ = new Subject<boolean>()\n\n protected inputChange$ = new Subject<any>()\n protected _destroy$ = new Subject<boolean>()\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 ngOnInit() {\n super.ngOnInit()\n this.inputChange$\n .pipe(takeUntil(this._destroy$), debounceTime(this.debounceTime))\n .subscribe((inputValue) => {\n this.nggvInput.emit(inputValue)\n })\n }\n\n ngOnDestroy(): void {\n this._destroy$.next(true)\n this._destroy$.complete()\n }\n\n writeValue(value: any) {\n // maxLength will only work with string values\n if (value?.length && value.length > this.maxlength) {\n // cut value to match max length\n this.state = this.cutTextAfterMaxLength(value)\n if (value.length !== this.state.length) {\n this.onChange(this.state)\n }\n // emit value\n } else {\n // update state\n this.state = value\n }\n this.cdr.detectChanges()\n }\n\n cutTextAfterMaxLength(value: any): any {\n if (typeof value === 'string') {\n return value.substring(0, this.maxlength)\n }\n return value\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLInputElement).value\n this.onChange(this.state)\n this.inputChange$.next(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\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=\"form-info description hide-if-empty\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\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 <ng-container *ngIf=\"!inputMask\">\n {{ state }}\n </ng-container>\n <ng-container *ngIf=\"!!inputMask\">\n {{ state | nggvInputMaskFormat: inputMask }}\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\" [class.nggv-field--error]=\"invalid\">\n <div class=\"input-group-prefix hide-if-empty\">\n <ng-content select=\"[slot='prefix']\"></ng-content>\n </div>\n\n <!-- INPUT FIELD -->\n <div class=\"input-group\" *ngIf=\"!inputMask\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [attr.aria-describedby]=\"id + '-message'\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\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 />\n </div>\n\n <!-- INPUT FIELD WITH MASK -->\n <div\n class=\"input-group\"\n *ngIf=\"!!inputMask && (hideInput$ | async) === false\"\n >\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [attr.aria-describedby]=\"id + '-message'\"\n [nggvInputMask]=\"inputMask\"\n [formControl]=\"control\"\n />\n </div>\n\n <div class=\"input-group-suffix hide-if-empty\">\n <ng-content select=\"[slot='suffix']\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\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.id]=\"id + '-message'\"\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 </span>\n\n <ng-container *ngIf=\"!inputMask && hasMaxLength && showCharacterCountdown\">\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</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvInputComponent } from './input.component'\n\n@NgModule({\n declarations: [NgvInputComponent],\n imports: [\n CommonModule,\n NgvI18nModule,\n NgvInputMaskModule,\n ReactiveFormsModule,\n NggCharacterCountdownDirectiveModule,\n ],\n exports: [NgvInputComponent],\n})\nexport class NgvInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAsBA;;;AAGG;AAMG,MAAO,iBACX,SAAQ,oCAAoC,CAAA;;IAwB5C,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;KACzB;AACD;;;AAGG;IACH,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;KACzB;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;;IAED,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;AACD;;;AAGG;IACH,IAAa,SAAS,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;IAOD,IAAa,sBAAsB,CAAC,MAAe,EAAA;AACjD,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAA;KACtC;AACD,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,YAAY,CAAA;KACzD;IAcD,IAAa,SAAS,CAAC,YAAmC,EAAA;;AAExD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAA;;QAG9B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;SACzB,EAAE,GAAG,CAAC,CAAA;KACR;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;AAMD,IAAA,IAAI,OAAO,GAAA;QACT,OAAQ,IAAI,CAAC,SAAS,EAAE,OAA8B,IAAI,IAAI,CAAC,YAAY,CAAA;KAC5E;;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,gBAAgB,CAAA;KACtE;AAQD,IAAA,WAAA,CAC6B,SAAoB,EAGrC,cAA8B,EAC9B,GAAsB,EAAA;AAEhC,QAAA,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;QANV,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAGrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;QAjHZ,IAAK,CAAA,KAAA,GAAG,eAAe,CAAA;;QAEJ,IAAK,CAAA,KAAA,GAAG,OAAO,CAAA;;QAE/C,IAAI,CAAA,IAAA,GAAG,MAAM,CAAA;;QAIb,IAAY,CAAA,YAAA,GAAG,IAAI,CAAA;;QAEnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;;QAEhB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAA;;QAEb,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;;AAEP,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAA;;QAE7B,IAAI,CAAA,IAAA,GAAG,CAAC,CAAA;AA+BT,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAA;QAEpC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAA;;QAGd,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAA;;QAS7B,IAAO,CAAA,OAAA,GAAG,EAAE,CAAA;;QAEZ,IAAY,CAAA,YAAA,GAAG,GAAG,CAAA;AAC3B;;;AAGG;QACM,IAAS,CAAA,SAAA,GAAG,EAAE,CAAA;;AAqBb,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAA;AAErC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAA;;AAU/C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAW,CAAA;AAEzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAO,CAAA;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAW,CAAA;KAU3C;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,YAAY;AACd,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChE,aAAA,SAAS,CAAC,CAAC,UAAU,KAAI;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACjC,SAAC,CAAC,CAAA;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;KAC1B;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;;QAEnB,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;YAElD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACtC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1B,aAAA;;AAEF,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;KACzB;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;AAC1C,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACb;;AAGD,IAAA,OAAO,CAAC,KAAY,EAAA;QAClB,KAAK,CAAC,eAAe,EAAE,CAAA;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QACzB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;AAvKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,uEAoHlB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApHd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,omBC/B9B,4xIAqJA,EAAA,MAAA,EAAA,CAAA,4lXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,qCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDtHa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,4xIAAA,EAAA,MAAA,EAAA,CAAA,4lXAAA,CAAA,EAAA,CAAA;;0BAsHnB,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;;0BACR,MAAM;2BAAC,eAAe,CAAA;4EA/GH,KAAK,EAAA,CAAA;sBAA1B,WAAW;uBAAC,OAAO,CAAA;gBAEqB,KAAK,EAAA,CAAA;sBAA7C,WAAW;uBAAC,iBAAiB,CAAA;;sBAAG,KAAK;gBAE7B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAOO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAOO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAWO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAUO,sBAAsB,EAAA,CAAA;sBAAlC,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAiBI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;ME3GI,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAd,cAAc,EAAA,YAAA,EAAA,CAVV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAE9B,YAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,mBAAmB;AACnB,YAAA,oCAAoC,aAE5B,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YARvB,YAAY;YACZ,aAAa;YACb,kBAAkB;YAClB,mBAAmB;YACnB,oCAAoC,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI3B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAX1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;AACjC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,kBAAkB;wBAClB,mBAAmB;wBACnB,oCAAoC;AACrC,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;ACnBD;;AAEG;;;;"}
@@ -2,10 +2,10 @@ import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { EventEmitter, Component, ViewChild, HostBinding, Input, Output, HostListener, ElementRef, Directive, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
5
+ import { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button';
5
6
  import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js';
6
7
  import { fromEvent } from 'rxjs';
7
8
  import { trigger, transition, query, style, group, animate } from '@angular/animations';
8
- import { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button';
9
9
 
10
10
  ;
11
11
  (() => {
@@ -150,11 +150,11 @@ class NgvDialogComponent {
150
150
  }
151
151
  }
152
152
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDialogComponent, selector: "nggv-dialog", inputs: { thook: "thook", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", autoClose: "autoClose", payload: "payload", dialogTitleId: "dialogTitleId", dialogBodyId: "dialogBodyId", closeModalOnEscape: "closeModalOnEscape", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" }, properties: { "attr.data-thook": "this.thook", "class.sdv-modal-dialog": "this.baseClass", "class.-active": "this.shown", "attr.aria-hidden": "this.ariaHidden" } }, viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialog"], descendants: true }], exportAs: ["dialog"], ngImport: i0, template: "<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n", styles: [":host{inset:0;position:fixed;display:grid;place-content:center;z-index:calc(var(--sg-z-index-modal-backdrop) + 1)}:host .sdv-modal-dialog__container{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:initial;width:375px;max-width:95vw}:host .sdv-modal-dialog__container>.header,:host .sdv-modal-dialog__container>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__container>.header h3,:host .sdv-modal-dialog__container>.header .h3,:host .sdv-modal-dialog__container>header h3,:host .sdv-modal-dialog__container>header .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.header h3+.close,:host .sdv-modal-dialog__container>.header .h3+.close,:host .sdv-modal-dialog__container>header h3+.close,:host .sdv-modal-dialog__container>header .h3+.close{margin:-7px}:host .sdv-modal-dialog__container>.body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__container>.body p{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-left:.75rem}}:host .sdv-modal-dialog__container.medium{width:512px}:host .sdv-modal-dialog__container.large{width:720px}:host .sdv-modal-dialog__heading{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__heading h3,:host .sdv-modal-dialog__heading .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__heading h3+.close,:host .sdv-modal-dialog__heading .h3+.close{margin:-7px}:host .sdv-modal-dialog__heading button{display:grid;place-content:center}:host .sdv-modal-dialog__body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__body p{margin-bottom:0;margin-top:0}:host .sdv-modal-backdrop{background:#00000059;inset:0;position:fixed;z-index:999;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .sdv-modal-backdrop--transparent{opacity:0}:host .sdv-modal-backdrop--transparent.entered,:host .sdv-modal-backdrop--transparent.is-entering{opacity:1}:host .sdv-modal-backdrop--transparent.is-exiting{opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDialogComponent, selector: "nggv-dialog", inputs: { thook: "thook", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", autoClose: "autoClose", payload: "payload", dialogTitleId: "dialogTitleId", dialogBodyId: "dialogBodyId", closeModalOnEscape: "closeModalOnEscape", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" }, properties: { "attr.data-thook": "this.thook", "class.sdv-modal-dialog": "this.baseClass", "class.-active": "this.shown", "attr.aria-hidden": "this.ariaHidden" } }, viewQueries: [{ propertyName: "dialogRef", first: true, predicate: ["dialog"], descendants: true }], exportAs: ["dialog"], ngImport: i0, template: "<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n", styles: [":host{inset:0;position:fixed;display:grid;place-content:center;z-index:calc(var(--sg-z-index-modal-backdrop) + 1)}:host .sdv-modal-dialog__container{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:initial;width:375px;max-width:95vw}:host .sdv-modal-dialog__container>.header,:host .sdv-modal-dialog__container>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__container>.header h3,:host .sdv-modal-dialog__container>.header .h3,:host .sdv-modal-dialog__container>header h3,:host .sdv-modal-dialog__container>header .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.header h3+.close,:host .sdv-modal-dialog__container>.header .h3+.close,:host .sdv-modal-dialog__container>header h3+.close,:host .sdv-modal-dialog__container>header .h3+.close{margin:-7px;min-width:2rem}:host .sdv-modal-dialog__container>.body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__container>.body p{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-left:.75rem}}:host .sdv-modal-dialog__container.medium{width:512px}:host .sdv-modal-dialog__container.large{width:720px}:host .sdv-modal-dialog__heading{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__heading h3,:host .sdv-modal-dialog__heading .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__heading h3+.close,:host .sdv-modal-dialog__heading .h3+.close{margin:-7px;min-width:2rem}:host .sdv-modal-dialog__heading button{display:grid;place-content:center}:host .sdv-modal-dialog__body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__body p{margin-bottom:0;margin-top:0}:host .sdv-modal-backdrop{background:#00000059;inset:0;position:fixed;z-index:999;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .sdv-modal-backdrop--transparent{opacity:0}:host .sdv-modal-backdrop--transparent.entered,:host .sdv-modal-backdrop--transparent.is-entering{opacity:1}:host .sdv-modal-backdrop--transparent.is-exiting{opacity:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
154
154
  }
155
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDialogComponent, decorators: [{
156
156
  type: Component,
157
- args: [{ selector: 'nggv-dialog', exportAs: 'dialog', template: "<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n", styles: [":host{inset:0;position:fixed;display:grid;place-content:center;z-index:calc(var(--sg-z-index-modal-backdrop) + 1)}:host .sdv-modal-dialog__container{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:initial;width:375px;max-width:95vw}:host .sdv-modal-dialog__container>.header,:host .sdv-modal-dialog__container>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__container>.header h3,:host .sdv-modal-dialog__container>.header .h3,:host .sdv-modal-dialog__container>header h3,:host .sdv-modal-dialog__container>header .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.header h3+.close,:host .sdv-modal-dialog__container>.header .h3+.close,:host .sdv-modal-dialog__container>header h3+.close,:host .sdv-modal-dialog__container>header .h3+.close{margin:-7px}:host .sdv-modal-dialog__container>.body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__container>.body p{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-left:.75rem}}:host .sdv-modal-dialog__container.medium{width:512px}:host .sdv-modal-dialog__container.large{width:720px}:host .sdv-modal-dialog__heading{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__heading h3,:host .sdv-modal-dialog__heading .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__heading h3+.close,:host .sdv-modal-dialog__heading .h3+.close{margin:-7px}:host .sdv-modal-dialog__heading button{display:grid;place-content:center}:host .sdv-modal-dialog__body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__body p{margin-bottom:0;margin-top:0}:host .sdv-modal-backdrop{background:#00000059;inset:0;position:fixed;z-index:999;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .sdv-modal-backdrop--transparent{opacity:0}:host .sdv-modal-backdrop--transparent.entered,:host .sdv-modal-backdrop--transparent.is-entering{opacity:1}:host .sdv-modal-backdrop--transparent.is-exiting{opacity:0}\n"] }]
157
+ args: [{ selector: 'nggv-dialog', exportAs: 'dialog', template: "<div\n class=\"sdv-modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n>\n <header class=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"sdv-button sdv-button-secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"sdv-button\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n</div>\n\n<div class=\"sdv-modal-backdrop\"></div>\n", styles: [":host{inset:0;position:fixed;display:grid;place-content:center;z-index:calc(var(--sg-z-index-modal-backdrop) + 1)}:host .sdv-modal-dialog__container{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:initial;width:375px;max-width:95vw}:host .sdv-modal-dialog__container>.header,:host .sdv-modal-dialog__container>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__container>.header h3,:host .sdv-modal-dialog__container>.header .h3,:host .sdv-modal-dialog__container>header h3,:host .sdv-modal-dialog__container>header .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.header h3+.close,:host .sdv-modal-dialog__container>.header .h3+.close,:host .sdv-modal-dialog__container>header h3+.close,:host .sdv-modal-dialog__container>header .h3+.close{margin:-7px;min-width:2rem}:host .sdv-modal-dialog__container>.body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__container>.body p{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer,:host .sdv-modal-dialog__container>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .sdv-modal-dialog__container>.footer button+button,:host .sdv-modal-dialog__container>.footer button+.button,:host .sdv-modal-dialog__container>.footer .button+button,:host .sdv-modal-dialog__container>.footer .button+.button,:host .sdv-modal-dialog__container>footer button+button,:host .sdv-modal-dialog__container>footer button+.button,:host .sdv-modal-dialog__container>footer .button+button,:host .sdv-modal-dialog__container>footer .button+.button{margin-left:.75rem}}:host .sdv-modal-dialog__container.medium{width:512px}:host .sdv-modal-dialog__container.large{width:720px}:host .sdv-modal-dialog__heading{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .sdv-modal-dialog__heading h3,:host .sdv-modal-dialog__heading .h3{margin-bottom:0;margin-top:0}:host .sdv-modal-dialog__heading h3+.close,:host .sdv-modal-dialog__heading .h3+.close{margin:-7px;min-width:2rem}:host .sdv-modal-dialog__heading button{display:grid;place-content:center}:host .sdv-modal-dialog__body{padding:1rem;overflow:auto;width:100%}:host .sdv-modal-dialog__body p{margin-bottom:0;margin-top:0}:host .sdv-modal-backdrop{background:#00000059;inset:0;position:fixed;z-index:999;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .sdv-modal-backdrop--transparent{opacity:0}:host .sdv-modal-backdrop--transparent.entered,:host .sdv-modal-backdrop--transparent.is-entering{opacity:1}:host .sdv-modal-backdrop--transparent.is-exiting{opacity:0}\n"] }]
158
158
  }], propDecorators: { dialogRef: [{
159
159
  type: ViewChild,
160
160
  args: ['dialog']
@@ -411,7 +411,7 @@ class NgvSlideOutComponent {
411
411
  });
412
412
  }
413
413
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvSlideOutComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
414
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvSlideOutComponent, selector: "nggv-slideout-modal", inputs: { side: "side", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", closable: "closable", autoWidth: "autoWidth", thook: "thook", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" } }, viewQueries: [{ propertyName: "slideOutRef", first: true, predicate: ["slideOut"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host .gds-slide-out{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:fixed;height:100dvh;max-width:512px;min-height:-webkit-fill-available;min-height:-moz-available;min-height:stretch;right:0;top:0;transition:transform .35s cubic-bezier(.33,1,.68,1);transform:translate(100%);z-index:1050}:host .gds-slide-out>.header,:host .gds-slide-out>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .gds-slide-out>.header h3,:host .gds-slide-out>.header .h3,:host .gds-slide-out>header h3,:host .gds-slide-out>header .h3{margin-bottom:0;margin-top:0}:host .gds-slide-out>.header h3+.close,:host .gds-slide-out>.header .h3+.close,:host .gds-slide-out>header h3+.close,:host .gds-slide-out>header .h3+.close{margin:-7px}:host .gds-slide-out>.body{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out>.body p{margin-bottom:0;margin-top:0}:host .gds-slide-out>.footer,:host .gds-slide-out>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .gds-slide-out>.footer,:host .gds-slide-out>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-left:.75rem}}:host .gds-slide-out.is-entering,:host .gds-slide-out.entered{transform:translate(0)}:host .gds-slide-out.is-exiting{transform:translate(100%)}:host .gds-slide-out.large{max-width:720px}:host .gds-slide-out>.body{flex:1 0}:host .gds-slide-out.left{left:0}:host .gds-slide-out.gds-slide-out--768{max-width:48rem}:host .gds-slide-out.gds-slide-out--960{max-width:60rem}:host .gds-slide-out.gds-slide-out--768 header,:host .gds-slide-out.gds-slide-out--960 header{padding:1.5rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 .body,:host .gds-slide-out.gds-slide-out--960 .body{padding:2rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 footer,:host .gds-slide-out.gds-slide-out--960 footer{padding:1rem 2rem 2rem}:host .gds-slide-out.auto-width{width:auto;max-width:initial}:host .hide-if-empty:empty{display:none}:host .gds-backdrop{background:#00000059;inset:0;position:fixed;z-index:1040;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .gds-backdrop--transparent{opacity:0}:host .gds-backdrop--transparent.entered,:host .gds-backdrop--transparent.is-entering{opacity:1}:host .gds-backdrop--transparent.is-exiting{opacity:0}:host .gds-slide-out__content{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out__content p{margin-bottom:0;margin-top:0}:host #sdv-modal-body{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvSlideOutComponent, selector: "nggv-slideout-modal", inputs: { side: "side", shown: "shown", initiallyShown: "initiallyShown", heading: "heading", title: "title", content: "content", closable: "closable", autoWidth: "autoWidth", thook: "thook", buttons: "buttons" }, outputs: { nggvCloseEvent: "nggvCloseEvent", nggvPositiveEvent: "nggvPositiveEvent", nggvNeutralEvent: "nggvNeutralEvent", nggvNegativeEvent: "nggvNegativeEvent" }, host: { listeners: { "click": "close($event,\"host\")", "document:keydown.escape": "close($event)", "keydown": "focusTrap($event)" } }, viewQueries: [{ propertyName: "slideOutRef", first: true, predicate: ["slideOut"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft,\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host .gds-slide-out{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:fixed;height:100dvh;max-width:512px;min-height:-webkit-fill-available;min-height:-moz-available;min-height:stretch;right:0;top:0;transition:transform .35s cubic-bezier(.33,1,.68,1);transform:translate(100%);z-index:1050}:host .gds-slide-out>.header,:host .gds-slide-out>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .gds-slide-out>.header h3,:host .gds-slide-out>.header .h3,:host .gds-slide-out>header h3,:host .gds-slide-out>header .h3{margin-bottom:0;margin-top:0}:host .gds-slide-out>.header h3+.close,:host .gds-slide-out>.header .h3+.close,:host .gds-slide-out>header h3+.close,:host .gds-slide-out>header .h3+.close{margin:-7px;min-width:2rem}:host .gds-slide-out>.body{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out>.body p{margin-bottom:0;margin-top:0}:host .gds-slide-out>.footer,:host .gds-slide-out>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .gds-slide-out>.footer,:host .gds-slide-out>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-left:.75rem}}:host .gds-slide-out.is-entering,:host .gds-slide-out.entered{transform:translate(0)}:host .gds-slide-out.is-exiting{transform:translate(100%)}:host .gds-slide-out.large{max-width:720px}:host .gds-slide-out>.body{flex:1 0}:host .gds-slide-out.left{left:0}:host .gds-slide-out.gds-slide-out--768{max-width:48rem}:host .gds-slide-out.gds-slide-out--960{max-width:60rem}:host .gds-slide-out.gds-slide-out--768 header,:host .gds-slide-out.gds-slide-out--960 header{padding:1.5rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 .body,:host .gds-slide-out.gds-slide-out--960 .body{padding:2rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 footer,:host .gds-slide-out.gds-slide-out--960 footer{padding:1rem 2rem 2rem}:host .gds-slide-out.auto-width{width:auto;max-width:initial}:host .hide-if-empty:empty{display:none}:host .gds-backdrop{background:#00000059;inset:0;position:fixed;z-index:1040;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .gds-backdrop--transparent{opacity:0}:host .gds-backdrop--transparent.entered,:host .gds-backdrop--transparent.is-entering{opacity:1}:host .gds-backdrop--transparent.is-exiting{opacity:0}:host .gds-slide-out__content{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out__content p{margin-bottom:0;margin-top:0}:host #sdv-modal-body{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
415
415
  trigger('modalAnimation', [
416
416
  transition(':enter', [
417
417
  query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {
@@ -463,7 +463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
463
463
  ]),
464
464
  ]),
465
465
  ]),
466
- ], template: "<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host .gds-slide-out{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:fixed;height:100dvh;max-width:512px;min-height:-webkit-fill-available;min-height:-moz-available;min-height:stretch;right:0;top:0;transition:transform .35s cubic-bezier(.33,1,.68,1);transform:translate(100%);z-index:1050}:host .gds-slide-out>.header,:host .gds-slide-out>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .gds-slide-out>.header h3,:host .gds-slide-out>.header .h3,:host .gds-slide-out>header h3,:host .gds-slide-out>header .h3{margin-bottom:0;margin-top:0}:host .gds-slide-out>.header h3+.close,:host .gds-slide-out>.header .h3+.close,:host .gds-slide-out>header h3+.close,:host .gds-slide-out>header .h3+.close{margin:-7px}:host .gds-slide-out>.body{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out>.body p{margin-bottom:0;margin-top:0}:host .gds-slide-out>.footer,:host .gds-slide-out>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .gds-slide-out>.footer,:host .gds-slide-out>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-left:.75rem}}:host .gds-slide-out.is-entering,:host .gds-slide-out.entered{transform:translate(0)}:host .gds-slide-out.is-exiting{transform:translate(100%)}:host .gds-slide-out.large{max-width:720px}:host .gds-slide-out>.body{flex:1 0}:host .gds-slide-out.left{left:0}:host .gds-slide-out.gds-slide-out--768{max-width:48rem}:host .gds-slide-out.gds-slide-out--960{max-width:60rem}:host .gds-slide-out.gds-slide-out--768 header,:host .gds-slide-out.gds-slide-out--960 header{padding:1.5rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 .body,:host .gds-slide-out.gds-slide-out--960 .body{padding:2rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 footer,:host .gds-slide-out.gds-slide-out--960 footer{padding:1rem 2rem 2rem}:host .gds-slide-out.auto-width{width:auto;max-width:initial}:host .hide-if-empty:empty{display:none}:host .gds-backdrop{background:#00000059;inset:0;position:fixed;z-index:1040;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .gds-backdrop--transparent{opacity:0}:host .gds-backdrop--transparent.entered,:host .gds-backdrop--transparent.is-entering{opacity:1}:host .gds-backdrop--transparent.is-exiting{opacity:0}:host .gds-slide-out__content{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out__content p{margin-bottom:0;margin-top:0}:host #sdv-modal-body{flex:1}\n"] }]
466
+ ], template: "<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft,\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"gds-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host .gds-slide-out{background:var(--sg-modal-background);display:flex;flex-direction:column;box-shadow:var(--sg-modal-box-shadow);position:absolute;width:100%;z-index:var(--sg-z-index-modal);position:fixed;height:100dvh;max-width:512px;min-height:-webkit-fill-available;min-height:-moz-available;min-height:stretch;right:0;top:0;transition:transform .35s cubic-bezier(.33,1,.68,1);transform:translate(100%);z-index:1050}:host .gds-slide-out>.header,:host .gds-slide-out>header{padding:1rem;border-bottom:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);display:inline-flex;justify-content:space-between;align-items:center;width:100%}:host .gds-slide-out>.header h3,:host .gds-slide-out>.header .h3,:host .gds-slide-out>header h3,:host .gds-slide-out>header .h3{margin-bottom:0;margin-top:0}:host .gds-slide-out>.header h3+.close,:host .gds-slide-out>.header .h3+.close,:host .gds-slide-out>header h3+.close,:host .gds-slide-out>header .h3+.close{margin:-7px;min-width:2rem}:host .gds-slide-out>.body{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out>.body p{margin-bottom:0;margin-top:0}:host .gds-slide-out>.footer,:host .gds-slide-out>footer{padding:1rem;width:100%}@media (min-width: 36em){:host .gds-slide-out>.footer,:host .gds-slide-out>footer{display:flex;justify-content:flex-end}}@media (max-width: 35.98em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-top:.75rem}}@media (min-width: 36em){:host .gds-slide-out>.footer button+button,:host .gds-slide-out>.footer button+.button,:host .gds-slide-out>.footer .button+button,:host .gds-slide-out>.footer .button+.button,:host .gds-slide-out>footer button+button,:host .gds-slide-out>footer button+.button,:host .gds-slide-out>footer .button+button,:host .gds-slide-out>footer .button+.button{margin-left:.75rem}}:host .gds-slide-out.is-entering,:host .gds-slide-out.entered{transform:translate(0)}:host .gds-slide-out.is-exiting{transform:translate(100%)}:host .gds-slide-out.large{max-width:720px}:host .gds-slide-out>.body{flex:1 0}:host .gds-slide-out.left{left:0}:host .gds-slide-out.gds-slide-out--768{max-width:48rem}:host .gds-slide-out.gds-slide-out--960{max-width:60rem}:host .gds-slide-out.gds-slide-out--768 header,:host .gds-slide-out.gds-slide-out--960 header{padding:1.5rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 .body,:host .gds-slide-out.gds-slide-out--960 .body{padding:2rem 2rem 1rem}:host .gds-slide-out.gds-slide-out--768 footer,:host .gds-slide-out.gds-slide-out--960 footer{padding:1rem 2rem 2rem}:host .gds-slide-out.auto-width{width:auto;max-width:initial}:host .hide-if-empty:empty{display:none}:host .gds-backdrop{background:#00000059;inset:0;position:fixed;z-index:1040;display:block;transition:opacity .5s cubic-bezier(.33,1,.68,1)}:host .gds-backdrop--transparent{opacity:0}:host .gds-backdrop--transparent.entered,:host .gds-backdrop--transparent.is-entering{opacity:1}:host .gds-backdrop--transparent.is-exiting{opacity:0}:host .gds-slide-out__content{padding:1rem;overflow:auto;width:100%}:host .gds-slide-out__content p{margin-bottom:0;margin-top:0}:host #sdv-modal-body{flex:1}\n"] }]
467
467
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { slideOutRef: [{
468
468
  type: ViewChild,
469
469
  args: ['slideOut']