@sebgroup/green-angular 5.1.1 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/esm2022/lib/shared/core-element/core-element.directive.mjs +1 -2
  2. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +1 -2
  3. package/esm2022/src/v-angular/account-number/account-number.module.mjs +18 -0
  4. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +54 -0
  5. package/esm2022/src/v-angular/account-number/index.mjs +3 -0
  6. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
  7. package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
  8. package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
  9. package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
  10. package/esm2022/src/v-angular/alert/index.mjs +4 -0
  11. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
  12. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  13. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  14. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  15. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  16. package/esm2022/src/v-angular/button/button.component.mjs +9 -9
  17. package/esm2022/src/v-angular/button/button.module.mjs +11 -11
  18. package/esm2022/src/v-angular/card/card.component.mjs +6 -6
  19. package/esm2022/src/v-angular/card/card.module.mjs +9 -9
  20. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  21. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +9 -7
  22. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +14 -12
  23. package/esm2022/src/v-angular/core/core.utils.mjs +35 -1
  24. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  25. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  26. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  27. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  28. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  29. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
  30. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
  31. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
  32. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
  33. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  34. package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
  35. package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
  36. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  37. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  38. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  39. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
  40. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  41. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  42. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  43. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  44. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  45. package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
  46. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
  47. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  48. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +16 -9
  49. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +31 -15
  50. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  51. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  52. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  53. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  54. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  55. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
  56. package/esm2022/src/v-angular/external-link/external-link.module.mjs +9 -9
  57. package/esm2022/src/v-angular/i18n/i18n.module.mjs +12 -12
  58. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +6 -6
  59. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +6 -6
  60. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +11 -11
  61. package/esm2022/src/v-angular/input/input.component.mjs +11 -15
  62. package/esm2022/src/v-angular/input/input.module.mjs +27 -22
  63. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
  64. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +10 -10
  65. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +53 -31
  66. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  67. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  68. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  69. package/esm2022/src/v-angular/modal/modal.module.mjs +38 -27
  70. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  71. package/esm2022/src/v-angular/pagination/index.mjs +3 -0
  72. package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
  73. package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
  74. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
  75. package/esm2022/src/v-angular/radio/radio.component.mjs +14 -12
  76. package/esm2022/src/v-angular/radio/radio.module.mjs +12 -11
  77. package/esm2022/src/v-angular/slug/slug.module.mjs +6 -6
  78. package/esm2022/src/v-angular/table/index.mjs +9 -0
  79. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
  80. package/esm2022/src/v-angular/table/table.component.mjs +387 -0
  81. package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
  82. package/esm2022/src/v-angular/table/table.models.mjs +2 -0
  83. package/esm2022/src/v-angular/table/table.module.mjs +40 -0
  84. package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
  85. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
  86. package/esm2022/src/v-angular/tabs/index.mjs +8 -0
  87. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
  88. package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
  89. package/esm2022/src/v-angular/tabs/tabs.component.mjs +262 -0
  90. package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
  91. package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
  92. package/esm2022/src/v-angular/textarea/textarea.component.mjs +9 -7
  93. package/esm2022/src/v-angular/textarea/textarea.module.mjs +27 -13
  94. package/esm2022/src/v-angular/toast/index.mjs +8 -0
  95. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
  96. package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
  97. package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
  98. package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
  99. package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
  100. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +35 -15
  101. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +11 -11
  102. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
  103. package/esm2022/v-angular/alert/alert.component.mjs +47 -0
  104. package/esm2022/v-angular/alert/alert.models.mjs +8 -0
  105. package/esm2022/v-angular/alert/alert.module.mjs +18 -0
  106. package/esm2022/v-angular/alert/index.mjs +4 -0
  107. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  108. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  109. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  110. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  111. package/esm2022/v-angular/button/button.component.mjs +9 -9
  112. package/esm2022/v-angular/button/button.module.mjs +11 -11
  113. package/esm2022/v-angular/card/card.component.mjs +6 -6
  114. package/esm2022/v-angular/card/card.module.mjs +9 -9
  115. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  116. package/esm2022/v-angular/checkbox/checkbox.component.mjs +9 -7
  117. package/esm2022/v-angular/checkbox/checkbox.module.mjs +14 -12
  118. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  119. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  120. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  121. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  122. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  123. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
  124. package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
  125. package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
  126. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
  127. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  128. package/esm2022/v-angular/datepicker/index.mjs +17 -0
  129. package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
  130. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  131. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  132. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  133. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  134. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  135. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  136. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  137. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  138. package/esm2022/v-angular/drag-drop/index.mjs +5 -0
  139. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  140. package/esm2022/v-angular/dropdown/dropdown.component.mjs +16 -9
  141. package/esm2022/v-angular/dropdown/dropdown.module.mjs +31 -15
  142. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  143. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  144. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  145. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  146. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  147. package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
  148. package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
  149. package/esm2022/v-angular/external-link/index.mjs +3 -0
  150. package/esm2022/v-angular/i18n/i18n.module.mjs +12 -12
  151. package/esm2022/v-angular/i18n/i18n.test.module.mjs +6 -6
  152. package/esm2022/v-angular/index.mjs +10 -1
  153. package/esm2022/v-angular/info-circle/info-circle.component.mjs +6 -6
  154. package/esm2022/v-angular/info-circle/info-circle.module.mjs +11 -11
  155. package/esm2022/v-angular/input/input.component.mjs +11 -15
  156. package/esm2022/v-angular/input/input.module.mjs +27 -22
  157. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
  158. package/esm2022/v-angular/input-mask/input-mask.module.mjs +10 -10
  159. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +53 -31
  160. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  161. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  162. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  163. package/esm2022/v-angular/modal/modal.module.mjs +38 -27
  164. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  165. package/esm2022/v-angular/pagination/index.mjs +3 -0
  166. package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
  167. package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
  168. package/esm2022/v-angular/radio/radio.component.mjs +14 -12
  169. package/esm2022/v-angular/radio/radio.module.mjs +12 -11
  170. package/esm2022/v-angular/slug/index.mjs +3 -0
  171. package/esm2022/v-angular/slug/slug.module.mjs +18 -0
  172. package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
  173. package/esm2022/v-angular/table/index.mjs +9 -0
  174. package/esm2022/v-angular/table/table.component.mjs +387 -0
  175. package/esm2022/v-angular/table/table.directive.mjs +110 -0
  176. package/esm2022/v-angular/table/table.models.mjs +2 -0
  177. package/esm2022/v-angular/table/table.module.mjs +40 -0
  178. package/esm2022/v-angular/table/table.tools.mjs +29 -0
  179. package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
  180. package/esm2022/v-angular/tabs/index.mjs +8 -0
  181. package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
  182. package/esm2022/v-angular/tabs/tabs.component.mjs +262 -0
  183. package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
  184. package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
  185. package/esm2022/v-angular/textarea/textarea.component.mjs +9 -7
  186. package/esm2022/v-angular/textarea/textarea.module.mjs +27 -13
  187. package/esm2022/v-angular/toast/index.mjs +8 -0
  188. package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
  189. package/esm2022/v-angular/toast/toast.component.mjs +70 -0
  190. package/esm2022/v-angular/toast/toast.models.mjs +8 -0
  191. package/esm2022/v-angular/toast/toast.module.mjs +21 -0
  192. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +35 -15
  193. package/esm2022/v-angular/tooltip/tooltip.module.mjs +11 -11
  194. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
  195. package/esm2022/v-angular/v-angular.module.mjs +104 -68
  196. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +0 -1
  197. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  198. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +76 -0
  199. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
  200. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
  201. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
  202. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +23 -13
  203. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  204. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +14 -14
  205. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  206. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +18 -18
  207. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  208. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +13 -13
  209. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  210. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +6 -6
  211. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  212. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +21 -17
  213. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  214. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +34 -0
  215. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  216. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
  217. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
  218. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +687 -0
  219. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
  220. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +126 -74
  221. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  222. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +12 -12
  223. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  224. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +17 -17
  225. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  226. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +15 -15
  227. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  228. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +14 -14
  229. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  230. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +36 -35
  231. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  232. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +246 -81
  233. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  234. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
  235. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
  236. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +24 -21
  237. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  238. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +6 -6
  239. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  240. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +585 -0
  241. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
  242. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +367 -0
  243. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
  244. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +33 -18
  245. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  246. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
  247. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
  248. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +103 -24
  249. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  250. package/fesm2022/sebgroup-green-angular-v-angular.mjs +6295 -2165
  251. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  252. package/fesm2022/sebgroup-green-angular.mjs +0 -1
  253. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  254. package/package.json +51 -3
  255. package/src/v-angular/account-number/README.md +70 -0
  256. package/src/v-angular/account-number/account-number.module.d.ts +8 -0
  257. package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
  258. package/src/v-angular/account-number/index.d.ts +2 -0
  259. package/src/v-angular/alert/alert.component.d.ts +19 -0
  260. package/src/v-angular/alert/alert.models.d.ts +13 -0
  261. package/src/v-angular/alert/alert.module.d.ts +8 -0
  262. package/src/v-angular/alert/index.d.ts +3 -0
  263. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  264. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  265. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  266. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  267. package/src/v-angular/button/button.component.d.ts +5 -5
  268. package/src/v-angular/button/button.module.d.ts +4 -4
  269. package/src/v-angular/card/card.component.d.ts +3 -3
  270. package/src/v-angular/card/card.module.d.ts +4 -4
  271. package/src/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  272. package/src/v-angular/checkbox/checkbox.component.d.ts +6 -5
  273. package/src/v-angular/checkbox/checkbox.module.d.ts +5 -4
  274. package/src/v-angular/core/core.utils.d.ts +1 -0
  275. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  276. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  277. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  278. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  279. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  280. package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  281. package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
  282. package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
  283. package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  284. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  285. package/src/v-angular/datepicker/index.d.ts +13 -0
  286. package/src/v-angular/datepicker/models/dates.d.ts +15 -0
  287. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  288. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  289. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  290. package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  291. package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  292. package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  293. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  294. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  295. package/src/v-angular/drag-drop/index.d.ts +4 -0
  296. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  297. package/src/v-angular/dropdown/dropdown.component.d.ts +10 -6
  298. package/src/v-angular/dropdown/dropdown.module.d.ts +8 -7
  299. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  300. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  301. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  302. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  303. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  304. package/src/v-angular/external-link/external-link.directive.d.ts +3 -3
  305. package/src/v-angular/external-link/external-link.module.d.ts +4 -4
  306. package/src/v-angular/i18n/i18n.module.d.ts +7 -7
  307. package/src/v-angular/i18n/i18n.test.module.d.ts +4 -4
  308. package/src/v-angular/info-circle/info-circle.component.d.ts +4 -4
  309. package/src/v-angular/info-circle/info-circle.module.d.ts +4 -4
  310. package/src/v-angular/input/input.component.d.ts +5 -10
  311. package/src/v-angular/input/input.module.d.ts +5 -4
  312. package/src/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  313. package/src/v-angular/input-mask/input-mask.module.d.ts +5 -5
  314. package/src/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  315. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  316. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  317. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  318. package/src/v-angular/modal/modal.module.d.ts +4 -4
  319. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  320. package/src/v-angular/pagination/index.d.ts +2 -0
  321. package/src/v-angular/pagination/pagination.component.d.ts +64 -0
  322. package/src/v-angular/pagination/pagination.module.d.ts +12 -0
  323. package/src/v-angular/radio/radio.component.d.ts +14 -13
  324. package/src/v-angular/radio/radio.module.d.ts +5 -4
  325. package/src/v-angular/slug/slug.module.d.ts +4 -4
  326. package/src/v-angular/table/index.d.ts +5 -0
  327. package/src/v-angular/table/table.component.d.ts +229 -0
  328. package/src/v-angular/table/table.directive.d.ts +36 -0
  329. package/src/v-angular/table/table.models.d.ts +62 -0
  330. package/src/v-angular/table/table.module.d.ts +12 -0
  331. package/src/v-angular/table/table.tools.d.ts +5 -0
  332. package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
  333. package/src/v-angular/tabs/index.d.ts +4 -0
  334. package/src/v-angular/tabs/tab.directive.d.ts +37 -0
  335. package/src/v-angular/tabs/tabs.component.d.ts +65 -0
  336. package/src/v-angular/tabs/tabs.models.d.ts +25 -0
  337. package/src/v-angular/tabs/tabs.module.d.ts +11 -0
  338. package/src/v-angular/textarea/textarea.component.d.ts +6 -5
  339. package/src/v-angular/textarea/textarea.module.d.ts +6 -4
  340. package/src/v-angular/toast/index.d.ts +4 -0
  341. package/src/v-angular/toast/toast-message.service.d.ts +17 -0
  342. package/src/v-angular/toast/toast.component.d.ts +22 -0
  343. package/src/v-angular/toast/toast.models.d.ts +15 -0
  344. package/src/v-angular/toast/toast.module.d.ts +10 -0
  345. package/src/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  346. package/src/v-angular/tooltip/tooltip.module.d.ts +4 -4
  347. package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  348. package/v-angular/alert/alert.component.d.ts +19 -0
  349. package/v-angular/alert/alert.models.d.ts +13 -0
  350. package/v-angular/alert/alert.module.d.ts +8 -0
  351. package/v-angular/alert/index.d.ts +3 -0
  352. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  353. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  354. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  355. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  356. package/v-angular/button/button.component.d.ts +5 -5
  357. package/v-angular/button/button.module.d.ts +4 -4
  358. package/v-angular/card/card.component.d.ts +3 -3
  359. package/v-angular/card/card.module.d.ts +4 -4
  360. package/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  361. package/v-angular/checkbox/checkbox.component.d.ts +6 -5
  362. package/v-angular/checkbox/checkbox.module.d.ts +5 -4
  363. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  364. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  365. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  366. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  367. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  368. package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  369. package/v-angular/datepicker/datepicker.models.d.ts +50 -0
  370. package/v-angular/datepicker/datepicker.module.d.ts +19 -0
  371. package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  372. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  373. package/v-angular/datepicker/index.d.ts +13 -0
  374. package/v-angular/datepicker/models/dates.d.ts +15 -0
  375. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  376. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  377. package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  378. package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  379. package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  380. package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  381. package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  382. package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  383. package/v-angular/drag-drop/index.d.ts +4 -0
  384. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  385. package/v-angular/dropdown/dropdown.component.d.ts +10 -6
  386. package/v-angular/dropdown/dropdown.module.d.ts +8 -7
  387. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  388. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  389. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  390. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  391. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  392. package/v-angular/external-link/external-link.directive.d.ts +17 -0
  393. package/v-angular/external-link/external-link.module.d.ts +8 -0
  394. package/v-angular/external-link/index.d.ts +2 -0
  395. package/v-angular/i18n/i18n.module.d.ts +7 -7
  396. package/v-angular/i18n/i18n.test.module.d.ts +4 -4
  397. package/v-angular/index.d.ts +9 -0
  398. package/v-angular/info-circle/info-circle.component.d.ts +4 -4
  399. package/v-angular/info-circle/info-circle.module.d.ts +4 -4
  400. package/v-angular/input/input.component.d.ts +5 -10
  401. package/v-angular/input/input.module.d.ts +5 -4
  402. package/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  403. package/v-angular/input-mask/input-mask.module.d.ts +5 -5
  404. package/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  405. package/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  406. package/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  407. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  408. package/v-angular/modal/modal.module.d.ts +4 -4
  409. package/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  410. package/v-angular/pagination/index.d.ts +2 -0
  411. package/v-angular/pagination/pagination.component.d.ts +64 -0
  412. package/v-angular/pagination/pagination.module.d.ts +12 -0
  413. package/v-angular/radio/radio.component.d.ts +14 -13
  414. package/v-angular/radio/radio.module.d.ts +5 -4
  415. package/v-angular/slug/index.d.ts +2 -0
  416. package/v-angular/slug/slug.module.d.ts +8 -0
  417. package/v-angular/slug/slug.pipe.d.ts +12 -0
  418. package/v-angular/table/index.d.ts +5 -0
  419. package/v-angular/table/table.component.d.ts +229 -0
  420. package/v-angular/table/table.directive.d.ts +36 -0
  421. package/v-angular/table/table.models.d.ts +62 -0
  422. package/v-angular/table/table.module.d.ts +12 -0
  423. package/v-angular/table/table.tools.d.ts +5 -0
  424. package/v-angular/table/tr-thook.pipe.d.ts +7 -0
  425. package/v-angular/tabs/index.d.ts +4 -0
  426. package/v-angular/tabs/tab.directive.d.ts +37 -0
  427. package/v-angular/tabs/tabs.component.d.ts +65 -0
  428. package/v-angular/tabs/tabs.models.d.ts +25 -0
  429. package/v-angular/tabs/tabs.module.d.ts +11 -0
  430. package/v-angular/textarea/textarea.component.d.ts +6 -5
  431. package/v-angular/textarea/textarea.module.d.ts +6 -4
  432. package/v-angular/toast/index.d.ts +4 -0
  433. package/v-angular/toast/toast-message.service.d.ts +17 -0
  434. package/v-angular/toast/toast.component.d.ts +22 -0
  435. package/v-angular/toast/toast.models.d.ts +15 -0
  436. package/v-angular/toast/toast.module.d.ts +10 -0
  437. package/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  438. package/v-angular/tooltip/tooltip.module.d.ts +4 -4
  439. package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  440. package/v-angular/v-angular.module.d.ts +27 -18
