@sebgroup/green-angular 0.0.0-v-angular-20250113082841

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 (838) hide show
  1. package/README.md +68 -0
  2. package/esm2022/index.mjs +18 -0
  3. package/esm2022/lib/accordion/accordion-list-item.component.mjs +50 -0
  4. package/esm2022/lib/accordion/accordion.component.mjs +72 -0
  5. package/esm2022/lib/accordion/accordion.module.mjs +19 -0
  6. package/esm2022/lib/accordion/index.mjs +4 -0
  7. package/esm2022/lib/badge/badge.component.mjs +80 -0
  8. package/esm2022/lib/badge/badge.module.mjs +18 -0
  9. package/esm2022/lib/badge/index.mjs +3 -0
  10. package/esm2022/lib/button/button.component.mjs +28 -0
  11. package/esm2022/lib/button/button.module.mjs +18 -0
  12. package/esm2022/lib/button/index.mjs +3 -0
  13. package/esm2022/lib/cell-table/cell-table-item.component.mjs +91 -0
  14. package/esm2022/lib/cell-table/cell-table.component.mjs +97 -0
  15. package/esm2022/lib/cell-table/cell-table.module.mjs +26 -0
  16. package/esm2022/lib/cell-table/cell-table.types.mjs +7 -0
  17. package/esm2022/lib/cell-table/cell-underline.directive.mjs +55 -0
  18. package/esm2022/lib/cell-table/index.mjs +4 -0
  19. package/esm2022/lib/context-menu/context-menu.component.mjs +73 -0
  20. package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
  21. package/esm2022/lib/context-menu/index.mjs +3 -0
  22. package/esm2022/lib/datepicker/datepicker.component.mjs +138 -0
  23. package/esm2022/lib/datepicker/datepicker.module.mjs +20 -0
  24. package/esm2022/lib/datepicker/index.mjs +3 -0
  25. package/esm2022/lib/dropdown/dropdown-button.directive.mjs +16 -0
  26. package/esm2022/lib/dropdown/dropdown-option.directive.mjs +16 -0
  27. package/esm2022/lib/dropdown/dropdown.component.mjs +222 -0
  28. package/esm2022/lib/dropdown/dropdown.module.mjs +34 -0
  29. package/esm2022/lib/dropdown/index.mjs +5 -0
  30. package/esm2022/lib/green-angular.module.mjs +72 -0
  31. package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +61 -0
  32. package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
  33. package/esm2022/lib/in-page-wizard/index.mjs +3 -0
  34. package/esm2022/lib/modal/index.mjs +5 -0
  35. package/esm2022/lib/modal/modal-footer.directive.mjs +16 -0
  36. package/esm2022/lib/modal/modal-header.directive.mjs +16 -0
  37. package/esm2022/lib/modal/modal.component.mjs +309 -0
  38. package/esm2022/lib/modal/modal.module.mjs +41 -0
  39. package/esm2022/lib/pagination/index.mjs +3 -0
  40. package/esm2022/lib/pagination/pagination.component.mjs +175 -0
  41. package/esm2022/lib/pagination/pagination.module.mjs +18 -0
  42. package/esm2022/lib/progress-circle/index.mjs +3 -0
  43. package/esm2022/lib/progress-circle/progress-circle.component.mjs +41 -0
  44. package/esm2022/lib/progress-circle/progress-circle.module.mjs +18 -0
  45. package/esm2022/lib/segmented-control/index.mjs +3 -0
  46. package/esm2022/lib/segmented-control/segmented-control.component.mjs +35 -0
  47. package/esm2022/lib/segmented-control/segmented-control.module.mjs +19 -0
  48. package/esm2022/lib/shared/core-element/core-element.directive.mjs +33 -0
  49. package/esm2022/lib/shared/core-element/core-element.module.mjs +18 -0
  50. package/esm2022/lib/shared/core-element/index.mjs +3 -0
  51. package/esm2022/lib/shared/index.mjs +4 -0
  52. package/esm2022/lib/shared/on-scroll.directive.mjs +47 -0
  53. package/esm2022/lib/shared/shared.module.mjs +18 -0
  54. package/esm2022/lib/slider/index.mjs +3 -0
  55. package/esm2022/lib/slider/slider.component.mjs +113 -0
  56. package/esm2022/lib/slider/slider.module.mjs +19 -0
  57. package/esm2022/lib/sortable-list/index.mjs +3 -0
  58. package/esm2022/lib/sortable-list/sortable-list.component.mjs +181 -0
  59. package/esm2022/lib/sortable-list/sortable-list.module.mjs +20 -0
  60. package/esm2022/sebgroup-green-angular.mjs +5 -0
  61. package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +50 -0
  62. package/esm2022/src/lib/accordion/accordion.component.mjs +72 -0
  63. package/esm2022/src/lib/accordion/accordion.module.mjs +19 -0
  64. package/esm2022/src/lib/accordion/index.mjs +4 -0
  65. package/esm2022/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +5 -0
  66. package/esm2022/src/lib/badge/badge.component.mjs +80 -0
  67. package/esm2022/src/lib/badge/badge.module.mjs +18 -0
  68. package/esm2022/src/lib/badge/index.mjs +3 -0
  69. package/esm2022/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +5 -0
  70. package/esm2022/src/lib/button/button.component.mjs +28 -0
  71. package/esm2022/src/lib/button/button.module.mjs +18 -0
  72. package/esm2022/src/lib/button/index.mjs +3 -0
  73. package/esm2022/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +5 -0
  74. package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +91 -0
  75. package/esm2022/src/lib/cell-table/cell-table.component.mjs +97 -0
  76. package/esm2022/src/lib/cell-table/cell-table.module.mjs +26 -0
  77. package/esm2022/src/lib/cell-table/cell-table.types.mjs +7 -0
  78. package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +55 -0
  79. package/esm2022/src/lib/cell-table/index.mjs +4 -0
  80. package/esm2022/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +5 -0
  81. package/esm2022/src/lib/context-menu/context-menu.component.mjs +73 -0
  82. package/esm2022/src/lib/context-menu/context-menu.module.mjs +20 -0
  83. package/esm2022/src/lib/context-menu/index.mjs +3 -0
  84. package/esm2022/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +5 -0
  85. package/esm2022/src/lib/datepicker/datepicker.component.mjs +138 -0
  86. package/esm2022/src/lib/datepicker/datepicker.module.mjs +20 -0
  87. package/esm2022/src/lib/datepicker/index.mjs +3 -0
  88. package/esm2022/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +5 -0
  89. package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +16 -0
  90. package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +16 -0
  91. package/esm2022/src/lib/dropdown/dropdown.component.mjs +222 -0
  92. package/esm2022/src/lib/dropdown/dropdown.module.mjs +34 -0
  93. package/esm2022/src/lib/dropdown/index.mjs +5 -0
  94. package/esm2022/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +5 -0
  95. package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +61 -0
  96. package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +18 -0
  97. package/esm2022/src/lib/in-page-wizard/index.mjs +3 -0
  98. package/esm2022/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +5 -0
  99. package/esm2022/src/lib/modal/index.mjs +5 -0
  100. package/esm2022/src/lib/modal/modal-footer.directive.mjs +16 -0
  101. package/esm2022/src/lib/modal/modal-header.directive.mjs +16 -0
  102. package/esm2022/src/lib/modal/modal.component.mjs +309 -0
  103. package/esm2022/src/lib/modal/modal.module.mjs +41 -0
  104. package/esm2022/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +5 -0
  105. package/esm2022/src/lib/pagination/index.mjs +3 -0
  106. package/esm2022/src/lib/pagination/pagination.component.mjs +175 -0
  107. package/esm2022/src/lib/pagination/pagination.module.mjs +18 -0
  108. package/esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +5 -0
  109. package/esm2022/src/lib/progress-circle/index.mjs +3 -0
  110. package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +41 -0
  111. package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +18 -0
  112. package/esm2022/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +5 -0
  113. package/esm2022/src/lib/segmented-control/index.mjs +3 -0
  114. package/esm2022/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +5 -0
  115. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +35 -0
  116. package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +19 -0
  117. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +33 -0
  118. package/esm2022/src/lib/shared/core-element/core-element.module.mjs +18 -0
  119. package/esm2022/src/lib/shared/core-element/index.mjs +3 -0
  120. package/esm2022/src/lib/shared/index.mjs +4 -0
  121. package/esm2022/src/lib/shared/on-scroll.directive.mjs +47 -0
  122. package/esm2022/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +5 -0
  123. package/esm2022/src/lib/shared/shared.module.mjs +18 -0
  124. package/esm2022/src/lib/slider/index.mjs +3 -0
  125. package/esm2022/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +5 -0
  126. package/esm2022/src/lib/slider/slider.component.mjs +113 -0
  127. package/esm2022/src/lib/slider/slider.module.mjs +19 -0
  128. package/esm2022/src/lib/sortable-list/index.mjs +3 -0
  129. package/esm2022/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +5 -0
  130. package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +181 -0
  131. package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +20 -0
  132. package/esm2022/src/v-angular/account-number/account-number.module.mjs +18 -0
  133. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +54 -0
  134. package/esm2022/src/v-angular/account-number/index.mjs +3 -0
  135. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
  136. package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
  137. package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
  138. package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
  139. package/esm2022/src/v-angular/alert/index.mjs +4 -0
  140. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
  141. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +297 -0
  142. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  143. package/esm2022/src/v-angular/base-control-value-accessor/index.mjs +3 -0
  144. package/esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +5 -0
  145. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  146. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  147. package/esm2022/src/v-angular/breadcrumbs/index.mjs +3 -0
  148. package/esm2022/src/v-angular/breadcrumbs/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +5 -0
  149. package/esm2022/src/v-angular/button/button.component.mjs +108 -0
  150. package/esm2022/src/v-angular/button/button.module.mjs +20 -0
  151. package/esm2022/src/v-angular/button/index.mjs +3 -0
  152. package/esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs +5 -0
  153. package/esm2022/src/v-angular/card/card.component.mjs +11 -0
  154. package/esm2022/src/v-angular/card/card.module.mjs +18 -0
  155. package/esm2022/src/v-angular/card/index.mjs +3 -0
  156. package/esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs +5 -0
  157. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
  158. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +18 -0
  159. package/esm2022/src/v-angular/character-countdown/index.mjs +3 -0
  160. package/esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs +5 -0
  161. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +74 -0
  162. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +21 -0
  163. package/esm2022/src/v-angular/checkbox/index.mjs +3 -0
  164. package/esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs +5 -0
  165. package/esm2022/src/v-angular/core/core.globals.mjs +20 -0
  166. package/esm2022/src/v-angular/core/core.utils.mjs +62 -0
  167. package/esm2022/src/v-angular/core/index.mjs +3 -0
  168. package/esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs +5 -0
  169. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  170. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  171. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  172. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  173. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  174. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
  175. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
  176. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
  177. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
  178. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  179. package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
  180. package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
  181. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  182. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  183. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  184. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
  185. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +496 -0
  186. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  187. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  188. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  189. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +75 -0
  190. package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
  191. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
  192. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +271 -0
  193. package/esm2022/src/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  194. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +246 -0
  195. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +38 -0
  196. package/esm2022/src/v-angular/dropdown/index.mjs +6 -0
  197. package/esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs +5 -0
  198. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +6 -0
  199. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  200. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  201. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  202. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  203. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  204. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +37 -0
  205. package/esm2022/src/v-angular/external-link/external-link.module.mjs +18 -0
  206. package/esm2022/src/v-angular/external-link/index.mjs +3 -0
  207. package/esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs +5 -0
  208. package/esm2022/src/v-angular/i18n/i18n.json +12 -0
  209. package/esm2022/src/v-angular/i18n/i18n.module.mjs +89 -0
  210. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +89 -0
  211. package/esm2022/src/v-angular/i18n/index.mjs +3 -0
  212. package/esm2022/src/v-angular/i18n/sebgroup-green-angular-src-v-angular-i18n.mjs +5 -0
  213. package/esm2022/src/v-angular/info-circle/index.mjs +3 -0
  214. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +28 -0
  215. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +21 -0
  216. package/esm2022/src/v-angular/info-circle/sebgroup-green-angular-src-v-angular-info-circle.mjs +5 -0
  217. package/esm2022/src/v-angular/input/index.mjs +3 -0
  218. package/esm2022/src/v-angular/input/input.component.mjs +218 -0
  219. package/esm2022/src/v-angular/input/input.module.mjs +41 -0
  220. package/esm2022/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.mjs +5 -0
  221. package/esm2022/src/v-angular/input-mask/config.mjs +9 -0
  222. package/esm2022/src/v-angular/input-mask/constants.mjs +2 -0
  223. package/esm2022/src/v-angular/input-mask/index.mjs +6 -0
  224. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
  225. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +165 -0
  226. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +35 -0
  227. package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +2 -0
  228. package/esm2022/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.mjs +5 -0
  229. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +217 -0
  230. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +157 -0
  231. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  232. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  233. package/esm2022/src/v-angular/modal/index.mjs +6 -0
  234. package/esm2022/src/v-angular/modal/modal.globals.mjs +20 -0
  235. package/esm2022/src/v-angular/modal/modal.module.mjs +53 -0
  236. package/esm2022/src/v-angular/modal/modal.types.mjs +2 -0
  237. package/esm2022/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.mjs +5 -0
  238. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +253 -0
  239. package/esm2022/src/v-angular/pagination/index.mjs +3 -0
  240. package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
  241. package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
  242. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
  243. package/esm2022/src/v-angular/radio/index.mjs +3 -0
  244. package/esm2022/src/v-angular/radio/radio.component.mjs +132 -0
  245. package/esm2022/src/v-angular/radio/radio.module.mjs +21 -0
  246. package/esm2022/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.mjs +5 -0
  247. package/esm2022/src/v-angular/slug/index.mjs +3 -0
  248. package/esm2022/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.mjs +5 -0
  249. package/esm2022/src/v-angular/slug/slug.module.mjs +18 -0
  250. package/esm2022/src/v-angular/slug/slug.pipe.mjs +27 -0
  251. package/esm2022/src/v-angular/table/index.mjs +9 -0
  252. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
  253. package/esm2022/src/v-angular/table/table.component.mjs +387 -0
  254. package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
  255. package/esm2022/src/v-angular/table/table.models.mjs +2 -0
  256. package/esm2022/src/v-angular/table/table.module.mjs +40 -0
  257. package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
  258. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
  259. package/esm2022/src/v-angular/tabs/index.mjs +8 -0
  260. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
  261. package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
  262. package/esm2022/src/v-angular/tabs/tabs.component.mjs +260 -0
  263. package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
  264. package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
  265. package/esm2022/src/v-angular/textarea/index.mjs +3 -0
  266. package/esm2022/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.mjs +5 -0
  267. package/esm2022/src/v-angular/textarea/textarea.component.mjs +105 -0
  268. package/esm2022/src/v-angular/textarea/textarea.module.mjs +34 -0
  269. package/esm2022/src/v-angular/toast/index.mjs +8 -0
  270. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
  271. package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
  272. package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
  273. package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
  274. package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
  275. package/esm2022/src/v-angular/tooltip/index.mjs +3 -0
  276. package/esm2022/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.mjs +5 -0
  277. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +293 -0
  278. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +18 -0
  279. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
  280. package/esm2022/v-angular/alert/alert.component.mjs +47 -0
  281. package/esm2022/v-angular/alert/alert.models.mjs +8 -0
  282. package/esm2022/v-angular/alert/alert.module.mjs +18 -0
  283. package/esm2022/v-angular/alert/index.mjs +4 -0
  284. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +297 -0
  285. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  286. package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
  287. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  288. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  289. package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
  290. package/esm2022/v-angular/button/button.component.mjs +108 -0
  291. package/esm2022/v-angular/button/button.module.mjs +20 -0
  292. package/esm2022/v-angular/button/index.mjs +3 -0
  293. package/esm2022/v-angular/card/card.component.mjs +11 -0
  294. package/esm2022/v-angular/card/card.module.mjs +18 -0
  295. package/esm2022/v-angular/card/index.mjs +3 -0
  296. package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
  297. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +18 -0
  298. package/esm2022/v-angular/character-countdown/index.mjs +3 -0
  299. package/esm2022/v-angular/checkbox/checkbox.component.mjs +74 -0
  300. package/esm2022/v-angular/checkbox/checkbox.module.mjs +21 -0
  301. package/esm2022/v-angular/checkbox/index.mjs +3 -0
  302. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  303. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  304. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  305. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  306. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  307. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
  308. package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
  309. package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
  310. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
  311. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  312. package/esm2022/v-angular/datepicker/index.mjs +17 -0
  313. package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
  314. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  315. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  316. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  317. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +496 -0
  318. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  319. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  320. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  321. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +75 -0
  322. package/esm2022/v-angular/drag-drop/index.mjs +5 -0
  323. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +271 -0
  324. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  325. package/esm2022/v-angular/dropdown/dropdown.component.mjs +246 -0
  326. package/esm2022/v-angular/dropdown/dropdown.module.mjs +38 -0
  327. package/esm2022/v-angular/dropdown/index.mjs +6 -0
  328. package/esm2022/v-angular/dropdown/typeahead/index.mjs +6 -0
  329. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  330. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  331. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  332. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  333. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  334. package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
  335. package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
  336. package/esm2022/v-angular/external-link/index.mjs +3 -0
  337. package/esm2022/v-angular/i18n/i18n.json +12 -0
  338. package/esm2022/v-angular/i18n/i18n.module.mjs +89 -0
  339. package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
  340. package/esm2022/v-angular/i18n/index.mjs +3 -0
  341. package/esm2022/v-angular/index.mjs +27 -0
  342. package/esm2022/v-angular/info-circle/index.mjs +3 -0
  343. package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
  344. package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
  345. package/esm2022/v-angular/input/index.mjs +3 -0
  346. package/esm2022/v-angular/input/input.component.mjs +218 -0
  347. package/esm2022/v-angular/input/input.module.mjs +41 -0
  348. package/esm2022/v-angular/input-mask/config.mjs +9 -0
  349. package/esm2022/v-angular/input-mask/constants.mjs +2 -0
  350. package/esm2022/v-angular/input-mask/index.mjs +6 -0
  351. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
  352. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
  353. package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
  354. package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
  355. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +217 -0
  356. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +157 -0
  357. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  358. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  359. package/esm2022/v-angular/modal/index.mjs +6 -0
  360. package/esm2022/v-angular/modal/modal.globals.mjs +20 -0
  361. package/esm2022/v-angular/modal/modal.module.mjs +53 -0
  362. package/esm2022/v-angular/modal/modal.types.mjs +2 -0
  363. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +253 -0
  364. package/esm2022/v-angular/pagination/index.mjs +3 -0
  365. package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
  366. package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
  367. package/esm2022/v-angular/radio/index.mjs +3 -0
  368. package/esm2022/v-angular/radio/radio.component.mjs +132 -0
  369. package/esm2022/v-angular/radio/radio.module.mjs +21 -0
  370. package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +5 -0
  371. package/esm2022/v-angular/slug/index.mjs +3 -0
  372. package/esm2022/v-angular/slug/slug.module.mjs +18 -0
  373. package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
  374. package/esm2022/v-angular/table/index.mjs +9 -0
  375. package/esm2022/v-angular/table/table.component.mjs +387 -0
  376. package/esm2022/v-angular/table/table.directive.mjs +110 -0
  377. package/esm2022/v-angular/table/table.models.mjs +2 -0
  378. package/esm2022/v-angular/table/table.module.mjs +40 -0
  379. package/esm2022/v-angular/table/table.tools.mjs +29 -0
  380. package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
  381. package/esm2022/v-angular/tabs/index.mjs +8 -0
  382. package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
  383. package/esm2022/v-angular/tabs/tabs.component.mjs +260 -0
  384. package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
  385. package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
  386. package/esm2022/v-angular/textarea/index.mjs +3 -0
  387. package/esm2022/v-angular/textarea/textarea.component.mjs +105 -0
  388. package/esm2022/v-angular/textarea/textarea.module.mjs +34 -0
  389. package/esm2022/v-angular/toast/index.mjs +8 -0
  390. package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
  391. package/esm2022/v-angular/toast/toast.component.mjs +70 -0
  392. package/esm2022/v-angular/toast/toast.models.mjs +8 -0
  393. package/esm2022/v-angular/toast/toast.module.mjs +21 -0
  394. package/esm2022/v-angular/tooltip/index.mjs +3 -0
  395. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +293 -0
  396. package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
  397. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
  398. package/esm2022/v-angular/v-angular.module.mjs +120 -0
  399. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +141 -0
  400. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -0
  401. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +102 -0
  402. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  403. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +50 -0
  404. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -0
  405. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +270 -0
  406. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -0
  407. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +97 -0
  408. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -0
  409. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +162 -0
  410. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -0
  411. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +284 -0
  412. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -0
  413. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +83 -0
  414. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -0
  415. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +377 -0
  416. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -0
  417. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +197 -0
  418. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -0
  419. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +63 -0
  420. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -0
  421. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +58 -0
  422. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  423. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +113 -0
  424. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -0
  425. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +135 -0
  426. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -0
  427. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +204 -0
  428. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -0
  429. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +76 -0
  430. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
  431. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
  432. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
  433. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +318 -0
  434. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -0
  435. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +49 -0
  436. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -0
  437. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +131 -0
  438. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -0
  439. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +33 -0
  440. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -0
  441. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +73 -0
  442. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -0
  443. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +98 -0
  444. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -0
  445. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +88 -0
  446. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -0
  447. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
  448. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
  449. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +685 -0
  450. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
  451. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +1037 -0
  452. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -0
  453. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +58 -0
  454. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -0
  455. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +198 -0
  456. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -0
  457. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +53 -0
  458. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -0
  459. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +227 -0
  460. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -0
  461. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +262 -0
  462. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -0
  463. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +717 -0
  464. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -0
  465. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
  466. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
  467. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +156 -0
  468. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -0
  469. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +49 -0
  470. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -0
  471. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +585 -0
  472. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
  473. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +365 -0
  474. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
  475. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +141 -0
  476. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -0
  477. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
  478. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
  479. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +374 -0
  480. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -0
  481. package/fesm2022/sebgroup-green-angular-v-angular.mjs +7538 -0
  482. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -0
  483. package/fesm2022/sebgroup-green-angular.mjs +2229 -0
  484. package/fesm2022/sebgroup-green-angular.mjs.map +1 -0
  485. package/index.d.ts +17 -0
  486. package/lib/accordion/accordion-list-item.component.d.ts +16 -0
  487. package/lib/accordion/accordion.component.d.ts +16 -0
  488. package/lib/accordion/accordion.module.d.ts +9 -0
  489. package/lib/accordion/index.d.ts +3 -0
  490. package/lib/badge/badge.component.d.ts +25 -0
  491. package/lib/badge/badge.module.d.ts +8 -0
  492. package/lib/badge/index.d.ts +2 -0
  493. package/lib/button/button.component.d.ts +9 -0
  494. package/lib/button/button.module.d.ts +8 -0
  495. package/lib/button/index.d.ts +2 -0
  496. package/lib/cell-table/cell-table-item.component.d.ts +14 -0
  497. package/lib/cell-table/cell-table.component.d.ts +44 -0
  498. package/lib/cell-table/cell-table.module.d.ts +10 -0
  499. package/lib/cell-table/cell-table.types.d.ts +34 -0
  500. package/lib/cell-table/cell-underline.directive.d.ts +14 -0
  501. package/lib/cell-table/index.d.ts +3 -0
  502. package/lib/context-menu/context-menu.component.d.ts +44 -0
  503. package/lib/context-menu/context-menu.module.d.ts +9 -0
  504. package/lib/context-menu/index.d.ts +2 -0
  505. package/lib/datepicker/datepicker.component.d.ts +59 -0
  506. package/lib/datepicker/datepicker.module.d.ts +9 -0
  507. package/lib/datepicker/index.d.ts +2 -0
  508. package/lib/dropdown/dropdown-button.directive.d.ts +8 -0
  509. package/lib/dropdown/dropdown-option.directive.d.ts +8 -0
  510. package/lib/dropdown/dropdown.component.d.ts +78 -0
  511. package/lib/dropdown/dropdown.module.d.ts +11 -0
  512. package/lib/dropdown/index.d.ts +4 -0
  513. package/lib/green-angular.module.d.ts +21 -0
  514. package/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +19 -0
  515. package/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
  516. package/lib/in-page-wizard/index.d.ts +2 -0
  517. package/lib/modal/index.d.ts +4 -0
  518. package/lib/modal/modal-footer.directive.d.ts +8 -0
  519. package/lib/modal/modal-header.directive.d.ts +8 -0
  520. package/lib/modal/modal.component.d.ts +67 -0
  521. package/lib/modal/modal.module.d.ts +11 -0
  522. package/lib/pagination/index.d.ts +2 -0
  523. package/lib/pagination/pagination.component.d.ts +42 -0
  524. package/lib/pagination/pagination.module.d.ts +8 -0
  525. package/lib/progress-circle/index.d.ts +2 -0
  526. package/lib/progress-circle/progress-circle.component.d.ts +14 -0
  527. package/lib/progress-circle/progress-circle.module.d.ts +8 -0
  528. package/lib/segmented-control/index.d.ts +2 -0
  529. package/lib/segmented-control/segmented-control.component.d.ts +11 -0
  530. package/lib/segmented-control/segmented-control.module.d.ts +9 -0
  531. package/lib/shared/core-element/core-element.directive.d.ts +13 -0
  532. package/lib/shared/core-element/core-element.module.d.ts +8 -0
  533. package/lib/shared/core-element/index.d.ts +2 -0
  534. package/lib/shared/index.d.ts +3 -0
  535. package/lib/shared/on-scroll.directive.d.ts +14 -0
  536. package/lib/shared/shared.module.d.ts +8 -0
  537. package/lib/slider/index.d.ts +2 -0
  538. package/lib/slider/slider.component.d.ts +38 -0
  539. package/lib/slider/slider.module.d.ts +9 -0
  540. package/lib/sortable-list/index.d.ts +2 -0
  541. package/lib/sortable-list/sortable-list.component.d.ts +91 -0
  542. package/lib/sortable-list/sortable-list.module.d.ts +10 -0
  543. package/package.json +308 -0
  544. package/src/lib/accordion/accordion-list-item.component.d.ts +16 -0
  545. package/src/lib/accordion/accordion.component.d.ts +16 -0
  546. package/src/lib/accordion/accordion.module.d.ts +9 -0
  547. package/src/lib/accordion/index.d.ts +3 -0
  548. package/src/lib/badge/badge.component.d.ts +25 -0
  549. package/src/lib/badge/badge.module.d.ts +8 -0
  550. package/src/lib/badge/index.d.ts +2 -0
  551. package/src/lib/button/button.component.d.ts +9 -0
  552. package/src/lib/button/button.module.d.ts +8 -0
  553. package/src/lib/button/index.d.ts +2 -0
  554. package/src/lib/cell-table/cell-table-item.component.d.ts +14 -0
  555. package/src/lib/cell-table/cell-table.component.d.ts +44 -0
  556. package/src/lib/cell-table/cell-table.module.d.ts +10 -0
  557. package/src/lib/cell-table/cell-table.types.d.ts +34 -0
  558. package/src/lib/cell-table/cell-underline.directive.d.ts +14 -0
  559. package/src/lib/cell-table/index.d.ts +3 -0
  560. package/src/lib/context-menu/context-menu.component.d.ts +44 -0
  561. package/src/lib/context-menu/context-menu.module.d.ts +9 -0
  562. package/src/lib/context-menu/index.d.ts +2 -0
  563. package/src/lib/datepicker/datepicker.component.d.ts +59 -0
  564. package/src/lib/datepicker/datepicker.module.d.ts +9 -0
  565. package/src/lib/datepicker/index.d.ts +2 -0
  566. package/src/lib/dropdown/dropdown-button.directive.d.ts +8 -0
  567. package/src/lib/dropdown/dropdown-option.directive.d.ts +8 -0
  568. package/src/lib/dropdown/dropdown.component.d.ts +78 -0
  569. package/src/lib/dropdown/dropdown.module.d.ts +11 -0
  570. package/src/lib/dropdown/index.d.ts +4 -0
  571. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +19 -0
  572. package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +8 -0
  573. package/src/lib/in-page-wizard/index.d.ts +2 -0
  574. package/src/lib/modal/index.d.ts +4 -0
  575. package/src/lib/modal/modal-footer.directive.d.ts +8 -0
  576. package/src/lib/modal/modal-header.directive.d.ts +8 -0
  577. package/src/lib/modal/modal.component.d.ts +67 -0
  578. package/src/lib/modal/modal.module.d.ts +11 -0
  579. package/src/lib/pagination/index.d.ts +2 -0
  580. package/src/lib/pagination/pagination.component.d.ts +42 -0
  581. package/src/lib/pagination/pagination.module.d.ts +8 -0
  582. package/src/lib/progress-circle/index.d.ts +2 -0
  583. package/src/lib/progress-circle/progress-circle.component.d.ts +14 -0
  584. package/src/lib/progress-circle/progress-circle.module.d.ts +8 -0
  585. package/src/lib/segmented-control/index.d.ts +2 -0
  586. package/src/lib/segmented-control/segmented-control.component.d.ts +11 -0
  587. package/src/lib/segmented-control/segmented-control.module.d.ts +9 -0
  588. package/src/lib/shared/core-element/core-element.directive.d.ts +13 -0
  589. package/src/lib/shared/core-element/core-element.module.d.ts +8 -0
  590. package/src/lib/shared/core-element/index.d.ts +2 -0
  591. package/src/lib/shared/index.d.ts +3 -0
  592. package/src/lib/shared/on-scroll.directive.d.ts +14 -0
  593. package/src/lib/shared/shared.module.d.ts +8 -0
  594. package/src/lib/slider/index.d.ts +2 -0
  595. package/src/lib/slider/slider.component.d.ts +38 -0
  596. package/src/lib/slider/slider.module.d.ts +9 -0
  597. package/src/lib/sortable-list/index.d.ts +2 -0
  598. package/src/lib/sortable-list/sortable-list.component.d.ts +91 -0
  599. package/src/lib/sortable-list/sortable-list.module.d.ts +10 -0
  600. package/src/v-angular/account-number/README.md +70 -0
  601. package/src/v-angular/account-number/account-number.module.d.ts +8 -0
  602. package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
  603. package/src/v-angular/account-number/index.d.ts +2 -0
  604. package/src/v-angular/alert/alert.component.d.ts +19 -0
  605. package/src/v-angular/alert/alert.models.d.ts +13 -0
  606. package/src/v-angular/alert/alert.module.d.ts +8 -0
  607. package/src/v-angular/alert/index.d.ts +3 -0
  608. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +130 -0
  609. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  610. package/src/v-angular/base-control-value-accessor/index.d.ts +2 -0
  611. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  612. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  613. package/src/v-angular/breadcrumbs/index.d.ts +2 -0
  614. package/src/v-angular/button/button.component.d.ts +62 -0
  615. package/src/v-angular/button/button.module.d.ts +10 -0
  616. package/src/v-angular/button/index.d.ts +2 -0
  617. package/src/v-angular/card/card.component.d.ts +5 -0
  618. package/src/v-angular/card/card.module.d.ts +8 -0
  619. package/src/v-angular/card/index.d.ts +2 -0
  620. package/src/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
  621. package/src/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
  622. package/src/v-angular/character-countdown/index.d.ts +2 -0
  623. package/src/v-angular/checkbox/checkbox.component.d.ts +28 -0
  624. package/src/v-angular/checkbox/checkbox.module.d.ts +10 -0
  625. package/src/v-angular/checkbox/index.d.ts +2 -0
  626. package/src/v-angular/core/core.globals.d.ts +13 -0
  627. package/src/v-angular/core/core.utils.d.ts +23 -0
  628. package/src/v-angular/core/index.d.ts +2 -0
  629. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  630. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  631. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  632. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  633. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  634. package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  635. package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
  636. package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
  637. package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  638. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  639. package/src/v-angular/datepicker/index.d.ts +13 -0
  640. package/src/v-angular/datepicker/models/dates.d.ts +15 -0
  641. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  642. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  643. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  644. package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  645. package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  646. package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  647. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  648. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  649. package/src/v-angular/drag-drop/index.d.ts +4 -0
  650. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +96 -0
  651. package/src/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  652. package/src/v-angular/dropdown/dropdown.component.d.ts +103 -0
  653. package/src/v-angular/dropdown/dropdown.module.d.ts +13 -0
  654. package/src/v-angular/dropdown/index.d.ts +5 -0
  655. package/src/v-angular/dropdown/typeahead/index.d.ts +5 -0
  656. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  657. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  658. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  659. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  660. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  661. package/src/v-angular/external-link/external-link.directive.d.ts +17 -0
  662. package/src/v-angular/external-link/external-link.module.d.ts +8 -0
  663. package/src/v-angular/external-link/index.d.ts +2 -0
  664. package/src/v-angular/i18n/i18n.module.d.ts +15 -0
  665. package/src/v-angular/i18n/i18n.test.module.d.ts +27 -0
  666. package/src/v-angular/i18n/index.d.ts +2 -0
  667. package/src/v-angular/info-circle/index.d.ts +2 -0
  668. package/src/v-angular/info-circle/info-circle.component.d.ts +16 -0
  669. package/src/v-angular/info-circle/info-circle.module.d.ts +10 -0
  670. package/src/v-angular/input/index.d.ts +2 -0
  671. package/src/v-angular/input/input.component.d.ts +85 -0
  672. package/src/v-angular/input/input.module.d.ts +13 -0
  673. package/src/v-angular/input-mask/config.d.ts +6 -0
  674. package/src/v-angular/input-mask/constants.d.ts +2 -0
  675. package/src/v-angular/input-mask/index.d.ts +5 -0
  676. package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  677. package/src/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  678. package/src/v-angular/input-mask/input-mask.module.d.ts +11 -0
  679. package/src/v-angular/input-mask/input-mask.types.d.ts +20 -0
  680. package/src/v-angular/modal/dialog/dialog.component.d.ts +64 -0
  681. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +47 -0
  682. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  683. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  684. package/src/v-angular/modal/index.d.ts +5 -0
  685. package/src/v-angular/modal/modal.globals.d.ts +13 -0
  686. package/src/v-angular/modal/modal.module.d.ts +15 -0
  687. package/src/v-angular/modal/modal.types.d.ts +5 -0
  688. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +83 -0
  689. package/src/v-angular/pagination/index.d.ts +2 -0
  690. package/src/v-angular/pagination/pagination.component.d.ts +64 -0
  691. package/src/v-angular/pagination/pagination.module.d.ts +12 -0
  692. package/src/v-angular/radio/index.d.ts +2 -0
  693. package/src/v-angular/radio/radio.component.d.ts +49 -0
  694. package/src/v-angular/radio/radio.module.d.ts +10 -0
  695. package/src/v-angular/slug/index.d.ts +2 -0
  696. package/src/v-angular/slug/slug.module.d.ts +8 -0
  697. package/src/v-angular/slug/slug.pipe.d.ts +12 -0
  698. package/src/v-angular/table/index.d.ts +5 -0
  699. package/src/v-angular/table/table.component.d.ts +229 -0
  700. package/src/v-angular/table/table.directive.d.ts +36 -0
  701. package/src/v-angular/table/table.models.d.ts +62 -0
  702. package/src/v-angular/table/table.module.d.ts +12 -0
  703. package/src/v-angular/table/table.tools.d.ts +5 -0
  704. package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
  705. package/src/v-angular/tabs/index.d.ts +4 -0
  706. package/src/v-angular/tabs/tab.directive.d.ts +37 -0
  707. package/src/v-angular/tabs/tabs.component.d.ts +65 -0
  708. package/src/v-angular/tabs/tabs.models.d.ts +25 -0
  709. package/src/v-angular/tabs/tabs.module.d.ts +11 -0
  710. package/src/v-angular/textarea/index.d.ts +2 -0
  711. package/src/v-angular/textarea/textarea.component.d.ts +45 -0
  712. package/src/v-angular/textarea/textarea.module.d.ts +12 -0
  713. package/src/v-angular/toast/index.d.ts +4 -0
  714. package/src/v-angular/toast/toast-message.service.d.ts +17 -0
  715. package/src/v-angular/toast/toast.component.d.ts +22 -0
  716. package/src/v-angular/toast/toast.models.d.ts +15 -0
  717. package/src/v-angular/toast/toast.module.d.ts +10 -0
  718. package/src/v-angular/tooltip/index.d.ts +2 -0
  719. package/src/v-angular/tooltip/tooltip.directive.d.ts +108 -0
  720. package/src/v-angular/tooltip/tooltip.module.d.ts +8 -0
  721. package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  722. package/v-angular/alert/alert.component.d.ts +19 -0
  723. package/v-angular/alert/alert.models.d.ts +13 -0
  724. package/v-angular/alert/alert.module.d.ts +8 -0
  725. package/v-angular/alert/index.d.ts +3 -0
  726. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +130 -0
  727. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  728. package/v-angular/base-control-value-accessor/index.d.ts +2 -0
  729. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  730. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  731. package/v-angular/breadcrumbs/index.d.ts +2 -0
  732. package/v-angular/button/button.component.d.ts +62 -0
  733. package/v-angular/button/button.module.d.ts +10 -0
  734. package/v-angular/button/index.d.ts +2 -0
  735. package/v-angular/card/card.component.d.ts +5 -0
  736. package/v-angular/card/card.module.d.ts +8 -0
  737. package/v-angular/card/index.d.ts +2 -0
  738. package/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
  739. package/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
  740. package/v-angular/character-countdown/index.d.ts +2 -0
  741. package/v-angular/checkbox/checkbox.component.d.ts +28 -0
  742. package/v-angular/checkbox/checkbox.module.d.ts +10 -0
  743. package/v-angular/checkbox/index.d.ts +2 -0
  744. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  745. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  746. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  747. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  748. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  749. package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  750. package/v-angular/datepicker/datepicker.models.d.ts +50 -0
  751. package/v-angular/datepicker/datepicker.module.d.ts +19 -0
  752. package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  753. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  754. package/v-angular/datepicker/index.d.ts +13 -0
  755. package/v-angular/datepicker/models/dates.d.ts +15 -0
  756. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  757. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  758. package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  759. package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  760. package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  761. package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  762. package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  763. package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  764. package/v-angular/drag-drop/index.d.ts +4 -0
  765. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +96 -0
  766. package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  767. package/v-angular/dropdown/dropdown.component.d.ts +103 -0
  768. package/v-angular/dropdown/dropdown.module.d.ts +13 -0
  769. package/v-angular/dropdown/index.d.ts +5 -0
  770. package/v-angular/dropdown/typeahead/index.d.ts +5 -0
  771. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  772. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  773. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  774. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  775. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  776. package/v-angular/external-link/external-link.directive.d.ts +17 -0
  777. package/v-angular/external-link/external-link.module.d.ts +8 -0
  778. package/v-angular/external-link/index.d.ts +2 -0
  779. package/v-angular/i18n/i18n.module.d.ts +15 -0
  780. package/v-angular/i18n/i18n.test.module.d.ts +27 -0
  781. package/v-angular/i18n/index.d.ts +2 -0
  782. package/v-angular/index.d.ts +26 -0
  783. package/v-angular/info-circle/index.d.ts +2 -0
  784. package/v-angular/info-circle/info-circle.component.d.ts +16 -0
  785. package/v-angular/info-circle/info-circle.module.d.ts +10 -0
  786. package/v-angular/input/index.d.ts +2 -0
  787. package/v-angular/input/input.component.d.ts +85 -0
  788. package/v-angular/input/input.module.d.ts +13 -0
  789. package/v-angular/input-mask/config.d.ts +6 -0
  790. package/v-angular/input-mask/constants.d.ts +2 -0
  791. package/v-angular/input-mask/index.d.ts +5 -0
  792. package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  793. package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  794. package/v-angular/input-mask/input-mask.module.d.ts +11 -0
  795. package/v-angular/input-mask/input-mask.types.d.ts +20 -0
  796. package/v-angular/modal/dialog/dialog.component.d.ts +64 -0
  797. package/v-angular/modal/fold-out/fold-out.component.d.ts +47 -0
  798. package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  799. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  800. package/v-angular/modal/index.d.ts +5 -0
  801. package/v-angular/modal/modal.globals.d.ts +13 -0
  802. package/v-angular/modal/modal.module.d.ts +15 -0
  803. package/v-angular/modal/modal.types.d.ts +5 -0
  804. package/v-angular/modal/slide-out/slide-out.component.d.ts +83 -0
  805. package/v-angular/pagination/index.d.ts +2 -0
  806. package/v-angular/pagination/pagination.component.d.ts +64 -0
  807. package/v-angular/pagination/pagination.module.d.ts +12 -0
  808. package/v-angular/radio/index.d.ts +2 -0
  809. package/v-angular/radio/radio.component.d.ts +49 -0
  810. package/v-angular/radio/radio.module.d.ts +10 -0
  811. package/v-angular/slug/index.d.ts +2 -0
  812. package/v-angular/slug/slug.module.d.ts +8 -0
  813. package/v-angular/slug/slug.pipe.d.ts +12 -0
  814. package/v-angular/table/index.d.ts +5 -0
  815. package/v-angular/table/table.component.d.ts +229 -0
  816. package/v-angular/table/table.directive.d.ts +36 -0
  817. package/v-angular/table/table.models.d.ts +62 -0
  818. package/v-angular/table/table.module.d.ts +12 -0
  819. package/v-angular/table/table.tools.d.ts +5 -0
  820. package/v-angular/table/tr-thook.pipe.d.ts +7 -0
  821. package/v-angular/tabs/index.d.ts +4 -0
  822. package/v-angular/tabs/tab.directive.d.ts +37 -0
  823. package/v-angular/tabs/tabs.component.d.ts +65 -0
  824. package/v-angular/tabs/tabs.models.d.ts +25 -0
  825. package/v-angular/tabs/tabs.module.d.ts +11 -0
  826. package/v-angular/textarea/index.d.ts +2 -0
  827. package/v-angular/textarea/textarea.component.d.ts +45 -0
  828. package/v-angular/textarea/textarea.module.d.ts +12 -0
  829. package/v-angular/toast/index.d.ts +4 -0
  830. package/v-angular/toast/toast-message.service.d.ts +17 -0
  831. package/v-angular/toast/toast.component.d.ts +22 -0
  832. package/v-angular/toast/toast.models.d.ts +15 -0
  833. package/v-angular/toast/toast.module.d.ts +10 -0
  834. package/v-angular/tooltip/index.d.ts +2 -0
  835. package/v-angular/tooltip/tooltip.directive.d.ts +108 -0
  836. package/v-angular/tooltip/tooltip.module.d.ts +8 -0
  837. package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  838. package/v-angular/v-angular.module.d.ts +33 -0
