@festo-ui/angular 4.0.3-pre-20221124.8 → 5.0.0-dev.102

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 (251) hide show
  1. package/README.md +13 -53
  2. package/css/bundle.css +1 -1
  3. package/css/image-gallery.css +1 -1
  4. package/css/popover.css +1 -1
  5. package/esm2020/festo-ui-angular.mjs +2 -2
  6. package/esm2020/lib/components/accordion/accordion-header/accordion-header.component.mjs +6 -6
  7. package/esm2020/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +6 -6
  8. package/esm2020/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +11 -11
  9. package/esm2020/lib/components/accordion/accordion-item/accordion-item.component.mjs +41 -36
  10. package/esm2020/lib/components/accordion/accordion.component.mjs +21 -21
  11. package/esm2020/lib/components/accordion/index.mjs +1 -1
  12. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +9 -6
  13. package/esm2020/lib/components/buttons/button/button.component.mjs +8 -7
  14. package/esm2020/lib/components/buttons/link-button/link-button.component.mjs +8 -7
  15. package/esm2020/lib/components/chips/chip/chip.component.mjs +7 -6
  16. package/esm2020/lib/components/chips/chip-container/chip-container.component.mjs +7 -6
  17. package/esm2020/lib/components/components.module.mjs +202 -208
  18. package/esm2020/lib/components/loading-indicator/loading-indicator.component.mjs +7 -6
  19. package/esm2020/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +8 -7
  20. package/esm2020/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +10 -9
  21. package/esm2020/lib/components/mobile-flyout/mobile-flyout.component.mjs +10 -10
  22. package/esm2020/lib/components/pagination/pagination.component.mjs +15 -13
  23. package/esm2020/lib/components/popovers/legend/legend.component.mjs +14 -14
  24. package/esm2020/lib/components/popovers/legend/legend.directive.mjs +8 -8
  25. package/esm2020/lib/components/popovers/popover/popover.component.mjs +11 -11
  26. package/esm2020/lib/components/popovers/popover-content/popover-content.component.mjs +16 -18
  27. package/esm2020/lib/components/popovers/popover-content/popover-content.directive.mjs +7 -7
  28. package/esm2020/lib/components/popovers/popover-menu/popover-menu.component.mjs +18 -19
  29. package/esm2020/lib/components/popovers/popover-ref.mjs +2 -2
  30. package/esm2020/lib/components/popovers/popover.defaults.mjs +17 -18
  31. package/esm2020/lib/components/popovers/popover.models.mjs +7 -23
  32. package/esm2020/lib/components/popovers/popover.service.mjs +31 -32
  33. package/esm2020/lib/components/popovers/tooltip/tooltip.directive.mjs +18 -18
  34. package/esm2020/lib/components/progress/progress.component.mjs +8 -6
  35. package/esm2020/lib/components/scroll/index.mjs +1 -1
  36. package/esm2020/lib/components/scroll/scrollable.directive.mjs +10 -7
  37. package/esm2020/lib/components/search-input/search-input.component.mjs +20 -10
  38. package/esm2020/lib/components/snackbar/snackbar-container.component.mjs +7 -7
  39. package/esm2020/lib/components/snackbar/snackbar-container.directive.mjs +12 -15
  40. package/esm2020/lib/components/snackbar/snackbar.component.mjs +9 -7
  41. package/esm2020/lib/components/snackbar/snackbar.models.mjs +1 -1
  42. package/esm2020/lib/components/snackbar/snackbar.module.mjs +12 -14
  43. package/esm2020/lib/components/snackbar/snackbar.service.mjs +5 -5
  44. package/esm2020/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +6 -6
  45. package/esm2020/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +10 -9
  46. package/esm2020/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +8 -7
  47. package/esm2020/lib/components/stepper-vertical/stepper-vertical.component.mjs +9 -9
  48. package/esm2020/lib/components/table-header-cell/table-header-cell.directive.mjs +9 -8
  49. package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +8 -8
  50. package/esm2020/lib/components/tabs/tabs.component.mjs +113 -27
  51. package/esm2020/lib/directives/click-outside.directive.mjs +29 -0
  52. package/esm2020/lib/festo-angular.module.mjs +9 -72
  53. package/esm2020/lib/forms/checkbox/checkbox.component.mjs +29 -24
  54. package/esm2020/lib/forms/color-indicator/color-indicator.component.mjs +29 -9
  55. package/esm2020/lib/forms/color-picker/color-helper.mjs +16 -8
  56. package/esm2020/lib/forms/color-picker/color-picker.component.mjs +38 -19
  57. package/esm2020/lib/forms/date-picker/date-picker.component.mjs +29 -26
  58. package/esm2020/lib/forms/date-range-picker/date-range-picker.component.mjs +33 -29
  59. package/esm2020/lib/forms/flatpickr/flatpickr.component.mjs +55 -0
  60. package/esm2020/lib/forms/forms.module.mjs +117 -110
  61. package/esm2020/lib/forms/radio/radio.component.mjs +54 -50
  62. package/esm2020/lib/forms/segment/segment-control/segment-control.component.mjs +22 -14
  63. package/esm2020/lib/forms/segment/segment.component.mjs +60 -30
  64. package/esm2020/lib/forms/select/chip-text.pipe.mjs +16 -11
  65. package/esm2020/lib/forms/select/select-option/select-option.component.mjs +8 -7
  66. package/esm2020/lib/forms/select/select.component.mjs +55 -47
  67. package/esm2020/lib/forms/slider/slider.component.mjs +27 -24
  68. package/esm2020/lib/forms/switch/switch.component.mjs +21 -20
  69. package/esm2020/lib/forms/text-area/text-area.component.mjs +19 -12
  70. package/esm2020/lib/forms/text-editor/text-editor.component.mjs +73 -65
  71. package/esm2020/lib/forms/text-input/text-input.component.mjs +40 -15
  72. package/esm2020/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +9 -7
  73. package/esm2020/lib/forms/time-picker/time-picker.component.mjs +23 -20
  74. package/esm2020/lib/forms/unique-selection-dispatcher.mjs +8 -6
  75. package/esm2020/lib/forms/value-accessor-base.mjs +6 -6
  76. package/esm2020/lib/modals/alert/alert.component.mjs +54 -0
  77. package/esm2020/lib/modals/confirm/confirm.component.mjs +55 -0
  78. package/esm2020/lib/modals/custom-modal/custom-modal.component.mjs +70 -0
  79. package/esm2020/lib/modals/image-gallery/image-gallery.component.mjs +62 -0
  80. package/esm2020/lib/modals/index.mjs +2 -0
  81. package/esm2020/lib/modals/modal.service.mjs +118 -0
  82. package/esm2020/lib/modals/modals.module.mjs +25 -0
  83. package/esm2020/lib/modals/prompt/prompt.component.mjs +106 -0
  84. package/esm2020/lib/pipes/safe-html.pipe.mjs +7 -7
  85. package/esm2020/public-api.mjs +66 -0
  86. package/fesm2015/festo-ui-angular.mjs +4757 -4593
  87. package/fesm2015/festo-ui-angular.mjs.map +1 -1
  88. package/fesm2020/festo-ui-angular.mjs +4929 -4805
  89. package/fesm2020/festo-ui-angular.mjs.map +1 -1
  90. package/index.d.ts +5 -13
  91. package/lib/components/accordion/accordion-header/accordion-header.component.d.ts +3 -3
  92. package/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.d.ts +3 -3
  93. package/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.d.ts +5 -5
  94. package/lib/components/accordion/accordion-item/accordion-item.component.d.ts +9 -8
  95. package/lib/components/accordion/accordion.component.d.ts +7 -7
  96. package/lib/components/breadcrumb/breadcrumb.component.d.ts +3 -3
  97. package/lib/components/buttons/button/button.component.d.ts +6 -6
  98. package/lib/components/buttons/link-button/link-button.component.d.ts +6 -6
  99. package/lib/components/chips/chip/chip.component.d.ts +4 -4
  100. package/lib/components/chips/chip-container/chip-container.component.d.ts +3 -3
  101. package/lib/components/components.module.d.ts +35 -69
  102. package/lib/components/loading-indicator/loading-indicator.component.d.ts +3 -3
  103. package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +3 -3
  104. package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +5 -5
  105. package/lib/components/mobile-flyout/mobile-flyout.component.d.ts +5 -5
  106. package/lib/components/pagination/pagination.component.d.ts +6 -6
  107. package/lib/components/popovers/legend/legend.component.d.ts +10 -10
  108. package/lib/components/popovers/legend/legend.directive.d.ts +5 -5
  109. package/lib/components/popovers/popover/popover.component.d.ts +6 -6
  110. package/lib/components/popovers/popover-content/popover-content.component.d.ts +13 -13
  111. package/lib/components/popovers/popover-content/popover-content.directive.d.ts +5 -5
  112. package/lib/components/popovers/popover-menu/popover-menu.component.d.ts +15 -15
  113. package/lib/components/popovers/popover-ref.d.ts +4 -4
  114. package/lib/components/popovers/popover.defaults.d.ts +4 -4
  115. package/lib/components/popovers/popover.models.d.ts +18 -30
  116. package/lib/components/popovers/popover.service.d.ts +7 -7
  117. package/lib/components/popovers/tooltip/tooltip.directive.d.ts +9 -9
  118. package/lib/components/progress/progress.component.d.ts +3 -3
  119. package/lib/components/scroll/scrollable.directive.d.ts +4 -4
  120. package/lib/components/search-input/search-input.component.d.ts +9 -9
  121. package/lib/components/snackbar/snackbar-container.component.d.ts +5 -5
  122. package/lib/components/snackbar/snackbar-container.directive.d.ts +8 -11
  123. package/lib/components/snackbar/snackbar.component.d.ts +5 -5
  124. package/lib/components/snackbar/snackbar.models.d.ts +2 -2
  125. package/lib/components/snackbar/snackbar.module.d.ts +1 -2
  126. package/lib/components/snackbar/snackbar.service.d.ts +8 -8
  127. package/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.d.ts +3 -3
  128. package/lib/components/stepper-horizontal/stepper-horizontal.component.d.ts +5 -5
  129. package/lib/components/stepper-vertical/step-vertical/step-vertical.component.d.ts +4 -4
  130. package/lib/components/stepper-vertical/stepper-vertical.component.d.ts +5 -5
  131. package/lib/components/table-header-cell/table-header-cell.directive.d.ts +11 -11
  132. package/lib/components/tabs/tab-pane/tab-pane.component.d.ts +9 -9
  133. package/lib/components/tabs/tabs.component.d.ts +24 -24
  134. package/lib/directives/click-outside.directive.d.ts +10 -0
  135. package/lib/festo-angular.module.d.ts +6 -11
  136. package/lib/forms/checkbox/checkbox.component.d.ts +3 -3
  137. package/lib/forms/color-indicator/color-indicator.component.d.ts +3 -3
  138. package/lib/forms/color-picker/color-helper.d.ts +4 -4
  139. package/lib/forms/color-picker/color-picker.component.d.ts +8 -8
  140. package/lib/forms/date-picker/date-picker.component.d.ts +15 -15
  141. package/lib/forms/date-range-picker/date-range-picker.component.d.ts +16 -16
  142. package/lib/forms/flatpickr/flatpickr.component.d.ts +19 -0
  143. package/lib/forms/forms.module.d.ts +17 -37
  144. package/lib/forms/radio/radio.component.d.ts +22 -22
  145. package/lib/forms/segment/segment-control/segment-control.component.d.ts +14 -15
  146. package/lib/forms/segment/segment.component.d.ts +20 -11
  147. package/lib/forms/select/chip-text.pipe.d.ts +3 -3
  148. package/lib/forms/select/select-option/select-option.component.d.ts +5 -5
  149. package/lib/forms/select/select.component.d.ts +15 -15
  150. package/lib/forms/slider/slider.component.d.ts +8 -8
  151. package/lib/forms/switch/switch.component.d.ts +7 -7
  152. package/lib/forms/text-area/text-area.component.d.ts +14 -14
  153. package/lib/forms/text-editor/text-editor.component.d.ts +22 -22
  154. package/lib/forms/text-input/text-input.component.d.ts +6 -7
  155. package/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.d.ts +8 -8
  156. package/lib/forms/time-picker/time-picker.component.d.ts +11 -11
  157. package/lib/forms/unique-selection-dispatcher.d.ts +5 -5
  158. package/lib/forms/value-accessor-base.d.ts +6 -6
  159. package/lib/{components/modals → modals}/alert/alert.component.d.ts +6 -6
  160. package/lib/{components/modals → modals}/confirm/confirm.component.d.ts +6 -6
  161. package/lib/modals/custom-modal/custom-modal.component.d.ts +21 -0
  162. package/lib/{components → modals}/image-gallery/image-gallery.component.d.ts +8 -8
  163. package/lib/{components/modals → modals}/index.d.ts +1 -1
  164. package/lib/modals/modal.service.d.ts +22 -0
  165. package/lib/{components/modals → modals}/modals.module.d.ts +1 -6
  166. package/lib/{components/modals → modals}/prompt/prompt.component.d.ts +6 -6
  167. package/lib/pipes/safe-html.pipe.d.ts +3 -3
  168. package/package.json +13 -16
  169. package/public-api.d.ts +62 -0
  170. package/scss/base/image-gallery.scss +3 -0
  171. package/scss/base/popover.scss +9 -0
  172. package/scss/base/styles.scss +5 -0
  173. package/esm2020/index.mjs +0 -26
  174. package/esm2020/lib/components/click-outside.directive.mjs +0 -28
  175. package/esm2020/lib/components/image-gallery/image-gallery.component.mjs +0 -60
  176. package/esm2020/lib/components/image-gallery/image-gallery.module.mjs +0 -22
  177. package/esm2020/lib/components/modals/alert/alert.component.mjs +0 -52
  178. package/esm2020/lib/components/modals/confirm/confirm.component.mjs +0 -53
  179. package/esm2020/lib/components/modals/custom-modal/custom-modal.component.mjs +0 -70
  180. package/esm2020/lib/components/modals/index.mjs +0 -2
  181. package/esm2020/lib/components/modals/modal.service.mjs +0 -121
  182. package/esm2020/lib/components/modals/modals.module.mjs +0 -31
  183. package/esm2020/lib/components/modals/prompt/prompt.component.mjs +0 -102
  184. package/esm2020/lib/content/content.module.mjs +0 -20
  185. package/esm2020/lib/content/icon/icon.component.mjs +0 -17
  186. package/esm2020/lib/forms/container-host.mjs +0 -27
  187. package/esm2020/lib/forms/date-picker.module.mjs +0 -28
  188. package/esm2020/lib/forms/text-editor/text-editor.module.mjs +0 -25
  189. package/esm2020/lib/layout/layout.module.mjs +0 -18
  190. package/esm2020/lib/pipes/pipes.module.mjs +0 -20
  191. package/esm2020/lib/wrappers/flatpickr/flatpickr.component.mjs +0 -59
  192. package/lib/components/click-outside.directive.d.ts +0 -10
  193. package/lib/components/image-gallery/image-gallery.module.d.ts +0 -11
  194. package/lib/components/modals/custom-modal/custom-modal.component.d.ts +0 -21
  195. package/lib/components/modals/modal.service.d.ts +0 -22
  196. package/lib/content/content.module.d.ts +0 -9
  197. package/lib/content/icon/icon.component.d.ts +0 -45
  198. package/lib/forms/container-host.d.ts +0 -11
  199. package/lib/forms/date-picker.module.d.ts +0 -17
  200. package/lib/forms/text-editor/text-editor.module.d.ts +0 -14
  201. package/lib/layout/layout.module.d.ts +0 -7
  202. package/lib/pipes/pipes.module.d.ts +0 -9
  203. package/lib/wrappers/flatpickr/flatpickr.component.d.ts +0 -19
  204. package/scss/base/components/accordion/accordion-header/accordion-header.component.scss +0 -12
  205. package/scss/base/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.scss +0 -109
  206. package/scss/base/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.scss +0 -9
  207. package/scss/base/components/accordion/accordion-item/accordion-item.component.scss +0 -71
  208. package/scss/base/components/accordion/accordion.component.scss +0 -6
  209. package/scss/base/components/breadcrumb/breadcrumb.component.scss +0 -0
  210. package/scss/base/components/buttons/button/button.component.scss +0 -7
  211. package/scss/base/components/buttons/link-button/link-button.component.scss +0 -0
  212. package/scss/base/components/chips/chip/chip.component.scss +0 -0
  213. package/scss/base/components/chips/chip-container/chip-container.component.scss +0 -0
  214. package/scss/base/components/image-gallery/image-gallery.component.scss +0 -0
  215. package/scss/base/components/image-gallery/styles.scss +0 -5
  216. package/scss/base/components/loading-indicator/loading-indicator.component.scss +0 -0
  217. package/scss/base/components/modals/alert/alert.component.scss +0 -0
  218. package/scss/base/components/modals/confirm/confirm.component.scss +0 -0
  219. package/scss/base/components/modals/prompt/prompt.component.scss +0 -0
  220. package/scss/base/components/pagination/pagination.component.scss +0 -0
  221. package/scss/base/components/popovers/legend/legend.component.scss +0 -9
  222. package/scss/base/components/popovers/popover/popover.component.scss +0 -0
  223. package/scss/base/components/popovers/popover/styles.scss +0 -84
  224. package/scss/base/components/popovers/popover-content/popover-content.component.scss +0 -12
  225. package/scss/base/components/popovers/popover-menu/popover-menu.component.scss +0 -0
  226. package/scss/base/components/scroll/scroll-story-helper.scss +0 -12
  227. package/scss/base/components/search-input/search-input.component.scss +0 -7
  228. package/scss/base/components/snackbar/snackbar-container.component.scss +0 -3
  229. package/scss/base/components/snackbar/snackbar.component.scss +0 -3
  230. package/scss/base/components/stepper-horizontal/step-horizontal/step-horizontal.component.scss +0 -23
  231. package/scss/base/components/stepper-vertical/step-vertical/step-vertical.component.scss +0 -6
  232. package/scss/base/components/tabs/tab-pane/tab-pane.component.scss +0 -7
  233. package/scss/base/components/tabs/tabs.component.scss +0 -326
  234. package/scss/base/content/icon/icon.component.scss +0 -0
  235. package/scss/base/forms/checkbox/checkbox.component.scss +0 -160
  236. package/scss/base/forms/color-indicator/color-indicator.component.scss +0 -59
  237. package/scss/base/forms/color-picker/color-picker.component.scss +0 -207
  238. package/scss/base/forms/date-picker/date-picker.component.scss +0 -5
  239. package/scss/base/forms/date-range-picker/date-range-picker.component.scss +0 -34
  240. package/scss/base/forms/radio/radio.component.scss +0 -9
  241. package/scss/base/forms/segment/segment-control/segment-control.component.scss +0 -0
  242. package/scss/base/forms/segment/segment.component.scss +0 -0
  243. package/scss/base/forms/select/select-option/select-option.component.scss +0 -0
  244. package/scss/base/forms/select/select.component.scss +0 -251
  245. package/scss/base/forms/slider/slider.component.scss +0 -20
  246. package/scss/base/forms/switch/switch.component.scss +0 -145
  247. package/scss/base/forms/text-area/text-area.component.scss +0 -43
  248. package/scss/base/forms/text-editor/text-editor.component.scss +0 -294
  249. package/scss/base/forms/text-input/text-input.component.scss +0 -60
  250. package/scss/base/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.scss +0 -10
  251. package/scss/base/forms/time-picker/time-picker.component.scss +0 -5
