@firestitch/content 12.3.5 → 13.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/app/modules/content-layouts/components/content-layout/content-layout.component.d.ts +1 -1
  2. package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts +1 -0
  3. package/app/modules/content-pages/fs-content-pages.module.d.ts +21 -20
  4. package/{esm2015/app/modules/content/components/content/content.component.js → esm2020/app/modules/content/components/content/content.component.mjs} +5 -10
  5. package/{esm2015/app/modules/content/components/content-renderer/content-renderer.component.js → esm2020/app/modules/content/components/content-renderer/content-renderer.component.mjs} +5 -10
  6. package/{esm2015/app/modules/content/fs-content.module.js → esm2020/app/modules/content/fs-content.module.mjs} +5 -5
  7. package/esm2020/app/modules/content-layouts/components/content-layout/content-layout.component.mjs +68 -0
  8. package/esm2020/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.mjs +162 -0
  9. package/esm2020/app/modules/content-layouts/components/content-layouts/content-layouts.component.mjs +116 -0
  10. package/{esm2015/app/modules/content-layouts/fs-content-layouts.module.js → esm2020/app/modules/content-layouts/fs-content-layouts.module.mjs} +5 -5
  11. package/esm2020/app/modules/content-pages/components/content-page/content-page.component.mjs +81 -0
  12. package/esm2020/app/modules/content-pages/components/content-page-editor/content-page-editor.component.mjs +179 -0
  13. package/esm2020/app/modules/content-pages/components/content-pages/content-pages.component.mjs +125 -0
  14. package/esm2020/app/modules/content-pages/fs-content-pages.module.mjs +121 -0
  15. package/esm2020/app/modules/content-style/components/content-style/content-style.component.mjs +69 -0
  16. package/{esm2015/app/modules/content-style/fs-content-style.module.js → esm2020/app/modules/content-style/fs-content-style.module.mjs} +5 -5
  17. package/esm2020/app/modules/editor/components/editor/editor.component.mjs +144 -0
  18. package/esm2020/app/modules/editor/components/editor-label/editor-label.component.mjs +16 -0
  19. package/{esm2015/app/modules/editor/fs-content-editor.module.js → esm2020/app/modules/editor/fs-content-editor.module.mjs} +5 -5
  20. package/fesm2015/firestitch-content.mjs +1344 -0
  21. package/fesm2015/firestitch-content.mjs.map +1 -0
  22. package/fesm2020/firestitch-content.mjs +1345 -0
  23. package/fesm2020/firestitch-content.mjs.map +1 -0
  24. package/package.json +21 -8
  25. package/bundles/firestitch-content.umd.js +0 -1482
  26. package/bundles/firestitch-content.umd.js.map +0 -1
  27. package/esm2015/app/modules/content-layouts/components/content-layout/content-layout.component.js +0 -72
  28. package/esm2015/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.js +0 -160
  29. package/esm2015/app/modules/content-layouts/components/content-layouts/content-layouts.component.js +0 -121
  30. package/esm2015/app/modules/content-pages/components/content-page/content-page.component.js +0 -83
  31. package/esm2015/app/modules/content-pages/components/content-page-editor/content-page-editor.component.js +0 -176
  32. package/esm2015/app/modules/content-pages/components/content-pages/content-pages.component.js +0 -130
  33. package/esm2015/app/modules/content-pages/fs-content-pages.module.js +0 -117
  34. package/esm2015/app/modules/content-style/components/content-style/content-style.component.js +0 -71
  35. package/esm2015/app/modules/editor/components/editor/editor.component.js +0 -149
  36. package/esm2015/app/modules/editor/components/editor-label/editor-label.component.js +0 -21
  37. package/fesm2015/firestitch-content.js +0 -1376
  38. package/fesm2015/firestitch-content.js.map +0 -1
  39. /package/{esm2015/app/consts/index.js → esm2020/app/consts/index.mjs} +0 -0
  40. /package/{esm2015/app/consts/page-types.const.js → esm2020/app/consts/page-types.const.mjs} +0 -0
  41. /package/{esm2015/app/enums/editor-type.js → esm2020/app/enums/editor-type.mjs} +0 -0
  42. /package/{esm2015/app/enums/index.js → esm2020/app/enums/index.mjs} +0 -0
  43. /package/{esm2015/app/enums/page-type.enum.js → esm2020/app/enums/page-type.enum.mjs} +0 -0
  44. /package/{esm2015/app/injectors/content-config.injector.js → esm2020/app/injectors/content-config.injector.mjs} +0 -0
  45. /package/{esm2015/app/injectors/index.js → esm2020/app/injectors/index.mjs} +0 -0
  46. /package/{esm2015/app/interfaces/content-config.js → esm2020/app/interfaces/content-config.mjs} +0 -0
  47. /package/{esm2015/app/interfaces/content-layout.js → esm2020/app/interfaces/content-layout.mjs} +0 -0
  48. /package/{esm2015/app/interfaces/content-page.js → esm2020/app/interfaces/content-page.mjs} +0 -0
  49. /package/{esm2015/app/interfaces/content-style.js → esm2020/app/interfaces/content-style.mjs} +0 -0
  50. /package/{esm2015/app/interfaces/index.js → esm2020/app/interfaces/index.mjs} +0 -0
  51. /package/{esm2015/app/modules/content/components/content/index.js → esm2020/app/modules/content/components/content/index.mjs} +0 -0
  52. /package/{esm2015/app/modules/content/components/content-renderer/index.js → esm2020/app/modules/content/components/content-renderer/index.mjs} +0 -0
  53. /package/{esm2015/app/modules/content-layouts/components/content-layout/index.js → esm2020/app/modules/content-layouts/components/content-layout/index.mjs} +0 -0
  54. /package/{esm2015/app/modules/content-layouts/components/content-layout-editor/index.js → esm2020/app/modules/content-layouts/components/content-layout-editor/index.mjs} +0 -0
  55. /package/{esm2015/app/modules/content-layouts/components/content-layouts/index.js → esm2020/app/modules/content-layouts/components/content-layouts/index.mjs} +0 -0
  56. /package/{esm2015/app/modules/content-layouts/components/index.js → esm2020/app/modules/content-layouts/components/index.mjs} +0 -0
  57. /package/{esm2015/app/modules/content-pages/components/content-page/index.js → esm2020/app/modules/content-pages/components/content-page/index.mjs} +0 -0
  58. /package/{esm2015/app/modules/content-pages/components/content-page-editor/index.js → esm2020/app/modules/content-pages/components/content-page-editor/index.mjs} +0 -0
  59. /package/{esm2015/app/modules/content-pages/components/content-pages/index.js → esm2020/app/modules/content-pages/components/content-pages/index.mjs} +0 -0
  60. /package/{esm2015/app/modules/content-pages/components/index.js → esm2020/app/modules/content-pages/components/index.mjs} +0 -0
  61. /package/{esm2015/app/modules/content-style/components/content-style/index.js → esm2020/app/modules/content-style/components/content-style/index.mjs} +0 -0
  62. /package/{esm2015/app/modules/editor/components/editor/index.js → esm2020/app/modules/editor/components/editor/index.mjs} +0 -0
  63. /package/{esm2015/app/modules/editor/components/editor-label/index.js → esm2020/app/modules/editor/components/editor-label/index.mjs} +0 -0
  64. /package/{esm2015/app/modules/editor/index.js → esm2020/app/modules/editor/index.mjs} +0 -0
  65. /package/{esm2015/firestitch-content.js → esm2020/firestitch-content.mjs} +0 -0
  66. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { OnInit, OnDestroy, ChangeDetectorRef, QueryList } from '@angular/core';