@@ -2,12 +2,12 @@ import { ChangeDetectorRef, Component, ElementRef, HostListener, Inject, Input,
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
4
4
  import { takeUntil } from 'rxjs';
5
- import { NgvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
6
- import { NgvDropdownComponent } from '../../dropdown.component';
5
+ import { NggvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
6
+ import { NggvDropdownComponent } from '../../dropdown.component';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/forms";
9
9
  import * as i2 from "@angular/common";
10
- export class NgvTypeaheadInputComponent extends NgvInputComponent {
10
+ export class NggvTypeaheadInputComponent extends NggvInputComponent {
11
11
  get dropdownButton() {
12
12
  return this.hostComponent.inputRef?.nativeElement;
13
13
  }
@@ -20,6 +20,8 @@ export class NgvTypeaheadInputComponent extends NgvInputComponent {
20
20
  this.cdr = cdr;
21
21
  /** Boolean to indicate wether the dropdown is expanded or not, to apply appropriate styling */
22
22
  this.expanded = false;
23
+ /** @internal Used to determine wether the input has been moved or not */
24
+ this.inputMoved = false;
23
25
  super.ngOnInit();
24
26
  }
25
27
  ngOnInit() {
@@ -35,7 +37,7 @@ export class NgvTypeaheadInputComponent extends NgvInputComponent {
35
37
  * @param event fired containing which key was released.
36
38
  */
37
39
  onKeyUp(event) {
38
- if (event.code === 'Space') {
40
+ if (event.code === 'Space' && this.expanded) {
39
41
  event.preventDefault();
40
42
  }
41
43
  }
@@ -53,6 +55,7 @@ export class NgvTypeaheadInputComponent extends NgvInputComponent {
53
55
  // Get the height of the parent button so the input can be explicitly set to the same height since it's absolutely positioned
54
56
  this.buttonHeight =
55
57
  this.dropdownButton.getBoundingClientRect().height || 32; // Default to 2em;
58
+ this.inputMoved = true;
56
59
  }
57
60
  }, 0);
58
61
  }
@@ -66,6 +69,10 @@ export class NgvTypeaheadInputComponent extends NgvInputComponent {
66
69
  .pipe(takeUntil(this._destroy$))
67
70
  .subscribe((state) => {
68
71
  this.expanded = state;
72
+ // Calling this function from onInit caused issues when DOM has not fully been initialized because of
73
+ // different CSS used to hide (but not remove) from DOM
74
+ if (!this.inputMoved)
75
+ this.moveInput();
69
76
  if (this.expanded) {
70
77
  // Weird workaround for setting focus. Didn't set focus, but wrapping in setTimeout solved it.
71
78
  // See suggestion here: https://github.com/ionic-team/stencil/issues/3772#issuecomment-1292599609
@@ -104,12 +111,12 @@ export class NgvTypeaheadInputComponent extends NgvInputComponent {
104
111
  this.inputChange$.next(this.state);
105
112
  }
106
113
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgvTypeaheadInputComponent, selector: "nggv-typeahead-input", inputs: { hostComponent: "hostComponent", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter" }, host: { listeners: { "document:keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.sdv-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadInputComponent, selector: "nggv-typeahead-input", inputs: { hostComponent: "hostComponent", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter" }, host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.gds-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
109
116
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadInputComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadInputComponent, decorators: [{
111
118
  type: Component,
112
- args: [{ selector: 'nggv-typeahead-input', template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"sdv-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.sdv-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"] }]
119
+ args: [{ selector: 'nggv-typeahead-input', template: "<ng-container>\n <div\n class=\"input-wrapper\"\n [ngClass]=\"{ expanded: expanded, collapsed: !expanded }\"\n [ngStyle]=\"{ 'height.px': buttonHeight }\"\n (click)=\"$event.stopPropagation()\"\n >\n <!-- INPUT FIELD -->\n <div class=\"input-group\">\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"gds-field\"\n [attr.type]=\"type\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.email]=\"email\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [pattern]=\"pattern\"\n [disabled]=\"disabled\"\n [autocomplete]=\"autocomplete\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n </div>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;top:0;left:0;width:calc(100% - 2.625em)}:host .input-wrapper{border:none;box-shadow:none}:host .input-wrapper.expanded{display:flex}:host .input-wrapper.expanded .input-group input.gds-field{height:100%;width:100%;min-height:unset;margin-left:1px;border:none;box-shadow:none}:host .input-wrapper.collapsed{display:none}:host .input-wrapper .input-group{width:100%}\n"] }]
113
120
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.NgControl, decorators: [{
114
121
  type: Self
115
122
  }, {
@@ -127,6 +134,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
127
134
  type: Input
128
135
  }], onKeyUp: [{
129
136
  type: HostListener,
130
- args: ['document:keyup', ['$event']]
137
+ args: ['keyup', ['$event']]
131
138
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQtaW5wdXQvdHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQtaW5wdXQvdHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBR2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBOzs7O0FBTy9ELE1BQU0sT0FBTywwQkFDWCxTQUFRLGlCQUFpQjtJQVl6QixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUE7SUFDbkQsQ0FBQztJQVFELFlBQ1UsT0FBbUIsRUFDbkIsU0FBb0IsRUFDRCxTQUFvQixFQUdyQyxjQUE4QixFQUM5QixHQUFzQjtRQUVoQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxH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YUFBc0I7UUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEMsQ0FBQztJQUNILENBQUM7K0dBNUhVLDBCQUEwQiwwSEE0QjNCLGVBQWU7bUdBNUJkLDBCQUEwQix5UUMxQnZDLGltQ0FzQ0E7OzRGRFphLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxzQkFBc0I7OzBCQThCN0IsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5RUF2QmhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBd0NOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBPcHRpb25CYXNlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmd2SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0J1xuaW1wb3J0IHsgTmd2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtdHlwZWFoZWFkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIE5ndklucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgaG9zdCBkcm9wZG93biAqL1xuICBASW5wdXQoKSBob3N0Q29tcG9uZW50ITogTmd2RHJvcGRvd25Db21wb25lbnRcblxuICAvKiogRm9ybWF0cyBlYWNoIGl0ZW0gdGhhdCBpcyBkaXNwbGF5ZWQgYXMgYW4gb3B0aW9uLiBPbmx5IGFwcGxpZXMgZm9ybWF0IGlmIHRoZSBvcHRpb24gaWYgaXQgaW1wbGVtZW50IE9wdGlvbiBpbnRlcmZhY2UuICovXG4gIEBJbnB1dCgpIHJlc3VsdEZvcm1hdHRlcj86IChvcHRpb246IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEZvcm1hdHMgdGhlIHNlbGVjdGVkIGl0ZW0gaW4gdGhlIGlucHV0IHdoZW4gZHJvcGRvd24gaXMgb3BlbmVkLiBJZiBubyBmdW5jdGlvbiBpcyBwcm92aWRlZCwgaXQgd2lsbCBkaXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgb2JqZWN0cyBsYWJlbCBwcm9wZXJ0eSAqL1xuICBASW5wdXQoKSBzZWxlY3RlZEZvcm1hdHRlcj86IChzZWxlY3RlZDogT3B0aW9uQmFzZTxhbnk+KSA9PiBzdHJpbmdcblxuICBnZXQgZHJvcGRvd25CdXR0b24oKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmhvc3RDb21wb25lbnQuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIC8qKiBCb29sZWFuIHRvIGluZGljYXRlIHdldGhlciB0aGUgZHJvcGRvd24gaXMgZXhwYW5kZWQgb3Igbm90LCB0byBhcHBseSBhcHByb3ByaWF0ZSBzdHlsaW5nICovXG4gIGV4cGFuZGVkID0gZmFsc2VcblxuICAvKiogVXNlZCB0byBkZXRlcm1pbmUgdGhlIGhlaWdodCBvZiB0aGUgaW5wdXRpbiBodG1sICovXG4gIGJ1dHRvbkhlaWdodD86IG51bWJlclxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgc3VwZXIobmdDb250cm9sLCB0cmFuc2xvY29TY29wZSwgY2RyKVxuICAgIHN1cGVyLm5nT25Jbml0KClcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlID0gJ29mZidcbiAgICB0aGlzLmRlYm91bmNlVGltZSA9IDBcbiAgICB0aGlzLmhvc3RDb21wb25lbnQuc2VsZWN0T25TaW5nbGVPcHRpb24gPSBmYWxzZVxuXG4gICAgdGhpcy5tb3ZlSW5wdXQoKVxuICAgIHRoaXMuaGFuZGxlRXhwYW5kZWRDaGFuZ2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBBbGxvdyBzcGFjZSB0byBiZSBpbnB1dHRlZCBhcyB0ZXh0XG4gICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcmVsZWFzZWQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRmlyc3QgdGltZSB0aGUgZHJvcGRvd24gaXMgZXhwYW5kZWQsIG1vdmUgdGhlIGlucHV0IHNwIGl0IGJlY29tZXMgYSBjaGlsZCBvZiB0aGUgZHJvcGRvd24gYnV0dG9uXG4gICAqIHRvIGJldHRlciByZWZsZWN0IHNlbWFudGljcyBhbmQgc3R5bGluZy5cbiAgICovXG4gIHByaXZhdGUgbW92ZUlucHV0KCkge1xuICAgIC8vIFdvcmthcm91bmQgdG8gZXhlY3V0ZSBjb2RlIGluIHNldFRpbWVvdXQgZHVlIHRvIGhvb2tzIG1hbmFnZW1lbnQgZXRjLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gT25seSBtb3ZlIGlmIHBhcmVudCBkcm9wZG93biBpcyBmb3VuZFxuICAgICAgaWYgKHRoaXMuZHJvcGRvd25CdXR0b24pIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgdGhpcy5kcm9wZG93bkJ1dHRvbi5xdWVyeVNlbGVjdG9yKCdidXR0b24nKSxcbiAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKVxuICAgICAgICAvLyBHZXQgdGhlIGhlaWdodCBvZiB0aGUgcGFyZW50IGJ1dHRvbiBzbyB0aGUgaW5wdXQgY2FuIGJlIGV4cGxpY2l0bHkgc2V0IHRvIHRoZSBzYW1lIGhlaWdodCBzaW5jZSBpdCdzIGFic29sdXRlbHkgcG9zaXRpb25lZFxuICAgICAgICB0aGlzLmJ1dHRvbkhlaWdodCA9XG4gICAgICAgICAgdGhpcy5kcm9wZG93bkJ1dHRvbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgfHwgMzIgLy8gRGVmYXVsdCB0byAyZW07XG4gICAgICB9XG4gICAgfSwgMClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hlbiBkcm9wZG93biBpcyBleHBhbmRlZCwgZm9jdXMgb24gdGhlIGlucHV0LiBJZiBhIHZhbHVlIGlzIHNlbGVjdGVkLCBzZXQgaXQgaW4gdGhlIGlucHV0LlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBpcyBjb2xsYXBzZWQsIGVtcHR5IHRoZSBpbnB1dCBmcm9tIHRleHQuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV4cGFuZGVkQ2hhbmdlKCkge1xuICAgIHRoaXMuaG9zdENvbXBvbmVudC5leHBhbmRlZENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBzdGF0ZVxuXG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgLy8gV2VpcmQgd29ya2Fyb3VuZCBmb3Igc2V0dGluZyBmb2N1cy4gRGlkbid0IHNldCBmb2N1cywgYnV0IHdyYXBwaW5nIGluIHNldFRpbWVvdXQgc29sdmVkIGl0LlxuICAgICAgICAgIC8vIFNlZSBzdWdnZXN0aW9uIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pb25pYy10ZWFtL3N0ZW5jaWwvaXNzdWVzLzM3NzIjaXNzdWVjb21tZW50LTEyOTI1OTk2MDlcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0Rm9jdXMoKSlcbiAgICAgICAgICAvLyBGb3JtYXQgYW5kIGludGVycG9sYXRlIHJlc3VsdCBzaW5jZSByZXR1cm4gdHlwZSBjYW4gYmUgb3RoZXIgdGhhbiBzdHJpbmcgZnJvbSB0aGUgZm9ybWF0dGVyXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBgJHt0aGlzLmZvcm1hdFNlbGVjdGVkKHRoaXMuaG9zdENvbXBvbmVudC5zdGF0ZSl9YFxuICAgICAgICAgIHRoaXMuc2V0SW5wdXQoZm9ybWF0dGVkVmFsdWUsIGZhbHNlKVxuICAgICAgICB9IGVsc2UgdGhpcy5zZXRJbnB1dCgnJywgdHJ1ZSlcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIEZvcm1hdHMgdGhlIHNlbGVjdGVkIG9wdGlvbiB0byBkaXNwbGF5IGluIHRoZSBpbnB1dC4gSW50ZXJwb2xhdGUgdGhlIHJldHVybmVkIHZhbHVlXG4gICAqIHNpbmNlIHdlIGRvbid0IGtub3cgdGhlIHJldHVybiB0eXBlIG9yIGxhYmVsIHR5cGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgc2VsZWN0ZWQgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRTZWxlY3RlZCh2YWx1ZTogT3B0aW9uQmFzZTxhbnk+KSB7XG4gICAgaWYgKHZhbHVlPy5rZXkgPT0gbnVsbCkgcmV0dXJuICcnXG4gICAgLy8gSWYgbm8gZm9ybWF0dGVyIGV4aXN0cywgcmV0dXJuIHRoZSBsYWJlbCBvciBlbXB0eSBzdHJpbmdcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGb3JtYXR0ZXIpIHJldHVybiB2YWx1ZS5sYWJlbCA/PyAnJ1xuICAgIC8vIElmIGEgZm9ybWF0dGVyIGV4aXN0cywgdXNlIGl0XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGb3JtYXR0ZXIodmFsdWUpID8/ICcnXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgaW5wdXQgcHJvZ3JhbW1hdGljYWxseSBpbnN0ZWFkIG9mIG5hdGl2ZSBIVE1MIGlucHV0IGV2ZW50LlxuICAgKiBAcGFyYW0gaW5wdXRcbiAgICovXG4gIHByaXZhdGUgc2V0SW5wdXQoaW5wdXQ6IHN0cmluZywgdHJpZ2dlckZpbHRlcjogYm9vbGVhbikge1xuICAgIHRoaXMuc3RhdGUgPSBpbnB1dFxuICAgIGlmICh0cmlnZ2VyRmlsdGVyKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gICAgICB0aGlzLmlucHV0Q2hhbmdlJC5uZXh0KHRoaXMuc3RhdGUpXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCJcbiAgICBbbmdDbGFzc109XCJ7IGV4cGFuZGVkOiBleHBhbmRlZCwgY29sbGFwc2VkOiAhZXhwYW5kZWQgfVwiXG4gICAgW25nU3R5bGVdPVwieyAnaGVpZ2h0LnB4JzogYnV0dG9uSGVpZ2h0IH1cIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPCEtLSBJTlBVVCBGSUVMRCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgICBjbGFzcz1cInNkdi1maWVsZFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIuZW1haWxdPVwiZW1haWxcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW3N0ZXBdPVwic3RlcFwiXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcbiAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbdmFsdWVdPVwic3RhdGVcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQtaW5wdXQvdHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQtaW5wdXQvdHlwZWFoZWFkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBR2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBOzs7O0FBT2hFLE1BQU0sT0FBTywyQkFDWCxTQUFRLGtCQUFrQjtJQVkxQixJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUE7SUFDbkQsQ0FBQztJQVdELFlBQ1UsT0FBbUIsRUFDbkIsU0FBb0IsRUFDRCxTQUFvQixFQUdyQyxjQUE4QixFQUM5QixHQUFzQjtRQUVoQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxH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SUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxPQUFPLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO1FBQ3JELGdDQUFnQztRQUNoQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFFBQVEsQ0FBQyxLQUFhLEVBQUUsYUFBc0I7UUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEMsQ0FBQztJQUNILENBQUM7K0dBcElVLDJCQUEyQiwwSEErQjVCLGVBQWU7bUdBL0JkLDJCQUEyQixnUUMxQnhDLGltQ0FzQ0E7OzRGRFphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxzQkFBc0I7OzBCQWlDN0IsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5RUExQmhCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBMkNOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgT3B0aW9uQmFzZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nZ3ZJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtdHlwZWFoZWFkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBOZ2d2SW5wdXRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBob3N0IGRyb3Bkb3duICovXG4gIEBJbnB1dCgpIGhvc3RDb21wb25lbnQhOiBOZ2d2RHJvcGRvd25Db21wb25lbnRcblxuICAvKiogRm9ybWF0cyBlYWNoIGl0ZW0gdGhhdCBpcyBkaXNwbGF5ZWQgYXMgYW4gb3B0aW9uLiBPbmx5IGFwcGxpZXMgZm9ybWF0IGlmIHRoZSBvcHRpb24gaWYgaXQgaW1wbGVtZW50IE9wdGlvbiBpbnRlcmZhY2UuICovXG4gIEBJbnB1dCgpIHJlc3VsdEZvcm1hdHRlcj86IChvcHRpb246IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEZvcm1hdHMgdGhlIHNlbGVjdGVkIGl0ZW0gaW4gdGhlIGlucHV0IHdoZW4gZHJvcGRvd24gaXMgb3BlbmVkLiBJZiBubyBmdW5jdGlvbiBpcyBwcm92aWRlZCwgaXQgd2lsbCBkaXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgb2JqZWN0cyBsYWJlbCBwcm9wZXJ0eSAqL1xuICBASW5wdXQoKSBzZWxlY3RlZEZvcm1hdHRlcj86IChzZWxlY3RlZDogT3B0aW9uQmFzZTxhbnk+KSA9PiBzdHJpbmdcblxuICBnZXQgZHJvcGRvd25CdXR0b24oKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmhvc3RDb21wb25lbnQuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnRcbiAgfVxuXG4gIC8qKiBCb29sZWFuIHRvIGluZGljYXRlIHdldGhlciB0aGUgZHJvcGRvd24gaXMgZXhwYW5kZWQgb3Igbm90LCB0byBhcHBseSBhcHByb3ByaWF0ZSBzdHlsaW5nICovXG4gIGV4cGFuZGVkID0gZmFsc2VcblxuICAvKiogVXNlZCB0byBkZXRlcm1pbmUgdGhlIGhlaWdodCBvZiB0aGUgaW5wdXRpbiBodG1sICovXG4gIGJ1dHRvbkhlaWdodD86IG51bWJlclxuXG4gIC8qKiBAaW50ZXJuYWwgVXNlZCB0byBkZXRlcm1pbmUgd2V0aGVyIHRoZSBpbnB1dCBoYXMgYmVlbiBtb3ZlZCBvciBub3QgKi9cbiAgaW5wdXRNb3ZlZCA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gICAgc3VwZXIubmdPbkluaXQoKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hdXRvY29tcGxldGUgPSAnb2ZmJ1xuICAgIHRoaXMuZGVib3VuY2VUaW1lID0gMFxuICAgIHRoaXMuaG9zdENvbXBvbmVudC5zZWxlY3RPblNpbmdsZU9wdGlvbiA9IGZhbHNlXG5cbiAgICB0aGlzLm1vdmVJbnB1dCgpXG4gICAgdGhpcy5oYW5kbGVFeHBhbmRlZENoYW5nZSgpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEFsbG93IHNwYWNlIHRvIGJlIGlucHV0dGVkIGFzIHRleHRcbiAgICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnU3BhY2UnICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEZpcnN0IHRpbWUgdGhlIGRyb3Bkb3duIGlzIGV4cGFuZGVkLCBtb3ZlIHRoZSBpbnB1dCBzcCBpdCBiZWNvbWVzIGEgY2hpbGQgb2YgdGhlIGRyb3Bkb3duIGJ1dHRvblxuICAgKiB0byBiZXR0ZXIgcmVmbGVjdCBzZW1hbnRpY3MgYW5kIHN0eWxpbmcuXG4gICAqL1xuICBwcml2YXRlIG1vdmVJbnB1dCgpIHtcbiAgICAvLyBXb3JrYXJvdW5kIHRvIGV4ZWN1dGUgY29kZSBpbiBzZXRUaW1lb3V0IGR1ZSB0byBob29rcyBtYW5hZ2VtZW50IGV0Yy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIE9ubHkgbW92ZSBpZiBwYXJlbnQgZHJvcGRvd24gaXMgZm91bmRcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duQnV0dG9uKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKFxuICAgICAgICAgIHRoaXMuZHJvcGRvd25CdXR0b24ucXVlcnlTZWxlY3RvcignYnV0dG9uJyksXG4gICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIClcbiAgICAgICAgLy8gR2V0IHRoZSBoZWlnaHQgb2YgdGhlIHBhcmVudCBidXR0b24gc28gdGhlIGlucHV0IGNhbiBiZSBleHBsaWNpdGx5IHNldCB0byB0aGUgc2FtZSBoZWlnaHQgc2luY2UgaXQncyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWRcbiAgICAgICAgdGhpcy5idXR0b25IZWlnaHQgPVxuICAgICAgICAgIHRoaXMuZHJvcGRvd25CdXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IDMyIC8vIERlZmF1bHQgdG8gMmVtO1xuICAgICAgICB0aGlzLmlucHV0TW92ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSwgMClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hlbiBkcm9wZG93biBpcyBleHBhbmRlZCwgZm9jdXMgb24gdGhlIGlucHV0LiBJZiBhIHZhbHVlIGlzIHNlbGVjdGVkLCBzZXQgaXQgaW4gdGhlIGlucHV0LlxuICAgKiBXaGVuIHRoZSBkcm9wZG93biBpcyBjb2xsYXBzZWQsIGVtcHR5IHRoZSBpbnB1dCBmcm9tIHRleHQuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUV4cGFuZGVkQ2hhbmdlKCkge1xuICAgIHRoaXMuaG9zdENvbXBvbmVudC5leHBhbmRlZENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSBzdGF0ZVxuXG4gICAgICAgIC8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIG9uSW5pdCBjYXVzZWQgaXNzdWVzIHdoZW4gRE9NIGhhcyBub3QgZnVsbHkgYmVlbiBpbml0aWFsaXplZCBiZWNhdXNlIG9mXG4gICAgICAgIC8vIGRpZmZlcmVudCBDU1MgdXNlZCB0byBoaWRlIChidXQgbm90IHJlbW92ZSkgZnJvbSBET01cbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TW92ZWQpIHRoaXMubW92ZUlucHV0KClcblxuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgIC8vIFdlaXJkIHdvcmthcm91bmQgZm9yIHNldHRpbmcgZm9jdXMuIERpZG4ndCBzZXQgZm9jdXMsIGJ1dCB3cmFwcGluZyBpbiBzZXRUaW1lb3V0IHNvbHZlZCBpdC5cbiAgICAgICAgICAvLyBTZWUgc3VnZ2VzdGlvbiBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9zdGVuY2lsL2lzc3Vlcy8zNzcyI2lzc3VlY29tbWVudC0xMjkyNTk5NjA5XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldEZvY3VzKCkpXG4gICAgICAgICAgLy8gRm9ybWF0IGFuZCBpbnRlcnBvbGF0ZSByZXN1bHQgc2luY2UgcmV0dXJuIHR5cGUgY2FuIGJlIG90aGVyIHRoYW4gc3RyaW5nIGZyb20gdGhlIGZvcm1hdHRlclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gYCR7dGhpcy5mb3JtYXRTZWxlY3RlZCh0aGlzLmhvc3RDb21wb25lbnQuc3RhdGUpfWBcbiAgICAgICAgICB0aGlzLnNldElucHV0KGZvcm1hdHRlZFZhbHVlLCBmYWxzZSlcbiAgICAgICAgfSBlbHNlIHRoaXMuc2V0SW5wdXQoJycsIHRydWUpXG4gICAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBGb3JtYXRzIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gZGlzcGxheSBpbiB0aGUgaW5wdXQuIEludGVycG9sYXRlIHRoZSByZXR1cm5lZCB2YWx1ZVxuICAgKiBzaW5jZSB3ZSBkb24ndCBrbm93IHRoZSByZXR1cm4gdHlwZSBvciBsYWJlbCB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHNlbGVjdGVkIHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0U2VsZWN0ZWQodmFsdWU6IE9wdGlvbkJhc2U8YW55Pikge1xuICAgIGlmICh2YWx1ZT8ua2V5ID09IG51bGwpIHJldHVybiAnJ1xuICAgIC8vIElmIG5vIGZvcm1hdHRlciBleGlzdHMsIHJldHVybiB0aGUgbGFiZWwgb3IgZW1wdHkgc3RyaW5nXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKSByZXR1cm4gdmFsdWUubGFiZWwgPz8gJydcbiAgICAvLyBJZiBhIGZvcm1hdHRlciBleGlzdHMsIHVzZSBpdFxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKHZhbHVlKSA/PyAnJ1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlucHV0IHByb2dyYW1tYXRpY2FsbHkgaW5zdGVhZCBvZiBuYXRpdmUgSFRNTCBpbnB1dCBldmVudC5cbiAgICogQHBhcmFtIGlucHV0XG4gICAqL1xuICBwcml2YXRlIHNldElucHV0KGlucHV0OiBzdHJpbmcsIHRyaWdnZXJGaWx0ZXI6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0YXRlID0gaW5wdXRcbiAgICBpZiAodHJpZ2dlckZpbHRlcikge1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgICAgdGhpcy5pbnB1dENoYW5nZSQubmV4dCh0aGlzLnN0YXRlKVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiXG4gICAgW25nQ2xhc3NdPVwieyBleHBhbmRlZDogZXhwYW5kZWQsIGNvbGxhcHNlZDogIWV4cGFuZGVkIH1cIlxuICAgIFtuZ1N0eWxlXT1cInsgJ2hlaWdodC5weCc6IGJ1dHRvbkhlaWdodCB9XCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDwhLS0gSU5QVVQgRklFTEQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJnZHMtZmllbGRcIlxuICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmVtYWlsXT1cImVtYWlsXCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcbiAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW3ZhbHVlXT1cInN0YXRlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,13 +1,13 @@
1
1
  import { Directive, ElementRef, EventEmitter, Host, HostListener, Input, Optional, Output, ViewContainerRef, } from '@angular/core';
2
2
  import { distinctUntilChanged, from, Subject, takeUntil, tap, withLatestFrom, } from 'rxjs';
3
- import { NgvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
4
- import { NgvDropdownComponent } from '../dropdown.component';
5
- import { NgvTypeaheadDropdownListComponent } from '../typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component';
6
- import { NgvTypeaheadInputComponent } from './typeahead-input/typeahead-input.component';
3
+ import { NggvInputComponent } from '@sebgroup/green-angular/src/v-angular/input';
4
+ import { NggvDropdownComponent } from '../dropdown.component';
5
+ import { NggvTypeaheadDropdownListComponent } from '../typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component';
6
+ import { NggvTypeaheadInputComponent } from './typeahead-input/typeahead-input.component';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../dropdown.component";
9
9
  import * as i2 from "@sebgroup/green-angular/src/v-angular/input";
10
- export class NgvTypeaheadDirective {
10
+ export class NggvTypeaheadDirective {
11
11
  /** Function that filter the inputvalue */
12
12
  set nggvTypeahead(value) {
13
13
  this.typeaheadFunction = value;
@@ -19,7 +19,7 @@ export class NgvTypeaheadDirective {
19
19
  }
20
20
  }
21
21
  /** Forward text inputs to apply the filter function*/
22
- onNgvInput(event) {
22
+ onNggvInput(event) {
23
23
  this.inputValue$.next(event);
24
24
  }
25
25
  /** Helper to the determine if the host is nggv-drodpown or nggv-input*/
@@ -31,9 +31,13 @@ export class NgvTypeaheadDirective {
31
31
  return { key: null, label: this.unselectLabel || '\u00A0' };
32
32
  }
33
33
  get emptyOption() {
34
- return { key: null, label: 'label.nomatchingoptions', disabled: true };
34
+ return {
35
+ key: null,
36
+ label: this.emptyOptionLabel || 'label.nomatchingoptions',
37
+ disabled: true,
38
+ };
35
39
  }
36
- /** Name of the component. nggv-dropdown if NgvDropdownComponent or nggv-input if NgvInputComponent */
40
+ /** Name of the component. nggv-dropdown if NggvDropdownComponent or nggv-input if NggvInputComponent */
37
41
  get localName() {
38
42
  return this.element.nativeElement.localName;
39
43
  }
@@ -51,7 +55,6 @@ export class NgvTypeaheadDirective {
51
55
  }
52
56
  ngOnInit() {
53
57
  this.handleInputChanges();
54
- this.inputValue$.next('');
55
58
  if (this.hostIsDropdown)
56
59
  this.createInput();
57
60
  else
@@ -71,6 +74,8 @@ export class NgvTypeaheadDirective {
71
74
  this.inputSubscription$ = this.inputValue$
72
75
  .pipe(takeUntil(this.onDestroy$), distinctUntilChanged(), tap((inputValue) => this.filterPhraseChange.emit(inputValue)), this.typeaheadFunction ? this.typeaheadFunction : () => from([]), withLatestFrom(this.inputValue$))
73
76
  .subscribe(([filteredValues, input]) => this.setOptions(filteredValues, input));
77
+ // Trigger the pipe when this function have been called
78
+ this.inputValue$.next('');
74
79
  }
75
80
  /**
76
81
  * @internal
@@ -80,7 +85,7 @@ export class NgvTypeaheadDirective {
80
85
  * */
81
86
  createInput() {
82
87
  // Create the input component
83
- this.inputComponent = this.viewContainerRef.createComponent(NgvTypeaheadInputComponent);
88
+ this.inputComponent = this.viewContainerRef.createComponent(NggvTypeaheadInputComponent);
84
89
  // Forward necessary info to component
85
90
  this.inputComponent.setInput('hostComponent', this.hostDropdown);
86
91
  this.inputComponent.setInput('selectedFormatter', this.selectedFormatter);
@@ -92,7 +97,7 @@ export class NgvTypeaheadDirective {
92
97
  }
93
98
  /** @internal Creates a nggv-dropdown-list if the host itself is a nggv-input */
94
99
  createDropdownList() {
95
- this.dropdownListComponent = this.viewContainerRef.createComponent(NgvTypeaheadDropdownListComponent);
100
+ this.dropdownListComponent = this.viewContainerRef.createComponent(NggvTypeaheadDropdownListComponent);
96
101
  this.dropdownListComponent.setInput('hostComponent', this.hostInput);
97
102
  }
98
103
  /**
@@ -108,8 +113,8 @@ export class NgvTypeaheadDirective {
108
113
  // Conditionally add empty or nullish option if it's allowed, the input is empty and does not already contain nullish
109
114
  const allowNullish = this.allowUnselect &&
110
115
  !input &&
111
- !(Object.keys(filteredValues[0]).includes('key') &&
112
- filteredValues[0].key == null);
116
+ !(Object.keys(filteredValues[0] ?? {}).includes('key') &&
117
+ filteredValues[0]?.key == null);
113
118
  if (filteredValues.length === 0) {
114
119
  filteredValues = [this.emptyOption];
115
120
  }
@@ -141,20 +146,20 @@ export class NgvTypeaheadDirective {
141
146
  return options;
142
147
  return options.map((value) => value?.label ? this.resultFormatter?.(value) : value);
143
148
  }
144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i1.NgvDropdownComponent, host: true, optional: true }, { token: i2.NgvInputComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
145
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgvTypeaheadDirective, isStandalone: true, selector: "nggv-input[nggvTypeahead], nggv-dropdown[nggvTypeahead]", inputs: { nggvTypeahead: "nggvTypeahead", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter", allowUnselect: "allowUnselect", unselectLabel: "unselectLabel" }, outputs: { filterPhraseChange: "filterPhraseChange" }, host: { listeners: { "nggvInput": "onNgvInput($event)" } }, ngImport: i0 }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i1.NggvDropdownComponent, host: true, optional: true }, { token: i2.NggvInputComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NggvTypeaheadDirective, isStandalone: true, selector: "nggv-input[nggvTypeahead], nggv-dropdown[nggvTypeahead]", inputs: { nggvTypeahead: "nggvTypeahead", resultFormatter: "resultFormatter", selectedFormatter: "selectedFormatter", allowUnselect: "allowUnselect", unselectLabel: "unselectLabel", emptyOptionLabel: "emptyOptionLabel" }, outputs: { filterPhraseChange: "filterPhraseChange" }, host: { listeners: { "nggvInput": "onNggvInput($event)" } }, ngImport: i0 }); }
146
151
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadDirective, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadDirective, decorators: [{
148
153
  type: Directive,
149
154
  args: [{
150
155
  selector: 'nggv-input[nggvTypeahead], nggv-dropdown[nggvTypeahead]',
151
156
  standalone: true,
152
157
  }]
153
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i1.NgvDropdownComponent, decorators: [{
158
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i1.NggvDropdownComponent, decorators: [{
154
159
  type: Optional
155
160
  }, {
156
161
  type: Host
157
- }] }, { type: i2.NgvInputComponent, decorators: [{
162
+ }] }, { type: i2.NggvInputComponent, decorators: [{
158
163
  type: Optional
159
164
  }, {
160
165
  type: Host
@@ -168,10 +173,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
168
173
  type: Input
169
174
  }], unselectLabel: [{
170
175
  type: Input
176
+ }], emptyOptionLabel: [{
177
+ type: Input
171
178
  }], filterPhraseChange: [{
172
179
  type: Output
173
- }], onNgvInput: [{
180
+ }], onNggvInput: [{
174
181
  type: HostListener,
175
182
  args: ['nggvInput', ['$event']]
176
183
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU14RixNQUFNLE9BQU8scUJBQXFCO0lBT2hDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBaUJELHNEQUFzRDtJQUNmLFVBQVUs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LEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQzsrR0EzTFUscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFzRUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7eUNBOUROLGFBQWE7c0JBQXpCLEtBQUs7Z0JBWUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHZ0MsVUFBVTtzQkFBaEQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0LFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmcm9tLFxuICBPcGVyYXRvckZ1bmN0aW9uLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgT3B0aW9uLCBPcHRpb25CYXNlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmd2SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0J1xuaW1wb3J0IHsgTmd2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi90eXBlYWhlYWQvdHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QvdHlwZWFoZWFkLWRyb3Bkb3duLWxpc3QuY29tcG9uZW50J1xuaW1wb3J0IHsgTmd2VHlwZWFoZWFkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1pbnB1dC90eXBlYWhlYWQtaW5wdXQuY29tcG9uZW50J1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZ2d2LWlucHV0W25nZ3ZUeXBlYWhlYWRdLCBuZ2d2LWRyb3Bkb3duW25nZ3ZUeXBlYWhlYWRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VHlwZWFoZWFkRGlyZWN0aXZlPFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogRnVuY3Rpb24gdGhhdCBmaWx0ZXIgdGhlIGlucHV0dmFsdWUgKi9cbiAgQElucHV0KCkgc2V0IG5nZ3ZUeXBlYWhlYWQodmFsdWU6IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA9IHZhbHVlXG5cbiAgICAvLyBJZiBpbnB1dHN1YnNjcmlwdGlvbiBhbHJlYWR5IGV4aXN0cywgdW5zdWJzY3JpYmUgYW5kIHN1YnNjcmliZSBhZ2FpblxuICAgIGlmICh0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCkge1xuICAgICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvcm1hdHMgZWFjaCBpdGVtIHRoYXQgaXMgZGlzcGxheWVkIGFzIGFuIG9wdGlvbi4gT25seSBhcHBsaWVzIGZvcm1hdCBpZiB0aGUgb3B0aW9uIGlmIGl0IGltcGxlbWVudCBPcHRpb24gaW50ZXJmYWNlLiAqL1xuICBASW5wdXQoKSByZXN1bHRGb3JtYXR0ZXI/OiAob3B0aW9uOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBpbnB1dCB3aGVuIGRyb3Bkb3duIGlzIG9wZW5lZC4gSWYgbm8gZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMgbGFiZWwgcHJvcGVydHkgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRGb3JtYXR0ZXI/OiAoc2VsZWN0ZWQ6IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEFsbG93IG9wdGlvbiB0byBiZSB1bnNlbGVjdGVkIGluIHRoZSBkcm9wZG93biBldmVuIGlmIGl0IGlzIHJlcXVpcmVkLiBEZWZhdWx0cyB0byB0cnVlICovXG4gIEBJbnB1dCgpIGFsbG93VW5zZWxlY3QgPSB0cnVlXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIHVuc2VsZWN0IG9wdGlvbiAqL1xuICBASW5wdXQoKSB1bnNlbGVjdExhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVtaXRzIHRoZSBlbnRlcmVkIHN0cmluZyB0aGUgdXNlciBoYXMgd3JpdHRlbiBpbiB0aGUgaW5wdXQgKi9cbiAgQE91dHB1dCgpIGZpbHRlclBocmFzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqIEZvcndhcmQgdGV4dCBpbnB1dHMgdG8gYXBwbHkgdGhlIGZpbHRlciBmdW5jdGlvbiovXG4gIEBIb3N0TGlzdGVuZXIoJ25nZ3ZJbnB1dCcsIFsnJGV2ZW50J10pIG9uTmd2SW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSQubmV4dChldmVudClcbiAgfVxuXG4gIC8qKiBIZWxwZXIgdG8gdGhlIGRldGVybWluZSBpZiB0aGUgaG9zdCBpcyBuZ2d2LWRyb2Rwb3duIG9yIG5nZ3YtaW5wdXQqL1xuICBnZXQgaG9zdElzRHJvcGRvd24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5ob3N0RHJvcGRvd25cbiAgfVxuXG4gIC8qKiBQcmVkZWZpbmVkIG9wdGlvbnMgKi9cbiAgZ2V0IGRlZmF1bHROdWxsaXNoT3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHsga2V5OiBudWxsLCBsYWJlbDogdGhpcy51bnNlbGVjdExhYmVsIHx8ICdcXHUwMEEwJyB9XG4gIH1cblxuICBnZXQgZW1wdHlPcHRpb24oKTogT3B0aW9uQmFzZTxhbnk+IHtcbiAgICByZXR1cm4geyBrZXk6IG51bGwsIGxhYmVsOiAnbGFiZWwubm9tYXRjaGluZ29wdGlvbnMnLCBkaXNhYmxlZDogdHJ1ZSB9XG4gIH1cblxuICAvKiogTmFtZSBvZiB0aGUgY29tcG9uZW50LiBuZ2d2LWRyb3Bkb3duIGlmIE5ndkRyb3Bkb3duQ29tcG9uZW50IG9yIG5nZ3YtaW5wdXQgaWYgTmd2SW5wdXRDb21wb25lbnQgKi9cbiAgZ2V0IGxvY2FsTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQubG9jYWxOYW1lXG4gIH1cblxuICBkcm9wZG93bkxpc3RDb21wb25lbnQhOiBDb21wb25lbnRSZWY8Tmd2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50PlxuICBpbnB1dENvbXBvbmVudCE6IENvbXBvbmVudFJlZjxOZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudD5cblxuICBwcml2YXRlIHR5cGVhaGVhZEZ1bmN0aW9uPzogT3BlcmF0b3JGdW5jdGlvbjxzdHJpbmcsIFRbXT5cbiAgcHJpdmF0ZSBpbnB1dFZhbHVlJCA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJD86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdERyb3Bkb3duOiBOZ3ZEcm9wZG93bkNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdElucHV0OiBOZ3ZJbnB1dENvbXBvbmVudCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2VzKClcbiAgICB0aGlzLmlucHV0VmFsdWUkLm5leHQoJycpXG5cbiAgICBpZiAodGhpcy5ob3N0SXNEcm9wZG93bikgdGhpcy5jcmVhdGVJbnB1dCgpXG4gICAgZWxzZSB0aGlzLmNyZWF0ZURyb3Bkb3duTGlzdCgpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKVxuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIENvcmUgZnVuY3Rpb25hbGl0eSBvZiB0eXBlYWhlYWQuIEVtaXRzIGlucHV0LCB0aGVuIGZpbHRlcnMgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGUgc3VwcGxpZWQgZnVuY3Rpb25cbiAgICogSWYgZGlyZWN0aXZlIGlzIGFwcGxpZWQgb24gbmdndi1pbnB1dCwgbWFudWFsbHkgc2hvdyBvciBoaWRlIG9wdGlvbnMgaW4gdGhlIGxpc3QuXG4gICAqIElmIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIG9uIG5nZ3YtZHJvcGRvd24sIGxldCB0aGUgZHJvcGRvd24gaXRzZWxmIGNob29zZSB3aGVuIHRvIG9wZW4gb3IgY2xvc2VcbiAgICovXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2VzKCkge1xuICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdGhpcy5pbnB1dFZhbHVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKGlucHV0VmFsdWUpID0+IHRoaXMuZmlsdGVyUGhyYXNlQ2hhbmdlLmVtaXQoaW5wdXRWYWx1ZSkpLFxuICAgICAgICB0aGlzLnR5cGVhaGVhZEZ1bmN0aW9uID8gdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA6ICgpID0+IGZyb20oW10pLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlucHV0VmFsdWUkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtmaWx0ZXJlZFZhbHVlcywgaW5wdXRdKSA9PlxuICAgICAgICB0aGlzLnNldE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXMsIGlucHV0KSxcbiAgICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ3JlYXRlcyBhIG5nZ3YtaW5wdXQgaWYgdGhlIGhvc3QgaXRzZWxmIGlzIG5vdCBhIHRleHQtaW5wdXRcbiAgICogU2V0IHN0eWxlcyB0byBub3QgZGlzcGxheSB0aGUgaW5wdXQgd2hlbiBjbG9zZWRcbiAgICogVHJpZ2dlciBmaWx0ZXJpbmcgd2hlbiBjaGFuZ2VzIG9jY3VyIGluIHRoZSBmaWVsZFxuICAgKiAqL1xuICBwcml2YXRlIGNyZWF0ZUlucHV0KCkge1xuICAgIC8vIENyZWF0ZSB0aGUgaW5wdXQgY29tcG9uZW50XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBOZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICApXG4gICAgLy8gRm9yd2FyZCBuZWNlc3NhcnkgaW5mbyB0byBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0RHJvcGRvd24pXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnc2VsZWN0ZWRGb3JtYXR0ZXInLCB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3Jlc3VsdEZvcm1hdHRlcicsIHRoaXMucmVzdWx0Rm9ybWF0dGVyKVxuICAgIC8vIExpc3RlbiB0byB2YWx1ZSBjaGFuZ2VzXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5pbnN0YW5jZS5uZ2d2SW5wdXRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGlucHV0VmFsdWUpKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBDcmVhdGVzIGEgbmdndi1kcm9wZG93bi1saXN0IGlmIHRoZSBob3N0IGl0c2VsZiBpcyBhIG5nZ3YtaW5wdXQgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkxpc3QoKSB7XG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTmd2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50LFxuICAgIClcbiAgICB0aGlzLmRyb3Bkb3duTGlzdENvbXBvbmVudC5zZXRJbnB1dCgnaG9zdENvbXBvbmVudCcsIHRoaXMuaG9zdElucHV0KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBTZXRzIHRoZSBvcHRpb25zIHRoZSB1c2VyIGNhbiBzZWxlY3QuXG4gICAqIElmIHRoZSBob3N0IGlzIGEgbmdndi1kcm9wZG93biwgdXRpbGl6ZSB0aGUgZHJvcGRvd24gaXRzZWxmIHRvIGRpc3BsYXkgdGhlIG9wdGlvbnNcbiAgICogSWYgdGhlIGhvc3QgaXMgYSBuZ2d2LWlucHV0LCB1c2UgdGhlIGNyZWF0ZWQgbmdndi1kcm9wZG93bi1saXN0IHRvIGRpc3BsYXllIHRoZSBvcHRpb25zXG4gICAqIEBwYXJhbSBmaWx0ZXJlZFZhbHVlcyBUaGUgb3B0aW9ucyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93blxuICAgKiBAcGFyYW0gZW1wdHlJbnB1dCBJZiB0aGUgaW5wdXQgaXMgZW1wdHlcbiAgICovXG4gIHByaXZhdGUgc2V0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlczogVFtdLCBpbnB1dDogc3RyaW5nKSB7XG4gICAgaWYgKCFmaWx0ZXJlZFZhbHVlcykgcmV0dXJuXG4gICAgLy8gQ29uZGl0aW9uYWxseSBhZGQgZW1wdHkgb3IgbnVsbGlzaCBvcHRpb24gaWYgaXQncyBhbGxvd2VkLCB0aGUgaW5wdXQgaXMgZW1wdHkgYW5kIGRvZXMgbm90IGFscmVhZHkgY29udGFpbiBudWxsaXNoXG4gICAgY29uc3QgYWxsb3dOdWxsaXNoID1cbiAgICAgIHRoaXMuYWxsb3dVbnNlbGVjdCAmJlxuICAgICAgIWlucHV0ICYmXG4gICAgICAhKFxuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJlZFZhbHVlc1swXSkuaW5jbHVkZXMoJ2tleScpICYmXG4gICAgICAgIGZpbHRlcmVkVmFsdWVzWzBdLmtleSA9PSBudWxsXG4gICAgICApXG4gICAgaWYgKGZpbHRlcmVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZmlsdGVyZWRWYWx1ZXMgPSBbdGhpcy5lbXB0eU9wdGlvbl1cbiAgICB9IGVsc2UgaWYgKGFsbG93TnVsbGlzaCkge1xuICAgICAgZmlsdGVyZWRWYWx1ZXMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KGZpbHRlcmVkVmFsdWVzKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmhvc3RJc0Ryb3Bkb3duKSB7XG4gICAgICAvLyBBZGQgbnVsbGlzaCBvcHRpb24gd2hlbiBubyBpbnB1dCBpcyB3cml0dGVuIChvciB3aGVuIGRyb3Bkb3duIGlzIGVwYW5kZWQgYW5kIGhhcyBhIHNlbGVjdGlvbilcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gPSBmYWxzZVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24ub3B0aW9ucyA9IHRoaXMuZm9ybWF0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlcylcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLnRleHRUb0hpZ2hsaWdodCA9IGAke2lucHV0IHx8ICcnfWBcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLmRldGVjdENoYW5nZXMoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhvc3RJc0Ryb3Bkb3duKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdENvbXBvbmVudC5zZXRJbnB1dChcbiAgICAgICAgJ29wdGlvbnMnLFxuICAgICAgICB0aGlzLmZvcm1hdE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXMpLFxuICAgICAgKVxuICAgICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ3RleHRUb0hpZ2hsaWdodCcsIGAke2lucHV0IHx8ICcnfWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBGb3JtYXRzIHRoZSBhdmFpbGFibGUgb3B0aW9ucyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBsaXN0XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBzZWxlY3RlZCB2YWx1ZVxuICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIGZvcm1hdE9wdGlvbnMob3B0aW9uczogVFtdKTogT3B0aW9uQmFzZTxhbnk+W10ge1xuICAgIGlmICghb3B0aW9ucykgcmV0dXJuIFtdXG4gICAgaWYgKCF0aGlzLnJlc3VsdEZvcm1hdHRlcikgcmV0dXJuIG9wdGlvbnNcbiAgICByZXR1cm4gb3B0aW9ucy5tYXAoKHZhbHVlKSA9PlxuICAgICAgdmFsdWU/LmxhYmVsID8gdGhpcy5yZXN1bHRGb3JtYXR0ZXI/Lih2YWx1ZSkgOiB2YWx1ZSxcbiAgICApXG4gIH1cbn1cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU16RixNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBb0JELHNEQUFzRDtJQUNmLFdBQVcs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LEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQzsrR0FwTVUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkE2RUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7eUNBckVOLGFBQWE7c0JBQXpCLEtBQUs7Z0JBWUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR2dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IE9wdGlvbiwgT3B0aW9uQmFzZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nZ3ZJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdHlwZWFoZWFkL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nZ3YtaW5wdXRbbmdndlR5cGVhaGVhZF0sIG5nZ3YtZHJvcGRvd25bbmdndlR5cGVhaGVhZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkRGlyZWN0aXZlPFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogRnVuY3Rpb24gdGhhdCBmaWx0ZXIgdGhlIGlucHV0dmFsdWUgKi9cbiAgQElucHV0KCkgc2V0IG5nZ3ZUeXBlYWhlYWQodmFsdWU6IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA9IHZhbHVlXG5cbiAgICAvLyBJZiBpbnB1dHN1YnNjcmlwdGlvbiBhbHJlYWR5IGV4aXN0cywgdW5zdWJzY3JpYmUgYW5kIHN1YnNjcmliZSBhZ2FpblxuICAgIGlmICh0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCkge1xuICAgICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvcm1hdHMgZWFjaCBpdGVtIHRoYXQgaXMgZGlzcGxheWVkIGFzIGFuIG9wdGlvbi4gT25seSBhcHBsaWVzIGZvcm1hdCBpZiB0aGUgb3B0aW9uIGlmIGl0IGltcGxlbWVudCBPcHRpb24gaW50ZXJmYWNlLiAqL1xuICBASW5wdXQoKSByZXN1bHRGb3JtYXR0ZXI/OiAob3B0aW9uOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBpbnB1dCB3aGVuIGRyb3Bkb3duIGlzIG9wZW5lZC4gSWYgbm8gZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMgbGFiZWwgcHJvcGVydHkgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRGb3JtYXR0ZXI/OiAoc2VsZWN0ZWQ6IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEFsbG93IG9wdGlvbiB0byBiZSB1bnNlbGVjdGVkIGluIHRoZSBkcm9wZG93biBldmVuIGlmIGl0IGlzIHJlcXVpcmVkLiBEZWZhdWx0cyB0byB0cnVlICovXG4gIEBJbnB1dCgpIGFsbG93VW5zZWxlY3QgPSB0cnVlXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIHVuc2VsZWN0IG9wdGlvbiAqL1xuICBASW5wdXQoKSB1bnNlbGVjdExhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIGVtcHR5IG9wdGlvbiAqL1xuICBASW5wdXQoKSBlbXB0eU9wdGlvbkxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVtaXRzIHRoZSBlbnRlcmVkIHN0cmluZyB0aGUgdXNlciBoYXMgd3JpdHRlbiBpbiB0aGUgaW5wdXQgKi9cbiAgQE91dHB1dCgpIGZpbHRlclBocmFzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqIEZvcndhcmQgdGV4dCBpbnB1dHMgdG8gYXBwbHkgdGhlIGZpbHRlciBmdW5jdGlvbiovXG4gIEBIb3N0TGlzdGVuZXIoJ25nZ3ZJbnB1dCcsIFsnJGV2ZW50J10pIG9uTmdndklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlucHV0VmFsdWUkLm5leHQoZXZlbnQpXG4gIH1cblxuICAvKiogSGVscGVyIHRvIHRoZSBkZXRlcm1pbmUgaWYgdGhlIGhvc3QgaXMgbmdndi1kcm9kcG93biBvciBuZ2d2LWlucHV0Ki9cbiAgZ2V0IGhvc3RJc0Ryb3Bkb3duKCkge1xuICAgIHJldHVybiAhIXRoaXMuaG9zdERyb3Bkb3duXG4gIH1cblxuICAvKiogUHJlZGVmaW5lZCBvcHRpb25zICovXG4gIGdldCBkZWZhdWx0TnVsbGlzaE9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7IGtleTogbnVsbCwgbGFiZWw6IHRoaXMudW5zZWxlY3RMYWJlbCB8fCAnXFx1MDBBMCcgfVxuICB9XG5cbiAgZ2V0IGVtcHR5T3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogbnVsbCxcbiAgICAgIGxhYmVsOiB0aGlzLmVtcHR5T3B0aW9uTGFiZWwgfHwgJ2xhYmVsLm5vbWF0Y2hpbmdvcHRpb25zJyxcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgIH1cbiAgfVxuXG4gIC8qKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuIG5nZ3YtZHJvcGRvd24gaWYgTmdndkRyb3Bkb3duQ29tcG9uZW50IG9yIG5nZ3YtaW5wdXQgaWYgTmdndklucHV0Q29tcG9uZW50ICovXG4gIGdldCBsb2NhbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmxvY2FsTmFtZVxuICB9XG5cbiAgZHJvcGRvd25MaXN0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQ+XG4gIGlucHV0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudD5cblxuICBwcml2YXRlIHR5cGVhaGVhZEZ1bmN0aW9uPzogT3BlcmF0b3JGdW5jdGlvbjxzdHJpbmcsIFRbXT5cbiAgcHJpdmF0ZSBpbnB1dFZhbHVlJCA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJD86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdERyb3Bkb3duOiBOZ2d2RHJvcGRvd25Db21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGhvc3RJbnB1dDogTmdndklucHV0Q29tcG9uZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHRoaXMuY3JlYXRlSW5wdXQoKVxuICAgIGVsc2UgdGhpcy5jcmVhdGVEcm9wZG93bkxpc3QoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdHlwZWFoZWFkLiBFbWl0cyBpbnB1dCwgdGhlbiBmaWx0ZXJzIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlIHN1cHBsaWVkIGZ1bmN0aW9uXG4gICAqIElmIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIG9uIG5nZ3YtaW5wdXQsIG1hbnVhbGx5IHNob3cgb3IgaGlkZSBvcHRpb25zIGluIHRoZSBsaXN0LlxuICAgKiBJZiBkaXJlY3RpdmUgaXMgYXBwbGllZCBvbiBuZ2d2LWRyb3Bkb3duLCBsZXQgdGhlIGRyb3Bkb3duIGl0c2VsZiBjaG9vc2Ugd2hlbiB0byBvcGVuIG9yIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCA9IHRoaXMuaW5wdXRWYWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKChpbnB1dFZhbHVlKSA9PiB0aGlzLmZpbHRlclBocmFzZUNoYW5nZS5lbWl0KGlucHV0VmFsdWUpKSxcbiAgICAgICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA/IHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gOiAoKSA9PiBmcm9tKFtdKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5pbnB1dFZhbHVlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbZmlsdGVyZWRWYWx1ZXMsIGlucHV0XSkgPT5cbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzLCBpbnB1dCksXG4gICAgICApXG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBwaXBlIHdoZW4gdGhpcyBmdW5jdGlvbiBoYXZlIGJlZW4gY2FsbGVkXG4gICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDcmVhdGVzIGEgbmdndi1pbnB1dCBpZiB0aGUgaG9zdCBpdHNlbGYgaXMgbm90IGEgdGV4dC1pbnB1dFxuICAgKiBTZXQgc3R5bGVzIHRvIG5vdCBkaXNwbGF5IHRoZSBpbnB1dCB3aGVuIGNsb3NlZFxuICAgKiBUcmlnZ2VyIGZpbHRlcmluZyB3aGVuIGNoYW5nZXMgb2NjdXIgaW4gdGhlIGZpZWxkXG4gICAqICovXG4gIHByaXZhdGUgY3JlYXRlSW5wdXQoKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBpbnB1dCBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICApXG4gICAgLy8gRm9yd2FyZCBuZWNlc3NhcnkgaW5mbyB0byBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0RHJvcGRvd24pXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnc2VsZWN0ZWRGb3JtYXR0ZXInLCB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3Jlc3VsdEZvcm1hdHRlcicsIHRoaXMucmVzdWx0Rm9ybWF0dGVyKVxuICAgIC8vIExpc3RlbiB0byB2YWx1ZSBjaGFuZ2VzXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5pbnN0YW5jZS5uZ2d2SW5wdXRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGlucHV0VmFsdWUpKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBDcmVhdGVzIGEgbmdndi1kcm9wZG93bi1saXN0IGlmIHRoZSBob3N0IGl0c2VsZiBpcyBhIG5nZ3YtaW5wdXQgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkxpc3QoKSB7XG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTmdndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCxcbiAgICApXG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ2hvc3RDb21wb25lbnQnLCB0aGlzLmhvc3RJbnB1dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgU2V0cyB0aGUgb3B0aW9ucyB0aGUgdXNlciBjYW4gc2VsZWN0LlxuICAgKiBJZiB0aGUgaG9zdCBpcyBhIG5nZ3YtZHJvcGRvd24sIHV0aWxpemUgdGhlIGRyb3Bkb3duIGl0c2VsZiB0byBkaXNwbGF5IHRoZSBvcHRpb25zXG4gICAqIElmIHRoZSBob3N0IGlzIGEgbmdndi1pbnB1dCwgdXNlIHRoZSBjcmVhdGVkIG5nZ3YtZHJvcGRvd24tbGlzdCB0byBkaXNwbGF5ZSB0aGUgb3B0aW9uc1xuICAgKiBAcGFyYW0gZmlsdGVyZWRWYWx1ZXMgVGhlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd25cbiAgICogQHBhcmFtIGVtcHR5SW5wdXQgSWYgdGhlIGlucHV0IGlzIGVtcHR5XG4gICAqL1xuICBwcml2YXRlIHNldE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXM6IFRbXSwgaW5wdXQ6IHN0cmluZykge1xuICAgIGlmICghZmlsdGVyZWRWYWx1ZXMpIHJldHVyblxuICAgIC8vIENvbmRpdGlvbmFsbHkgYWRkIGVtcHR5IG9yIG51bGxpc2ggb3B0aW9uIGlmIGl0J3MgYWxsb3dlZCwgdGhlIGlucHV0IGlzIGVtcHR5IGFuZCBkb2VzIG5vdCBhbHJlYWR5IGNvbnRhaW4gbnVsbGlzaFxuICAgIGNvbnN0IGFsbG93TnVsbGlzaCA9XG4gICAgICB0aGlzLmFsbG93VW5zZWxlY3QgJiZcbiAgICAgICFpbnB1dCAmJlxuICAgICAgIShcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRWYWx1ZXNbMF0gPz8ge30pLmluY2x1ZGVzKCdrZXknKSAmJlxuICAgICAgICBmaWx0ZXJlZFZhbHVlc1swXT8ua2V5ID09IG51bGxcbiAgICAgIClcbiAgICBpZiAoZmlsdGVyZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmVtcHR5T3B0aW9uXVxuICAgIH0gZWxzZSBpZiAoYWxsb3dOdWxsaXNoKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQoZmlsdGVyZWRWYWx1ZXMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIC8vIEFkZCBudWxsaXNoIG9wdGlvbiB3aGVuIG5vIGlucHV0IGlzIHdyaXR0ZW4gKG9yIHdoZW4gZHJvcGRvd24gaXMgZXBhbmRlZCBhbmQgaGFzIGEgc2VsZWN0aW9uKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5vcHRpb25zID0gdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24udGV4dFRvSGlnaGxpZ2h0ID0gYCR7aW5wdXQgfHwgJyd9YFxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uZGV0ZWN0Q2hhbmdlcygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50LnNldElucHV0KFxuICAgICAgICAnb3B0aW9ucycsXG4gICAgICAgIHRoaXMuZm9ybWF0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlcyksXG4gICAgICApXG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdENvbXBvbmVudC5zZXRJbnB1dCgndGV4dFRvSGlnaGxpZ2h0JywgYCR7aW5wdXQgfHwgJyd9YClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIEZvcm1hdHMgdGhlIGF2YWlsYWJsZSBvcHRpb25zIHRvIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duIGxpc3RcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIHNlbGVjdGVkIHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0T3B0aW9ucyhvcHRpb25zOiBUW10pOiBPcHRpb25CYXNlPGFueT5bXSB7XG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm4gW11cbiAgICBpZiAoIXRoaXMucmVzdWx0Rm9ybWF0dGVyKSByZXR1cm4gb3B0aW9uc1xuICAgIHJldHVybiBvcHRpb25zLm1hcCgodmFsdWUpID0+XG4gICAgICB2YWx1ZT8ubGFiZWwgPyB0aGlzLnJlc3VsdEZvcm1hdHRlcj8uKHZhbHVlKSA6IHZhbHVlLFxuICAgIClcbiAgfVxufVxuIl19
@@ -1,33 +1,33 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { NgvTooltipModule } from '@sebgroup/green-angular/src/v-angular/tooltip';
4
- import { NgvTypeaheadDropdownListComponent } from './typeahead-dropdown-list/typeahead-dropdown-list.component';
5
- import { NgvTypeaheadHighlightComponent } from './typeahead-highlight/typeahead-highlight.component';
6
- import { NgvTypeaheadInputComponent } from './typeahead-input/typeahead-input.component';
3
+ import { NggvTooltipModule } from '@sebgroup/green-angular/src/v-angular/tooltip';
4
+ import { NggvTypeaheadDropdownListComponent } from './typeahead-dropdown-list/typeahead-dropdown-list.component';
5
+ import { NggvTypeaheadHighlightComponent } from './typeahead-highlight/typeahead-highlight.component';
6
+ import { NggvTypeaheadInputComponent } from './typeahead-input/typeahead-input.component';
7
7
  import * as i0 from "@angular/core";
8
- export class NgvTypeaheadModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadModule, declarations: [NgvTypeaheadHighlightComponent,
11
- NgvTypeaheadInputComponent,
12
- NgvTypeaheadDropdownListComponent], imports: [CommonModule, NgvTooltipModule], exports: [NgvTypeaheadHighlightComponent,
13
- NgvTypeaheadInputComponent,
14
- NgvTypeaheadDropdownListComponent] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadModule, imports: [CommonModule, NgvTooltipModule] }); }
8
+ export class NggvTypeaheadModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, declarations: [NggvTypeaheadHighlightComponent,
11
+ NggvTypeaheadInputComponent,
12
+ NggvTypeaheadDropdownListComponent], imports: [CommonModule, NggvTooltipModule], exports: [NggvTypeaheadHighlightComponent,
13
+ NggvTypeaheadInputComponent,
14
+ NggvTypeaheadDropdownListComponent] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, imports: [CommonModule, NggvTooltipModule] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvTypeaheadModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvTypeaheadModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  declarations: [
21
- NgvTypeaheadHighlightComponent,
22
- NgvTypeaheadInputComponent,
23
- NgvTypeaheadDropdownListComponent,
21
+ NggvTypeaheadHighlightComponent,
22
+ NggvTypeaheadInputComponent,
23
+ NggvTypeaheadDropdownListComponent,
24
24
  ],
25
- imports: [CommonModule, NgvTooltipModule],
25
+ imports: [CommonModule, NggvTooltipModule],
26
26
  exports: [
27
- NgvTypeaheadHighlightComponent,
28
- NgvTypeaheadInputComponent,
29
- NgvTypeaheadDropdownListComponent,
27
+ NggvTypeaheadHighlightComponent,
28
+ NggvTypeaheadInputComponent,
29
+ NggvTypeaheadDropdownListComponent,
30
30
  ],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZEQUE2RCxDQUFBO0FBQy9HLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBOztBQWV4RixNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFYM0IsOEJBQThCO1lBQzlCLDBCQUEwQjtZQUMxQixpQ0FBaUMsYUFFekIsWUFBWSxFQUFFLGdCQUFnQixhQUV0Qyw4QkFBOEI7WUFDOUIsMEJBQTBCO1lBQzFCLGlDQUFpQztnSEFHeEIsa0JBQWtCLFlBUG5CLFlBQVksRUFBRSxnQkFBZ0I7OzRGQU83QixrQkFBa0I7a0JBYjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsT0FBTyxFQUFFO3dCQUNQLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQixpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBOZ3ZUb29sdGlwTW9kdWxlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwJ1xuaW1wb3J0IHsgTmd2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ3ZUeXBlYWhlYWRIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1oaWdobGlnaHQvdHlwZWFoZWFkLWhpZ2hsaWdodC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5ndlR5cGVhaGVhZEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICBOZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICBOZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndlRvb2x0aXBNb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgTmd2VHlwZWFoZWFkSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIE5ndlR5cGVhaGVhZElucHV0Q29tcG9uZW50LFxuICAgIE5ndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VHlwZWFoZWFkTW9kdWxlIHt9XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQ2pGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZEQUE2RCxDQUFBO0FBQ2hILE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFBO0FBQ3JHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBOztBQWV6RixNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkFYNUIsK0JBQStCO1lBQy9CLDJCQUEyQjtZQUMzQixrQ0FBa0MsYUFFMUIsWUFBWSxFQUFFLGlCQUFpQixhQUV2QywrQkFBK0I7WUFDL0IsMkJBQTJCO1lBQzNCLGtDQUFrQztnSEFHekIsbUJBQW1CLFlBUHBCLFlBQVksRUFBRSxpQkFBaUI7OzRGQU85QixtQkFBbUI7a0JBYi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLCtCQUErQjt3QkFDL0IsMkJBQTJCO3dCQUMzQixrQ0FBa0M7cUJBQ25DO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFO3dCQUNQLCtCQUErQjt3QkFDL0IsMkJBQTJCO3dCQUMzQixrQ0FBa0M7cUJBQ25DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBOZ2d2VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdG9vbHRpcCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1oaWdobGlnaHQvdHlwZWFoZWFkLWhpZ2hsaWdodC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1pbnB1dC90eXBlYWhlYWQtaW5wdXQuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOZ2d2VHlwZWFoZWFkSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ2d2VG9vbHRpcE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBOZ2d2VHlwZWFoZWFkSGlnaGxpZ2h0Q29tcG9uZW50LFxuICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkTW9kdWxlIHt9XG4iXX0=
@@ -3,7 +3,7 @@ import { RouterLink } from '@angular/router';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/router";
5
5
  /** Directive overrides routerLink attribute to allow external links. */
6
- export class NgvExternalLinkDirective {
6
+ export class NggvExternalLinkDirective {
7
7
  /**
8
8
  * Creates a new ExternalLinkDirective
9
9
  * @param link extracted routerLink metadata
@@ -22,10 +22,10 @@ export class NgvExternalLinkDirective {
22
22
  return false;
23
23
  };
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirective, deps: [{ token: i1.RouterLink }], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgvExternalLinkDirective, selector: "a[routerLink]", inputs: { external: "external" }, ngImport: i0 }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirective, deps: [{ token: i1.RouterLink }], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NggvExternalLinkDirective, selector: "a[routerLink]", inputs: { external: "external" }, ngImport: i0 }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
34
34
  }], ctorParameters: () => [{ type: i1.RouterLink }], propDecorators: { external: [{
35
35
  type: Input
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9leHRlcm5hbC1saW5rL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7O0FBRTVDLHdFQUF3RTtBQUt4RSxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DOzs7T0FHRztJQUNILFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFQdEMsaUdBQWlHO1FBQ3hGLGFBQVEsR0FBRyxLQUFLLENBQUE7SUFNZ0IsQ0FBQztJQUUxQyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdkIsMkRBQTJEO1lBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDL0MsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUE7SUFDSCxDQUFDOytHQWpCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxlQUFlO2lCQUMxQjsrRUFHVSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbi8qKiBEaXJlY3RpdmUgb3ZlcnJpZGVzIHJvdXRlckxpbmsgYXR0cmlidXRlIHRvIGFsbG93IGV4dGVybmFsIGxpbmtzLiAqL1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYVtyb3V0ZXJMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIE5ndkV4dGVybmFsTGlua0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgbGlua3Mgd2lsbCB0cmlnZ2VyIGEgbG9jYXRpb24gY2hhbmdlIHJhdGhlciB0aGFuIGFuIGludGVybmFsIGhpc3RvcnkgcHVzaC4gKi9cbiAgQElucHV0KCkgZXh0ZXJuYWwgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEV4dGVybmFsTGlua0RpcmVjdGl2ZVxuICAgKiBAcGFyYW0gbGluayBleHRyYWN0ZWQgcm91dGVyTGluayBtZXRhZGF0YVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxpbms6IFJvdXRlckxpbmspIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmV4dGVybmFsKSByZXR1cm5cbiAgICB0aGlzLmxpbmsub25DbGljayA9ICgpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMubGlua1snY29tbWFuZHMnXVswXVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9leHRlcm5hbC1saW5rL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7O0FBRTVDLHdFQUF3RTtBQUt4RSxNQUFNLE9BQU8seUJBQXlCO0lBSXBDOzs7T0FHRztJQUNILFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFQdEMsaUdBQWlHO1FBQ3hGLGFBQVEsR0FBRyxLQUFLLENBQUE7SUFNZ0IsQ0FBQztJQUUxQyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdkIsMkRBQTJEO1lBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDL0MsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUE7SUFDSCxDQUFDOytHQWpCVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxlQUFlO2lCQUMxQjsrRUFHVSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5cbi8qKiBEaXJlY3RpdmUgb3ZlcnJpZGVzIHJvdXRlckxpbmsgYXR0cmlidXRlIHRvIGFsbG93IGV4dGVybmFsIGxpbmtzLiAqL1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYVtyb3V0ZXJMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZFeHRlcm5hbExpbmtEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogSWYgc2V0IHRvIHRydWUsIGxpbmtzIHdpbGwgdHJpZ2dlciBhIGxvY2F0aW9uIGNoYW5nZSByYXRoZXIgdGhhbiBhbiBpbnRlcm5hbCBoaXN0b3J5IHB1c2guICovXG4gIEBJbnB1dCgpIGV4dGVybmFsID0gZmFsc2VcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBFeHRlcm5hbExpbmtEaXJlY3RpdmVcbiAgICogQHBhcmFtIGxpbmsgZXh0cmFjdGVkIHJvdXRlckxpbmsgbWV0YWRhdGFcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsaW5rOiBSb3V0ZXJMaW5rKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5leHRlcm5hbCkgcmV0dXJuXG4gICAgdGhpcy5saW5rLm9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvblxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmxpbmtbJ2NvbW1hbmRzJ11bMF1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,18 +1,18 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { NgvExternalLinkDirective } from './external-link.directive';
3
+ import { NggvExternalLinkDirective } from './external-link.directive';
4
4
  import * as i0 from "@angular/core";
5
- export class NgvExternalLinkDirectiveModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirectiveModule, declarations: [NgvExternalLinkDirective], imports: [CommonModule], exports: [NgvExternalLinkDirective] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirectiveModule, imports: [CommonModule] }); }
5
+ export class NggvExternalLinkDirectiveModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirectiveModule, declarations: [NggvExternalLinkDirective], imports: [CommonModule], exports: [NggvExternalLinkDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirectiveModule, imports: [CommonModule] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvExternalLinkDirectiveModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvExternalLinkDirectiveModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
- declarations: [NgvExternalLinkDirective],
13
+ declarations: [NggvExternalLinkDirective],
14
14
  imports: [CommonModule],
15
- exports: [NgvExternalLinkDirective],
15
+ exports: [NggvExternalLinkDirective],
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9leHRlcm5hbC1saW5rL2V4dGVybmFsLWxpbmsubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQU9wRSxNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixpQkFKMUIsd0JBQXdCLGFBQzdCLFlBQVksYUFDWix3QkFBd0I7Z0hBRXZCLDhCQUE4QixZQUgvQixZQUFZOzs0RkFHWCw4QkFBOEI7a0JBTDFDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBOZ3ZFeHRlcm5hbExpbmtEaXJlY3RpdmUgfSBmcm9tICcuL2V4dGVybmFsLWxpbmsuZGlyZWN0aXZlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ3ZFeHRlcm5hbExpbmtEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW05ndkV4dGVybmFsTGlua0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndkV4dGVybmFsTGlua0RpcmVjdGl2ZU1vZHVsZSB7fVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtbGluay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9leHRlcm5hbC1saW5rL2V4dGVybmFsLWxpbmsubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBOztBQU9yRSxNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7Z0hBQS9CLCtCQUErQixpQkFKM0IseUJBQXlCLGFBQzlCLFlBQVksYUFDWix5QkFBeUI7Z0hBRXhCLCtCQUErQixZQUhoQyxZQUFZOzs0RkFHWCwrQkFBK0I7a0JBTDNDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBOZ2d2RXh0ZXJuYWxMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi9leHRlcm5hbC1saW5rLmRpcmVjdGl2ZSdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmdndkV4dGVybmFsTGlua0RpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTmdndkV4dGVybmFsTGlua0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nZ3ZFeHRlcm5hbExpbmtEaXJlY3RpdmVNb2R1bGUge31cbiJdfQ==
@@ -3,7 +3,7 @@ import { provideTransloco, provideTranslocoMissingHandler, TRANSLOCO_TRANSPILER,
3
3
  import { delay, lastValueFrom, of } from 'rxjs';
4
4
  import defaultLang from './i18n.json';
5
5
  import * as i0 from "@angular/core";
6
- export class NgvMissingHandler {
6
+ export class NggvMissingHandler {
7
7
  constructor(transpiler) {
8
8
  this.transpiler = transpiler;
9
9
  }
@@ -19,10 +19,10 @@ export class NgvMissingHandler {
19
19
  const transpiledKey = this.transpiler.transpile(transpileParams);
20
20
  return transpiledKey || withoutScope;
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvMissingHandler, deps: [{ token: TRANSLOCO_TRANSPILER }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvMissingHandler }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvMissingHandler, deps: [{ token: TRANSLOCO_TRANSPILER }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvMissingHandler }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvMissingHandler, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvMissingHandler, decorators: [{
26
26
  type: Injectable
27
27
  }], ctorParameters: () => [{ type: undefined, decorators: [{
28
28
  type: Inject,
@@ -50,10 +50,10 @@ class TranslocoInlineLoader {
50
50
  return lastValueFrom(of(en).pipe(delay(500)));
51
51
  }
52
52
  }
53
- export class NgvI18nModule {
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvI18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvI18nModule, exports: [TranslocoModule] }); }
56
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvI18nModule, providers: [
53
+ export class NggvI18nModule {
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvI18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvI18nModule, exports: [TranslocoModule] }); }
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvI18nModule, providers: [
57
57
  provideTransloco({
58
58
  config: {
59
59
  availableLangs: ['en', 'sv'],
@@ -64,10 +64,10 @@ export class NgvI18nModule {
64
64
  },
65
65
  loader: TranslocoInlineLoader,
66
66
  }),
67
- provideTranslocoMissingHandler(NgvMissingHandler),
67
+ provideTranslocoMissingHandler(NggvMissingHandler),
68
68
  ], imports: [TranslocoModule] }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvI18nModule, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvI18nModule, decorators: [{
71
71
  type: NgModule,
72
72
  args: [{
73
73
  providers: [
@@ -81,9 +81,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
81
81
  },
82
82
  loader: TranslocoInlineLoader,
83
83
  }),
84
- provideTranslocoMissingHandler(NgvMissingHandler),
84
+ provideTranslocoMissingHandler(NggvMissingHandler),
85
85
  ],
86
86
  exports: [TranslocoModule],
87
87
  }]
88
88
  }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuL2kxOG4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkUsT0FBTyxFQUVMLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBSXBCLGVBQWUsR0FFaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFL0MsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFBOztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQ3dDLFVBQStCO1FBQS9CLGVBQVUsR0FBVixVQUFVLENBQXFCO0lBQ3BFLENBQUM7SUFDSixNQUFNLENBQUMsR0FBVyxFQUFFLENBQThCLEVBQUUsTUFBZTtRQUNqRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFDdkUsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUMzQywrRkFBK0YsRUFDL0YsRUFBRSxDQUNILENBQUE7UUFDRCxNQUFNLGVBQWUsR0FBRztZQUN0QixLQUFLLEVBQUUsV0FBVyxDQUFDLGdCQUE0QyxDQUFDO1lBQ2hFLE1BQU07WUFDTixXQUFXLEVBQUUsRUFBRTtZQUNmLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sYUFBYSxJQUFJLFlBQVksQ0FBQTtJQUN0QyxDQUFDOytHQWxCVSxpQkFBaUIsa0JBRWxCLG9CQUFvQjttSEFGbkIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7QUFtQmhDLE1BQU0sRUFBRSxHQUFHO0lBQ1Qsc0JBQXNCLEVBQUUsdUJBQXVCO0lBQy9DLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxzQkFBc0IsRUFDcEIsdUVBQXVFO0lBQ3pFLG9CQUFvQixFQUFFLE9BQU87SUFDN0IsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQTtBQUVELE1BQU0sRUFBRSxHQUFHO0lBQ1Qsc0JBQXNCLEVBQUUsNkJBQTZCO0lBQ3JELHFCQUFxQixFQUFFLDZCQUE2QjtJQUNwRCxzQkFBc0IsRUFDcEIsK0RBQStEO0lBQ2pFLGlCQUFpQixFQUFFLGFBQWE7Q0FDakMsQ0FBQTtBQUNELE1BQU0scUJBQXFCO0lBQ3pCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7Q0FDRjtBQWtCRCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsWUFGZCxlQUFlO2dIQUVkLGFBQWEsYUFmYjtZQUNULGdCQUFnQixDQUFDO2dCQUNmLE1BQU0sRUFBRTtvQkFDTixjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO29CQUM1QixXQUFXLEVBQUUsSUFBSTtvQkFDakIsdUZBQXVGO29CQUN2RixvQkFBb0IsRUFBRSxJQUFJO29CQUMxQixRQUFRLEVBQUUsQ0FBQyxTQUFTLEVBQUU7aUJBQ3ZCO2dCQUNELE1BQU0sRUFBRSxxQkFBcUI7YUFDOUIsQ0FBQztZQUNGLDhCQUE4QixDQUFDLGlCQUFpQixDQUFDO1NBQ2xELFlBQ1MsZUFBZTs7NEZBRWQsYUFBYTtrQkFoQnpCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULGdCQUFnQixDQUFDOzRCQUNmLE1BQU0sRUFBRTtnQ0FDTixjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2dDQUM1QixXQUFXLEVBQUUsSUFBSTtnQ0FDakIsdUZBQXVGO2dDQUN2RixvQkFBb0IsRUFBRSxJQUFJO2dDQUMxQixRQUFRLEVBQUUsQ0FBQyxTQUFTLEVBQUU7NkJBQ3ZCOzRCQUNELE1BQU0sRUFBRSxxQkFBcUI7eUJBQzlCLENBQUM7d0JBQ0YsOEJBQThCLENBQUMsaUJBQWlCLENBQUM7cUJBQ2xEO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIGlzRGV2TW9kZSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgSGFzaE1hcCxcbiAgcHJvdmlkZVRyYW5zbG9jbyxcbiAgcHJvdmlkZVRyYW5zbG9jb01pc3NpbmdIYW5kbGVyLFxuICBUUkFOU0xPQ09fVFJBTlNQSUxFUixcbiAgVHJhbnNsb2NvTG9hZGVyLFxuICBUcmFuc2xvY29NaXNzaW5nSGFuZGxlcixcbiAgVHJhbnNsb2NvTWlzc2luZ0hhbmRsZXJEYXRhLFxuICBUcmFuc2xvY29Nb2R1bGUsXG4gIFRyYW5zbG9jb1RyYW5zcGlsZXIsXG59IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBkZWxheSwgbGFzdFZhbHVlRnJvbSwgb2YgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgZGVmYXVsdExhbmcgZnJvbSAnLi9pMThuLmpzb24nXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3ZNaXNzaW5nSGFuZGxlciBpbXBsZW1lbnRzIFRyYW5zbG9jb01pc3NpbmdIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUUkFOU0xPQ09fVFJBTlNQSUxFUikgcHJpdmF0ZSB0cmFuc3BpbGVyOiBUcmFuc2xvY29UcmFuc3BpbGVyLFxuICApIHt9XG4gIGhhbmRsZShrZXk6IHN0cmluZywgXzogVHJhbnNsb2NvTWlzc2luZ0hhbmRsZXJEYXRhLCBwYXJhbXM6IEhhc2hNYXApIHtcbiAgICBjb25zdCBrZXlXaXRob3V0TG9jYWxlID0ga2V5LmNoYXJBdCgyKSA9PT0gJy4nID8ga2V5LnN1YnN0cmluZygzKSA6IGtleVxuICAgIGNvbnN0IHdpdGhvdXRTY29wZSA9IGtleVdpdGhvdXRMb2NhbGUucmVwbGFjZShcbiAgICAgIC9eKCg/OlxcdyspKD88IWxhYmVsfGhlYWRpbmd8YnV0dG9ufGFsdHxsaW5rfHRpdGxlfGhyZWZ8ZmllbGRoZWxwfGVycm9yfHRleHR8aW1hZ2V8bGlzdCkoPzpcXC4pKS8sXG4gICAgICAnJyxcbiAgICApXG4gICAgY29uc3QgdHJhbnNwaWxlUGFyYW1zID0ge1xuICAgICAgdmFsdWU6IGRlZmF1bHRMYW5nW2tleVdpdGhvdXRMb2NhbGUgYXMga2V5b2YgdHlwZW9mIGRlZmF1bHRMYW5nXSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRyYW5zbGF0aW9uOiB7fSxcbiAgICAgIGtleToga2V5V2l0aG91dExvY2FsZSxcbiAgICB9O1xuICAgIGNvbnN0IHRyYW5zcGlsZWRLZXkgPSB0aGlzLnRyYW5zcGlsZXIudHJhbnNwaWxlKHRyYW5zcGlsZVBhcmFtcyk7XG4gICAgcmV0dXJuIHRyYW5zcGlsZWRLZXkgfHwgd2l0aG91dFNjb3BlXG4gIH1cbn1cblxuY29uc3QgZW4gPSB7XG4gICdlcnJvci5maWVsZGlucHV0bWFzayc6ICdJbnZhbGlkIHZhbHVlIHBhdHRlcm4nLFxuICAnZXJyb3IuZmllbGRyZXF1aXJlZCc6ICdGaWVsZCBtdXN0IGhhdmUgY29udGVudCcsXG4gICdlcnJvci5maWVsZG1heGxlbmd0aCc6XG4gICAgJ0ZpZWxkIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBsb25nZXIgdGhhbiB7e3JlcXVpcmVkTGVuZ3RofX0gY2hhcmFjdGVycycsXG4gICdsYWJlbC5kZWZhdWx0bGFiZWwnOiAnTGFiZWwnLFxuICAnbGFiZWwubWF4bGVuZ3RoJzogJ2NoYXJhY3RlcnMgbGVmdCcsXG4gICdsYWJlbC5vcHRpb25hbCc6ICdPcHRpb25hbCcsXG59XG5cbmNvbnN0IHN2ID0ge1xuICAnZXJyb3IuZmllbGRpbnB1dG1hc2snOiAnSWNrZSBnaWx0aWd0IHRlY2tlbiBtw7Zuc3RlcicsXG4gICdlcnJvci5maWVsZHJlcXVpcmVkJzogJ0bDpGx0ZXQgZsOlciBpbnRlIGzDpG1uYXMgdG9tdCcsXG4gICdlcnJvci5maWVsZG1heGxlbmd0aCc6XG4gICAgJ0bDpGx0aW5uZWjDpWxsZXQgbcOlc3RlIHZhcmEgbMOkbmdyZSDDpG4ge3tyZXF1aXJlZExlbmd0aH19IHRlY2tlbicsXG4gICdsYWJlbC5tYXhsZW5ndGgnOiAndGVja2VuIGt2YXInLFxufVxuY2xhc3MgVHJhbnNsb2NvSW5saW5lTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsb2NvTG9hZGVyIHtcbiAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKGxhbmcgPT09ICdzdicpIHtcbiAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKG9mKHN2KS5waXBlKGRlbGF5KDE1MDApKSlcbiAgICB9XG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20ob2YoZW4pLnBpcGUoZGVsYXkoNTAwKSkpXG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZVRyYW5zbG9jbyh7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXZhaWxhYmxlTGFuZ3M6IFsnZW4nLCAnc3YnXSxcbiAgICAgICAgZGVmYXVsdExhbmc6ICdlbicsXG4gICAgICAgIC8vIFJlbW92ZSB0aGlzIG9wdGlvbiBpZiB5b3VyIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBjaGFuZ2luZyBsYW5ndWFnZSBpbiBydW50aW1lLlxuICAgICAgICByZVJlbmRlck9uTGFuZ0NoYW5nZTogdHJ1ZSxcbiAgICAgICAgcHJvZE1vZGU6ICFpc0Rldk1vZGUoKSxcbiAgICAgIH0sXG4gICAgICBsb2FkZXI6IFRyYW5zbG9jb0lubGluZUxvYWRlcixcbiAgICB9KSxcbiAgICBwcm92aWRlVHJhbnNsb2NvTWlzc2luZ0hhbmRsZXIoTmd2TWlzc2luZ0hhbmRsZXIpLFxuICBdLFxuICBleHBvcnRzOiBbVHJhbnNsb2NvTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2STE4bk1vZHVsZSB7fVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuL2kxOG4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkUsT0FBTyxFQUVMLGdCQUFnQixFQUNoQiw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBSXBCLGVBQWUsR0FFaEIsTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFL0MsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFBOztBQUdyQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ3dDLFVBQStCO1FBQS9CLGVBQVUsR0FBVixVQUFVLENBQXFCO0lBQ3BFLENBQUM7SUFDSixNQUFNLENBQUMsR0FBVyxFQUFFLENBQThCLEVBQUUsTUFBZTtRQUNqRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7UUFDdkUsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUMzQywrRkFBK0YsRUFDL0YsRUFBRSxDQUNILENBQUE7UUFDRCxNQUFNLGVBQWUsR0FBRztZQUN0QixLQUFLLEVBQUUsV0FBVyxDQUFDLGdCQUE0QyxDQUFDO1lBQ2hFLE1BQU07WUFDTixXQUFXLEVBQUUsRUFBRTtZQUNmLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsQ0FBQTtRQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ2hFLE9BQU8sYUFBYSxJQUFJLFlBQVksQ0FBQTtJQUN0QyxDQUFDOytHQWxCVSxrQkFBa0Isa0JBRW5CLG9CQUFvQjttSEFGbkIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG9CQUFvQjs7QUFtQmhDLE1BQU0sRUFBRSxHQUFHO0lBQ1Qsc0JBQXNCLEVBQUUsdUJBQXVCO0lBQy9DLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxzQkFBc0IsRUFDcEIsdUVBQXVFO0lBQ3pFLG9CQUFvQixFQUFFLE9BQU87SUFDN0IsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQTtBQUVELE1BQU0sRUFBRSxHQUFHO0lBQ1Qsc0JBQXNCLEVBQUUsNkJBQTZCO0lBQ3JELHFCQUFxQixFQUFFLDZCQUE2QjtJQUNwRCxzQkFBc0IsRUFDcEIsK0RBQStEO0lBQ2pFLGlCQUFpQixFQUFFLGFBQWE7Q0FDakMsQ0FBQTtBQUNELE1BQU0scUJBQXFCO0lBQ3pCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7Q0FDRjtBQWtCRCxNQUFNLE9BQU8sY0FBYzsrR0FBZCxjQUFjO2dIQUFkLGNBQWMsWUFGZixlQUFlO2dIQUVkLGNBQWMsYUFmZDtZQUNULGdCQUFnQixDQUFDO2dCQUNmLE1BQU0sRUFBRTtvQkFDTixjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO29CQUM1QixXQUFXLEVBQUUsSUFBSTtvQkFDakIsdUZBQXVGO29CQUN2RixvQkFBb0IsRUFBRSxJQUFJO29CQUMxQixRQUFRLEVBQUUsQ0FBQyxTQUFTLEVBQUU7aUJBQ3ZCO2dCQUNELE1BQU0sRUFBRSxxQkFBcUI7YUFDOUIsQ0FBQztZQUNGLDhCQUE4QixDQUFDLGtCQUFrQixDQUFDO1NBQ25ELFlBQ1MsZUFBZTs7NEZBRWQsY0FBYztrQkFoQjFCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULGdCQUFnQixDQUFDOzRCQUNmLE1BQU0sRUFBRTtnQ0FDTixjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2dDQUM1QixXQUFXLEVBQUUsSUFBSTtnQ0FDakIsdUZBQXVGO2dDQUN2RixvQkFBb0IsRUFBRSxJQUFJO2dDQUMxQixRQUFRLEVBQUUsQ0FBQyxTQUFTLEVBQUU7NkJBQ3ZCOzRCQUNELE1BQU0sRUFBRSxxQkFBcUI7eUJBQzlCLENBQUM7d0JBQ0YsOEJBQThCLENBQUMsa0JBQWtCLENBQUM7cUJBQ25EO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIGlzRGV2TW9kZSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgSGFzaE1hcCxcbiAgcHJvdmlkZVRyYW5zbG9jbyxcbiAgcHJvdmlkZVRyYW5zbG9jb01pc3NpbmdIYW5kbGVyLFxuICBUUkFOU0xPQ09fVFJBTlNQSUxFUixcbiAgVHJhbnNsb2NvTG9hZGVyLFxuICBUcmFuc2xvY29NaXNzaW5nSGFuZGxlcixcbiAgVHJhbnNsb2NvTWlzc2luZ0hhbmRsZXJEYXRhLFxuICBUcmFuc2xvY29Nb2R1bGUsXG4gIFRyYW5zbG9jb1RyYW5zcGlsZXIsXG59IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcbmltcG9ydCB7IGRlbGF5LCBsYXN0VmFsdWVGcm9tLCBvZiB9IGZyb20gJ3J4anMnXG5cbmltcG9ydCBkZWZhdWx0TGFuZyBmcm9tICcuL2kxOG4uanNvbidcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5nZ3ZNaXNzaW5nSGFuZGxlciBpbXBsZW1lbnRzIFRyYW5zbG9jb01pc3NpbmdIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUUkFOU0xPQ09fVFJBTlNQSUxFUikgcHJpdmF0ZSB0cmFuc3BpbGVyOiBUcmFuc2xvY29UcmFuc3BpbGVyLFxuICApIHt9XG4gIGhhbmRsZShrZXk6IHN0cmluZywgXzogVHJhbnNsb2NvTWlzc2luZ0hhbmRsZXJEYXRhLCBwYXJhbXM6IEhhc2hNYXApIHtcbiAgICBjb25zdCBrZXlXaXRob3V0TG9jYWxlID0ga2V5LmNoYXJBdCgyKSA9PT0gJy4nID8ga2V5LnN1YnN0cmluZygzKSA6IGtleVxuICAgIGNvbnN0IHdpdGhvdXRTY29wZSA9IGtleVdpdGhvdXRMb2NhbGUucmVwbGFjZShcbiAgICAgIC9eKCg/OlxcdyspKD88IWxhYmVsfGhlYWRpbmd8YnV0dG9ufGFsdHxsaW5rfHRpdGxlfGhyZWZ8ZmllbGRoZWxwfGVycm9yfHRleHR8aW1hZ2V8bGlzdCkoPzpcXC4pKS8sXG4gICAgICAnJyxcbiAgICApXG4gICAgY29uc3QgdHJhbnNwaWxlUGFyYW1zID0ge1xuICAgICAgdmFsdWU6IGRlZmF1bHRMYW5nW2tleVdpdGhvdXRMb2NhbGUgYXMga2V5b2YgdHlwZW9mIGRlZmF1bHRMYW5nXSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRyYW5zbGF0aW9uOiB7fSxcbiAgICAgIGtleToga2V5V2l0aG91dExvY2FsZSxcbiAgICB9XG4gICAgY29uc3QgdHJhbnNwaWxlZEtleSA9IHRoaXMudHJhbnNwaWxlci50cmFuc3BpbGUodHJhbnNwaWxlUGFyYW1zKVxuICAgIHJldHVybiB0cmFuc3BpbGVkS2V5IHx8IHdpdGhvdXRTY29wZVxuICB9XG59XG5cbmNvbnN0IGVuID0ge1xuICAnZXJyb3IuZmllbGRpbnB1dG1hc2snOiAnSW52YWxpZCB2YWx1ZSBwYXR0ZXJuJyxcbiAgJ2Vycm9yLmZpZWxkcmVxdWlyZWQnOiAnRmllbGQgbXVzdCBoYXZlIGNvbnRlbnQnLFxuICAnZXJyb3IuZmllbGRtYXhsZW5ndGgnOlxuICAgICdGaWVsZCBjb250ZW50IHNob3VsZCBub3QgYmUgbG9uZ2VyIHRoYW4ge3tyZXF1aXJlZExlbmd0aH19IGNoYXJhY3RlcnMnLFxuICAnbGFiZWwuZGVmYXVsdGxhYmVsJzogJ0xhYmVsJyxcbiAgJ2xhYmVsLm1heGxlbmd0aCc6ICdjaGFyYWN0ZXJzIGxlZnQnLFxuICAnbGFiZWwub3B0aW9uYWwnOiAnT3B0aW9uYWwnLFxufVxuXG5jb25zdCBzdiA9IHtcbiAgJ2Vycm9yLmZpZWxkaW5wdXRtYXNrJzogJ0lja2UgZ2lsdGlndCB0ZWNrZW4gbcO2bnN0ZXInLFxuICAnZXJyb3IuZmllbGRyZXF1aXJlZCc6ICdGw6RsdGV0IGbDpXIgaW50ZSBsw6RtbmFzIHRvbXQnLFxuICAnZXJyb3IuZmllbGRtYXhsZW5ndGgnOlxuICAgICdGw6RsdGlubmVow6VsbGV0IG3DpXN0ZSB2YXJhIGzDpG5ncmUgw6RuIHt7cmVxdWlyZWRMZW5ndGh9fSB0ZWNrZW4nLFxuICAnbGFiZWwubWF4bGVuZ3RoJzogJ3RlY2tlbiBrdmFyJyxcbn1cbmNsYXNzIFRyYW5zbG9jb0lubGluZUxvYWRlciBpbXBsZW1lbnRzIFRyYW5zbG9jb0xvYWRlciB7XG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZykge1xuICAgIGlmIChsYW5nID09PSAnc3YnKSB7XG4gICAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShvZihzdikucGlwZShkZWxheSgxNTAwKSkpXG4gICAgfVxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKG9mKGVuKS5waXBlKGRlbGF5KDUwMCkpKVxuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVUcmFuc2xvY28oe1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGF2YWlsYWJsZUxhbmdzOiBbJ2VuJywgJ3N2J10sXG4gICAgICAgIGRlZmF1bHRMYW5nOiAnZW4nLFxuICAgICAgICAvLyBSZW1vdmUgdGhpcyBvcHRpb24gaWYgeW91ciBhcHBsaWNhdGlvbiBkb2Vzbid0IHN1cHBvcnQgY2hhbmdpbmcgbGFuZ3VhZ2UgaW4gcnVudGltZS5cbiAgICAgICAgcmVSZW5kZXJPbkxhbmdDaGFuZ2U6IHRydWUsXG4gICAgICAgIHByb2RNb2RlOiAhaXNEZXZNb2RlKCksXG4gICAgICB9LFxuICAgICAgbG9hZGVyOiBUcmFuc2xvY29JbmxpbmVMb2FkZXIsXG4gICAgfSksXG4gICAgcHJvdmlkZVRyYW5zbG9jb01pc3NpbmdIYW5kbGVyKE5nZ3ZNaXNzaW5nSGFuZGxlciksXG4gIF0sXG4gIGV4cG9ydHM6IFtUcmFuc2xvY29Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2STE4bk1vZHVsZSB7fVxuIl19