@@ -1,125 +1,132 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { OverlayModule } from '@angular/cdk/overlay';
4
- import { ScrollingModule } from '@angular/cdk/scrolling';
5
- import { DragDropModule } from '@angular/cdk/drag-drop';
6
- import { ObserversModule } from '@angular/cdk/observers';
2
+ import { FngCheckboxComponent } from './checkbox/checkbox.component';
3
+ import { FngColorIndicatorComponent } from './color-indicator/color-indicator.component';
4
+ import { FngColorPickerComponent } from './color-picker/color-picker.component';
5
+ import { FngTextInputComponent } from './text-input/text-input.component';
6
+ import { FngTimePickerDropdownComponent } from './time-picker/time-picker-dropdown/time-picker-dropdown.component';
7
+ import { FngTimePickerComponent } from './time-picker/time-picker.component';
8
+ import { FngDatePickerComponent } from './date-picker/date-picker.component';
9
+ import { FngDateRangePickerComponent } from './date-range-picker/date-range-picker.component';
10
+ import { FngRadioComponent, FngRadioGroupDirective } from './radio/radio.component';
11
+ import { FngSegmentComponent } from './segment/segment.component';
12
+ import { FngSegmentControlComponent } from './segment/segment-control/segment-control.component';
13
+ import { FngSelectOptionComponent } from './select/select-option/select-option.component';
14
+ import { FngSelectComponent } from './select/select.component';
15
+ import { FngSliderComponent } from './slider/slider.component';
16
+ import { FngSwitchComponent } from './switch/switch.component';
17
+ import { FngTextAreaComponent } from './text-area/text-area.component';
18
+ import { FngTextEditorComponent } from './text-editor/text-editor.component';
7
19
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import { CheckboxComponent } from './checkbox/checkbox.component';
9
- import { SwitchComponent } from './switch/switch.component';
10
- import { RadioComponent, RadioGroupDirective } from './radio/radio.component';
11
- import { UniqueSelectionDispatcher } from './unique-selection-dispatcher';
12
- import { SelectComponent } from './select/select.component';
13
- import { TextInputComponent } from './text-input/text-input.component';
14
- import { TextAreaComponent } from './text-area/text-area.component';
15
- import { ColorPickerComponent } from './color-picker/color-picker.component';
16
- import { SliderComponent } from './slider/slider.component';
17
- import { ColorIndicatorComponent } from './color-indicator/color-indicator.component';
18
- import { SegmentComponent } from './segment/segment.component';
19
- import { SegmentControlComponent } from './segment/segment-control/segment-control.component';
20
- import { TimePickerComponent } from './time-picker/time-picker.component';
21
- import { TimePickerDropdownComponent } from './time-picker/time-picker-dropdown/time-picker-dropdown.component';
22
- import { ChipTextPipe } from './select/chip-text.pipe';
23
- import { SelectOptionComponent } from './select/select-option/select-option.component';
24
20
  import * as i0 from "@angular/core";
