@ng-doc/app 16.3.6 → 16.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/components/page/page.module.d.ts +4 -5
  2. package/components/playground/base-playground.d.ts +3 -2
  3. package/components/playground/playground-demo/playground-demo.component.d.ts +2 -1
  4. package/components/playground/playground.component.d.ts +1 -0
  5. package/constants/themes.d.ts +2 -2
  6. package/esm2022/components/page/page.module.mjs +16 -28
  7. package/esm2022/components/playground/base-playground.mjs +11 -4
  8. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +15 -11
  9. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +5 -5
  10. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -3
  11. package/esm2022/components/playground/playground.component.mjs +4 -3
  12. package/esm2022/constants/themes.mjs +3 -3
  13. package/esm2022/processors/playground-processor/playground-processor.directive.mjs +6 -3
  14. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +4 -3
  15. package/esm2022/type-controls/boolean-control/index.mjs +1 -2
  16. package/esm2022/type-controls/number-control/index.mjs +1 -2
  17. package/esm2022/type-controls/string-control/index.mjs +1 -2
  18. package/esm2022/type-controls/string-control/string-control.component.mjs +8 -5
  19. package/esm2022/type-controls/type-alias-control/index.mjs +1 -2
  20. package/fesm2022/ng-doc-app-components-page.mjs +15 -27
  21. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  22. package/fesm2022/ng-doc-app-components-playground.mjs +33 -20
  23. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  24. package/fesm2022/ng-doc-app-constants.mjs +2 -2
  25. package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
  26. package/fesm2022/ng-doc-app-processors-playground-processor.mjs +5 -2
  27. package/fesm2022/ng-doc-app-processors-playground-processor.mjs.map +1 -1
  28. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +5 -21
  29. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  30. package/fesm2022/ng-doc-app-type-controls-number-control.mjs +3 -19
  31. package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  32. package/fesm2022/ng-doc-app-type-controls-string-control.mjs +10 -23
  33. package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  34. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +4 -20
  35. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  36. package/package.json +3 -3
  37. package/styles/global.css +3 -0
  38. package/styles/main.css +3 -0
  39. package/type-controls/boolean-control/index.d.ts +0 -1
  40. package/type-controls/number-control/index.d.ts +0 -1
  41. package/type-controls/string-control/index.d.ts +0 -1
  42. package/type-controls/string-control/string-control.component.d.ts +1 -0
  43. package/type-controls/type-alias-control/index.d.ts +0 -1
  44. package/esm2022/type-controls/boolean-control/boolean-control.module.mjs +0 -21
  45. package/esm2022/type-controls/number-control/number-control.module.mjs +0 -23
  46. package/esm2022/type-controls/string-control/string-control.module.mjs +0 -23
  47. package/esm2022/type-controls/type-alias-control/type-alias-control.module.mjs +0 -23
  48. package/type-controls/boolean-control/boolean-control.module.d.ts +0 -8
  49. package/type-controls/number-control/number-control.module.d.ts +0 -10
  50. package/type-controls/string-control/string-control.module.d.ts +0 -10
  51. package/type-controls/type-alias-control/type-alias-control.module.d.ts +0 -10
@@ -1,10 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "@ng-doc/app/type-controls";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@angular/router";
5
- import * as i4 from "./page.component";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@angular/router";
4
+ import * as i3 from "./page.component";
6
5
  export declare class NgDocPageModule {
7
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPageModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgDocPageModule, never, [typeof i1.NgDocBooleanControlModule, typeof i1.NgDocNumberControlModule, typeof i1.NgDocStringControlModule, typeof i1.NgDocTypeAliasControlModule, typeof i2.CommonModule, typeof i3.RouterLink, typeof i4.NgDocPageComponent], [typeof i4.NgDocPageComponent]>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgDocPageModule, never, [typeof i1.CommonModule, typeof i2.RouterLink, typeof i3.NgDocPageComponent], [typeof i3.NgDocPageComponent]>;
9
8
  static ɵinj: i0.ɵɵInjectorDeclaration<NgDocPageModule>;
10
9
  }
@@ -8,8 +8,9 @@ export declare abstract class NgDocBasePlayground implements Pick<NgDocPlaygroun
8
8
  static readonly selector: string;
9
9
  abstract readonly playground?: Type<unknown>;
10
10
  abstract readonly viewContainerRef?: ViewContainerRef;
