@fundamental-ngx/platform 0.46.0-rc.2 → 0.46.0-rc.21

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 (207) hide show
  1. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
  2. package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
  3. package/esm2022/form/auto-complete/auto-complete.directive.mjs +4 -3
  4. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -6
  5. package/esm2022/form/checkbox/checkbox.module.mjs +5 -8
  6. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +5 -7
  7. package/esm2022/form/combobox/combobox/combobox.component.mjs +36 -14
  8. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +19 -4
  9. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -9
  10. package/esm2022/form/combobox/combobox.module.mjs +5 -51
  11. package/esm2022/form/combobox/commons/base-combobox.mjs +9 -1
  12. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -3
  13. package/esm2022/form/form-group/fdp-form.module.mjs +10 -42
  14. package/esm2022/form/form-group/form-field/form-field.component.mjs +47 -12
  15. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +4 -3
  16. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +4 -3
  17. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +4 -3
  18. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  19. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +3 -3
  20. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +8 -6
  21. package/esm2022/form/form-group/form-group.component.mjs +25 -10
  22. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +6 -3
  23. package/esm2022/form/input/fdp-input.module.mjs +5 -11
  24. package/esm2022/form/input/input.component.mjs +5 -4
  25. package/esm2022/form/input-group/addon-body.component.mjs +6 -4
  26. package/esm2022/form/input-group/addon.component.mjs +4 -4
  27. package/esm2022/form/input-group/input-group.component.mjs +9 -10
  28. package/esm2022/form/input-group/input-group.module.mjs +5 -29
  29. package/esm2022/form/input-group/input.component.mjs +4 -3
  30. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +5 -5
  31. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +9 -1
  32. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +44 -19
  33. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +24 -5
  34. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -10
  35. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +5 -65
  36. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +11 -7
  37. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -9
  38. package/esm2022/form/multi-input/multi-input.component.mjs +39 -20
  39. package/esm2022/form/multi-input/multi-input.module.mjs +5 -51
  40. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +6 -5
  41. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +5 -11
  42. package/esm2022/form/radio-group/radio/radio.component.mjs +10 -9
  43. package/esm2022/form/radio-group/radio-group.component.mjs +6 -6
  44. package/esm2022/form/radio-group/radio-group.module.mjs +5 -32
  45. package/esm2022/form/select/option/option.component.mjs +6 -3
  46. package/esm2022/form/select/select/select.component.mjs +20 -11
  47. package/esm2022/form/select/select.module.mjs +5 -54
  48. package/esm2022/form/step-input/number/number-step-input.component.mjs +25 -14
  49. package/esm2022/form/step-input/step-input-control.directive.mjs +4 -3
  50. package/esm2022/form/step-input/step-input-decrement.directive.mjs +4 -3
  51. package/esm2022/form/step-input/step-input-increment.directive.mjs +4 -3
  52. package/esm2022/form/step-input/step-input.module.mjs +13 -35
  53. package/esm2022/form/switch/switch/switch.component.mjs +4 -3
  54. package/esm2022/form/switch/switch.module.mjs +5 -11
  55. package/esm2022/form/text-area/text-area.component.mjs +12 -11
  56. package/esm2022/form/text-area/text-area.module.mjs +5 -32
  57. package/esm2022/form/time-picker/time-picker.component.mjs +5 -5
  58. package/esm2022/form/time-picker/time-picker.module.mjs +5 -11
  59. package/esm2022/list/list.component.mjs +3 -3
  60. package/esm2022/search-field/search-field.component.mjs +3 -3
  61. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +18 -9
  62. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +8 -5
  63. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +18 -10
  64. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +22 -10
  65. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +5 -6
  66. package/esm2022/settings-generator/settings-generator.component.mjs +3 -3
  67. package/esm2022/settings-generator/settings-generator.module.mjs +12 -54
  68. package/esm2022/shared/form/base.input.mjs +43 -13
  69. package/esm2022/shared/form/form-field.mjs +1 -1
  70. package/esm2022/slider/slider.component.mjs +4 -4
  71. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +3 -3
  72. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +3 -3
  73. package/esm2022/split-menu-button/split-menu-button.component.mjs +3 -3
  74. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +3 -3
  75. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  76. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +1 -1
  77. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  78. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +11 -11
  79. package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
  80. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +5 -5
  81. package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
  82. package/esm2022/table/table.component.mjs +14 -5
  83. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +3 -3
  84. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +1 -1
  85. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -3
  86. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  87. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +41 -18
  88. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +20 -8
  89. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +10 -8
  90. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +5 -5
  91. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +12 -9
  92. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +5 -5
  93. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +4 -3
  94. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +4 -3
  95. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +4 -3
  96. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +4 -3
  97. package/esm2022/wizard-generator/wizard-generator.module.mjs +13 -56
  98. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +3 -3
  99. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-platform-form.mjs +541 -635
  101. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  102. package/fesm2022/fundamental-ngx-platform-list.mjs +2 -2
  103. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  104. package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
  105. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  106. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +69 -80
  107. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  108. package/fesm2022/fundamental-ngx-platform-shared.mjs +42 -12
  109. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  110. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  111. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +4 -4
  112. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  113. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  114. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  115. package/fesm2022/fundamental-ngx-platform-table.mjs +423 -414
  116. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  117. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
  118. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  119. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  120. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  121. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +1 -1
  122. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  123. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +226 -228
  124. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  125. package/form/auto-complete/auto-complete.directive.d.ts +1 -1
  126. package/form/auto-complete/auto-complete.module.d.ts +1 -2
  127. package/form/checkbox/checkbox.module.d.ts +2 -5
  128. package/form/checkbox-group/checkbox-group.module.d.ts +2 -4
  129. package/form/combobox/combobox/combobox.component.d.ts +1 -1
  130. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +1 -1
  131. package/form/combobox/combobox-mobile/combobox-mobile.module.d.ts +1 -5
  132. package/form/combobox/combobox.module.d.ts +1 -12
  133. package/form/combobox/commons/base-combobox.d.ts +2 -0
  134. package/form/form-group/fdp-form.module.d.ts +1 -9
  135. package/form/form-group/form-field/form-field.component.d.ts +12 -3
  136. package/form/form-group/form-field-error/form-field-error-description.directive.d.ts +1 -1
  137. package/form/form-group/form-field-error/form-field-error-heading.directive.d.ts +1 -1
  138. package/form/form-group/form-field-error/form-field-error.directive.d.ts +1 -1
  139. package/form/form-group/form-field-extras/form-field-extras.component.d.ts +1 -1
  140. package/form/form-group/form-field-group/form-field-group.component.d.ts +1 -1
  141. package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
  142. package/form/form-group/form-group.component.d.ts +1 -1
  143. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  144. package/form/input/fdp-input.module.d.ts +1 -6
  145. package/form/input/input.component.d.ts +1 -1
  146. package/form/input-group/addon-body.component.d.ts +1 -1
  147. package/form/input-group/addon.component.d.ts +1 -1
  148. package/form/input-group/input-group.component.d.ts +1 -1
  149. package/form/input-group/input-group.module.d.ts +1 -5
  150. package/form/input-group/input.component.d.ts +1 -1
  151. package/form/input-message-group-with-template/input-message-group-with-template.component.d.ts +1 -1
  152. package/form/multi-combobox/commons/base-multi-combobox.d.ts +2 -0
  153. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  154. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +1 -1
  155. package/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.d.ts +1 -6
  156. package/form/multi-combobox/multi-combobox.module.d.ts +1 -15
  157. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +1 -1
  158. package/form/multi-input/multi-input-mobile/multi-input-mobile.module.d.ts +1 -5
  159. package/form/multi-input/multi-input.component.d.ts +1 -1
  160. package/form/multi-input/multi-input.module.d.ts +1 -11
  161. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +1 -1
  162. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +1 -6
  163. package/form/radio-group/radio/radio.component.d.ts +1 -1
  164. package/form/radio-group/radio-group.component.d.ts +1 -1
  165. package/form/radio-group/radio-group.module.d.ts +1 -7
  166. package/form/select/option/option.component.d.ts +1 -1
  167. package/form/select/select/select.component.d.ts +3 -1
  168. package/form/select/select.module.d.ts +1 -12
  169. package/form/step-input/number/number-step-input.component.d.ts +1 -1
  170. package/form/step-input/step-input-control.directive.d.ts +1 -1
  171. package/form/step-input/step-input-decrement.directive.d.ts +1 -1
  172. package/form/step-input/step-input-increment.directive.d.ts +1 -1
  173. package/form/step-input/step-input.module.d.ts +1 -7
  174. package/form/switch/switch/switch.component.d.ts +1 -1
  175. package/form/switch/switch.module.d.ts +1 -6
  176. package/form/text-area/text-area.component.d.ts +1 -1
  177. package/form/text-area/text-area.module.d.ts +1 -7
  178. package/form/time-picker/time-picker.component.d.ts +1 -1
  179. package/form/time-picker/time-picker.module.d.ts +1 -6
  180. package/fundamental-ngx-platform-v0.46.0-rc.21.tgz +0 -0
  181. package/package.json +4 -4
  182. package/schematics/ng-add/index.js +1 -1
  183. package/settings-generator/controls/theme-selector-list/theme-selector-list.component.d.ts +2 -2
  184. package/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.d.ts +1 -1
  185. package/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.d.ts +1 -1
  186. package/settings-generator/settings-generator-content/settings-generator-content.component.d.ts +1 -1
  187. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  188. package/settings-generator/settings-generator.component.d.ts +1 -1
  189. package/settings-generator/settings-generator.module.d.ts +9 -20
  190. package/shared/form/base.input.d.ts +42 -27
  191. package/shared/form/form-field.d.ts +22 -7
  192. package/table/components/table-p13-dialog/table-p13-dialog.component.d.ts +7 -7
  193. package/table/components/table-toolbar/table-toolbar.component.d.ts +3 -3
  194. package/table/components/table-toolbar/table-toolbar.d.ts +4 -1
  195. package/table/table.component.d.ts +9 -3
  196. package/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.d.ts +5 -4
  197. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +1 -1
  198. package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -1
  199. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
  200. package/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.d.ts +1 -1
  201. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +1 -1
  202. package/wizard-generator/directives/wizard-generator-finish-button.directive.d.ts +1 -1
  203. package/wizard-generator/directives/wizard-generator-go-next-button.directive.d.ts +1 -1
  204. package/wizard-generator/directives/wizard-generator-review-button.directive.d.ts +1 -1
  205. package/wizard-generator/directives/wizard-generator-summary-step.directive.d.ts +1 -1
  206. package/wizard-generator/wizard-generator.module.d.ts +12 -24
  207. package/fundamental-ngx-platform-v0.46.0-rc.2.tgz +0 -0
@@ -97,12 +97,13 @@ export class StepInputControlDirective {
97
97
  e.preventDefault();
98
98
  }