1
+ import { ChangeDetectorRef, OnDestroy, OnInit, QueryList } from '@angular/core';
2
2
  import { MatDialogRef } from '@angular/material/dialog';
3
3
  import { FsMessage } from '@firestitch/message';
4
4
  import { FsTextEditorComponent } from '@firestitch/text-editor';
@@ -21,6 +21,7 @@ export declare class ContentPageEditorComponent implements OnInit, OnDestroy {
21
21
  content?: string;
22
22
  name?: string;
23
23
  js?: string;
24
+ path?: string;
24
25
  };
25
26
  focused: any;
26
27
  config: FsContentConfig;
@@ -5,28 +5,29 @@ import * as i2 from "./components/content-page/content-page.component";
5
5
  import * as i3 from "./components/content-page-editor/content-page-editor.component";
6
6
  import * as i4 from "@angular/common";
7
7
  import * as i5 from "@angular/forms";
8
- import * as i6 from "@angular/material/dialog";
9
- import * as i7 from "@angular/material/input";
10
- import * as i8 from "@angular/material/form-field";
11
- import * as i9 from "@angular/material/button";
12
- import * as i10 from "@angular/material/tabs";
13
- import * as i11 from "@angular/material/icon";
14
- import * as i12 from "@angular/material/select";
15
- import * as i13 from "@angular/material/button-toggle";
16
- import * as i14 from "@angular/material/tooltip";
17
- import * as i15 from "@firestitch/list";
18
- import * as i16 from "@firestitch/date";
19
- import * as i17 from "@firestitch/common";
20
- import * as i18 from "@firestitch/form";
21
- import * as i19 from "@firestitch/label";
22
- import * as i20 from "@firestitch/skeleton";
23
- import * as i21 from "@firestitch/html-editor";
24
- import * as i22 from "@firestitch/dialog";
25
- import * as i23 from "@firestitch/text-editor";
26
- import * as i24 from "../editor/fs-content-editor.module";
8
+ import * as i6 from "@angular/router";
9
+ import * as i7 from "@angular/material/dialog";
10
+ import * as i8 from "@angular/material/input";
11
+ import * as i9 from "@angular/material/form-field";
12
+ import * as i10 from "@angular/material/button";
13
+ import * as i11 from "@angular/material/tabs";
14
+ import * as i12 from "@angular/material/icon";
15
+ import * as i13 from "@angular/material/select";
16
+ import * as i14 from "@angular/material/button-toggle";
17
+ import * as i15 from "@angular/material/tooltip";
18
+ import * as i16 from "@firestitch/list";
19
+ import * as i17 from "@firestitch/date";
20
+ import * as i18 from "@firestitch/common";
21
+ import * as i19 from "@firestitch/form";
22
+ import * as i20 from "@firestitch/label";
23
+ import * as i21 from "@firestitch/skeleton";
24
+ import * as i22 from "@firestitch/html-editor";
25
+ import * as i23 from "@firestitch/dialog";
26
+ import * as i24 from "@firestitch/text-editor";
27
+ import * as i25 from "../editor/fs-content-editor.module";
27
28
  export declare class FsContentPagesModule {
28
29
  static forRoot(): ModuleWithProviders<FsContentPagesModule>;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<FsContentPagesModule, never>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<FsContentPagesModule, [typeof i1.FsContentPagesComponent, typeof i2.ContentPageComponent, typeof i3.ContentPageEditorComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.MatDialogModule, typeof i7.MatInputModule, typeof i8.MatFormFieldModule, typeof i9.MatButtonModule, typeof i10.MatTabsModule, typeof i11.MatIconModule, typeof i12.MatSelectModule, typeof i13.MatButtonToggleModule, typeof i14.MatTooltipModule, typeof i15.FsListModule, typeof i16.FsDateModule, typeof i17.FsCommonModule, typeof i18.FsFormModule, typeof i19.FsLabelModule, typeof i20.FsSkeletonModule, typeof i21.FsHtmlEditorModule, typeof i22.FsDialogModule, typeof i23.FsTextEditorModule, typeof i24.FsContentEditorModule], [typeof i1.FsContentPagesComponent]>;
31
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FsContentPagesModule, [typeof i1.FsContentPagesComponent, typeof i2.ContentPageComponent, typeof i3.ContentPageEditorComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.RouterModule, typeof i7.MatDialogModule, typeof i8.MatInputModule, typeof i9.MatFormFieldModule, typeof i10.MatButtonModule, typeof i11.MatTabsModule, typeof i12.MatIconModule, typeof i13.MatSelectModule, typeof i14.MatButtonToggleModule, typeof i15.MatTooltipModule, typeof i16.FsListModule, typeof i17.FsDateModule, typeof i18.FsCommonModule, typeof i19.FsFormModule, typeof i20.FsLabelModule, typeof i21.FsSkeletonModule, typeof i22.FsHtmlEditorModule, typeof i23.FsDialogModule, typeof i24.FsTextEditorModule, typeof i25.FsContentEditorModule], [typeof i1.FsContentPagesComponent]>;
31
32
  static ɵinj: i0.ɵɵInjectorDeclaration<FsContentPagesModule>;
32
33
  }
@@ -68,18 +68,13 @@ export class FsContentComponent {
68
68
  });
69
69
  }
70
70
  }
