@sebgroup/green-angular 4.6.1 → 4.6.3

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 (189) hide show
  1. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +9 -9
  2. package/esm2022/src/v-angular/button/button.component.mjs +5 -5
  3. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +5 -5
  4. package/esm2022/src/v-angular/core/core.globals.mjs +3 -3
  5. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
  6. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +4 -1
  7. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +5 -5
  8. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  9. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
  10. package/esm2022/src/v-angular/input/input.component.mjs +7 -7
  11. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +5 -4
  12. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +8 -8
  13. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +16 -16
  14. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +3 -3
  15. package/esm2022/src/v-angular/modal/modal.globals.mjs +3 -3
  16. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +15 -15
  17. package/esm2022/src/v-angular/textarea/textarea.component.mjs +4 -3
  18. package/esm2022/src/v-angular/textarea/textarea.module.mjs +5 -4
  19. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +13 -13
  20. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +287 -0
  21. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +17 -0
  22. package/esm2022/v-angular/base-control-value-accessor/index.mjs +3 -0
  23. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +25 -0
  24. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +20 -0
  25. package/esm2022/v-angular/breadcrumbs/index.mjs +3 -0
  26. package/esm2022/v-angular/button/button.component.mjs +108 -0
  27. package/esm2022/v-angular/button/button.module.mjs +20 -0
  28. package/esm2022/v-angular/button/index.mjs +3 -0
  29. package/esm2022/v-angular/card/card.component.mjs +11 -0
  30. package/esm2022/v-angular/card/card.module.mjs +18 -0
  31. package/esm2022/v-angular/card/index.mjs +3 -0
  32. package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +51 -0
  33. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +18 -0
  34. package/esm2022/v-angular/character-countdown/index.mjs +3 -0
  35. package/esm2022/v-angular/checkbox/checkbox.component.mjs +72 -0
  36. package/esm2022/v-angular/checkbox/checkbox.module.mjs +19 -0
  37. package/esm2022/v-angular/checkbox/index.mjs +3 -0
  38. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +256 -0
  39. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +2 -0
  40. package/esm2022/v-angular/dropdown/dropdown.component.mjs +239 -0
  41. package/esm2022/v-angular/dropdown/dropdown.module.mjs +22 -0
  42. package/esm2022/v-angular/dropdown/index.mjs +6 -0
  43. package/esm2022/v-angular/dropdown/typeahead/index.mjs +6 -0
  44. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +98 -0
  45. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +85 -0
  46. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +132 -0
  47. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +177 -0
  48. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +33 -0
  49. package/esm2022/v-angular/i18n/i18n.json +12 -0
  50. package/esm2022/v-angular/i18n/i18n.module.mjs +83 -0
  51. package/esm2022/v-angular/i18n/i18n.test.module.mjs +89 -0
  52. package/esm2022/v-angular/i18n/index.mjs +3 -0
  53. package/esm2022/v-angular/index.mjs +18 -0
  54. package/esm2022/v-angular/info-circle/index.mjs +3 -0
  55. package/esm2022/v-angular/info-circle/info-circle.component.mjs +28 -0
  56. package/esm2022/v-angular/info-circle/info-circle.module.mjs +21 -0
  57. package/esm2022/v-angular/input/index.mjs +3 -0
  58. package/esm2022/v-angular/input/input.component.mjs +221 -0
  59. package/esm2022/v-angular/input/input.module.mjs +32 -0
  60. package/esm2022/v-angular/input-mask/config.mjs +9 -0
  61. package/esm2022/v-angular/input-mask/constants.mjs +2 -0
  62. package/esm2022/v-angular/input-mask/index.mjs +6 -0
  63. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +21 -0
  64. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +165 -0
  65. package/esm2022/v-angular/input-mask/input-mask.module.mjs +35 -0
  66. package/esm2022/v-angular/input-mask/input-mask.types.mjs +2 -0
  67. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +190 -0
  68. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +56 -0
  69. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +19 -0
  70. package/esm2022/v-angular/modal/index.mjs +6 -0
  71. package/esm2022/v-angular/modal/modal.globals.mjs +20 -0
  72. package/esm2022/v-angular/modal/modal.module.mjs +40 -0
  73. package/esm2022/v-angular/modal/modal.types.mjs +2 -0
  74. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +229 -0
  75. package/esm2022/v-angular/radio/index.mjs +3 -0
  76. package/esm2022/v-angular/radio/radio.component.mjs +130 -0
  77. package/esm2022/v-angular/radio/radio.module.mjs +20 -0
  78. package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +5 -0
  79. package/esm2022/v-angular/textarea/index.mjs +3 -0
  80. package/esm2022/v-angular/textarea/textarea.component.mjs +102 -0
  81. package/esm2022/v-angular/textarea/textarea.module.mjs +19 -0
  82. package/esm2022/v-angular/tooltip/index.mjs +3 -0
  83. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +273 -0
  84. package/esm2022/v-angular/tooltip/tooltip.module.mjs +18 -0
  85. package/esm2022/v-angular/v-angular.module.mjs +80 -0
  86. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
  87. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  88. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +4 -4
  89. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  90. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +4 -4
  91. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  92. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +2 -2
  93. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  94. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +179 -10
  95. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  96. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +2 -2
  97. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  98. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +11 -10
  99. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  100. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +6 -6
  101. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  102. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +33 -33
  103. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  104. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -5
  105. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  106. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +12 -12
  107. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  108. package/fesm2022/sebgroup-green-angular-v-angular.mjs +3408 -0
  109. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -0
  110. package/package.json +8 -2
  111. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +3 -3
  112. package/src/v-angular/button/button.component.d.ts +2 -2
  113. package/src/v-angular/character-countdown/character-countdown.directive.d.ts +1 -1
  114. package/src/v-angular/core/core.globals.d.ts +1 -1
  115. package/src/v-angular/dropdown/typeahead/index.d.ts +3 -0
  116. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  117. package/src/v-angular/input/input.component.d.ts +3 -3
  118. package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +1 -1
  119. package/src/v-angular/input-mask/input-mask.directive.d.ts +2 -2
  120. package/src/v-angular/modal/dialog/dialog.component.d.ts +5 -5
  121. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +1 -1
  122. package/src/v-angular/modal/modal.globals.d.ts +1 -1
  123. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +6 -6
  124. package/src/v-angular/textarea/textarea.module.d.ts +2 -1
  125. package/src/v-angular/tooltip/tooltip.directive.d.ts +4 -4
  126. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +124 -0
  127. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +7 -0
  128. package/v-angular/base-control-value-accessor/index.d.ts +2 -0
  129. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +18 -0
  130. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +10 -0
  131. package/v-angular/breadcrumbs/index.d.ts +2 -0
  132. package/v-angular/button/button.component.d.ts +62 -0
  133. package/v-angular/button/button.module.d.ts +10 -0
  134. package/v-angular/button/index.d.ts +2 -0
  135. package/v-angular/card/card.component.d.ts +5 -0
  136. package/v-angular/card/card.module.d.ts +8 -0
  137. package/v-angular/card/index.d.ts +2 -0
  138. package/v-angular/character-countdown/character-countdown.directive.d.ts +17 -0
  139. package/v-angular/character-countdown/character-countdown.module.d.ts +8 -0
  140. package/v-angular/character-countdown/index.d.ts +2 -0
  141. package/v-angular/checkbox/checkbox.component.d.ts +27 -0
  142. package/v-angular/checkbox/checkbox.module.d.ts +9 -0
  143. package/v-angular/checkbox/index.d.ts +2 -0
  144. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +89 -0
  145. package/v-angular/dropdown/dropdown-list/index.d.ts +1 -0
  146. package/v-angular/dropdown/dropdown.component.d.ts +99 -0
  147. package/v-angular/dropdown/dropdown.module.d.ts +12 -0
  148. package/v-angular/dropdown/index.d.ts +5 -0
  149. package/v-angular/dropdown/typeahead/index.d.ts +5 -0
  150. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +34 -0
  151. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +34 -0
  152. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +59 -0
  153. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +76 -0
  154. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +11 -0
  155. package/v-angular/i18n/i18n.module.d.ts +15 -0
  156. package/v-angular/i18n/i18n.test.module.d.ts +27 -0
  157. package/v-angular/i18n/index.d.ts +2 -0
  158. package/v-angular/index.d.ts +17 -0
  159. package/v-angular/info-circle/index.d.ts +2 -0
  160. package/v-angular/info-circle/info-circle.component.d.ts +16 -0
  161. package/v-angular/info-circle/info-circle.module.d.ts +10 -0
  162. package/v-angular/input/index.d.ts +2 -0
  163. package/v-angular/input/input.component.d.ts +90 -0
  164. package/v-angular/input/input.module.d.ts +11 -0
  165. package/v-angular/input-mask/config.d.ts +6 -0
  166. package/v-angular/input-mask/constants.d.ts +2 -0
  167. package/v-angular/input-mask/index.d.ts +5 -0
  168. package/v-angular/input-mask/input-mask-format.pipe.d.ts +8 -0
  169. package/v-angular/input-mask/input-mask.directive.d.ts +39 -0
  170. package/v-angular/input-mask/input-mask.module.d.ts +11 -0
  171. package/v-angular/input-mask/input-mask.types.d.ts +20 -0
  172. package/v-angular/modal/dialog/dialog.component.d.ts +55 -0
  173. package/v-angular/modal/fold-out/fold-out.component.d.ts +24 -0
  174. package/v-angular/modal/fold-out/fold-out.directive.d.ts +6 -0
  175. package/v-angular/modal/index.d.ts +5 -0
  176. package/v-angular/modal/modal.globals.d.ts +13 -0
  177. package/v-angular/modal/modal.module.d.ts +13 -0
  178. package/v-angular/modal/modal.types.d.ts +5 -0
  179. package/v-angular/modal/slide-out/slide-out.component.d.ts +76 -0
  180. package/v-angular/radio/index.d.ts +2 -0
  181. package/v-angular/radio/radio.component.d.ts +48 -0
  182. package/v-angular/radio/radio.module.d.ts +9 -0
  183. package/v-angular/textarea/index.d.ts +2 -0
  184. package/v-angular/textarea/textarea.component.d.ts +44 -0
  185. package/v-angular/textarea/textarea.module.d.ts +9 -0
  186. package/v-angular/tooltip/index.d.ts +2 -0
  187. package/v-angular/tooltip/tooltip.directive.d.ts +106 -0
  188. package/v-angular/tooltip/tooltip.module.d.ts +8 -0
  189. package/v-angular/v-angular.module.d.ts +23 -0