99
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputControlDirective, deps: [{ token: i1.StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
100
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputControlDirective, selector: "[fdpStepInputControl]", host: { listeners: { "input": "onInput($event)", "change": "onChange()", "focus": "onFocus()", "blur": "onBlur()", "keydown": "onKeyDown($event)", "wheel": "onMouseWheel($event)" } }, ngImport: i0 }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputControlDirective, isStandalone: true, selector: "[fdpStepInputControl]", host: { listeners: { "input": "onInput($event)", "change": "onChange()", "focus": "onFocus()", "blur": "onBlur()", "keydown": "onKeyDown($event)", "wheel": "onMouseWheel($event)" } }, ngImport: i0 }); }
101
101
  }
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputControlDirective, decorators: [{
103
103
  type: Directive,
104
104
  args: [{
105
- selector: '[fdpStepInputControl]'
105
+ selector: '[fdpStepInputControl]',
106
+ standalone: true
106
107
  }]
107
108
  }], ctorParameters: function () { return [{ type: i1.StepInputComponent, decorators: [{
108
109
  type: SkipSelf
@@ -125,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
125
126
  type: HostListener,
126
127
  args: ['wheel', ['$event']]
127
128
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N0ZXAtaW5wdXQvc3RlcC1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxjQUFjO0lBQ2QsWUFBZ0MsU0FBNkI7UUFBN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0I7SUFBRyxDQUFDO0lBRWpFOzs7T0FHRztJQUVILE9BQU8sQ0FBQyxLQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQVcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUVILFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFFSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBRUgsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUVILFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUVILFlBQVksQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUMzRCxPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdCO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxDQUFRO1FBQ3ZCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0FuR1EseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtpQkFDcEM7OzBCQUdnQixRQUFROzRDQU9yQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVqQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsUUFBUTtnQkFhdEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBVXJCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNO2dCQVVwQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgUEFHRV9ET1dOLCBQQUdFX1VQLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdGVwSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2Uuc3RlcC1pbnB1dCc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgaXMgaW50ZW5kYW50IHRvIGJlIGEgYnJpZGdlIGJldHdlZW4gaW5wdXQgY29udHJvbCBhbmQgQmFzZVN0ZXBJbnB1dCBDb21wb25lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFN0ZXBJbnB1dENvbnRyb2xdJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGVwSW5wdXRDb250cm9sRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKEBTa2lwU2VsZigpIHByaXZhdGUgc3RlcElucHV0OiBTdGVwSW5wdXRDb21wb25lbnQpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIFwiaW5wdXRcIiBldmVudCB0byBrZWVwIHRyYWNrIG9mIHdoYXQgdXNlciBpcyBlbnRlcmluZ1xuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgICBvbklucHV0KGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdGVwSW5wdXQuY2FuQ2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSAoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5vbkVudGVyVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGUgXCJjaGFuZ2VcIiBldmVudCB0byBjb21taXQgZW50ZXJlZCB2YWx1ZVxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdGVwSW5wdXQuY2FuQ2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5jb21taXRFbnRlcmVkVmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIFwiZm9jdXNcIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZSBcImJsdXJcIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwSW5wdXQub25CbHVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZSBcImtleWRvd25cIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmluY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRE9XTl9BUlJPVykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmRlY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgUEFHRV9VUCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmxhcmdlU3RlcEluY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgUEFHRV9ET1dOKSkge1xuICAgICAgICAgICAgdGhpcy5zdGVwSW5wdXQubGFyZ2VTdGVwRGVjcmVhc2UoKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIG1vdXNlIHdoZWVsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICAgIG9uTW91c2VXaGVlbChldmVudDogV2hlZWxFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlIHx8ICF0aGlzLnN0ZXBJbnB1dC5mb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKGV2ZW50LmRlbHRhWSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmRlY3JlYXNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBJbnB1dC5pbmNyZWFzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE11dGUgZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9tdXRlRXZlbnQoZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N0ZXAtaW5wdXQvc3RlcC1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRXZEOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxjQUFjO0lBQ2QsWUFBZ0MsU0FBNkI7UUFBN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0I7SUFBRyxDQUFDO0lBRWpFOzs7T0FHRztJQUVILE9BQU8sQ0FBQyxLQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQVcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUVILFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFFSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBRUgsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUVILFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTztTQUNWO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUVILFlBQVksQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtZQUMzRCxPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdCO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxDQUFRO1FBQ3ZCLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0FuR1EseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFHZ0IsUUFBUTs0Q0FPckIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFlakMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFFBQVE7Z0JBYXRCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQVVyQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTTtnQkFVcEIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE0Qm5DLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPV05fQVJST1csIFBBR0VfRE9XTiwgUEFHRV9VUCwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgU3RlcElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLnN0ZXAtaW5wdXQnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIGludGVuZGFudCB0byBiZSBhIGJyaWRnZSBiZXR3ZWVuIGlucHV0IGNvbnRyb2wgYW5kIEJhc2VTdGVwSW5wdXQgQ29tcG9uZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBTdGVwSW5wdXRDb250cm9sXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwSW5wdXRDb250cm9sRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKEBTa2lwU2VsZigpIHByaXZhdGUgc3RlcElucHV0OiBTdGVwSW5wdXRDb21wb25lbnQpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIFwiaW5wdXRcIiBldmVudCB0byBrZWVwIHRyYWNrIG9mIHdoYXQgdXNlciBpcyBlbnRlcmluZ1xuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgICBvbklucHV0KGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdGVwSW5wdXQuY2FuQ2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSAoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5vbkVudGVyVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBIYW5kbGUgXCJjaGFuZ2VcIiBldmVudCB0byBjb21taXQgZW50ZXJlZCB2YWx1ZVxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScpXG4gICAgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zdGVwSW5wdXQuY2FuQ2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5jb21taXRFbnRlcmVkVmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIFwiZm9jdXNcIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5vbkZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZSBcImJsdXJcIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwSW5wdXQub25CbHVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZSBcImtleWRvd25cIiBldmVudFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmluY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRE9XTl9BUlJPVykpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmRlY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgUEFHRV9VUCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmxhcmdlU3RlcEluY3JlYXNlKCk7XG4gICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgUEFHRV9ET1dOKSkge1xuICAgICAgICAgICAgdGhpcy5zdGVwSW5wdXQubGFyZ2VTdGVwRGVjcmVhc2UoKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlIG1vdXNlIHdoZWVsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICAgIG9uTW91c2VXaGVlbChldmVudDogV2hlZWxFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlIHx8ICF0aGlzLnN0ZXBJbnB1dC5mb2N1c2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKGV2ZW50LmRlbHRhWSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcElucHV0LmRlY3JlYXNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBJbnB1dC5pbmNyZWFzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE11dGUgZXZlbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9tdXRlRXZlbnQoZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -21,14 +21,15 @@ export class StepInputDecrementDirective extends StepInputActionButton {
21
21
  this.stepInput.decrease();
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputDecrementDirective, deps: [{ token: i1.StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputDecrementDirective, selector: "[fdpStepInputDecrement]", usesInheritance: true, ngImport: i0 }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputDecrementDirective, isStandalone: true, selector: "[fdpStepInputDecrement]", usesInheritance: true, ngImport: i0 }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputDecrementDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
- selector: '[fdpStepInputDecrement]'
29
+ selector: '[fdpStepInputDecrement]',
30
+ standalone: true
30
31
  }]
31
32
  }], ctorParameters: function () { return [{ type: i1.StepInputComponent, decorators: [{
32
33
  type: SkipSelf
33
34
  }] }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1kZWNyZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vc3RlcC1pbnB1dC9zdGVwLWlucHV0LWRlY3JlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVuRTs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFDbEUsY0FBYztJQUNkLFlBQWdDLFNBQTZCO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBRG9CLGNBQVMsR0FBVCxTQUFTLENBQW9CO0lBRTdELENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FkUSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO2lCQUN0Qzs7MEJBR2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0ZXBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5zdGVwLWlucHV0JztcbmltcG9ydCB7IFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vc3RlcC1pbnB1dC1hY3Rpb24tYnV0dG9uJztcblxuLyoqXG4gKiBUaGlzIERpcmVjdGl2ZSBpcyB1c2VkIHRvIGJlIGFzc2lnbmVkIHRvIGRlY3JlbWVudCBidXR0b24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFN0ZXBJbnB1dERlY3JlbWVudF0nXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJbnB1dERlY3JlbWVudERpcmVjdGl2ZSBleHRlbmRzIFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIHN0ZXBJbnB1dDogU3RlcElucHV0Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjYW5IYW5kbGVBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcnVuQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5kZWNyZWFzZSgpO1xuICAgIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1kZWNyZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vc3RlcC1pbnB1dC9zdGVwLWlucHV0LWRlY3JlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVuRTs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFDbEUsY0FBYztJQUNkLFlBQWdDLFNBQTZCO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBRG9CLGNBQVMsR0FBVCxTQUFTLENBQW9CO0lBRTdELENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FkUSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdGVwSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2Uuc3RlcC1pbnB1dCc7XG5pbXBvcnQgeyBTdGVwSW5wdXRBY3Rpb25CdXR0b24gfSBmcm9tICcuL3N0ZXAtaW5wdXQtYWN0aW9uLWJ1dHRvbic7XG5cbi8qKlxuICogVGhpcyBEaXJlY3RpdmUgaXMgdXNlZCB0byBiZSBhc3NpZ25lZCB0byBkZWNyZW1lbnQgYnV0dG9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBTdGVwSW5wdXREZWNyZW1lbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJbnB1dERlY3JlbWVudERpcmVjdGl2ZSBleHRlbmRzIFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIHN0ZXBJbnB1dDogU3RlcElucHV0Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjYW5IYW5kbGVBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcnVuQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5kZWNyZWFzZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -21,14 +21,15 @@ export class StepInputIncrementDirective extends StepInputActionButton {
21
21
  this.stepInput.increase();
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputIncrementDirective, deps: [{ token: i1.StepInputComponent, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputIncrementDirective, selector: "[fdpStepInputIncrement]", usesInheritance: true, ngImport: i0 }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: StepInputIncrementDirective, isStandalone: true, selector: "[fdpStepInputIncrement]", usesInheritance: true, ngImport: i0 }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: StepInputIncrementDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
- selector: '[fdpStepInputIncrement]'
29
+ selector: '[fdpStepInputIncrement]',
30
+ standalone: true
30
31
  }]
31
32
  }], ctorParameters: function () { return [{ type: i1.StepInputComponent, decorators: [{
32
33
  type: SkipSelf
33
34
  }] }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1pbmNyZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vc3RlcC1pbnB1dC9zdGVwLWlucHV0LWluY3JlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVuRTs7R0FFRztBQUlILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFDbEUsY0FBYztJQUNkLFlBQWdDLFNBQTZCO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBRG9CLGNBQVMsR0FBVCxTQUFTLENBQW9CO0lBRTdELENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FkUSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO2lCQUN0Qzs7MEJBR2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0ZXBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5zdGVwLWlucHV0JztcbmltcG9ydCB7IFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vc3RlcC1pbnB1dC1hY3Rpb24tYnV0dG9uJztcblxuLyoqXG4gKiBUaGlzIERpcmVjdGl2ZSBpcyB1c2VkIHRvIGJlIGFzc2lnbmVkIHRvIGluY3JlbWVudCBidXR0b24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFN0ZXBJbnB1dEluY3JlbWVudF0nXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJbnB1dEluY3JlbWVudERpcmVjdGl2ZSBleHRlbmRzIFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIHN0ZXBJbnB1dDogU3RlcElucHV0Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjYW5IYW5kbGVBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcnVuQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5pbmNyZWFzZSgpO1xuICAgIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC1pbmNyZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vc3RlcC1pbnB1dC9zdGVwLWlucHV0LWluY3JlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVuRTs7R0FFRztBQUtILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFDbEUsY0FBYztJQUNkLFlBQWdDLFNBQTZCO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBRG9CLGNBQVMsR0FBVCxTQUFTLENBQW9CO0lBRTdELENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFFRCxjQUFjO0lBQ2QsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FkUSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdGVwSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2Uuc3RlcC1pbnB1dCc7XG5pbXBvcnQgeyBTdGVwSW5wdXRBY3Rpb25CdXR0b24gfSBmcm9tICcuL3N0ZXAtaW5wdXQtYWN0aW9uLWJ1dHRvbic7XG5cbi8qKlxuICogVGhpcyBEaXJlY3RpdmUgaXMgdXNlZCB0byBiZSBhc3NpZ25lZCB0byBpbmNyZW1lbnQgYnV0dG9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBTdGVwSW5wdXRJbmNyZW1lbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBJbnB1dEluY3JlbWVudERpcmVjdGl2ZSBleHRlbmRzIFN0ZXBJbnB1dEFjdGlvbkJ1dHRvbiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBwcml2YXRlIHN0ZXBJbnB1dDogU3RlcElucHV0Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjYW5IYW5kbGVBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc3RlcElucHV0LmNhbkNoYW5nZVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcnVuQWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBJbnB1dC5pbmNyZWFzZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,57 +1,35 @@
1
- import { FormsModule } from '@angular/forms';
2
1
  import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { ButtonModule } from '@fundamental-ngx/core/button';
5
- import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
6
- import { OnlyDigitsModule, PipeModule } from '@fundamental-ngx/cdk/utils';
7
2
  import { StepInputDecrementDirective } from './step-input-decrement.directive';
8
3
  import { StepInputIncrementDirective } from './step-input-increment.directive';
9
4
  import { StepInputControlDirective } from './step-input-control.directive';
10
5
  import { NumberStepInputComponent } from './number/number-step-input.component';
11
- import { FormInputMessageGroupModule, FormMessageModule } from '@fundamental-ngx/core/form';
12
6
  import * as i0 from "@angular/core";
13
7
  export class PlatformStepInputModule {
14
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, declarations: [StepInputDecrementDirective,
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, imports: [StepInputDecrementDirective,
16
10
  StepInputIncrementDirective,
17
11
  StepInputControlDirective,
18
- NumberStepInputComponent], imports: [CommonModule,
19
- FormsModule,
20
- PipeModule,
21
- ButtonModule,
22
- OnlyDigitsModule,
23
- FormInputMessageGroupModule,
24
- FormMessageModule,
25
- ContentDensityModule], exports: [NumberStepInputComponent, ContentDensityModule] }); }
26
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, imports: [CommonModule,
27
- FormsModule,
28
- PipeModule,
29
- ButtonModule,
30
- OnlyDigitsModule,
31
- FormInputMessageGroupModule,
32
- FormMessageModule,
33
- ContentDensityModule, ContentDensityModule] }); }
12
+ NumberStepInputComponent], exports: [StepInputDecrementDirective,
13
+ StepInputIncrementDirective,
14
+ StepInputControlDirective,
15
+ NumberStepInputComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, imports: [NumberStepInputComponent] }); }
34
17
  }
