@sebgroup/green-angular 4.6.7 → 5.0.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 (242) hide show
  1. package/esm2022/lib/accordion/accordion-list-item.component.mjs +4 -4
  2. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  3. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  4. package/esm2022/lib/badge/badge.component.mjs +5 -5
  5. package/esm2022/lib/badge/badge.module.mjs +4 -4
  6. package/esm2022/lib/button/button.component.mjs +3 -3
  7. package/esm2022/lib/button/button.module.mjs +4 -4
  8. package/esm2022/lib/cell-table/cell-table-item.component.mjs +5 -5
  9. package/esm2022/lib/cell-table/cell-table.component.mjs +4 -4
  10. package/esm2022/lib/cell-table/cell-table.module.mjs +4 -4
  11. package/esm2022/lib/cell-table/cell-underline.directive.mjs +5 -5
  12. package/esm2022/lib/context-menu/context-menu.component.mjs +5 -12
  13. package/esm2022/lib/context-menu/context-menu.module.mjs +4 -4
  14. package/esm2022/lib/datepicker/datepicker.component.mjs +5 -5
  15. package/esm2022/lib/datepicker/datepicker.module.mjs +4 -4
  16. package/esm2022/lib/dropdown/dropdown-button.directive.mjs +4 -4
  17. package/esm2022/lib/dropdown/dropdown-option.directive.mjs +4 -4
  18. package/esm2022/lib/dropdown/dropdown.component.mjs +6 -11
  19. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  20. package/esm2022/lib/green-angular.module.mjs +4 -4
  21. package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
  22. package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +4 -4
  23. package/esm2022/lib/modal/modal-footer.directive.mjs +4 -4
  24. package/esm2022/lib/modal/modal-header.directive.mjs +4 -4
  25. package/esm2022/lib/modal/modal.component.mjs +14 -14
  26. package/esm2022/lib/modal/modal.module.mjs +4 -4
  27. package/esm2022/lib/pagination/pagination.component.mjs +4 -4
  28. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  29. package/esm2022/lib/progress-circle/progress-circle.component.mjs +4 -4
  30. package/esm2022/lib/progress-circle/progress-circle.module.mjs +4 -4
  31. package/esm2022/lib/segmented-control/segmented-control.component.mjs +4 -4
  32. package/esm2022/lib/segmented-control/segmented-control.module.mjs +4 -4
  33. package/esm2022/lib/shared/core-element/core-element.directive.mjs +3 -3
  34. package/esm2022/lib/shared/core-element/core-element.module.mjs +4 -4
  35. package/esm2022/lib/shared/on-scroll.directive.mjs +5 -5
  36. package/esm2022/lib/shared/shared.module.mjs +4 -4
  37. package/esm2022/lib/slider/slider.component.mjs +4 -4
  38. package/esm2022/lib/slider/slider.module.mjs +4 -4
  39. package/esm2022/lib/sortable-list/sortable-list.component.mjs +4 -4
  40. package/esm2022/lib/sortable-list/sortable-list.module.mjs +4 -4
  41. package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +4 -4
  42. package/esm2022/src/lib/accordion/accordion.component.mjs +4 -4
  43. package/esm2022/src/lib/accordion/accordion.module.mjs +4 -4
  44. package/esm2022/src/lib/badge/badge.component.mjs +5 -5
  45. package/esm2022/src/lib/badge/badge.module.mjs +4 -4
  46. package/esm2022/src/lib/button/button.component.mjs +3 -3
  47. package/esm2022/src/lib/button/button.module.mjs +4 -4
  48. package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +5 -5
  49. package/esm2022/src/lib/cell-table/cell-table.component.mjs +4 -4
  50. package/esm2022/src/lib/cell-table/cell-table.module.mjs +4 -4
  51. package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +5 -5
  52. package/esm2022/src/lib/context-menu/context-menu.component.mjs +5 -12
  53. package/esm2022/src/lib/context-menu/context-menu.module.mjs +4 -4
  54. package/esm2022/src/lib/datepicker/datepicker.component.mjs +5 -5
  55. package/esm2022/src/lib/datepicker/datepicker.module.mjs +4 -4
  56. package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +4 -4
  57. package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +4 -4
  58. package/esm2022/src/lib/dropdown/dropdown.component.mjs +6 -11
  59. package/esm2022/src/lib/dropdown/dropdown.module.mjs +4 -4
  60. package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
  61. package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +4 -4
  62. package/esm2022/src/lib/modal/modal-footer.directive.mjs +4 -4
  63. package/esm2022/src/lib/modal/modal-header.directive.mjs +4 -4
  64. package/esm2022/src/lib/modal/modal.component.mjs +14 -14
  65. package/esm2022/src/lib/modal/modal.module.mjs +4 -4
  66. package/esm2022/src/lib/pagination/pagination.component.mjs +4 -4
  67. package/esm2022/src/lib/pagination/pagination.module.mjs +4 -4
  68. package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +4 -4
  69. package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +4 -4
  70. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +4 -4
  71. package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +4 -4
  72. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +3 -3
  73. package/esm2022/src/lib/shared/core-element/core-element.module.mjs +4 -4
  74. package/esm2022/src/lib/shared/on-scroll.directive.mjs +5 -5
  75. package/esm2022/src/lib/shared/shared.module.mjs +4 -4
  76. package/esm2022/src/lib/slider/slider.component.mjs +4 -4
  77. package/esm2022/src/lib/slider/slider.module.mjs +4 -4
  78. package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +4 -4
  79. package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +4 -4
  80. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +7 -7
  81. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +4 -4
  82. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
  83. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +4 -4
  84. package/esm2022/src/v-angular/button/button.component.mjs +6 -6
  85. package/esm2022/src/v-angular/button/button.module.mjs +4 -4
  86. package/esm2022/src/v-angular/card/card.component.mjs +3 -3
  87. package/esm2022/src/v-angular/card/card.module.mjs +4 -4
  88. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
  89. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +4 -4
  90. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +6 -6
  91. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +4 -4
  92. package/esm2022/src/v-angular/core/core.globals.mjs +1 -1
  93. package/esm2022/src/v-angular/core/core.utils.mjs +3 -3
  94. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +6 -6
  95. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +6 -6
  96. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +4 -4
  97. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +6 -6
  98. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +4 -4
  99. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +6 -6
  100. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +6 -6
  101. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
  102. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
  103. package/esm2022/src/v-angular/external-link/external-link.module.mjs +4 -4
  104. package/esm2022/src/v-angular/i18n/i18n.module.mjs +10 -10
  105. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +7 -7
  106. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
  107. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +4 -4
  108. package/esm2022/src/v-angular/input/input.component.mjs +7 -7
  109. package/esm2022/src/v-angular/input/input.module.mjs +4 -4
  110. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +3 -3
  111. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
  112. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +4 -4
  113. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +4 -4
  114. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +6 -6
  115. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
  116. package/esm2022/src/v-angular/modal/modal.globals.mjs +1 -1
  117. package/esm2022/src/v-angular/modal/modal.module.mjs +4 -4
  118. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +5 -5
  119. package/esm2022/src/v-angular/radio/radio.component.mjs +9 -9
  120. package/esm2022/src/v-angular/radio/radio.module.mjs +4 -4
  121. package/esm2022/src/v-angular/slug/slug.module.mjs +4 -4
  122. package/esm2022/src/v-angular/slug/slug.pipe.mjs +4 -4
  123. package/esm2022/src/v-angular/textarea/textarea.component.mjs +7 -7
  124. package/esm2022/src/v-angular/textarea/textarea.module.mjs +4 -4
  125. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +5 -5
  126. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +4 -4
  127. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +7 -7
  128. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +4 -4
  129. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
  130. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +4 -4
  131. package/esm2022/v-angular/button/button.component.mjs +6 -6
  132. package/esm2022/v-angular/button/button.module.mjs +4 -4
  133. package/esm2022/v-angular/card/card.component.mjs +3 -3
  134. package/esm2022/v-angular/card/card.module.mjs +4 -4
  135. package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
  136. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +4 -4
  137. package/esm2022/v-angular/checkbox/checkbox.component.mjs +6 -6
  138. package/esm2022/v-angular/checkbox/checkbox.module.mjs +4 -4
  139. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +6 -6
  140. package/esm2022/v-angular/dropdown/dropdown.component.mjs +6 -6
  141. package/esm2022/v-angular/dropdown/dropdown.module.mjs +4 -4
  142. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +6 -6
  143. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +4 -4
  144. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +6 -6
  145. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +6 -6
  146. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +4 -4
  147. package/esm2022/v-angular/i18n/i18n.module.mjs +10 -10
  148. package/esm2022/v-angular/i18n/i18n.test.module.mjs +7 -7
  149. package/esm2022/v-angular/info-circle/info-circle.component.mjs +3 -3
  150. package/esm2022/v-angular/info-circle/info-circle.module.mjs +4 -4
  151. package/esm2022/v-angular/input/input.component.mjs +7 -7
  152. package/esm2022/v-angular/input/input.module.mjs +4 -4
  153. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +3 -3
  154. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
  155. package/esm2022/v-angular/input-mask/input-mask.module.mjs +4 -4
  156. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +4 -4
  157. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +6 -6
  158. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
  159. package/esm2022/v-angular/modal/modal.globals.mjs +1 -1
  160. package/esm2022/v-angular/modal/modal.module.mjs +4 -4
  161. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +5 -5
  162. package/esm2022/v-angular/radio/radio.component.mjs +9 -9
  163. package/esm2022/v-angular/radio/radio.module.mjs +4 -4
  164. package/esm2022/v-angular/textarea/textarea.component.mjs +7 -7
  165. package/esm2022/v-angular/textarea/textarea.module.mjs +4 -4
  166. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +5 -5
  167. package/esm2022/v-angular/tooltip/tooltip.module.mjs +4 -4
  168. package/esm2022/v-angular/v-angular.module.mjs +4 -4
  169. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
  170. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  171. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +8 -8
  172. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  173. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
  174. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +15 -15
  175. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  176. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +8 -15
  177. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  178. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +8 -8
  179. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  180. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +17 -22
  181. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  182. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
  183. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  184. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +25 -25
  185. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  186. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
  187. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  188. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
  189. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  190. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +8 -8
  191. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  192. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +15 -15
  193. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  194. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
  195. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  196. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
  197. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  198. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +10 -10
  199. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  200. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +7 -7
  201. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  202. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +9 -9
  203. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  204. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +7 -7
  205. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +8 -8
  206. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  207. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +9 -9
  208. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  209. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
  210. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  211. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +36 -36
  212. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  213. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +8 -8
  214. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  215. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +16 -16
  216. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  217. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
  218. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +12 -12
  219. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  220. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +10 -10
  221. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  222. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +19 -19
  223. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  224. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +12 -12
  225. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  226. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
  227. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  228. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +10 -10
  229. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  230. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +8 -8
  231. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  232. package/fesm2022/sebgroup-green-angular-v-angular.mjs +184 -184
  233. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  234. package/fesm2022/sebgroup-green-angular.mjs +160 -172
  235. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  236. package/lib/context-menu/context-menu.component.d.ts +1 -6
  237. package/lib/datepicker/datepicker.component.d.ts +0 -7
  238. package/lib/dropdown/dropdown.component.d.ts +1 -6
  239. package/package.json +8 -8
  240. package/src/lib/context-menu/context-menu.component.d.ts +1 -6
  241. package/src/lib/datepicker/datepicker.component.d.ts +0 -7
  242. package/src/lib/dropdown/dropdown.component.d.ts +1 -6