25
- export * from './checkbox/checkbox.component';
26
- export * from './switch/switch.component';
27
- export * from './radio/radio.component';
28
- export * from './select/select.component';
29
- export * from './select/select-option/select-option.component';
30
- export * from './select/chip-text.pipe';
31
- export * from './text-input/text-input.component';
32
- export * from './text-area/text-area.component';
33
- export * from './color-picker/color-picker.component';
34
- export * from './slider/slider.component';
35
- export * from './color-indicator/color-indicator.component';
36
- export * from './segment/segment.component';
37
- export * from './segment/segment-control/segment-control.component';
38
- export * from './time-picker/time-picker.component';
39
- export * from './time-picker/time-picker-dropdown/time-picker-dropdown.component';
40
- export { ValueAccessorBaseDirective as ValueAccessorBase } from './value-accessor-base';
41
- export { ContainerHostDirective as ContainerHost } from './container-host';
42
21
  export class FestoAngularFormsModule {
43
22
  }
44
- FestoAngularFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
45
- FestoAngularFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularFormsModule, declarations: [CheckboxComponent,
46
- SwitchComponent,
47
- RadioGroupDirective,
48
- RadioComponent,
49
- TextInputComponent,
50
- TextAreaComponent,
51
- ColorIndicatorComponent,
52
- ColorPickerComponent,
53
- SelectComponent,
54
- SelectOptionComponent,
55
- SliderComponent,
56
- SegmentComponent,
57
- SegmentControlComponent,
58
- TimePickerComponent,
59
- TimePickerDropdownComponent,
60
- ChipTextPipe], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule], exports: [ReactiveFormsModule,
23
+ FestoAngularFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FestoAngularFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ FestoAngularFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: FestoAngularFormsModule, imports: [ReactiveFormsModule,
61
25
  FormsModule,
62
- CheckboxComponent,
63
- SwitchComponent,
64
- RadioGroupDirective,
65
- RadioComponent,
66
- TextInputComponent,
67
- TextAreaComponent,
68
- ColorIndicatorComponent,
69
- ColorPickerComponent,
70
- SelectComponent,
71
- SelectOptionComponent,
72
- SliderComponent,
73
- SegmentComponent,
74
- SegmentControlComponent,
75
- TimePickerComponent,
76
- TimePickerDropdownComponent,
77
- ChipTextPipe] });
78
- FestoAngularFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularFormsModule, providers: [UniqueSelectionDispatcher], imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule, ReactiveFormsModule,
26
+ FngCheckboxComponent,
27
+ FngColorIndicatorComponent,
28
+ FngColorPickerComponent,
29
+ FngTextInputComponent,
30
+ FngTimePickerDropdownComponent,
31
+ FngTimePickerComponent,
32
+ FngDatePickerComponent,
33
+ FngDateRangePickerComponent,
34
+ FngRadioGroupDirective,
35
+ FngRadioComponent,
36
+ FngSegmentComponent,
37
+ FngSegmentControlComponent,
38
+ FngSelectOptionComponent,
39
+ FngSelectComponent,
40
+ FngSliderComponent,
41
+ FngSwitchComponent,
42
+ FngTextAreaComponent,
43
+ FngTextEditorComponent], exports: [ReactiveFormsModule,
44
+ FormsModule,
45
+ FngCheckboxComponent,
46
+ FngColorIndicatorComponent,
47
+ FngColorPickerComponent,
48
+ FngTextInputComponent,
49
+ FngTimePickerDropdownComponent,
50
+ FngTimePickerComponent,
51
+ FngDatePickerComponent,
52
+ FngDateRangePickerComponent,
53
+ FngRadioGroupDirective,
54
+ FngRadioComponent,
55
+ FngSegmentComponent,
56
+ FngSegmentControlComponent,
57
+ FngSelectOptionComponent,
58
+ FngSelectComponent,
59
+ FngSliderComponent,
60
+ FngSwitchComponent,
61
+ FngTextAreaComponent,
62
+ FngTextEditorComponent] });
63
+ FestoAngularFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FestoAngularFormsModule, imports: [ReactiveFormsModule,
64
+ FormsModule,
65
+ FngCheckboxComponent,
66
+ FngColorIndicatorComponent,
67
+ FngColorPickerComponent,
68
+ FngTextInputComponent,
69
+ FngTimePickerDropdownComponent,
70
+ FngTimePickerComponent,
71
+ FngDatePickerComponent,
72
+ FngDateRangePickerComponent,
73
+ FngRadioComponent,
74
+ FngSegmentComponent,
75
+ FngSegmentControlComponent,
76
+ FngSelectOptionComponent,
77
+ FngSelectComponent,
78
+ FngSliderComponent,
79
+ FngSwitchComponent,
80
+ FngTextAreaComponent,
81
+ FngTextEditorComponent, ReactiveFormsModule,
79
82
  FormsModule] });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularFormsModule, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FestoAngularFormsModule, decorators: [{
81
84
  type: NgModule,
82
85
  args: [{
83
- declarations: [
84
- CheckboxComponent,
85
- SwitchComponent,
86
- RadioGroupDirective,
87
- RadioComponent,
88
- TextInputComponent,
89
- TextAreaComponent,
90
- ColorIndicatorComponent,
91
- ColorPickerComponent,
92
- SelectComponent,
93
- SelectOptionComponent,
94
- SliderComponent,
95
- SegmentComponent,
96
- SegmentControlComponent,
97
- TimePickerComponent,
98
- TimePickerDropdownComponent,
99
- ChipTextPipe
86
+ imports: [
87
+ ReactiveFormsModule,
88
+ FormsModule,
89
+ FngCheckboxComponent,
90
+ FngColorIndicatorComponent,
91
+ FngColorPickerComponent,
92
+ FngTextInputComponent,
93
+ FngTimePickerDropdownComponent,
94
+ FngTimePickerComponent,
95
+ FngDatePickerComponent,
96
+ FngDateRangePickerComponent,
97
+ FngRadioGroupDirective,
98
+ FngRadioComponent,
99
+ FngSegmentComponent,
100
+ FngSegmentControlComponent,
101
+ FngSelectOptionComponent,
102
+ FngSelectComponent,
103
+ FngSliderComponent,
104
+ FngSwitchComponent,
105
+ FngTextAreaComponent,
106
+ FngTextEditorComponent
100
107
  ],
101
- imports: [ReactiveFormsModule, FormsModule, CommonModule, OverlayModule, ScrollingModule, DragDropModule, ObserversModule],
102
108
  exports: [
103
109
  ReactiveFormsModule,
104
110
  FormsModule,
105
- CheckboxComponent,
106
- SwitchComponent,
107
- RadioGroupDirective,
108
- RadioComponent,
109
- TextInputComponent,
110
- TextAreaComponent,
111
- ColorIndicatorComponent,
112
- ColorPickerComponent,
113
- SelectComponent,
114
- SelectOptionComponent,
115
- SliderComponent,
116
- SegmentComponent,
117
- SegmentControlComponent,
118
- TimePickerComponent,
119
- TimePickerDropdownComponent,
120
- ChipTextPipe
121
- ],
122
- providers: [UniqueSelectionDispatcher]
111
+ FngCheckboxComponent,
112
+ FngColorIndicatorComponent,
113
+ FngColorPickerComponent,
114
+ FngTextInputComponent,
115
+ FngTimePickerDropdownComponent,
116
+ FngTimePickerComponent,
117
+ FngDatePickerComponent,
118
+ FngDateRangePickerComponent,
119
+ FngRadioGroupDirective,
120
+ FngRadioComponent,
121
+ FngSegmentComponent,
122
+ FngSegmentControlComponent,
123
+ FngSelectOptionComponent,
124
+ FngSelectComponent,
125
+ FngSliderComponent,
126
+ FngSwitchComponent,
127
+ FngTextAreaComponent,
128
+ FngTextEditorComponent
129
+ ]
123
130
  }]
124
131
  }] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvZm9ybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxN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bUI7d0JBQ25CLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsdUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50LCBSYWRpb0dyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgVW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlciB9IGZyb20gJy4vdW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyJztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvckluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItaW5kaWNhdG9yL2NvbG9yLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VnbWVudENvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudC9zZWdtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWdtZW50Q29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudC9zZWdtZW50LWNvbnRyb2wvc2VnbWVudC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci90aW1lLXBpY2tlci1kcm9wZG93bi90aW1lLXBpY2tlci1kcm9wZG93bi5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC9jaGlwLXRleHQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LWFyZWEvdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2xpZGVyL3NsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvci1pbmRpY2F0b3IvY29sb3ItaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWdtZW50L3NlZ21lbnQtY29udHJvbC9zZWdtZW50LWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGltZS1waWNrZXIvdGltZS1waWNrZXItZHJvcGRvd24vdGltZS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCB7IFZhbHVlQWNjZXNzb3JCYXNlRGlyZWN0aXZlIGFzIFZhbHVlQWNjZXNzb3JCYXNlIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvci1iYXNlJztcbmV4cG9ydCB7IENvbnRhaW5lckhvc3REaXJlY3RpdmUgYXMgQ29udGFpbmVySG9zdCB9IGZyb20gJy4vY29udGFpbmVyLWhvc3QnO1xuaW1wb3J0IHsgQ2hpcFRleHRQaXBlIH0gZnJvbSAnLi9zZWxlY3QvY2hpcC10ZXh0LnBpcGUnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LW9wdGlvbi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIFN3aXRjaENvbXBvbmVudCxcbiAgICBSYWRpb0dyb3VwRGlyZWN0aXZlLFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBDb2xvckluZGljYXRvckNvbXBvbmVudCxcbiAgICBDb2xvclBpY2tlckNvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU2VsZWN0T3B0aW9uQ29tcG9uZW50LFxuICAgIFNsaWRlckNvbXBvbmVudCxcbiAgICBTZWdtZW50Q29tcG9uZW50LFxuICAgIFNlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIFRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIENoaXBUZXh0UGlwZVxuICBdLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgT3ZlcmxheU1vZHVsZSwgU2Nyb2xsaW5nTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgT2JzZXJ2ZXJzTW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgU3dpdGNoQ29tcG9uZW50LFxuICAgIFJhZGlvR3JvdXBEaXJlY3RpdmUsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxuICAgIENvbG9ySW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIENvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBTZWxlY3RPcHRpb25Db21wb25lbnQsXG4gICAgU2xpZGVyQ29tcG9uZW50LFxuICAgIFNlZ21lbnRDb21wb25lbnQsXG4gICAgU2VnbWVudENvbnRyb2xDb21wb25lbnQsXG4gICAgVGltZVBpY2tlckNvbXBvbmVudCxcbiAgICBUaW1lUGlja2VyRHJvcGRvd25Db21wb25lbnQsXG4gICAgQ2hpcFRleHRQaXBlXG4gIF0sXG4gIHByb3ZpZGVyczogW1VuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJdXG59KVxuZXhwb3J0IGNsYXNzIEZlc3RvQW5ndWxhckZvcm1zTW9kdWxlIHt9XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL2Zvcm1zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFnRGxFLE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixZQTVDaEMsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsOEJBQThCO1FBQzlCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsMkJBQTJCO1FBQzNCLHNCQUFzQjtRQUN0QixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLHNCQUFzQixhQUd0QixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLG9CQUFvQjtRQUNwQiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQiw4QkFBOEI7UUFDOUIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QiwyQkFBMkI7UUFDM0Isc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsc0JBQXNCO3FIQUdiLHVCQUF1QixZQTVDaEMsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxvQkFBb0I7UUFDcEIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsOEJBQThCO1FBQzlCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsMkJBQTJCO1FBRTNCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsc0JBQXNCLEVBR3RCLG1CQUFtQjtRQUNuQixXQUFXOzJGQXFCRix1QkFBdUI7a0JBOUNuQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQiw4QkFBOEI7d0JBQzlCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLDhCQUE4Qjt3QkFDOUIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbmdDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ0NvbG9ySW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1pbmRpY2F0b3IvY29sb3ItaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbmdDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm5nVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1RpbWVQaWNrZXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vdGltZS1waWNrZXIvdGltZS1waWNrZXItZHJvcGRvd24vdGltZS1waWNrZXItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1RpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbmdEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm5nRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm5nUmFkaW9Db21wb25lbnQsIEZuZ1JhZGlvR3JvdXBEaXJlY3RpdmUgfSBmcm9tICcuL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbmdTZWdtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zZWdtZW50L3NlZ21lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1NlZ21lbnRDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9zZWdtZW50L3NlZ21lbnQtY29udHJvbC9zZWdtZW50LWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1NlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0L3NlbGVjdC1vcHRpb24vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbmdTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL3NsaWRlci9zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1N3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vc3dpdGNoL3N3aXRjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm5nVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IEZuZ1RleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRm5nQ2hlY2tib3hDb21wb25lbnQsXG4gICAgRm5nQ29sb3JJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgRm5nQ29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgRm5nVGV4dElucHV0Q29tcG9uZW50LFxuICAgIEZuZ1RpbWVQaWNrZXJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBGbmdUaW1lUGlja2VyQ29tcG9uZW50LFxuICAgIEZuZ0RhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgRm5nRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50LFxuICAgIEZuZ1JhZGlvR3JvdXBEaXJlY3RpdmUsXG4gICAgRm5nUmFkaW9Db21wb25lbnQsXG4gICAgRm5nU2VnbWVudENvbXBvbmVudCxcbiAgICBGbmdTZWdtZW50Q29udHJvbENvbXBvbmVudCxcbiAgICBGbmdTZWxlY3RPcHRpb25Db21wb25lbnQsXG4gICAgRm5nU2VsZWN0Q29tcG9uZW50LFxuICAgIEZuZ1NsaWRlckNvbXBvbmVudCxcbiAgICBGbmdTd2l0Y2hDb21wb25lbnQsXG4gICAgRm5nVGV4dEFyZWFDb21wb25lbnQsXG4gICAgRm5nVGV4dEVkaXRvckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGbmdDaGVja2JveENvbXBvbmVudCxcbiAgICBGbmdDb2xvckluZGljYXRvckNvbXBvbmVudCxcbiAgICBGbmdDb2xvclBpY2tlckNvbXBvbmVudCxcbiAgICBGbmdUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgRm5nVGltZVBpY2tlckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEZuZ1RpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgRm5nRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBGbmdEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQsXG4gICAgRm5nUmFkaW9Hcm91cERpcmVjdGl2ZSxcbiAgICBGbmdSYWRpb0NvbXBvbmVudCxcbiAgICBGbmdTZWdtZW50Q29tcG9uZW50LFxuICAgIEZuZ1NlZ21lbnRDb250cm9sQ29tcG9uZW50LFxuICAgIEZuZ1NlbGVjdE9wdGlvbkNvbXBvbmVudCxcbiAgICBGbmdTZWxlY3RDb21wb25lbnQsXG4gICAgRm5nU2xpZGVyQ29tcG9uZW50LFxuICAgIEZuZ1N3aXRjaENvbXBvbmVudCxcbiAgICBGbmdUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBGbmdUZXh0RWRpdG9yQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmVzdG9Bbmd1bGFyRm9ybXNNb2R1bGUge31cbiJdfQ==