35
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformStepInputModule, decorators: [{
36
19
  type: NgModule,
37
20
  args: [{
38
21
  imports: [
39
- CommonModule,
40
- FormsModule,
41
- PipeModule,
42
- ButtonModule,
43
- OnlyDigitsModule,
44
- FormInputMessageGroupModule,
45
- FormMessageModule,
46
- ContentDensityModule
47
- ],
48
- declarations: [
49
22
  StepInputDecrementDirective,
50
23
  StepInputIncrementDirective,
51
24
  StepInputControlDirective,
52
25
  NumberStepInputComponent
53
26
  ],
54
- exports: [NumberStepInputComponent, ContentDensityModule]
27
+ exports: [
28
+ StepInputDecrementDirective,
29
+ StepInputIncrementDirective,
30
+ StepInputControlDirective,
31
+ NumberStepInputComponent
32
+ ]
55
33
  }]
56
34
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9zdGVwLWlucHV0L3N0ZXAtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQXFCNUYsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBUDVCLDJCQUEyQjtZQUMzQiwyQkFBMkI7WUFDM0IseUJBQXlCO1lBQ3pCLHdCQUF3QixhQWJ4QixZQUFZO1lBQ1osV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLDJCQUEyQjtZQUMzQixpQkFBaUI7WUFDakIsb0JBQW9CLGFBUWQsd0JBQXdCLEVBQUUsb0JBQW9COytHQUUvQyx1QkFBdUIsWUFqQjVCLFlBQVk7WUFDWixXQUFXO1lBQ1gsVUFBVTtZQUNWLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsMkJBQTJCO1lBQzNCLGlCQUFpQjtZQUNqQixvQkFBb0IsRUFRWSxvQkFBb0I7OzJGQUUvQyx1QkFBdUI7a0JBbkJuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjtxQkFDdkI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUM7aUJBQzVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgT25seURpZ2l0c01vZHVsZSwgUGlwZU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFN0ZXBJbnB1dERlY3JlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vc3RlcC1pbnB1dC1kZWNyZW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0ZXBJbnB1dEluY3JlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vc3RlcC1pbnB1dC1pbmNyZW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0ZXBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL3N0ZXAtaW5wdXQtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnVtYmVyU3RlcElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXIvbnVtYmVyLXN0ZXAtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dE1lc3NhZ2VHcm91cE1vZHVsZSwgRm9ybU1lc3NhZ2VNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBQaXBlTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIE9ubHlEaWdpdHNNb2R1bGUsXG4gICAgICAgIEZvcm1JbnB1dE1lc3NhZ2VHcm91cE1vZHVsZSxcbiAgICAgICAgRm9ybU1lc3NhZ2VNb2R1bGUsXG4gICAgICAgIENvbnRlbnREZW5zaXR5TW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU3RlcElucHV0RGVjcmVtZW50RGlyZWN0aXZlLFxuICAgICAgICBTdGVwSW5wdXRJbmNyZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIFN0ZXBJbnB1dENvbnRyb2xEaXJlY3RpdmUsXG4gICAgICAgIE51bWJlclN0ZXBJbnB1dENvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW051bWJlclN0ZXBJbnB1dENvbXBvbmVudCwgQ29udGVudERlbnNpdHlNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtU3RlcElucHV0TW9kdWxlIHt9XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvZm9ybS9zdGVwLWlucHV0L3N0ZXAtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8sdUJBQXVCOzhHQUF2Qix1QkFBdUI7K0dBQXZCLHVCQUF1QixZQVo1QiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLHlCQUF5QjtZQUN6Qix3QkFBd0IsYUFHeEIsMkJBQTJCO1lBQzNCLDJCQUEyQjtZQUMzQix5QkFBeUI7WUFDekIsd0JBQXdCOytHQUduQix1QkFBdUIsWUFUNUIsd0JBQXdCOzsyRkFTbkIsdUJBQXVCO2tCQWRuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6Qix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6Qix3QkFBd0I7cUJBQzNCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0ZXBJbnB1dERlY3JlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vc3RlcC1pbnB1dC1kZWNyZW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0ZXBJbnB1dEluY3JlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vc3RlcC1pbnB1dC1pbmNyZW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFN0ZXBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL3N0ZXAtaW5wdXQtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnVtYmVyU3RlcElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXIvbnVtYmVyLXN0ZXAtaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFN0ZXBJbnB1dERlY3JlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgU3RlcElucHV0SW5jcmVtZW50RGlyZWN0aXZlLFxuICAgICAgICBTdGVwSW5wdXRDb250cm9sRGlyZWN0aXZlLFxuICAgICAgICBOdW1iZXJTdGVwSW5wdXRDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU3RlcElucHV0RGVjcmVtZW50RGlyZWN0aXZlLFxuICAgICAgICBTdGVwSW5wdXRJbmNyZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIFN0ZXBJbnB1dENvbnRyb2xEaXJlY3RpdmUsXG4gICAgICAgIE51bWJlclN0ZXBJbnB1dENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1TdGVwSW5wdXRNb2R1bGUge31cbiJdfQ==
@@ -3,6 +3,7 @@ import { ControlContainer, NgControl, NgForm } from '@angular/forms';
3
3
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
4
4
  import { BaseInput, PlatformFormFieldControl, PlatformFormField } from '@fundamental-ngx/platform/shared';
5
5
  import { SwitchConfig } from './switch.config';
6
+ import { SwitchModule } from '@fundamental-ngx/core/switch';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/forms";
8
9
  import * as i2 from "./switch.config";
@@ -68,11 +69,11 @@ export class SwitchComponent extends BaseInput {
68
69
  this.switchChange.emit(event);
69
70
  }
70
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SwitchComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, skipSelf: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.SwitchConfig }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SwitchComponent, selector: "fdp-switch", inputs: { ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n", dependencies: [{ kind: "component", type: i3.SwitchComponent, selector: "fd-switch", inputs: ["activeText", "inactiveText", "disabled", "id", "name", "required", "checked", "semantic", "ariaLabel", "ariaLabelledBy"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SwitchComponent, isStandalone: true, selector: "fdp-switch", inputs: { ariaLabel: "ariaLabel", ariaLabelledby: "ariaLabelledby", semantic: "semantic" }, outputs: { switchChange: "switchChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n", dependencies: [{ kind: "ngmodule", type: SwitchModule }, { kind: "component", type: i3.SwitchComponent, selector: "fd-switch", inputs: ["activeText", "inactiveText", "disabled", "id", "name", "required", "checked", "semantic", "ariaLabel", "ariaLabelledBy"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
73
  }
73
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SwitchComponent, decorators: [{
74
75
  type: Component,
75
- args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n" }]
76
+ args: [{ selector: 'fdp-switch', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SwitchComponent, multi: true }], standalone: true, imports: [SwitchModule], template: "<fd-switch\n [id]=\"id\"\n [required]=\"required\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [semantic]=\"semantic\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledby\"\n [checked]=\"switchCurrentValue\"\n (checkedChange)=\"onValueChange($event)\"\n></fd-switch>\n" }]
76
77
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
77
78
  type: Optional
78
79
  }, {
@@ -112,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
112
113
  }], switchChange: [{
113
114
  type: Output
114
115
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFL0MsbUNBQW1DO0FBQ25DLE1BQU0sT0FBTyxpQkFBaUI7Q0FLN0I7QUFRRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBb0IxQywrQkFBK0I7SUFDL0IsSUFBSSxLQUFLLENBQUMsV0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQU9ELGNBQWM7SUFDZCxZQUNJLEVBQXFCLEVBQ3JCLFVBQXNCLEVBQ0YsU0FBb0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDaUIsU0FBNEIsRUFDcEIsV0FBcUMsRUFDMUYsYUFBMkI7UUFFckMsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFGekUsa0JBQWEsR0FBYixhQUFhLENBQWM7UUF6Q3pDLHVEQUF1RDtRQUV2RCxjQUFTLEdBQUcsY0FBYyxDQUFDO1FBRTNCLDREQUE0RDtRQUU1RCxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFckMscUNBQXFDO1FBRXJDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakI7OztXQUdHO1FBRU0saUJBQVksR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFVL0Y7O1dBRUc7UUFDSCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFjM0IsQ0FBQztJQUVELCtDQUErQztJQUMvQyxhQUFhLENBQUMsVUFBbUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUUzQix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0E5RVEsZUFBZSx3UEF3Q29CLGFBQWEseURBQ2IscUJBQXFCO2tHQXpDeEQsZUFBZSw0S0FGYixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLGlEQy9COUYsdVRBV0E7OzJGRHNCYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzswQkF1Q3JGLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BELFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCO3VFQXRDakUsU0FBUztzQkFEUixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBUUcsWUFBWTtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNraXBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxELCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlSW5wdXQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgUGxhdGZvcm1Gb3JtRmllbGQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NoYXJlZCc7XG5pbXBvcnQgeyBTd2l0Y2hDb25maWcgfSBmcm9tICcuL3N3aXRjaC5jb25maWcnO1xuXG4vKiogU3dpdGNoIGNoYW5nZSBldmVudCBpbnN0YW5jZSAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaENoYW5nZUV2ZW50IHtcbiAgICAvKiogVGhlIHNvdXJjZSBTd2l0Y2ggb2YgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogU3dpdGNoQ29tcG9uZW50O1xuICAgIC8qKiBUaGUgbmV3IGBwYXlsb2FkYCB2YWx1ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIHBheWxvYWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXN3aXRjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBTd2l0Y2hDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCB7XG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsID0gJ1N3aXRjaCBpbnB1dCc7XG5cbiAgICAvKiogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzd2l0Y2ggaXMgc2VtYW50aWMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbWFudGljID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBmaXJlZCB3aGVuIHRoZSBzdGF0ZSBvZiB0aGUgc3dpdGNoIGNoYW5nZXMuXG4gICAgICogKiRldmVudCogY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG5ldyBzdGF0ZSBvZiB0aGUgc3dpdGNoLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHN3aXRjaENoYW5nZTogRXZlbnRFbWl0dGVyPFN3aXRjaENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3dpdGNoQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKiogdmFsdWUgZm9yIHN3aXRjaCBjb250cm9sICovXG4gICAgc2V0IHZhbHVlKHNlbGVjdFZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShzZWxlY3RWYWx1ZSk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogdHJhY2tpbmcgc3dpdGNoIGN1cnJlbnQgdmFsdWVcbiAgICAgKi9cbiAgICBzd2l0Y2hDdXJyZW50VmFsdWUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgbmdGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEKSBmb3JtRmllbGQ6IFBsYXRmb3JtRm9ybUZpZWxkLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MKSBmb3JtQ29udHJvbDogUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLFxuICAgICAgICBwcm90ZWN0ZWQgX3N3aXRjaENvbmZpZzogU3dpdGNoQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgfVxuXG4gICAgLyoqIHVwZGF0ZSBjb250cm9sbGVyIG9uIHN3aXRjaCBzdGF0ZSBjaGFuZ2UgKi9cbiAgICBvblZhbHVlQ2hhbmdlKG1vZGVsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlTW9kZWwobW9kZWxWYWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3N3aXRjaDogb25WYWx1ZUNoYW5nZScpO1xuICAgIH1cblxuICAgIC8qKiB3cml0ZSB2YWx1ZSBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3IgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hDdXJyZW50VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB1cGRhdGUgbW9kZWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVNb2RlbChtb2RlbFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudChtb2RlbFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0byBlbWl0IGNoYW5nZSBldmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VFdmVudChtb2RlbFZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IFN3aXRjaENoYW5nZUV2ZW50KCk7XG4gICAgICAgIGV2ZW50LnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIGV2ZW50LnBheWxvYWQgPSBtb2RlbFZhbHVlO1xuXG4gICAgICAgIC8vIHNldHRpbmcgdmFsdWUsIGl0IHdpbGwgY2FsbCBzZXRWYWx1ZSgpXG4gICAgICAgIHRoaXMudmFsdWUgPSBtb2RlbFZhbHVlO1xuICAgICAgICB0aGlzLnN3aXRjaENoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZmQtc3dpdGNoXG4gICAgW2lkXT1cImlkXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3NlbWFudGljXT1cInNlbWFudGljXCJcbiAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICBbY2hlY2tlZF09XCJzd2l0Y2hDdXJyZW50VmFsdWVcIlxuICAgIChjaGVja2VkQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4+PC9mZC1zd2l0Y2g+XG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBRTVELG1DQUFtQztBQUNuQyxNQUFNLE9BQU8saUJBQWlCO0NBSzdCO0FBVUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsU0FBUztJQW9CMUMsK0JBQStCO0lBQy9CLElBQUksS0FBSyxDQUFDLFdBQWdCO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFPRCxjQUFjO0lBQ2QsWUFDSSxFQUFxQixFQUNyQixVQUFzQixFQUNGLFNBQW9CLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2lCLFNBQTRCLEVBQ3BCLFdBQXFDLEVBQzFGLGFBQTJCO1FBRXJDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRnpFLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBekN6Qyx1REFBdUQ7UUFFdkQsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUUzQiw0REFBNEQ7UUFFNUQsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBRXJDLHFDQUFxQztRQUVyQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCOzs7V0FHRztRQUVNLGlCQUFZLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBVS9GOztXQUVHO1FBQ0gsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO0lBYzNCLENBQUM7SUFFRCwrQ0FBK0M7SUFDL0MsYUFBYSxDQUFDLFVBQW1CO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUFDLFVBQW1CO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdEMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7UUFFM0IseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBOUVRLGVBQWUsd1BBd0NvQixhQUFhLHlEQUNiLHFCQUFxQjtrR0F6Q3hELGVBQWUsZ01BSmIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxpRENoQzlGLHVUQVdBLDJDRHVCYyxZQUFZOzsyRkFFYixlQUFlO2tCQVIzQixTQUFTOytCQUNJLFlBQVksbUJBRUwsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLGNBQzlFLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs7MEJBdUNsQixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQ3BCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjt1RUF0Q2pFLFNBQVM7c0JBRFIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQVFHLFlBQVk7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgU3dpdGNoQ29uZmlnIH0gZnJvbSAnLi9zd2l0Y2guY29uZmlnJztcbmltcG9ydCB7IFN3aXRjaE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zd2l0Y2gnO1xuXG4vKiogU3dpdGNoIGNoYW5nZSBldmVudCBpbnN0YW5jZSAqL1xuZXhwb3J0IGNsYXNzIFN3aXRjaENoYW5nZUV2ZW50IHtcbiAgICAvKiogVGhlIHNvdXJjZSBTd2l0Y2ggb2YgdGhlIGV2ZW50LiAqL1xuICAgIHNvdXJjZTogU3dpdGNoQ29tcG9uZW50O1xuICAgIC8qKiBUaGUgbmV3IGBwYXlsb2FkYCB2YWx1ZSBvZiB0aGUgc3dpdGNoLiAqL1xuICAgIHBheWxvYWQ6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXN3aXRjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHVzZUV4aXN0aW5nOiBTd2l0Y2hDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1N3aXRjaE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IHtcbiAgICAvKiogYXJpYS1sYWJlbCBhdHRyaWJ1dGUgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWwgPSAnU3dpdGNoIGlucHV0JztcblxuICAgIC8qKiBhcmlhLWxhYmVsbGVkYnkgYXR0cmlidXRlIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBzZW1hbnRpYyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VtYW50aWMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGZpcmVkIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSBzd2l0Y2ggY2hhbmdlcy5cbiAgICAgKiAqJGV2ZW50KiBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbmV3IHN0YXRlIG9mIHRoZSBzd2l0Y2guXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc3dpdGNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U3dpdGNoQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTd2l0Y2hDaGFuZ2VFdmVudD4oKTtcblxuICAgIC8qKiB2YWx1ZSBmb3Igc3dpdGNoIGNvbnRyb2wgKi9cbiAgICBzZXQgdmFsdWUoc2VsZWN0VmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHNlbGVjdFZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB0cmFja2luZyBzd2l0Y2ggY3VycmVudCB2YWx1ZVxuICAgICAqL1xuICAgIHN3aXRjaEN1cnJlbnRWYWx1ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgIHByb3RlY3RlZCBfc3dpdGNoQ29uZmlnOiBTd2l0Y2hDb25maWdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcbiAgICB9XG5cbiAgICAvKiogdXBkYXRlIGNvbnRyb2xsZXIgb24gc3dpdGNoIHN0YXRlIGNoYW5nZSAqL1xuICAgIG9uVmFsdWVDaGFuZ2UobW9kZWxWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVNb2RlbChtb2RlbFZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnc3dpdGNoOiBvblZhbHVlQ2hhbmdlJyk7XG4gICAgfVxuXG4gICAgLyoqIHdyaXRlIHZhbHVlIGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN3aXRjaEN1cnJlbnRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIHVwZGF0ZSBtb2RlbFxuICAgICAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZU1vZGVsKG1vZGVsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZW1pdENoYW5nZUV2ZW50KG1vZGVsVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRvIGVtaXQgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUV2ZW50KG1vZGVsVmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgU3dpdGNoQ2hhbmdlRXZlbnQoKTtcbiAgICAgICAgZXZlbnQuc291cmNlID0gdGhpcztcbiAgICAgICAgZXZlbnQucGF5bG9hZCA9IG1vZGVsVmFsdWU7XG5cbiAgICAgICAgLy8gc2V0dGluZyB2YWx1ZSwgaXQgd2lsbCBjYWxsIHNldFZhbHVlKClcbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vZGVsVmFsdWU7XG4gICAgICAgIHRoaXMuc3dpdGNoQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxmZC1zd2l0Y2hcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbc2VtYW50aWNdPVwic2VtYW50aWNcIlxuICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsbGVkQnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgIFtjaGVja2VkXT1cInN3aXRjaEN1cnJlbnRWYWx1ZVwiXG4gICAgKGNoZWNrZWRDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbj48L2ZkLXN3aXRjaD5cbiJdfQ==
@@ -1,22 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FormsModule } from '@angular/forms';
4
- import { SwitchModule } from '@fundamental-ngx/core/switch';
5
- import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
6
- import { PipeModule } from '@fundamental-ngx/cdk/utils';
7
2
  import { SwitchComponent } from './switch/switch.component';
8
3
  import * as i0 from "@angular/core";
9
4
  export class PlatformSwitchModule {
10
5
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, declarations: [SwitchComponent], imports: [CommonModule, FormsModule, SwitchModule, PipeModule, ContentDensityModule], exports: [SwitchComponent, ContentDensityModule] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, imports: [CommonModule, FormsModule, SwitchModule, PipeModule, ContentDensityModule, ContentDensityModule] }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, imports: [SwitchComponent], exports: [SwitchComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, imports: [SwitchComponent] }); }
13
8
  }