@@ -44,13 +44,13 @@ export class NgvCheckboxComponent extends NgvBaseControlValueAccessorComponent {
44
44
  this.valueChange.emit(output);
45
45
  };
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvCheckboxComponent, selector: "nggv-checkbox", inputs: { thook: "thook", optionalLabel: "optionalLabel" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-checkbox-wrap\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-checkbox-wrap\">\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-surface);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base200);--gds-comp-checkbox-border-color: var(--gds-sys-color-base);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-sys-color-base);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-surface);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-blue-dark-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color);position:relative;border-radius:var(--gds-comp-checkbox-border-radius);background-color:var(--gds-comp-checkbox-container-color);flex:0 0 auto;height:var(--gds-comp-checkbox-container-width, 1rem);width:var(--gds-comp-checkbox-container-width, 1rem);transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]~i:after{transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color-focus)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{border-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control:hover input[type=checkbox]:not(:checked,:indeterminate,:disabled,.disabled)~i:after{border-color:var(--gds-comp-checkbox-hover-border-color);opacity:1}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control:hover input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgvCheckboxComponent, selector: "nggv-checkbox", inputs: { thook: "thook", optionalLabel: "optionalLabel" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-checkbox-wrap\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-checkbox-wrap\">\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-surface);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base200);--gds-comp-checkbox-border-color: var(--gds-sys-color-base);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-sys-color-base);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-surface);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-blue-dark-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color);position:relative;border-radius:var(--gds-comp-checkbox-border-radius);background-color:var(--gds-comp-checkbox-container-color);flex:0 0 auto;height:var(--gds-comp-checkbox-container-width, 1rem);width:var(--gds-comp-checkbox-container-width, 1rem);transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]~i:after{transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color-focus)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{border-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control:hover input[type=checkbox]:not(:checked,:indeterminate,:disabled,.disabled)~i:after{border-color:var(--gds-comp-checkbox-hover-border-color);opacity:1}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control:hover input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxComponent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxComponent, decorators: [{
51
51
  type: Component,
52
52
  args: [{ selector: 'nggv-checkbox', template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-checkbox-wrap\">\n <div\n [id]=\"id + '-checkbox'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n <ng-container *ngIf=\"!labelContentTpl\">\n {{ label }}\n </ng-container>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-checkbox-wrap\">\n <!-- CHECKBOX FIELD -->\n <label\n [id]=\"id + '-label'\"\n [attr.for]=\"id + '-checkbox'\"\n class=\"form-control\"\n *transloco=\"let t; read: scope\"\n >\n <input\n #input\n type=\"checkbox\"\n [id]=\"id + '-checkbox'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n <!-- LABEL -->\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n <span\n *ngIf=\"\n optional === true || (required !== true && optional !== false)\n \"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n <span>{{ label }}</span>\n </ng-container>\n </ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-checkbox'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--gds-comp-checkbox-container-height: 1rem;--gds-comp-checkbox-container-width: 1rem;--gds-comp-checkbox-container-color: var(--gds-sys-color-surface);--gds-comp-checkbox-container-color-disabled: var(--gds-ref-pallet-base200);--gds-comp-checkbox-border-color: var(--gds-sys-color-base);--gds-comp-checkbox-border-radius: var(--gds-sys-shape-corner-small);--gds-comp-checkbox-hover-border-color: var(--gds-ref-pallet-base600);--gds-comp-checkbox-container-color-selected: var(--gds-sys-color-base);--gds-comp-checkbox-border-color-selected: var(--gds-sys-color-surface);--gds-comp-checkbox-border-color-focus: var(--gds-sys-color-blue-dark-2)}:host label.form-control input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control{align-items:flex-start}:host label.form-control:has(input[type=checkbox]){padding:.6875rem 1rem .5625rem}:host label.form-control:has(input[type=checkbox]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=checkbox]:focus-visible):focus,:host label.form-control:has(input[type=checkbox]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=checkbox]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color);position:relative;border-radius:var(--gds-comp-checkbox-border-radius);background-color:var(--gds-comp-checkbox-container-color);flex:0 0 auto;height:var(--gds-comp-checkbox-container-width, 1rem);width:var(--gds-comp-checkbox-container-width, 1rem);transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]~i:after{transition:color .3s ease-in-out,all .3s ease-in-out}:host label.form-control input[type=checkbox]:not(:checked):focus-visible~i{box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-border-color-focus)}:host label.form-control:hover input[type=checkbox]:not(.disabled,:disabled,:checked,:indeterminate)~i{border-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control:hover input[type=checkbox]:not(:checked,:indeterminate,:disabled,.disabled)~i:after{border-color:var(--gds-comp-checkbox-hover-border-color);opacity:1}:host label.form-control input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control:hover input[type=checkbox]:checked~i{background-color:var(--gds-comp-checkbox-hover-border-color);box-shadow:inset 0 0 0 1px var(--gds-comp-checkbox-hover-border-color)}:host label.form-control input[type=checkbox]:indeterminate~i{background-color:var(--gds-comp-checkbox-container-color-selected)}:host label.form-control input[type=checkbox]:indeterminate~i:after{border-bottom:2px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:none;transform:scale(1) rotate(0);opacity:1}:host label.form-control:has(input[type=checkbox].is-invalid){border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control:has(input[type=checkbox].is-invalid){border:none;margin:0}@supports (-moz-appearance: none){:host label.form-control.is-invalid{border:.0625rem solid var(--intent-danger-background);margin-bottom:.5rem}:host .is-invalid label.form-control.is-invalid{border:none;margin:0}}:host label.form-control input[type=checkbox]:disabled~i,:host label.form-control input[type=checkbox].disabled~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~i::placeholder,:host label.form-control input[type=checkbox].disabled~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i,:host label.form-control input[type=checkbox].disabled:checked~i{background:var(--sg-form-control-bg-disabled)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed;box-shadow:inset 0 0 0 1px var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i::placeholder,:host label.form-control input[type=checkbox].disabled:checked~i::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]:disabled:checked~i:after,:host label.form-control input[type=checkbox].disabled:checked~i:after{border-color:var(--border-disabled-color)}:host label.form-control input[type=checkbox]:disabled~span,:host label.form-control input[type=checkbox].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=checkbox]:disabled~span::placeholder,:host label.form-control input[type=checkbox].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=checkbox]~i:after{content:\"\";opacity:0;position:absolute}:host label.form-control input[type=checkbox]~i:after{border-bottom:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);border-left:3px solid var(--gds-comp-checkbox-border-color-selected, #fff);height:.5rem;width:1rem;left:0;top:.1875rem;transform:scale(.601) rotate(-45deg);transform-origin:center}:host label.form-control input[type=checkbox]:checked~i:after{opacity:1}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}\n"] }]
53
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
53
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
54
54
  type: Self