71
- FsContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.Title }, { token: i0.ChangeDetectorRef }, { token: i2.Router }, { token: i0.ElementRef }, { token: i3.HtmlRenderer }], target: i0.ɵɵFactoryTarget.Component });
72
- FsContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentComponent, selector: "fs-content", ngImport: i0, template: "<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>", styles: [""], components: [{ type: i4.ContentRendererComponent, selector: "fs-content-renderer", inputs: ["contentPage"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentComponent, decorators: [{
71
+ FsContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.Title }, { token: i0.ChangeDetectorRef }, { token: i2.Router }, { token: i0.ElementRef }, { token: i3.HtmlRenderer }], target: i0.ɵɵFactoryTarget.Component });
72
+ FsContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentComponent, selector: "fs-content", ngImport: i0, template: "<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>", styles: [""], components: [{ type: i4.ContentRendererComponent, selector: "fs-content-renderer", inputs: ["contentPage"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentComponent, decorators: [{
74
74
  type: Component,
75
- args: [{
76
- selector: 'fs-content',
77
- templateUrl: './content.component.html',
78
- styleUrls: ['./content.component.scss'],
79
- changeDetection: ChangeDetectionStrategy.OnPush,
80
- }]
75
+ args: [{ selector: 'fs-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>", styles: [""] }]
81
76
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
82
77
  type: Inject,
83
78
  args: [FS_CONTENT_CONFIG]
84
79
  }] }, { type: i1.Title }, { type: i0.ChangeDetectorRef }, { type: i2.Router }, { type: i0.ElementRef }, { type: i3.HtmlRenderer }]; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBVTFELE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFDcUMsT0FBd0IsRUFDbkQsTUFBYSxFQUNiLE1BQXlCLEVBQ3pCLE9BQWUsRUFDZixHQUFlLEVBQ2YsYUFBMkI7UUFMQSxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNuRCxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQVI3QixjQUFT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b250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBIdG1sUmVuZGVyZXIgfSBmcm9tICdAZmlyZXN0aXRjaC9odG1sJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZTX0NPTlRFTlRfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQ29udGVudENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgY29udGVudFBhZ2U7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfQ09OVEVOVF9DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogRnNDb250ZW50Q29uZmlnLFxuICAgIHByaXZhdGUgX3RpdGxlOiBUaXRsZSxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfaHRtbFJlbmRlcmVyOiBIdG1sUmVuZGVyZXIsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdENvbnRlbnQoKTtcbiAgICB0aGlzLl9pbml0U3R5bGVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVsKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdGl0bGUuc2V0VGl0bGUoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFN0eWxlcygpOiB2b2lkIHtcbiAgICBpZih0aGlzLl9jb25maWcubG9hZENvbnRlbnRTdHlsZUNzcykge1xuICAgICAgdGhpcy5fY29uZmlnLmxvYWRDb250ZW50U3R5bGVDc3MoKVxuICAgICAgICAuc3Vic2NyaWJlKChzdHlsZXMpID0+IHtcbiAgICAgICAgICB0aGlzLl9odG1sUmVuZGVyZXIuYWRkU3R5bGUoc3R5bGVzLCB7IGlkOiAnY29udGVudC1zeXRsZScgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2xvYWRDb250ZW50KCk7XG5cbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMuX2xvYWRDb250ZW50KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRDb250ZW50KCkge1xuICAgIGNvbnN0IHBhdGggPSAod2luZG93IGFzIGFueSkubG9jYXRpb24ucGF0aG5hbWU7XG5cbiAgICB0aGlzLl9jb25maWcubG9hZENvbnRlbnQocGF0aClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRQYWdlKSA9PiB7XG4gICAgICAgIGlmKGNvbnRlbnRQYWdlLnRpdGxlKSB7XG4gICAgICAgICAgdGhpcy5fdGl0bGUuc2V0VGl0bGUoY29udGVudFBhZ2UudGl0bGUpO1xuXG4gICAgICAgICAgbGV0IG9nVGl0bGVFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQgbWV0YVtwcm9wZXJ0eT1cIm9nOnRpdGxlXCJdJyk7XG4gICAgICAgICAgaWYoIW9nVGl0bGVFbCkge1xuICAgICAgICAgICAgb2dUaXRsZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0YScpO1xuICAgICAgICAgICAgb2dUaXRsZUVsLnNldEF0dHJpYnV0ZSgncHJvcGVydHknLCdvZzp0aXRsZScpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChvZ1RpdGxlRWwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9nVGl0bGVFbC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnLGNvbnRlbnRQYWdlLnRpdGxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGVudFBhZ2UgPSBjb250ZW50UGFnZTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFBhZ2VcIj5cbiAgPGZzLWNvbnRlbnQtcmVuZGVyZXIgW2NvbnRlbnRQYWdlXT1cImNvbnRlbnRQYWdlXCI+PC9mcy1jb250ZW50LXJlbmRlcmVyPlxuPC9uZy1jb250YWluZXI+Il19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBVTFELE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFDcUMsT0FBd0IsRUFDbkQsTUFBYSxFQUNiLE1BQXlCLEVBQ3pCLE9BQWUsRUFDZixHQUFlLEVBQ2YsYUFBMkI7UUFMQSxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUNuRCxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQVI3QixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVMvQixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO2lCQUMvQixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07YUFDaEIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxFQUN6QyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxJQUFJLEdBQUksTUFBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQzNCLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3pCLElBQUcsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7Z0JBQ3pFLElBQUcsQ0FBQyxTQUFTLEVBQUU7b0JBQ2IsU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzNDLFNBQVMsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM5QyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqRTtnQkFFRCxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckQ7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7K0dBekVVLGtCQUFrQixrQkFPbkIsaUJBQWlCO21HQVBoQixrQkFBa0Isa0RDM0IvQixvSUFFZTsyRkR5QkYsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs7MEJBUzVDLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEh0bWxSZW5kZXJlciB9IGZyb20gJ0BmaXJlc3RpdGNoL2h0bWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRlNfQ09OVEVOVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBjb250ZW50UGFnZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19DT05URU5UX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBGc0NvbnRlbnRDb25maWcsXG4gICAgcHJpdmF0ZSBfdGl0bGU6IFRpdGxlLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9odG1sUmVuZGVyZXI6IEh0bWxSZW5kZXJlcixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbml0Q29udGVudCgpO1xuICAgIHRoaXMuX2luaXRTdHlsZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWwoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl90aXRsZS5zZXRUaXRsZSgnJyk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U3R5bGVzKCk6IHZvaWQge1xuICAgIGlmKHRoaXMuX2NvbmZpZy5sb2FkQ29udGVudFN0eWxlQ3NzKSB7XG4gICAgICB0aGlzLl9jb25maWcubG9hZENvbnRlbnRTdHlsZUNzcygpXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0eWxlcykgPT4ge1xuICAgICAgICAgIHRoaXMuX2h0bWxSZW5kZXJlci5hZGRTdHlsZShzdHlsZXMsIHsgaWQ6ICdjb250ZW50LXN5dGxlJyB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZENvbnRlbnQoKTtcblxuICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgdGhpcy5fbG9hZENvbnRlbnQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZENvbnRlbnQoKSB7XG4gICAgY29uc3QgcGF0aCA9ICh3aW5kb3cgYXMgYW55KS5sb2NhdGlvbi5wYXRobmFtZTtcblxuICAgIHRoaXMuX2NvbmZpZy5sb2FkQ29udGVudChwYXRoKVxuICAgICAgLnN1YnNjcmliZSgoY29udGVudFBhZ2UpID0+IHtcbiAgICAgICAgaWYoY29udGVudFBhZ2UudGl0bGUpIHtcbiAgICAgICAgICB0aGlzLl90aXRsZS5zZXRUaXRsZShjb250ZW50UGFnZS50aXRsZSk7XG5cbiAgICAgICAgICBsZXQgb2dUaXRsZUVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCBtZXRhW3Byb3BlcnR5PVwib2c6dGl0bGVcIl0nKTtcbiAgICAgICAgICBpZighb2dUaXRsZUVsKSB7XG4gICAgICAgICAgICBvZ1RpdGxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRhJyk7XG4gICAgICAgICAgICBvZ1RpdGxlRWwuc2V0QXR0cmlidXRlKCdwcm9wZXJ0eScsJ29nOnRpdGxlJyk7XG4gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKG9nVGl0bGVFbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb2dUaXRsZUVsLnNldEF0dHJpYnV0ZSgnY29udGVudCcsY29udGVudFBhZ2UudGl0bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250ZW50UGFnZSA9IGNvbnRlbnRQYWdlO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50UGFnZVwiPlxuICA8ZnMtY29udGVudC1yZW5kZXJlciBbY29udGVudFBhZ2VdPVwiY29udGVudFBhZ2VcIj48L2ZzLWNvbnRlbnQtcmVuZGVyZXI+XG48L25nLWNvbnRhaW5lcj4iXX0=
@@ -60,20 +60,15 @@ export class ContentRendererComponent {
60
60
  }
61
61
  }
62
62
  }
63
- ContentRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentRendererComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.Router }, { token: i0.ElementRef }, { token: i3.HtmlRenderer }], target: i0.ɵɵFactoryTarget.Component });
64
- ContentRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentRendererComponent, selector: "fs-content-renderer", inputs: { contentPage: "contentPage" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["script"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>", styles: [""], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentRendererComponent, decorators: [{
63
+ ContentRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentRendererComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.Router }, { token: i0.ElementRef }, { token: i3.HtmlRenderer }], target: i0.ɵɵFactoryTarget.Component });
64
+ ContentRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ContentRendererComponent, selector: "fs-content-renderer", inputs: { contentPage: "contentPage" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["script"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>", styles: [""], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentRendererComponent, decorators: [{
66
66
  type: Component,
67
- args: [{
68
- selector: 'fs-content-renderer',
69
- templateUrl: './content-renderer.component.html',
70
- styleUrls: ['./content-renderer.component.scss'],
71
- changeDetection: ChangeDetectionStrategy.OnPush,
72
- }]
67
+ args: [{ selector: 'fs-content-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>", styles: [""] }]
73
68
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.Router }, { type: i0.ElementRef }, { type: i3.HtmlRenderer }]; }, propDecorators: { script: [{
74
69
  type: ViewChild,
75
70
  args: ['script', { read: ElementRef }]
76
71
  }], contentPage: [{
77
72
  type: Input
78
73
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQtcmVuZGVyZXIvY29udGVudC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQtcmVuZGVyZXIvY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTL0IsTUFBTSxPQUFPLHdCQUF3QjtJQVduQyxZQUNVLFVBQXdCLEVBQ3hCLE9BQWUsRUFDZixHQUFlLEVBQ2YsYUFBMkI7UUFIM0IsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBTjdCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBTy9CLENBQUM7SUFFRyxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtZQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUMsTUFBTSxDQUFDLENBQUMsRUFBVyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFXLEVBQUUsRUFBRTtZQUN2QixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUNoRCxJQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELElBQUcsRUFBRSxFQUFFO1lBQ0wsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztzSEFsRVUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsZ0xBRU4sVUFBVSxrREMzQnpDLDhFQUNxQjs0RkR3QlIsd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO29CQUNoRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7NEtBSVEsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBR3pCLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBIdG1sUmVuZGVyZXIgfSBmcm9tICdAZmlyZXN0aXRjaC9odG1sJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWNvbnRlbnQtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25DaGFuZ2Vze1xuXG4gIEBWaWV3Q2hpbGQoJ3NjcmlwdCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgc2NyaXB0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZW50UGFnZTtcblxuICBwdWJsaWMgY29udGVudDogU2FmZUh0bWw7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2h0bWxSZW5kZXJlcjogSHRtbFJlbmRlcmVyLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZihjaGFuZ2VzLmNvbnRlbnRQYWdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5faHRtbFJlbmRlcmVyLmFkZFN0eWxlKHRoaXMuY29udGVudFBhZ2Uuc3R5bGVzLCB7IGlkOiAnY29udGVudFBhZ2VTdHlsZXMnIH0pO1xuICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMuY29udGVudFBhZ2UuY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVySHJlZnMoKTtcblxuICAgIGlmKHRoaXMuY29udGVudFBhZ2UuanMpIHtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnRleHQgPSB0aGlzLmNvbnRlbnRQYWdlLmpzO1xuICAgICAgdGhpcy5zY3JpcHQubmF0aXZlRWxlbWVudC5hZnRlcihzY3JpcHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckhyZWZzKCk6IHZvaWQge1xuICAgIEFycmF5LmZyb20odGhpcy5lbC5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZdJykpXG4gICAgICAuZmlsdGVyKChlbDogRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlKCdocmVmJykubWF0Y2goL15cXC8vKTtcbiAgICAgIH0pXG4gICAgICAuZm9yRWFjaCgoZWw6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGlmKCFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWwoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVN0eWxlcygpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVN0eWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjb250ZW50UGFnZVN0eWxlcycpO1xuICAgIGlmKGVsKSB7XG4gICAgICBlbC5yZW1vdmUoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cImNvbnRlbnRcIj48L2Rpdj5cbjxzcGFuICNzY3JpcHQ+PC9zcGFuPiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQtcmVuZGVyZXIvY29udGVudC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQtcmVuZGVyZXIvY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFTL0IsTUFBTSxPQUFPLHdCQUF3QjtJQVduQyxZQUNVLFVBQXdCLEVBQ3hCLE9BQWUsRUFDZixHQUFlLEVBQ2YsYUFBMkI7UUFIM0IsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBTjdCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBTy9CLENBQUM7SUFFRyxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtZQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEY7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUMsTUFBTSxDQUFDLENBQUMsRUFBVyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFXLEVBQUUsRUFBRTtZQUN2QixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUNoRCxJQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVk7UUFDakIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELElBQUcsRUFBRSxFQUFFO1lBQ0wsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOztxSEFsRVUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsZ0xBRU4sVUFBVSxrREMzQnpDLDhFQUNxQjsyRkR3QlIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzRLQUt4QyxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFHekIsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEh0bWxSZW5kZXJlciB9IGZyb20gJ0BmaXJlc3RpdGNoL2h0bWwnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY29udGVudC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXN7XG5cbiAgQFZpZXdDaGlsZCgnc2NyaXB0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBzY3JpcHQ6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIGNvbnRlbnRQYWdlO1xuXG4gIHB1YmxpYyBjb250ZW50OiBTYWZlSHRtbDtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfaHRtbFJlbmRlcmVyOiBIdG1sUmVuZGVyZXIsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmKGNoYW5nZXMuY29udGVudFBhZ2UuY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLl9odG1sUmVuZGVyZXIuYWRkU3R5bGUodGhpcy5jb250ZW50UGFnZS5zdHlsZXMsIHsgaWQ6ICdjb250ZW50UGFnZVN0eWxlcycgfSk7XG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5jb250ZW50UGFnZS5jb250ZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJIcmVmcygpO1xuXG4gICAgaWYodGhpcy5jb250ZW50UGFnZS5qcykge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQudGV4dCA9IHRoaXMuY29udGVudFBhZ2UuanM7XG4gICAgICB0aGlzLnNjcmlwdC5uYXRpdmVFbGVtZW50LmFmdGVyKHNjcmlwdCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySHJlZnMoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLmVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FbaHJlZl0nKSlcbiAgICAgIC5maWx0ZXIoKGVsOiBFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5tYXRjaCgvXlxcLy8pO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChlbDogRWxlbWVudCkgPT4ge1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYoIWV2ZW50LnNoaWZ0S2V5ICYmICFldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgaHJlZiA9IGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlU3R5bGVzKCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2NvbnRlbnRQYWdlU3R5bGVzJyk7XG4gICAgaWYoZWwpIHtcbiAgICAgIGVsLnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiY29udGVudFwiIFtpbm5lckhUTUxdPVwiY29udGVudFwiPjwvZGl2PlxuPHNwYW4gI3NjcmlwdD48L3NwYW4+Il19
@@ -6,15 +6,15 @@ import { ContentRendererComponent } from './components/content-renderer';
6
6
  import * as i0 from "@angular/core";
7
7
  export class FsContentModule {
8
8
  }
9
- FsContentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- FsContentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentModule, declarations: [FsContentComponent,
9
+ FsContentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ FsContentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentModule, declarations: [FsContentComponent,
11
11
  ContentRendererComponent], imports: [CommonModule,
12
12
  FsHtmlEditorModule], exports: [FsContentComponent] });
13
- FsContentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentModule, imports: [[
13
+ FsContentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentModule, imports: [[
14
14
  CommonModule,
15
15
  FsHtmlEditorModule,
16
16
  ]] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
30
30
  ],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9mcy1jb250ZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFrQnpFLE1BQU0sT0FBTyxlQUFlOzs2R0FBZixlQUFlOzhHQUFmLGVBQWUsaUJBSnhCLGtCQUFrQjtRQUNsQix3QkFBd0IsYUFUeEIsWUFBWTtRQUVaLGtCQUFrQixhQUdsQixrQkFBa0I7OEdBT1QsZUFBZSxZQWJqQjtZQUNQLFlBQVk7WUFFWixrQkFBa0I7U0FDbkI7NEZBU1UsZUFBZTtrQkFkM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRnNIdG1sRWRpdG9yTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbC1lZGl0b3InO1xuXG5pbXBvcnQgeyBGc0NvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudCc7XG5pbXBvcnQgeyBDb250ZW50UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC1yZW5kZXJlcic7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuXG4gICAgRnNIdG1sRWRpdG9yTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNDb250ZW50Q29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGc0NvbnRlbnRDb21wb25lbnQsXG4gICAgQ29udGVudFJlbmRlcmVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NvbnRlbnRNb2R1bGUge1xufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC9mcy1jb250ZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFrQnpFLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBSnhCLGtCQUFrQjtRQUNsQix3QkFBd0IsYUFUeEIsWUFBWTtRQUVaLGtCQUFrQixhQUdsQixrQkFBa0I7NkdBT1QsZUFBZSxZQWJqQjtZQUNQLFlBQVk7WUFFWixrQkFBa0I7U0FDbkI7MkZBU1UsZUFBZTtrQkFkM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRnNIdG1sRWRpdG9yTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbC1lZGl0b3InO1xuXG5pbXBvcnQgeyBGc0NvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudCc7XG5pbXBvcnQgeyBDb250ZW50UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC1yZW5kZXJlcic7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuXG4gICAgRnNIdG1sRWRpdG9yTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNDb250ZW50Q29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGc0NvbnRlbnRDb21wb25lbnQsXG4gICAgQ29udGVudFJlbmRlcmVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NvbnRlbnRNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,68 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, QueryList, ViewChildren, } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { FsTextEditorComponent } from '@firestitch/text-editor';
5
+ import { Subject, of } from 'rxjs';
6
+ import { switchMap, takeUntil, tap } from 'rxjs/operators';
7
+ import { FS_CONTENT_CONFIG } from '../../../../injectors';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/dialog";
10
+ import * as i2 from "@firestitch/message";
11
+ import * as i3 from "@firestitch/dialog";
12
+ import * as i4 from "@angular/material/form-field";
13
+ import * as i5 from "@firestitch/form";
14
+ import * as i6 from "@firestitch/skeleton";
15
+ import * as i7 from "@angular/forms";
16
+ import * as i8 from "@angular/material/input";
17
+ export class ContentLayoutComponent {
18
+ constructor(_config, _data, _dialogRef, _message, _cdRef) {
19
+ this._config = _config;
20
+ this._data = _data;
21
+ this._dialogRef = _dialogRef;
22
+ this._message = _message;
23
+ this._cdRef = _cdRef;
24
+ this.contentLayout = null;
25
+ this.editors = { content: true, styles: true };
26
+ this._destroy$ = new Subject();
27
+ this.save = () => {
28
+ return this._config.saveContentLayout(this.contentLayout)
29
+ .pipe(tap((contentLayout) => {
30
+ this._message.success('Saved Changes');
31
+ this._dialogRef.close(contentLayout);
32
+ }));
33
+ };
34
+ }
35
+ ngOnInit() {
36
+ this._fetchData();
37
+ }
38
+ ngOnDestroy() {
39
+ this._destroy$.next();
40
+ this._destroy$.complete();
41
+ }
42
+ _fetchData() {
43
+ of(this._data.contentLayout)
44
+ .pipe(switchMap((contentLayout) => {
45
+ return of(contentLayout);
46
+ }), takeUntil(this._destroy$))
47
+ .subscribe((contentLayout) => {
48
+ this.contentLayout = { ...contentLayout };
49
+ this._cdRef.markForCheck();
50
+ });
51
+ }
52
+ }
53
+ ContentLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentLayoutComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
54
+ ContentLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ContentLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "textEditors", predicate: FsTextEditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout.id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n", styles: [""], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], directives: [{ type: i6.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i4.MatLabel, selector: "mat-label" }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i5.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentLayoutComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout.id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n", styles: [""] }]
58
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
59
+ type: Inject,
60
+ args: [FS_CONTENT_CONFIG]
61
+ }] }, { type: undefined, decorators: [{
62
+ type: Inject,
63
+ args: [MAT_DIALOG_DATA]
64
+ }] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textEditors: [{
65
+ type: ViewChildren,
66
+ args: [FsTextEditorComponent]
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2NvbnRlbnQtbGF5b3V0cy9jb21wb25lbnRzL2NvbnRlbnQtbGF5b3V0L2NvbnRlbnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC9jb250ZW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFTMUQsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNxQyxPQUF3QixFQUMxQixLQUFVLEVBQ25DLFVBQWdELEVBQ2hELFFBQW1CLEVBQ25CLE1BQXlCO1FBSkUsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFzQztRQUNoRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBVjVCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBRXpDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBbUJqQyxTQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2lCQUN0RCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDO0lBbkJDLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBWU8sVUFBVTtRQUNoQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7YUFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFFMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O21IQWxEVSxzQkFBc0Isa0JBV3ZCLGlCQUFpQixhQUNqQixlQUFlO3VHQVpkLHNCQUFzQixvRkFFbkIscUJBQXFCLGdEQzlCckMscXpCQTZCQTsyRkREYSxzQkFBc0I7a0JBTGxDLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTTs7MEJBYTVDLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxlQUFlOytIQVRsQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5cbmltcG9ydCB7IFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGU19DT05URU5UX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uLy4uL2luamVjdG9ycyc7XG5pbXBvcnQgeyBGc0NvbnRlbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZHJlbihGc1RleHRFZGl0b3JDb21wb25lbnQpXG4gIHB1YmxpYyB0ZXh0RWRpdG9yczogUXVlcnlMaXN0PEZzVGV4dEVkaXRvckNvbXBvbmVudD47XG5cbiAgcHVibGljIGNvbnRlbnRMYXlvdXQgPSBudWxsO1xuICBwdWJsaWMgZWRpdG9ycyA9IHsgY29udGVudDogdHJ1ZSwgc3R5bGVzOiB0cnVlIH07XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCAgICBcbiAgICBASW5qZWN0KEZTX0NPTlRFTlRfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEZzQ29udGVudENvbmZpZyxcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbnRlbnRMYXlvdXRDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNhdmVDb250ZW50TGF5b3V0KHRoaXMuY29udGVudExheW91dClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGNvbnRlbnRMYXlvdXQpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1NhdmVkIENoYW5nZXMnKTtcbiAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoY29udGVudExheW91dCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwcml2YXRlIF9mZXRjaERhdGEoKTogdm9pZCB7XG4gICAgb2YodGhpcy5fZGF0YS5jb250ZW50TGF5b3V0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoY29udGVudExheW91dCkgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihjb250ZW50TGF5b3V0KTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50TGF5b3V0KSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudExheW91dCA9IHsgLi4uY29udGVudExheW91dCB9O1xuXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwic2F2ZVwiICpmc1NrZWxldG9uRm9ybT1cImNvbnRlbnRMYXlvdXRcIj5cbiAgPGZzLWRpYWxvZz5cbiAgICA8aDEgbWF0LWRpYWxvZy10aXRsZT57e2NvbnRlbnRMYXlvdXQuaWQgPyAnTGF5b3V0JyA6ICdMYXlvdXQgUGFnZSd9fTwvaDE+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtY29sdW1uXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPk5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRMYXlvdXQubmFtZVwiXG4gICAgICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgICAgICByZXF1aXJlZD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+VGFnPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250ZW50TGF5b3V0LnRhZ1wiXG4gICAgICAgICAgICBuYW1lPVwidGFnXCI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGZzLWZvcm0tZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8L2ZzLWZvcm0tZGlhbG9nLWFjdGlvbnM+XG4gICAgPC9kaXY+XG4gIDwvZnMtZGlhbG9nPlxuPC9mb3JtPlxuIl19
@@ -0,0 +1,162 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, ViewChild, } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { FsPrompt } from '@firestitch/prompt';
5
+ import { Subject, fromEvent, of, throwError } from 'rxjs';
6
+ import { filter, switchMap, takeUntil, tap } from 'rxjs/operators';
7
+ import { EditorType } from '../../../../enums';
8
+ import { EditorComponent } from '../../../editor/components/editor';
9
+ import { ContentLayoutComponent } from '../content-layout/content-layout.component';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/material/dialog";
12
+ import * as i2 from "@firestitch/message";
13
+ import * as i3 from "@firestitch/prompt";
14
+ import * as i4 from "@firestitch/dialog";
15
+ import * as i5 from "@angular/material/button";
16
+ import * as i6 from "@angular/material/icon";
17
+ import * as i7 from "../../../editor/components/editor/editor.component";
18
+ import * as i8 from "@angular/material/button-toggle";
19
+ import * as i9 from "@angular/forms";
20
+ import * as i10 from "@firestitch/form";
21
+ import * as i11 from "@firestitch/skeleton";
22
+ export class ContentLayoutEditorComponent {
23
+ constructor(_data, _dialogRef, _message, _dialog, _cdRef, _prompt) {
24
+ this._data = _data;
25
+ this._dialogRef = _dialogRef;
26
+ this._message = _message;
27
+ this._dialog = _dialog;
28
+ this._cdRef = _cdRef;
29
+ this._prompt = _prompt;
30
+ this.EditorType = EditorType;
31
+ this.focused = null;
32
+ this.editors = {
33
+ [EditorType.Html]: true,
34
+ [EditorType.Scss]: true,
35
+ [EditorType.GlobalScss]: false,
36
+ };
37
+ this._destroy$ = new Subject();
38
+ this.save = () => {
39
+ return of(null)
40
+ .pipe(filter(() => this.focused), switchMap(() => {
41
+ switch (this.focused) {
42
+ case EditorType.Html:
43
+ case EditorType.Scss:
44
+ return this.saveContentPage();
45
+ case EditorType.GlobalScss:
46
+ return this.editor.saveGlobalScss();
47
+ }
48
+ return throwError('Invalid focus');
49
+ }), tap(() => {
50
+ this.editor.clearChange(this.focused);
51
+ this._cdRef.markForCheck();
52
+ }));
53
+ };
54
+ }
55
+ ngOnInit() {
56
+ this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
57
+ this._dialogRef.disableClose = true;
58
+ this.config = this._data.contentConfig;
59
+ this._initContentLayout(this._data.contentLayout);
60
+ this._initEscape();
61
+ }
62
+ editorToggleChange(event) {
63
+ this.editors[event.value] = !this.editors[event.value];
64
+ }
65
+ ngOnDestroy() {
66
+ this._destroy$.next();
67
+ this._destroy$.complete();
68
+ }
69
+ _initContentLayout(contentLayout) {
70
+ this.config.loadContentLayout(contentLayout.id)
71
+ .subscribe((data) => {
72
+ this.contentLayout = data;
73
+ this._cdRef.markForCheck();
74
+ });
75
+ }
76
+ editorFocused(type) {
77
+ this.focused = type;
78
+ }
79
+ saveContentPage() {
80
+ const names = {
81
+ [EditorType.Scss]: 'styles',
82
+ [EditorType.Html]: 'content',
83
+ };
84
+ const data = {
85
+ id: this.contentLayout.id,
86
+ [names[this.focused]]: this.editor.changes[this.focused],
87
+ };
88
+ return this.config.saveContentLayout({
89
+ id: this.contentLayout.id,
90
+ ...data,
91
+ })
92
+ .pipe(tap(() => {
93
+ this._message.success('Saved Changes');
94
+ }));
95
+ }
96
+ close() {
97
+ if (!this.editor.hasChanges) {
98
+ return this._dialogRef.close();
99
+ }
100
+ this._prompt.confirm({
101
+ dialogConfig: {
102
+ width: null,
103
+ },
104
+ title: 'You have unsaved changes',
105
+ template: 'What would you like to do with your changes?',
106
+ buttons: [
107
+ {
108
+ label: 'Review Changes',
109
+ value: 'review',
110
+ },
111
+ {
112
+ label: 'Discard Changes',
113
+ value: 'discard',
114
+ },
115
+ ],
116
+ })
117
+ .pipe(takeUntil(this._destroy$))
118
+ .subscribe((value) => {
119
+ if (value === 'discard') {
120
+ this._dialogRef.close();
121
+ }
122
+ });
123
+ }
124
+ openSettings() {
125
+ this._dialog.open(ContentLayoutComponent, {
126
+ data: {
127
+ contentLayout: this.contentLayout,
128
+ },
129
+ })
130
+ .afterClosed()
131
+ .pipe(takeUntil(this._destroy$))
132
+ .subscribe((contentLayout) => {
133
+ this.contentLayout = {
134
+ ...this.contentLayout,
135
+ ...contentLayout,
136
+ };
137
+ this._cdRef.markForCheck();
138
+ });
139
+ }
140
+ _initEscape() {
141
+ fromEvent(document, 'keydown')
142
+ .pipe(filter((event) => event.code === 'Escape'), takeUntil(this._destroy$)).subscribe(() => {
143
+ const dialogRef = this._dialog.openDialogs.reverse()[0];
144
+ if (dialogRef?.componentInstance === this) {
145
+ this.close();
146
+ }
147
+ });
148
+ }
149
+ }
150
+ ContentLayoutEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentLayoutEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
151
+ ContentLayoutEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"save\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">{{contentLayout.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a> \n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div>\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}.mat-dialog-actions .toggles{display:flex;justify-content:flex-end;justify-self:baseline;flex:1}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], components: [{ type: i4.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { type: i11.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentLayoutEditorComponent, decorators: [{
153
+ type: Component,
154
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"save\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">{{contentLayout.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a> \n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div>\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}.mat-dialog-actions .toggles{display:flex;justify-content:flex-end;justify-self:baseline;flex:1}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
155
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
156
+ type: Inject,
157
+ args: [MAT_DIALOG_DATA]
158
+ }] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: i1.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i3.FsPrompt }]; }, propDecorators: { editor: [{
159
+ type: ViewChild,
160
+ args: [EditorComponent]
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVFwRixNQUFNLE9BQU8sNEJBQTRC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O1lBQ3hELElBQUcsU0FBUyxFQUFFLGlCQUFpQixLQUFLLElBQUksRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3lIQTNLVSw0QkFBNEIsa0JBeUI3QixlQUFlOzZHQXpCZCw0QkFBNEIsNEZBRTVCLGVBQWUsZ0RDaEM1Qiw4bkRBNENPOzJGRGRNLDRCQUE0QjtrQkFMeEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLE1BQU07MkJBQUMsZUFBZTs4S0F0QmxCLE1BQU07c0JBRFosU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVkaXRvclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGc0NvbnRlbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2VkaXRvcic7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29udGVudC1sYXlvdXQvY29udGVudC1sYXlvdXQuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbGF5b3V0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtbGF5b3V0LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudExheW91dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEVkaXRvckNvbXBvbmVudClcbiAgcHVibGljIGVkaXRvcjogRWRpdG9yQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBjb250ZW50TGF5b3V0OiB7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgc3R5bGVzPzogc3RyaW5nO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgfTtcblxuICBwdWJsaWMgY29uZmlnOiBGc0NvbnRlbnRDb25maWc7XG4gIHB1YmxpYyBFZGl0b3JUeXBlID0gRWRpdG9yVHlwZTtcbiAgcHVibGljIGZvY3VzZWQgPSBudWxsO1xuICBwdWJsaWMgdGl0bGU7XG4gIHB1YmxpYyBlZGl0b3JzID0ge1xuICAgIFtFZGl0b3JUeXBlLkh0bWxdOiB0cnVlLFxuICAgIFtFZGl0b3JUeXBlLlNjc3NdOiB0cnVlLFxuICAgIFtFZGl0b3JUeXBlLkdsb2JhbFNjc3NdOiBmYWxzZSxcbiAgfTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IHtcbiAgICAgIGNvbnRlbnRMYXlvdXQ6IGFueTtcbiAgICAgIGNvbnRlbnRDb25maWc6IEZzQ29udGVudENvbmZpZztcbiAgICB9LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbnRlbnRMYXlvdXRFZGl0b3JDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfcHJvbXB0OiBGc1Byb21wdCxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dSZWYuYWRkUGFuZWxDbGFzcygnZnMtY29udGVudC1lZGl0b3Itb3ZlcmxheS1wYW5lJyk7XG4gICAgdGhpcy5fZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLl9kYXRhLmNvbnRlbnRDb25maWc7XG4gICAgdGhpcy5faW5pdENvbnRlbnRMYXlvdXQodGhpcy5fZGF0YS5jb250ZW50TGF5b3V0KTtcbiAgICB0aGlzLl9pbml0RXNjYXBlKCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdG9yVG9nZ2xlQ2hhbmdlKGV2ZW50OiBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdID0gIXRoaXMuZWRpdG9yc1tldmVudC52YWx1ZV07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgX2luaXRDb250ZW50TGF5b3V0KGNvbnRlbnRMYXlvdXQpIHtcbiAgICB0aGlzLmNvbmZpZy5sb2FkQ29udGVudExheW91dChjb250ZW50TGF5b3V0LmlkKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRlbnRMYXlvdXQgPSBkYXRhO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRvckZvY3VzZWQodHlwZSkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gb2YobnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5mb2N1c2VkKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgY2FzZSBFZGl0b3JUeXBlLkh0bWw6XG4gICAgICAgICAgICBjYXNlIEVkaXRvclR5cGUuU2NzczpcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUNvbnRlbnRQYWdlKCk7XG4gICAgICAgICAgICBjYXNlIEVkaXRvclR5cGUuR2xvYmFsU2NzczpcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLnNhdmVHbG9iYWxTY3NzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0ludmFsaWQgZm9jdXMnKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lZGl0b3IuY2xlYXJDaGFuZ2UodGhpcy5mb2N1c2VkKTtcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBzYXZlQ29udGVudFBhZ2UoKSB7XG4gICAgY29uc3QgbmFtZXMgPSB7XG4gICAgICBbRWRpdG9yVHlwZS5TY3NzXTogJ3N0eWxlcycsXG4gICAgICBbRWRpdG9yVHlwZS5IdG1sXTogJ2NvbnRlbnQnLFxuICAgIH07XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuY29udGVudExheW91dC5pZCxcbiAgICAgIFtuYW1lc1t0aGlzLmZvY3VzZWRdXTogdGhpcy5lZGl0b3IuY2hhbmdlc1t0aGlzLmZvY3VzZWRdLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcuc2F2ZUNvbnRlbnRMYXlvdXQoe1xuICAgICAgaWQ6IHRoaXMuY29udGVudExheW91dC5pZCxcbiAgICAgIC4uLmRhdGEsXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYoIXRoaXMuZWRpdG9yLmhhc0NoYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wcm9tcHQuY29uZmlybSh7XG4gICAgICBkaWFsb2dDb25maWc6IHtcbiAgICAgICAgd2lkdGg6IG51bGwsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnLFxuICAgICAgdGVtcGxhdGU6ICdXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRvIHdpdGggeW91ciBjaGFuZ2VzPycsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ1JldmlldyBDaGFuZ2VzJyxcbiAgICAgICAgICB2YWx1ZTogJ3JldmlldycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0Rpc2NhcmQgQ2hhbmdlcycsXG4gICAgICAgICAgdmFsdWU6ICdkaXNjYXJkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+e1xuICAgICAgICBpZih2YWx1ZSA9PT0gJ2Rpc2NhcmQnKSB7XG4gICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihDb250ZW50TGF5b3V0Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnRMYXlvdXQ6IHRoaXMuY29udGVudExheW91dCxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRMYXlvdXQpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50TGF5b3V0ID0ge1xuICAgICAgICAgIC4uLnRoaXMuY29udGVudExheW91dCxcbiAgICAgICAgICAuLi5jb250ZW50TGF5b3V0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVzY2FwZSgpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jb2RlID09PSAnRXNjYXBlJyksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuRGlhbG9ncy5yZXZlcnNlKClbMF07XG4gICAgICAgIGlmKGRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2UgPT09IHRoaXMpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInNhdmVcIiBbZGlydHlTdWJtaXRCdXR0b25dPVwiZmFsc2VcIiBbY29uZmlybV09XCJmYWxzZVwiPlxuICA8ZnMtZGlhbG9nICpmc1NrZWxldG9uRm9ybT1cImNvbnRlbnRMYXlvdXRcIj5cbiAgICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgTGF5b3V0IEVkaXRvclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiPnt7Y29udGVudExheW91dC5uYW1lfX08L2Rpdj4gICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblNldHRpbmdzKClcIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uPlxuICAgICAgICAgIDxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgIDwvYT4gICBcbiAgICAgIDwvZGl2PlxuICAgIDwvaDE+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8YXBwLWVkaXRvclxuICAgICAgICBbY29udGVudENvbmZpZ109XCJjb25maWdcIlxuICAgICAgICBbc2hvd0h0bWxdPVwiZWRpdG9ycy5odG1sXCJcbiAgICAgICAgW3Nob3dTY3NzXT1cImVkaXRvcnMuc2Nzc1wiXG4gICAgICAgIFtzaG93R2xvYmFsU2Nzc109XCJlZGl0b3JzLmdsb2JhbFNjc3NcIlxuICAgICAgICBbaHRtbF09XCJjb250ZW50TGF5b3V0LmNvbnRlbnRcIlxuICAgICAgICBbc2Nzc109XCJjb250ZW50TGF5b3V0LnN0eWxlc1wiXG4gICAgICAgIChmb2N1c2VkKT1cImVkaXRvckZvY3VzZWQoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtZWRpdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPiAgXG4gICAgICAgIERvbmUgICAgICBcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZXNcIj5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIG11bHRpcGxlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImh0bWxcIiBbY2hlY2tlZF09XCJlZGl0b3JzLmh0bWxcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+SFRNTDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwic2Nzc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuc2Nzc1wiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5TQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJnbG9iYWxTY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkdsb2JhbCBTQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD4gICAgICBcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT4iXX0=