@@ -1,32 +1,18 @@
1
- import { Component, Input, ChangeDetectionStrategy, Optional, EventEmitter, Output, ChangeDetectorRef, ViewEncapsulation, Directive, forwardRef, ContentChildren, HostBinding } from '@angular/core';
2
- import { UniqueSelectionDispatcher } from '../unique-selection-dispatcher';
1
+ import { Component, Input, ChangeDetectionStrategy, Optional, EventEmitter, Output, ViewEncapsulation, Directive, forwardRef, ContentChildren, HostBinding } from '@angular/core';
3
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { CommonModule } from '@angular/common';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../unique-selection-dispatcher";
7
7
  import * as i2 from "@angular/common";
8
- export class RadioChange {
8
+ export class FngRadioChange {
9
9
  constructor(source, value) {
10
10
  this.source = source;
11
11
  this.value = value;
12
12
  }
13
13
  }
14
14
  let nextUniqueId = 0;
15
- export class RadioGroupDirective {
16
- constructor(changeDetector) {
17
- this.changeDetector = changeDetector;
18
- this.hostClass = true;
19
- this.role = 'radiogroup';
20
- this.change = new EventEmitter();
21
- this.isLarge = false;
22
- this.isDisabled = false;
23
- this.isRequired = false;
24
- this.innerValue = null;
25
- this.isInitialized = false;
26
- this.isSelected = null;
27
- this.innerName = `fngRadioGroup-${nextUniqueId++}`;
28
- this.innerLabelPosition = 'before';
29
- }
15
+ export class FngRadioGroupDirective {
30
16
  get name() {
31
17
  return this.innerName;
32
18
  }
@@ -80,6 +66,20 @@ export class RadioGroupDirective {
80
66
  this.isRequired = coerceBooleanProperty(value);
81
67
  this.markRadiosForCheck();
82
68
  }
69
+ constructor(changeDetector) {
70
+ this.changeDetector = changeDetector;
71
+ this.hostClass = true;
72
+ this.role = 'radiogroup';
73
+ this.change = new EventEmitter();
74
+ this.isLarge = false;
75
+ this.isDisabled = false;
76
+ this.isRequired = false;
77
+ this.innerValue = null;
78
+ this.isInitialized = false;
79
+ this.isSelected = null;
80
+ this.innerName = `fngRadioGroup-${nextUniqueId++}`;
81
+ this.innerLabelPosition = 'before';
82
+ }
83
83
  ngAfterContentInit() {
84
84
  this.isInitialized = true;
85
85
  }
@@ -95,7 +95,7 @@ export class RadioGroupDirective {
95
95
  }
96
96
  emitChangeEvent() {
97
97
  if (this.isInitialized) {
98
- this.change.emit(new RadioChange(this.isSelected, this.innerValue));
98
+ this.change.emit(new FngRadioChange(this.isSelected, this.innerValue));
99
99
  }
100
100
  }
101
101
  markRadiosForCheck() {
@@ -146,22 +146,23 @@ export class RadioGroupDirective {
146
146
  }
147
147
  }
148
148
  }
149
- RadioGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioGroupDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
150
- RadioGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: RadioGroupDirective, selector: "[fngRadioGroup]", inputs: { name: "name", large: "large", labelPosition: "labelPosition", value: "value", selected: "selected", disabled: "disabled", required: "required" }, outputs: { change: "change" }, host: { properties: { "class.fwe-radio-group": "this.hostClass", "attr.role": "this.role" } }, providers: [
149
+ FngRadioGroupDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngRadioGroupDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
150
+ FngRadioGroupDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: FngRadioGroupDirective, isStandalone: true, selector: "[fngRadioGroup]", inputs: { name: "name", large: "large", labelPosition: "labelPosition", value: "value", selected: "selected", disabled: "disabled", required: "required" }, outputs: { change: "change" }, host: { properties: { "class.fwe-radio-group": "this.hostClass", "attr.role": "this.role" } }, providers: [
151
151
  {
152
152
  provide: NG_VALUE_ACCESSOR,
153
- useExisting: forwardRef(() => RadioGroupDirective),
153
+ useExisting: forwardRef(() => FngRadioGroupDirective),
154
154
  multi: true
155
155
  }
156
- ], queries: [{ propertyName: "radios", predicate: i0.forwardRef(function () { return RadioComponent; }), descendants: true }], ngImport: i0 });
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioGroupDirective, decorators: [{
156
+ ], queries: [{ propertyName: "radios", predicate: i0.forwardRef(function () { return FngRadioComponent; }), descendants: true }], ngImport: i0 });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngRadioGroupDirective, decorators: [{
158
158
  type: Directive,
159
159
  args: [{
160
+ standalone: true,
160
161
  selector: '[fngRadioGroup]',
161
162
  providers: [
162
163
  {
163
164
  provide: NG_VALUE_ACCESSOR,
164
- useExisting: forwardRef(() => RadioGroupDirective),
165
+ useExisting: forwardRef(() => FngRadioGroupDirective),
165
166
  multi: true
166
167
  }
167
168
  ]
@@ -176,7 +177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
176
177
  type: Output
177
178
  }], radios: [{
178
179
  type: ContentChildren,
179
- args: [forwardRef(() => RadioComponent), { descendants: true }]
180
+ args: [forwardRef(() => FngRadioComponent), { descendants: true }]
180
181
  }], name: [{
181
182
  type: Input
182
183
  }], large: [{
@@ -192,22 +193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
192
193
  }], required: [{
193
194
  type: Input
194
195
  }] } });