@@ -1,18 +1,19 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgvTextareaComponent } from './textarea.component';
4
+ import { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n';
4
5
  import * as i0 from "@angular/core";
5
6
  export class NgvTextareaModule {
6
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule], exports: [NgvTextareaComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule] }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, declarations: [NgvTextareaComponent], imports: [CommonModule, NgvI18nModule], exports: [NgvTextareaComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, imports: [CommonModule, NgvI18nModule] }); }
9
10
  }
10
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaModule, decorators: [{
11
12
  type: NgModule,
12
13
  args: [{
13
14
  declarations: [NgvTextareaComponent],
14
- imports: [CommonModule],
15
+ imports: [CommonModule, NgvI18nModule],
15
16
  exports: [NgvTextareaComponent],
16
17
  }]
17
18
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBOztBQU8zRCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFKYixvQkFBb0IsYUFDekIsWUFBWSxhQUNaLG9CQUFvQjtnSEFFbkIsaUJBQWlCLFlBSGxCLFlBQVk7OzRGQUdYLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IE5ndlRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05ndlRleHRhcmVhQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtOZ3ZUZXh0YXJlYUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndlRleHRhcmVhTW9kdWxlIHt9XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTs7QUFPMUUsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBSmIsb0JBQW9CLGFBQ3pCLFlBQVksRUFBRSxhQUFhLGFBQzNCLG9CQUFvQjtnSEFFbkIsaUJBQWlCLFlBSGxCLFlBQVksRUFBRSxhQUFhOzs0RkFHMUIsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IE5ndlRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ3ZJMThuTW9kdWxlIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pMThuJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOZ3ZUZXh0YXJlYUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5ndkkxOG5Nb2R1bGVdLFxuICBleHBvcnRzOiBbTmd2VGV4dGFyZWFDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUZXh0YXJlYU1vZHVsZSB7fVxuIl19
@@ -31,9 +31,9 @@ export class NgvTooltipDirective {
31
31
  /** Numeric max-width for tooltip. */
32
32
  this.maxWidth = 343;
33
33
  /** Emits a show event triggered changing visibility state of the tooltip. */
34
- this.ngvShow = new EventEmitter();
34
+ this.nggvShow = new EventEmitter();
35
35
  /** Emits a hide event triggered changing visibility state of the tooltip. */
36
- this.ngvHide = new EventEmitter();
36
+ this.nggvHide = new EventEmitter();
37
37
  /** @internal */
38
38
  this.timeout = 0;
39
39
  this.anchorElement = this.anchorElementRef.nativeElement;
@@ -44,7 +44,7 @@ export class NgvTooltipDirective {
44
44
  setTimeout(() => (this.shown ? this.show(true) : this.hide(true)));
45
45
  }
46
46
  ngOnChanges(changes) {
47
- if (NgvTooltipDirective.shouldUpdate(changes.ngvTooltip) ||
47
+ if (NgvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||
48
48
  NgvTooltipDirective.shouldUpdate(changes.placement) ||
49
49
  NgvTooltipDirective.shouldUpdate(changes.thook)) {
50
50
  this.shown ? this.show(true) : this.hide(true);
@@ -82,18 +82,18 @@ export class NgvTooltipDirective {
82
82
  */
83
83
  show(recreate = false) {
84
84
  // Require tooltip text to create
85
- if (!this.ngvTooltip || this.ngvTooltip.length === 0)
85
+ if (!this.nggvTooltip || this.nggvTooltip.length === 0)
86
86
  return;
87
87
  if (recreate || !this.tooltipElement) {
88
88
  this.hide(true);
89
- this.create(this.ngvTooltip);
89
+ this.create(this.nggvTooltip);
90
90
  }
91
91
  else {
92
92
  this.renderer.appendChild(this.parentElement, this.tooltipElement);
93
93
  }
94
94
  this.updatePosition();
95
95
  this.shown = true;
96
- this.ngvShow.emit(this.tooltipElement);
96
+ this.nggvShow.emit(this.tooltipElement);
97
97
  }
98
98
  /**
99
99
  * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.
@@ -107,7 +107,7 @@ export class NgvTooltipDirective {
107
107
  if (destroy)
108
108
  this.destroy();
109
109
  this.shown = false;
110
- this.ngvHide.emit(this.tooltipElement);
110
+ this.nggvHide.emit(this.tooltipElement);
111
111
  }
112
112
  /**
113
113
  * @internal
@@ -235,14 +235,14 @@ export class NgvTooltipDirective {
235
235
  return `${remValue}rem`;
236
236
  }
237
237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
238
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvTooltipDirective, selector: "[ngvTooltip]", inputs: { ngvTooltip: "ngvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { ngvShow: "ngvShow", ngvHide: "ngvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
238
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: NgvTooltipDirective, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
239
239
  }
240
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTooltipDirective, decorators: [{
241
241
  type: Directive,
242
242
  args: [{
243
- selector: '[ngvTooltip]',
243
+ selector: '[nggvTooltip]',
244
244
  }]
245
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { ngvTooltip: [{
245
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { nggvTooltip: [{
246
246
  type: Input
247
247
  }], thook: [{
248
248
  type: Input
@@ -256,9 +256,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
256
256
  type: Input
257
257
  }], maxWidth: [{
258
258
  type: Input
259
- }], ngvShow: [{
259
+ }], nggvShow: [{
260
260
  type: Output
261
- }], ngvHide: [{
261
+ }], nggvHide: [{
262
262
  type: Output
263
263
  }], onMouseEnter: [{
264
264
  type: HostListener,
@@ -270,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
270
270
  type: HostListener,
271
271
  args: ['window:resize']
272
272
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7O0FBV3RCOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBb0I7UUFDdEMsT0FBTyxDQUNMLE1BQU07WUFDTixDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLE1BQU0sQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUNVLGdCQUE0QixFQUM1QixRQUFtQjtRQURuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVk7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDN0Isb0ZBQW9GO1FBQzNFLFVBQUssR0FBRyxTQUFTLENBQUE7UUFDMUI7O1dBRUc7UUFDTSxjQUFTLEdBQWMsS0FBSyxDQUFBO1FBQ3JDLDZFQUE2RTtRQUNwRSxVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLDhEQUE4RDtRQUNyRCxXQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGlGQUFpRjtRQUN4RSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixxQ0FBcUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsQ0FBQTtRQUV2Qiw2RUFBNkU7UUFDbkUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7UUFDbkQsNkVBQTZFO1FBQ25FLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBRW5ELGdCQUFnQjtRQUNO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WTtnQkFPMUIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnXG5cbnR5cGUgUG9zaXRpb24gPSB7XG4gIHRvcD86IG51bWJlclxuICByaWdodD86IG51bWJlclxuICBib3R0b20/OiBudW1iZXJcbiAgbGVmdD86IG51bWJlclxufVxuXG4vKipcbiAqIEEgdG9vbHRpcCBpcyBhIHRleHQgbGFiZWwgdGhhdCBhY3RzIGFzIGEgaGVscGVyIHRvIGEgc3BlY2lmaWMgaXRlbS5cbiAqIFJlY29tbWVuZGVkIHRvIHVzZSB2YWx1ZSBgdG9wYCBvciBgYm90dG9tYCB3aXRoIGBwbGFjZW1lbnRgIGZvciByZXNwb25zaXZlIGRlc2lnbi5cbiAqIER5bmFtaWMgcmVzaXppbmcgYW5kIHRvb2x0aXAgcG9zaXRpb24gYXJlIGEgd29yayBpbiBwcm9ncmVzcy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtdG9vbHRpcFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd2VG9vbHRpcF0nLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZUb29sdGlwRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgLyoqIFRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbmd2VG9vbHRpcD86IHN0cmluZ1xuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQElucHV0KCkgdGhvb2sgPSAndG9vbHRpcCdcbiAgLyoqIFRoZSBzaWRlIG9mIHRoZSBhbmNob3Igd2hpY2ggdGhlIHRvb2x0aXAgd2lsbCBiZSByZW5kZXJlZC5cbiAgICogUmVjb21tZW5kZWQgYHRvcGAgYW5kIGBib3R0b21gIGZvciByZXNwb25zaXZlIGRlc2lnbnMgYXMgdGhlc2UgYXJlIG1vcmUgc3RhYmxlLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAndG9wJ1xuICAvKiogSW5pdGlhbCBzdGF0ZSBhbmQgc3Vic2VxdWVudCB1cGRhdGVzIG9uIHdldGhlciB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLiAqL1xuICBASW5wdXQoKSBzaG93biA9IGZhbHNlXG4gIC8qKiBIb3cgZmFyIG9mZiBmcm9tIHRoZSB0ZXh0IHRoZSB0b29sdGlwIHdpbGwgYmUgcmVuZGVyZWQuICovXG4gIEBJbnB1dCgpIG9mZnNldCA9IDEwXG4gIC8qKiBIb3cgZnJlcXVlbnRseSB0aGUgdG9vbHRpcCB3aWxsIGJlIHJlLXJlbmRlcmVkIHdoZW4gdGhlIHBhZ2Ugc2l6ZSBjaGFuZ2VzLiAqL1xuICBASW5wdXQoKSByZXNpemVUaHJvdHRsZSA9IDUwXG4gIC8qKiBOdW1lcmljIG1heC13aWR0aCBmb3IgdG9vbHRpcC4gKi9cbiAgQElucHV0KCkgbWF4V2lkdGggPSAzNDNcblxuICAvKiogRW1pdHMgYSBzaG93IGV2ZW50IHRyaWdnZXJlZCBjaGFuZ2luZyB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB0b29sdGlwLiAqL1xuICBAT3V0cHV0KCkgbmd2U2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KClcbiAgLyoqIEVtaXRzIGEgaGlkZSBldmVudCB0cmlnZ2VyZWQgY2hhbmdpbmcgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcC4gKi9cbiAgQE91dHB1dCgpIG5ndkhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEhUTUxFbGVtZW50PigpXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdGltZW91dCA9IDBcblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIGFuY2hvckVsZW1lbnQ6IEhUTUxFbGVtZW50XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgdG9vbHRpcEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgYXJyb3dFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgQ2hlY2sgaWYgY2hhbmdlcyBzaG91bGQgdHJpZ2dlciBhIHJlLXJlbmRlciAqL1xuICBzdGF0aWMgc2hvdWxkVXBkYXRlKGNoYW5nZTogU2ltcGxlQ2hhbmdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNoYW5nZSAmJlxuICAgICAgIWNoYW5nZS5maXJzdENoYW5nZSAmJlxuICAgICAgY2hhbmdlLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZS5jdXJyZW50VmFsdWVcbiAgICApXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuY2hvckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICB0aGlzLmFuY2hvckVsZW1lbnQgPSB0aGlzLmFuY2hvckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIHRoaXMucGFyZW50RWxlbWVudCA9IGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBTZXQgYSB0aW1lb3V0IHRvIGFsbG93IHZpZXcgdG8gZnVsbHkgcmVuZGVyIGJlZm9yZSBjcmVhdGluZyB0b29sdGlwLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSkpKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMubmd2VG9vbHRpcCkgfHxcbiAgICAgIE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMucGxhY2VtZW50KSB8fFxuICAgICAgTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy50aG9vaylcbiAgICApIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3codHJ1ZSkgOiB0aGlzLmhpZGUodHJ1ZSlcbiAgICB9XG5cbiAgICBpZiAoTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5zaG93bikpIHtcbiAgICAgIHRoaXMuc2hvd24gPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpXG4gICAgfVxuXG4gICAgaWYgKE5ndlRvb2x0aXBEaXJlY3RpdmUuc2hvdWxkVXBkYXRlKGNoYW5nZXMub2Zmc2V0KSkge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oaWRlKHRydWUpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5zaG93KClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhpZGUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcmVzaXplKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHJldHVyblxuICAgIHRoaXMudGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGltZW91dCA9IDBcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKVxuICAgIH0sIHRoaXMucmVzaXplVGhyb3R0bGUpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byB0cnVlIGFuZCBjcmVhdGVzIGEgbmV3IHRvb2x0aXAgaWYgaXQgZG9lc24ndCBleGlzdCBvciBgcmVjcmVhdGVgIGlzIHNldC5cbiAgICogQHBhcmFtIHJlY3JlYXRlIGlmIHNldCB0byB0cnVlLCBkZXN0cm95IGFueSBleGlzdGluZyB0b29sdGlwIGFuZCBjcmVhdGUgYSBuZXcgb25lLlxuICAgKi9cbiAgc2hvdyhyZWNyZWF0ZSA9IGZhbHNlKSB7XG4gICAgLy8gUmVxdWlyZSB0b29sdGlwIHRleHQgdG8gY3JlYXRlXG4gICAgaWYgKCF0aGlzLm5ndlRvb2x0aXAgfHwgdGhpcy5uZ3ZUb29sdGlwLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICBpZiAocmVjcmVhdGUgfHwgIXRoaXMudG9vbHRpcEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGlkZSh0cnVlKVxuICAgICAgdGhpcy5jcmVhdGUodGhpcy5uZ3ZUb29sdGlwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50RWxlbWVudCwgdGhpcy50b29sdGlwRWxlbWVudClcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKClcbiAgICB0aGlzLnNob3duID0gdHJ1ZVxuICAgIHRoaXMubmd2U2hvdy5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byBmYWxzZSBhbmQgZGVzdHJveXMgYW4gZXhpc3RpbmcgdG9vbHRpcCBpZiBgZGVzdHJveWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gZGVzdHJveSBpZiBzZXQgdG8gdHJ1ZSwgZGVzdHJveSBhbnkgZXhpc3RpbmcgdG9vbHRpcC5cbiAgICovXG4gIGhpZGUoZGVzdHJveSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudG9vbHRpcEVsZW1lbnQpKVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gICAgaWYgKGRlc3Ryb3kpIHRoaXMuZGVzdHJveSgpXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXG4gICAgdGhpcy5uZ3ZIaWRlLmVtaXQodGhpcy50b29sdGlwRWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ3JlYXRlcyBhIG5ldyB0b29sdGlwIHdpdGggdGhlIHNldCBwbGFjZW1lbnQgYW5kIGEgZ2l2ZW4gdGV4dCBhcyBpdHMgYm9keS5cbiAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2x0aXAgYm9keS5cbiAgICovXG4gIGNyZWF0ZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwRWxlbWVudCwgJ2dkcy10b29sdGlwJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnZGF0YS10aG9vaycsIHRoaXMudGhvb2spXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3otaW5kZXgnLCAnMTA0MCcpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCAnYm9yZGVyLXJhZGl1cycsICcuMjVyZW0nKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3BhZGRpbmcnLCAnLjVyZW0gMXJlbScpXG4gICAgY29uc3QgcmVsYXRpdmVNYXhXaWR0aCA9IHRoaXMucHhUb1JlbSh0aGlzLm1heFdpZHRoKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ21heC13aWR0aCcsIHJlbGF0aXZlTWF4V2lkdGgpXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChcbiAgICAgIHRoaXMudG9vbHRpcEVsZW1lbnQsXG4gICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGV4dCksXG4gICAgKVxuXG4gICAgLy8gYWRkIHRvb2x0aXAgdG8gRE9NXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG5cbiAgICB0aGlzLmFycm93RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgdGhpcy5hcnJvd0VsZW1lbnQsXG4gICAgICBgZ2RzLXRvb2x0aXBfX2Fycm93LSR7dGhpcy5wbGFjZW1lbnR9YCxcbiAgICApXG5cbiAgICAvLyBhZGQgYXJyb3cgdG8gdG9vbHRpcCBlbGVtZW50XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBFbGVtZW50LCB0aGlzLmFycm93RWxlbWVudClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRGVzdHJveXMgdGhlIGN1cnJlbnQgdG9vbHRpcCBieSB1bi1zZXR0aW5nIHZhcmlhYmxlcywgc2hvdWxkIG9ubHkgYmUgdXNlZCBhZnRlciBkZXRhY2hpbmcgZWxlbWVudHMgZnJvbSB0aGUgRE9NLlxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnRvb2x0aXBFbGVtZW50ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5hcnJvd0VsZW1lbnQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogUmVjYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcC5cbiAgICovXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICghdGhpcy50b29sdGlwRWxlbWVudCB8fCAhdGhpcy5hcnJvd0VsZW1lbnQpIHJldHVyblxuICAgIGNvbnN0IHNjcm9sbFBvcyA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIDBcbiAgICBjb25zdCBhbmNob3JSZWN0ID0gdGhpcy5hbmNob3JFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgdG9vbHRpcFJlY3QgPSB0aGlzLnRvb2x0aXBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgYXJyb3dSZWN0ID0gdGhpcy5hcnJvd0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcblxuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbChcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgdGhpcy5hbGlnblZlcnRpY2FsKFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHNjcm9sbFBvcyxcbiAgICAgICAgICBhbmNob3JSZWN0LFxuICAgICAgICAgIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCxcbiAgICAgICAgICBhcnJvd1JlY3Qud2lkdGgsXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKHRydWUsIHNjcm9sbFBvcywgYW5jaG9yUmVjdCwgdG9vbHRpcFJlY3QuaGVpZ2h0KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHRoaXMuYWxpZ25Ib3Jpem9udGFsKGZhbHNlLCBzY3JvbGxQb3MsIGFuY2hvclJlY3QsIHRvb2x0aXBSZWN0LmhlaWdodClcbiAgICAgICAgYnJlYWtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgdG9wYCBvciBgYm90dG9tYC5cbiAgICovXG4gIGFsaWduVmVydGljYWwoXG4gICAgYWJvdmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBXaWR0aDogbnVtYmVyLFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgICBhcnJvd1dpZHRoOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgY29uc3QgYW5jaG9yTWlkWCA9IGFuY2hvci5sZWZ0ICsgYW5jaG9yLndpZHRoIC8gMlxuICAgIGNvbnN0IHRvb2x0aXA6IFBvc2l0aW9uID0ge31cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7fVxuXG4gICAgaWYgKGFib3ZlKVxuICAgICAgdG9vbHRpcC50b3AgPSBhbmNob3IudG9wIC0gdG9vbHRpcEhlaWdodCAtIHRoaXMub2Zmc2V0ICsgc2Nyb2xsUG9zXG4gICAgZWxzZSB0b29sdGlwLnRvcCA9IGFuY2hvci5ib3R0b20gKyB0aGlzLm9mZnNldCArIHNjcm9sbFBvc1xuXG4gICAgaWYgKGFuY2hvck1pZFggPCB3aWR0aCAvIDIpIHtcbiAgICAgIHRvb2x0aXAubGVmdCA9IE1hdGgubWF4KDAsIGFuY2hvck1pZFggLSB0b29sdGlwV2lkdGggLyAyKVxuICAgICAgYXJyb3cubGVmdCA9IGFuY2hvck1pZFggLSB0b29sdGlwLmxlZnRcbiAgICB9IGVsc2Uge1xuICAgICAgdG9vbHRpcC5yaWdodCA9IE1hdGgubWF4KDAsIHdpZHRoIC0gKGFuY2hvck1pZFggKyB0b29sdGlwV2lkdGggLyAyKSlcbiAgICAgIGFycm93LnJpZ2h0ID0gd2lkdGggLSBhbmNob3JNaWRYIC0gdG9vbHRpcC5yaWdodCAtIGFycm93V2lkdGhcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0eWxlKHRvb2x0aXAsIGFycm93KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDYWxjdWxhdGVzIGFuZCBzZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIHdoZW4gdGhlIHBsYWNlbWVudCBpcyBgbGVmdGAgb3IgYHJpZ2h0YC5cbiAgICovXG4gIGFsaWduSG9yaXpvbnRhbChcbiAgICBiZWZvcmU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsUG9zOiBudW1iZXIsXG4gICAgYW5jaG9yOiBET01SZWN0LFxuICAgIHRvb2x0aXBIZWlnaHQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICBjb25zdCB0b3AgPSBhbmNob3IudG9wICsgKGFuY2hvci5oZWlnaHQgLSB0b29sdGlwSGVpZ2h0KSAvIDIgKyBzY3JvbGxQb3NcbiAgICBjb25zdCB0b29sdGlwOiBQb3NpdGlvbiA9IHsgdG9wIH1cbiAgICBjb25zdCBhcnJvdzogUG9zaXRpb24gPSB7IHRvcDogdG9vbHRpcEhlaWdodCAvIDIgfVxuXG4gICAgaWYgKGJlZm9yZSkgdG9vbHRpcC5yaWdodCA9IHdpZHRoIC0gYW5jaG9yLmxlZnQgKyB0aGlzLm9mZnNldFxuICAgIGVsc2UgdG9vbHRpcC5sZWZ0ID0gYW5jaG9yLnJpZ2h0ICsgdGhpcy5vZmZzZXRcblxuICAgIHRoaXMuc2V0U3R5bGUodG9vbHRpcCwgYXJyb3cpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFVwZGF0ZXMgdGhlIENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgdG9vbHRpcCBwb3NpdGlvbi5cbiAgICovXG4gIHNldFN0eWxlKHRvb2x0aXA6IFBvc2l0aW9uLCBhcnJvdzogUG9zaXRpb24pIHtcbiAgICAvLyBUb29sdGlwXG4gICAgT2JqZWN0LmVudHJpZXModG9vbHRpcCkuZm9yRWFjaCgoW3Byb3AsIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnB4VG9SZW0odmFsdWUpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG5cbiAgICAvLyBBcnJvd1xuICAgIE9iamVjdC5lbnRyaWVzKGFycm93KS5mb3JFYWNoKChbcHJvcCwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucHhUb1JlbSh2YWx1ZSlcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5hcnJvd0VsZW1lbnQsIHByb3AsIHBvc2l0aW9uKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHB4VG9SZW0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZm9udFNpemVQeCA9IHdpbmRvd1xuICAgICAgPy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucGFyZW50RWxlbWVudClcbiAgICAgID8uZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJylcbiAgICBjb25zdCBmb250U2l6ZU51bWJlck1hdGNoID0gZm9udFNpemVQeD8ubWF0Y2goL1xcZHsxLH0vKVxuICAgIGNvbnN0IGZvbnRTaXplID0gZm9udFNpemVOdW1iZXJNYXRjaCA/ICtmb250U2l6ZU51bWJlck1hdGNoWzBdIDogMTZcbiAgICBjb25zdCByZW1WYWx1ZSA9IHZhbHVlIC8gZm9udFNpemVcbiAgICByZXR1cm4gYCR7cmVtVmFsdWV9cmVtYFxuICB9XG59XG4iXX0=
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUE7O0FBV3RCOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQXdDOUIsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBb0I7UUFDdEMsT0FBTyxDQUNMLE1BQU07WUFDTixDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLE1BQU0sQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUNVLGdCQUE0QixFQUM1QixRQUFtQjtRQURuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVk7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDN0Isb0ZBQW9GO1FBQzNFLFVBQUssR0FBRyxTQUFTLENBQUE7UUFDMUI7O1dBRUc7UUFDTSxjQUFTLEdBQWMsS0FBSyxDQUFBO1FBQ3JDLDZFQUE2RTtRQUNwRSxVQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ3RCLDhEQUE4RDtRQUNyRCxXQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLGlGQUFpRjtRQUN4RSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixxQ0FBcUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsQ0FBQTtRQUV2Qiw2RUFBNkU7UUFDbkUsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUE7UUFDcEQsNkVBQTZFO1FBQ25FLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFBO1FBRXBELGdCQUFnQjtRQUNO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WTtnQkFPMUIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIFBsYWNlbWVudCA9ICd0b3AnIHwgJ3JpZ2h0JyB8ICdib3R0b20nIHwgJ2xlZnQnXG5cbnR5cGUgUG9zaXRpb24gPSB7XG4gIHRvcD86IG51bWJlclxuICByaWdodD86IG51bWJlclxuICBib3R0b20/OiBudW1iZXJcbiAgbGVmdD86IG51bWJlclxufVxuXG4vKipcbiAqIEEgdG9vbHRpcCBpcyBhIHRleHQgbGFiZWwgdGhhdCBhY3RzIGFzIGEgaGVscGVyIHRvIGEgc3BlY2lmaWMgaXRlbS5cbiAqIFJlY29tbWVuZGVkIHRvIHVzZSB2YWx1ZSBgdG9wYCBvciBgYm90dG9tYCB3aXRoIGBwbGFjZW1lbnRgIGZvciByZXNwb25zaXZlIGRlc2lnbi5cbiAqIER5bmFtaWMgcmVzaXppbmcgYW5kIHRvb2x0aXAgcG9zaXRpb24gYXJlIGEgd29yayBpbiBwcm9ncmVzcy5cbiAqIGh0dHBzOi8vZGVzaWdubGlicmFyeS5zZWJncm91cC5jb20vY29tcG9uZW50cy9jb21wb25lbnQtdG9vbHRpcFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdndlRvb2x0aXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgTmd2VG9vbHRpcERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIC8qKiBUaGUgdGV4dCB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIHRvb2x0aXAuICovXG4gIEBJbnB1dCgpIG5nZ3ZUb29sdGlwPzogc3RyaW5nXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASW5wdXQoKSB0aG9vayA9ICd0b29sdGlwJ1xuICAvKiogVGhlIHNpZGUgb2YgdGhlIGFuY2hvciB3aGljaCB0aGUgdG9vbHRpcCB3aWxsIGJlIHJlbmRlcmVkLlxuICAgKiBSZWNvbW1lbmRlZCBgdG9wYCBhbmQgYGJvdHRvbWAgZm9yIHJlc3BvbnNpdmUgZGVzaWducyBhcyB0aGVzZSBhcmUgbW9yZSBzdGFibGUuXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICd0b3AnXG4gIC8qKiBJbml0aWFsIHN0YXRlIGFuZCBzdWJzZXF1ZW50IHVwZGF0ZXMgb24gd2V0aGVyIHRoZSB0b29sdGlwIGlzIHZpc2libGUuICovXG4gIEBJbnB1dCgpIHNob3duID0gZmFsc2VcbiAgLyoqIEhvdyBmYXIgb2ZmIGZyb20gdGhlIHRleHQgdGhlIHRvb2x0aXAgd2lsbCBiZSByZW5kZXJlZC4gKi9cbiAgQElucHV0KCkgb2Zmc2V0ID0gMTBcbiAgLyoqIEhvdyBmcmVxdWVudGx5IHRoZSB0b29sdGlwIHdpbGwgYmUgcmUtcmVuZGVyZWQgd2hlbiB0aGUgcGFnZSBzaXplIGNoYW5nZXMuICovXG4gIEBJbnB1dCgpIHJlc2l6ZVRocm90dGxlID0gNTBcbiAgLyoqIE51bWVyaWMgbWF4LXdpZHRoIGZvciB0b29sdGlwLiAqL1xuICBASW5wdXQoKSBtYXhXaWR0aCA9IDM0M1xuXG4gIC8qKiBFbWl0cyBhIHNob3cgZXZlbnQgdHJpZ2dlcmVkIGNoYW5naW5nIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHRvb2x0aXAuICovXG4gIEBPdXRwdXQoKSBuZ2d2U2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8SFRNTEVsZW1lbnQ+KClcbiAgLyoqIEVtaXRzIGEgaGlkZSBldmVudCB0cmlnZ2VyZWQgY2hhbmdpbmcgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcC4gKi9cbiAgQE91dHB1dCgpIG5nZ3ZIaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MRWxlbWVudD4oKVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHRpbWVvdXQgPSAwXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgcGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnRcblxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBhbmNob3JFbGVtZW50OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHRvb2x0aXBFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIGFycm93RWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcblxuICAvKiogQGludGVybmFsIENoZWNrIGlmIGNoYW5nZXMgc2hvdWxkIHRyaWdnZXIgYSByZS1yZW5kZXIgKi9cbiAgc3RhdGljIHNob3VsZFVwZGF0ZShjaGFuZ2U6IFNpbXBsZUNoYW5nZSkge1xuICAgIHJldHVybiAoXG4gICAgICBjaGFuZ2UgJiZcbiAgICAgICFjaGFuZ2UuZmlyc3RDaGFuZ2UgJiZcbiAgICAgIGNoYW5nZS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2UuY3VycmVudFZhbHVlXG4gICAgKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbmNob3JFbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7XG4gICAgdGhpcy5hbmNob3JFbGVtZW50ID0gdGhpcy5hbmNob3JFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB0aGlzLnBhcmVudEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gU2V0IGEgdGltZW91dCB0byBhbGxvdyB2aWV3IHRvIGZ1bGx5IHJlbmRlciBiZWZvcmUgY3JlYXRpbmcgdG9vbHRpcC5cbiAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnNob3duID8gdGhpcy5zaG93KHRydWUpIDogdGhpcy5oaWRlKHRydWUpKSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLm5nZ3ZUb29sdGlwKSB8fFxuICAgICAgTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5wbGFjZW1lbnQpIHx8XG4gICAgICBOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLnRob29rKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93biA/IHRoaXMuc2hvdyh0cnVlKSA6IHRoaXMuaGlkZSh0cnVlKVxuICAgIH1cblxuICAgIGlmIChOZ3ZUb29sdGlwRGlyZWN0aXZlLnNob3VsZFVwZGF0ZShjaGFuZ2VzLnNob3duKSkge1xuICAgICAgdGhpcy5zaG93biA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKClcbiAgICB9XG5cbiAgICBpZiAoTmd2VG9vbHRpcERpcmVjdGl2ZS5zaG91bGRVcGRhdGUoY2hhbmdlcy5vZmZzZXQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKClcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmhpZGUodHJ1ZSlcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLnNob3coKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaGlkZSgpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICByZXNpemUoKSB7XG4gICAgaWYgKHRoaXMudGltZW91dCkgcmV0dXJuXG4gICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50aW1lb3V0ID0gMFxuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpXG4gICAgfSwgdGhpcy5yZXNpemVUaHJvdHRsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB0b29sdGlwIHRvIHRydWUgYW5kIGNyZWF0ZXMgYSBuZXcgdG9vbHRpcCBpZiBpdCBkb2Vzbid0IGV4aXN0IG9yIGByZWNyZWF0ZWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gcmVjcmVhdGUgaWYgc2V0IHRvIHRydWUsIGRlc3Ryb3kgYW55IGV4aXN0aW5nIHRvb2x0aXAgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuXG4gICAqL1xuICBzaG93KHJlY3JlYXRlID0gZmFsc2UpIHtcbiAgICAvLyBSZXF1aXJlIHRvb2x0aXAgdGV4dCB0byBjcmVhdGVcbiAgICBpZiAoIXRoaXMubmdndlRvb2x0aXAgfHwgdGhpcy5uZ2d2VG9vbHRpcC5sZW5ndGggPT09IDApIHJldHVyblxuXG4gICAgaWYgKHJlY3JlYXRlIHx8ICF0aGlzLnRvb2x0aXBFbGVtZW50KSB7XG4gICAgICB0aGlzLmhpZGUodHJ1ZSlcbiAgICAgIHRoaXMuY3JlYXRlKHRoaXMubmdndlRvb2x0aXApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLnRvb2x0aXBFbGVtZW50KVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKVxuICAgIHRoaXMuc2hvd24gPSB0cnVlXG4gICAgdGhpcy5uZ2d2U2hvdy5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgdG9vbHRpcCB0byBmYWxzZSBhbmQgZGVzdHJveXMgYW4gZXhpc3RpbmcgdG9vbHRpcCBpZiBgZGVzdHJveWAgaXMgc2V0LlxuICAgKiBAcGFyYW0gZGVzdHJveSBpZiBzZXQgdG8gdHJ1ZSwgZGVzdHJveSBhbnkgZXhpc3RpbmcgdG9vbHRpcC5cbiAgICovXG4gIGhpZGUoZGVzdHJveSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBFbGVtZW50KSByZXR1cm5cbiAgICBpZiAodGhpcy5wYXJlbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMudG9vbHRpcEVsZW1lbnQpKVxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnBhcmVudEVsZW1lbnQsIHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gICAgaWYgKGRlc3Ryb3kpIHRoaXMuZGVzdHJveSgpXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXG4gICAgdGhpcy5uZ2d2SGlkZS5lbWl0KHRoaXMudG9vbHRpcEVsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIENyZWF0ZXMgYSBuZXcgdG9vbHRpcCB3aXRoIHRoZSBzZXQgcGxhY2VtZW50IGFuZCBhIGdpdmVuIHRleHQgYXMgaXRzIGJvZHkuXG4gICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwIGJvZHkuXG4gICAqL1xuICBjcmVhdGUodGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudG9vbHRpcEVsZW1lbnQsICdnZHMtdG9vbHRpcCcpXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2RhdGEtdGhvb2snLCB0aGlzLnRob29rKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICd6LWluZGV4JywgJzEwNDAnKVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwRWxlbWVudCwgJ2JvcmRlci1yYWRpdXMnLCAnLjI1cmVtJylcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdwYWRkaW5nJywgJy41cmVtIDFyZW0nKVxuICAgIGNvbnN0IHJlbGF0aXZlTWF4V2lkdGggPSB0aGlzLnB4VG9SZW0odGhpcy5tYXhXaWR0aClcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcEVsZW1lbnQsICdtYXgtd2lkdGgnLCByZWxhdGl2ZU1heFdpZHRoKVxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoXG4gICAgICB0aGlzLnRvb2x0aXBFbGVtZW50LFxuICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRleHQpLFxuICAgIClcblxuICAgIC8vIGFkZCB0b29sdGlwIHRvIERPTVxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRFbGVtZW50LCB0aGlzLnRvb2x0aXBFbGVtZW50KVxuXG4gICAgdGhpcy5hcnJvd0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgIHRoaXMuYXJyb3dFbGVtZW50LFxuICAgICAgYGdkcy10b29sdGlwX19hcnJvdy0ke3RoaXMucGxhY2VtZW50fWAsXG4gICAgKVxuXG4gICAgLy8gYWRkIGFycm93IHRvIHRvb2x0aXAgZWxlbWVudFxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwRWxlbWVudCwgdGhpcy5hcnJvd0VsZW1lbnQpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc3Ryb3lzIHRoZSBjdXJyZW50IHRvb2x0aXAgYnkgdW4tc2V0dGluZyB2YXJpYWJsZXMsIHNob3VsZCBvbmx5IGJlIHVzZWQgYWZ0ZXIgZGV0YWNoaW5nIGVsZW1lbnRzIGZyb20gdGhlIERPTS5cbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy50b29sdGlwRWxlbWVudCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYXJyb3dFbGVtZW50ID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFJlY2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuXG4gICAqL1xuICB1cGRhdGVQb3NpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEVsZW1lbnQgfHwgIXRoaXMuYXJyb3dFbGVtZW50KSByZXR1cm5cbiAgICBjb25zdCBzY3JvbGxQb3MgPVxuICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8XG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICAwXG4gICAgY29uc3QgYW5jaG9yUmVjdCA9IHRoaXMuYW5jaG9yRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IHRvb2x0aXBSZWN0ID0gdGhpcy50b29sdGlwRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGFycm93UmVjdCA9IHRoaXMuYXJyb3dFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgICBzd2l0Y2ggKHRoaXMucGxhY2VtZW50KSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0aGlzLmFsaWduVmVydGljYWwoXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBzY3JvbGxQb3MsXG4gICAgICAgICAgYW5jaG9yUmVjdCxcbiAgICAgICAgICB0b29sdGlwUmVjdC53aWR0aCxcbiAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQsXG4gICAgICAgICAgYXJyb3dSZWN0LndpZHRoLFxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbChcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICBzY3JvbGxQb3MsXG4gICAgICAgICAgYW5jaG9yUmVjdCxcbiAgICAgICAgICB0b29sdGlwUmVjdC53aWR0aCxcbiAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQsXG4gICAgICAgICAgYXJyb3dSZWN0LndpZHRoLFxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICB0aGlzLmFsaWduSG9yaXpvbnRhbCh0cnVlLCBzY3JvbGxQb3MsIGFuY2hvclJlY3QsIHRvb2x0aXBSZWN0LmhlaWdodClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICB0aGlzLmFsaWduSG9yaXpvbnRhbChmYWxzZSwgc2Nyb2xsUG9zLCBhbmNob3JSZWN0LCB0b29sdGlwUmVjdC5oZWlnaHQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ2FsY3VsYXRlcyBhbmQgc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCB3aGVuIHRoZSBwbGFjZW1lbnQgaXMgYHRvcGAgb3IgYGJvdHRvbWAuXG4gICAqL1xuICBhbGlnblZlcnRpY2FsKFxuICAgIGFib3ZlOiBib29sZWFuLFxuICAgIHNjcm9sbFBvczogbnVtYmVyLFxuICAgIGFuY2hvcjogRE9NUmVjdCxcbiAgICB0b29sdGlwV2lkdGg6IG51bWJlcixcbiAgICB0b29sdGlwSGVpZ2h0OiBudW1iZXIsXG4gICAgYXJyb3dXaWR0aDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aFxuICAgIGNvbnN0IGFuY2hvck1pZFggPSBhbmNob3IubGVmdCArIGFuY2hvci53aWR0aCAvIDJcbiAgICBjb25zdCB0b29sdGlwOiBQb3NpdGlvbiA9IHt9XG4gICAgY29uc3QgYXJyb3c6IFBvc2l0aW9uID0ge31cblxuICAgIGlmIChhYm92ZSlcbiAgICAgIHRvb2x0aXAudG9wID0gYW5jaG9yLnRvcCAtIHRvb2x0aXBIZWlnaHQgLSB0aGlzLm9mZnNldCArIHNjcm9sbFBvc1xuICAgIGVsc2UgdG9vbHRpcC50b3AgPSBhbmNob3IuYm90dG9tICsgdGhpcy5vZmZzZXQgKyBzY3JvbGxQb3NcblxuICAgIGlmIChhbmNob3JNaWRYIDwgd2lkdGggLyAyKSB7XG4gICAgICB0b29sdGlwLmxlZnQgPSBNYXRoLm1heCgwLCBhbmNob3JNaWRYIC0gdG9vbHRpcFdpZHRoIC8gMilcbiAgICAgIGFycm93LmxlZnQgPSBhbmNob3JNaWRYIC0gdG9vbHRpcC5sZWZ0XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvb2x0aXAucmlnaHQgPSBNYXRoLm1heCgwLCB3aWR0aCAtIChhbmNob3JNaWRYICsgdG9vbHRpcFdpZHRoIC8gMikpXG4gICAgICBhcnJvdy5yaWdodCA9IHdpZHRoIC0gYW5jaG9yTWlkWCAtIHRvb2x0aXAucmlnaHQgLSBhcnJvd1dpZHRoXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdHlsZSh0b29sdGlwLCBhcnJvdylcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ2FsY3VsYXRlcyBhbmQgc2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCB3aGVuIHRoZSBwbGFjZW1lbnQgaXMgYGxlZnRgIG9yIGByaWdodGAuXG4gICAqL1xuICBhbGlnbkhvcml6b250YWwoXG4gICAgYmVmb3JlOiBib29sZWFuLFxuICAgIHNjcm9sbFBvczogbnVtYmVyLFxuICAgIGFuY2hvcjogRE9NUmVjdCxcbiAgICB0b29sdGlwSGVpZ2h0OiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgY29uc3QgdG9wID0gYW5jaG9yLnRvcCArIChhbmNob3IuaGVpZ2h0IC0gdG9vbHRpcEhlaWdodCkgLyAyICsgc2Nyb2xsUG9zXG4gICAgY29uc3QgdG9vbHRpcDogUG9zaXRpb24gPSB7IHRvcCB9XG4gICAgY29uc3QgYXJyb3c6IFBvc2l0aW9uID0geyB0b3A6IHRvb2x0aXBIZWlnaHQgLyAyIH1cblxuICAgIGlmIChiZWZvcmUpIHRvb2x0aXAucmlnaHQgPSB3aWR0aCAtIGFuY2hvci5sZWZ0ICsgdGhpcy5vZmZzZXRcbiAgICBlbHNlIHRvb2x0aXAubGVmdCA9IGFuY2hvci5yaWdodCArIHRoaXMub2Zmc2V0XG5cbiAgICB0aGlzLnNldFN0eWxlKHRvb2x0aXAsIGFycm93KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVcGRhdGVzIHRoZSBDU1MgcHJvcGVydGllcyBmb3IgdGhlIHRvb2x0aXAgcG9zaXRpb24uXG4gICAqL1xuICBzZXRTdHlsZSh0b29sdGlwOiBQb3NpdGlvbiwgYXJyb3c6IFBvc2l0aW9uKSB7XG4gICAgLy8gVG9vbHRpcFxuICAgIE9iamVjdC5lbnRyaWVzKHRvb2x0aXApLmZvckVhY2goKFtwcm9wLCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5weFRvUmVtKHZhbHVlKVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXBFbGVtZW50LCBwcm9wLCBwb3NpdGlvbilcbiAgICB9KVxuXG4gICAgLy8gQXJyb3dcbiAgICBPYmplY3QuZW50cmllcyhhcnJvdykuZm9yRWFjaCgoW3Byb3AsIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnB4VG9SZW0odmFsdWUpXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYXJyb3dFbGVtZW50LCBwcm9wLCBwb3NpdGlvbilcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBweFRvUmVtKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvbnRTaXplUHggPSB3aW5kb3dcbiAgICAgID8uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnBhcmVudEVsZW1lbnQpXG4gICAgICA/LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpXG4gICAgY29uc3QgZm9udFNpemVOdW1iZXJNYXRjaCA9IGZvbnRTaXplUHg/Lm1hdGNoKC9cXGR7MSx9LylcbiAgICBjb25zdCBmb250U2l6ZSA9IGZvbnRTaXplTnVtYmVyTWF0Y2ggPyArZm9udFNpemVOdW1iZXJNYXRjaFswXSA6IDE2XG4gICAgY29uc3QgcmVtVmFsdWUgPSB2YWx1ZSAvIGZvbnRTaXplXG4gICAgcmV0dXJuIGAke3JlbVZhbHVlfXJlbWBcbiAgfVxufVxuIl19
@@ -0,0 +1,287 @@
1
+ import { ChangeDetectorRef, ContentChild, Component, ElementRef, EventEmitter, HostBinding, Inject, Injectable, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
2
+ import { NgControl, Validators, } from '@angular/forms';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
9
+ export class NgvBaseControlValueAccessorComponent {
10
+ /** Hides the input borders and displays current value as a text. */
11
+ set locked(value) {
12
+ this._locked = value;
13
+ this.cdr.detectChanges();
14
+ }
15
+ get locked() {
16
+ return this._locked;
17
+ }
18
+ /** Override the required flag of the component. */
19
+ set required(value) {
20
+ this._required = value;
21
+ }
22
+ /** Child input element is considered required and changes default label template accordingly. */
23
+ get required() {
24
+ // if required is set => return required
25
+ if (this._required !== undefined)
26
+ return this._required;
27
+ // if required can be determined from the control => return control.required
28
+ if (this.ngControl?.control?.validator) {
29
+ const validator = this.ngControl?.control?.validator({});
30
+ // returns true for any error that starts with required
31
+ return Object.keys(validator ?? {}).some((key) => key.startsWith('required'));
32
+ }
33
+ return;
34
+ }
35
+ /** Override the invalid state of the component. */
36
+ set invalid(value) {
37
+ this._invalid = value;
38
+ }
39
+ /** The component has the invalid state, usually decorating the elements red and shows the first error. */
40
+ get invalid() {
41
+ if (this._invalid === true || this._invalid === false)
42
+ return this._invalid;
43
+ return (!!this.ngControl?.control?.invalid && this.ngControl?.control?.touched);
44
+ }
45
+ /** Override the valid state of the component. */
46
+ set valid(value) {
47
+ this._valid = value;
48
+ }
49
+ /** The component has the valid state, usually decorating the elements green. */
50
+ get valid() {
51
+ if (this._valid === true || this._valid === false)
52
+ return this._valid;
53
+ return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched;
54
+ }
55
+ /** Override the disabled state of the component. */
56
+ set disabled(value) {
57
+ this._disabled = value;
58
+ }
59
+ /** The component has the disabled state, usually muting the colors and removes interaction. */
60
+ get disabled() {
61
+ if (this._disabled === true || this._disabled === false)
62
+ return this._disabled;
63
+ return !!this.ngControl?.control?.disabled;
64
+ }
65
+ /**
66
+ * Creates a new BaseControlValueAccessorComponent.
67
+ * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.
68
+ * @param translocoScope optional TranslocoScope provided if component is used within a scope.
69
+ */
70
+ constructor(ngControl, translocoScope, cdr) {
71
+ this.ngControl = ngControl;
72
+ this.translocoScope = translocoScope;
73
+ this.cdr = cdr;
74
+ /* ATTRIBUTES */
75
+ /** Id of the host element and is accessible by the children, automatically generated if not provided. */
76
+ this.id = window.nggv?.nextId();
77
+ /** If set to true, the browser will try to automatically set focus to the child input element. */
78
+ this.autofocus = false;
79
+ this._locked = undefined;
80
+ /* STATES */
81
+ this._required = undefined;
82
+ this._invalid = undefined;
83
+ this._valid = undefined;
84
+ /** The component has the focused state, updated by the child input element's focus state. */
85
+ this.focused = false;
86
+ this._disabled = undefined;
87
+ /* TRIGGERS */
88
+ /** Emits focus events triggered by the child elements. */
89
+ this.nggvFocus = new EventEmitter();
90
+ /** Emits focus events triggered by the child elements. */
91
+ this.nggvBlur = new EventEmitter();
92
+ /* VALUE HANDLERS */
93
+ this._state = null;
94
+ /** @internal */
95
+ this.onChange = (_) => {
96
+ // do nothing
97
+ };
98
+ /** @internal */
99
+ this.onTouched = () => {
100
+ // do nothing
101
+ };
102
+ /** @internal */
103
+ this.onValidatorChange = () => null;
104
+ /* LIFE CYCLE VARIABLES */
105
+ this._onDestroy$ = new Subject();
106
+ if (this.ngControl) {
107
+ // Note: we provide the value accessor through here, instead of
108
+ // the `providers` to avoid running into a circular import.
109
+ this.ngControl.valueAccessor = this;
110
+ }
111
+ if (this.translocoScope)
112
+ this.scope = this.translocoScope.toString();
113
+ }
114
+ // eslint-disable-next-line @angular-eslint/contextual-lifecycle
115
+ ngOnInit() {
116
+ if (this.ngControl && this.ngControl.control) {
117
+ this.ngControl.control.setValidators(Validators.compose([this.ngControl.control.validator, this.validate]));
118
+ }
119
+ // if reset observable has been passed, subscribe after updates
120
+ this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({
121
+ next: () => {
122
+ // reset value of controller
123
+ this.state = this.defaultValue;
124
+ this.onChange(this.state);
125
+ this.cdr.detectChanges();
126
+ },
127
+ });
128
+ }
129
+ // eslint-disable-next-line @angular-eslint/contextual-lifecycle
130
+ ngAfterViewInit() {
131
+ // if default value is set, then don't alter it. Otherwise, use
132
+ // current value of controller after initiation as default value
133
+ this.defaultValue = this.defaultValue ?? this.ngControl?.value;
134
+ }
135
+ ngOnDestroy() {
136
+ this._onDestroy$.next(true);
137
+ this._onDestroy$.complete();
138
+ }
139
+ detectChanges() {
140
+ this.cdr.detectChanges();
141
+ }
142
+ /** @internal */
143
+ onFocus(event) {
144
+ event.stopPropagation
145
+ ? event.stopPropagation()
146
+ : (event.cancelBubble = true);
147
+ this.focused = true;
148
+ this.nggvFocus.emit(event);
149
+ }
150
+ /** @internal */
151
+ onBlur(event) {
152
+ event.stopPropagation
153
+ ? event.stopPropagation()
154
+ : (event.cancelBubble = true);
155
+ this.onTouched();
156
+ this.focused = false;
157
+ this.nggvBlur.emit(event);
158
+ }
159
+ /** Sets the focus on the actual input element. */
160
+ setFocus() {
161
+ if (this.inputRef)
162
+ this.inputRef.nativeElement.focus();
163
+ }
164
+ // ----------------------------------------------------------------------------
165
+ // CONTROL VALUE ACCESSOR
166
+ // ----------------------------------------------------------------------------
167
+ /** Internal state/value that the native input element has. */
168
+ get state() {
169
+ return this._state;
170
+ }
171
+ /** Internal state/value that the native input element has. */
172
+ set state(value) {
173
+ if (typeof value === 'undefined')
174
+ value = null;
175
+ this._state = value;
176
+ }
177
+ /** Writes a new value to the child input element. */
178
+ writeValue(value) {
179
+ this.state = value;
180
+ }
181
+ /** Registers a callback function that is called when the child input element's value changes. */
182
+ registerOnChange(fn) {
183
+ this.onChange = fn;
184
+ }
185
+ /** Registers a callback function that is called when the child input element triggers on blur. */
186
+ registerOnTouched(fn) {
187
+ this.onTouched = fn;
188
+ }
189
+ /** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */
190
+ setDisabledState(isDisabled) {
191
+ this.disabled = isDisabled;
192
+ // if displayDisabledAsLocked is enabled - update locked state based on disabled state
193
+ if (this.displayDisabledAsLocked) {
194
+ this.locked = isDisabled;
195
+ }
196
+ }
197
+ // ----------------------------------------------------------------------------
198
+ // VALIDATORS
199
+ // ----------------------------------------------------------------------------
200
+ /** Method that performs synchronous validation against the provided control. Used for internal validation. */
201
+ validate(_control) {
202
+ return null;
203
+ }
204
+ /** Registers a callback function to call when the validator inputs change. */
205
+ registerOnValidatorChange(fn) {
206
+ this.onValidatorChange = fn;
207
+ }
208
+ // ----------------------------------------------------------------------------
209
+ // HELPERS
210
+ // ----------------------------------------------------------------------------
211
+ /** Returns the first entry in an error object. */
212
+ get firstError() {
213
+ const errors = this.ngControl.errors;
214
+ if (!errors)
215
+ return null;
216
+ const code = Object.keys(errors)[0];
217
+ return { code, params: errors[code] };
218
+ }
219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
220
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvBaseControlValueAccessorComponent, selector: "ng-component", inputs: { id: "id", name: "name", label: "label", role: "role", value: "value", error: "error", description: "description", autofocus: "autofocus", defaultValue: "defaultValue", reset: "reset", optional: "optional", locked: "locked", displayDisabledAsLocked: "displayDisabledAsLocked", required: "required", invalid: "invalid", valid: "valid", focused: "focused", disabled: "disabled" }, outputs: { nggvFocus: "nggvFocus", nggvBlur: "nggvBlur" }, host: { properties: { "attr.id": "this.id" } }, queries: [{ propertyName: "labelContentTpl", first: true, predicate: ["labelTpl"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: '', isInline: true }); }
221
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent }); }
222
+ }
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorComponent, decorators: [{
224
+ type: Injectable
225
+ }, {
226
+ type: Component,
227
+ args: [{ template: '' }]
228
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
229
+ type: Self
230
+ }, {
231
+ type: Optional
232
+ }] }, { type: undefined, decorators: [{
233
+ type: Optional
234
+ }, {
235
+ type: Inject,
236
+ args: [TRANSLOCO_SCOPE]
237
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { labelContentTpl: [{
238
+ type: ContentChild,
239
+ args: ['labelTpl', { read: TemplateRef }]
240
+ }], inputRef: [{
241
+ type: ViewChild,
242
+ args: ['input', { read: ElementRef }]
243
+ }], id: [{
244
+ type: HostBinding,
245
+ args: ['attr.id']
246
+ }, {
247
+ type: Input
248
+ }], name: [{
249
+ type: Input
250
+ }], label: [{
251
+ type: Input
252
+ }], role: [{
253
+ type: Input
254
+ }], value: [{
255
+ type: Input
256
+ }], error: [{
257
+ type: Input
258
+ }], description: [{
259
+ type: Input
260
+ }], autofocus: [{
261
+ type: Input
262
+ }], defaultValue: [{
263
+ type: Input
264
+ }], reset: [{
265
+ type: Input
266
+ }], optional: [{
267
+ type: Input
268
+ }], locked: [{
269
+ type: Input
270
+ }], displayDisabledAsLocked: [{
271
+ type: Input
272
+ }], required: [{
273
+ type: Input
274
+ }], invalid: [{
275
+ type: Input
276
+ }], valid: [{
277
+ type: Input
278
+ }], focused: [{
279
+ type: Input
280
+ }], disabled: [{
281
+ type: Input
282
+ }], nggvFocus: [{
283
+ type: Output
284
+ }], nggvBlur: [{
285
+ type: Output
286
+ }] } });
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFHTCxTQUFTLEVBR1QsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUE7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sbUJBQW1CLENBQUE7OztBQUluRSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLG9DQUFvQztJQXlDL0Msb0VBQW9FO0lBQ3BFLElBQWEsTUFBTSxDQUFDLEtBQWlDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBT0QsbURBQW1EO0lBQ25ELElBQWEsUUFBUSxDQUFDLEtBQWlDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO0lBQ3hCLENB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LFNBQVM7O3NCQUFHLEtBQUs7Z0JBRXJCLElBQUk7c0JBQVosS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFRRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBTU8sUUFBUTtzQkFBcEIsS0FBSztnQkF3Qk8sT0FBTztzQkFBbkIsS0FBSztnQkFhTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVHLE9BQU87c0JBQWYsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQWFhLFNBQVM7c0JBQTNCLE1BQU07Z0JBRVksUUFBUTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb250ZW50Q2hpbGQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbydcblxuQEluamVjdGFibGUoKSAvLyBXb3JrYXJvdW5kIGZvciBDb21wb2RvYyBodHRwczovL2dpdGh1Yi5jb20vY29tcG9kb2MvY29tcG9kb2MvaXNzdWVzLzk4NFxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KSAvLyBSZXF1aXJlZCB3aXRoIEFuZ3VsYXIgaXZ5IGNvbXBpbGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKiogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBsYWJlbC5cbiAgICogU3BlY2lmaWVkIGJ5IG5lc3RpbmcgYW4gYDxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+Q3VzdG9tIExhYmVsPC9uZy10ZW1wbGF0ZT5gLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUcGwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGxhYmVsQ29udGVudFRwbD86IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD5cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmXG5cbiAgLyogQVRUUklCVVRFUyAqL1xuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ2d2Py5uZXh0SWQoKVxuICAvKiogTmFtZSBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQElucHV0KCkgbmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogTGFiZWwgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQgdXNpbmcgdGhlIGRlZmF1bHQgdGVtcGxhdGUuXG4gICAqIENhbiBiZSBvdmVyd3JpdHRlbiBieSBzcGVjaWZ5aW5nIGFuIGA8bmctdGVtcGxhdGUgI2xhYmVsVHBsPkN1c3RvbSBMYWJlbDwvbmctdGVtcGxhdGU+YC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nXG4gIC8qKiBSb2xlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BY2Nlc3NpYmlsaXR5L0FSSUEvUm9sZXMgKi9cbiAgQElucHV0KCkgcm9sZT86IHN0cmluZ1xuICAvKiogVmFsdWUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuIE1vc3RseSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggcmFkaW8gYW5kIGNoZWNrYm94ZXMuICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnlcbiAgLyoqIEFuIGVycm9yIHN0cmluZyB0byBiZSBzaG93biB1bmRlciBpbnZhbGlkIGlucHV0cy4gT3ZlcndyaXRlcyBhbnkgZm9ybSBlcnJvcnMuICovXG4gIEBJbnB1dCgpIGVycm9yPzogc3RyaW5nXG4gIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gQm90aCB2aXNpYmx5IGFuZCBhcyBgYXJpYS1sYWJlbGAuICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGJyb3dzZXIgd2lsbCB0cnkgdG8gYXV0b21hdGljYWxseSBzZXQgZm9jdXMgdG8gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlXG4gIC8qKiBEZWFmdWx0IHZhbHVlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiBVc2VkIHdoZW4gcmVzZXR0aW5nIGNoaWxkIGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZT86IGFueVxuICAvKiogSWYgcGFzc2VkLCB0aGUgY29tcG9uZW50IHdpbGwgbGlzdGVuIGZvciB1cGRhdGVzIGFuZCB3aWxsIHJlc2V0IGl0cyB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcmVzZXQ/OiBPYnNlcnZhYmxlPGFueT5cbiAgLyoqIEFkZHMgKE9wdGlvbmFsKSB0byBpbnB1dCBsYWJlbC4gKi9cbiAgQElucHV0KCkgb3B0aW9uYWw/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIHByaXZhdGUgX2xvY2tlZDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIEhpZGVzIHRoZSBpbnB1dCBib3JkZXJzIGFuZCBkaXNwbGF5cyBjdXJyZW50IHZhbHVlIGFzIGEgdGV4dC4gKi9cbiAgQElucHV0KCkgc2V0IGxvY2tlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9sb2NrZWQgPSB2YWx1ZVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBsb2NrZWQoKTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9sb2NrZWRcbiAgfVxuICAvKiogSWYgc2V0IHRvIHRydWUsIHVzaW5nIGEgY29udHJvbHMgZGlzYWJsZWQgc3RhdGUgd2lsbCBkaXNwbGF5IGlucHV0IGFzIGxvY2tlZC4gKi9cbiAgQElucHV0KCkgZGlzcGxheURpc2FibGVkQXNMb2NrZWQ/OiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIC8qIFNUQVRFUyAqL1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIHJlcXVpcmVkIGZsYWcgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KCkgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWVcbiAgfVxuICAvKiogQ2hpbGQgaW5wdXQgZWxlbWVudCBpcyBjb25zaWRlcmVkIHJlcXVpcmVkIGFuZCBjaGFuZ2VzIGRlZmF1bHQgbGFiZWwgdGVtcGxhdGUgYWNjb3JkaW5nbHkuICovXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgLy8gaWYgcmVxdWlyZWQgaXMgc2V0ID0+IHJldHVybiByZXF1aXJlZFxuICAgIGlmICh0aGlzLl9yZXF1aXJlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdGhpcy5fcmVxdWlyZWRcblxuICAgIC8vIGlmIHJlcXVpcmVkIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIGNvbnRyb2wgPT4gcmV0dXJuIGNvbnRyb2wucmVxdWlyZWRcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkYXRvcikge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkYXRvcihcbiAgICAgICAge30gYXMgQWJzdHJhY3RDb250cm9sLFxuICAgICAgKVxuICAgICAgLy8gcmV0dXJucyB0cnVlIGZvciBhbnkgZXJyb3IgdGhhdCBzdGFydHMgd2l0aCByZXF1aXJlZFxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbGlkYXRvciA/PyB7fSkuc29tZSgoa2V5KSA9PlxuICAgICAgICBrZXkuc3RhcnRzV2l0aCgncmVxdWlyZWQnKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIHByaXZhdGUgX2ludmFsaWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIE92ZXJyaWRlIHRoZSBpbnZhbGlkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCBpbnZhbGlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW52YWxpZCA9IHZhbHVlXG4gIH1cbiAgLyoqIFRoZSBjb21wb25lbnQgaGFzIHRoZSBpbnZhbGlkIHN0YXRlLCB1c3VhbGx5IGRlY29yYXRpbmcgdGhlIGVsZW1lbnRzIHJlZCBhbmQgc2hvd3MgdGhlIGZpcnN0IGVycm9yLiAqL1xuICBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5faW52YWxpZCA9PT0gdHJ1ZSB8fCB0aGlzLl9pbnZhbGlkID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuX2ludmFsaWRcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udG91Y2hlZFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBPdmVycmlkZSB0aGUgdmFsaWQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KCkgc2V0IHZhbGlkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdmFsaWQgPSB2YWx1ZVxuICB9XG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgdmFsaWQgc3RhdGUsIHVzdWFsbHkgZGVjb3JhdGluZyB0aGUgZWxlbWVudHMgZ3JlZW4uICovXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fdmFsaWQgPT09IHRydWUgfHwgdGhpcy5fdmFsaWQgPT09IGZhbHNlKSByZXR1cm4gdGhpcy5fdmFsaWRcbiAgICByZXR1cm4gISF0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnRvdWNoZWRcbiAgfVxuXG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgZm9jdXNlZCBzdGF0ZSwgdXBkYXRlZCBieSB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCdzIGZvY3VzIHN0YXRlLiAqL1xuICBASW5wdXQoKSBmb2N1c2VkID0gZmFsc2VcblxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWVcbiAgfVxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIGRpc2FibGVkIHN0YXRlLCB1c3VhbGx5IG11dGluZyB0aGUgY29sb3JzIGFuZCByZW1vdmVzIGludGVyYWN0aW9uLiAqL1xuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkID09PSB0cnVlIHx8IHRoaXMuX2Rpc2FibGVkID09PSBmYWxzZSlcbiAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZFxuICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sPy5jb250cm9sPy5kaXNhYmxlZFxuICB9XG5cbiAgLyogVFJJR0dFUlMgKi9cblxuICAvKiogRW1pdHMgZm9jdXMgZXZlbnRzIHRyaWdnZXJlZCBieSB0aGUgY2hpbGQgZWxlbWVudHMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBuZ2d2Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgLyoqIEVtaXRzIGZvY3VzIGV2ZW50cyB0cmlnZ2VyZWQgYnkgdGhlIGNoaWxkIGVsZW1lbnRzLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgbmdndkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICAvKiBWQUxVRSBIQU5ETEVSUyAqL1xuXG4gIHByaXZhdGUgX3N0YXRlOiBhbnkgPSBudWxsXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQgPSAoKSA9PiB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbFxuXG4gIC8qIE9USEVSIFZBUklBQkxFUyAqL1xuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyogTElGRSBDWUNMRSBWQVJJQUJMRVMgKi9cblxuICBwcml2YXRlIF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudC5cbiAgICogQHBhcmFtIG5nQ29udHJvbCBvcHRpb25hbCBGb3JtQ29udHJvbCBwcm92aWRlZCB3aGVuIGNvbXBvbmVudCBpcyB1c2VkIGluIGEgZm9ybSwgdGhyb3VnaCBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAgICogQHBhcmFtIHRyYW5zbG9jb1Njb3BlIG9wdGlvbmFsIFRyYW5zbG9jb1Njb3BlIHByb3ZpZGVkIGlmIGNvbXBvbmVudCBpcyB1c2VkIHdpdGhpbiBhIHNjb3BlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIC8vIE5vdGU6IHdlIHByb3ZpZGUgdGhlIHZhbHVlIGFjY2Vzc29yIHRocm91Z2ggaGVyZSwgaW5zdGVhZCBvZlxuICAgICAgLy8gdGhlIGBwcm92aWRlcnNgIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29udGV4dHVhbC1saWZlY3ljbGVcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFt0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZV0pLFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIGlmIHJlc2V0IG9ic2VydmFibGUgaGFzIGJlZW4gcGFzc2VkLCBzdWJzY3JpYmUgYWZ0ZXIgdXBkYXRlc1xuICAgIHRoaXMucmVzZXQ/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAvLyByZXNldCB2YWx1ZSBvZiBjb250cm9sbGVyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmRlZmF1bHRWYWx1ZVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb250ZXh0dWFsLWxpZmVjeWNsZVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gaWYgZGVmYXVsdCB2YWx1ZSBpcyBzZXQsIHRoZW4gZG9uJ3QgYWx0ZXIgaXQuIE90aGVyd2lzZSwgdXNlXG4gICAgLy8gY3VycmVudCB2YWx1ZSBvZiBjb250cm9sbGVyIGFmdGVyIGluaXRpYXRpb24gYXMgZGVmYXVsdCB2YWx1ZVxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWUgPz8gdGhpcy5uZ0NvbnRyb2w/LnZhbHVlXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKClcbiAgfVxuXG4gIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMuZm9jdXNlZCA9IHRydWVcbiAgICB0aGlzLm5nZ3ZGb2N1cy5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZVxuICAgIHRoaXMubmdndkJsdXIuZW1pdChldmVudClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgYWN0dWFsIGlucHV0IGVsZW1lbnQuICovXG4gIHNldEZvY3VzKCkge1xuICAgIGlmICh0aGlzLmlucHV0UmVmKSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDT05UUk9MIFZBTFVFIEFDQ0VTU09SXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogSW50ZXJuYWwgc3RhdGUvdmFsdWUgdGhhdCB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgaGFzLiAgKi9cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVxuICB9XG5cbiAgLyoqIEludGVybmFsIHN0YXRlL3ZhbHVlIHRoYXQgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGhhcy4gICovXG4gIHNldCBzdGF0ZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB2YWx1ZSA9IG51bGxcbiAgICB0aGlzLl9zdGF0ZSA9IHZhbHVlXG4gIH1cblxuICAvKiogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgfVxuXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50J3MgdmFsdWUgY2hhbmdlcy4gKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gb2JqZWN0KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCB0cmlnZ2VycyBvbiBibHVyLiAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBieSB0aGUgZm9ybXMgQVBJIHdoZW4gdGhlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMgdG8gb3IgZnJvbSAnRElTQUJMRUQnLiAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuXG4gICAgLy8gaWYgZGlzcGxheURpc2FibGVkQXNMb2NrZWQgaXMgZW5hYmxlZCAtIHVwZGF0ZSBsb2NrZWQgc3RhdGUgYmFzZWQgb24gZGlzYWJsZWQgc3RhdGVcbiAgICBpZiAodGhpcy5kaXNwbGF5RGlzYWJsZWRBc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2NrZWQgPSBpc0Rpc2FibGVkXG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBWQUxJREFUT1JTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogTWV0aG9kIHRoYXQgcGVyZm9ybXMgc3luY2hyb25vdXMgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBjb250cm9sLiBVc2VkIGZvciBpbnRlcm5hbCB2YWxpZGF0aW9uLiAqL1xuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsaWRhdG9yIGlucHV0cyBjaGFuZ2UuICovXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJldHVybnMgdGhlIGZpcnN0IGVudHJ5IGluIGFuIGVycm9yIG9iamVjdC4gKi9cbiAgZ2V0IGZpcnN0RXJyb3IoKTogeyBjb2RlOiBzdHJpbmc7IHBhcmFtczogYW55IH0gfCBudWxsIHtcbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gdGhpcy5uZ0NvbnRyb2wuZXJyb3JzXG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiBudWxsXG4gICAgY29uc3QgY29kZTogc3RyaW5nID0gT2JqZWN0LmtleXMoZXJyb3JzKVswXVxuICAgIHJldHVybiB7IGNvZGUsIHBhcmFtczogZXJyb3JzW2NvZGVdIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { NgvBaseControlValueAccessorComponent } from './base-control-value-accessor.component';
3
+ import * as i0 from "@angular/core";
4
+ export class NgvBaseControlValueAccessorModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, declarations: [NgvBaseControlValueAccessorComponent], exports: [NgvBaseControlValueAccessorComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvBaseControlValueAccessorModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [NgvBaseControlValueAccessorComponent],
13
+ imports: [],
14
+ exports: [NgvBaseControlValueAccessorComponent],
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Jhc2UtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUE7O0FBTzlGLE1BQU0sT0FBTyxpQ0FBaUM7K0dBQWpDLGlDQUFpQztnSEFBakMsaUNBQWlDLGlCQUo3QixvQ0FBb0MsYUFFekMsb0NBQW9DO2dIQUVuQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBTDdDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ3BELE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5ndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTmd2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3ZCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './base-control-value-accessor.component';
2
+ export * from './base-control-value-accessor.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHNDQUFzQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IubW9kdWxlJ1xuIl19