55
55
  }, {
56
56
  type: Optional
@@ -59,7 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
59
59
  }, {
60
60
  type: Inject,
61
61
  args: [TRANSLOCO_SCOPE]
62
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { thook: [{
62
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { thook: [{
63
63
  type: HostBinding,
64
64
  args: ['attr.data-thook']
65
65
  }, {
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
69
69
  }], valueChange: [{
70
70
  type: Output
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7OztBQUV4SDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0NBQW9DO0lBUTVFLFlBR1MsU0FBb0IsRUFHakIsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUdqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFkbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FBRyxVQUFVLENBQUE7UUFDbEQsa0JBQWEsR0FBRyxVQUFVLENBQUE7UUFFaEIsZ0JBQVcsR0FDNUIsSUFBSSxZQUFZLEVBQVUsQ0FBQTtJQVk1QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxVQUFVLENBQUMsS0FBVTtRQUNuQixpRkFBaUY7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxpR0FBaUc7SUFDakcsZ0JBQWdCLENBQUMsRUFBeUI7UUFDeEMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUE7SUFDSCxDQUFDOytHQTNDVSxvQkFBb0IsdUVBYXJCLGVBQWU7bUdBYmQsb0JBQW9CLDRPQzNCakMsaThFQW9GQTs7NEZEekRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlOzswQkFhdEIsSUFBSTs7MEJBQ0osUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlOzRFQVhnQixLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFDN0IsYUFBYTtzQkFBckIsS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3NvcidcblxuLyoqXG4gKiBDaGVja2JveGVzIGFsbG93IGEgdXNlciB0byB0b2dnbGUgYW4gb3B0aW9uIG9uIG9yIG9mZiwgb3IgbWFrZSBtdWx0aXBsZSBjaG9pY2VzIGluIGEgc2V0IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1jaGVja2JveFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2Q2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQge1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdjaGVja2JveCdcbiAgQElucHV0KCkgb3B0aW9uYWxMYWJlbCA9ICdPcHRpb25hbCdcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKG5nQ29udHJvbCwgdHJhbnNsb2NvU2NvcGUsIGNkcilcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnN0YXRlID0gIXRoaXMuc3RhdGVcbiAgICB0aGlzLm9uVG91Y2hlZCgpXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqIFdyaXRlcyBhIG5ldyB2YWx1ZSBvZiB0cnVlIG9yIGZhbHNlIGJhc2VkIG9uIGlmIGFyZ3VtZW50IG1hdGNoZXMgdGhpcyBjb21wb25lbnRzIHZhbHVlIHByb3BlcnR5LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBQaGFudG9tIG51bGwgdmFsdWUgb24gZmlyc3QgbG9hZCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvMzgxNDBcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlID09PSB0aGlzLnZhbHVlKVxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQncyB2YWx1ZSBjaGFuZ2VzLiAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoY2hlY2tlZDogYW55KSA9PiBhbnkpIHtcbiAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHRvIHVwZGF0ZSByZWdpc3RyeVxuICAgIHRoaXMub25DaGFuZ2UgPSAoY2hlY2tlZCkgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gY2hlY2tlZCA/IHRoaXMudmFsdWUgOiBudWxsXG4gICAgICBmbihvdXRwdXQpXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQob3V0cHV0KVxuICAgIH1cbiAgfVxufVxuIiwiPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG48ZGl2ICpuZ0lmPVwibG9ja2VkICYmIHN0YXRlXCIgY2xhc3M9XCJzZHYtZmllbGQtY2hlY2tib3gtd3JhcFwiPlxuICA8ZGl2XG4gICAgW2lkXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFiZWxDb250ZW50VHBsXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgPz8gbnVsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2IGNsYXNzPVwic2R2LWZpZWxkLWNoZWNrYm94LXdyYXBcIj5cbiAgICA8IS0tIENIRUNLQk9YIEZJRUxEIC0tPlxuICAgIDxsYWJlbFxuICAgICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbaWRdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbY2hlY2tlZF09XCJzdGF0ZVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPCEtLSBMQUJFTCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgb3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkdi1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICh7eyB0KCdsYWJlbC5vcHRpb25hbCcpIH19KVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGk+PC9pPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwic2R2LWZpZWxkLW5vdGljZSBzZHYtZmllbGQtbm90aWNlLS1lcnJvclwiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICAqbmdJZj1cImludmFsaWQgJiYgKGVycm9yIHx8IG5nQ29udHJvbD8uaW52YWxpZClcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCI+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBDSElMRFJFTiAtLT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7OztBQUV4SDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0NBQW9DO0lBUTVFLFlBR1MsU0FBb0IsRUFHakIsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUdqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFkbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FBRyxVQUFVLENBQUE7UUFDbEQsa0JBQWEsR0FBRyxVQUFVLENBQUE7UUFFaEIsZ0JBQVcsR0FDNUIsSUFBSSxZQUFZLEVBQVUsQ0FBQTtJQVk1QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELHVHQUF1RztJQUN2RyxVQUFVLENBQUMsS0FBVTtRQUNuQixpRkFBaUY7UUFDakYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxpR0FBaUc7SUFDakcsZ0JBQWdCLENBQUMsRUFBeUI7UUFDeEMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUMxQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUE7SUFDSCxDQUFDOytHQTNDVSxvQkFBb0IsdUVBYXJCLGVBQWU7bUdBYmQsb0JBQW9CLDRPQzNCakMsaThFQW9GQTs7NEZEekRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxlQUFlOzswQkFhdEIsSUFBSTs7MEJBQ0osUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlO3lFQVhnQixLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFDN0IsYUFBYTtzQkFBckIsS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3NvcidcblxuLyoqXG4gKiBDaGVja2JveGVzIGFsbG93IGEgdXNlciB0byB0b2dnbGUgYW4gb3B0aW9uIG9uIG9yIG9mZiwgb3IgbWFrZSBtdWx0aXBsZSBjaG9pY2VzIGluIGEgc2V0IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1jaGVja2JveFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2Q2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQge1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdjaGVja2JveCdcbiAgQElucHV0KCkgb3B0aW9uYWxMYWJlbCA9ICdPcHRpb25hbCdcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKG5nQ29udHJvbCwgdHJhbnNsb2NvU2NvcGUsIGNkcilcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25JbnB1dENoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm5cbiAgICB0aGlzLnN0YXRlID0gIXRoaXMuc3RhdGVcbiAgICB0aGlzLm9uVG91Y2hlZCgpXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqIFdyaXRlcyBhIG5ldyB2YWx1ZSBvZiB0cnVlIG9yIGZhbHNlIGJhc2VkIG9uIGlmIGFyZ3VtZW50IG1hdGNoZXMgdGhpcyBjb21wb25lbnRzIHZhbHVlIHByb3BlcnR5LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBQaGFudG9tIG51bGwgdmFsdWUgb24gZmlyc3QgbG9hZCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvMzgxNDBcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlID09PSB0aGlzLnZhbHVlKVxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQncyB2YWx1ZSBjaGFuZ2VzLiAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoY2hlY2tlZDogYW55KSA9PiBhbnkpIHtcbiAgICAvLyBPdmVycmlkZSBkZWZhdWx0IHRvIHVwZGF0ZSByZWdpc3RyeVxuICAgIHRoaXMub25DaGFuZ2UgPSAoY2hlY2tlZCkgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gY2hlY2tlZCA/IHRoaXMudmFsdWUgOiBudWxsXG4gICAgICBmbihvdXRwdXQpXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQob3V0cHV0KVxuICAgIH1cbiAgfVxufVxuIiwiPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG48ZGl2ICpuZ0lmPVwibG9ja2VkICYmIHN0YXRlXCIgY2xhc3M9XCJzZHYtZmllbGQtY2hlY2tib3gtd3JhcFwiPlxuICA8ZGl2XG4gICAgW2lkXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgIGNsYXNzPVwibmdndi1maWVsZC0tbG9ja2VkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFiZWxDb250ZW50VHBsXCI+XG4gICAgICB7eyBsYWJlbCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgPz8gbnVsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZhbHVlIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIElOUFVUIFdSQVBQRVIgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICA8ZGl2IGNsYXNzPVwic2R2LWZpZWxkLWNoZWNrYm94LXdyYXBcIj5cbiAgICA8IS0tIENIRUNLQk9YIEZJRUxEIC0tPlxuICAgIDxsYWJlbFxuICAgICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1jaGVja2JveCdcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbaWRdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbY2hlY2tlZF09XCJzdGF0ZVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPCEtLSBMQUJFTCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsQ29udGVudFRwbCB8fCBiYXNpY0xhYmVsQ29udGVudFRwbFwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgICAgIDwhLS0gdG8gdHJpZ2dlciBjc3M6ZW1wdHkgaWYgbm8gbGFiZWwgd2FzIGFkZGVkIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgb3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkdi1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICh7eyB0KCdsYWJlbC5vcHRpb25hbCcpIH19KVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGk+PC9pPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwic2R2LWZpZWxkLW5vdGljZSBzZHYtZmllbGQtbm90aWNlLS1lcnJvclwiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWNoZWNrYm94J1wiXG4gICAgICAqbmdJZj1cImludmFsaWQgJiYgKGVycm9yIHx8IG5nQ29udHJvbD8uaW52YWxpZClcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCI+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBDSElMRFJFTiAtLT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -4,11 +4,11 @@ import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
4
4
  import { NgvCheckboxComponent } from './checkbox.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class NgvCheckboxModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxModule, declarations: [NgvCheckboxComponent], imports: [CommonModule, NgvI18nModule], exports: [NgvCheckboxComponent] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxModule, imports: [CommonModule, NgvI18nModule] }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxModule, declarations: [NgvCheckboxComponent], imports: [CommonModule, NgvI18nModule], exports: [NgvCheckboxComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxModule, imports: [CommonModule, NgvI18nModule] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvCheckboxModule, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvCheckboxModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  declarations: [NgvCheckboxComponent],
@@ -206,18 +206,18 @@ export class NgvDropdownListComponent {
206
206
  }, 0);
207
207
  }
208
208
  }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDropdownListComponent, selector: "nggv-dropdown-list", inputs: { expanded: "expanded", state: "state", scrollOffset: "scrollOffset", optionContentTpl: "optionContentTpl", id: "id", thook: "thook", options: "options", textToHighlight: "textToHighlight" }, outputs: { selectedValueChanged: "selectedValueChanged", closed: "closed" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:keyup": "onKeyUp($event)" }, properties: { "attr.id": "this.id", "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "optionRefs", predicate: ["optionRefs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <div class=\"sdv-list__label\">{{ t(item.label) }}</div>\n <ul [attr.aria-disabled]=\"item.disabled\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--grey-400)}:host .gds-dropdown__options__label:active{background-color:var(--grey-500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.NgvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }, { kind: "directive", type: i3.NgvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgvDropdownListComponent, selector: "nggv-dropdown-list", inputs: { expanded: "expanded", state: "state", scrollOffset: "scrollOffset", optionContentTpl: "optionContentTpl", id: "id", thook: "thook", options: "options", textToHighlight: "textToHighlight" }, outputs: { selectedValueChanged: "selectedValueChanged", closed: "closed" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:keyup": "onKeyUp($event)" }, properties: { "attr.id": "this.id", "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "optionRefs", predicate: ["optionRefs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <div class=\"sdv-list__label\">{{ t(item.label) }}</div>\n <ul [attr.aria-disabled]=\"item.disabled\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--grey-400)}:host .gds-dropdown__options__label:active{background-color:var(--grey-500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.NgvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }, { kind: "directive", type: i3.NgvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
211
211
  }
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownListComponent, decorators: [{
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownListComponent, decorators: [{
213
213
  type: Component,
214
214
  args: [{ selector: 'nggv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <div class=\"sdv-list__label\">{{ t(item.label) }}</div>\n <ul [attr.aria-disabled]=\"item.disabled\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--grey-400)}:host .gds-dropdown__options__label:active{background-color:var(--grey-500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}\n"] }]
215
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
215
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
216
216
  type: Optional
217
217
  }, {
218
218
  type: Inject,
219
219
  args: [TRANSLOCO_SCOPE]
220
- }] }]; }, propDecorators: { expanded: [{
220
+ }] }], propDecorators: { expanded: [{
221
221
  type: Input
222
222
  }], state: [{
223
223
  type: Input
@@ -253,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
253
253
  type: HostListener,
254
254
  args: ['document:keyup', ['$event']]
255
255
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24tbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUlOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sY0FBYyxNQUFNLDRCQUE0QixDQUFBO0FBRXZELE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBT25ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQXlDRCxZQUdZLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXpDMUMsdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBUzFCLHlHQUF5RztRQUN4RSxPQUFFLEdBQUksTUFBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUVwRSxvRkFBb0Y7UUFDM0MsVUFBSyxHQUFHLFVBQVUsQ0FBQTtRQU1qRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBRTlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFBO1FBRTNDLHdEQUF3RDtRQUNqRCxnQkFBVyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBSWYsa0JBQWEsR0FDbkIsSUFBSSxhQUFhLEVBQThCLENBQUE7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQTtRQVd0QyxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3RFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSztZQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3ZDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUMxQyxDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUE7UUFDakQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQzFELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsTUFBVztRQUNqQixPQUFPLFNBQVMsSUFBSSxNQUFNLENBQUE7SUFDNUIsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixXQUFXLENBQUMsTUFBVyxFQUFFLEtBQVk7UUFDbkMsSUFBSSxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU07UUFFM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUE7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUE7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUk7UUFDekIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFBO1FBRXpCLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO2FBQ3JDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxDQUFBO1NBQ3hDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUMvQyxJQUFJLENBQUMsT0FBTyxFQUNaLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUN2QixDQUFBO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWE7aUJBQ3JDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2lCQUNwRCxTQUFTLENBQ1IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQy9ELENBQUE7WUFDSCxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxhQUFhLENBQUE7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhO2FBQ3RCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2FBQ3BELFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7Ozs7U0FJSztJQUNMLFVBQVUsQ0FBQyxJQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQVU7UUFDbEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVILFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDakIsS0FBSyxPQUFPLENBQUMsQ0FBQywyQkFBMkI7WUFDekMsS0FBSyxTQUFTLENBQUMsQ0FBQyx1QkFBdUI7WUFDdkMsS0FBSyxXQUFXLEVBQUUseUJBQXlCO2dCQUN6QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUE7Z0JBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtnQkFDdkIsT0FBTyxLQUFLLENBQUE7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxPQUFPLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FDL0MsSUFBSSxDQUFDLE9BQU8sRUFDWixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FDdkIsQ0FBQTtRQUNELElBQUksTUFBTSxDQUFBO1FBRVYsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2pCLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUNsQixNQUFLO1lBQ1AsS0FBSyxPQUFPLEVBQUUsb0NBQW9DO2dCQUNoRCxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7Z0JBQy9CLE1BQUs7WUFFUCxLQUFLLE1BQU0sRUFBRSwyQkFBMkI7Z0JBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFBO2dCQUVwQixNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzNCLE1BQUs7WUFFUCxLQUFLLFNBQVMsRUFBRSwwQ0FBMEM7Z0JBQ3hELElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDO29CQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtxQkFDdkMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUM7b0JBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtnQkFFdEUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO2dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUMzQixNQUFLO1lBRVAsS0FBSyxXQUFXLEVBQUUsd0NBQXdDO2dCQUN4RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDO29CQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtxQkFDeEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtnQkFFdEUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO2dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUMzQixNQUFLO1lBRVAsS0FBSyxLQUFLLEVBQUUsMkJBQTJCO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO2dCQUVyQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzNCLE1BQUs7U0FDUjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsTUFBVztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFNO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNwQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDbEUsQ0FBQTtRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDaEMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFBO1lBRWhFLHlHQUF5RztZQUN6RyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLGNBQWMsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO29CQUN0QyxVQUFVLEVBQUUsV0FBVztvQkFDdkIsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCLENBQUMsQ0FBQTtnQkFFRixLQUFLLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQTtnQkFDN0QsSUFBSSxLQUFLO29CQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM3RCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDTjtJQUNILENBQUM7K0dBaFFVLHdCQUF3QixrQkFpRHpCLGVBQWU7bUdBakRkLHdCQUF3QiwrbUJDaENyQyw0NEdBd0dBOzs0RkR4RWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBb0QzQixRQUFROzswQkFDUixNQUFNOzJCQUFDLGVBQWU7NENBaERaLFFBQVE7c0JBQXBCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdzQixVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVk7Z0JBS08sRUFBRTtzQkFBbEMsV0FBVzt1QkFBQyxTQUFTOztzQkFBRyxLQUFLO2dCQUdXLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUU3QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQWlJUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI1QyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHNjcm9sbEludG9WaWV3IGZyb20gJ3Njcm9sbC1pbnRvLXZpZXctaWYtbmVlZGVkJ1xuXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1kcm9wZG93bi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndkRyb3Bkb3duTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2V0IGV4cGFuZGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChzdGF0ZSlcbiAgfVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkXG4gIH1cbiAgQElucHV0KCkgc3RhdGU6IGFueVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgQElucHV0KCkgb3B0aW9uQ29udGVudFRwbDogVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgTGlzdCBvZiByZWZlcmVuY2VzIHRvIHRoZSBvcHRpb24gZWxlbWVudHMuICovXG4gIEBWaWV3Q2hpbGRyZW4oJ29wdGlvblJlZnMnKSBvcHRpb25SZWZzOlxuICAgIHwgUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTExJRWxlbWVudD4+XG4gICAgfCB1bmRlZmluZWRcblxuICAvKiogSWQgb2YgdGhlIGhvc3QgZWxlbWVudCBhbmQgaXMgYWNjZXNzaWJsZSBieSB0aGUgY2hpbGRyZW4sIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgQElucHV0KCkgaWQgPSAod2luZG93IGFzIGFueSkubmdndj8ubmV4dElkKClcblxuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdkcm9wZG93bidcblxuICBASW5wdXQoKSBvcHRpb25zITogYW55W11cblxuICBASW5wdXQoKSB0ZXh0VG9IaWdobGlnaHQ/OiBzdHJpbmdcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcblxuICAvKiogVGhlIGN1cnJlbnQgYWN0aXZlIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljIGluZGV4LiAqL1xuICBwdWJsaWMgYWN0aXZlSW5kZXggPSAtMVxuXG4gIHNjb3BlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIGRyb3Bkb3duVXRpbHM6IERyb3Bkb3duVXRpbHM8c3RyaW5nIHwgbnVsbCwgc3RyaW5nLCBhbnk+ID1cbiAgICBuZXcgRHJvcGRvd25VdGlsczxzdHJpbmcgfCBudWxsLCBzdHJpbmcsIGFueT4oKVxuICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlXG4gIHByaXZhdGUgY2xvc2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcbiAgcHVibGljIHNlbGVjdGVkVmFsdWU/OiBPcHRpb248c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFN1YnNjcmliZSBpZiBkcm9wZG93biBleHBhbmRlZCB0byBsaXN0ZW4gdG8gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBkcm9wZG93bi4gKi9cbiAgcHJvdGVjdGVkIG9uQ2xpY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlKVxuICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHRoaXMuc3RhdGUua2V5LFxuICAgICAgKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghIWNoYW5nZXMuc3RhdGUgJiYgIWNoYW5nZXMuc3RhdGUuZmlyc3RDaGFuZ2UpXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBjaGFuZ2VzLnN0YXRlLmN1cnJlbnRWYWx1ZVxuICAgIGlmICghIWNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlPy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZClcbiAgICAgIHRoaXMucmVmcmVzaFNlbGVjdGVkT3B0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgaXMgYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNHcm91cChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnb3B0aW9ucycgaW4gb3B0aW9uXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHVwZGF0ZVN0YXRlKG9wdGlvbjogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkKSByZXR1cm5cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2VkLmVtaXQob3B0aW9uKVxuICAgIHRoaXMuc2V0RXhwYW5kZWQoZmFsc2UpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldEV4cGFuZGVkKGV4cGFuZGVkID0gdHJ1ZSkge1xuICAgIC8vIHVwZGF0ZSBleHBhbmRlZCBzdGF0ZVxuICAgIHRoaXMuX2V4cGFuZGVkID0gZXhwYW5kZWRcblxuICAgIGlmIChleHBhbmRlZCkgdGhpcy5yZWZyZXNoU2VsZWN0ZWRPcHRpb24oKVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZWQkLm5leHQodHJ1ZSlcbiAgICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2hTZWxlY3RlZE9wdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgIXRoaXMub3B0aW9uQ29udGVudFRwbCxcbiAgICApXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKVxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgdGhpcy5zY3JvbGxUb1Jlc3VsdCh0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcmV0dXJucyBUaGUgYWN0aXZlIGluZGV4IChudW1iZXIpIGlmIG9wdGlvbiBpcyBmb3VuZCwgLTEgb3RoZXJ3aXNlLlxuICAgKiAtIElmIGEgc2VsZWN0ZWRWYWx1ZSBleGlzdHMgdGhhdCdzIG5vdCBudWxsaXNoIGFuZCB0aGF0IG9wdGlvbnMgaXMgZm91bmQsIHJldHVybiB0aGF0IGluZGV4XG4gICAqIC0gRWxzZSwgcmV0dXJuIGZpcnN0IG5vbiBudWxsaXNoIGluZGV4XG4gICAqIC0gSWYgbm9uZSBvZiB0aGUgYWJvdmUgY3JpdGVyaWFzIGFyZSBtZXQsIC0xIGFyZSByZXR1cm5lZFxuICAgKi9cbiAgZ2V0QWN0aXZlSW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAoISF0aGlzLnNlbGVjdGVkVmFsdWUgJiYgdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXkgIT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgICAuZmxhdHRlbk9wdGlvbnModGhpcy5vcHRpb25zLCAhdGhpcy5vcHRpb25Db250ZW50VHBsKVxuICAgICAgICAuZmluZEluZGV4KFxuICAgICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgICBvcHRpb24ua2V5ICE9IG51bGwgJiYgb3B0aW9uLmtleSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXksXG4gICAgICAgIClcbiAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHJldHVybiBzZWxlY3RlZEluZGV4XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh0aGlzLm9wdGlvbnMsICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwpXG4gICAgICAuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgIT0gbnVsbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogZXZhbHVhdGVzIHdldGhlciB0aGUgSFRNTCBlbGVtZW50IG92ZXJmbG93c1xuICAgKiBAcGFyYW0gZWxlbSBUaGUgSFRNTEVsZW1lbnQgdG8gZXZhbHVhdGVcbiAgICogKi9cbiAgaXNPdmVyZmxvdyhlbGVtOiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtLm9mZnNldFdpZHRoIDwgZWxlbS5zY3JvbGxXaWR0aFxuICB9XG5cbiAgLyoqXG4gICAqIFR5cGVjYXN0IGFueXRoaW5nIHRvIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBncm91cCB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdEdyb3VwKGdyb3VwOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBncm91cFxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEaXNhYmxlcyBkZWZhdWx0IGV2ZW50cy5cbiAgICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6IC8vICBEaXNhYmxlIGZvcm0gc3VibWlzc2lvblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIERpc2FibGUgc2Nyb2xsaW5nIHVwXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBEaXNhYmxlIHNjcm9sbGluZyBkb3duXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEVudGVyIHRvZ2dsZXMgdGhlIGRyb3Bkb3duLCBob21lLCBlbmQsIGFuZCwgYXJyb3dzIGNoYW5nZSB0aGUgaW5kZXguXG4gICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcmVsZWFzZWQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHJldHVyblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnMoXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAhdGhpcy5vcHRpb25Db250ZW50VHBsLFxuICAgIClcbiAgICBsZXQgb3B0aW9uXG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdFbnRlcic6IC8vIFNlbGVjdCB0aGUgY3VycmVudGx5IGNob3NlbiB2YWx1ZVxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUob3B0aW9uLCBldmVudClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnSG9tZSc6IC8vIE1vdmUgdG8gdGhlIGZpcnN0IG9wdGlvblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIE1vdmUgdXAgb25lIHN0ZXAgdG8gdGhlIHByZXZpb3VzIG9wdGlvblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA+IDApIHRoaXMuYWN0aXZlSW5kZXgtLVxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB0aGlzLmFjdGl2ZUluZGV4ID0gb3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQob3B0aW9uKVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBNb3ZlIGRvd24gb25lIHN0ZXAgdG8gdGhlIG5leHQgb3B0aW9uXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IHRoaXMuYWN0aXZlSW5kZXggKyAxKSB0aGlzLmFjdGl2ZUluZGV4KytcbiAgICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gb3B0aW9ucy5sZW5ndGggLSAxKSB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnRW5kJzogLy8gTW92ZSB0byB0aGUgbGFzdCBvcHRpb25zXG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBvcHRpb25zLmxlbmd0aCAtIDFcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgZm9jdXNlZCByZXN1bHQgaW50byB2aWV3IHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKiBAcGFyYW0ga2V5IHRoZSByZXN1bHQgaW5kZXggd2hpY2ggdG8gc2Nyb2xsIHRvLlxuICAgKi9cbiAgc2Nyb2xsVG9SZXN1bHQob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uUmVmcyB8fCAhb3B0aW9uKSByZXR1cm5cbiAgICBjb25zdCBvcHRpb25SZWYgPSB0aGlzLm9wdGlvblJlZnMuZmluZChcbiAgICAgIChsaSkgPT4gbGkubmF0aXZlRWxlbWVudC5pZCA9PT0gdGhpcy5pZCArICctb3B0aW9uLScgKyBvcHRpb24ua2V5LFxuICAgIClcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnNjcm9sbE9mZnNldFxuICAgIGlmIChvcHRpb25SZWYpIHtcbiAgICAgIGxldCBkZWx0YSA9IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcblxuICAgICAgLy8gVGhlIGxpc3Qgc2VlbXMgbm90IHRvIGJlIHZpc2libGUgYXQgdGhlIHRpbWUgb2Ygc2Nyb2xsaW5nLCBidXQgdGhpcyBzZXRUaW1lb3V0IFwiaGFja1wiIG1ha2VzIGl0IHdvcmsuLi5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyhvcHRpb25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgIHNjcm9sbE1vZGU6ICdpZi1uZWVkZWQnLFxuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZGVsdGEgLT0gd2luZG93LnNjcm9sbFkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgICBpZiAoZGVsdGEpIHdpbmRvdy5zY3JvbGxCeSgwLCBkZWx0YSA+IDAgPyAtb2Zmc2V0IDogb2Zmc2V0KVxuICAgICAgfSwgMClcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICA8dWxcbiAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9ucyBjYXJkIG9wdGlvbnMgZ2RzLXJlc2V0XCJcbiAgICBbY2xhc3MuZ2RzLWRyb3Bkb3duX19vcHRpb25zLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9ucydcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwnXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiXG4gICAgICBzdGF0ZSA/IGlkICsgJy1vcHRpb24tJyArIHN0YXRlPy5rZXkgOiB1bmRlZmluZWRcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCI+XG4gICAgICA8IS0tIE9QVElPTiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNHcm91cChpdGVtKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIE9QVElPTiBHUk9VUCAtLT5cbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9uc19fbGFiZWwgZ3JvdXBcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1vcHRpb24tZ3JvdXAnXCJcbiAgICAgICAgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkdi1saXN0X19sYWJlbFwiPnt7IHQoaXRlbS5sYWJlbCkgfX08L2Rpdj5cbiAgICAgICAgPHVsIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjYXN0R3JvdXAoaXRlbSkub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8IS0tIFRFTVBMQVRFIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgICA8bGlcbiAgICAgICNvcHRpb25SZWZzXG4gICAgICAqbmdJZj1cIiFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbbmdndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmdndlRvb2xUaXAgaWYgY3VzdG9tIHRlbXBsYXRlIGlzIHByb3ZpZGVkIC0tPlxuICAgIDxsaVxuICAgICAgI29wdGlvblJlZnNcbiAgICAgICpuZ0lmPVwiISFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlU3RhdGUob3B0aW9uLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25Db250ZW50VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjYmFzaWNPcHRpb25Db250ZW50VHBsIGxldC1vcHRpb24+XG4gICAgPG5nZ3YtdHlwZWFoZWFkLWhpZ2hsaWdodFxuICAgICAgKm5nSWY9XCIhIXRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dFRvSGlnaGxpZ2h0XT1cInRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dENvbnRlbnRdPVwidChvcHRpb24ubGFiZWwpXCJcbiAgICA+XG4gICAgPC9uZ2d2LXR5cGVhaGVhZC1oaWdobGlnaHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0ZXh0VG9IaWdobGlnaHRcIj5cbiAgICAgIHt7IHQob3B0aW9uLmxhYmVsKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24tbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUlOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sY0FBYyxNQUFNLDRCQUE0QixDQUFBO0FBRXZELE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBT25ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQXlDRCxZQUdZLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXpDMUMsdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBUzFCLHlHQUF5RztRQUN4RSxPQUFFLEdBQUksTUFBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUVw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QVk7Z0JBS08sRUFBRTtzQkFBbEMsV0FBVzt1QkFBQyxTQUFTOztzQkFBRyxLQUFLO2dCQUdXLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUU3QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQWlJUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI1QyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHNjcm9sbEludG9WaWV3IGZyb20gJ3Njcm9sbC1pbnRvLXZpZXctaWYtbmVlZGVkJ1xuXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1kcm9wZG93bi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndkRyb3Bkb3duTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2V0IGV4cGFuZGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChzdGF0ZSlcbiAgfVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkXG4gIH1cbiAgQElucHV0KCkgc3RhdGU6IGFueVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgQElucHV0KCkgb3B0aW9uQ29udGVudFRwbDogVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgTGlzdCBvZiByZWZlcmVuY2VzIHRvIHRoZSBvcHRpb24gZWxlbWVudHMuICovXG4gIEBWaWV3Q2hpbGRyZW4oJ29wdGlvblJlZnMnKSBvcHRpb25SZWZzOlxuICAgIHwgUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTExJRWxlbWVudD4+XG4gICAgfCB1bmRlZmluZWRcblxuICAvKiogSWQgb2YgdGhlIGhvc3QgZWxlbWVudCBhbmQgaXMgYWNjZXNzaWJsZSBieSB0aGUgY2hpbGRyZW4sIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgQElucHV0KCkgaWQgPSAod2luZG93IGFzIGFueSkubmdndj8ubmV4dElkKClcblxuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdkcm9wZG93bidcblxuICBASW5wdXQoKSBvcHRpb25zITogYW55W11cblxuICBASW5wdXQoKSB0ZXh0VG9IaWdobGlnaHQ/OiBzdHJpbmdcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcblxuICAvKiogVGhlIGN1cnJlbnQgYWN0aXZlIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljIGluZGV4LiAqL1xuICBwdWJsaWMgYWN0aXZlSW5kZXggPSAtMVxuXG4gIHNjb3BlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIGRyb3Bkb3duVXRpbHM6IERyb3Bkb3duVXRpbHM8c3RyaW5nIHwgbnVsbCwgc3RyaW5nLCBhbnk+ID1cbiAgICBuZXcgRHJvcGRvd25VdGlsczxzdHJpbmcgfCBudWxsLCBzdHJpbmcsIGFueT4oKVxuICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlXG4gIHByaXZhdGUgY2xvc2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcbiAgcHVibGljIHNlbGVjdGVkVmFsdWU/OiBPcHRpb248c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFN1YnNjcmliZSBpZiBkcm9wZG93biBleHBhbmRlZCB0byBsaXN0ZW4gdG8gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBkcm9wZG93bi4gKi9cbiAgcHJvdGVjdGVkIG9uQ2xpY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlKVxuICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHRoaXMuc3RhdGUua2V5LFxuICAgICAgKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghIWNoYW5nZXMuc3RhdGUgJiYgIWNoYW5nZXMuc3RhdGUuZmlyc3RDaGFuZ2UpXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBjaGFuZ2VzLnN0YXRlLmN1cnJlbnRWYWx1ZVxuICAgIGlmICghIWNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlPy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZClcbiAgICAgIHRoaXMucmVmcmVzaFNlbGVjdGVkT3B0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgaXMgYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNHcm91cChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnb3B0aW9ucycgaW4gb3B0aW9uXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHVwZGF0ZVN0YXRlKG9wdGlvbjogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkKSByZXR1cm5cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2VkLmVtaXQob3B0aW9uKVxuICAgIHRoaXMuc2V0RXhwYW5kZWQoZmFsc2UpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldEV4cGFuZGVkKGV4cGFuZGVkID0gdHJ1ZSkge1xuICAgIC8vIHVwZGF0ZSBleHBhbmRlZCBzdGF0ZVxuICAgIHRoaXMuX2V4cGFuZGVkID0gZXhwYW5kZWRcblxuICAgIGlmIChleHBhbmRlZCkgdGhpcy5yZWZyZXNoU2VsZWN0ZWRPcHRpb24oKVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZWQkLm5leHQodHJ1ZSlcbiAgICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2hTZWxlY3RlZE9wdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgIXRoaXMub3B0aW9uQ29udGVudFRwbCxcbiAgICApXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKVxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgdGhpcy5zY3JvbGxUb1Jlc3VsdCh0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcmV0dXJucyBUaGUgYWN0aXZlIGluZGV4IChudW1iZXIpIGlmIG9wdGlvbiBpcyBmb3VuZCwgLTEgb3RoZXJ3aXNlLlxuICAgKiAtIElmIGEgc2VsZWN0ZWRWYWx1ZSBleGlzdHMgdGhhdCdzIG5vdCBudWxsaXNoIGFuZCB0aGF0IG9wdGlvbnMgaXMgZm91bmQsIHJldHVybiB0aGF0IGluZGV4XG4gICAqIC0gRWxzZSwgcmV0dXJuIGZpcnN0IG5vbiBudWxsaXNoIGluZGV4XG4gICAqIC0gSWYgbm9uZSBvZiB0aGUgYWJvdmUgY3JpdGVyaWFzIGFyZSBtZXQsIC0xIGFyZSByZXR1cm5lZFxuICAgKi9cbiAgZ2V0QWN0aXZlSW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAoISF0aGlzLnNlbGVjdGVkVmFsdWUgJiYgdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXkgIT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgICAuZmxhdHRlbk9wdGlvbnModGhpcy5vcHRpb25zLCAhdGhpcy5vcHRpb25Db250ZW50VHBsKVxuICAgICAgICAuZmluZEluZGV4KFxuICAgICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgICBvcHRpb24ua2V5ICE9IG51bGwgJiYgb3B0aW9uLmtleSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXksXG4gICAgICAgIClcbiAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHJldHVybiBzZWxlY3RlZEluZGV4XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh0aGlzLm9wdGlvbnMsICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwpXG4gICAgICAuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgIT0gbnVsbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogZXZhbHVhdGVzIHdldGhlciB0aGUgSFRNTCBlbGVtZW50IG92ZXJmbG93c1xuICAgKiBAcGFyYW0gZWxlbSBUaGUgSFRNTEVsZW1lbnQgdG8gZXZhbHVhdGVcbiAgICogKi9cbiAgaXNPdmVyZmxvdyhlbGVtOiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtLm9mZnNldFdpZHRoIDwgZWxlbS5zY3JvbGxXaWR0aFxuICB9XG5cbiAgLyoqXG4gICAqIFR5cGVjYXN0IGFueXRoaW5nIHRvIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBncm91cCB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdEdyb3VwKGdyb3VwOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBncm91cFxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEaXNhYmxlcyBkZWZhdWx0IGV2ZW50cy5cbiAgICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6IC8vICBEaXNhYmxlIGZvcm0gc3VibWlzc2lvblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIERpc2FibGUgc2Nyb2xsaW5nIHVwXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBEaXNhYmxlIHNjcm9sbGluZyBkb3duXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEVudGVyIHRvZ2dsZXMgdGhlIGRyb3Bkb3duLCBob21lLCBlbmQsIGFuZCwgYXJyb3dzIGNoYW5nZSB0aGUgaW5kZXguXG4gICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcmVsZWFzZWQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHJldHVyblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnMoXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAhdGhpcy5vcHRpb25Db250ZW50VHBsLFxuICAgIClcbiAgICBsZXQgb3B0aW9uXG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdFbnRlcic6IC8vIFNlbGVjdCB0aGUgY3VycmVudGx5IGNob3NlbiB2YWx1ZVxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUob3B0aW9uLCBldmVudClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnSG9tZSc6IC8vIE1vdmUgdG8gdGhlIGZpcnN0IG9wdGlvblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIE1vdmUgdXAgb25lIHN0ZXAgdG8gdGhlIHByZXZpb3VzIG9wdGlvblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA+IDApIHRoaXMuYWN0aXZlSW5kZXgtLVxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB0aGlzLmFjdGl2ZUluZGV4ID0gb3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQob3B0aW9uKVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBNb3ZlIGRvd24gb25lIHN0ZXAgdG8gdGhlIG5leHQgb3B0aW9uXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IHRoaXMuYWN0aXZlSW5kZXggKyAxKSB0aGlzLmFjdGl2ZUluZGV4KytcbiAgICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gb3B0aW9ucy5sZW5ndGggLSAxKSB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnRW5kJzogLy8gTW92ZSB0byB0aGUgbGFzdCBvcHRpb25zXG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBvcHRpb25zLmxlbmd0aCAtIDFcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgZm9jdXNlZCByZXN1bHQgaW50byB2aWV3IHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKiBAcGFyYW0ga2V5IHRoZSByZXN1bHQgaW5kZXggd2hpY2ggdG8gc2Nyb2xsIHRvLlxuICAgKi9cbiAgc2Nyb2xsVG9SZXN1bHQob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uUmVmcyB8fCAhb3B0aW9uKSByZXR1cm5cbiAgICBjb25zdCBvcHRpb25SZWYgPSB0aGlzLm9wdGlvblJlZnMuZmluZChcbiAgICAgIChsaSkgPT4gbGkubmF0aXZlRWxlbWVudC5pZCA9PT0gdGhpcy5pZCArICctb3B0aW9uLScgKyBvcHRpb24ua2V5LFxuICAgIClcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnNjcm9sbE9mZnNldFxuICAgIGlmIChvcHRpb25SZWYpIHtcbiAgICAgIGxldCBkZWx0YSA9IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcblxuICAgICAgLy8gVGhlIGxpc3Qgc2VlbXMgbm90IHRvIGJlIHZpc2libGUgYXQgdGhlIHRpbWUgb2Ygc2Nyb2xsaW5nLCBidXQgdGhpcyBzZXRUaW1lb3V0IFwiaGFja1wiIG1ha2VzIGl0IHdvcmsuLi5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyhvcHRpb25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgIHNjcm9sbE1vZGU6ICdpZi1uZWVkZWQnLFxuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZGVsdGEgLT0gd2luZG93LnNjcm9sbFkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgICBpZiAoZGVsdGEpIHdpbmRvdy5zY3JvbGxCeSgwLCBkZWx0YSA+IDAgPyAtb2Zmc2V0IDogb2Zmc2V0KVxuICAgICAgfSwgMClcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICA8dWxcbiAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9ucyBjYXJkIG9wdGlvbnMgZ2RzLXJlc2V0XCJcbiAgICBbY2xhc3MuZ2RzLWRyb3Bkb3duX19vcHRpb25zLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9ucydcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwnXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiXG4gICAgICBzdGF0ZSA/IGlkICsgJy1vcHRpb24tJyArIHN0YXRlPy5rZXkgOiB1bmRlZmluZWRcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCI+XG4gICAgICA8IS0tIE9QVElPTiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNHcm91cChpdGVtKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIE9QVElPTiBHUk9VUCAtLT5cbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9uc19fbGFiZWwgZ3JvdXBcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1vcHRpb24tZ3JvdXAnXCJcbiAgICAgICAgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkdi1saXN0X19sYWJlbFwiPnt7IHQoaXRlbS5sYWJlbCkgfX08L2Rpdj5cbiAgICAgICAgPHVsIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjYXN0R3JvdXAoaXRlbSkub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8IS0tIFRFTVBMQVRFIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgICA8bGlcbiAgICAgICNvcHRpb25SZWZzXG4gICAgICAqbmdJZj1cIiFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbbmdndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmdndlRvb2xUaXAgaWYgY3VzdG9tIHRlbXBsYXRlIGlzIHByb3ZpZGVkIC0tPlxuICAgIDxsaVxuICAgICAgI29wdGlvblJlZnNcbiAgICAgICpuZ0lmPVwiISFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlU3RhdGUob3B0aW9uLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25Db250ZW50VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjYmFzaWNPcHRpb25Db250ZW50VHBsIGxldC1vcHRpb24+XG4gICAgPG5nZ3YtdHlwZWFoZWFkLWhpZ2hsaWdodFxuICAgICAgKm5nSWY9XCIhIXRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dFRvSGlnaGxpZ2h0XT1cInRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dENvbnRlbnRdPVwidChvcHRpb24ubGFiZWwpXCJcbiAgICA+XG4gICAgPC9uZ2d2LXR5cGVhaGVhZC1oaWdobGlnaHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0ZXh0VG9IaWdobGlnaHRcIj5cbiAgICAgIHt7IHQob3B0aW9uLmxhYmVsKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -192,13 +192,13 @@ export class NgvDropdownComponent extends NgvBaseControlValueAccessorComponent {
192
192
  isOption(option) {
193
193
  return !('options' in option);
194
194
  }
195
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
196
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label [id]=\"id + '-label'\" class=\"hide-if-empty\" [attr.for]=\"id + '-toggle'\">\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-toggle'\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [textToHighlight]=\"textToHighlight\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host button{font-weight:500;display:inline-flex;justify-content:center;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;background:transparent;border-color:#007ac7;color:#007ac7;--color: rgb(0, 122, 199);background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-800);--sg-border-color: var(--grey-800);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:inherit;font-weight:400;line-height:1.125;margin-bottom:.5rem;margin-top:.5rem;width:100%}@media screen and (-ms-high-contrast: active){:host button{border:2px solid currentcolor}}:host button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}:host button:focus:not(:focus-visible){box-shadow:none;outline:0}:host button:focus,:host button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host button:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host button[aria-selected=true],:host button:active,:host button.active,:host button.active:hover,:host button:active:hover{background-color:#007ac7;color:#fff;--background: rgb(0, 122, 199);--color: rgb(255, 255, 255);border-color:#007ac7}:host button:disabled,:host button.disabled,:host button[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host button:disabled::placeholder,:host button.disabled::placeholder,:host button[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button:not(:disabled,.disabled,[aria-disabled]):hover{--background: var(--grey-400);--color: var(--grey-1000);background-color:var(--grey-400);color:var(--grey-1000);border-color:var(--grey-1000)}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button.small{font-size:.875rem}:host button:hover{background:var(--grey-400)}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.NgvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "id", "thook", "options", "textToHighlight"], outputs: ["selectedValueChanged", "closed"] }] }); }
195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", placeholder: "placeholder", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label [id]=\"id + '-label'\" class=\"hide-if-empty\" [attr.for]=\"id + '-toggle'\">\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-toggle'\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [textToHighlight]=\"textToHighlight\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host button{font-weight:500;display:inline-flex;justify-content:center;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;background:transparent;border-color:#007ac7;color:#007ac7;--color: rgb(0, 122, 199);background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-800);--sg-border-color: var(--grey-800);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:inherit;font-weight:400;line-height:1.125;margin-bottom:.5rem;margin-top:.5rem;width:100%}@media screen and (-ms-high-contrast: active){:host button{border:2px solid currentcolor}}:host button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}:host button:focus:not(:focus-visible){box-shadow:none;outline:0}:host button:focus,:host button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host button:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host button[aria-selected=true],:host button:active,:host button.active,:host button.active:hover,:host button:active:hover{background-color:#007ac7;color:#fff;--background: rgb(0, 122, 199);--color: rgb(255, 255, 255);border-color:#007ac7}:host button:disabled,:host button.disabled,:host button[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host button:disabled::placeholder,:host button.disabled::placeholder,:host button[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button:not(:disabled,.disabled,[aria-disabled]):hover{--background: var(--grey-400);--color: var(--grey-1000);background-color:var(--grey-400);color:var(--grey-1000);border-color:var(--grey-1000)}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button.small{font-size:.875rem}:host button:hover{background:var(--grey-400)}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i5.NgvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "id", "thook", "options", "textToHighlight"], outputs: ["selectedValueChanged", "closed"] }] }); }
197
197
  }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownComponent, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownComponent, decorators: [{
199
199
  type: Component,
200
200
  args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label [id]=\"id + '-label'\" class=\"hide-if-empty\" [attr.for]=\"id + '-toggle'\">\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n aria-haspopup=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-toggle'\"\n (click)=\"toggleDropdown()\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </button>\n\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [textToHighlight]=\"textToHighlight\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host label{display:block;font-weight:500;line-height:1.25rem;margin-bottom:.5rem;width:100%}:host .description{margin-bottom:.5rem;line-height:1.25rem;width:100%}:host button{font-weight:500;display:inline-flex;justify-content:center;transition:all .3s cubic-bezier(.23,1,.32,1),outline-offset 0s,outline-width 0s;background:transparent;border-color:#007ac7;color:#007ac7;--color: rgb(0, 122, 199);background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-800);--sg-border-color: var(--grey-800);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:inherit;font-weight:400;line-height:1.125;margin-bottom:.5rem;margin-top:.5rem;width:100%}@media screen and (-ms-high-contrast: active){:host button{border:2px solid currentcolor}}:host button.small{min-height:2rem;padding:.4375rem .75rem;line-height:1rem}:host button.large{min-height:4rem;padding:1rem 1.5rem;font-size:1.5rem;line-height:2rem}:host button:focus:not(:focus-visible){box-shadow:none;outline:0}:host button:focus,:host button:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host button:not(:disabled,.disabled,[aria-disabled]):hover{background-color:#199be3;color:#fff;--background: rgb(25.4035777564, 154.8940067842, 227.221994169);--color: rgb(255, 255, 255);border-color:#199be3}:host button[aria-selected=true],:host button:active,:host button.active,:host button.active:hover,:host button:active:hover{background-color:#007ac7;color:#fff;--background: rgb(0, 122, 199);--color: rgb(255, 255, 255);border-color:#007ac7}:host button:disabled,:host button.disabled,:host button[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host button:disabled::placeholder,:host button.disabled::placeholder,:host button[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button:not(:disabled,.disabled,[aria-disabled]):hover{--background: var(--grey-400);--color: var(--grey-1000);background-color:var(--grey-400);color:var(--grey-1000);border-color:var(--grey-1000)}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button.small{font-size:.875rem}:host button:hover{background:var(--grey-400)}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}\n"] }]
201
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
201
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
202
202
  type: Self
203
203
  }, {
204
204
  type: Optional
@@ -207,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
207
207
  }, {
208
208
  type: Inject,
209
209
  args: [TRANSLOCO_SCOPE]
210
- }] }, { type: i0.ChangeDetectorRef }, { type: i2.DropdownUtils }]; }, propDecorators: { selectedContentTpl: [{
210
+ }] }, { type: i0.ChangeDetectorRef }, { type: i2.DropdownUtils }], propDecorators: { selectedContentTpl: [{
211
211
  type: ContentChild,
212
212
  args: ['selectedTpl', { read: TemplateRef }]
213
213
  }], optionContentTpl: [{
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
236
236
  type: HostListener,
237
237
  args: ['keyup', ['$event']]
238
238
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQ3hILE9BQU8sRUFDTCxhQUFhLEdBSWQsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG9CQUtYLFNBQVEsb0NBQW9DO0lBZ0I1Qyx1RkFBdUY7SUFDdkYsSUFBYSxPQUFPLENBQUMsS0FBc0I7UUFDekMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNyQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FB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Q0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3NvcidcbmltcG9ydCB7XG4gIERyb3Bkb3duVXRpbHMsXG4gIE9wdGlvbixcbiAgT3B0aW9uQmFzZSxcbiAgT3B0aW9uR3JvdXAsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuLyoqXG4gKiBBIGRyb3Bkb3duIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYW4gb3B0aW9uIGZyb20gYSBsaXN0LlxuICogRHJvcGRvd25zIGVuYWJsZXMgdXNlcnMgdG8gbWFrZSBhIHF1aWNrIHNlbGVjdGlvbiBvZiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIGEgc3BlY2lmaWMgZW50cnkuXG4gKiBodHRwczovL2Rlc2lnbmxpYnJhcnkuc2ViZ3JvdXAuY29tL2NvbXBvbmVudHMvY29tcG9uZW50LWRyb3Bkb3duXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZEcm9wZG93bkNvbXBvbmVudDxcbiAgICBLID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBWID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBUIGV4dGVuZHMgT3B0aW9uPEssIFY+ID0gT3B0aW9uPEssIFY+LFxuICA+XG4gIGV4dGVuZHMgTmd2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBzZWxlY3RlZCBvcHRpb24uICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rID0gJ2Ryb3Bkb3duJ1xuXG4gIC8qKiBUZXh0IHNob3duIGJlZm9yZSBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBMaXN0IG9mIHtAbGluayBPcHRpb259IGFuZCB7QGxpbmsgT3B0aW9uR3JvdXB9IGxpc3RlZCB3aGVuIGRyb3Bkb3duIGlzIGV4cGFuZGVkLiAqL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogT3B0aW9uQmFzZTxUPltdKSB7XG4gICAgLy8gdXBkYXRlIG9wdGlvbnNcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICAvLyBhbHJlYWR5IGhhcyBhIG51bGwvdW5kZWZpbmVkIGtleVxuICAgIGNvbnN0IG51bGxpc2hPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IG51bGwpXG4gICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIG9wdGlvbmFsLCBhZGQgYSBudWxsIHZhbHVlIHRvIGRlc2VsZWN0IG9wdGlvblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhbnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWUgYW5kIGVtaXQgaWYgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuc2VsZWN0T25TaW5nbGVPcHRpb24pIHtcbiAgICAgIGNvbnN0IG9ubHlPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVswXVxuICAgICAgdGhpcy51cGRhdGVNb2RlbChvbmx5T3B0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgdXBkYXRlIGxvY2FsIHN0YXRlIGlmIHdlIHNob3VsZG4ndCBjb250cm9sIG51bGxpc2ggdmFsdWUgYW5kIHdlIGNhbnQgZmluZCB0aGUgc2VsZWN0ZWQgdmFsdWUgYW1vbmdzdCB0aGUgb3B0aW9uc1xuICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVxuICAgICAgLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PSB0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gICAgaWYgKCF0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gJiYgIW1hdGNoaW5nT3B0aW9uKSByZXR1cm5cblxuICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBPcHRpb25CYXNlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICAvKiogVGhlIGFkZGl0aW9uYWwgYW1vdW50IHRvIHNob3cgd2hlbiBvcHRpb24gaXMgc2Nyb2xsZWQgaW50byB2aWV3LiAqL1xuICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSAyNFxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGlzIGNvbXBvbmVudCB0byBhZGQvIHJlbW92ZSBudWxsaXNoIG9wdGlvbnMgYmFzZWQgb24gd2V0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkIG9yIG5vdFxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IHRydWVcblxuICAvKiogVGV4dCB0byBoaWdobGlnaHQgaW4gb3B0aW9uICovXG4gIEBJbnB1dCgpIHRleHRUb0hpZ2hsaWdodD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBJZiBvbmx5IG9uZSBvcHRpb24gZXhpc3RzIGluIG9wdGlvbnNbXSwgZGVmYXVsdCBpcyB0byBzZWxlY3QgaXQuXG4gICAqIFRoaXMgaW5wdXQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhhdCBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5XG4gICAqIHNlbGVjdCBhIHZhbHVlIGlmIGl0J3MgdGhlIG9ubHkgb25lLlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T25TaW5nbGVPcHRpb24gPSB0cnVlXG5cbiAgLyoqXG4gICAqIEVtaXRzIGNoYW5nZXMgb2YgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93blxuICAgKi9cbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgLyoqIEBpbnRlcm5hbCBudWxsaXNoIG9wdGlvbi4gKi9cbiAgZ2V0IGRlZmF1bHROdWxsaXNoT3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHsga2V5OiBudWxsLCBsYWJlbDogdGhpcy5wbGFjZWhvbGRlciA/PyAnXFx1MDBBMCcgfVxuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50IGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZVxuICAvKiogVGhlIGN1cnJlbnQgb3B0aW9uIHNlbGVjdGVkIGJhc2VkIG9uIG51bWVyaWMgaW5kZXguICovXG4gIHB1YmxpYyBhY3RpdmVJbmRleCA9IC0xXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByaXZhdGUgb25DbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG5cbiAgcHVibGljIGtleUV2ZW50OiBLZXlib2FyZEV2ZW50ID0ge30gYXMgS2V5Ym9hcmRFdmVudFxuICBwcml2YXRlIF9vcHRpb25zOiBPcHRpb25CYXNlPFQ+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgZHJvcGRvd25VdGlsczogRHJvcGRvd25VdGlsczxLLCBWLCBUPixcbiAgKSB7XG4gICAgc3VwZXIobmdDb250cm9sLCB0cmFuc2xvY29TY29wZSwgY2RyKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlcXVpcmVkPy5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGNoYW5nZXMucmVxdWlyZWQuY3VycmVudFZhbHVlXG4gICAgICAvLyByZW1vdmUgbnVsbGlzaCBvcHRpb25cbiAgICAgIGNvbnN0IGhhc051bGxpc2hPcHRpb24gPVxuICAgICAgICB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModGhpcy5fb3B0aW9ucywgZmFsc2UpWzBdPy5rZXkgPT0gbnVsbFxuICAgICAgLy8gaWYgcmVxdWlyZWQsIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKGlzUmVxdWlyZWQgJiYgaGFzTnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuc2xpY2UoMSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICAvLyBpZiBub3QgcmVxdWlyZWQsIGFkZCBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKCFpc1JlcXVpcmVkICYmICFoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gW3RoaXMuZGVmYXVsdE51bGxpc2hPcHRpb25dLmNvbmNhdCh0aGlzLl9vcHRpb25zKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgb3ZlcnJpZGUgdG8gY29ycmVjdGx5IHNldCBzdGF0ZSBmcm9tIGZvcm0gdmFsdWUgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlcbiAgICB0aGlzLnN0YXRlID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHZhbHVlKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFVkVOVFNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3RDaGFuZ2Uob3B0aW9uOiBUKSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy51cGRhdGVNb2RlbChvcHRpb24pXG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBAaW50ZXJuYWxcbiAgLy8gICogRW50ZXIgdG9nZ2xlcyB0aGUgZHJvcGRvd24sIGhvbWUsIGVuZCwgYW5kLCBhcnJvd3MgY2hhbmdlIHRoZSBpbmRleC5cbiAgLy8gICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgLy8gICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5RXZlbnQgPSBldmVudFxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICovXG4gIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCAmJlxuICAgICAgICAgICF0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpXG4gICAgICAgICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFsdWUgdG8gZ2l2ZW4gb3B0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGRyb3Bkb3duIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS5rZXkpXG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gKi9cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZCghdGhpcy5leHBhbmRlZClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiBJZiB0cnVlIHRoZSBvcHRpb25zIGFyZSBzaG93biBiZWxvdyB0aGUgZmllbGQuXG4gICAqIEFjdGl2YXRlIG9uIGNsaWNrIGV2ZW50IHRvIGJlIGFibGUgdG8gY2xvc2UgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICogQHBhcmFtIHN0YXRlIHRoZSBleHBhbmRlZCBzdGF0ZSB3aGljaCB0byBzZXQuXG4gICAqL1xuICBzZXRFeHBhbmRlZChzdGF0ZSA9IHRydWUpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gc3RhdGVcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZClcbiAgICBpZiAodGhpcy5leHBhbmRlZCkgdGhpcy5zdWJzY3JpYmVUb091dHNpZGVDbGlja0V2ZW50KClcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHRoaXMub25Ub3VjaGVkKClcbiAgfVxuXG4gIC8qIFRZUEUgQ0FTVFMgKi9cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbn0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RPcHRpb24ob3B0aW9uOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gb3B0aW9uXG4gIH1cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIGdyb3VwIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0R3JvdXAoZ3JvdXA6IGFueSk6IE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gZ3JvdXBcbiAgfVxuXG4gIC8qIFRZUEUgQ0hFQ0tTICovXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNPcHRpb24ob3B0aW9uOiBPcHRpb25CYXNlPFQ+KTogb3B0aW9uIGlzIE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gISgnb3B0aW9ucycgaW4gb3B0aW9uKVxuICB9XG59XG4iLCI8IS0tIExBQkVMIC0tPlxuPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCI+XG4gIDxsYWJlbCBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiIGNsYXNzPVwiaGlkZS1pZi1lbXB0eVwiIFthdHRyLmZvcl09XCJpZCArICctdG9nZ2xlJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICAgIGNsYXNzPVwic2R2LWZpZWxkLWxhYmVsLS1vcHRpb25hbFwiXG4gICAgICAgID5cbiAgICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9sYWJlbD5cblxuICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gIDwhLS0gTE9DS0VEIElOUFVUIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsICcgKyBpZCArICctaW5wdXQnXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFzdGF0ZVwiIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gICAgPGRpdiAjaW5wdXQgW2lkXT1cImlkICsgJy1pbnB1dCdcIiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtpZF09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtZHJvcGRvd25fX2xhYmVsIHRvZ2dsZVwiXG4gICAgICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy10b2dnbGUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwgJyArIGlkICsgJy10b2dnbGUnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50VHBsIHx8IGRlZmF1bHRTZWxlY3RlZENvbnRlbnRUcGw7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bmdndi1kcm9wZG93bi1saXN0XG4gICAgICAgICNkcm9wRG93bkxpc3RcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgIFtzY3JvbGxPZmZzZXRdPVwic2Nyb2xsT2Zmc2V0XCJcbiAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW29wdGlvbkNvbnRlbnRUcGxdPVwib3B0aW9uQ29udGVudFRwbFwiXG4gICAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgICAgKHNlbGVjdGVkVmFsdWVDaGFuZ2VkKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9uZ2d2LWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBFUlJPUlMgLS0+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cInNkdi1maWVsZC1ub3RpY2Ugc2R2LWZpZWxkLW5vdGljZS0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNlcnJvcnNSZWY+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8IS0tIENISUxEUkVOIC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsIGxldC1zdGF0ZT5cbiAgICA8IS0tIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvZXFlcWVxIC0tPlxuICAgIHt7IHN0YXRlPy5rZXkgIT0gbnVsbCAmJiBzdGF0ZT8ubGFiZWwgPyB0KHN0YXRlLmxhYmVsKSA6IHBsYWNlaG9sZGVyIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQ3hILE9BQU8sRUFDTCxhQUFhLEdBSWQsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG9CQUtYLFNBQVEsb0NBQW9DO0lBZ0I1Qyx1RkFBdUY7SUFDdkYsSUFBYSxPQUFPLENBQUMsS0FBc0I7UUFDekMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUNyQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FB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QUtJLGNBQWM7c0JBQXZCLE1BQU07Z0JBMEVQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3NvcidcbmltcG9ydCB7XG4gIERyb3Bkb3duVXRpbHMsXG4gIE9wdGlvbixcbiAgT3B0aW9uQmFzZSxcbiAgT3B0aW9uR3JvdXAsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuLyoqXG4gKiBBIGRyb3Bkb3duIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYW4gb3B0aW9uIGZyb20gYSBsaXN0LlxuICogRHJvcGRvd25zIGVuYWJsZXMgdXNlcnMgdG8gbWFrZSBhIHF1aWNrIHNlbGVjdGlvbiBvZiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIGEgc3BlY2lmaWMgZW50cnkuXG4gKiBodHRwczovL2Rlc2lnbmxpYnJhcnkuc2ViZ3JvdXAuY29tL2NvbXBvbmVudHMvY29tcG9uZW50LWRyb3Bkb3duXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nZ3YtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZEcm9wZG93bkNvbXBvbmVudDxcbiAgICBLID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBWID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBUIGV4dGVuZHMgT3B0aW9uPEssIFY+ID0gT3B0aW9uPEssIFY+LFxuICA+XG4gIGV4dGVuZHMgTmd2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBzZWxlY3RlZCBvcHRpb24uICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rID0gJ2Ryb3Bkb3duJ1xuXG4gIC8qKiBUZXh0IHNob3duIGJlZm9yZSBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBMaXN0IG9mIHtAbGluayBPcHRpb259IGFuZCB7QGxpbmsgT3B0aW9uR3JvdXB9IGxpc3RlZCB3aGVuIGRyb3Bkb3duIGlzIGV4cGFuZGVkLiAqL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogT3B0aW9uQmFzZTxUPltdKSB7XG4gICAgLy8gdXBkYXRlIG9wdGlvbnNcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICAvLyBhbHJlYWR5IGhhcyBhIG51bGwvdW5kZWZpbmVkIGtleVxuICAgIGNvbnN0IG51bGxpc2hPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IG51bGwpXG4gICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIG9wdGlvbmFsLCBhZGQgYSBudWxsIHZhbHVlIHRvIGRlc2VsZWN0IG9wdGlvblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhbnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWUgYW5kIGVtaXQgaWYgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuc2VsZWN0T25TaW5nbGVPcHRpb24pIHtcbiAgICAgIGNvbnN0IG9ubHlPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVswXVxuICAgICAgdGhpcy51cGRhdGVNb2RlbChvbmx5T3B0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgdXBkYXRlIGxvY2FsIHN0YXRlIGlmIHdlIHNob3VsZG4ndCBjb250cm9sIG51bGxpc2ggdmFsdWUgYW5kIHdlIGNhbnQgZmluZCB0aGUgc2VsZWN0ZWQgdmFsdWUgYW1vbmdzdCB0aGUgb3B0aW9uc1xuICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVxuICAgICAgLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PSB0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gICAgaWYgKCF0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gJiYgIW1hdGNoaW5nT3B0aW9uKSByZXR1cm5cblxuICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBPcHRpb25CYXNlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICAvKiogVGhlIGFkZGl0aW9uYWwgYW1vdW50IHRvIHNob3cgd2hlbiBvcHRpb24gaXMgc2Nyb2xsZWQgaW50byB2aWV3LiAqL1xuICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSAyNFxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGlzIGNvbXBvbmVudCB0byBhZGQvIHJlbW92ZSBudWxsaXNoIG9wdGlvbnMgYmFzZWQgb24gd2V0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkIG9yIG5vdFxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IHRydWVcblxuICAvKiogVGV4dCB0byBoaWdobGlnaHQgaW4gb3B0aW9uICovXG4gIEBJbnB1dCgpIHRleHRUb0hpZ2hsaWdodD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBJZiBvbmx5IG9uZSBvcHRpb24gZXhpc3RzIGluIG9wdGlvbnNbXSwgZGVmYXVsdCBpcyB0byBzZWxlY3QgaXQuXG4gICAqIFRoaXMgaW5wdXQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhhdCBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5XG4gICAqIHNlbGVjdCBhIHZhbHVlIGlmIGl0J3MgdGhlIG9ubHkgb25lLlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T25TaW5nbGVPcHRpb24gPSB0cnVlXG5cbiAgLyoqXG4gICAqIEVtaXRzIGNoYW5nZXMgb2YgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93blxuICAgKi9cbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgLyoqIEBpbnRlcm5hbCBudWxsaXNoIG9wdGlvbi4gKi9cbiAgZ2V0IGRlZmF1bHROdWxsaXNoT3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHsga2V5OiBudWxsLCBsYWJlbDogdGhpcy5wbGFjZWhvbGRlciA/PyAnXFx1MDBBMCcgfVxuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50IGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZVxuICAvKiogVGhlIGN1cnJlbnQgb3B0aW9uIHNlbGVjdGVkIGJhc2VkIG9uIG51bWVyaWMgaW5kZXguICovXG4gIHB1YmxpYyBhY3RpdmVJbmRleCA9IC0xXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByaXZhdGUgb25DbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG5cbiAgcHVibGljIGtleUV2ZW50OiBLZXlib2FyZEV2ZW50ID0ge30gYXMgS2V5Ym9hcmRFdmVudFxuICBwcml2YXRlIF9vcHRpb25zOiBPcHRpb25CYXNlPFQ+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgZHJvcGRvd25VdGlsczogRHJvcGRvd25VdGlsczxLLCBWLCBUPixcbiAgKSB7XG4gICAgc3VwZXIobmdDb250cm9sLCB0cmFuc2xvY29TY29wZSwgY2RyKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlcXVpcmVkPy5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGNoYW5nZXMucmVxdWlyZWQuY3VycmVudFZhbHVlXG4gICAgICAvLyByZW1vdmUgbnVsbGlzaCBvcHRpb25cbiAgICAgIGNvbnN0IGhhc051bGxpc2hPcHRpb24gPVxuICAgICAgICB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModGhpcy5fb3B0aW9ucywgZmFsc2UpWzBdPy5rZXkgPT0gbnVsbFxuICAgICAgLy8gaWYgcmVxdWlyZWQsIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKGlzUmVxdWlyZWQgJiYgaGFzTnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuc2xpY2UoMSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICAvLyBpZiBub3QgcmVxdWlyZWQsIGFkZCBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKCFpc1JlcXVpcmVkICYmICFoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gW3RoaXMuZGVmYXVsdE51bGxpc2hPcHRpb25dLmNvbmNhdCh0aGlzLl9vcHRpb25zKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgb3ZlcnJpZGUgdG8gY29ycmVjdGx5IHNldCBzdGF0ZSBmcm9tIGZvcm0gdmFsdWUgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlcbiAgICB0aGlzLnN0YXRlID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHZhbHVlKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFVkVOVFNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3RDaGFuZ2Uob3B0aW9uOiBUKSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy51cGRhdGVNb2RlbChvcHRpb24pXG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBAaW50ZXJuYWxcbiAgLy8gICogRW50ZXIgdG9nZ2xlcyB0aGUgZHJvcGRvd24sIGhvbWUsIGVuZCwgYW5kLCBhcnJvd3MgY2hhbmdlIHRoZSBpbmRleC5cbiAgLy8gICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgLy8gICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5RXZlbnQgPSBldmVudFxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICovXG4gIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCAmJlxuICAgICAgICAgICF0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpXG4gICAgICAgICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFsdWUgdG8gZ2l2ZW4gb3B0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGRyb3Bkb3duIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS5rZXkpXG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gKi9cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZCghdGhpcy5leHBhbmRlZClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiBJZiB0cnVlIHRoZSBvcHRpb25zIGFyZSBzaG93biBiZWxvdyB0aGUgZmllbGQuXG4gICAqIEFjdGl2YXRlIG9uIGNsaWNrIGV2ZW50IHRvIGJlIGFibGUgdG8gY2xvc2UgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICogQHBhcmFtIHN0YXRlIHRoZSBleHBhbmRlZCBzdGF0ZSB3aGljaCB0byBzZXQuXG4gICAqL1xuICBzZXRFeHBhbmRlZChzdGF0ZSA9IHRydWUpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gc3RhdGVcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZClcbiAgICBpZiAodGhpcy5leHBhbmRlZCkgdGhpcy5zdWJzY3JpYmVUb091dHNpZGVDbGlja0V2ZW50KClcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHRoaXMub25Ub3VjaGVkKClcbiAgfVxuXG4gIC8qIFRZUEUgQ0FTVFMgKi9cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbn0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RPcHRpb24ob3B0aW9uOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gb3B0aW9uXG4gIH1cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIGdyb3VwIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0R3JvdXAoZ3JvdXA6IGFueSk6IE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gZ3JvdXBcbiAgfVxuXG4gIC8qIFRZUEUgQ0hFQ0tTICovXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNPcHRpb24ob3B0aW9uOiBPcHRpb25CYXNlPFQ+KTogb3B0aW9uIGlzIE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gISgnb3B0aW9ucycgaW4gb3B0aW9uKVxuICB9XG59XG4iLCI8IS0tIExBQkVMIC0tPlxuPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCI+XG4gIDxsYWJlbCBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiIGNsYXNzPVwiaGlkZS1pZi1lbXB0eVwiIFthdHRyLmZvcl09XCJpZCArICctdG9nZ2xlJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICAgIGNsYXNzPVwic2R2LWZpZWxkLWxhYmVsLS1vcHRpb25hbFwiXG4gICAgICAgID5cbiAgICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9sYWJlbD5cblxuICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gIDwhLS0gTE9DS0VEIElOUFVUIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9ja2VkXCI+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsICcgKyBpZCArICctaW5wdXQnXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFzdGF0ZVwiIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXRlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gICAgPGRpdiAjaW5wdXQgW2lkXT1cImlkICsgJy1pbnB1dCdcIiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtpZF09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtZHJvcGRvd25fX2xhYmVsIHRvZ2dsZVwiXG4gICAgICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy10b2dnbGUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwgJyArIGlkICsgJy10b2dnbGUnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50VHBsIHx8IGRlZmF1bHRTZWxlY3RlZENvbnRlbnRUcGw7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bmdndi1kcm9wZG93bi1saXN0XG4gICAgICAgICNkcm9wRG93bkxpc3RcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgIFtzY3JvbGxPZmZzZXRdPVwic2Nyb2xsT2Zmc2V0XCJcbiAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgW29wdGlvbkNvbnRlbnRUcGxdPVwib3B0aW9uQ29udGVudFRwbFwiXG4gICAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgICAgKHNlbGVjdGVkVmFsdWVDaGFuZ2VkKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9uZ2d2LWRyb3Bkb3duLWxpc3Q+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBFUlJPUlMgLS0+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cInNkdi1maWVsZC1ub3RpY2Ugc2R2LWZpZWxkLW5vdGljZS0tZXJyb3JcIlxuICAgICAgW2F0dHIuZm9yXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICA+XG4gICAgICA8c3BhbiAqbmdJZj1cImVycm9yOyBlbHNlIGVycm9yc1JlZlwiPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPG5nLXRlbXBsYXRlICNlcnJvcnNSZWY+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiPlxuICAgICAgICAgIHt7IHQoJ2Vycm9yLmZpZWxkJyArIGVycm9yPy5jb2RlLCBlcnJvcj8ucGFyYW1zKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8IS0tIENISUxEUkVOIC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsIGxldC1zdGF0ZT5cbiAgICA8IS0tIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvZXFlcWVxIC0tPlxuICAgIHt7IHN0YXRlPy5rZXkgIT0gbnVsbCAmJiBzdGF0ZT8ubGFiZWwgPyB0KHN0YXRlLmxhYmVsKSA6IHBsYWNlaG9sZGVyIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -7,11 +7,11 @@ import { NgvDropdownComponent } from './dropdown.component';
7
7
  import { NgvTypeaheadModule } from './typeahead/typeahead.module';
8
8
  import * as i0 from "@angular/core";
9
9
  export class NgvDropdownModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownModule, declarations: [NgvDropdownComponent, NgvDropdownListComponent], imports: [CommonModule, NgvTypeaheadModule, NgvTooltipModule, NgvI18nModule], exports: [NgvDropdownComponent, NgvDropdownListComponent] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownModule, imports: [CommonModule, NgvTypeaheadModule, NgvTooltipModule, NgvI18nModule] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownModule, declarations: [NgvDropdownComponent, NgvDropdownListComponent], imports: [CommonModule, NgvTypeaheadModule, NgvTooltipModule, NgvI18nModule], exports: [NgvDropdownComponent, NgvDropdownListComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownModule, imports: [CommonModule, NgvTypeaheadModule, NgvTooltipModule, NgvI18nModule] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgvDropdownModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [NgvDropdownComponent, NgvDropdownListComponent],