195
- export class RadioComponent {
196
- constructor(radioGroup, changeDetector, radioDispatcher) {
197
- this.changeDetector = changeDetector;
198
- this.radioDispatcher = radioDispatcher;
199
- this.innerId = `fng-radio-${++nextUniqueId}`;
200
- this.change = new EventEmitter();
201
- this.isLarge = false;
202
- this.isChecked = false;
203
- this.innerValue = null;
204
- this.radioGroup = radioGroup;
205
- this.removeUniqueSelectionListener = radioDispatcher.listen((id, name) => {
206
- if (id !== this.id && name === this.name) {
207
- this.checked = false;
208
- }
209
- });
210
- }
196
+ export class FngRadioComponent {
211
197
  get id() {
212
198
  return this.innerId;
213
199
  }
@@ -280,6 +266,24 @@ export class RadioComponent {
280
266
  set required(value) {
281
267
  this.isRequired = coerceBooleanProperty(value);
282
268
  }
269
+ constructor(radioGroup, changeDetector, radioDispatcher) {
270
+ this.changeDetector = changeDetector;
271
+ this.radioDispatcher = radioDispatcher;
272
+ this.innerId = `fng-radio-${++nextUniqueId}`;
273
+ this.change = new EventEmitter();
274
+ this.isLarge = false;
275
+ this.isChecked = false;
276
+ this.isDisabled = false;
277
+ this.isRequired = false;
278
+ this.innerValue = null;
279
+ this.innerLabelPosition = 'before';
280
+ this.radioGroup = radioGroup;
281
+ this.removeUniqueSelectionListener = radioDispatcher.listen((id, name) => {
282
+ if (id !== this.id && name === this.name) {
283
+ this.checked = false;
284
+ }
285
+ });
286
+ }
283
287
  ngOnInit() {
284
288
  if (this.radioGroup) {
285
289
  this.checked = this.radioGroup.value === this.innerValue;
@@ -314,17 +318,17 @@ export class RadioComponent {
314
318
  this.changeDetector.markForCheck();
315
319
  }
316
320
  emitChangeEvent() {
317
- this.change.emit(new RadioChange(this, this.innerValue));
321
+ this.change.emit(new FngRadioChange(this, this.innerValue));
318
322
  }
319
323
  }
320
- RadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioComponent, deps: [{ token: RadioGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }, { token: i1.UniqueSelectionDispatcher }], target: i0.ɵɵFactoryTarget.Component });
321
- RadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RadioComponent, selector: "fng-radio", inputs: { name: "name", id: "id", checked: "checked", value: "value", large: "large", labelPosition: "labelPosition", disabled: "disabled", required: "required" }, outputs: { change: "change" }, ngImport: i0, template: "<label\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-radio': true,\n 'fwe-radio-label-below': labelPosition == 'below',\n 'fwe-radio-label-before': labelPosition == 'before',\n 'fwe-radio-lg': large\n }\"\n>\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-radio-checkmark\"></div>\n <div class=\"fwe-radio-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-radio:hover .fwe-radio-checkmark{background-color:var(--fwe-control)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RadioComponent, decorators: [{
324
+ FngRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngRadioComponent, deps: [{ token: FngRadioGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }, { token: i1.FngUniqueSelectionDispatcher }], target: i0.ɵɵFactoryTarget.Component });
325
+ FngRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: FngRadioComponent, isStandalone: true, selector: "fng-radio", inputs: { name: "name", id: "id", checked: "checked", value: "value", large: "large", labelPosition: "labelPosition", disabled: "disabled", required: "required" }, outputs: { change: "change" }, ngImport: i0, template: "<label\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-radio': true,\n 'fwe-radio-label-below': labelPosition == 'below',\n 'fwe-radio-label-before': labelPosition == 'before',\n 'fwe-radio-lg': large\n }\"\n>\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-radio-checkmark\"></div>\n <div class=\"fwe-radio-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-radio:hover .fwe-radio-checkmark{background-color:var(--fwe-control)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: FngRadioComponent, decorators: [{
323
327
  type: Component,