11
- data: Record<string, unknown>;
11
+ properties: Record<string, any>;
12
+ data: Record<string, any>;
12
13
  content: any;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocBasePlayground, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocBasePlayground, never, never, {}, {}, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocBasePlayground, never, never, { "properties": { "alias": "properties"; "required": false; }; "data": { "alias": "data"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, {}, never, never, false, never>;
15
16
  }
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  export declare class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties> implements OnChanges, OnDestroy {
9
9
  private readonly injector;
10
10
  id: string;
11
+ pipeName: string;
11
12
  selector: string;
12
13
  configuration?: NgDocPlaygroundConfig;
13
14
  properties?: T;
@@ -27,5 +28,5 @@ export declare class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundPrope
27
28
  private getActiveInputs;
28
29
  ngOnDestroy(): void;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPlaygroundDemoComponent<any>, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocPlaygroundDemoComponent<any>, "ng-doc-playground-demo", never, { "id": { "alias": "id"; "required": false; }; "selector": { "alias": "selector"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "recreateDemo": { "alias": "recreateDemo"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocPlaygroundDemoComponent<any>, "ng-doc-playground-demo", never, { "id": { "alias": "id"; "required": false; }; "pipeName": { "alias": "pipeName"; "required": false; }; "selector": { "alias": "selector"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "recreateDemo": { "alias": "recreateDemo"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, true, never>;
31
32
  }
@@ -8,6 +8,7 @@ export declare class NgDocPlaygroundComponent<T extends NgDocPlaygroundPropertie
8
8
  private readonly rootPage;
9
9
  private readonly formBuilder;
10
10
  id: string;
11
+ pipeName: string;
11
12
  selectors: string[];
12
13
  properties?: T;
13
14
  formGroup: FormGroup<NgDocPlaygroundForm>;
@@ -1,6 +1,6 @@
1
1
  import { NgDocTheme } from '@ng-doc/app/interfaces';
2
2
  /**
3
- * Dark theme. You can set it manually by calling `NgDocThemeService.setTheme` method.
3
+ * Dark theme. You can set it manually by calling `NgDocThemeService.set` method.
4
4
  *
5
5
  * ```typescript
6
6
  * import {Component} from '@angular/core';
@@ -32,7 +32,7 @@ import { NgDocTheme } from '@ng-doc/app/interfaces';
32
32
  */
33
33
  export declare const NG_DOC_NIGHT_THEME: NgDocTheme;
34
34
  /**
35
- * Dark purple theme. You can set it manually by calling `NgDocThemeService.setTheme` method.
35
+ * Dark purple theme. You can set it manually by calling `NgDocThemeService.set` method.
36
36
  *
37
37
  * ```typescript
38
38
  * import {Component} from '@angular/core';
@@ -1,44 +1,32 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { RouterLink } from '@angular/router';
4
- import { NgDocBooleanControlModule, NgDocNumberControlModule, NgDocStringControlModule, NgDocTypeAliasControlModule, } from '@ng-doc/app/type-controls';
4
+ import { provideTypeControl } from '@ng-doc/app/helpers';
5
+ import { NgDocBooleanControlComponent, NgDocNumberControlComponent, NgDocStringControlComponent, NgDocTypeAliasControlComponent, } from '@ng-doc/app/type-controls';
5
6
  import { NgDocPageComponent } from './page.component';
6
7
  import * as i0 from "@angular/core";
7
8
  class NgDocPageModule {
8
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, imports: [
10
- /* TypeControls */
11
- NgDocBooleanControlModule,
12
- NgDocNumberControlModule,
13
- NgDocStringControlModule,
14
- NgDocTypeAliasControlModule,
15
- CommonModule,
16
- RouterLink,
17
- NgDocPageComponent], exports: [NgDocPageComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, imports: [
19
- /* TypeControls */
20
- NgDocBooleanControlModule,
21
- NgDocNumberControlModule,
22
- NgDocStringControlModule,
23
- NgDocTypeAliasControlModule,
24
- CommonModule,
25
- NgDocPageComponent] }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, imports: [CommonModule, RouterLink, NgDocPageComponent], exports: [NgDocPageComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, providers: [
12
+ provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
13
+ provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
14
+ provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
15
+ provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
16
+ ], imports: [CommonModule, NgDocPageComponent] }); }
26
17
  }
27
18
  export { NgDocPageModule };
28
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageModule, decorators: [{
29
20
  type: NgModule,
30
21
  args: [{
31
- imports: [
32
- /* TypeControls */
33
- NgDocBooleanControlModule,
34
- NgDocNumberControlModule,
35
- NgDocStringControlModule,
36
- NgDocTypeAliasControlModule,
37
- CommonModule,
38
- RouterLink,
39
- NgDocPageComponent,
22
+ imports: [CommonModule, RouterLink, NgDocPageComponent],
23
+ providers: [
24
+ provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
25
+ provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
26
+ provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
27
+ provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
40
28
  ],
41
29
  exports: [NgDocPageComponent],
42
30
  }]
43
31
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsR0FDM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFcEQsTUFhYSxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZTtZQVgxQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsMkJBQTJCO1lBQzNCLFlBQVk7WUFDWixVQUFVO1lBQ1Ysa0JBQWtCLGFBRVQsa0JBQWtCOytHQUVoQixlQUFlO1lBWDFCLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLHdCQUF3QjtZQUN4QiwyQkFBMkI7WUFDM0IsWUFBWTtZQUVaLGtCQUFrQjs7U0FJUCxlQUFlOzJGQUFmLGVBQWU7a0JBYjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFO3dCQUNSLGtCQUFrQjt3QkFDbEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixZQUFZO3dCQUNaLFVBQVU7d0JBQ1Ysa0JBQWtCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcblx0TmdEb2NCb29sZWFuQ29udHJvbE1vZHVsZSxcblx0TmdEb2NOdW1iZXJDb250cm9sTW9kdWxlLFxuXHROZ0RvY1N0cmluZ0NvbnRyb2xNb2R1bGUsXG5cdE5nRG9jVHlwZUFsaWFzQ29udHJvbE1vZHVsZSxcbn0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZS1jb250cm9scyc7XG5cbmltcG9ydCB7TmdEb2NQYWdlQ29tcG9uZW50fSBmcm9tICcuL3BhZ2UuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1xuXHRcdC8qIFR5cGVDb250cm9scyAqL1xuXHRcdE5nRG9jQm9vbGVhbkNvbnRyb2xNb2R1bGUsXG5cdFx0TmdEb2NOdW1iZXJDb250cm9sTW9kdWxlLFxuXHRcdE5nRG9jU3RyaW5nQ29udHJvbE1vZHVsZSxcblx0XHROZ0RvY1R5cGVBbGlhc0NvbnRyb2xNb2R1bGUsXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFJvdXRlckxpbmssXG5cdFx0TmdEb2NQYWdlQ29tcG9uZW50LFxuXHRdLFxuXHRleHBvcnRzOiBbTmdEb2NQYWdlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQYWdlTW9kdWxlIHt9XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFDTiw0QkFBNEIsRUFDNUIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQiw4QkFBOEIsR0FDOUIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFcEQsTUFVYSxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxZQVRqQixZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixhQU81QyxrQkFBa0I7K0dBRWhCLGVBQWUsYUFSaEI7WUFDVixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztZQUNqRixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7WUFDdEUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQ3RFLGtCQUFrQixDQUFDLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQ3pGLFlBTlMsWUFBWSxFQUFjLGtCQUFrQjs7U0FTMUMsZUFBZTsyRkFBZixlQUFlO2tCQVYzQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3ZELFNBQVMsRUFBRTt3QkFDVixrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQzt3QkFDakYsa0JBQWtCLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO3dCQUN0RSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7d0JBQ3RFLGtCQUFrQixDQUFDLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO3FCQUN6RjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtwcm92aWRlVHlwZUNvbnRyb2x9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtcblx0TmdEb2NCb29sZWFuQ29udHJvbENvbXBvbmVudCxcblx0TmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LFxuXHROZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsXG5cdE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCxcbn0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZS1jb250cm9scyc7XG5cbmltcG9ydCB7TmdEb2NQYWdlQ29tcG9uZW50fSBmcm9tICcuL3BhZ2UuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgTmdEb2NQYWdlQ29tcG9uZW50XSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdOZ0RvY1R5cGVBbGlhcycsIE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCwge29yZGVyOiAxMH0pLFxuXHRcdHByb3ZpZGVUeXBlQ29udHJvbCgnc3RyaW5nJywgTmdEb2NTdHJpbmdDb250cm9sQ29tcG9uZW50LCB7b3JkZXI6IDIwfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdudW1iZXInLCBOZ0RvY051bWJlckNvbnRyb2xDb21wb25lbnQsIHtvcmRlcjogMzB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ2Jvb2xlYW4nLCBOZ0RvY0Jvb2xlYW5Db250cm9sQ29tcG9uZW50LCB7aGlkZUxhYmVsOiB0cnVlLCBvcmRlcjogNDB9KSxcblx0XSxcblx0ZXhwb3J0czogW05nRG9jUGFnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGFnZU1vZHVsZSB7fVxuIl19
@@ -1,19 +1,26 @@
1
- import { Directive } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Base class for playgrounds components.
5
5
  */
6
6
  class NgDocBasePlayground {
7
7
  constructor() {
8
+ this.properties = {};
8
9
  this.data = {};
9
10
  this.content = {};
10
11
  }
11
12
  static { this.selector = 'unknown'; }
12
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocBasePlayground, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgDocBasePlayground, ngImport: i0 }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgDocBasePlayground, inputs: { properties: "properties", data: "data", content: "content" }, ngImport: i0 }); }
14
15
  }
15
16
  export { NgDocBasePlayground };
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocBasePlayground, decorators: [{
17
18
  type: Directive
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wbGF5Z3JvdW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wbGF5Z3JvdW5kL2Jhc2UtcGxheWdyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQzs7QUFHaEU7O0dBRUc7QUFDSCxNQUNzQixtQkFBbUI7SUFEekM7UUFNQyxTQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUNuQyxZQUFPLEdBQVEsRUFBRSxDQUFDO0tBQ2xCO2FBTmdCLGFBQVEsR0FBVyxTQUFTLEFBQXBCLENBQXFCOzhHQUR4QixtQkFBbUI7a0dBQW5CLG1CQUFtQjs7U0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgVHlwZSwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbmZpZ30gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHBsYXlncm91bmRzIGNvbXBvbmVudHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nRG9jQmFzZVBsYXlncm91bmQgaW1wbGVtZW50cyBQaWNrPE5nRG9jUGxheWdyb3VuZENvbmZpZywgJ2RhdGEnPiB7XG5cdHN0YXRpYyByZWFkb25seSBzZWxlY3Rvcjogc3RyaW5nID0gJ3Vua25vd24nO1xuXHRhYnN0cmFjdCByZWFkb25seSBwbGF5Z3JvdW5kPzogVHlwZTx1bmtub3duPjtcblx0YWJzdHJhY3QgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cblx0ZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0Y29udGVudDogYW55ID0ge307XG59XG4iXX0=
19
+ }], propDecorators: { properties: [{
20
+ type: Input
21
+ }], data: [{
22
+ type: Input
23
+ }], content: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wbGF5Z3JvdW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wbGF5Z3JvdW5kL2Jhc2UtcGxheWdyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxlQUFlLENBQUM7O0FBR3ZFOztHQUVHO0FBQ0gsTUFDc0IsbUJBQW1CO0lBRHpDO1FBT0MsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFHckMsU0FBSSxHQUF3QixFQUFFLENBQUM7UUFHL0IsWUFBTyxHQUFRLEVBQUUsQ0FBQztLQUNsQjthQVpnQixhQUFRLEdBQVcsU0FBUyxBQUFwQixDQUFxQjs4R0FEeEIsbUJBQW1CO2tHQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzhCQU9ULFVBQVU7c0JBRFQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kQ29uZmlnfSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGxheWdyb3VuZHMgY29tcG9uZW50cy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdEb2NCYXNlUGxheWdyb3VuZCBpbXBsZW1lbnRzIFBpY2s8TmdEb2NQbGF5Z3JvdW5kQ29uZmlnLCAnZGF0YSc+IHtcblx0c3RhdGljIHJlYWRvbmx5IHNlbGVjdG9yOiBzdHJpbmcgPSAndW5rbm93bic7XG5cdGFic3RyYWN0IHJlYWRvbmx5IHBsYXlncm91bmQ/OiBUeXBlPHVua25vd24+O1xuXHRhYnN0cmFjdCByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cblx0QElucHV0KClcblx0ZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG5cdEBJbnB1dCgpXG5cdGNvbnRlbnQ6IGFueSA9IHt9O1xufVxuIl19
@@ -1,10 +1,10 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { AsyncPipe } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, Injector, Input, ViewChild, ViewContainerRef, } from '@angular/core';
4
4
  import { FormGroup } from '@angular/forms';
5
5
  import { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';
6
6
  import { getPlaygroundDemoToken } from '@ng-doc/app/helpers';
7
- import { buildPlaygroundDemoTemplate } from '@ng-doc/core/helpers/build-playground-demo-template';
7
+ import { buildPlaygroundDemoPipeTemplate, buildPlaygroundDemoTemplate, } from '@ng-doc/core/helpers/build-playground-demo-template';
8
8
  import { formatHtml } from '@ng-doc/core/helpers/format-html';
9
9
  import { objectKeys } from '@ng-doc/core/helpers/object-keys';
10
10
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
@@ -15,6 +15,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
15
15
  constructor(injector) {
16
16
  this.injector = injector;
17
17
  this.id = '';
18
+ this.pipeName = '';
18
19
  this.selector = '';
19
20
  this.recreateDemo = false;
20
21
  this.code = of('');
@@ -26,7 +27,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
26
27
  const demoInjector = getPlaygroundDemoToken(this.id);
27
28
  if (demoInjector) {
28
29
  const demos = this.injector.get(demoInjector, []);
29
- this.playgroundDemo = demos.find((demo) => demo.selector === this.selector);
30
+ this.playgroundDemo = demos.find((demo) => demo.selector === this.selector || demo.selector === this.pipeName);
30
31
  }
31
32
  this.updateDemo();
32
33
  this.form?.valueChanges
@@ -39,9 +40,8 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
39
40
  this.renderDemo();
40
41
  }
41
42
  if (data) {
42
- Object.assign(this.demoRef?.instance.playground ?? {}, data.properties);
43
- Object.assign(this.demoRef?.instance.content ?? {}, data.content);
44
- this.demoRef?.instance?.viewContainerRef?.injector.get(ChangeDetectorRef)?.markForCheck();
43
+ this.demoRef?.setInput('properties', data.properties ?? {});
44
+ this.demoRef?.setInput('content', data.content ?? {});
45
45
  }
46
46
  this.updateCodeView();
47
47
  }
@@ -51,11 +51,13 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
51
51
  if (this.playgroundDemo) {
52
52
  this.demoRef = this.demoOutlet?.createComponent(this.playgroundDemo);
53
53
  }
54
- this.demoRef?.changeDetectorRef.markForCheck();
54
+ this.demoRef?.changeDetectorRef.detectChanges();
55
55
  }
56
56
  }
57
57
  updateCodeView() {
58
- const template = buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());
58
+ const template = this.pipeName
59
+ ? buildPlaygroundDemoPipeTemplate(this.configuration?.template ?? '', this.pipeName, this.getActiveContent(), this.getActiveInputs())
60
+ : buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());
59
61
  this.code = formatHtml(template);
60
62
  }
61
63
  getActiveContent() {
@@ -74,7 +76,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
74
76
  const isString = typeof value === 'string';
75
77
  const inputValue = isString ? `'${value}'` : `${JSON.stringify(value)}`;
76
78
  if ((property.default ?? '') !== inputValue) {
77
- result[property.name] = inputValue;
79
+ result[property.inputName] = inputValue;
78
80
  }
79
81
  }
80
82
  return result;
@@ -85,7 +87,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
85
87
  this.unsubscribe$.complete();
86
88
  }