14
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: PlatformSwitchModule, decorators: [{
15
10
  type: NgModule,
16
11
  args: [{
17
- declarations: [SwitchComponent],
18
- imports: [CommonModule, FormsModule, SwitchModule, PipeModule, ContentDensityModule],
19
- exports: [SwitchComponent, ContentDensityModule]
12
+ imports: [SwitchComponent],
13
+ exports: [SwitchComponent]
20
14
  }]
21
15
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsaUJBSmQsZUFBZSxhQUNwQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsb0JBQW9CLGFBQ3pFLGVBQWUsRUFBRSxvQkFBb0I7K0dBRXRDLG9CQUFvQixZQUhuQixZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQ3hELG9CQUFvQjs7MkZBRXRDLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQztvQkFDcEYsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLG9CQUFvQixDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN3aXRjaE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zd2l0Y2gnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IFBpcGVNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTd2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTd2l0Y2hDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTd2l0Y2hNb2R1bGUsIFBpcGVNb2R1bGUsIENvbnRlbnREZW5zaXR5TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbU3dpdGNoQ29tcG9uZW50LCBDb250ZW50RGVuc2l0eU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1Td2l0Y2hNb2R1bGUge31cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3N3aXRjaC9zd2l0Y2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU01RCxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUhuQixlQUFlLGFBQ2YsZUFBZTsrR0FFaEIsb0JBQW9CLFlBSG5CLGVBQWU7OzJGQUdoQixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN3aXRjaENvbXBvbmVudCB9IGZyb20gJy4vc3dpdGNoL3N3aXRjaC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTd2l0Y2hDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtTd2l0Y2hDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtU3dpdGNoTW9kdWxlIHt9XG4iXX0=
@@ -1,17 +1,18 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Host, HostListener, Inject, Input, Optional, Self, SkipSelf, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { ControlContainer, NgControl, NgForm } from '@angular/forms';
2
+ import { ControlContainer, NgControl, NgForm, FormsModule } from '@angular/forms';
3
3
  import { BACKSPACE, DELETE } from '@angular/cdk/keycodes';
4
4
  import { KeyUtil } from '@fundamental-ngx/cdk/utils';
5
5
  import { BaseInput, PlatformFormFieldControl, PlatformFormField } from '@fundamental-ngx/platform/shared';
6
6
  import { TextAreaConfig } from './text-area.config';
7
7
  import { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';
8
+ import { NgIf } from '@angular/common';
9
+ import { FormControlModule } from '@fundamental-ngx/core/form';
10
+ import { FdTranslatePipe } from '@fundamental-ngx/i18n';
8
11
  import * as i0 from "@angular/core";
9
12
  import * as i1 from "@angular/forms";
10
13
  import * as i2 from "./text-area.config";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "@fundamental-ngx/core/form";
13
- import * as i5 from "@fundamental-ngx/i18n";
14
- import * as i6 from "@fundamental-ngx/platform/shared";
14
+ import * as i3 from "@fundamental-ngx/core/form";
15
+ import * as i4 from "@fundamental-ngx/platform/shared";
15
16
  const VALID_WRAP_TYPES = ['hard', 'soft', 'off'];
16
17
  /**
17
18
  * Textarea field implementation that is compliant with Platform's FormGroup/FormField design
@@ -271,13 +272,13 @@ export class TextAreaComponent extends BaseInput {
271
272
  }
272
273
  }
273
274
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextAreaComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.ControlContainer, optional: true, skipSelf: true }, { token: i1.NgForm, optional: true, skipSelf: true }, { token: FD_FORM_FIELD, host: true, optional: true, skipSelf: true }, { token: FD_FORM_FIELD_CONTROL, host: true, optional: true, skipSelf: true }, { token: i2.TextAreaConfig }], target: i0.ɵɵFactoryTarget.Component }); }
274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TextAreaComponent, selector: "fdp-textarea", inputs: { height: "height", growingMaxLines: "growingMaxLines", cols: "cols", wrapType: "wrapType", readonly: "readonly", maxLength: "maxLength", showExceededText: "showExceededText", growing: "growing", value: "value" }, host: { listeners: { "keyup": "handleBackPress($event)" } }, providers: [
275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TextAreaComponent, isStandalone: true, selector: "fdp-textarea", inputs: { height: "height", growingMaxLines: "growingMaxLines", cols: "cols", wrapType: "wrapType", readonly: "readonly", maxLength: "maxLength", showExceededText: "showExceededText", growing: "growing", value: "value" }, host: { listeners: { "keyup": "handleBackPress($event)" } }, providers: [
275
276
  {
276
277
  provide: FD_FORM_FIELD_CONTROL,
277
278
  useExisting: TextAreaComponent,
278
279
  multi: true
279
280
  }
280
- ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i4.TextareaFormControlDirective, selector: "textarea[fd-form-control]" }, { kind: "pipe", type: i5.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
281
+ ], viewQueries: [{ propertyName: "_textareaCounter", first: true, predicate: ["counter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormControlModule }, { kind: "component", type: i3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i3.TextareaFormControlDirective, selector: "textarea[fd-form-control]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
281
282
  }
282
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextAreaComponent, decorators: [{
283
284
  type: Component,
@@ -287,7 +288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
287
288
  useExisting: TextAreaComponent,
288
289
  multi: true
289
290
  }
290
- ], template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"] }]
291
+ ], standalone: true, imports: [FormControlModule, FormsModule, NgIf, FdTranslatePipe], template: "<textarea\n #inputElementRef\n fd-form-control\n [disabled]=\"disabled\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-describedby]=\"id + '-counter'\"\n [attr.aria-required]=\"required\"\n [attr.placeholder]=\"placeholder\"\n [attr.rows]=\"growing ? 2 : height ? 2 : growingMaxLines\"\n [attr.cols]=\"cols\"\n [attr.wrap]=\"wrapType\"\n [attr.maxlength]=\"!showExceededText ? maxLength : null\"\n [attr.readonly]=\"readonly ? true : null\"\n [(ngModel)]=\"value\"\n [state]=\"getUpdatedState()\"\n (paste)=\"handlePasteInteraction()\"\n (blur)=\"_onFocusChanged(false)\"\n (focus)=\"_onFocusChanged(true)\"\n></textarea>\n\n<!-- ICU recommends full text in format -->\n<div\n class=\"fd-textarea-counter\"\n *ngIf=\"showExceededText\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n [attr.id]=\"id + '-counter'\"\n #counter\n>\n <!-- render spaces instead of the actual value while translation string is loading in order to avoid content jumps -->\n <ng-container *ngIf=\"counterExcessOrRemaining === 'excess'; else charactersRemaining\">\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersOverTheLimitSingular'\n : 'platformTextarea.counterMessageCharactersOverTheLimitPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-container>\n <ng-template #charactersRemaining>\n <span\n [innerHtml]=\"\n (exceededCharCount === 1\n ? 'platformTextarea.counterMessageCharactersRemainingSingular'\n : 'platformTextarea.counterMessageCharactersRemainingPlural'\n ) | fdTranslate : { count: exceededCharCount } : '&nbsp;&nbsp;'\n \"\n ></span>\n </ng-template>\n</div>\n", styles: [".fd-textarea-counter{display:inline-block;width:100%}\n"] }]
291
292
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
292
293
  type: Optional
293
294
  }, {
@@ -300,7 +301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
300
301
  type: Optional
301
302
  }, {
302
303
  type: SkipSelf
303
- }] }, { type: i6.PlatformFormField, decorators: [{
304
+ }] }, { type: i4.PlatformFormField, decorators: [{
304
305
  type: Optional
305
306
  }, {
306
307
  type: SkipSelf
@@ -309,7 +310,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
309
310
  }, {
310
311
  type: Inject,
311
312
  args: [FD_FORM_FIELD]
312
- }] }, { type: i6.PlatformFormFieldControl, decorators: [{
313
+ }] }, { type: i4.PlatformFormFieldControl, decorators: [{
313
314
  type: Optional
314
315
  }, {
315
316
  type: SkipSelf
@@ -343,4 +344,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
343
344
  type: HostListener,
344
345
  args: ['keyup', ['$event']]
345
346
  }] } });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBRWxGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBSWpEOzs7R0FHRztBQWVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFTO0lBdUQ1Qzs7T0FFRztJQUNILElBQ0ksS0FBSyxDQUFD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QXFCO2dCQUM5QixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osOEpDL0NMLCs5REFxREE7OzJGREphLGlCQUFpQjtrQkFkN0IsU0FBUzsrQkFDSSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyxtQkFBbUI7NEJBQzlCLEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzswQkF3SEksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFDcEQsUUFBUTs7MEJBQUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7eUVBckhqRSxNQUFNO3NCQURMLEtBQUs7Z0JBUU4sZUFBZTtzQkFEZCxLQUFLO2dCQVFOLElBQUk7c0JBREgsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sUUFBUTtzQkFEUCxLQUFLO2dCQVNOLFNBQVM7c0JBRFIsS0FBSztnQkFTTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixPQUFPO3NCQUROLEtBQUs7Z0JBT0YsS0FBSztzQkFEUixLQUFLO2dCQWlCTixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxTQUFTO2dCQW1McEIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJBQ0tTUEFDRSwgREVMRVRFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuaW1wb3J0IHsgS2V5VXRpbCwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtU3RhdGVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUlucHV0LCBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsIFBsYXRmb3JtRm9ybUZpZWxkIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgVGV4dEFyZWFDb25maWcgfSBmcm9tICcuL3RleHQtYXJlYS5jb25maWcnO1xuaW1wb3J0IHsgRkRfRk9STV9GSUVMRCwgRkRfRk9STV9GSUVMRF9DT05UUk9MIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuXG5jb25zdCBWQUxJRF9XUkFQX1RZUEVTID0gWydoYXJkJywgJ3NvZnQnLCAnb2ZmJ107XG5cbmV4cG9ydCB0eXBlIFdyYXBUeXBlID0gJ2hhcmQnIHwgJ3NvZnQnIHwgJ29mZic7XG5cbi8qKlxuICogVGV4dGFyZWEgZmllbGQgaW1wbGVtZW50YXRpb24gdGhhdCBpcyBjb21wbGlhbnQgd2l0aCBQbGF0Zm9ybSdzIEZvcm1Hcm91cC9Gb3JtRmllbGQgZGVzaWduXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10ZXh0YXJlYScsXG4gICAgdGVtcGxhdGVVcmw6ICd0ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyd0ZXh0LWFyZWEuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGV4dEFyZWFDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIGhlaWdodCB0byB3aGljaCB0aGUgdGV4dGFyZWEgd2lsbCBncm93IHdoZW4gYGdyb3dpbmdgIGlzIHNldC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhlaWdodDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2Ygcm93cyB0aGF0IHdpbGwgYmUgdmlzaWJsZSB3aGVuIGBncm93aW5nYCBpcyBzZXQuXG4gICAgICogSWYgYm90aCBgZ3Jvd2luZ01heExpbmVzYCBhbmQgYGhlaWdodGAgYXJlIHByb3ZpZGVkLCBgaGVpZ2h0YCB2YWx1ZSB0YWtlcyBwcmVjZWRlbmNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ3Jvd2luZ01heExpbmVzOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhIGBjb2xzYCBhdHRyaWJ1dGUgd3JhcHBlZC0gdGhlIG51bWJlciBvZiBsZXR0ZXJzIHZpc2libGUgcGVyIGxpbmUuXG4gICAgICogSWYgd2lkdGggaXMgc2V0IHRvIGF1dG8sIHRoaXMgYXR0cmlidXRlIGhhcyBubyBlZmZlY3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2xzOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEgYHdyYXBgIGF0dHJpYnV0ZSAtIGNhbiBiZSBvbmUgb2YgdGhyZWU6ICdvZmYnLCAnaGFyZCcgb3IgJ3NvZnQnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgd3JhcFR5cGU6IFdyYXBUeXBlID0gJ3NvZnQnO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdGV4dGFyZWEgaXMgcmVhZG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQgdG8gZW50ZXIuXG4gICAgICogSWYgYHNob3dFeGNlZWRlZFRleHRgIGlzIGZhbHNlLCBgbWF4TGVuZ3RoYCBoYXMgbmF0aXZlIHRleHRhcmVhJ3MgYmVoYXZpb3Igb2YgZGlzYWxsb3dpbmcgdHlwaW5nIGJleW9uZCBgbWF4TGVuZ3RoYC5cbiAgICAgKiBJZiBgc2hvd0V4Y2VlZGVkVGV4dGAgaXMgdHJ1ZSwgdXNlciBpcyBhbGxvd2VkIHRvIHR5cGUgYmV5b25kIGBtYXhMZW5ndGhgLCBidXQgZXJyb3Igc3RhdGVzIGFuZCBjb3VudGVyIG1lc3NhZ2VzIHNob3dpbmdcbiAgICAgKiB0aGUgZXhjZWVkZWQgY291bnQgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF4TGVuZ3RoOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGNvdW50ZXIgbWVzc2FnZSBzaG91bGQgYmUgc2hvd24uXG4gICAgICogSWYgYHNob3dFeGNlZWRlZFRleHRgIGlzIGZhbHNlLCBubyBzdGF0ZSBjaGFuZ2VzIG9yIGVycm9yIG1lc3NhZ2VzIGFyZSBzaG93bi4gVXNlciBpcyBzaW1wbHkgbm90IGFsbG93ZWQgdG8gdHlwZVxuICAgICAqIGJleW9uZCB0aGUgYG1heExlbmd0aGAgY2hhcmFjdGVycy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFeGNlZWRlZFRleHQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhpcyB0ZXh0YXJlYSBjYW4gZ3Jvdy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdyb3dpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSdzIHZhbHVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHdoZW4gY3VzdG9tIHZhbHVlIG5vdCBzZXQsIHdlIHNob3VsZCBzZXQvcmVzZXQgY291bnRlciB0byBtYXhsZW5ndGggdmFsdWUgd2hlbiBpdCBiZWNvbWVzIHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMubWF4TGVuZ3RoID8gdGhpcy5tYXhMZW5ndGggOiAwO1xuICAgICAgICAgICAgLy8gcmVzZXQgc3RhdGUgYnkgcmVzZXR0aW5nIHZhbHVlXG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnY291bnRlcicpXG4gICAgX3RleHRhcmVhQ291bnRlcj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBoYXNUZXh0RXhjZWVkZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIGV4Y2VzcyBjaGFyYWN0ZXIgY291bnQgKi9cbiAgICBleGNlZWRlZENoYXJDb3VudCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBhIHN0cmluZyBwbGFjZWhvbGRlciB0aGF0IHRvZ2dsZXMgYmV0d2VlbiAncmVtYWluaW5nJyBhbmQgJ2V4Y2VzcycgZm9yIHRoZSBzZWxlY3QgSUNVIGV4cHJlc3Npb24gKi9cbiAgICBjb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSAncmVtYWluaW5nJztcblxuICAgIC8qKiBAaGlkZGVuIGZsYWcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW4gaW5pdGlhbCB2YWx1ZSBzZXQgKi9cbiAgICBpc1ZhbHVlQ3VzdG9tU2V0ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8qKiB0byBrZWVwIHRyYWNrIG9mIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0YXJlYSAqL1xuICAgIHByaXZhdGUgX3RleHRBcmVhQ2hhckNvdW50ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNQYXN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBmb3IgaTE4biBjb3VudGVyIG1lc3NhZ2UgdHJhbnNsYXRpb24gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbWFpbmluZ1RleHQgPSAncmVtYWluaW5nJztcbiAgICAvKiogZm9yIGkxOG4gY291bnRlciBtZXNzYWdlIHRyYW5zbGF0aW9uICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBleGNlc3NUZXh0ID0gJ2V4Y2Vzcyc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHNlZSBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wuZXh0cmFDb250ZW50SGVpZ2h0UHhcbiAgICAgKi9cbiAgICBnZXQgZXh0cmFDb250ZW50SGVpZ2h0UHgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRhcmVhQ291bnRlcj8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfc2hvdWxkVHJhY2tUZXh0TGltaXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heExlbmd0aCA+IDAgJiYgIXRoaXMuc2hvd0V4Y2VlZGVkVGV4dDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIEBJbmplY3QoRkRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTERfQ09OVFJPTCkgZm9ybUNvbnRyb2w6IFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgcHJvdGVjdGVkIF90ZXh0QXJlYUNvbmZpZzogVGV4dEFyZWFDb25maWdcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY2QsIGVsZW1lbnRSZWYsIG5nQ29udHJvbCwgY29udHJvbENvbnRhaW5lciwgbmdGb3JtLCBmb3JtRmllbGQsIGZvcm1Db250cm9sKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy53cmFwVHlwZSB8fCBWQUxJRF9XUkFQX1RZUEVTLmluZGV4T2YodGhpcy53cmFwVHlwZSkgPT09IC0xKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRleHRhcmVhIHdyYXAgdHlwZSAke3RoaXMud3JhcFR5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiBub3QgY3VzdG9tIHNldCwgc2V0IGNvdW50ZXIgdG8gbWF4IGxlbmd0aCB2YWx1ZSwgZWxzZSBpdCBjYWxjdWxhdGVzIHJlbWFpbmluZy9leGNlZWRlZCBjaGFyYWN0ZXJzLlxuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLm1heExlbmd0aCB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbHVlQ3VzdG9tU2V0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBzZXQgbWF4IGhlaWdodFxuICAgICAgICB0aGlzLl9zZXRNYXhIZWlnaHQoKTtcblxuICAgICAgICAvLyBkb24ndCBzZXQgYW55IGVycm9yIHN0YXRlIGlmIHdlIGFyZSBub3Qgc2hvd2luZyBjb3VudGVyIG1lc3NhZ2VcbiAgICAgICAgaWYgKCF0aGlzLl9zaG91bGRUcmFja1RleHRMaW1pdCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyB3aGVuIHZhbHVlIGlzIGN1c3RvbSBzZXQoaW5pdGlhbCB2YWx1ZSBpcyBwcmVzZW50KSwgdGhlIGhlaWdodHMgZG9uJ3QgZ2V0XG4gICAgICAgIC8vIHNldCB0byBzaG93IHRoZSBmdWxsIHRleHQgaW4gdGhlIG5nQWZ0ZXJWaWV3SW5pdCBpbW1lZGlhdGVseS4gdGhlcmVmb3JlLCB3ZSBjYWxsIGF1dG9Hcm93VGV4dEFyZWEgaW5cbiAgICAgICAgLy8gbmdBZnRlclZpZXdDaGVja2VkIGFuZCBkZXRlY3QgY2hhbmdlcyBhZ2Fpbi5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5pc1ZhbHVlQ3VzdG9tU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Hcm93VGV4dEFyZWEoKTsgLy8gaWYgYXBwbGljYWJsZSwgZ3JvdyB0aGUgdGV4dGFyZWEgd2hlbiB2YWx1ZSBpcyBjdXN0b20gc2V0XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd0ZXh0YXJlYTogbmdBZnRlclZpZXdDaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogd3JpdGUgdmFsdWUgZm9yIENvbnRyb2xWYWx1ZUFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUgPz8gJycpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvdW50ZXJJbnRlcmFjdGlvbnMoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndGV4dGFyZWE6IHdyaXRlVmFsdWUnKTtcbiAgICB9XG5cbiAgICAvKiogdXBkYXRlIHRoZSBjb3VudGVyIG1lc3NhZ2UgYW5kIHJlbGF0ZWQgaW50ZXJhY3Rpb25zICovXG4gICAgdXBkYXRlQ291bnRlckludGVyYWN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPSB0aGlzLnZhbHVlPy5sZW5ndGggPz8gMDtcblxuICAgICAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIG5ld2x5IGFkZGVkIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGl0ZXJhdGlvbiwgcmVtb3ZlIGlmIGlzc3VlIGZvdW5kXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlTGVuZ3RoT25DdXN0b21TZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBpZiBleGNlZWRlZCBtYXhsZW5ndGggd2hlbiBzZXQgYXMgYSB2YWx1ZSBpbiBjb2RlLCBoaWdobGlnaHQgdGhlIGV4Y2VlZGVkIHRleHQuICovXG4gICAgdmFsaWRhdGVMZW5ndGhPbkN1c3RvbVNldCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1Bhc3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHRoaXMubWF4TGVuZ3RoLCB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5leGNlc3NUZXh0O1xuICAgICAgICAgICAgdGhpcy5leGNlZWRlZENoYXJDb3VudCA9IHRoaXMuX3RleHRBcmVhQ2hhckNvdW50IC0gdGhpcy5tYXhMZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMucmVtYWluaW5nVGV4dDtcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLm1heExlbmd0aCAtIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNQYXN0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlIGV4Y2VlZGVkIG1heGxlbmd0aCBjYXNlIHdoZW4gdGV4dCBpcyBwYXN0ZWQgKi9cbiAgICBoYW5kbGVQYXN0ZUludGVyYWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Bhc3RlZCA9IHRydWU7XG5cbiAgICAgICAgLy8gV3JhcHBlZCBpbiB0aW1lb3V0IHRvIG1ha2Ugc2VsZWN0aW5nIHJhbmdlIHdvcmtpbmdcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNvdW50ZXJJbnRlcmFjdGlvbnMoKSk7XG4gICAgfVxuXG4gICAgLyoqIGhhbmRsZSBhdXRvIGdyb3dpbmcgb2YgdGV4dGFyZWEgKi9cbiAgICBhdXRvR3Jvd1RleHRBcmVhKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ncm93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICdpbmhlcml0JztcbiAgICAgICAgICAgIGNvbnN0IHRleHRhcmVhVG90YWxIZWlnaHQgPSB0aGlzLl9nZXRUZXh0YXJlYVRvdGFsSGVpZ2h0KCk7XG4gICAgICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSBwYXJzZUludCh0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLm1heEhlaWdodCBhcyBzdHJpbmcsIDEwKTtcbiAgICAgICAgICAgIGlmIChtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGV4dGFyZWFUb3RhbEhlaWdodCA8PSBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0YXJlYVRvdGFsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IG1heEhlaWdodCArICdweCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG5vIGJvdW5kIG1heCBoZWlnaHQsIGtlZXAgZ3Jvd2luZ1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWFUb3RhbEhlaWdodCArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgbGluZSBoZWlnaHQgb2YgdGV4dGFyZWFcbiAgICAgKi9cbiAgICBnZXRUZXh0YXJlYUxpbmVIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gR2V0IHRoZSBjb21wdXRlZCBzdHlsZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgIGlmICh0aGlzLl90YXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX3RhcmdldEVsZW1lbnQpO1xuXG4gICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGhlaWdodFxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JyksIDEwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMjA7IC8vIGRlZmF1bHQgbGluZSBoZWlnaHQgaWYgbm90aGluZyBpcyBkZWZpbmVkXG4gICAgfVxuXG4gICAgLyoqIHdoZW4gYmFja3ByZXNzIG9yIGRlbGV0ZSBrZXkgaXMgcHJlc3NlZCB3aGVuIHNob3dFeGNlZWRlZFRleHQgZmllbGQgaXMgbm90IHNldCwgc2ltcGx5IHJlbW92ZSBleGNlc3MgY2hhcmFjdGVycyxcbiAgICAvKiBlbHNlIGhhbmRsZSBhdXRvZ3JvdyBjYXNlXG4gICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlQmFja1ByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIGlmIG5vdCBzaG93aW5nIGV4Y2VlZGVkIHRleHQgbWVzc2FnZS9pbnRlcmFjdGlvbnMgb3IgZ3Jvd2luZywgYW5kIGN1c3RvbSB2YWx1ZSBzZXRcbiAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZykge1xuICAgICAgICAgICAgdGhpcy5hdXRvR3Jvd1RleHRBcmVhKCk7XG4gICAgICAgICAgICB0aGlzLmlzVmFsdWVDdXN0b21TZXQgPSBmYWxzZTsgLy8gc2V0IGl0IHRvIGZhbHNlIGZpcnN0IHRpbWUgaXQgY29tZXMgaGVyZVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmFja1RleHRMaW1pdCAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0RFTEVURSwgQkFDS1NQQUNFXSkpIHtcbiAgICAgICAgICAgIC8vIGZvciB0aGUgY3VzdG9tIHZhbHVlIHNldCBhbmQgc2hvd0V4Y2VlZGVkVGV4dD1mYWxzZSBjYXNlLCBvbiBhbnkga2V5IHByZXNzLCByZW1vdmUgZXhjZXNzIGNoYXJhY3RlcnNcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPSB0aGlzLnZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGV4dEFyZWFDaGFyQ291bnQgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZXhjZXNzIGNoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuc3Vic3RyaW5nKDAsIHRoaXMubWF4TGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1ZhbHVlQ3VzdG9tU2V0ID0gZmFsc2U7IC8vIHNpbmNlIHZhbHVlIGlzIG5vdyBjaGFuZ2VkLCBpdCBpcyBubyBsb25nZXIgY3VzdG9tIHNldFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdXBkYXRlZCBzdGF0ZSB3aGVuIGNoYXJhY3RlciBjb3VudCBicmVhY2hlcyBgbWF4TGVuZ3RoYFxuICAgICAqL1xuICAgIGdldFVwZGF0ZWRTdGF0ZSgpOiBGb3JtU3RhdGVzIHtcbiAgICAgICAgaWYgKHRoaXMuX2dldENvbnRlbnRMZW5ndGgoKSA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1RleHRFeGNlZWRlZCA9IHRydWU7IC8vIHNldCBmbGFnIGZvciBlcnJvciBtZXNzYWdlIHRvIGFsc28gY2hhbmdlIGFjY29yZGluZ2x5XG4gICAgICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMuZXhjZXNzVGV4dDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNUZXh0RXhjZWVkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLnJlbWFpbmluZ1RleHQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGU7IC8vIHJldHVybiBhbnkgb3RoZXIgZXJyb3JzIGZvdW5kIGJ5IHBhcmVudCBmb3JtIGZpZWxkXG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTmF0aXZlIGVsZW1lbnQgICovXG4gICAgZ2V0IF90YXJnZXRFbGVtZW50KCk6IEhUTUxUZXh0QXJlYUVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBnZXQgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dGFyZWEgY29udGVudCAqL1xuICAgIHByaXZhdGUgX2dldENvbnRlbnRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGNvbnRlbnRMZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLl90YXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gdGhpcy5fdGFyZ2V0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSB0aGlzLnZhbHVlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGVudExlbmd0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBnZXQgdGhlIHRvdGFsIGhlaWdodCBpbmNsdWRpbmcgYm9yZGVycyBhbmQgc2Nyb2xsIGhlaWdodCAqL1xuICAgIHByaXZhdGUgX2dldFRleHRhcmVhVG90YWxIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gR2V0IHRoZSBjb21wdXRlZCBzdHlsZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGFyZ2V0RWxlbWVudCk7XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgaGVpZ2h0XG4gICAgICAgIGNvbnN0IGhlaWdodCA9XG4gICAgICAgICAgICBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJyksIDEwKSArXG4gICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnNjcm9sbEhlaWdodCArXG4gICAgICAgICAgICBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItYm90dG9tLXdpZHRoJyksIDEwKTtcblxuICAgICAgICByZXR1cm4gaGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHNldCBpbml0aWFsIG1heCBoZWlnaHQgKiovXG4gICAgcHJpdmF0ZSBfc2V0TWF4SGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5ncm93aW5nICYmIHRoaXMuX3RhcmdldEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3dpbmdNYXhMaW5lcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gdGhpcy5ncm93aW5nTWF4TGluZXMgKiB0aGlzLmdldFRleHRhcmVhTGluZUhlaWdodCgpICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUubWF4SGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ncm93aW5nTWF4TGluZXMpIHtcbiAgICAgICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvIGhlcmUuIHJvd3MgYXR0cmlidXRlIHRha2VzIGNhcmUuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHRleHRhcmVhXG4gICAgI2lucHV0RWxlbWVudFJlZlxuICAgIGZkLWZvcm0tY29udHJvbFxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWNvdW50ZXInXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2F0dHIucm93c109XCJncm93aW5nID8gMiA6IGhlaWdodCA/IDIgOiBncm93aW5nTWF4TGluZXNcIlxuICAgIFthdHRyLmNvbHNdPVwiY29sc1wiXG4gICAgW2F0dHIud3JhcF09XCJ3cmFwVHlwZVwiXG4gICAgW2F0dHIubWF4bGVuZ3RoXT1cIiFzaG93RXhjZWVkZWRUZXh0ID8gbWF4TGVuZ3RoIDogbnVsbFwiXG4gICAgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW3N0YXRlXT1cImdldFVwZGF0ZWRTdGF0ZSgpXCJcbiAgICAocGFzdGUpPVwiaGFuZGxlUGFzdGVJbnRlcmFjdGlvbigpXCJcbiAgICAoYmx1cik9XCJfb25Gb2N1c0NoYW5nZWQoZmFsc2UpXCJcbiAgICAoZm9jdXMpPVwiX29uRm9jdXNDaGFuZ2VkKHRydWUpXCJcbj48L3RleHRhcmVhPlxuXG48IS0tIElDVSByZWNvbW1lbmRzIGZ1bGwgdGV4dCBpbiBmb3JtYXQgLS0+XG48ZGl2XG4gICAgY2xhc3M9XCJmZC10ZXh0YXJlYS1jb3VudGVyXCJcbiAgICAqbmdJZj1cInNob3dFeGNlZWRlZFRleHRcIlxuICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgYXJpYS1hdG9taWM9XCJ0cnVlXCJcbiAgICBbYXR0ci5pZF09XCJpZCArICctY291bnRlcidcIlxuICAgICNjb3VudGVyXG4+XG4gICAgPCEtLSByZW5kZXIgc3BhY2VzIGluc3RlYWQgb2YgdGhlIGFjdHVhbCB2YWx1ZSB3aGlsZSB0cmFuc2xhdGlvbiBzdHJpbmcgaXMgbG9hZGluZyBpbiBvcmRlciB0byBhdm9pZCBjb250ZW50IGp1bXBzIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPT09ICdleGNlc3MnOyBlbHNlIGNoYXJhY3RlcnNSZW1haW5pbmdcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiXG4gICAgICAgICAgICAgICAgKGV4Y2VlZGVkQ2hhckNvdW50ID09PSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzT3ZlclRoZUxpbWl0U2luZ3VsYXInXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVGV4dGFyZWEuY291bnRlck1lc3NhZ2VDaGFyYWN0ZXJzT3ZlclRoZUxpbWl0UGx1cmFsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGV4Y2VlZGVkQ2hhckNvdW50IH0gOiAnJm5ic3A7Jm5ic3A7J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2NoYXJhY3RlcnNSZW1haW5pbmc+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbaW5uZXJIdG1sXT1cIlxuICAgICAgICAgICAgICAgIChleGNlZWRlZENoYXJDb3VudCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc1JlbWFpbmluZ1Npbmd1bGFyJ1xuICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc1JlbWFpbmluZ1BsdXJhbCdcbiAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGUgOiB7IGNvdW50OiBleGNlZWRlZENoYXJDb3VudCB9IDogJyZuYnNwOyZuYnNwOydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9mb3JtL3RleHQtYXJlYS90ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2Zvcm0vdGV4dC1hcmVhL3RleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztB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QWlCTixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxTQUFTO2dCQW1McEIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0NvbnRyb2wsIE5nRm9ybSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCQUNLU1BBQ0UsIERFTEVURSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEtleVV0aWwsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VJbnB1dCwgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLCBQbGF0Zm9ybUZvcm1GaWVsZCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFRleHRBcmVhQ29uZmlnIH0gZnJvbSAnLi90ZXh0LWFyZWEuY29uZmlnJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQsIEZEX0ZPUk1fRklFTERfQ09OVFJPTCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2Zvcm1zJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuXG5jb25zdCBWQUxJRF9XUkFQX1RZUEVTID0gWydoYXJkJywgJ3NvZnQnLCAnb2ZmJ107XG5cbmV4cG9ydCB0eXBlIFdyYXBUeXBlID0gJ2hhcmQnIHwgJ3NvZnQnIHwgJ29mZic7XG5cbi8qKlxuICogVGV4dGFyZWEgZmllbGQgaW1wbGVtZW50YXRpb24gdGhhdCBpcyBjb21wbGlhbnQgd2l0aCBQbGF0Zm9ybSdzIEZvcm1Hcm91cC9Gb3JtRmllbGQgZGVzaWduXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10ZXh0YXJlYScsXG4gICAgdGVtcGxhdGVVcmw6ICd0ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWyd0ZXh0LWFyZWEuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9GT1JNX0ZJRUxEX0NPTlRST0wsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVGV4dEFyZWFDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3JtQ29udHJvbE1vZHVsZSwgRm9ybXNNb2R1bGUsIE5nSWYsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFRoZSBoZWlnaHQgdG8gd2hpY2ggdGhlIHRleHRhcmVhIHdpbGwgZ3JvdyB3aGVuIGBncm93aW5nYCBpcyBzZXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoZWlnaHQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCB3aWxsIGJlIHZpc2libGUgd2hlbiBgZ3Jvd2luZ2AgaXMgc2V0LlxuICAgICAqIElmIGJvdGggYGdyb3dpbmdNYXhMaW5lc2AgYW5kIGBoZWlnaHRgIGFyZSBwcm92aWRlZCwgYGhlaWdodGAgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdyb3dpbmdNYXhMaW5lczogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0YXJlYSBgY29sc2AgYXR0cmlidXRlIHdyYXBwZWQtIHRoZSBudW1iZXIgb2YgbGV0dGVycyB2aXNpYmxlIHBlciBsaW5lLlxuICAgICAqIElmIHdpZHRoIGlzIHNldCB0byBhdXRvLCB0aGlzIGF0dHJpYnV0ZSBoYXMgbm8gZWZmZWN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sczogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRleHRhcmVhIGB3cmFwYCBhdHRyaWJ1dGUgLSBjYW4gYmUgb25lIG9mIHRocmVlOiAnb2ZmJywgJ2hhcmQnIG9yICdzb2Z0Jy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHdyYXBUeXBlOiBXcmFwVHlwZSA9ICdzb2Z0JztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRleHRhcmVhIGlzIHJlYWRvbmx5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkIHRvIGVudGVyLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyBmYWxzZSwgYG1heExlbmd0aGAgaGFzIG5hdGl2ZSB0ZXh0YXJlYSdzIGJlaGF2aW9yIG9mIGRpc2FsbG93aW5nIHR5cGluZyBiZXlvbmQgYG1heExlbmd0aGAuXG4gICAgICogSWYgYHNob3dFeGNlZWRlZFRleHRgIGlzIHRydWUsIHVzZXIgaXMgYWxsb3dlZCB0byB0eXBlIGJleW9uZCBgbWF4TGVuZ3RoYCwgYnV0IGVycm9yIHN0YXRlcyBhbmQgY291bnRlciBtZXNzYWdlcyBzaG93aW5nXG4gICAgICogdGhlIGV4Y2VlZGVkIGNvdW50IGlzIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heExlbmd0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBjb3VudGVyIG1lc3NhZ2Ugc2hvdWxkIGJlIHNob3duLlxuICAgICAqIElmIGBzaG93RXhjZWVkZWRUZXh0YCBpcyBmYWxzZSwgbm8gc3RhdGUgY2hhbmdlcyBvciBlcnJvciBtZXNzYWdlcyBhcmUgc2hvd24uIFVzZXIgaXMgc2ltcGx5IG5vdCBhbGxvd2VkIHRvIHR5cGVcbiAgICAgKiBiZXlvbmQgdGhlIGBtYXhMZW5ndGhgIGNoYXJhY3RlcnMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RXhjZWVkZWRUZXh0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgdGV4dGFyZWEgY2FuIGdyb3cuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm93aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dGFyZWEncyB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB3aGVuIGN1c3RvbSB2YWx1ZSBub3Qgc2V0LCB3ZSBzaG91bGQgc2V0L3Jlc2V0IGNvdW50ZXIgdG8gbWF4bGVuZ3RoIHZhbHVlIHdoZW4gaXQgYmVjb21lcyB1bmRlZmluZWRcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLm1heExlbmd0aCA/IHRoaXMubWF4TGVuZ3RoIDogMDtcbiAgICAgICAgICAgIC8vIHJlc2V0IHN0YXRlIGJ5IHJlc2V0dGluZyB2YWx1ZVxuICAgICAgICAgICAgc3VwZXIuc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvdW50ZXInKVxuICAgIF90ZXh0YXJlYUNvdW50ZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGFzVGV4dEV4Y2VlZGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBleGNlc3MgY2hhcmFjdGVyIGNvdW50ICovXG4gICAgZXhjZWVkZWRDaGFyQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gYSBzdHJpbmcgcGxhY2Vob2xkZXIgdGhhdCB0b2dnbGVzIGJldHdlZW4gJ3JlbWFpbmluZycgYW5kICdleGNlc3MnIGZvciB0aGUgc2VsZWN0IElDVSBleHByZXNzaW9uICovXG4gICAgY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gJ3JlbWFpbmluZyc7XG5cbiAgICAvKiogQGhpZGRlbiBmbGFnIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFuIGluaXRpYWwgdmFsdWUgc2V0ICovXG4gICAgaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICAvKiogdG8ga2VlcCB0cmFjayBvZiBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dGFyZWEgKi9cbiAgICBwcml2YXRlIF90ZXh0QXJlYUNoYXJDb3VudCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUGFzdGVkID0gZmFsc2U7XG5cbiAgICAvKiogZm9yIGkxOG4gY291bnRlciBtZXNzYWdlIHRyYW5zbGF0aW9uICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW1haW5pbmdUZXh0ID0gJ3JlbWFpbmluZyc7XG4gICAgLyoqIGZvciBpMThuIGNvdW50ZXIgbWVzc2FnZSB0cmFuc2xhdGlvbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhjZXNzVGV4dCA9ICdleGNlc3MnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBzZWUgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sLmV4dHJhQ29udGVudEhlaWdodFB4XG4gICAgICovXG4gICAgZ2V0IGV4dHJhQ29udGVudEhlaWdodFB4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0YXJlYUNvdW50ZXI/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3Nob3VsZFRyYWNrVGV4dExpbWl0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhMZW5ndGggPiAwICYmICF0aGlzLnNob3dFeGNlZWRlZFRleHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBuZ0Zvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgQEhvc3QoKSBASW5qZWN0KEZEX0ZPUk1fRklFTEQpIGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBIb3N0KCkgQEluamVjdChGRF9GT1JNX0ZJRUxEX0NPTlRST0wpIGZvcm1Db250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wsXG4gICAgICAgIHByb3RlY3RlZCBfdGV4dEFyZWFDb25maWc6IFRleHRBcmVhQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNkLCBlbGVtZW50UmVmLCBuZ0NvbnRyb2wsIGNvbnRyb2xDb250YWluZXIsIG5nRm9ybSwgZm9ybUZpZWxkLCBmb3JtQ29udHJvbCk7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMud3JhcFR5cGUgfHwgVkFMSURfV1JBUF9UWVBFUy5pbmRleE9mKHRoaXMud3JhcFR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZXh0YXJlYSB3cmFwIHR5cGUgJHt0aGlzLndyYXBUeXBlfSBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgbm90IGN1c3RvbSBzZXQsIHNldCBjb3VudGVyIHRvIG1heCBsZW5ndGggdmFsdWUsIGVsc2UgaXQgY2FsY3VsYXRlcyByZW1haW5pbmcvZXhjZWVkZWQgY2hhcmFjdGVycy5cbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0IG1heCBoZWlnaHRcbiAgICAgICAgdGhpcy5fc2V0TWF4SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gZG9uJ3Qgc2V0IGFueSBlcnJvciBzdGF0ZSBpZiB3ZSBhcmUgbm90IHNob3dpbmcgY291bnRlciBtZXNzYWdlXG4gICAgICAgIGlmICghdGhpcy5fc2hvdWxkVHJhY2tUZXh0TGltaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gd2hlbiB2YWx1ZSBpcyBjdXN0b20gc2V0KGluaXRpYWwgdmFsdWUgaXMgcHJlc2VudCksIHRoZSBoZWlnaHRzIGRvbid0IGdldFxuICAgICAgICAvLyBzZXQgdG8gc2hvdyB0aGUgZnVsbCB0ZXh0IGluIHRoZSBuZ0FmdGVyVmlld0luaXQgaW1tZWRpYXRlbHkuIHRoZXJlZm9yZSwgd2UgY2FsbCBhdXRvR3Jvd1RleHRBcmVhIGluXG4gICAgICAgIC8vIG5nQWZ0ZXJWaWV3Q2hlY2tlZCBhbmQgZGV0ZWN0IGNoYW5nZXMgYWdhaW4uXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCkge1xuICAgICAgICAgICAgdGhpcy5hdXRvR3Jvd1RleHRBcmVhKCk7IC8vIGlmIGFwcGxpY2FibGUsIGdyb3cgdGhlIHRleHRhcmVhIHdoZW4gdmFsdWUgaXMgY3VzdG9tIHNldFxuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndGV4dGFyZWE6IG5nQWZ0ZXJWaWV3Q2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIHdyaXRlIHZhbHVlIGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlID8/ICcnKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3RleHRhcmVhOiB3cml0ZVZhbHVlJyk7XG4gICAgfVxuXG4gICAgLyoqIHVwZGF0ZSB0aGUgY291bnRlciBtZXNzYWdlIGFuZCByZWxhdGVkIGludGVyYWN0aW9ucyAqL1xuICAgIHVwZGF0ZUNvdW50ZXJJbnRlcmFjdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID0gdGhpcy52YWx1ZT8ubGVuZ3RoID8/IDA7XG5cbiAgICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBuZXdseSBhZGRlZCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBpdGVyYXRpb24sIHJlbW92ZSBpZiBpc3N1ZSBmb3VuZFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUxlbmd0aE9uQ3VzdG9tU2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogaWYgZXhjZWVkZWQgbWF4bGVuZ3RoIHdoZW4gc2V0IGFzIGEgdmFsdWUgaW4gY29kZSwgaGlnaGxpZ2h0IHRoZSBleGNlZWRlZCB0ZXh0LiAqL1xuICAgIHZhbGlkYXRlTGVuZ3RoT25DdXN0b21TZXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNQYXN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZSh0aGlzLm1heExlbmd0aCwgdGhpcy5fdGV4dEFyZWFDaGFyQ291bnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXJFeGNlc3NPclJlbWFpbmluZyA9IHRoaXMuZXhjZXNzVGV4dDtcbiAgICAgICAgICAgIHRoaXMuZXhjZWVkZWRDaGFyQ291bnQgPSB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudCAtIHRoaXMubWF4TGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLnJlbWFpbmluZ1RleHQ7XG4gICAgICAgICAgICB0aGlzLmV4Y2VlZGVkQ2hhckNvdW50ID0gdGhpcy5tYXhMZW5ndGggLSB0aGlzLl90ZXh0QXJlYUNoYXJDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lzUGFzdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIGhhbmRsZSBleGNlZWRlZCBtYXhsZW5ndGggY2FzZSB3aGVuIHRleHQgaXMgcGFzdGVkICovXG4gICAgaGFuZGxlUGFzdGVJbnRlcmFjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNQYXN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIFdyYXBwZWQgaW4gdGltZW91dCB0byBtYWtlIHNlbGVjdGluZyByYW5nZSB3b3JraW5nXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDb3VudGVySW50ZXJhY3Rpb25zKCkpO1xuICAgIH1cblxuICAgIC8qKiBoYW5kbGUgYXV0byBncm93aW5nIG9mIHRleHRhcmVhICovXG4gICAgYXV0b0dyb3dUZXh0QXJlYSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZykge1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnaW5oZXJpdCc7XG4gICAgICAgICAgICBjb25zdCB0ZXh0YXJlYVRvdGFsSGVpZ2h0ID0gdGhpcy5fZ2V0VGV4dGFyZWFUb3RhbEhlaWdodCgpO1xuICAgICAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gcGFyc2VJbnQodGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5tYXhIZWlnaHQgYXMgc3RyaW5nLCAxMCk7XG4gICAgICAgICAgICBpZiAobWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRleHRhcmVhVG90YWxIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWFUb3RhbEhlaWdodCArICdweCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBtYXhIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBubyBib3VuZCBtYXggaGVpZ2h0LCBrZWVwIGdyb3dpbmdcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRhcmVhVG90YWxIZWlnaHQgKyAncHgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IGxpbmUgaGVpZ2h0IG9mIHRleHRhcmVhXG4gICAgICovXG4gICAgZ2V0VGV4dGFyZWFMaW5lSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcHV0ZWQgc3R5bGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90YXJnZXRFbGVtZW50KTtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBoZWlnaHRcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCdsaW5lLWhlaWdodCcpLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDIwOyAvLyBkZWZhdWx0IGxpbmUgaGVpZ2h0IGlmIG5vdGhpbmcgaXMgZGVmaW5lZFxuICAgIH1cblxuICAgIC8qKiB3aGVuIGJhY2twcmVzcyBvciBkZWxldGUga2V5IGlzIHByZXNzZWQgd2hlbiBzaG93RXhjZWVkZWRUZXh0IGZpZWxkIGlzIG5vdCBzZXQsIHNpbXBseSByZW1vdmUgZXhjZXNzIGNoYXJhY3RlcnMsXG4gICAgLyogZWxzZSBoYW5kbGUgYXV0b2dyb3cgY2FzZVxuICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUJhY2tQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBpZiBub3Qgc2hvd2luZyBleGNlZWRlZCB0ZXh0IG1lc3NhZ2UvaW50ZXJhY3Rpb25zIG9yIGdyb3dpbmcsIGFuZCBjdXN0b20gdmFsdWUgc2V0XG4gICAgICAgIGlmICh0aGlzLmdyb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b0dyb3dUZXh0QXJlYSgpO1xuICAgICAgICAgICAgdGhpcy5pc1ZhbHVlQ3VzdG9tU2V0ID0gZmFsc2U7IC8vIHNldCBpdCB0byBmYWxzZSBmaXJzdCB0aW1lIGl0IGNvbWVzIGhlcmVcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJhY2tUZXh0TGltaXQgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtERUxFVEUsIEJBQ0tTUEFDRV0pKSB7XG4gICAgICAgICAgICAvLyBmb3IgdGhlIGN1c3RvbSB2YWx1ZSBzZXQgYW5kIHNob3dFeGNlZWRlZFRleHQ9ZmFsc2UgY2FzZSwgb24gYW55IGtleSBwcmVzcywgcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RleHRBcmVhQ2hhckNvdW50ID4gdGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGV4Y2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnN1YnN0cmluZygwLCB0aGlzLm1heExlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNWYWx1ZUN1c3RvbVNldCA9IGZhbHNlOyAvLyBzaW5jZSB2YWx1ZSBpcyBub3cgY2hhbmdlZCwgaXQgaXMgbm8gbG9uZ2VyIGN1c3RvbSBzZXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgdGhlIHVwZGF0ZWQgc3RhdGUgd2hlbiBjaGFyYWN0ZXIgY291bnQgYnJlYWNoZXMgYG1heExlbmd0aGBcbiAgICAgKi9cbiAgICBnZXRVcGRhdGVkU3RhdGUoKTogRm9ybVN0YXRlcyB7XG4gICAgICAgIGlmICh0aGlzLl9nZXRDb250ZW50TGVuZ3RoKCkgPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5oYXNUZXh0RXhjZWVkZWQgPSB0cnVlOyAvLyBzZXQgZmxhZyBmb3IgZXJyb3IgbWVzc2FnZSB0byBhbHNvIGNoYW5nZSBhY2NvcmRpbmdseVxuICAgICAgICAgICAgdGhpcy5jb3VudGVyRXhjZXNzT3JSZW1haW5pbmcgPSB0aGlzLmV4Y2Vzc1RleHQ7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzVGV4dEV4Y2VlZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID0gdGhpcy5yZW1haW5pbmdUZXh0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlOyAvLyByZXR1cm4gYW55IG90aGVyIGVycm9ycyBmb3VuZCBieSBwYXJlbnQgZm9ybSBmaWVsZFxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE5hdGl2ZSBlbGVtZW50ICAqL1xuICAgIGdldCBfdGFyZ2V0RWxlbWVudCgpOiBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZ2V0IHRoZSBsZW5ndGggb2YgdGhlIHRleHRhcmVhIGNvbnRlbnQgKi9cbiAgICBwcml2YXRlIF9nZXRDb250ZW50TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBjb250ZW50TGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5fdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMuX3RhcmdldEVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gdGhpcy52YWx1ZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRMZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZ2V0IHRoZSB0b3RhbCBoZWlnaHQgaW5jbHVkaW5nIGJvcmRlcnMgYW5kIHNjcm9sbCBoZWlnaHQgKi9cbiAgICBwcml2YXRlIF9nZXRUZXh0YXJlYVRvdGFsSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcHV0ZWQgc3R5bGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX3RhcmdldEVsZW1lbnQpO1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGhlaWdodFxuICAgICAgICBjb25zdCBoZWlnaHQgPVxuICAgICAgICAgICAgcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLCAxMCkgK1xuICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zY3JvbGxIZWlnaHQgK1xuICAgICAgICAgICAgcGFyc2VJbnQoY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLCAxMCk7XG5cbiAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBzZXQgaW5pdGlhbCBtYXggaGVpZ2h0ICoqL1xuICAgIHByaXZhdGUgX3NldE1heEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZyAmJiB0aGlzLl90YXJnZXRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ncm93aW5nTWF4TGluZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLm1heEhlaWdodCA9IHRoaXMuZ3Jvd2luZ01heExpbmVzICogdGhpcy5nZXRUZXh0YXJlYUxpbmVIZWlnaHQoKSArICdweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRFbGVtZW50LnN0eWxlLm1heEhlaWdodCA9IHRoaXMuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3Jvd2luZ01heExpbmVzKSB7XG4gICAgICAgICAgICAgICAgLy8gbm90aGluZyB0byBkbyBoZXJlLiByb3dzIGF0dHJpYnV0ZSB0YWtlcyBjYXJlLlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx0ZXh0YXJlYVxuICAgICNpbnB1dEVsZW1lbnRSZWZcbiAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1jb3VudGVyJ1wiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLnJvd3NdPVwiZ3Jvd2luZyA/IDIgOiBoZWlnaHQgPyAyIDogZ3Jvd2luZ01heExpbmVzXCJcbiAgICBbYXR0ci5jb2xzXT1cImNvbHNcIlxuICAgIFthdHRyLndyYXBdPVwid3JhcFR5cGVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCIhc2hvd0V4Y2VlZGVkVGV4dCA/IG1heExlbmd0aCA6IG51bGxcIlxuICAgIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtzdGF0ZV09XCJnZXRVcGRhdGVkU3RhdGUoKVwiXG4gICAgKHBhc3RlKT1cImhhbmRsZVBhc3RlSW50ZXJhY3Rpb24oKVwiXG4gICAgKGJsdXIpPVwiX29uRm9jdXNDaGFuZ2VkKGZhbHNlKVwiXG4gICAgKGZvY3VzKT1cIl9vbkZvY3VzQ2hhbmdlZCh0cnVlKVwiXG4+PC90ZXh0YXJlYT5cblxuPCEtLSBJQ1UgcmVjb21tZW5kcyBmdWxsIHRleHQgaW4gZm9ybWF0IC0tPlxuPGRpdlxuICAgIGNsYXNzPVwiZmQtdGV4dGFyZWEtY291bnRlclwiXG4gICAgKm5nSWY9XCJzaG93RXhjZWVkZWRUZXh0XCJcbiAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXG4gICAgW2F0dHIuaWRdPVwiaWQgKyAnLWNvdW50ZXInXCJcbiAgICAjY291bnRlclxuPlxuICAgIDwhLS0gcmVuZGVyIHNwYWNlcyBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgdmFsdWUgd2hpbGUgdHJhbnNsYXRpb24gc3RyaW5nIGlzIGxvYWRpbmcgaW4gb3JkZXIgdG8gYXZvaWQgY29udGVudCBqdW1wcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY291bnRlckV4Y2Vzc09yUmVtYWluaW5nID09PSAnZXhjZXNzJzsgZWxzZSBjaGFyYWN0ZXJzUmVtYWluaW5nXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbaW5uZXJIdG1sXT1cIlxuICAgICAgICAgICAgICAgIChleGNlZWRlZENoYXJDb3VudCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc092ZXJUaGVMaW1pdFNpbmd1bGFyJ1xuICAgICAgICAgICAgICAgICAgICA6ICdwbGF0Zm9ybVRleHRhcmVhLmNvdW50ZXJNZXNzYWdlQ2hhcmFjdGVyc092ZXJUaGVMaW1pdFBsdXJhbCdcbiAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGUgOiB7IGNvdW50OiBleGNlZWRlZENoYXJDb3VudCB9IDogJyZuYnNwOyZuYnNwOydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjaGFyYWN0ZXJzUmVtYWluaW5nPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJcbiAgICAgICAgICAgICAgICAoZXhjZWVkZWRDaGFyQ291bnQgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdTaW5ndWxhcidcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1UZXh0YXJlYS5jb3VudGVyTWVzc2FnZUNoYXJhY3RlcnNSZW1haW5pbmdQbHVyYWwnXG4gICAgICAgICAgICAgICAgKSB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZXhjZWVkZWRDaGFyQ291bnQgfSA6ICcmbmJzcDsmbmJzcDsnXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==