324
- args: [{ selector: 'fng-radio', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-radio': true,\n 'fwe-radio-label-below': labelPosition == 'below',\n 'fwe-radio-label-before': labelPosition == 'before',\n 'fwe-radio-lg': large\n }\"\n>\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-radio-checkmark\"></div>\n <div class=\"fwe-radio-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-radio:hover .fwe-radio-checkmark{background-color:var(--fwe-control)}\n"] }]
325
- }], ctorParameters: function () { return [{ type: RadioGroupDirective, decorators: [{
328
+ args: [{ standalone: true, imports: [CommonModule], selector: 'fng-radio', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label\n [attr.for]=\"inputId\"\n [ngClass]=\"{\n 'fwe-radio': true,\n 'fwe-radio-label-below': labelPosition == 'below',\n 'fwe-radio-label-before': labelPosition == 'before',\n 'fwe-radio-lg': large\n }\"\n>\n <input\n type=\"radio\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"fwe-radio-checkmark\"></div>\n <div class=\"fwe-radio-label-content\">\n <ng-content></ng-content>\n </div>\n</label>\n", styles: [".fwe-radio:hover .fwe-radio-checkmark{background-color:var(--fwe-control)}\n"] }]
329
+ }], ctorParameters: function () { return [{ type: FngRadioGroupDirective, decorators: [{
326
330
  type: Optional
327
- }] }, { type: i0.ChangeDetectorRef }, { type: i1.UniqueSelectionDispatcher }]; }, propDecorators: { name: [{
331
+ }] }, { type: i0.ChangeDetectorRef }, { type: i1.FngUniqueSelectionDispatcher }]; }, propDecorators: { name: [{
328
332
  type: Input
329
333
  }], id: [{
330
334
  type: Input
@@ -343,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
343
347
  }], change: [{
344
348
  type: Output
345
349
  }] } });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvcmFkaW8vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLGlCQUFpQixFQUVqQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFFVixlQUFlLEVBQ2YsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUU5RCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFtQixNQUFzQixFQUFTLEtBQVU7UUFBekMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQUcsQ0FBQztDQUNqRTtBQUVELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQVlyQixNQUFNLE9BQU8sbUJBQW1CO0lBc0Y5QixZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFyRmYsY0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixTQUFJLEdBQUcsWUFBWSxDQUFDO1FBR3JDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBd0UxQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxLQUFLLENBQUM7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Z0JBc0JGLEtBQUs7c0JBRFIsS0FBSztnQkFtQkYsS0FBSztzQkFEUixLQUFLO2dCQVNGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFRYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3B0aW9uYWwsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgRGlyZWN0aXZlLFxuICBmb3J3YXJkUmVmLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXIgfSBmcm9tICcuLi91bmlxdWUtc2VsZWN0aW9uLWRpc3BhdGNoZXInO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuZXhwb3J0IGNsYXNzIFJhZGlvQ2hhbmdlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZTogUmFkaW9Db21wb25lbnQsIHB1YmxpYyB2YWx1ZTogYW55KSB7fVxufVxuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZuZ1JhZGlvR3JvdXBdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0dyb3VwRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZndlLXJhZGlvLWdyb3VwJykgaG9zdENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJhZGlvQ2hhbmdlPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBSYWRpb0NvbXBvbmVudCksIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcmFkaW9zOiBRdWVyeUxpc3Q8UmFkaW9Db21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJOYW1lO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlubmVyTmFtZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhcmdlKCkge1xuICAgIHJldHVybiB0aGlzLmlzTGFyZ2U7XG4gIH1cbiAgc2V0IGxhcmdlKHYpIHtcbiAgICB0aGlzLmlzTGFyZ2UgPSB2O1xuICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25TaXplKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbGFiZWxQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckxhYmVsUG9zaXRpb247XG4gIH1cbiAgc2V0IGxhYmVsUG9zaXRpb24odikge1xuICAgIHRoaXMuaW5uZXJMYWJlbFBvc2l0aW9uID0gdjtcbiAgICB0aGlzLm1hcmtSYWRpb3NGb3JDaGVjaygpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlubmVyVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGFueSB8IG51bGwpIHtcbiAgICB0aGlzLmlzU2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQgPyBzZWxlY3RlZC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5tYXJrUmFkaW9zRm9yQ2hlY2soKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5tYXJrUmFkaW9zRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMYXJnZSA9IGZhbHNlO1xuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1JlcXVpcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgaXNTZWxlY3RlZDogUmFkaW9Db21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpbm5lck5hbWUgPSBgZm5nUmFkaW9Hcm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG4gIHByaXZhdGUgaW5uZXJMYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCAnYmVsb3cnID0gJ2JlZm9yZSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG5cbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgY2hlY2tTZWxlY3RlZFJhZGlvQnV0dG9uKCkge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQgJiYgIXRoaXMuaXNTZWxlY3RlZC5jaGVja2VkKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWQuY2hlY2tlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdG91Y2goKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgZW1pdENoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQobmV3IFJhZGlvQ2hhbmdlKHRoaXMuaXNTZWxlY3RlZCwgdGhpcy5pbm5lclZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgbWFya1JhZGlvc0ZvckNoZWNrKCkge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaChyYWRpbyA9PiByYWRpby5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSYWRpb0J1dHRvblNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKHJhZGlvID0+IHtcbiAgICAgICAgcmFkaW8ubGFyZ2UgPSB0aGlzLmxhcmdlO1xuICAgICAgICByYWRpby5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2gocmFkaW8gPT4ge1xuICAgICAgICByYWRpby5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICByYWRpby5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRSYWRpb0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc0FscmVhZHlTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZCAhPT0gbnVsbCAmJiB0aGlzLmlzU2VsZWN0ZWQudmFsdWUgPT09IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICBpZiAodGhpcy5yYWRpb3MgJiYgIWlzQWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaChyYWRpbyA9PiB7XG4gICAgICAgIHJhZGlvLmNoZWNrZWQgPSB0aGlzLnZhbHVlID09PSByYWRpby52YWx1ZTtcbiAgICAgICAgaWYgKHJhZGlvLmNoZWNrZWQpIHtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSByYWRpbztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZuZy1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBpbm5lcklkID0gYGZuZy1yYWRpby0keysrbmV4dFVuaXF1ZUlkfWA7XG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlubmVySWQ7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlubmVySWQgPSB2YWx1ZSA/IGAke3ZhbHVlfS0keysrbmV4dFVuaXF1ZUlkfWAgOiBgZm5nLXJhZGlvLSR7KytuZXh0VW5pcXVlSWR9YDtcbiAgfVxuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW5uZXJJZH0taW5wdXRgO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDaGVja2VkO1xuICB9XG4gIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3Q2hlY2tlZFN0YXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5pc0NoZWNrZWQgIT09IG5ld0NoZWNrZWRTdGF0ZSkge1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPSBuZXdDaGVja2VkU3RhdGU7XG4gICAgICBpZiAobmV3Q2hlY2tlZFN0YXRlICYmIHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnJhZGlvR3JvdXAudmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID0gdGhpcztcbiAgICAgIH0gZWxzZSBpZiAoIW5ld0NoZWNrZWRTdGF0ZSAmJiB0aGlzLnJhZGlvR3JvdXAgJiYgdGhpcy5yYWRpb0dyb3VwLnZhbHVlID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMucmFkaW9Hcm91cC5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5yYWRpb0Rpc3BhdGNoZXIubm90aWZ5KHRoaXMuaWQsIHRoaXMubmFtZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pbm5lclZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy5yYWRpb0dyb3VwICE9PSBudWxsKSB7XG4gICAgICAgIGlmICghdGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5yYWRpb0dyb3VwLnZhbHVlID09PSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBsYXJnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0xhcmdlIHx8ICh0aGlzLnJhZGlvR3JvdXAgIT0gbnVsbCAmJiB0aGlzLnJhZGlvR3JvdXAubGFyZ2UpO1xuICB9XG4gIHNldCBsYXJnZSh2YWx1ZSkge1xuICAgIHRoaXMuaXNMYXJnZSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhYmVsUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJMYWJlbFBvc2l0aW9uIHx8ICh0aGlzLnJhZGlvR3JvdXAgJiYgdGhpcy5yYWRpb0dyb3VwLmxhYmVsUG9zaXRpb24pIHx8ICdiZWZvcmUnO1xuICB9XG4gIHNldCBsYWJlbFBvc2l0aW9uKHZhbHVlKSB7XG4gICAgdGhpcy5pbm5lckxhYmVsUG9zaXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkIHx8ICh0aGlzLnJhZGlvR3JvdXAgIT0gbnVsbCAmJiB0aGlzLnJhZGlvR3JvdXAuZGlzYWJsZWQpO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld0Rpc2FibGVkU3RhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlcXVpcmVkIHx8ICh0aGlzLnJhZGlvR3JvdXAgJiYgdGhpcy5yYWRpb0dyb3VwLnJlcXVpcmVkKTtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9DaGFuZ2U+KCk7XG5cbiAgcmFkaW9Hcm91cDogUmFkaW9Hcm91cERpcmVjdGl2ZTtcblxuICBwcml2YXRlIGlzTGFyZ2UgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0NoZWNrZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBwcml2YXRlIGlzUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBpbm5lckxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICdiZWxvdyc7XG4gIHByaXZhdGUgcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcmFkaW9Hcm91cDogUmFkaW9Hcm91cERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJhZGlvRGlzcGF0Y2hlcjogVW5pcXVlU2VsZWN0aW9uRGlzcGF0Y2hlclxuICApIHtcbiAgICB0aGlzLnJhZGlvR3JvdXAgPSByYWRpb0dyb3VwO1xuICAgIHRoaXMucmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIgPSByYWRpb0Rpc3BhdGNoZXIubGlzdGVuKChpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChpZCAhPT0gdGhpcy5pZCAmJiBuYW1lID09PSB0aGlzLm5hbWUpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5yYWRpb0dyb3VwKSB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLnJhZGlvR3JvdXAudmFsdWUgPT09IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICAgIHRoaXMubmFtZSA9IHRoaXMucmFkaW9Hcm91cC5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlbW92ZVVuaXF1ZVNlbGVjdGlvbkxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgIHRoaXMucmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjb25zdCBncm91cFZhbHVlQ2hhbmdlZCA9IHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnZhbHVlICE9PSB0aGlzLnJhZGlvR3JvdXAudmFsdWU7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnQoKTtcblxuICAgICAgaWYgKHRoaXMucmFkaW9Hcm91cCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmFkaW9Hcm91cD8uY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMucmFkaW9Hcm91cD8uY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbih0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cFZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMucmFkaW9Hcm91cC5lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChuZXcgUmFkaW9DaGFuZ2UodGhpcywgdGhpcy5pbm5lclZhbHVlKSk7XG4gIH1cbn1cbiIsIjxsYWJlbFxuICBbYXR0ci5mb3JdPVwiaW5wdXRJZFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnZndlLXJhZGlvJzogdHJ1ZSxcbiAgICAnZndlLXJhZGlvLWxhYmVsLWJlbG93JzogbGFiZWxQb3NpdGlvbiA9PSAnYmVsb3cnLFxuICAgICdmd2UtcmFkaW8tbGFiZWwtYmVmb3JlJzogbGFiZWxQb3NpdGlvbiA9PSAnYmVmb3JlJyxcbiAgICAnZndlLXJhZGlvLWxnJzogbGFyZ2VcbiAgfVwiXG4+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIm9uSW5wdXRDbGljaygkZXZlbnQpXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1yYWRpby1jaGVja21hcmtcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1yYWRpby1sYWJlbC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbGFiZWw+XG4iXX0=
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL2xpYi9mb3Jtcy9yYWRpby9yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBR04saUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBRVYsZUFBZSxFQUNmLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRS9DLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW1CLE1BQWdDLEVBQVMsS0FBVTtRQUFuRCxXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQUs7SUFBRyxDQUFDO0NBQzNFO0FBRUQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBYXJCLE1BQU0sT0FBTyxzQkFBc0I7SUFVakMsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFP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QyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkEwR2xDLFFBQVE7dUhBdkdGLElBQUk7c0JBQVosS0FBSztnQkFPRixFQUFFO3NCQURMLEtBQUs7Z0JBVUYsT0FBTztzQkFEVixLQUFLO2dCQXNCRixLQUFLO3NCQURSLEtBQUs7Z0JBbUJGLEtBQUs7c0JBRFIsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBUWEsTUFBTTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9wdGlvbmFsLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIERpcmVjdGl2ZSxcbiAgZm9yd2FyZFJlZixcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBIb3N0QmluZGluZ1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbmdVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnLi4vdW5pcXVlLXNlbGVjdGlvbi1kaXNwYXRjaGVyJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgRm5nUmFkaW9DaGFuZ2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc291cmNlOiBGbmdSYWRpb0NvbXBvbmVudCB8IG51bGwsIHB1YmxpYyB2YWx1ZTogYW55KSB7fVxufVxuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW2ZuZ1JhZGlvR3JvdXBdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGbmdSYWRpb0dyb3VwRGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZuZ1JhZGlvR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZndlLXJhZGlvLWdyb3VwJykgaG9zdENsYXNzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZuZ1JhZGlvQ2hhbmdlPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBGbmdSYWRpb0NvbXBvbmVudCksIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcmFkaW9zOiBRdWVyeUxpc3Q8Rm5nUmFkaW9Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJOYW1lO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlubmVyTmFtZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhcmdlKCkge1xuICAgIHJldHVybiB0aGlzLmlzTGFyZ2U7XG4gIH1cbiAgc2V0IGxhcmdlKHYpIHtcbiAgICB0aGlzLmlzTGFyZ2UgPSB2O1xuICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25TaXplKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbGFiZWxQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckxhYmVsUG9zaXRpb247XG4gIH1cbiAgc2V0IGxhYmVsUG9zaXRpb24odikge1xuICAgIHRoaXMuaW5uZXJMYWJlbFBvc2l0aW9uID0gdjtcbiAgICB0aGlzLm1hcmtSYWRpb3NGb3JDaGVjaygpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUobmV3VmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlubmVyVmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGFueSB8IG51bGwpIHtcbiAgICB0aGlzLmlzU2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQgPyBzZWxlY3RlZC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5tYXJrUmFkaW9zRm9yQ2hlY2soKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5tYXJrUmFkaW9zRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMYXJnZSA9IGZhbHNlO1xuICBwcml2YXRlIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1JlcXVpcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgaXNTZWxlY3RlZDogRm5nUmFkaW9Db21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBpbm5lck5hbWUgPSBgZm5nUmFkaW9Hcm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG4gIHByaXZhdGUgaW5uZXJMYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgfCAnYmVsb3cnID0gJ2JlZm9yZSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgY29udHJvbFZhbHVlQWNjZXNzb3JDaGFuZ2VGbjogKCh2YWx1ZTogYW55KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBvblRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkICYmICF0aGlzLmlzU2VsZWN0ZWQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5pc1NlbGVjdGVkLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHRvdWNoKCkge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KG5ldyBGbmdSYWRpb0NoYW5nZSh0aGlzLmlzU2VsZWN0ZWQsIHRoaXMuaW5uZXJWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtSYWRpb3NGb3JDaGVjaygpIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2gocmFkaW8gPT4gcmFkaW8ubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmFkaW9CdXR0b25TaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaChyYWRpbyA9PiB7XG4gICAgICAgIHJhZGlvLmxhcmdlID0gdGhpcy5sYXJnZTtcbiAgICAgICAgcmFkaW8ubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKHJhZGlvID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgcmFkaW8ubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkUmFkaW9Gcm9tVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgaXNBbHJlYWR5U2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQgIT09IG51bGwgJiYgdGhpcy5pc1NlbGVjdGVkLnZhbHVlID09PSB0aGlzLmlubmVyVmFsdWU7XG4gICAgaWYgKHRoaXMucmFkaW9zICYmICFpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy5pc1NlbGVjdGVkID0gbnVsbDtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2gocmFkaW8gPT4ge1xuICAgICAgICByYWRpby5jaGVja2VkID0gdGhpcy52YWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gcmFkaW87XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZm5nLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm5nUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGlubmVySWQgPSBgZm5nLXJhZGlvLSR7KytuZXh0VW5pcXVlSWR9YDtcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJJZDtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaW5uZXJJZCA9IHZhbHVlID8gYCR7dmFsdWV9LSR7KytuZXh0VW5pcXVlSWR9YCA6IGBmbmctcmFkaW8tJHsrK25leHRVbmlxdWVJZH1gO1xuICB9XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pbm5lcklkfS1pbnB1dGA7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NoZWNrZWQ7XG4gIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdDaGVja2VkU3RhdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLmlzQ2hlY2tlZCAhPT0gbmV3Q2hlY2tlZFN0YXRlKSB7XG4gICAgICB0aGlzLmlzQ2hlY2tlZCA9IG5ld0NoZWNrZWRTdGF0ZTtcbiAgICAgIGlmIChuZXdDaGVja2VkU3RhdGUgJiYgdGhpcy5yYWRpb0dyb3VwICYmIHRoaXMucmFkaW9Hcm91cC52YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnJhZGlvR3JvdXAuc2VsZWN0ZWQgPSB0aGlzO1xuICAgICAgfSBlbHNlIGlmICghbmV3Q2hlY2tlZFN0YXRlICYmIHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnJhZGlvR3JvdXAudmFsdWUgPT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5yYWRpb0dyb3VwLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5ld0NoZWNrZWRTdGF0ZSkge1xuICAgICAgICB0aGlzLnJhZGlvRGlzcGF0Y2hlci5ub3RpZnkodGhpcy5pZCwgdGhpcy5uYW1lKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlubmVyVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLnJhZGlvR3JvdXAgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLnJhZGlvR3JvdXAudmFsdWUgPT09IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgICB0aGlzLnJhZGlvR3JvdXAuc2VsZWN0ZWQgPSB0aGlzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGxhcmdlKCkge1xuICAgIHJldHVybiB0aGlzLmlzTGFyZ2UgfHwgKHRoaXMucmFkaW9Hcm91cCAhPSBudWxsICYmIHRoaXMucmFkaW9Hcm91cC5sYXJnZSk7XG4gIH1cbiAgc2V0IGxhcmdlKHZhbHVlKSB7XG4gICAgdGhpcy5pc0xhcmdlID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbGFiZWxQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckxhYmVsUG9zaXRpb24gfHwgKHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnJhZGlvR3JvdXAubGFiZWxQb3NpdGlvbikgfHwgJ2JlZm9yZSc7XG4gIH1cbiAgc2V0IGxhYmVsUG9zaXRpb24odmFsdWUpIHtcbiAgICB0aGlzLmlubmVyTGFiZWxQb3NpdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGlzYWJsZWQgfHwgKHRoaXMucmFkaW9Hcm91cCAhPSBudWxsICYmIHRoaXMucmFkaW9Hcm91cC5kaXNhYmxlZCk7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3RGlzYWJsZWRTdGF0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCAhPT0gbmV3RGlzYWJsZWRTdGF0ZSkge1xuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gbmV3RGlzYWJsZWRTdGF0ZTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQgfHwgKHRoaXMucmFkaW9Hcm91cCAmJiB0aGlzLnJhZGlvR3JvdXAucmVxdWlyZWQpO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNSZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbmdSYWRpb0NoYW5nZT4oKTtcblxuICByYWRpb0dyb3VwOiBGbmdSYWRpb0dyb3VwRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgaXNMYXJnZSA9IGZhbHNlO1xuICBwcml2YXRlIGlzQ2hlY2tlZCA9IGZhbHNlO1xuICBwcml2YXRlIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaW5uZXJWYWx1ZTogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBpbm5lckxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICdiZWxvdycgPSAnYmVmb3JlJztcbiAgcHJpdmF0ZSByZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSByYWRpb0dyb3VwOiBGbmdSYWRpb0dyb3VwRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmFkaW9EaXNwYXRjaGVyOiBGbmdVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyXG4gICkge1xuICAgIHRoaXMucmFkaW9Hcm91cCA9IHJhZGlvR3JvdXA7XG4gICAgdGhpcy5yZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lciA9IHJhZGlvRGlzcGF0Y2hlci5saXN0ZW4oKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKGlkICE9PSB0aGlzLmlkICYmIG5hbWUgPT09IHRoaXMubmFtZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJhZGlvR3JvdXApIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMucmFkaW9Hcm91cC52YWx1ZSA9PT0gdGhpcy5pbm5lclZhbHVlO1xuICAgICAgdGhpcy5uYW1lID0gdGhpcy5yYWRpb0dyb3VwLm5hbWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5yZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGdyb3VwVmFsdWVDaGFuZ2VkID0gdGhpcy5yYWRpb0dyb3VwICYmIHRoaXMudmFsdWUgIT09IHRoaXMucmFkaW9Hcm91cC52YWx1ZTtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudCgpO1xuXG4gICAgICBpZiAodGhpcy5yYWRpb0dyb3VwKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yYWRpb0dyb3VwPy5jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhpcy5yYWRpb0dyb3VwPy5jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwVmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy5yYWRpb0dyb3VwLmVtaXRDaGFuZ2VFdmVudCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KG5ldyBGbmdSYWRpb0NoYW5nZSh0aGlzLCB0aGlzLmlubmVyVmFsdWUpKTtcbiAgfVxufVxuIiwiPGxhYmVsXG4gIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2UtcmFkaW8nOiB0cnVlLFxuICAgICdmd2UtcmFkaW8tbGFiZWwtYmVsb3cnOiBsYWJlbFBvc2l0aW9uID09ICdiZWxvdycsXG4gICAgJ2Z3ZS1yYWRpby1sYWJlbC1iZWZvcmUnOiBsYWJlbFBvc2l0aW9uID09ICdiZWZvcmUnLFxuICAgICdmd2UtcmFkaW8tbGcnOiBsYXJnZVxuICB9XCJcbj5cbiAgPGlucHV0XG4gICAgdHlwZT1cInJhZGlvXCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwib25JbnB1dENsaWNrKCRldmVudClcIlxuICAvPlxuICA8ZGl2IGNsYXNzPVwiZndlLXJhZGlvLWNoZWNrbWFya1wiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZndlLXJhZGlvLWxhYmVsLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9sYWJlbD5cbiJdfQ==