87
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundDemoComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundDemoComponent, isStandalone: true, selector: "ng-doc-playground-demo", inputs: { id: "id", selector: "selector", configuration: "configuration", properties: "properties", recreateDemo: "recreateDemo", form: "form" }, viewQueries: [{ propertyName: "demoOutlet", first: true, predicate: ["demoOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"], dependencies: [{ kind: "component", type: NgDocDemoDisplayerComponent, selector: "ng-doc-demo-displayer", inputs: ["codeContent", "code", "language", "container", "border", "expanded"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundDemoComponent, isStandalone: true, selector: "ng-doc-playground-demo", inputs: { id: "id", pipeName: "pipeName", selector: "selector", configuration: "configuration", properties: "properties", recreateDemo: "recreateDemo", form: "form" }, viewQueries: [{ propertyName: "demoOutlet", first: true, predicate: ["demoOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"], dependencies: [{ kind: "component", type: NgDocDemoDisplayerComponent, selector: "ng-doc-demo-displayer", inputs: ["codeContent", "code", "language", "container", "border", "expanded"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
91
  };
90
92
  NgDocPlaygroundDemoComponent = __decorate([
91
93
  UntilDestroy(),
@@ -97,6 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
97
99
  args: [{ selector: 'ng-doc-playground-demo', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocDemoDisplayerComponent, AsyncPipe], template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"] }]
98
100
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { id: [{
99
101
  type: Input
102
+ }], pipeName: [{
103
+ type: Input
100
104
  }], selector: [{
101
105
  type: Input
102
106
  }], configuration: [{
@@ -111,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
111
115
  type: ViewChild,
112
116
  args: ['demoOutlet', { static: true, read: ViewContainerRef }]
113
117
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULFFBQVEsRUFDUixLQUFLLEVBS0wsU0FBUyxFQUNULGdCQUFnQixHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUc1RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLekMsSUFTYSw0QkFBNEIsR0FUekMsTUFTYSw0QkFB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USxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxVQUFVLEVBQUU7b0JBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUNuQzthQUNEO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTdIVyw0QkFBNEI7a0dBQTVCLDRCQUE0Qix5VEFxQk0sZ0JBQWdCLGdFQzlEL0QsdUtBR0EsK1dEbUNXLDJCQUEyQiw2SUFBRSxTQUFTOztBQUdwQyw0QkFBNEI7SUFEeEMsWUFBWSxFQUFFO3FDQWdDeUIsUUFBUTtHQS9CbkMsNEJBQTRCLENBOEh4QztTQTlIWSw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDQyx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDOytGQU9qRCxFQUFFO3NCQURELEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUeXBlLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50fSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL2RlbW8tZGlzcGxheWVyJztcbmltcG9ydCB7Z2V0UGxheWdyb3VuZERlbW9Ub2tlbn0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jRm9ybVBhcnRpYWxWYWx1ZX0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZXMnO1xuaW1wb3J0IHtidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGV9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2J1aWxkLXBsYXlncm91bmQtZGVtby10ZW1wbGF0ZSc7XG5pbXBvcnQge2Zvcm1hdEh0bWx9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2Zvcm1hdC1odG1sJztcbmltcG9ydCB7b2JqZWN0S2V5c30gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvb2JqZWN0LWtleXMnO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRDb25maWcsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge05nRG9jRXh0cmFjdGVkVmFsdWV9IGZyb20gJ0BuZy1kb2MvY29yZS90eXBlcyc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TmdEb2NCYXNlUGxheWdyb3VuZH0gZnJvbSAnLi4vYmFzZS1wbGF5Z3JvdW5kJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kRm9ybX0gZnJvbSAnLi4vcGxheWdyb3VuZC1mb3JtJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtZGVtbycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtOZ0RvY0RlbW9EaXNwbGF5ZXJDb21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kRGVtb0NvbXBvbmVudDxUIGV4dGVuZHMgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllcyA9IE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXM+XG5cdGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcblx0QElucHV0KClcblx0aWQ6IHN0cmluZyA9ICcnO1xuXG5cdEBJbnB1dCgpXG5cdHNlbGVjdG9yOiBzdHJpbmcgPSAnJztcblxuXHRASW5wdXQoKVxuXHRjb25maWd1cmF0aW9uPzogTmdEb2NQbGF5Z3JvdW5kQ29uZmlnO1xuXG5cdEBJbnB1dCgpXG5cdHByb3BlcnRpZXM/OiBUO1xuXG5cdEBJbnB1dCgpXG5cdHJlY3JlYXRlRGVtbzogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGZvcm0hOiBGb3JtR3JvdXA8TmdEb2NQbGF5Z3JvdW5kRm9ybT47XG5cblx0QFZpZXdDaGlsZCgnZGVtb091dGxldCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuXHRkZW1vT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRwbGF5Z3JvdW5kRGVtbz86IHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kO1xuXG5cdGNvZGU6IE9ic2VydmFibGU8c3RyaW5nPiA9IG9mKCcnKTtcblxuXHRwcml2YXRlIGRlbW9SZWY/OiBDb21wb25lbnRSZWY8TmdEb2NCYXNlUGxheWdyb3VuZD47XG5cdHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge31cblxuXHRuZ09uQ2hhbmdlcyh7Zm9ybSwgaWR9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKGZvcm0gJiYgaWQpIHtcblx0XHRcdHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcblxuXHRcdFx0Y29uc3QgZGVtb0luamVjdG9yOiBJbmplY3Rpb25Ub2tlbjxBcnJheTx0eXBlb2YgTmdEb2NCYXNlUGxheWdyb3VuZD4+IHwgdW5kZWZpbmVkID0gZ2V0UGxheWdyb3VuZERlbW9Ub2tlbihcblx0XHRcdFx0dGhpcy5pZCxcblx0XHRcdCk7XG5cblx0XHRcdGlmIChkZW1vSW5qZWN0b3IpIHtcblx0XHRcdFx0Y29uc3QgZGVtb3M6IEFycmF5PHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kPiA9IHRoaXMuaW5qZWN0b3IuZ2V0KGRlbW9JbmplY3RvciwgW10pO1xuXHRcdFx0XHR0aGlzLnBsYXlncm91bmREZW1vID0gZGVtb3MuZmluZCgoZGVtbzogdHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQpID0+IGRlbW8uc2VsZWN0b3IgPT09IHRoaXMuc2VsZWN0b3IpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVwZGF0ZURlbW8oKTtcblxuXHRcdFx0dGhpcy5mb3JtPy52YWx1ZUNoYW5nZXNcblx0XHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKGRhdGE6IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPikgPT4gdGhpcy51cGRhdGVEZW1vKGRhdGEpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZURlbW8oZGF0YT86IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPik6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJlY3JlYXRlRGVtbyB8fCAhdGhpcy5kZW1vUmVmKSB7XG5cdFx0XHR0aGlzLnJlbmRlckRlbW8oKTtcblx0XHR9XG5cblx0XHRpZiAoZGF0YSkge1xuXHRcdFx0T2JqZWN0LmFzc2lnbih0aGlzLmRlbW9SZWY/Lmluc3RhbmNlLnBsYXlncm91bmQgPz8ge30sIGRhdGEucHJvcGVydGllcyk7XG5cdFx0XHRPYmplY3QuYXNzaWduKHRoaXMuZGVtb1JlZj8uaW5zdGFuY2UuY29udGVudCA/PyB7fSwgZGF0YS5jb250ZW50KTtcblx0XHRcdHRoaXMuZGVtb1JlZj8uaW5zdGFuY2U/LnZpZXdDb250YWluZXJSZWY/LmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik/Lm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblxuXHRcdHRoaXMudXBkYXRlQ29kZVZpZXcoKTtcblx0fVxuXG5cdHByaXZhdGUgcmVuZGVyRGVtbygpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5wbGF5Z3JvdW5kRGVtbykge1xuXHRcdFx0dGhpcy5kZW1vUmVmPy5kZXN0cm95KCk7XG5cblx0XHRcdGlmICh0aGlzLnBsYXlncm91bmREZW1vKSB7XG5cdFx0XHRcdHRoaXMuZGVtb1JlZiA9IHRoaXMuZGVtb091dGxldD8uY3JlYXRlQ29tcG9uZW50KHRoaXMucGxheWdyb3VuZERlbW8gYXMgdW5rbm93biBhcyBUeXBlPE5nRG9jQmFzZVBsYXlncm91bmQ+KTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5kZW1vUmVmPy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZUNvZGVWaWV3KCk6IHZvaWQge1xuXHRcdGNvbnN0IHRlbXBsYXRlOiBzdHJpbmcgPSBidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGUoXG5cdFx0XHR0aGlzLmNvbmZpZ3VyYXRpb24/LnRlbXBsYXRlID8/ICcnLFxuXHRcdFx0dGhpcy5zZWxlY3Rvcixcblx0XHRcdHRoaXMuZ2V0QWN0aXZlQ29udGVudCgpLFxuXHRcdFx0dGhpcy5nZXRBY3RpdmVJbnB1dHMoKSxcblx0XHQpO1xuXG5cdFx0dGhpcy5jb2RlID0gZm9ybWF0SHRtbCh0ZW1wbGF0ZSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGl2ZUNvbnRlbnQoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0Y29uc3QgZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0gKHRoaXMuZm9ybT8uY29udHJvbHMuY29udGVudC52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikgPz8ge307XG5cblx0XHRyZXR1cm4gb2JqZWN0S2V5cyhmb3JtRGF0YSkucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRyZXN1bHRba2V5XSA9IGZvcm1EYXRhW2tleV0gPyB0aGlzLmNvbmZpZ3VyYXRpb24/LmNvbnRlbnQ/LltrZXldLnRlbXBsYXRlID8/ICcnIDogJyc7XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSwge30pO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRBY3RpdmVJbnB1dHMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0Y29uc3QgZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIE5nRG9jRXh0cmFjdGVkVmFsdWU+ID1cblx0XHRcdCh0aGlzLmZvcm0/LmNvbnRyb2xzLnByb3BlcnRpZXMudmFsdWUgYXMgUmVjb3JkPHN0cmluZywgTmdEb2NFeHRyYWN0ZWRWYWx1ZT4pID8/IHt9O1xuXG5cdFx0cmV0dXJuIG9iamVjdEtleXMoZm9ybURhdGEpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBrZXk6IHN0cmluZykgPT4ge1xuXHRcdFx0Y29uc3QgcHJvcGVydHk6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5IHwgdW5kZWZpbmVkID0gdGhpcy5wcm9wZXJ0aWVzPy5ba2V5XTtcblxuXHRcdFx0aWYgKHByb3BlcnR5KSB7XG5cdFx0XHRcdGNvbnN0IHZhbHVlOiBOZ0RvY0V4dHJhY3RlZFZhbHVlID0gZm9ybURhdGFba2V5XTtcblx0XHRcdFx0Y29uc3QgaXNTdHJpbmc6IGJvb2xlYW4gPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuXHRcdFx0XHRjb25zdCBpbnB1dFZhbHVlOiBzdHJpbmcgPSBpc1N0cmluZyA/IGAnJHt2YWx1ZX0nYCA6IGAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gO1xuXG5cdFx0XHRcdGlmICgocHJvcGVydHkuZGVmYXVsdCA/PyAnJykgIT09IGlucHV0VmFsdWUpIHtcblx0XHRcdFx0XHRyZXN1bHRbcHJvcGVydHkubmFtZV0gPSBpbnB1dFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSwge30pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuXHRcdHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG5cdH1cbn1cbiIsIjxuZy1kb2MtZGVtby1kaXNwbGF5ZXIgW2NvZGVdPVwiKGNvZGUgfCBhc3luYykgPz8gJydcIiBbYm9yZGVyXT1cImZhbHNlXCIgbGFuZ3VhZ2U9XCJodG1sXCI+XG5cdDxuZy1jb250YWluZXIgI2RlbW9PdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L25nLWRvYy1kZW1vLWRpc3BsYXllcj5cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsUUFBUSxFQUNSLEtBQUssRUFLTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLDJCQUEyQixHQUMzQixNQUFNLHFEQUFxRCxDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHNUQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQWEsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3pDLElBU2EsNEJBQTRCLEdBVHpDLE1BU2EsNEJB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IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUeXBlLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50fSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL2RlbW8tZGlzcGxheWVyJztcbmltcG9ydCB7Z2V0UGxheWdyb3VuZERlbW9Ub2tlbn0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jRm9ybVBhcnRpYWxWYWx1ZX0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZXMnO1xuaW1wb3J0IHtcblx0YnVpbGRQbGF5Z3JvdW5kRGVtb1BpcGVUZW1wbGF0ZSxcblx0YnVpbGRQbGF5Z3JvdW5kRGVtb1RlbXBsYXRlLFxufSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9idWlsZC1wbGF5Z3JvdW5kLWRlbW8tdGVtcGxhdGUnO1xuaW1wb3J0IHtmb3JtYXRIdG1sfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9mb3JtYXQtaHRtbCc7XG5pbXBvcnQge29iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL29iamVjdC1rZXlzJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kQ29uZmlnLCBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzLCBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eX0gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOZ0RvY0V4dHJhY3RlZFZhbHVlfSBmcm9tICdAbmctZG9jL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge05nRG9jQmFzZVBsYXlncm91bmR9IGZyb20gJy4uL2Jhc2UtcGxheWdyb3VuZCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZEZvcm19IGZyb20gJy4uL3BsYXlncm91bmQtZm9ybSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nLWRvYy1wbGF5Z3JvdW5kLWRlbW8nLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbTmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50LCBBc3luY1BpcGVdLFxufSlcbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGNsYXNzIE5nRG9jUGxheWdyb3VuZERlbW9Db21wb25lbnQ8VCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMgPSBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzPlxuXHRpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG5cdEBJbnB1dCgpXG5cdGlkOiBzdHJpbmcgPSAnJztcblxuXHRASW5wdXQoKVxuXHRwaXBlTmFtZTogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0c2VsZWN0b3I6IHN0cmluZyA9ICcnO1xuXG5cdEBJbnB1dCgpXG5cdGNvbmZpZ3VyYXRpb24/OiBOZ0RvY1BsYXlncm91bmRDb25maWc7XG5cblx0QElucHV0KClcblx0cHJvcGVydGllcz86IFQ7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRAVmlld0NoaWxkKCdkZW1vT3V0bGV0Jywge3N0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG5cdGRlbW9PdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdHBsYXlncm91bmREZW1vPzogdHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQ7XG5cblx0Y29kZTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gb2YoJycpO1xuXG5cdHByaXZhdGUgZGVtb1JlZj86IENvbXBvbmVudFJlZjxOZ0RvY0Jhc2VQbGF5Z3JvdW5kPjtcblx0cHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG5cdG5nT25DaGFuZ2VzKHtmb3JtLCBpZH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAoZm9ybSAmJiBpZCkge1xuXHRcdFx0dGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuXG5cdFx0XHRjb25zdCBkZW1vSW5qZWN0b3I6IEluamVjdGlvblRva2VuPEFycmF5PHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kPj4gfCB1bmRlZmluZWQgPSBnZXRQbGF5Z3JvdW5kRGVtb1Rva2VuKFxuXHRcdFx0XHR0aGlzLmlkLFxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKGRlbW9JbmplY3Rvcikge1xuXHRcdFx0XHRjb25zdCBkZW1vczogQXJyYXk8dHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQ+ID0gdGhpcy5pbmplY3Rvci5nZXQoZGVtb0luamVjdG9yLCBbXSk7XG5cdFx0XHRcdHRoaXMucGxheWdyb3VuZERlbW8gPSBkZW1vcy5maW5kKFxuXHRcdFx0XHRcdChkZW1vOiB0eXBlb2YgTmdEb2NCYXNlUGxheWdyb3VuZCkgPT4gZGVtby5zZWxlY3RvciA9PT0gdGhpcy5zZWxlY3RvciB8fCBkZW1vLnNlbGVjdG9yID09PSB0aGlzLnBpcGVOYW1lLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVwZGF0ZURlbW8oKTtcblxuXHRcdFx0dGhpcy5mb3JtPy52YWx1ZUNoYW5nZXNcblx0XHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKGRhdGE6IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPikgPT4gdGhpcy51cGRhdGVEZW1vKGRhdGEpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZURlbW8oZGF0YT86IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPik6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJlY3JlYXRlRGVtbyB8fCAhdGhpcy5kZW1vUmVmKSB7XG5cdFx0XHR0aGlzLnJlbmRlckRlbW8oKTtcblx0XHR9XG5cblx0XHRpZiAoZGF0YSkge1xuXHRcdFx0dGhpcy5kZW1vUmVmPy5zZXRJbnB1dCgncHJvcGVydGllcycsIGRhdGEucHJvcGVydGllcyA/PyB7fSk7XG5cdFx0XHR0aGlzLmRlbW9SZWY/LnNldElucHV0KCdjb250ZW50JywgZGF0YS5jb250ZW50ID8/IHt9KTtcblx0XHR9XG5cblx0XHR0aGlzLnVwZGF0ZUNvZGVWaWV3KCk7XG5cdH1cblxuXHRwcml2YXRlIHJlbmRlckRlbW8oKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMucGxheWdyb3VuZERlbW8pIHtcblx0XHRcdHRoaXMuZGVtb1JlZj8uZGVzdHJveSgpO1xuXG5cdFx0XHRpZiAodGhpcy5wbGF5Z3JvdW5kRGVtbykge1xuXHRcdFx0XHR0aGlzLmRlbW9SZWYgPSB0aGlzLmRlbW9PdXRsZXQ/LmNyZWF0ZUNvbXBvbmVudCh0aGlzLnBsYXlncm91bmREZW1vIGFzIHVua25vd24gYXMgVHlwZTxOZ0RvY0Jhc2VQbGF5Z3JvdW5kPik7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGVtb1JlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlQ29kZVZpZXcoKTogdm9pZCB7XG5cdFx0Y29uc3QgdGVtcGxhdGU6IHN0cmluZyA9IHRoaXMucGlwZU5hbWVcblx0XHRcdD8gYnVpbGRQbGF5Z3JvdW5kRGVtb1BpcGVUZW1wbGF0ZShcblx0XHRcdFx0XHR0aGlzLmNvbmZpZ3VyYXRpb24/LnRlbXBsYXRlID8/ICcnLFxuXHRcdFx0XHRcdHRoaXMucGlwZU5hbWUsXG5cdFx0XHRcdFx0dGhpcy5nZXRBY3RpdmVDb250ZW50KCksXG5cdFx0XHRcdFx0dGhpcy5nZXRBY3RpdmVJbnB1dHMoKSxcblx0XHRcdCAgKVxuXHRcdFx0OiBidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGUoXG5cdFx0XHRcdFx0dGhpcy5jb25maWd1cmF0aW9uPy50ZW1wbGF0ZSA/PyAnJyxcblx0XHRcdFx0XHR0aGlzLnNlbGVjdG9yLFxuXHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlQ29udGVudCgpLFxuXHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlSW5wdXRzKCksXG5cdFx0XHQgICk7XG5cblx0XHR0aGlzLmNvZGUgPSBmb3JtYXRIdG1sKHRlbXBsYXRlKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QWN0aXZlQ29udGVudCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcblx0XHRjb25zdCBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSAodGhpcy5mb3JtPy5jb250cm9scy5jb250ZW50LnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSA/PyB7fTtcblxuXHRcdHJldHVybiBvYmplY3RLZXlzKGZvcm1EYXRhKS5yZWR1Y2UoKHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwga2V5OiBzdHJpbmcpID0+IHtcblx0XHRcdHJlc3VsdFtrZXldID0gZm9ybURhdGFba2V5XSA/IHRoaXMuY29uZmlndXJhdGlvbj8uY29udGVudD8uW2tleV0udGVtcGxhdGUgPz8gJycgOiAnJztcblxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LCB7fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGl2ZUlucHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcblx0XHRjb25zdCBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgTmdEb2NFeHRyYWN0ZWRWYWx1ZT4gPVxuXHRcdFx0KHRoaXMuZm9ybT8uY29udHJvbHMucHJvcGVydGllcy52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY0V4dHJhY3RlZFZhbHVlPikgPz8ge307XG5cblx0XHRyZXR1cm4gb2JqZWN0S2V5cyhmb3JtRGF0YSkucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgfCB1bmRlZmluZWQgPSB0aGlzLnByb3BlcnRpZXM/LltrZXldO1xuXG5cdFx0XHRpZiAocHJvcGVydHkpIHtcblx0XHRcdFx0Y29uc3QgdmFsdWU6IE5nRG9jRXh0cmFjdGVkVmFsdWUgPSBmb3JtRGF0YVtrZXldO1xuXHRcdFx0XHRjb25zdCBpc1N0cmluZzogYm9vbGVhbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG5cdFx0XHRcdGNvbnN0IGlucHV0VmFsdWU6IHN0cmluZyA9IGlzU3RyaW5nID8gYCcke3ZhbHVlfSdgIDogYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWA7XG5cblx0XHRcdFx0aWYgKChwcm9wZXJ0eS5kZWZhdWx0ID8/ICcnKSAhPT0gaW5wdXRWYWx1ZSkge1xuXHRcdFx0XHRcdHJlc3VsdFtwcm9wZXJ0eS5pbnB1dE5hbWVdID0gaW5wdXRWYWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0sIHt9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcblx0XHR0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuXHR9XG59XG4iLCI8bmctZG9jLWRlbW8tZGlzcGxheWVyIFtjb2RlXT1cIihjb2RlIHwgYXN5bmMpID8/ICcnXCIgW2JvcmRlcl09XCJmYWxzZVwiIGxhbmd1YWdlPVwiaHRtbFwiPlxuXHQ8bmctY29udGFpbmVyICNkZW1vT3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9uZy1kb2MtZGVtby1kaXNwbGF5ZXI+XG4iXX0=
@@ -52,7 +52,7 @@ class NgDocPlaygroundPropertiesComponent {
52
52
  if (isPresent(bOrder)) {
53
53
  return 1;
54
54
  }
55
- return a.property.name.localeCompare(b.property.name);
55
+ return a.property.inputName.localeCompare(b.property.inputName);
56
56
  });
57
57
  }
58
58
  }
@@ -64,7 +64,7 @@ class NgDocPlaygroundPropertiesComponent {
64
64
  const typeControl = this.getControlForType(type) ??
65
65
  this.getControlForTypeAlias(isPlaygroundProperty(property) ? property.options : undefined);
66
66
  if (!typeControl && isDevMode()) {
67
- console.warn(`NgDocPlayground didn't find the control for the @Input "${property.name}", the type "${type}" was not recognized'`);
67
+ console.warn(`NgDocPlayground didn't find the control for the @Input "${property.inputName}", the type "${type}" was not recognized'`);
68
68
  }
69
69
  return typeControl;
70
70
  }
@@ -90,7 +90,7 @@ class NgDocPlaygroundPropertiesComponent {
90
90
  return undefined;
91
91
  }
92
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, deps: [{ token: i1.BreakpointObserver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertiesComponent, isStandalone: true, selector: "ng-doc-playground-properties", inputs: { form: "form", properties: "properties", dynamicContent: "dynamicContent", recreateDemo: "recreateDemo" }, outputs: { recreateDemoChange: "recreateDemoChange", resetForm: "resetForm" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.name\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"], dependencies: [{ kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonComponent, selector: "button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]", inputs: ["size", "color", "rounded"] }, { kind: "component", type: NgDocCheckboxComponent, selector: "ng-doc-checkbox", inputs: ["color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocPlaygroundPropertyComponent, selector: "ng-doc-playground-property", inputs: ["name", "property", "typeControl", "control"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: NgDocBindPipe, name: "ngDocBind" }, { kind: "pipe", type: NgDocRunPipe, name: "ngDocRun" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertiesComponent, isStandalone: true, selector: "ng-doc-playground-properties", inputs: { form: "form", properties: "properties", dynamicContent: "dynamicContent", recreateDemo: "recreateDemo" }, outputs: { recreateDemoChange: "recreateDemoChange", resetForm: "resetForm" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"], dependencies: [{ kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonComponent, selector: "button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]", inputs: ["size", "color", "rounded"] }, { kind: "component", type: NgDocCheckboxComponent, selector: "ng-doc-checkbox", inputs: ["color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocPlaygroundPropertyComponent, selector: "ng-doc-playground-property", inputs: ["name", "property", "typeControl", "control"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: NgDocBindPipe, name: "ngDocBind" }, { kind: "pipe", type: NgDocRunPipe, name: "ngDocRun" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
94
  }
95
95
  export { NgDocPlaygroundPropertiesComponent };
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, decorators: [{
@@ -110,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
110
110
  KeyValuePipe,
111
111
  NgDocBindPipe,
112
112
  NgDocRunPipe,
113
- ], template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.name\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"] }]
113
+ ], template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"] }]
114
114
  }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }, { type: i0.Injector }]; }, propDecorators: { form: [{
115
115
  type: Input
116
116
  }], properties: [{
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
124
124
  }], resetForm: [{
125
125
  type: Output
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV4RSxPQUFPLEVBQ04sYUFBYSxFQUNiLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFB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bkhXLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdUQzNEL0MsbStEQStDQSxxNURESkUsa0JBQWtCLGlIQUNsQixvQkFBb0IsZ09BQ3BCLHNCQUFzQiw4RUFDdEIsV0FBVywrVkFDWCxxQkFBcUIsMFVBQ3JCLGtCQUFrQixrRkFDbEIsdUJBQXVCLDZEQUN2QixJQUFJLDZGQUNKLEtBQUssbUhBQ0wsZ0NBQWdDLDBIQUNoQyxTQUFTLHlDQUNULFlBQVksNENBQ1osYUFBYSw2Q0FDYixZQUFZOztTQUdELGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQXZCOUMsU0FBUzsrQkFDQyw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNSLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixLQUFLO3dCQUNMLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDWjtnSUFRRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge0FzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0aW9uVG9rZW4sXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0aXNEZXZNb2RlLFxuXHRPbkNoYW5nZXMsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge2dldFRva2VuRm9yVHlwZSwgaXNQbGF5Z3JvdW5kUHJvcGVydHl9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2x9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtleHRyYWN0VmFsdWVPclRocm93LCBpc1ByZXNlbnQsIG9iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbnRlbnQsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0JpbmRQaXBlLFxuXHROZ0RvY0J1dHRvbkNvbXBvbmVudCxcblx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHROZ0RvY1J1blBpcGUsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2t9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRGb3JtfSBmcm9tICcuLi9wbGF5Z3JvdW5kLWZvcm0nO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbXBvbmVudH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS1jb250cm9sJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllcycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHROZ0RvY1RleHRDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25Db21wb25lbnQsXG5cdFx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nSWYsXG5cdFx0TmdGb3IsXG5cdFx0TmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb21wb25lbnQsXG5cdFx0QXN5bmNQaXBlLFxuXHRcdEtleVZhbHVlUGlwZSxcblx0XHROZ0RvY0JpbmRQaXBlLFxuXHRcdE5nRG9jUnVuUGlwZSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllc0NvbXBvbmVudDxcblx0UCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsXG5cdEMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY1BsYXlncm91bmRDb250ZW50Pixcbj4gaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzPzogUDtcblxuXHRASW5wdXQoKVxuXHRkeW5hbWljQ29udGVudD86IEM7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QE91dHB1dCgpXG5cdHJlY3JlYXRlRGVtb0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBPdXRwdXQoKVxuXHRyZXNldEZvcm06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHRyZWFkb25seSBicmVha3BvaW50czogc3RyaW5nW10gPSBbQnJlYWtwb2ludHMuWFNtYWxsXTtcblx0cmVhZG9ubHkgb2JzZXJ2ZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0cHJvdGVjdGVkIHByb3BlcnR5Q29udHJvbHM6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbFtdID0gW107XG5cdHByb3RlY3RlZCBjb250ZW50VHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2xGb3JUeXBlKCdib29sZWFuJyk7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuXHRcdHRoaXMub2JzZXJ2ZXIgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuYnJlYWtwb2ludHMpLnBpcGUocGx1Y2soJ21hdGNoZXMnKSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyh7cHJvcGVydGllc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAocHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMpIHtcblx0XHRcdHRoaXMucHJvcGVydHlDb250cm9scyA9IG9iamVjdEtleXModGhpcy5wcm9wZXJ0aWVzKVxuXHRcdFx0XHQubWFwKChrZXk6IGtleW9mIFApID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnN0IHR5cGVDb250cm9sOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQgPSB0aGlzLmdldFR5cGVDb250cm9sKHByb3BlcnR5KTtcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBTdHJpbmcoa2V5KSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlQ29udHJvbCxcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcihpc1ByZXNlbnQpXG5cdFx0XHRcdC5zb3J0KChhOiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2wsIGI6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGFPcmRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gYS50eXBlQ29udHJvbC5vcHRpb25zPy5vcmRlcjtcblx0XHRcdFx0XHRjb25zdCBiT3JkZXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IGIudHlwZUNvbnRyb2wub3B0aW9ucz8ub3JkZXI7XG5cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGFPcmRlcikgJiYgaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBhT3JkZXIgLSBiT3JkZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChpc1ByZXNlbnQoYU9yZGVyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gYS5wcm9wZXJ0eS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5wcm9wZXJ0eS5uYW1lKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0Rm9ybUNvbnRyb2woY29udHJvbFR5cGU6IGtleW9mIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHMsIGtleTogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuXHRcdHJldHVybiB0aGlzLmZvcm0uZ2V0KGNvbnRyb2xUeXBlKT8uZ2V0KGtleSkgYXMgRm9ybUNvbnRyb2w7XG5cdH1cblxuXHRwcml2YXRlIGdldFR5cGVDb250cm9sKHByb3BlcnR5OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSk6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdHlwZTogc3RyaW5nID0gcHJvcGVydHkudHlwZTtcblx0XHRjb25zdCB0eXBlQ29udHJvbDogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkID1cblx0XHRcdHRoaXMuZ2V0Q29udHJvbEZvclR5cGUodHlwZSkgPz9cblx0XHRcdHRoaXMuZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhpc1BsYXlncm91bmRQcm9wZXJ0eShwcm9wZXJ0eSkgPyBwcm9wZXJ0eS5vcHRpb25zIDogdW5kZWZpbmVkKTtcblxuXHRcdGlmICghdHlwZUNvbnRyb2wgJiYgaXNEZXZNb2RlKCkpIHtcblx0XHRcdGNvbnNvbGUud2Fybihcblx0XHRcdFx0YE5nRG9jUGxheWdyb3VuZCBkaWRuJ3QgZmluZCB0aGUgY29udHJvbCBmb3IgdGhlIEBJbnB1dCBcIiR7cHJvcGVydHkubmFtZX1cIiwgdGhlIHR5cGUgXCIke3R5cGV9XCIgd2FzIG5vdCByZWNvZ25pemVkJ2AsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlQ29udHJvbDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGUodHlwZTogc3RyaW5nKTogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB0b2tlbjogSW5qZWN0aW9uVG9rZW48TmdEb2NQcm92aWRlZFR5cGVDb250cm9sPiB8IHVuZGVmaW5lZCA9IGdldFRva2VuRm9yVHlwZSh0eXBlKTtcblxuXHRcdHJldHVybiB0b2tlbiA/IHRoaXMuaW5qZWN0b3IuZ2V0KHRva2VuKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhvcHRpb25zPzogc3RyaW5nW10pOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRsZXQgb3B0aW9uc0lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyBjaGVja2luZyB0aGF0IGFsbCB2YWx1ZXMgYXJlIGV4dHJhY3RhYmxlXG5cdFx0XHRcdG9wdGlvbnMuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiBleHRyYWN0VmFsdWVPclRocm93KGl0ZW0pKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRvcHRpb25zSXNWYWxpZCA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0aW9uc0lzVmFsaWQpIHtcblx0XHRcdFx0Y29uc3QgdG9rZW46IEluamVjdGlvblRva2VuPE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbD4gfCB1bmRlZmluZWQgPSBnZXRUb2tlbkZvclR5cGUoJ05nRG9jVHlwZUFsaWFzJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRva2VuID8gdGhpcy5pbmplY3Rvci5nZXQodG9rZW4pIDogdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBbY2xhc3MudmVydGljYWxdPVwib2JzZXJ2ZXIgfCBhc3luY1wiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGVtb3NcIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1oZWFkZXJcIj5cblx0XHRcdDxoNCBuZy1kb2MtdGV4dD5QbGF5Z3JvdW5kPC9oND5cblx0XHRcdDxidXR0b24gbmctZG9jLWJ1dHRvbiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0uZW1pdCgpXCI+UmVzZXQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtc2V0dGluZ1wiPlxuXHRcdFx0PG5nLWRvYy1jaGVja2JveCBbKG5nTW9kZWwpXT1cInJlY3JlYXRlRGVtb1wiIChuZ01vZGVsQ2hhbmdlKT1cInJlY3JlYXRlRGVtb0NoYW5nZS5lbWl0KCRldmVudClcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRuZy1kb2MtdGV4dFxuXHRcdFx0XHRcdFtuZ0RvY1Rvb2x0aXBdPVwiJ1JlY3JlYXRlcyBkZW1vIGV2ZXJ5dGltZVxcbm9uZSBvZiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQnXCJcblx0XHRcdFx0XHRbcG9zaXRpb25zXT1cIlsnYm90dG9tLXJpZ2h0JywgJ2xlZnQtY2VudGVyJ11cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0UmVjcmVhdGVcblx0XHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImluZm9cIiBuZ0RvY1RleHRSaWdodD48L25nLWRvYy1pY29uPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L25nLWRvYy1jaGVja2JveD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGl2aWRlclwiPjwvZGl2PlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eUNvbnRyb2xzLmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+U2V0dGluZ3M8L2g1PlxuXHRcdFx0PG5nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBwcm9wZXJ0eUNvbnRyb2wgb2YgcHJvcGVydHlDb250cm9sc1wiXG5cdFx0XHRcdFtuYW1lXT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eS5uYW1lXCJcblx0XHRcdFx0W3Byb3BlcnR5XT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eVwiXG5cdFx0XHRcdFt0eXBlQ29udHJvbF09XCJwcm9wZXJ0eUNvbnRyb2wudHlwZUNvbnRyb2xcIlxuXHRcdFx0XHRbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCB8IG5nRG9jQmluZDogdGhpcyB8IG5nRG9jUnVuOiAncHJvcGVydGllcyc6IHByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eU5hbWVcIlxuXHRcdFx0PlxuXHRcdFx0PC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIoZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZSk/Lmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+Q29udGVudDwvaDU+XG5cdFx0XHQ8bmctZG9jLXBsYXlncm91bmQtcHJvcGVydHlcblx0XHRcdFx0Km5nRm9yPVwibGV0IGNvbnRlbnQgb2YgZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZVwiXG5cdFx0XHRcdFtuYW1lXT1cImNvbnRlbnQudmFsdWUubGFiZWxcIlxuXHRcdFx0XHRbcHJvcGVydHldPVwiY29udGVudC52YWx1ZVwiXG5cdFx0XHRcdFt0eXBlQ29udHJvbF09XCJjb250ZW50VHlwZUNvbnRyb2xcIlxuXHRcdFx0XHRbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCB8IG5nRG9jQmluZDogdGhpcyB8IG5nRG9jUnVuOiAnY29udGVudCc6IGNvbnRlbnQua2V5XCJcblx0XHRcdD5cblx0XHRcdDwvbmctZG9jLXBsYXlncm91bmQtcHJvcGVydHk+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV4RSxPQUFPLEVBQ04sYUFBYSxFQUNiLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFB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bkhXLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdUQzNEL0MsdytEQStDQSxxNURESkUsa0JBQWtCLGlIQUNsQixvQkFBb0IsZ09BQ3BCLHNCQUFzQiw4RUFDdEIsV0FBVywrVkFDWCxxQkFBcUIsMFVBQ3JCLGtCQUFrQixrRkFDbEIsdUJBQXVCLDZEQUN2QixJQUFJLDZGQUNKLEtBQUssbUhBQ0wsZ0NBQWdDLDBIQUNoQyxTQUFTLHlDQUNULFlBQVksNENBQ1osYUFBYSw2Q0FDYixZQUFZOztTQUdELGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQXZCOUMsU0FBUzsrQkFDQyw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNSLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixLQUFLO3dCQUNMLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDWjtnSUFRRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge0FzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0aW9uVG9rZW4sXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0aXNEZXZNb2RlLFxuXHRPbkNoYW5nZXMsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge2dldFRva2VuRm9yVHlwZSwgaXNQbGF5Z3JvdW5kUHJvcGVydHl9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2x9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtleHRyYWN0VmFsdWVPclRocm93LCBpc1ByZXNlbnQsIG9iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbnRlbnQsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0JpbmRQaXBlLFxuXHROZ0RvY0J1dHRvbkNvbXBvbmVudCxcblx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHROZ0RvY1J1blBpcGUsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2t9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRGb3JtfSBmcm9tICcuLi9wbGF5Z3JvdW5kLWZvcm0nO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbXBvbmVudH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS1jb250cm9sJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllcycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHROZ0RvY1RleHRDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25Db21wb25lbnQsXG5cdFx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nSWYsXG5cdFx0TmdGb3IsXG5cdFx0TmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb21wb25lbnQsXG5cdFx0QXN5bmNQaXBlLFxuXHRcdEtleVZhbHVlUGlwZSxcblx0XHROZ0RvY0JpbmRQaXBlLFxuXHRcdE5nRG9jUnVuUGlwZSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllc0NvbXBvbmVudDxcblx0UCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsXG5cdEMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY1BsYXlncm91bmRDb250ZW50Pixcbj4gaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzPzogUDtcblxuXHRASW5wdXQoKVxuXHRkeW5hbWljQ29udGVudD86IEM7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QE91dHB1dCgpXG5cdHJlY3JlYXRlRGVtb0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBPdXRwdXQoKVxuXHRyZXNldEZvcm06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHRyZWFkb25seSBicmVha3BvaW50czogc3RyaW5nW10gPSBbQnJlYWtwb2ludHMuWFNtYWxsXTtcblx0cmVhZG9ubHkgb2JzZXJ2ZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0cHJvdGVjdGVkIHByb3BlcnR5Q29udHJvbHM6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbFtdID0gW107XG5cdHByb3RlY3RlZCBjb250ZW50VHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2xGb3JUeXBlKCdib29sZWFuJyk7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuXHRcdHRoaXMub2JzZXJ2ZXIgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuYnJlYWtwb2ludHMpLnBpcGUocGx1Y2soJ21hdGNoZXMnKSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyh7cHJvcGVydGllc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAocHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMpIHtcblx0XHRcdHRoaXMucHJvcGVydHlDb250cm9scyA9IG9iamVjdEtleXModGhpcy5wcm9wZXJ0aWVzKVxuXHRcdFx0XHQubWFwKChrZXk6IGtleW9mIFApID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnN0IHR5cGVDb250cm9sOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQgPSB0aGlzLmdldFR5cGVDb250cm9sKHByb3BlcnR5KTtcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBTdHJpbmcoa2V5KSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlQ29udHJvbCxcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcihpc1ByZXNlbnQpXG5cdFx0XHRcdC5zb3J0KChhOiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2wsIGI6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGFPcmRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gYS50eXBlQ29udHJvbC5vcHRpb25zPy5vcmRlcjtcblx0XHRcdFx0XHRjb25zdCBiT3JkZXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IGIudHlwZUNvbnRyb2wub3B0aW9ucz8ub3JkZXI7XG5cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGFPcmRlcikgJiYgaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBhT3JkZXIgLSBiT3JkZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChpc1ByZXNlbnQoYU9yZGVyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gYS5wcm9wZXJ0eS5pbnB1dE5hbWUubG9jYWxlQ29tcGFyZShiLnByb3BlcnR5LmlucHV0TmFtZSk7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGdldEZvcm1Db250cm9sKGNvbnRyb2xUeXBlOiBrZXlvZiB0eXBlb2YgdGhpcy5mb3JtLmNvbnRyb2xzLCBrZXk6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtLmdldChjb250cm9sVHlwZSk/LmdldChrZXkpIGFzIEZvcm1Db250cm9sO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUeXBlQ29udHJvbChwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkpOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHR5cGU6IHN0cmluZyA9IHByb3BlcnR5LnR5cGU7XG5cdFx0Y29uc3QgdHlwZUNvbnRyb2w6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCA9XG5cdFx0XHR0aGlzLmdldENvbnRyb2xGb3JUeXBlKHR5cGUpID8/XG5cdFx0XHR0aGlzLmdldENvbnRyb2xGb3JUeXBlQWxpYXMoaXNQbGF5Z3JvdW5kUHJvcGVydHkocHJvcGVydHkpID8gcHJvcGVydHkub3B0aW9ucyA6IHVuZGVmaW5lZCk7XG5cblx0XHRpZiAoIXR5cGVDb250cm9sICYmIGlzRGV2TW9kZSgpKSB7XG5cdFx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcdGBOZ0RvY1BsYXlncm91bmQgZGlkbid0IGZpbmQgdGhlIGNvbnRyb2wgZm9yIHRoZSBASW5wdXQgXCIke3Byb3BlcnR5LmlucHV0TmFtZX1cIiwgdGhlIHR5cGUgXCIke3R5cGV9XCIgd2FzIG5vdCByZWNvZ25pemVkJ2AsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlQ29udHJvbDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGUodHlwZTogc3RyaW5nKTogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB0b2tlbjogSW5qZWN0aW9uVG9rZW48TmdEb2NQcm92aWRlZFR5cGVDb250cm9sPiB8IHVuZGVmaW5lZCA9IGdldFRva2VuRm9yVHlwZSh0eXBlKTtcblxuXHRcdHJldHVybiB0b2tlbiA/IHRoaXMuaW5qZWN0b3IuZ2V0KHRva2VuKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhvcHRpb25zPzogc3RyaW5nW10pOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRsZXQgb3B0aW9uc0lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyBjaGVja2luZyB0aGF0IGFsbCB2YWx1ZXMgYXJlIGV4dHJhY3RhYmxlXG5cdFx0XHRcdG9wdGlvbnMuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiBleHRyYWN0VmFsdWVPclRocm93KGl0ZW0pKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRvcHRpb25zSXNWYWxpZCA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0aW9uc0lzVmFsaWQpIHtcblx0XHRcdFx0Y29uc3QgdG9rZW46IEluamVjdGlvblRva2VuPE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbD4gfCB1bmRlZmluZWQgPSBnZXRUb2tlbkZvclR5cGUoJ05nRG9jVHlwZUFsaWFzJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRva2VuID8gdGhpcy5pbmplY3Rvci5nZXQodG9rZW4pIDogdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBbY2xhc3MudmVydGljYWxdPVwib2JzZXJ2ZXIgfCBhc3luY1wiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGVtb3NcIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1oZWFkZXJcIj5cblx0XHRcdDxoNCBuZy1kb2MtdGV4dD5QbGF5Z3JvdW5kPC9oND5cblx0XHRcdDxidXR0b24gbmctZG9jLWJ1dHRvbiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0uZW1pdCgpXCI+UmVzZXQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtc2V0dGluZ1wiPlxuXHRcdFx0PG5nLWRvYy1jaGVja2JveCBbKG5nTW9kZWwpXT1cInJlY3JlYXRlRGVtb1wiIChuZ01vZGVsQ2hhbmdlKT1cInJlY3JlYXRlRGVtb0NoYW5nZS5lbWl0KCRldmVudClcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRuZy1kb2MtdGV4dFxuXHRcdFx0XHRcdFtuZ0RvY1Rvb2x0aXBdPVwiJ1JlY3JlYXRlcyBkZW1vIGV2ZXJ5dGltZVxcbm9uZSBvZiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQnXCJcblx0XHRcdFx0XHRbcG9zaXRpb25zXT1cIlsnYm90dG9tLXJpZ2h0JywgJ2xlZnQtY2VudGVyJ11cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0UmVjcmVhdGVcblx0XHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImluZm9cIiBuZ0RvY1RleHRSaWdodD48L25nLWRvYy1pY29uPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L25nLWRvYy1jaGVja2JveD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGl2aWRlclwiPjwvZGl2PlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eUNvbnRyb2xzLmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+U2V0dGluZ3M8L2g1PlxuXHRcdFx0PG5nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBwcm9wZXJ0eUNvbnRyb2wgb2YgcHJvcGVydHlDb250cm9sc1wiXG5cdFx0XHRcdFtuYW1lXT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eS5pbnB1dE5hbWVcIlxuXHRcdFx0XHRbcHJvcGVydHldPVwicHJvcGVydHlDb250cm9sLnByb3BlcnR5XCJcblx0XHRcdFx0W3R5cGVDb250cm9sXT1cInByb3BlcnR5Q29udHJvbC50eXBlQ29udHJvbFwiXG5cdFx0XHRcdFtjb250cm9sXT1cImdldEZvcm1Db250cm9sIHwgbmdEb2NCaW5kOiB0aGlzIHwgbmdEb2NSdW46ICdwcm9wZXJ0aWVzJzogcHJvcGVydHlDb250cm9sLnByb3BlcnR5TmFtZVwiXG5cdFx0XHQ+XG5cdFx0XHQ8L25nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIihkeW5hbWljQ29udGVudCB8IGtleXZhbHVlKT8ubGVuZ3RoXCI+XG5cdFx0XHQ8aDUgY2xhc3M9XCJuZy1kb2MtdGl0bGVcIiBuZy1kb2MtdGV4dD5Db250ZW50PC9oNT5cblx0XHRcdDxuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eVxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgY29udGVudCBvZiBkeW5hbWljQ29udGVudCB8IGtleXZhbHVlXCJcblx0XHRcdFx0W25hbWVdPVwiY29udGVudC52YWx1ZS5sYWJlbFwiXG5cdFx0XHRcdFtwcm9wZXJ0eV09XCJjb250ZW50LnZhbHVlXCJcblx0XHRcdFx0W3R5cGVDb250cm9sXT1cImNvbnRlbnRUeXBlQ29udHJvbFwiXG5cdFx0XHRcdFtjb250cm9sXT1cImdldEZvcm1Db250cm9sIHwgbmdEb2NCaW5kOiB0aGlzIHwgbmdEb2NSdW46ICdjb250ZW50JzogY29udGVudC5rZXlcIlxuXHRcdFx0PlxuXHRcdFx0PC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewContainerRef, } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { isPlaygroundProperty } from '@ng-doc/app/helpers';
4
+ import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes';
4
5
  import { NgDocLabelComponent, NgDocTooltipDirective } from '@ng-doc/ui-kit';
5
6
  import * as i0 from "@angular/core";
6
7
  class NgDocPlaygroundPropertyComponent {
@@ -38,12 +39,12 @@ class NgDocPlaygroundPropertyComponent {
38
39
  return this.property && isPlaygroundProperty(this.property) ? this.property.description ?? '' : '';
39
40
  }
40
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertyComponent, isStandalone: true, selector: "ng-doc-playground-property", inputs: { name: "name", property: "property", typeControl: "typeControl", control: "control" }, host: { properties: { "attr.data-has-property-control": "this.hasPropertyControl" } }, viewQueries: [{ propertyName: "propertyOutlet", first: true, predicate: ["propertyOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipContent\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n", styles: [":host{display:block}:host[data-has-property-control=false]{display:none}\n"], dependencies: [{ kind: "component", type: NgDocLabelComponent, selector: "label[ng-doc-label]", inputs: ["ng-doc-label", "align"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertyComponent, isStandalone: true, selector: "ng-doc-playground-property", inputs: { name: "name", property: "property", typeControl: "typeControl", control: "control" }, host: { properties: { "attr.data-has-property-control": "this.hasPropertyControl" } }, viewQueries: [{ propertyName: "propertyOutlet", first: true, predicate: ["propertyOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipTemplate\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t\t<ng-template #tooltipTemplate>\n\t\t\t<div [innerHTML]=\"tooltipContent | ngDocSanitizeHtml\"></div>\n\t\t</ng-template>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n", styles: [":host{display:block}:host[data-has-property-control=false]{display:none}\n"], dependencies: [{ kind: "component", type: NgDocLabelComponent, selector: "label[ng-doc-label]", inputs: ["ng-doc-label", "align"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
43
  }
43
44
  export { NgDocPlaygroundPropertyComponent };
44
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertyComponent, decorators: [{
45
46
  type: Component,
46
- args: [{ selector: 'ng-doc-playground-property', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocLabelComponent, NgDocTooltipDirective], template: "<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipContent\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n", styles: [":host{display:block}:host[data-has-property-control=false]{display:none}\n"] }]
47
+ args: [{ selector: 'ng-doc-playground-property', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocLabelComponent, NgDocTooltipDirective, NgDocSanitizeHtmlPipe], template: "<label [ng-doc-label]=\"option?.hideLabel ? '' : labelContent\">\n\t<ng-template #labelContent>\n\t\t<span [ngDocTooltip]=\"tooltipTemplate\" [canOpen]=\"!!tooltipContent\"\n\t\t\t [positions]=\"['left-center', 'top-right', 'bottom-right']\">{{name}}</span>\n\t\t<ng-template #tooltipTemplate>\n\t\t\t<div [innerHTML]=\"tooltipContent | ngDocSanitizeHtml\"></div>\n\t\t</ng-template>\n\t</ng-template>\n\t<ng-container #propertyOutlet></ng-container>\n</label>\n", styles: [":host{display:block}:host[data-has-property-control=false]{display:none}\n"] }]
47
48
  }], propDecorators: { name: [{
48
49
  type: Input
49
50
  }], property: [{
@@ -59,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
59
60
  type: HostBinding,
60
61
  args: ['attr.data-has-property-control']
61
62
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnR5L3BsYXlncm91bmQtcHJvcGVydHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUd6RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFMUUsTUFRYSxnQ0FBZ0M7SUFSN0M7UUFVQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0tBcURsQjtJQXBDQSxXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBZ0I7UUFDMUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzlFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1lBRXJDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDekYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDOUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztvQkFDdkIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUM5RSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO29CQUN2QixDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRWxFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7YUFDdkM7U0FDRDtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6RyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQzFGO0lBQ0YsQ0FBQztJQUVELElBQ0ksa0JBQWtCO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BHLENBQUM7OEdBdERXLGdDQUFnQztrR0FBaEMsZ0NBQWdDLDBXQWFSLGdCQUFnQixnRUN0Q3JELGtWQU9BLG9JRGdCVyxtQkFBbUIsbUdBQUUscUJBQXFCOztTQUV4QyxnQ0FBZ0M7MkZBQWhDLGdDQUFnQztrQkFSNUMsU0FBUzsrQkFDQyw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7OEJBSXJELElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkFtQy9ELGtCQUFrQjtzQkFEckIsV0FBVzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtpc1BsYXlncm91bmRQcm9wZXJ0eX0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCwgTmdEb2NUeXBlQ29udHJvbCwgTmdEb2NUeXBlQ29udHJvbFByb3ZpZGVyT3B0aW9uc30gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbnRlbnQsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge05nRG9jTGFiZWxDb21wb25lbnQsIE5nRG9jVG9vbHRpcERpcmVjdGl2ZX0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eScsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGxheWdyb3VuZC1wcm9wZXJ0eS5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW05nRG9jTGFiZWxDb21wb25lbnQsIE5nRG9jVG9vbHRpcERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblx0QElucHV0KClcblx0bmFtZTogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0cHJvcGVydHk/OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSB8IE5nRG9jUGxheWdyb3VuZENvbnRlbnQ7XG5cblx0QElucHV0KClcblx0dHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2w7XG5cblx0QElucHV0KClcblx0Y29udHJvbD86IEZvcm1Db250cm9sO1xuXG5cdEBWaWV3Q2hpbGQoJ3Byb3BlcnR5T3V0bGV0Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pXG5cdHByb3BlcnR5T3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRwcm90ZWN0ZWQgb3B0aW9uPzogTmdEb2NUeXBlQ29udHJvbFByb3ZpZGVyT3B0aW9ucztcblx0cHJpdmF0ZSBwcm9wZXJ0eVR5cGVDb250cm9sPzogQ29tcG9uZW50UmVmPE5nRG9jVHlwZUNvbnRyb2w+O1xuXG5cdG5nT25DaGFuZ2VzKHtwcm9wZXJ0eSwgY29udHJvbCwgdHlwZUNvbnRyb2x9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKChwcm9wZXJ0eSB8fCBjb250cm9sIHx8IHR5cGVDb250cm9sKSAmJiB0aGlzLnByb3BlcnR5ICYmIHRoaXMudHlwZUNvbnRyb2wpIHtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAodGhpcy50eXBlQ29udHJvbCAmJiB0aGlzLnByb3BlcnR5T3V0bGV0KSB7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbCA9IHRoaXMucHJvcGVydHlPdXRsZXQuY3JlYXRlQ29tcG9uZW50KHRoaXMudHlwZUNvbnRyb2wuY29udHJvbCk7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYW1lO1xuXHRcdFx0XHR0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wuaW5zdGFuY2UuZGVzY3JpcHRpb24gPSB0aGlzLnRvb2x0aXBDb250ZW50O1xuXHRcdFx0XHR0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wuaW5zdGFuY2Uub3B0aW9ucyA9IGlzUGxheWdyb3VuZFByb3BlcnR5KHRoaXMucHJvcGVydHkpXG5cdFx0XHRcdFx0PyB0aGlzLnByb3BlcnR5Lm9wdGlvbnNcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdFx0dGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sLmluc3RhbmNlLmRlZmF1bHQgPSBpc1BsYXlncm91bmRQcm9wZXJ0eSh0aGlzLnByb3BlcnR5KVxuXHRcdFx0XHRcdD8gdGhpcy5wcm9wZXJ0eS5kZWZhdWx0XG5cdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS53cml0ZVZhbHVlKHRoaXMuY29udHJvbD8udmFsdWUpO1xuXG5cdFx0XHRcdHRoaXMub3B0aW9uID0gdGhpcy50eXBlQ29udHJvbC5vcHRpb25zO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChjb250cm9sKSB7XG5cdFx0XHR0aGlzLmNvbnRyb2w/LnJlZ2lzdGVyT25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2U/LndyaXRlVmFsdWUodmFsdWUpKTtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2UucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWU6IHVua25vd24pID0+IHRoaXMuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpKTtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2UucmVnaXN0ZXJPblRvdWNoZWQoKCkgPT4gdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCkpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWhhcy1wcm9wZXJ0eS1jb250cm9sJylcblx0Z2V0IGhhc1Byb3BlcnR5Q29udHJvbCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2w7XG5cdH1cblxuXHRnZXQgdG9vbHRpcENvbnRlbnQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5wcm9wZXJ0eSAmJiBpc1BsYXlncm91bmRQcm9wZXJ0eSh0aGlzLnByb3BlcnR5KSA/IHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24gPz8gJycgOiAnJztcblx0fVxufVxuIiwiPGxhYmVsIFtuZy1kb2MtbGFiZWxdPVwib3B0aW9uPy5oaWRlTGFiZWwgPyAnJyA6IGxhYmVsQ29udGVudFwiPlxuXHQ8bmctdGVtcGxhdGUgI2xhYmVsQ29udGVudD5cblx0XHQ8c3BhbiBbbmdEb2NUb29sdGlwXT1cInRvb2x0aXBDb250ZW50XCIgW2Nhbk9wZW5dPVwiISF0b29sdGlwQ29udGVudFwiXG5cdFx0XHQgIFtwb3NpdGlvbnNdPVwiWydsZWZ0LWNlbnRlcicsICd0b3AtcmlnaHQnLCAnYm90dG9tLXJpZ2h0J11cIj57e25hbWV9fTwvc3Bhbj5cblx0PC9uZy10ZW1wbGF0ZT5cblx0PG5nLWNvbnRhaW5lciAjcHJvcGVydHlPdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0eS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BsYXlncm91bmQvcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnR5L3BsYXlncm91bmQtcHJvcGVydHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFMUUsTUFRYSxnQ0FBZ0M7SUFSN0M7UUFVQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0tBcURsQjtJQXBDQSxXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBZ0I7UUFDMUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzlFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1lBRXJDLElBQUks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Q29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtpc1BsYXlncm91bmRQcm9wZXJ0eX0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCwgTmdEb2NUeXBlQ29udHJvbCwgTmdEb2NUeXBlQ29udHJvbFByb3ZpZGVyT3B0aW9uc30gZnJvbSAnQG5nLWRvYy9hcHAvaW50ZXJmYWNlcyc7XG5pbXBvcnQge05nRG9jU2FuaXRpemVIdG1sUGlwZX0gZnJvbSAnQG5nLWRvYy9hcHAvcGlwZXMnO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRDb250ZW50LCBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eX0gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOZ0RvY0xhYmVsQ29tcG9uZW50LCBOZ0RvY1Rvb2x0aXBEaXJlY3RpdmV9IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtcHJvcGVydHknLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGxheWdyb3VuZC1wcm9wZXJ0eS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3BsYXlncm91bmQtcHJvcGVydHkuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtOZ0RvY0xhYmVsQ29tcG9uZW50LCBOZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsIE5nRG9jU2FuaXRpemVIdG1sUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblx0QElucHV0KClcblx0bmFtZTogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0cHJvcGVydHk/OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSB8IE5nRG9jUGxheWdyb3VuZENvbnRlbnQ7XG5cblx0QElucHV0KClcblx0dHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2w7XG5cblx0QElucHV0KClcblx0Y29udHJvbD86IEZvcm1Db250cm9sO1xuXG5cdEBWaWV3Q2hpbGQoJ3Byb3BlcnR5T3V0bGV0Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pXG5cdHByb3BlcnR5T3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRwcm90ZWN0ZWQgb3B0aW9uPzogTmdEb2NUeXBlQ29udHJvbFByb3ZpZGVyT3B0aW9ucztcblx0cHJpdmF0ZSBwcm9wZXJ0eVR5cGVDb250cm9sPzogQ29tcG9uZW50UmVmPE5nRG9jVHlwZUNvbnRyb2w+O1xuXG5cdG5nT25DaGFuZ2VzKHtwcm9wZXJ0eSwgY29udHJvbCwgdHlwZUNvbnRyb2x9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKChwcm9wZXJ0eSB8fCBjb250cm9sIHx8IHR5cGVDb250cm9sKSAmJiB0aGlzLnByb3BlcnR5ICYmIHRoaXMudHlwZUNvbnRyb2wpIHtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAodGhpcy50eXBlQ29udHJvbCAmJiB0aGlzLnByb3BlcnR5T3V0bGV0KSB7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbCA9IHRoaXMucHJvcGVydHlPdXRsZXQuY3JlYXRlQ29tcG9uZW50KHRoaXMudHlwZUNvbnRyb2wuY29udHJvbCk7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYW1lO1xuXHRcdFx0XHR0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wuaW5zdGFuY2UuZGVzY3JpcHRpb24gPSB0aGlzLnRvb2x0aXBDb250ZW50O1xuXHRcdFx0XHR0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2wuaW5zdGFuY2Uub3B0aW9ucyA9IGlzUGxheWdyb3VuZFByb3BlcnR5KHRoaXMucHJvcGVydHkpXG5cdFx0XHRcdFx0PyB0aGlzLnByb3BlcnR5Lm9wdGlvbnNcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdFx0dGhpcy5wcm9wZXJ0eVR5cGVDb250cm9sLmluc3RhbmNlLmRlZmF1bHQgPSBpc1BsYXlncm91bmRQcm9wZXJ0eSh0aGlzLnByb3BlcnR5KVxuXHRcdFx0XHRcdD8gdGhpcy5wcm9wZXJ0eS5kZWZhdWx0XG5cdFx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbC5pbnN0YW5jZS53cml0ZVZhbHVlKHRoaXMuY29udHJvbD8udmFsdWUpO1xuXG5cdFx0XHRcdHRoaXMub3B0aW9uID0gdGhpcy50eXBlQ29udHJvbC5vcHRpb25zO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChjb250cm9sKSB7XG5cdFx0XHR0aGlzLmNvbnRyb2w/LnJlZ2lzdGVyT25DaGFuZ2UoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2U/LndyaXRlVmFsdWUodmFsdWUpKTtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2UucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWU6IHVua25vd24pID0+IHRoaXMuY29udHJvbD8uc2V0VmFsdWUodmFsdWUpKTtcblx0XHRcdHRoaXMucHJvcGVydHlUeXBlQ29udHJvbD8uaW5zdGFuY2UucmVnaXN0ZXJPblRvdWNoZWQoKCkgPT4gdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCkpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWhhcy1wcm9wZXJ0eS1jb250cm9sJylcblx0Z2V0IGhhc1Byb3BlcnR5Q29udHJvbCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLnByb3BlcnR5VHlwZUNvbnRyb2w7XG5cdH1cblxuXHRnZXQgdG9vbHRpcENvbnRlbnQoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5wcm9wZXJ0eSAmJiBpc1BsYXlncm91bmRQcm9wZXJ0eSh0aGlzLnByb3BlcnR5KSA/IHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24gPz8gJycgOiAnJztcblx0fVxufVxuIiwiPGxhYmVsIFtuZy1kb2MtbGFiZWxdPVwib3B0aW9uPy5oaWRlTGFiZWwgPyAnJyA6IGxhYmVsQ29udGVudFwiPlxuXHQ8bmctdGVtcGxhdGUgI2xhYmVsQ29udGVudD5cblx0XHQ8c3BhbiBbbmdEb2NUb29sdGlwXT1cInRvb2x0aXBUZW1wbGF0ZVwiIFtjYW5PcGVuXT1cIiEhdG9vbHRpcENvbnRlbnRcIlxuXHRcdFx0ICBbcG9zaXRpb25zXT1cIlsnbGVmdC1jZW50ZXInLCAndG9wLXJpZ2h0JywgJ2JvdHRvbS1yaWdodCddXCI+e3tuYW1lfX08L3NwYW4+XG5cdFx0PG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG5cdFx0XHQ8ZGl2IFtpbm5lckhUTUxdPVwidG9vbHRpcENvbnRlbnQgfCBuZ0RvY1Nhbml0aXplSHRtbFwiPjwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdDwvbmctdGVtcGxhdGU+XG5cdDxuZy1jb250YWluZXIgI3Byb3BlcnR5T3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9sYWJlbD5cbiJdfQ==