@@ -0,0 +1,246 @@
1
+ import '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js';
2
+ import { ChangeDetectorRef, Component, ContentChild, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, Self, TemplateRef, } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
5
+ import { fromEvent } from 'rxjs';
6
+ import { NggvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
7
+ import { DropdownUtils, } from '@sebgroup/green-angular/src/v-angular/core';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@sebgroup/green-angular/src/v-angular/core";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@sebgroup/green-angular/src/lib/shared";
13
+ import * as i5 from "@jsverse/transloco";
14
+ import * as i6 from "./dropdown-list/dropdown-list.component";
15
+ /**
16
+ * A dropdown allows the user to select an option from a list.
17
+ * Dropdowns enables users to make a quick selection of the available options for a specific entry.
18
+ * https://designlibrary.sebgroup.com/components/component-dropdown
19
+ */
20
+ export class NggvDropdownComponent extends NggvBaseControlValueAccessorComponent {
21
+ /** List of {@link Option} and {@link OptionGroup} listed when dropdown is expanded. */
22
+ set options(value) {
23
+ // update options
24
+ this._options = value;
25
+ // already has a null/undefined key
26
+ const nullishOption = this.dropdownUtils
27
+ .flattenOptions(value, false)
28
+ .find((option) => option.key == null);
29
+ // if the dropdown is optional, add a null value to deselect option
30
+ if (!this.required && !nullishOption && this.allowControlNullishOption) {
31
+ this._options = [this.defaultNullishOption].concat(this._options);
32
+ }
33
+ // set default value and emit if there is only one option
34
+ if (value.length === 1 && this.required && this.selectOnSingleOption) {
35
+ const onlyOption = this.dropdownUtils.flattenOptions(value, false)[0];
36
+ this.updateModel(onlyOption);
37
+ return;
38
+ }
39
+ // don't update local state if we shouldn't control nullish value and we cant find the selected value amongst the options
40
+ const matchingOption = this.dropdownUtils
41
+ .flattenOptions(value, false)
42
+ .find((option) => option.key == this.ngControl?.value);
43
+ if (!this.allowControlNullishOption && !matchingOption)
44
+ return;
45
+ // Update local state
46
+ this.writeValue(this.ngControl?.value);
47
+ }
48
+ get options() {
49
+ return this._options;
50
+ }
51
+ /** @internal nullish option. */
52
+ get defaultNullishOption() {
53
+ return { key: null, label: this.placeholder ?? '\u00A0' };
54
+ }
55
+ constructor(ngControl, translocoScope, cdr, dropdownUtils) {
56
+ super(ngControl, translocoScope, cdr);
57
+ this.ngControl = ngControl;
58
+ this.translocoScope = translocoScope;
59
+ this.cdr = cdr;
60
+ this.dropdownUtils = dropdownUtils;
61
+ /** Special property used for selecting DOM elements during automated UI testing. */
62
+ this.thook = 'dropdown';
63
+ /** The additional amount to show when option is scrolled into view. */
64
+ this.scrollOffset = 24;
65
+ /**
66
+ * Allow this component to add/ remove nullish options based on wether the control is required or not
67
+ * Defaults to true.
68
+ */
69
+ this.allowControlNullishOption = true;
70
+ /**
71
+ * If only one option exists in options[], default is to select it.
72
+ * This input can be used to alter that behaviour so it doesn't automatically
73
+ * select a value if it's the only one.
74
+ * Defaults to true.
75
+ */
76
+ this.selectOnSingleOption = true;
77
+ /**
78
+ * Emits changes of the expanded state of the dropdown
79
+ */
80
+ this.expandedChange = new EventEmitter();
81
+ /** The current expanded state of the dropdown options. */
82
+ this.expanded = false;
83
+ /** The current option selected based on numeric index. */
84
+ this.activeIndex = -1;
85
+ this.keyEvent = {};
86
+ this._options = [];
87
+ }
88
+ ngOnChanges(changes) {
89
+ if (changes.required?.currentValue !== undefined) {
90
+ const isRequired = changes.required.currentValue;
91
+ // remove nullish option
92
+ const hasNullishOption = this.dropdownUtils.flattenOptions(this._options, false)[0]?.key == null;
93
+ // if required, remove nullish option
94
+ if (isRequired && hasNullishOption && this.allowControlNullishOption) {
95
+ this._options = this._options.slice(1);
96
+ return;
97
+ }
98
+ // if not required, add nullish option
99
+ if (!isRequired && !hasNullishOption && this.allowControlNullishOption) {
100
+ this._options = [this.defaultNullishOption].concat(this._options);
101
+ return;
102
+ }
103
+ }
104
+ }
105
+ ngOnDestroy() {
106
+ this.onClickSubscription?.unsubscribe();
107
+ }
108
+ /** @internal override to correctly set state from form value */
109
+ writeValue(value) {
110
+ const options = this.dropdownUtils.flattenOptions(this._options, false);
111
+ this.state = options.find((option) => option.key === value);
112
+ }
113
+ // ----------------------------------------------------------------------------
114
+ // EVENTS
115
+ // ----------------------------------------------------------------------------
116
+ /** @internal */
117
+ onSelectChange(option) {
118
+ if (option.disabled)
119
+ return;
120
+ this.updateModel(option);
121
+ this.setExpanded(false);
122
+ }
123
+ // /**
124
+ // * @internal
125
+ // * Enter toggles the dropdown, home, end, and, arrows change the index.
126
+ // * @param event fired containing which key was released.
127
+ // */
128
+ onKeyUp(event) {
129
+ this.keyEvent = event;
130
+ }
131
+ /**
132
+ * Closes the dropdown on click outside.
133
+ */
134
+ subscribeToOutsideClickEvent() {
135
+ this.onClickSubscription = fromEvent(document, 'click').subscribe({
136
+ next: (event) => {
137
+ if (this.expanded &&
138
+ !this.inputRef?.nativeElement.contains(event.target)) {
139
+ this.toggleDropdown();
140
+ this.onClickSubscription?.unsubscribe();
141
+ }
142
+ },
143
+ });
144
+ }
145
+ // ----------------------------------------------------------------------------
146
+ // HELPERS
147
+ // ----------------------------------------------------------------------------
148
+ /**
149
+ * Set the dropdown value to given option.
150
+ * @param value the dropdown option to select.
151
+ */
152
+ updateModel(value) {
153
+ this.state = value;
154
+ this.onChange(value.key);
155
+ }
156
+ /** Toggle the expanded state of the dropdown options. */
157
+ toggleDropdown() {
158
+ this.setExpanded(!this.expanded);
159
+ this.cdr.detectChanges();
160
+ }
161
+ /**
162
+ * Set the expanded state of the dropdown options. If true the options are shown below the field.
163
+ * Activate on click event to be able to close dropdown on click outside.
164
+ * @param state the expanded state which to set.
165
+ */
166
+ setExpanded(state = true) {
167
+ this.expanded = state;
168
+ this.expandedChange.emit(this.expanded);
169
+ if (this.expanded)
170
+ this.subscribeToOutsideClickEvent();
171
+ if (!this.expanded)
172
+ this.onTouched();
173
+ }
174
+ /* TYPE CASTS */
175
+ /**
176
+ * Typecast anything to an {@link Option}.
177
+ * @param option the object to typecast.
178
+ */
179
+ castOption(option) {
180
+ return option;
181
+ }
182
+ /**
183
+ * Typecast anything to an {@link OptionGroup}.
184
+ * @param group the object to typecast.
185
+ */
186
+ castGroup(group) {
187
+ return group;
188
+ }
189
+ /* TYPE CHECKS */
190
+ /**
191
+ * Returns true if argument is an {@link Option}.
192
+ * @param option the object to check.
193
+ */
194
+ isOption(option) {
195
+ return !('options' in option);
196
+ }
197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</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 [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%)}:host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host button{font-weight:500;display:inline-flex;justify-content:center;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;background:transparent;border-color:#007ac7;color:#007ac7;--color: rgb(0, 122, 199);background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-800);--sg-border-color: var(--grey-800);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:inherit;font-weight:400;line-height:1.125;margin-bottom:.5rem;margin-top:.5rem;width:100%}@media screen and (-ms-high-contrast: active){:host button{border:2px solid currentcolor}}:host button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}:host button:focus:not(:focus-visible){box-shadow:none;outline:0}:host button:focus,:host button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host button:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host button[aria-selected=true],:host button:active,:host button.active,:host button.active:hover,:host button:active:hover{background-color:#007ac7;color:#fff;--background: rgb(0, 122, 199);--color: rgb(255, 255, 255);border-color:#007ac7}:host button:disabled,:host button.disabled,:host button[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 button:disabled::placeholder,:host button.disabled::placeholder,:host button[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button:not(:disabled,.disabled,[aria-disabled]):hover{--background: var(--grey-400);--color: var(--grey-1000);background-color:var(--grey-400);color:var(--grey-1000);border-color:var(--grey-1000)}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i6.NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges"], outputs: ["selectedValueChanged", "closed"] }] }); }
199
+ }
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownComponent, decorators: [{
201
+ type: Component,
202
+ args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</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 [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%)}:host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host button{font-weight:500;display:inline-flex;justify-content:center;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;background:transparent;border-color:#007ac7;color:#007ac7;--color: rgb(0, 122, 199);background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-800);--sg-border-color: var(--grey-800);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:inherit;font-weight:400;line-height:1.125;margin-bottom:.5rem;margin-top:.5rem;width:100%}@media screen and (-ms-high-contrast: active){:host button{border:2px solid currentcolor}}:host button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}:host button:focus:not(:focus-visible){box-shadow:none;outline:0}:host button:focus,:host button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host button:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host button[aria-selected=true],:host button:active,:host button.active,:host button.active:hover,:host button:active:hover{background-color:#007ac7;color:#fff;--background: rgb(0, 122, 199);--color: rgb(255, 255, 255);border-color:#007ac7}:host button:disabled,:host button.disabled,:host button[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 button:disabled::placeholder,:host button.disabled::placeholder,:host button[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button:not(:disabled,.disabled,[aria-disabled]):hover{--background: var(--grey-400);--color: var(--grey-1000);background-color:var(--grey-400);color:var(--grey-1000);border-color:var(--grey-1000)}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"] }]
203
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
204
+ type: Self
205
+ }, {
206
+ type: Optional
207
+ }] }, { type: undefined, decorators: [{
208
+ type: Optional
209
+ }, {
210
+ type: Inject,
211
+ args: [TRANSLOCO_SCOPE]
212
+ }] }, { type: i0.ChangeDetectorRef }, { type: i2.DropdownUtils }], propDecorators: { selectedContentTpl: [{
213
+ type: ContentChild,
214
+ args: ['selectedTpl', { read: TemplateRef }]
215
+ }], optionContentTpl: [{
216
+ type: ContentChild,
217
+ args: ['optionTpl', { read: TemplateRef }]
218
+ }], groupLabelTpl: [{
219
+ type: ContentChild,
220
+ args: ['groupLabelTpl', { read: TemplateRef }]
221
+ }], thook: [{
222
+ type: HostBinding,
223
+ args: ['attr.data-thook']
224
+ }, {
225
+ type: Input
226
+ }], placeholder: [{
227
+ type: Input
228
+ }], ariaLabel: [{
229
+ type: Input
230
+ }], options: [{
231
+ type: Input
232
+ }], scrollOffset: [{
233
+ type: Input
234
+ }], allowControlNullishOption: [{
235
+ type: Input
236
+ }], textToHighlight: [{
237
+ type: Input
238
+ }], selectOnSingleOption: [{
239
+ type: Input
240
+ }], expandedChange: [{
241
+ type: Output
242
+ }], onKeyUp: [{
243
+ type: HostListener,
244
+ args: ['keyup', ['$event']]
245
+ }] } });
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFFOUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDekgsT0FBTyxFQUNMLGFBQWEsR0FJZCxNQUFNLDRDQUE0QyxDQUFBOzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUtYLFNBQVEscUNBQXFDO0lBcUI3Qyx1RkFBdUY7SUFDdkYsSUFBYSxPQUFPLENBQUMsS0FBc0I7UUFDekMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNyQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQUMsQ0FB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LEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFrQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkEwRVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG4gIE9wdGlvbkdyb3VwLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5cbi8qKlxuICogQSBkcm9wZG93biBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGFuIG9wdGlvbiBmcm9tIGEgbGlzdC5cbiAqIERyb3Bkb3ducyBlbmFibGVzIHVzZXJzIHRvIG1ha2UgYSBxdWljayBzZWxlY3Rpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGZvciBhIHNwZWNpZmljIGVudHJ5LlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1kcm9wZG93blxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duQ29tcG9uZW50PFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgZXh0ZW5kcyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBvcHRpb25zIGFuZCBncm91cHMuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncm91cExhYmVsVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBncm91cExhYmVsVHBsOlxuICAgIHwgVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PlxuICAgIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2sgPSAnZHJvcGRvd24nXG5cbiAgLyoqIFRleHQgc2hvd24gYmVmb3JlIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIFNwZWNpZmljIHZhbHVlIGZvciBhcmlhLWxhYmVsLiBJZiBub3QgcHJvdmlkZWQsIGxhYmVsL2xhYmVsVHBsIHdpbGwgYmUgdXNlZC4gKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nXG4gIC8qKiBMaXN0IG9mIHtAbGluayBPcHRpb259IGFuZCB7QGxpbmsgT3B0aW9uR3JvdXB9IGxpc3RlZCB3aGVuIGRyb3Bkb3duIGlzIGV4cGFuZGVkLiAqL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogT3B0aW9uQmFzZTxUPltdKSB7XG4gICAgLy8gdXBkYXRlIG9wdGlvbnNcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICAvLyBhbHJlYWR5IGhhcyBhIG51bGwvdW5kZWZpbmVkIGtleVxuICAgIGNvbnN0IG51bGxpc2hPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IG51bGwpXG4gICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIG9wdGlvbmFsLCBhZGQgYSBudWxsIHZhbHVlIHRvIGRlc2VsZWN0IG9wdGlvblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhbnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWUgYW5kIGVtaXQgaWYgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuc2VsZWN0T25TaW5nbGVPcHRpb24pIHtcbiAgICAgIGNvbnN0IG9ubHlPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVswXVxuICAgICAgdGhpcy51cGRhdGVNb2RlbChvbmx5T3B0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgdXBkYXRlIGxvY2FsIHN0YXRlIGlmIHdlIHNob3VsZG4ndCBjb250cm9sIG51bGxpc2ggdmFsdWUgYW5kIHdlIGNhbnQgZmluZCB0aGUgc2VsZWN0ZWQgdmFsdWUgYW1vbmdzdCB0aGUgb3B0aW9uc1xuICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVxuICAgICAgLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PSB0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gICAgaWYgKCF0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gJiYgIW1hdGNoaW5nT3B0aW9uKSByZXR1cm5cblxuICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBPcHRpb25CYXNlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICAvKiogVGhlIGFkZGl0aW9uYWwgYW1vdW50IHRvIHNob3cgd2hlbiBvcHRpb24gaXMgc2Nyb2xsZWQgaW50byB2aWV3LiAqL1xuICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSAyNFxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGlzIGNvbXBvbmVudCB0byBhZGQvIHJlbW92ZSBudWxsaXNoIG9wdGlvbnMgYmFzZWQgb24gd2V0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkIG9yIG5vdFxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IHRydWVcblxuICAvKiogVGV4dCB0byBoaWdobGlnaHQgaW4gb3B0aW9uICovXG4gIEBJbnB1dCgpIHRleHRUb0hpZ2hsaWdodD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBJZiBvbmx5IG9uZSBvcHRpb24gZXhpc3RzIGluIG9wdGlvbnNbXSwgZGVmYXVsdCBpcyB0byBzZWxlY3QgaXQuXG4gICAqIFRoaXMgaW5wdXQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhhdCBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5XG4gICAqIHNlbGVjdCBhIHZhbHVlIGlmIGl0J3MgdGhlIG9ubHkgb25lLlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T25TaW5nbGVPcHRpb24gPSB0cnVlXG5cbiAgLyoqXG4gICAqIEVtaXRzIGNoYW5nZXMgb2YgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93blxuICAgKi9cbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgLyoqIEBpbnRlcm5hbCBudWxsaXNoIG9wdGlvbi4gKi9cbiAgZ2V0IGRlZmF1bHROdWxsaXNoT3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHsga2V5OiBudWxsLCBsYWJlbDogdGhpcy5wbGFjZWhvbGRlciA/PyAnXFx1MDBBMCcgfVxuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50IGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZVxuICAvKiogVGhlIGN1cnJlbnQgb3B0aW9uIHNlbGVjdGVkIGJhc2VkIG9uIG51bWVyaWMgaW5kZXguICovXG4gIHB1YmxpYyBhY3RpdmVJbmRleCA9IC0xXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByaXZhdGUgb25DbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG5cbiAgcHVibGljIGtleUV2ZW50OiBLZXlib2FyZEV2ZW50ID0ge30gYXMgS2V5Ym9hcmRFdmVudFxuICBwcml2YXRlIF9vcHRpb25zOiBPcHRpb25CYXNlPFQ+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgZHJvcGRvd25VdGlsczogRHJvcGRvd25VdGlsczxLLCBWLCBUPixcbiAgKSB7XG4gICAgc3VwZXIobmdDb250cm9sLCB0cmFuc2xvY29TY29wZSwgY2RyKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlcXVpcmVkPy5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGNoYW5nZXMucmVxdWlyZWQuY3VycmVudFZhbHVlXG4gICAgICAvLyByZW1vdmUgbnVsbGlzaCBvcHRpb25cbiAgICAgIGNvbnN0IGhhc051bGxpc2hPcHRpb24gPVxuICAgICAgICB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModGhpcy5fb3B0aW9ucywgZmFsc2UpWzBdPy5rZXkgPT0gbnVsbFxuICAgICAgLy8gaWYgcmVxdWlyZWQsIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKGlzUmVxdWlyZWQgJiYgaGFzTnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuc2xpY2UoMSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICAvLyBpZiBub3QgcmVxdWlyZWQsIGFkZCBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKCFpc1JlcXVpcmVkICYmICFoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gW3RoaXMuZGVmYXVsdE51bGxpc2hPcHRpb25dLmNvbmNhdCh0aGlzLl9vcHRpb25zKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgb3ZlcnJpZGUgdG8gY29ycmVjdGx5IHNldCBzdGF0ZSBmcm9tIGZvcm0gdmFsdWUgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlcbiAgICB0aGlzLnN0YXRlID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHZhbHVlKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFVkVOVFNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3RDaGFuZ2Uob3B0aW9uOiBUKSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy51cGRhdGVNb2RlbChvcHRpb24pXG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBAaW50ZXJuYWxcbiAgLy8gICogRW50ZXIgdG9nZ2xlcyB0aGUgZHJvcGRvd24sIGhvbWUsIGVuZCwgYW5kLCBhcnJvd3MgY2hhbmdlIHRoZSBpbmRleC5cbiAgLy8gICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgLy8gICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5RXZlbnQgPSBldmVudFxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICovXG4gIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCAmJlxuICAgICAgICAgICF0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpXG4gICAgICAgICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFsdWUgdG8gZ2l2ZW4gb3B0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGRyb3Bkb3duIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS5rZXkpXG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gKi9cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZCghdGhpcy5leHBhbmRlZClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiBJZiB0cnVlIHRoZSBvcHRpb25zIGFyZSBzaG93biBiZWxvdyB0aGUgZmllbGQuXG4gICAqIEFjdGl2YXRlIG9uIGNsaWNrIGV2ZW50IHRvIGJlIGFibGUgdG8gY2xvc2UgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICogQHBhcmFtIHN0YXRlIHRoZSBleHBhbmRlZCBzdGF0ZSB3aGljaCB0byBzZXQuXG4gICAqL1xuICBzZXRFeHBhbmRlZChzdGF0ZSA9IHRydWUpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gc3RhdGVcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZClcbiAgICBpZiAodGhpcy5leHBhbmRlZCkgdGhpcy5zdWJzY3JpYmVUb091dHNpZGVDbGlja0V2ZW50KClcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHRoaXMub25Ub3VjaGVkKClcbiAgfVxuXG4gIC8qIFRZUEUgQ0FTVFMgKi9cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbn0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RPcHRpb24ob3B0aW9uOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gb3B0aW9uXG4gIH1cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIGdyb3VwIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0R3JvdXAoZ3JvdXA6IGFueSk6IE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gZ3JvdXBcbiAgfVxuXG4gIC8qIFRZUEUgQ0hFQ0tTICovXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNPcHRpb24ob3B0aW9uOiBPcHRpb25CYXNlPFQ+KTogb3B0aW9uIGlzIE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gISgnb3B0aW9ucycgaW4gb3B0aW9uKVxuICB9XG59XG4iLCI8IS0tIExBQkVMIC0tPlxuPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCI+XG4gIDxsYWJlbFxuICAgIFtpZF09XCJpZCArICctbGFiZWwnXCJcbiAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRvZ2dsZSdcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJvcHRpb25hbCA9PT0gdHJ1ZSB8fCAocmVxdWlyZWQgIT09IHRydWUgJiYgb3B0aW9uYWwgIT09IGZhbHNlKVwiXG4gICAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgICAgPlxuICAgICAgICAgICh7eyB0KCdsYWJlbC5vcHRpb25hbCcpIH19KVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2xhYmVsPlxuXG4gIDwhLS0gREVTQ1JJUFRJT04gLS0+XG4gIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NrZWRcIj5cbiAgICA8ZGl2XG4gICAgICBbaWRdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtLWxvY2tlZFwiXG4gICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgW2F0dHIudmFsdWVdPVwic3RhdGVcIlxuICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwgJyArIGlkICsgJy1pbnB1dCdcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCIgY2xhc3M9XCJ1bnNldC1zdGF0ZVwiPi08L3NwYW4+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFRwbCB8fCBkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN0YXRlIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBJTlBVVCAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2NrZWRcIj5cbiAgICA8ZGl2ICNpbnB1dCBbaWRdPVwiaWQgKyAnLWlucHV0J1wiIGNsYXNzPVwiZHJvcGRvd25cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW2lkXT1cImlkICsgJy10b2dnbGUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwibmdndi1maWVsZC1kcm9wZG93bl9fbGFiZWwgdG9nZ2xlXCJcbiAgICAgICAgW2NsYXNzLm5nZ3YtZmllbGQtLWVycm9yXT1cImludmFsaWRcIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLXRvZ2dsZSdcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgIGFyaWFMYWJlbCA/IG51bGwgOiBpZCArICctbGFiZWwgJyArIGlkICsgJy10b2dnbGUnXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxuZ2d2LWRyb3Bkb3duLWxpc3RcbiAgICAgICAgI2Ryb3BEb3duTGlzdFxuICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgW3Njcm9sbE9mZnNldF09XCJzY3JvbGxPZmZzZXRcIlxuICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICBbb3B0aW9uQ29udGVudFRwbF09XCJvcHRpb25Db250ZW50VHBsXCJcbiAgICAgICAgW2dyb3VwTGFiZWxUcGxdPVwiZ3JvdXBMYWJlbFRwbFwiXG4gICAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgICAgKGNsb3NlZCk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICAoc2VsZWN0ZWRWYWx1ZUNoYW5nZWQpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L25nZ3YtZHJvcGRvd24tbGlzdD5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEVSUk9SUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tZXJyb3JcIlxuICAgICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgICpuZ0lmPVwiaW52YWxpZCAmJiAoZXJyb3IgfHwgbmdDb250cm9sPy5pbnZhbGlkKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICAgIDxnZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvblxuICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICBbc29saWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgICA+PC9nZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1lcnJvcmxhYmVsJ1wiXG4gICAgICAgICAgPnt7IGVycm9yIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENISUxEUkVOIC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsIGxldC1zdGF0ZT5cbiAgICA8IS0tIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvZXFlcWVxIC0tPlxuICAgIHt7IHN0YXRlPy5rZXkgIT0gbnVsbCAmJiBzdGF0ZT8ubGFiZWwgPyB0KHN0YXRlLmxhYmVsKSA6IHBsYWNlaG9sZGVyIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
3
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
4
+ import { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
5
+ import { NggvTooltipModule } from '@sebgroup/green-angular/src/v-angular/tooltip';
6
+ import { NggvDropdownListComponent } from './dropdown-list/dropdown-list.component';
7
+ import { NggvDropdownComponent } from './dropdown.component';
8
+ import { NggvTypeaheadModule } from './typeahead/typeahead.module';
9
+ import * as i0 from "@angular/core";
10
+ export class NggvDropdownModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, declarations: [NggvDropdownComponent, NggvDropdownListComponent], imports: [CommonModule,
13
+ NggCoreWrapperModule,
14
+ NggvTypeaheadModule,
15
+ NggvTooltipModule,
16
+ NggvI18nModule], exports: [NggvDropdownComponent, NggvDropdownListComponent] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, imports: [CommonModule,
18
+ NggCoreWrapperModule,
19
+ NggvTypeaheadModule,
20
+ NggvTooltipModule,
21
+ NggvI18nModule] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ declarations: [NggvDropdownComponent, NggvDropdownListComponent],
27
+ imports: [
28
+ CommonModule,
29
+ NggCoreWrapperModule,
30
+ NggvTypeaheadModule,
31
+ NggvTooltipModule,
32
+ NggvI18nModule,
33
+ ],
34
+ exports: [NggvDropdownComponent, NggvDropdownListComponent],
35
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQTtBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTs7QUFjbEUsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBWGQscUJBQXFCLEVBQUUseUJBQXlCLGFBRTdELFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixjQUFjLGFBRU4scUJBQXFCLEVBQUUseUJBQXlCO2dIQUcvQyxrQkFBa0IsWUFUM0IsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGNBQWM7OzRGQUtMLGtCQUFrQjtrQkFaOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDaEUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDM0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBOZ2dDb3JlV3JhcHBlck1vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy9saWIvc2hhcmVkJ1xuaW1wb3J0IHsgTmdndkkxOG5Nb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2kxOG4nXG5pbXBvcnQgeyBOZ2d2VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdG9vbHRpcCdcbmltcG9ydCB7IE5nZ3ZEcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWxpc3QvZHJvcGRvd24tbGlzdC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRNb2R1bGUgfSBmcm9tICcuL3R5cGVhaGVhZC90eXBlYWhlYWQubW9kdWxlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ2d2RHJvcGRvd25Db21wb25lbnQsIE5nZ3ZEcm9wZG93bkxpc3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nZ0NvcmVXcmFwcGVyTW9kdWxlLFxuICAgIE5nZ3ZUeXBlYWhlYWRNb2R1bGUsXG4gICAgTmdndlRvb2x0aXBNb2R1bGUsXG4gICAgTmdndkkxOG5Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtOZ2d2RHJvcGRvd25Db21wb25lbnQsIE5nZ3ZEcm9wZG93bkxpc3RDb21wb25lbnRdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZEcm9wZG93bk1vZHVsZSB7fVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './dropdown.component';
2
+ export * from './dropdown.module';
3
+ export * from './dropdown-list';
4
+ export * from './typeahead';
5
+ export * from './dropdown-list';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tbGlzdCdcbmV4cG9ydCAqIGZyb20gJy4vdHlwZWFoZWFkJ1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1saXN0J1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtdi1hbmd1bGFyLWRyb3Bkb3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vc2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtdi1hbmd1bGFyLWRyb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,6 @@
1
+ export * from './typeahead-highlight/typeahead-highlight.component';
2
+ export * from './typeahead-input/typeahead-input.component';
3
+ export * from './typeahead-dropdown-list/typeahead-dropdown-list.component';
4
+ export * from './typeahead.directive';
5
+ export * from './typeahead.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi90eXBlYWhlYWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxREFBcUQsQ0FBQTtBQUNuRSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsNkRBQTZELENBQUE7QUFDM0UsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlYWhlYWQtaGlnaGxpZ2h0L3R5cGVhaGVhZC1oaWdobGlnaHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi90eXBlYWhlYWQtaW5wdXQvdHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vdHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QvdHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi90eXBlYWhlYWQuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlYWhlYWQubW9kdWxlJ1xuIl19
@@ -0,0 +1,98 @@
1
+ import { Component, ElementRef, Inject, Input, Optional, SkipSelf, } from '@angular/core';
2
+ import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
3
+ import { fromEvent, Subject, takeUntil } from 'rxjs';
4
+ import { NggvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
5
+ import { NggvDropdownListComponent } from '../../dropdown-list/dropdown-list.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@sebgroup/green-angular/src/v-angular/tooltip";
9
+ import * as i3 from "../typeahead-highlight/typeahead-highlight.component";
10
+ // Use dropdownList template and combine stylesheets
11
+ export class NggvTypeaheadDropdownListComponent extends NggvDropdownListComponent {
12
+ constructor(translocoScope, element) {
13
+ super(translocoScope);
14
+ this.translocoScope = translocoScope;
15
+ this.element = element;
16
+ this._destroy$ = new Subject();
17
+ }
18
+ ngOnInit() {
19
+ this.handleSelectedValueChanges();
20
+ this.handleFocusChanges();
21
+ }
22
+ ngOnDestroy() {
23
+ this._destroy$.next(true);
24
+ this._destroy$.complete();
25
+ }
26
+ /** @Internal Subscribe to click outside dropdownList and input to close dropdownList */
27
+ subscribeToOutsideClickEvent() {
28
+ this.onClickSubscription = fromEvent(document, 'click')
29
+ .pipe(takeUntil(this._destroy$))
30
+ .subscribe({
31
+ next: (event) => {
32
+ if (this.expanded &&
33
+ !this.element.nativeElement.contains(event.target) &&
34
+ !this.hostComponent.inputRef?.nativeElement.contains(event.target)) {
35
+ this.setExpanded(false);
36
+ this.onClickSubscription?.unsubscribe();
37
+ }
38
+ },
39
+ });
40
+ }
41
+ /** @Internal Update state of the host-input to reflect the selected value */
42
+ handleSelectedValueChanges() {
43
+ this.selectedValueChanged
44
+ .pipe(takeUntil(this._destroy$))
45
+ .subscribe((selected) => {
46
+ if (this.hostComponent.inputRef) {
47
+ this.hostComponent.state = `${this.formatSelected(selected)}`;
48
+ }
49
+ });
50
+ }
51
+ /** @Internal Expand the dropdown when input receives focus. If no state, set empty string in input */
52
+ handleFocusChanges() {
53
+ this.hostComponent.nggvFocus
54
+ .asObservable()
55
+ .pipe(takeUntil(this._destroy$))
56
+ .subscribe(() => {
57
+ if (!this.state)
58
+ this.hostComponent.nggvInput.emit('');
59
+ this.setExpanded(true);
60
+ this.subscribeToOutsideClickEvent();
61
+ });
62
+ }
63
+ /**
64
+ * @internal Formats the selected option to display in the input. Interpolate the returned value
65
+ * since we don't know the return type or label type.
66
+ * @param value The selected value
67
+ * @returns The formatted value
68
+ */
69
+ formatSelected(value) {
70
+ if (value?.key == null)
71
+ return '';
72
+ //If no formatter exists, return the label or empty string
73
+ if (!this.selectedFormatter)
74
+ return value.label ?? '';
75
+ // If a formatter exists, use it
76
+ return this.selectedFormatter(value) ?? '';
77
+ }
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true, skipSelf: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadDropdownListComponent, selector: "nggv-typeahead-dropdown-list", inputs: { hostComponent: "hostComponent", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;width:100%;position:relative}\n", ":host{--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NggvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "tooltipId", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "component", type: i3.NggvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }] }); }
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDropdownListComponent, decorators: [{
82
+ type: Component,
83
+ args: [{ selector: 'nggv-typeahead-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{display:flex;width:100%;position:relative}\n", ":host{--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"] }]
84
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
85
+ type: SkipSelf
86
+ }, {
87
+ type: Optional
88
+ }, {
89
+ type: Inject,
90
+ args: [TRANSLOCO_SCOPE]
91
+ }] }, { type: i0.ElementRef }], propDecorators: { hostComponent: [{
92
+ type: Input
93
+ }], resultFormatter: [{
94
+ type: Input
95
+ }], selectedFormatter: [{
96
+ type: Input
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vdHlwZWFoZWFkL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL2Ryb3Bkb3duLWxpc3QvZHJvcGRvd24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFHcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUE7Ozs7O0FBRXZGLG9EQUFvRDtBQVNwRCxNQUFNLE9BQU8sa0NBQ1gsU0FBUSx5QkFBeUI7SUFhakMsWUFJWSxjQUE4QixFQUNoQyxPQUFtQjtRQUUzQixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7UUFIWCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQVByQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQTtJQVUxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFBO1FBQ2pDLElB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ImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IE9wdGlvbkJhc2UgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ2d2SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0J1xuaW1wb3J0IHsgTmdndkRyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duLWxpc3QvZHJvcGRvd24tbGlzdC5jb21wb25lbnQnXG5cbi8vIFVzZSBkcm9wZG93bkxpc3QgdGVtcGxhdGUgYW5kIGNvbWJpbmUgc3R5bGVzaGVldHNcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtdHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4uLy4uL2Ryb3Bkb3duLWxpc3QvZHJvcGRvd24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC5jb21wb25lbnQuc2NzcycsXG4gICAgJy4uLy4uL2Ryb3Bkb3duLWxpc3QvZHJvcGRvd24tbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnRcbiAgZXh0ZW5kcyBOZ2d2RHJvcGRvd25MaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgaG9zdENvbXBvbmVudCE6IE5nZ3ZJbnB1dENvbXBvbmVudFxuXG4gIC8qKiBGb3JtYXRzIGVhY2ggaXRlbSB0aGF0IGlzIGRpc3BsYXllZCBhcyBhbiBvcHRpb24uIE9ubHkgYXBwbGllcyBmb3JtYXQgaWYgdGhlIG9wdGlvbiBpZiBpdCBpbXBsZW1lbnQgT3B0aW9uIGludGVyZmFjZS4gKi9cbiAgQElucHV0KCkgcmVzdWx0Rm9ybWF0dGVyPzogKG9wdGlvbjogT3B0aW9uQmFzZTxhbnk+KSA9PiBzdHJpbmdcblxuICAvKiogRm9ybWF0cyB0aGUgc2VsZWN0ZWQgaXRlbSBpbiB0aGUgaW5wdXQgd2hlbiBkcm9wZG93biBpcyBvcGVuZWQuIElmIG5vIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGRpc3BsYXkgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvYmplY3RzIGxhYmVsIHByb3BlcnR5ICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkRm9ybWF0dGVyPzogKHNlbGVjdGVkOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTa2lwU2VsZigpXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgKSB7XG4gICAgc3VwZXIodHJhbnNsb2NvU2NvcGUpXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVNlbGVjdGVkVmFsdWVDaGFuZ2VzKClcbiAgICB0aGlzLmhhbmRsZUZvY3VzQ2hhbmdlcygpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KHRydWUpXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqIEBJbnRlcm5hbCBTdWJzY3JpYmUgdG8gY2xpY2sgb3V0c2lkZSBkcm9wZG93bkxpc3QgYW5kIGlucHV0IHRvIGNsb3NlIGRyb3Bkb3duTGlzdCAqL1xuICBwcml2YXRlIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5leHBhbmRlZCAmJlxuICAgICAgICAgICAgIXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgICAgICF0aGlzLmhvc3RDb21wb25lbnQuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICAgICAgICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pXG4gIH1cblxuICAvKiogQEludGVybmFsIFVwZGF0ZSBzdGF0ZSBvZiB0aGUgaG9zdC1pbnB1dCB0byByZWZsZWN0IHRoZSBzZWxlY3RlZCB2YWx1ZSAqL1xuICBwcml2YXRlIGhhbmRsZVNlbGVjdGVkVmFsdWVDaGFuZ2VzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5ob3N0Q29tcG9uZW50LmlucHV0UmVmKSB7XG4gICAgICAgICAgdGhpcy5ob3N0Q29tcG9uZW50LnN0YXRlID0gYCR7dGhpcy5mb3JtYXRTZWxlY3RlZChzZWxlY3RlZCl9YFxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgLyoqIEBJbnRlcm5hbCBFeHBhbmQgdGhlIGRyb3Bkb3duIHdoZW4gaW5wdXQgcmVjZWl2ZXMgZm9jdXMuIElmIG5vIHN0YXRlLCBzZXQgZW1wdHkgc3RyaW5nIGluIGlucHV0ICovXG4gIHByaXZhdGUgaGFuZGxlRm9jdXNDaGFuZ2VzKCkge1xuICAgIHRoaXMuaG9zdENvbXBvbmVudC5uZ2d2Rm9jdXNcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUpIHRoaXMuaG9zdENvbXBvbmVudC5uZ2d2SW5wdXQuZW1pdCgnJylcbiAgICAgICAgdGhpcy5zZXRFeHBhbmRlZCh0cnVlKVxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKVxuICAgICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgRm9ybWF0cyB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0LiBJbnRlcnBvbGF0ZSB0aGUgcmV0dXJuZWQgdmFsdWVcbiAgICogc2luY2Ugd2UgZG9uJ3Qga25vdyB0aGUgcmV0dXJuIHR5cGUgb3IgbGFiZWwgdHlwZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBzZWxlY3RlZCB2YWx1ZVxuICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIGZvcm1hdFNlbGVjdGVkKHZhbHVlOiBPcHRpb25CYXNlPGFueT4pIHtcbiAgICBpZiAodmFsdWU/LmtleSA9PSBudWxsKSByZXR1cm4gJydcbiAgICAvL0lmIG5vIGZvcm1hdHRlciBleGlzdHMsIHJldHVybiB0aGUgbGFiZWwgb3IgZW1wdHkgc3RyaW5nXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKSByZXR1cm4gdmFsdWUubGFiZWwgPz8gJydcbiAgICAvLyBJZiBhIGZvcm1hdHRlciBleGlzdHMsIHVzZSBpdFxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKHZhbHVlKSA/PyAnJ1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgPHVsXG4gICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnMgY2FyZCBvcHRpb25zIGdkcy1yZXNldFwiXG4gICAgW2NsYXNzLmdkcy1kcm9wZG93bl9fb3B0aW9ucy1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbnMnXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIlxuICAgICAgc3RhdGUgPyBpZCArICctb3B0aW9uLScgKyBzdGF0ZT8ua2V5IDogdW5kZWZpbmVkXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiPlxuICAgICAgPCEtLSBPUFRJT04gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzR3JvdXAoaXRlbSlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBPUFRJT04gR1JPVVAgLS0+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIGdyb3VwXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9uLWdyb3VwJ1wiXG4gICAgICAgICpuZ0lmPVwiaXNHcm91cChpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gZ3JvdXAgbGFiZWwgdGVtcGxhdGUgKGRlZmF1bHQgb3IgY3VzdG9tKSAtLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0R3JvdXBUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDx1bCBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImdkcy1yZXNldFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjYXN0R3JvdXAoaXRlbSkub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8IS0tIFRFTVBMQVRFIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgICA8bGlcbiAgICAgICNvcHRpb25SZWZzXG4gICAgICAqbmdJZj1cIiFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbbmdndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmdndlRvb2xUaXAgaWYgY3VzdG9tIHRlbXBsYXRlIGlzIHByb3ZpZGVkIC0tPlxuICAgIDxsaVxuICAgICAgI29wdGlvblJlZnNcbiAgICAgICpuZ0lmPVwiISFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlU3RhdGUob3B0aW9uLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25Db250ZW50VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbGlzdEdyb3VwVGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwTGFiZWxUcGxcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImdyb3VwTGFiZWxUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cExhYmVsVHBsXCI+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNpY0dyb3VwTGFiZWxUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY09wdGlvbkNvbnRlbnRUcGwgbGV0LW9wdGlvbj5cbiAgICA8bmdndi10eXBlYWhlYWQtaGlnaGxpZ2h0XG4gICAgICAqbmdJZj1cIiEhdGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgIFt0ZXh0Q29udGVudF09XCJ0KG9wdGlvbi5sYWJlbClcIlxuICAgID5cbiAgICA8L25nZ3YtdHlwZWFoZWFkLWhpZ2hsaWdodD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRleHRUb0hpZ2hsaWdodFwiPlxuICAgICAge3sgdChvcHRpb24ubGFiZWwpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0dyb3VwTGFiZWxUcGwgbGV0LWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cIm5nZ3YtZ3JvdXAtbGFiZWxcIj57eyB0KGl0ZW0ubGFiZWwpIH19PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==