@firestitch/content 18.0.2 → 18.0.4
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.
- package/app/modules/content/components/content/content.component.d.ts +2 -7
- package/app/modules/content/components/content-renderer/content-renderer.component.d.ts +2 -5
- package/app/modules/content-layouts/components/content-layout/content-layout.component.d.ts +2 -6
- package/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.d.ts +2 -9
- package/app/modules/content-layouts/components/content-layouts/content-layouts.component.d.ts +1 -4
- package/app/modules/content-pages/components/content-page/content-page.component.d.ts +2 -6
- package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts +2 -9
- package/app/modules/content-pages/components/content-pages/content-pages.component.d.ts +1 -4
- package/app/modules/content-pages/fs-content-pages.module.d.ts +1 -23
- package/app/modules/content-style/components/content-style/content-style.component.d.ts +2 -5
- package/app/modules/editor/components/editor/editor.component.d.ts +2 -4
- package/app/modules/editor/components/editor-label/editor-label.component.d.ts +1 -1
- package/esm2022/app/enums/index.mjs +1 -1
- package/esm2022/app/interfaces/index.mjs +1 -1
- package/esm2022/app/modules/content/components/content/content.component.mjs +13 -28
- package/esm2022/app/modules/content/components/content-renderer/content-renderer.component.mjs +10 -20
- package/esm2022/app/modules/content-layouts/components/content-layout/content-layout.component.mjs +36 -33
- package/esm2022/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.mjs +43 -36
- package/esm2022/app/modules/content-layouts/components/content-layouts/content-layouts.component.mjs +17 -20
- package/esm2022/app/modules/content-pages/components/content-page/content-page.component.mjs +40 -36
- package/esm2022/app/modules/content-pages/components/content-page-editor/content-page-editor.component.mjs +46 -37
- package/esm2022/app/modules/content-pages/components/content-pages/content-pages.component.mjs +17 -20
- package/esm2022/app/modules/content-pages/components/index.mjs +1 -1
- package/esm2022/app/modules/content-pages/fs-content-pages.module.mjs +9 -95
- package/esm2022/app/modules/content-style/components/content-style/content-style.component.mjs +22 -23
- package/esm2022/app/modules/editor/components/editor/editor.component.mjs +28 -19
- package/esm2022/app/modules/editor/components/editor-label/editor-label.component.mjs +4 -4
- package/esm2022/public_api.mjs +1 -4
- package/fesm2022/firestitch-content.mjs +388 -686
- package/fesm2022/firestitch-content.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +0 -3
- package/app/modules/content/components/content/index.d.ts +0 -1
- package/app/modules/content/components/content-renderer/index.d.ts +0 -1
- package/app/modules/content/fs-content.module.d.ts +0 -10
- package/app/modules/content-layouts/components/content-layout-editor/index.d.ts +0 -1
- package/app/modules/content-layouts/components/content-layouts/index.d.ts +0 -1
- package/app/modules/content-layouts/components/index.d.ts +0 -3
- package/app/modules/content-layouts/fs-content-layouts.module.d.ts +0 -29
- package/app/modules/content-style/fs-content-style.module.d.ts +0 -14
- package/app/modules/editor/components/editor-label/index.d.ts +0 -1
- package/app/modules/editor/fs-content-editor.module.d.ts +0 -24
- package/app/modules/editor/index.d.ts +0 -1
- package/esm2022/app/modules/content/components/content/index.mjs +0 -2
- package/esm2022/app/modules/content/components/content-renderer/index.mjs +0 -2
- package/esm2022/app/modules/content/fs-content.module.mjs +0 -31
- package/esm2022/app/modules/content-layouts/components/content-layout-editor/index.mjs +0 -2
- package/esm2022/app/modules/content-layouts/components/content-layouts/index.mjs +0 -2
- package/esm2022/app/modules/content-layouts/components/index.mjs +0 -4
- package/esm2022/app/modules/content-layouts/fs-content-layouts.module.mjs +0 -106
- package/esm2022/app/modules/content-style/fs-content-style.module.mjs +0 -48
- package/esm2022/app/modules/editor/components/editor-label/index.mjs +0 -2
- package/esm2022/app/modules/editor/fs-content-editor.module.mjs +0 -87
- package/esm2022/app/modules/editor/index.mjs +0 -2
package/esm2022/app/modules/content-layouts/components/content-layout/content-layout.component.mjs
CHANGED
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
2
|
-
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, QueryList, ViewChildren, inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogActions } from '@angular/material/dialog';
|
|
3
3
|
import { FsMessage } from '@firestitch/message';
|
|
4
4
|
import { FsTextEditorComponent } from '@firestitch/text-editor';
|
|
5
5
|
import { Subject, of } from 'rxjs';
|
|
6
6
|
import { switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
7
7
|
import { FS_CONTENT_CONFIG } from '../../../../injectors';
|
|
8
|
+
import { FsSkeletonModule } from '@firestitch/skeleton';
|
|
9
|
+
import { FormsModule } from '@angular/forms';
|
|
10
|
+
import { FsFormModule } from '@firestitch/form';
|
|
11
|
+
import { FsDialogModule } from '@firestitch/dialog';
|
|
12
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
13
|
+
import { MatFormField, MatLabel } from '@angular/material/form-field';
|
|
14
|
+
import { MatInput } from '@angular/material/input';
|
|
8
15
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@
|
|
10
|
-
import * as i2 from "@
|
|
11
|
-
import * as i3 from "@
|
|
12
|
-
import * as i4 from "@angular/material/
|
|
13
|
-
import * as i5 from "@
|
|
14
|
-
import * as i6 from "@firestitch/form";
|
|
15
|
-
import * as i7 from "@firestitch/skeleton";
|
|
16
|
-
import * as i8 from "@firestitch/dialog";
|
|
16
|
+
import * as i1 from "@firestitch/skeleton";
|
|
17
|
+
import * as i2 from "@angular/forms";
|
|
18
|
+
import * as i3 from "@firestitch/form";
|
|
19
|
+
import * as i4 from "@angular/material/dialog";
|
|
20
|
+
import * as i5 from "@firestitch/dialog";
|
|
17
21
|
export class ContentLayoutComponent {
|
|
18
|
-
_config;
|
|
19
|
-
_data;
|
|
20
|
-
_dialogRef;
|
|
21
|
-
_message;
|
|
22
|
-
_cdRef;
|
|
22
|
+
_config = inject(FS_CONTENT_CONFIG);
|
|
23
|
+
_data = inject(MAT_DIALOG_DATA);
|
|
24
|
+
_dialogRef = inject(MatDialogRef);
|
|
25
|
+
_message = inject(FsMessage);
|
|
26
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
23
27
|
textEditors;
|
|
24
28
|
contentLayout = null;
|
|
25
29
|
editors = { content: true, styles: true };
|
|
26
30
|
_destroy$ = new Subject();
|
|
27
|
-
constructor(_config, _data, _dialogRef, _message, _cdRef) {
|
|
28
|
-
this._config = _config;
|
|
29
|
-
this._data = _data;
|
|
30
|
-
this._dialogRef = _dialogRef;
|
|
31
|
-
this._message = _message;
|
|
32
|
-
this._cdRef = _cdRef;
|
|
33
|
-
}
|
|
34
31
|
ngOnInit() {
|
|
35
32
|
this._fetchData();
|
|
36
33
|
}
|
|
@@ -55,20 +52,26 @@ export class ContentLayoutComponent {
|
|
|
55
52
|
this._cdRef.markForCheck();
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutComponent, deps: [
|
|
59
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", 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: [""], dependencies: [{ kind: "directive", type:
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutComponent, isStandalone: true, 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: [""], dependencies: [{ kind: "ngmodule", type: FsSkeletonModule }, { kind: "directive", type: i1.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.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"] }, { kind: "directive", type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { kind: "component", type: i3.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "ngmodule", type: FsDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
57
|
}
|
|
61
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutComponent, decorators: [{
|
|
62
59
|
type: Component,
|
|
63
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
61
|
+
FsSkeletonModule,
|
|
62
|
+
FormsModule,
|
|
63
|
+
FsFormModule,
|
|
64
|
+
FsDialogModule,
|
|
65
|
+
MatDialogTitle,
|
|
66
|
+
CdkScrollable,
|
|
67
|
+
MatDialogContent,
|
|
68
|
+
MatFormField,
|
|
69
|
+
MatLabel,
|
|
70
|
+
MatInput,
|
|
71
|
+
MatDialogActions,
|
|
72
|
+
], 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" }]
|
|
73
|
+
}], propDecorators: { textEditors: [{
|
|
71
74
|
type: ViewChildren,
|
|
72
75
|
args: [FsTextEditorComponent]
|
|
73
76
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2NvbnRlbnQtbGF5b3V0cy9jb21wb25lbnRzL2NvbnRlbnQtbGF5b3V0L2NvbnRlbnQtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC9jb250ZW50LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxSSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBc0JuRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLE9BQU8sR0FBRyxNQUFNLENBQWtCLGlCQUFpQixDQUFDLENBQUM7SUFDckQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUF1QyxZQUFZLENBQUMsQ0FBQztJQUN4RSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUlwQyxXQUFXLENBQW1DO0lBRTlDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFFekMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFakMsUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ3RELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQyxDQUFDO0lBRU0sVUFBVTtRQUNoQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7YUFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFFMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7dUdBaERVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHdHQVFuQixxQkFBcUIsZ0RDaERyQyxxekJBNkJBLHlEREZRLGdCQUFnQix3S0FDaEIsV0FBVyxvd0NBQ1gsWUFBWSw0eENBQ1osY0FBYyxxb0JBSWQsWUFBWSw0TEFDWixRQUFRLHNEQUNSLFFBQVE7OzJGQUlILHNCQUFzQjtrQkFuQmxDLFNBQVM7c0NBR1csdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixnQkFBZ0I7cUJBQ25COzhCQVdJLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnQGZpcmVzdGl0Y2gvdGV4dC1lZGl0b3InO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRlNfQ09OVEVOVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGc1NrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2tlbGV0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEZzRm9ybU1vZHVsZSxcbiAgICAgICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ1RpdGxlLFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBNYXREaWFsb2dDb250ZW50LFxuICAgICAgICBNYXRGb3JtRmllbGQsXG4gICAgICAgIE1hdExhYmVsLFxuICAgICAgICBNYXRJbnB1dCxcbiAgICAgICAgTWF0RGlhbG9nQWN0aW9ucyxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50TGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3Q8RnNDb250ZW50Q29uZmlnPihGU19DT05URU5UX0NPTkZJRyk7XG4gIHByaXZhdGUgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSBfZGlhbG9nUmVmID0gaW5qZWN0PE1hdERpYWxvZ1JlZjxDb250ZW50TGF5b3V0Q29tcG9uZW50Pj4oTWF0RGlhbG9nUmVmKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZSA9IGluamVjdChGc01lc3NhZ2UpO1xuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblxuICBAVmlld0NoaWxkcmVuKEZzVGV4dEVkaXRvckNvbXBvbmVudClcbiAgcHVibGljIHRleHRFZGl0b3JzOiBRdWVyeUxpc3Q8RnNUZXh0RWRpdG9yQ29tcG9uZW50PjtcblxuICBwdWJsaWMgY29udGVudExheW91dCA9IG51bGw7XG4gIHB1YmxpYyBlZGl0b3JzID0geyBjb250ZW50OiB0cnVlLCBzdHlsZXM6IHRydWUgfTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZldGNoRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuc2F2ZUNvbnRlbnRMYXlvdXQodGhpcy5jb250ZW50TGF5b3V0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoY29udGVudExheW91dCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShjb250ZW50TGF5b3V0KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgX2ZldGNoRGF0YSgpOiB2b2lkIHtcbiAgICBvZih0aGlzLl9kYXRhLmNvbnRlbnRMYXlvdXQpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChjb250ZW50TGF5b3V0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKGNvbnRlbnRMYXlvdXQpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRMYXlvdXQpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50TGF5b3V0ID0geyAuLi5jb250ZW50TGF5b3V0IH07XG5cbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8Zm9ybSBmc0Zvcm0gW3N1Ym1pdF09XCJzYXZlXCIgKmZzU2tlbGV0b25Gb3JtPVwiY29udGVudExheW91dFwiPlxuICA8ZnMtZGlhbG9nPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7Y29udGVudExheW91dC5pZCA/ICdMYXlvdXQnIDogJ0xheW91dCBQYWdlJ319PC9oMT5cbiAgICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1jb2x1bW5cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+TmFtZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGVudExheW91dC5uYW1lXCJcbiAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgIHJlcXVpcmVkPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD5UYWc8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRMYXlvdXQudGFnXCJcbiAgICAgICAgICAgIG5hbWU9XCJ0YWdcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8ZnMtZm9ybS1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDwvZnMtZm9ybS1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2Rpdj5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { MatButtonToggleGroup, MatButtonToggle } from '@angular/material/button-toggle';
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialog, MatDialogRef, MatDialogTitle, MatDialogContent } from '@angular/material/dialog';
|
|
3
4
|
import { FsMessage } from '@firestitch/message';
|
|
4
5
|
import { FsPrompt } from '@firestitch/prompt';
|
|
5
6
|
import { Subject, fromEvent, of, throwError } from 'rxjs';
|
|
@@ -7,26 +8,28 @@ import { filter, finalize, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
|
7
8
|
import { EditorType } from '../../../../enums';
|
|
8
9
|
import { EditorComponent } from '../../../editor/components/editor';
|
|
9
10
|
import { ContentLayoutComponent } from '../content-layout/content-layout.component';
|
|
11
|
+
import { FormsModule } from '@angular/forms';
|
|
12
|
+
import { FsFormModule } from '@firestitch/form';
|
|
13
|
+
import { FsSkeletonModule } from '@firestitch/skeleton';
|
|
14
|
+
import { FsDialogModule } from '@firestitch/dialog';
|
|
15
|
+
import { MatIconAnchor, MatButton } from '@angular/material/button';
|
|
16
|
+
import { MatIcon } from '@angular/material/icon';
|
|
17
|
+
import { MatTooltip } from '@angular/material/tooltip';
|
|
18
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
19
|
+
import { EditorComponent as EditorComponent_1 } from '../../../editor/components/editor/editor.component';
|
|
10
20
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/
|
|
12
|
-
import * as i2 from "@firestitch/
|
|
13
|
-
import * as i3 from "@firestitch/
|
|
14
|
-
import * as i4 from "@angular/
|
|
15
|
-
import * as i5 from "@
|
|
16
|
-
import * as i6 from "@angular/material/icon";
|
|
17
|
-
import * as i7 from "@angular/material/button-toggle";
|
|
18
|
-
import * as i8 from "@angular/material/tooltip";
|
|
19
|
-
import * as i9 from "@firestitch/form";
|
|
20
|
-
import * as i10 from "@firestitch/skeleton";
|
|
21
|
-
import * as i11 from "@firestitch/dialog";
|
|
22
|
-
import * as i12 from "../../../editor/components/editor/editor.component";
|
|
21
|
+
import * as i1 from "@angular/forms";
|
|
22
|
+
import * as i2 from "@firestitch/form";
|
|
23
|
+
import * as i3 from "@firestitch/skeleton";
|
|
24
|
+
import * as i4 from "@angular/material/dialog";
|
|
25
|
+
import * as i5 from "@firestitch/dialog";
|
|
23
26
|
export class ContentLayoutEditorComponent {
|
|
24
|
-
_data;
|
|
25
|
-
_dialogRef;
|
|
26
|
-
_message;
|
|
27
|
-
_dialog;
|
|
28
|
-
_cdRef;
|
|
29
|
-
_prompt;
|
|
27
|
+
_data = inject(MAT_DIALOG_DATA);
|
|
28
|
+
_dialogRef = inject(MatDialogRef);
|
|
29
|
+
_message = inject(FsMessage);
|
|
30
|
+
_dialog = inject(MatDialog);
|
|
31
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
32
|
+
_prompt = inject(FsPrompt);
|
|
30
33
|
editor;
|
|
31
34
|
contentLayout;
|
|
32
35
|
get isMac() {
|
|
@@ -43,14 +46,6 @@ export class ContentLayoutEditorComponent {
|
|
|
43
46
|
[EditorType.GlobalScss]: false,
|
|
44
47
|
};
|
|
45
48
|
_destroy$ = new Subject();
|
|
46
|
-
constructor(_data, _dialogRef, _message, _dialog, _cdRef, _prompt) {
|
|
47
|
-
this._data = _data;
|
|
48
|
-
this._dialogRef = _dialogRef;
|
|
49
|
-
this._message = _message;
|
|
50
|
-
this._dialog = _dialog;
|
|
51
|
-
this._cdRef = _cdRef;
|
|
52
|
-
this._prompt = _prompt;
|
|
53
|
-
}
|
|
54
49
|
ngOnInit() {
|
|
55
50
|
this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
|
|
56
51
|
this._dialogRef.disableClose = true;
|
|
@@ -169,17 +164,29 @@ export class ContentLayoutEditorComponent {
|
|
|
169
164
|
}
|
|
170
165
|
});
|
|
171
166
|
}
|
|
172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, deps: [
|
|
173
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</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\n <div class=\"actions\">\n <button\n #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <button \n mat-stroked-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\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}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type:
|
|
167
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</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\n <div class=\"actions\">\n <button\n #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <button \n mat-stroked-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\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}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.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"] }, { kind: "directive", type: i2.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "ngmodule", type: FsSkeletonModule }, { kind: "directive", type: i3.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "ngmodule", type: FsDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: EditorComponent_1, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
174
169
|
}
|
|
175
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, decorators: [{
|
|
176
171
|
type: Component,
|
|
177
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
172
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
173
|
+
FormsModule,
|
|
174
|
+
FsFormModule,
|
|
175
|
+
FsSkeletonModule,
|
|
176
|
+
FsDialogModule,
|
|
177
|
+
MatDialogTitle,
|
|
178
|
+
MatIconAnchor,
|
|
179
|
+
MatIcon,
|
|
180
|
+
MatButtonToggleGroup,
|
|
181
|
+
MatButtonToggle,
|
|
182
|
+
MatButton,
|
|
183
|
+
MatTooltip,
|
|
184
|
+
CdkScrollable,
|
|
185
|
+
MatDialogContent,
|
|
186
|
+
EditorComponent_1,
|
|
187
|
+
], template: "<form fsForm [submit]=\"submitted\" [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\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=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</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\n <div class=\"actions\">\n <button\n #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <button \n mat-stroked-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\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}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
|
|
188
|
+
}], propDecorators: { editor: [{
|
|
182
189
|
type: ViewChild,
|
|
183
190
|
args: [EditorComponent]
|
|
184
191
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXBGLE1BQU0s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LFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLEdBQUcsSUFBSSxDQUFDLGFBQWE7Z0JBQ3JCLEdBQUcsYUFBYTthQUNqQixDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXO1FBQ2pCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2FBQzNCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxFQUN6RCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLFNBQVMsRUFBRSxpQkFBaUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1R0E1TFUsNEJBQTRCLGtCQStCN0IsZUFBZTsyRkEvQmQsNEJBQTRCLDRGQUU1QixlQUFlLGdEQ2hDNUIsazRGQXlFTzs7MkZEM0NNLDRCQUE0QjtrQkFMeEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNOzswQkFpQzVDLE1BQU07MkJBQUMsZUFBZTsyS0E1QmxCLE1BQU07c0JBRFosU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFZGl0b3JUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3InO1xuaW1wb3J0IHsgQ29udGVudExheW91dENvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnQtbGF5b3V0L2NvbnRlbnQtbGF5b3V0LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWxheW91dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWxheW91dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRMYXlvdXRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChFZGl0b3JDb21wb25lbnQpXG4gIHB1YmxpYyBlZGl0b3I6IEVkaXRvckNvbXBvbmVudDtcblxuICBwdWJsaWMgY29udGVudExheW91dDoge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHN0eWxlcz86IHN0cmluZztcbiAgICBjb250ZW50Pzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbiAgcHVibGljIGdldCBpc01hYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZignTUFDJykgPj0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzQ29udGVudENvbmZpZztcbiAgcHVibGljIEVkaXRvclR5cGUgPSBFZGl0b3JUeXBlO1xuICBwdWJsaWMgZm9jdXNlZCA9IG51bGw7XG4gIHB1YmxpYyB0aXRsZTtcbiAgcHVibGljIGVkaXRvcnMgPSB7XG4gICAgW0VkaXRvclR5cGUuSHRtbF06IHRydWUsXG4gICAgW0VkaXRvclR5cGUuU2Nzc106IHRydWUsXG4gICAgW0VkaXRvclR5cGUuR2xvYmFsU2Nzc106IGZhbHNlLFxuICB9O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YToge1xuICAgICAgY29udGVudExheW91dDogYW55O1xuICAgICAgY29udGVudENvbmZpZzogRnNDb250ZW50Q29uZmlnO1xuICAgIH0sXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29udGVudExheW91dEVkaXRvckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dSZWYuYWRkUGFuZWxDbGFzcygnZnMtY29udGVudC1lZGl0b3Itb3ZlcmxheS1wYW5lJyk7XG4gICAgdGhpcy5fZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLl9kYXRhLmNvbnRlbnRDb25maWc7XG4gICAgdGhpcy5faW5pdENvbnRlbnRMYXlvdXQodGhpcy5fZGF0YS5jb250ZW50TGF5b3V0KTtcbiAgICB0aGlzLl9pbml0RXNjYXBlKCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdG9yVG9nZ2xlQ2hhbmdlKGV2ZW50OiBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdID0gIXRoaXMuZWRpdG9yc1tldmVudC52YWx1ZV07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIF9pbml0Q29udGVudExheW91dChjb250ZW50TGF5b3V0KSB7XG4gICAgdGhpcy5jb25maWcubG9hZENvbnRlbnRMYXlvdXQoY29udGVudExheW91dC5pZClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50TGF5b3V0ID0gZGF0YTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0b3JGb2N1c2VkKHR5cGUpIHtcbiAgICB0aGlzLmZvY3VzZWQgPSB0eXBlO1xuICB9XG5cbiAgcHVibGljIHNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJtaXR0ZWQoKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdHRlZCA9ICgpID0+IHtcbiAgICB0aGlzLnN1Ym1pdHRpbmcgPSB0cnVlO1xuXG4gICAgcmV0dXJuIG9mKG51bGwpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9jdXNlZCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIGNhc2UgRWRpdG9yVHlwZS5IdG1sOlxuICAgICAgICAgICAgY2FzZSBFZGl0b3JUeXBlLlNjc3M6XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnNhdmVDb250ZW50UGFnZSgpO1xuICAgICAgICAgICAgY2FzZSBFZGl0b3JUeXBlLkdsb2JhbFNjc3M6XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRvci5zYXZlR2xvYmFsU2NzcygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdJbnZhbGlkIGZvY3VzJyk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdG9yLmNsZWFyQ2hhbmdlKHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwdWJsaWMgc2F2ZUNvbnRlbnRQYWdlKCkge1xuICAgIGNvbnN0IG5hbWVzID0ge1xuICAgICAgW0VkaXRvclR5cGUuU2Nzc106ICdzdHlsZXMnLFxuICAgICAgW0VkaXRvclR5cGUuSHRtbF06ICdjb250ZW50JyxcbiAgICB9O1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmNvbnRlbnRMYXlvdXQuaWQsXG4gICAgICBbbmFtZXNbdGhpcy5mb2N1c2VkXV06IHRoaXMuZWRpdG9yLmNoYW5nZXNbdGhpcy5mb2N1c2VkXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnNhdmVDb250ZW50TGF5b3V0KHtcbiAgICAgIGlkOiB0aGlzLmNvbnRlbnRMYXlvdXQuaWQsXG4gICAgICAuLi5kYXRhLFxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1NhdmVkIENoYW5nZXMnKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lZGl0b3IuaGFzQ2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX3Byb21wdC5jb25maXJtKHtcbiAgICAgIGRpYWxvZ0NvbmZpZzoge1xuICAgICAgICB3aWR0aDogbnVsbCxcbiAgICAgIH0sXG4gICAgICB0aXRsZTogJ1lvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcycsXG4gICAgICB0ZW1wbGF0ZTogJ1doYXQgd291bGQgeW91IGxpa2UgdG8gZG8gd2l0aCB5b3VyIGNoYW5nZXM/JyxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnUmV2aWV3IENoYW5nZXMnLFxuICAgICAgICAgIHZhbHVlOiAncmV2aWV3JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnRGlzY2FyZCBDaGFuZ2VzJyxcbiAgICAgICAgICB2YWx1ZTogJ2Rpc2NhcmQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09ICdkaXNjYXJkJykge1xuICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQ29udGVudExheW91dENvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBjb250ZW50TGF5b3V0OiB0aGlzLmNvbnRlbnRMYXlvdXQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50TGF5b3V0KSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudExheW91dCA9IHtcbiAgICAgICAgICAuLi50aGlzLmNvbnRlbnRMYXlvdXQsXG4gICAgICAgICAgLi4uY29udGVudExheW91dCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFc2NhcGUoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MucmV2ZXJzZSgpWzBdO1xuICAgICAgICBpZiAoZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZSA9PT0gdGhpcykge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxufVxuIiwiPGZvcm0gZnNGb3JtIFtzdWJtaXRdPVwic3VibWl0dGVkXCIgW2RpcnR5U3VibWl0QnV0dG9uXT1cImZhbHNlXCIgW2NvbmZpcm1dPVwiZmFsc2VcIj5cbiAgPGZzLWRpYWxvZyAqZnNTa2VsZXRvbkZvcm09XCJjb250ZW50TGF5b3V0XCI+XG4gICAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgIExheW91dCBFZGl0b3JcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj57e2NvbnRlbnRMYXlvdXQubmFtZX19PC9kaXY+ICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZXR0aW5ncygpXCJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZXNcIj5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgbXVsdGlwbGU+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJodG1sXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5odG1sXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkhUTUw8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwic2Nzc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuc2Nzc1wiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5TQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwianNcIiBbY2hlY2tlZF09XCJlZGl0b3JzLmpzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkpTPC9tYXQtYnV0dG9uLXRvZ2dsZT4gLS0+XG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJnbG9iYWxTY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkdsb2JhbCBTQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPiAgICAgIFxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgI3N1Ym1pdFxuICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0b3I/Lmhhc0NoYW5nZXMgfHwgc3VibWl0dGluZ1wiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImlzTWFjID8gJ2NtZCtzJyA6ICdjdHJsK3MnXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIj4gIFxuICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPiAgXG4gICAgICAgICAgICBEb25lXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oMT5cbiAgICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxhcHAtZWRpdG9yXG4gICAgICAgIFtjb250ZW50Q29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgIFtzaG93SHRtbF09XCJlZGl0b3JzLmh0bWxcIlxuICAgICAgICBbc2hvd1Njc3NdPVwiZWRpdG9ycy5zY3NzXCJcbiAgICAgICAgW3Nob3dHbG9iYWxTY3NzXT1cImVkaXRvcnMuZ2xvYmFsU2Nzc1wiXG4gICAgICAgIFtodG1sXT1cImNvbnRlbnRMYXlvdXQuY29udGVudFwiXG4gICAgICAgIFtzY3NzXT1cImNvbnRlbnRMYXlvdXQuc3R5bGVzXCJcbiAgICAgICAgKGZvY3VzZWQpPVwiZWRpdG9yRm9jdXNlZCgkZXZlbnQpXCI+XG4gICAgICA8L2FwcC1lZGl0b3I+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIj4gIFxuICAgICAgICBEb25lICAgICAgXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVzXCI+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBtdWx0aXBsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJodG1sXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5odG1sXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkhUTUw8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNjc3NcIiBbY2hlY2tlZF09XCJlZGl0b3JzLnNjc3NcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+U0NTUzwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZ2xvYmFsU2Nzc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuZ2xvYmFsU2Nzc1wiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5HbG9iYWwgU0NTUzwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+ICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZnMtZGlhbG9nPlxuPC9mb3JtPiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dC1lZGl0b3IvY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUgsT0FBTyxFQUF5QixvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FB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QUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksU0FBUyxFQUFFLGlCQUFpQixLQUFLLElBQUksRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3VHQXZMVSw0QkFBNEI7MkZBQTVCLDRCQUE0QixnSEFTNUIsZUFBZSxnREN6RDVCLGs0RkF5RU8sd29CRHpDQyxXQUFXLHVkQUNYLFlBQVksMHdCQUNaLGdCQUFnQix3S0FDaEIsY0FBYyxzZkFFZCxhQUFhLHFHQUNiLE9BQU8sMklBQ1Asb0JBQW9CLGtUQUNwQixlQUFlLDZRQUNmLFNBQVMsaUxBQ1QsVUFBVSxpUkFHVixpQkFBaUI7OzJGQUdaLDRCQUE0QjtrQkF0QnhDLFNBQVM7c0NBR1csdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixpQkFBaUI7cUJBQ3BCOzhCQVlJLE1BQU07c0JBRFosU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UsIE1hdEJ1dHRvblRvZ2dsZUdyb3VwLCBNYXRCdXR0b25Ub2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVkaXRvclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGc0NvbnRlbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2VkaXRvcic7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29udGVudC1sYXlvdXQvY29udGVudC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBGc1NrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2tlbGV0b24nO1xuaW1wb3J0IHsgRnNEaWFsb2dNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbkFuY2hvciwgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCBhcyBFZGl0b3JDb21wb25lbnRfMSB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29udGVudC1sYXlvdXQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWxheW91dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEZzRm9ybU1vZHVsZSxcbiAgICAgICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ1RpdGxlLFxuICAgICAgICBNYXRJY29uQW5jaG9yLFxuICAgICAgICBNYXRJY29uLFxuICAgICAgICBNYXRCdXR0b25Ub2dnbGVHcm91cCxcbiAgICAgICAgTWF0QnV0dG9uVG9nZ2xlLFxuICAgICAgICBNYXRCdXR0b24sXG4gICAgICAgIE1hdFRvb2x0aXAsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgICAgIEVkaXRvckNvbXBvbmVudF8xLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRMYXlvdXRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSBfZGlhbG9nUmVmID0gaW5qZWN0PE1hdERpYWxvZ1JlZjxDb250ZW50TGF5b3V0RWRpdG9yQ29tcG9uZW50Pj4oTWF0RGlhbG9nUmVmKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZSA9IGluamVjdChGc01lc3NhZ2UpO1xuICBwcml2YXRlIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIF9wcm9tcHQgPSBpbmplY3QoRnNQcm9tcHQpO1xuXG5cbiAgQFZpZXdDaGlsZChFZGl0b3JDb21wb25lbnQpXG4gIHB1YmxpYyBlZGl0b3I6IEVkaXRvckNvbXBvbmVudDtcblxuICBwdWJsaWMgY29udGVudExheW91dDoge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHN0eWxlcz86IHN0cmluZztcbiAgICBjb250ZW50Pzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbiAgcHVibGljIGdldCBpc01hYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZignTUFDJykgPj0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzQ29udGVudENvbmZpZztcbiAgcHVibGljIEVkaXRvclR5cGUgPSBFZGl0b3JUeXBlO1xuICBwdWJsaWMgZm9jdXNlZCA9IG51bGw7XG4gIHB1YmxpYyB0aXRsZTtcbiAgcHVibGljIGVkaXRvcnMgPSB7XG4gICAgW0VkaXRvclR5cGUuSHRtbF06IHRydWUsXG4gICAgW0VkaXRvclR5cGUuU2Nzc106IHRydWUsXG4gICAgW0VkaXRvclR5cGUuR2xvYmFsU2Nzc106IGZhbHNlLFxuICB9O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nUmVmLmFkZFBhbmVsQ2xhc3MoJ2ZzLWNvbnRlbnQtZWRpdG9yLW92ZXJsYXktcGFuZScpO1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5fZGF0YS5jb250ZW50Q29uZmlnO1xuICAgIHRoaXMuX2luaXRDb250ZW50TGF5b3V0KHRoaXMuX2RhdGEuY29udGVudExheW91dCk7XG4gICAgdGhpcy5faW5pdEVzY2FwZSgpO1xuICB9XG5cbiAgcHVibGljIGVkaXRvclRvZ2dsZUNoYW5nZShldmVudDogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JzW2V2ZW50LnZhbHVlXSA9ICF0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBfaW5pdENvbnRlbnRMYXlvdXQoY29udGVudExheW91dCkge1xuICAgIHRoaXMuY29uZmlnLmxvYWRDb250ZW50TGF5b3V0KGNvbnRlbnRMYXlvdXQuaWQpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudExheW91dCA9IGRhdGE7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdG9yRm9jdXNlZCh0eXBlKSB7XG4gICAgdGhpcy5mb2N1c2VkID0gdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkKClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXR0ZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5zdWJtaXR0aW5nID0gdHJ1ZTtcblxuICAgIHJldHVybiBvZihudWxsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmZvY3VzZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICBjYXNlIEVkaXRvclR5cGUuSHRtbDpcbiAgICAgICAgICAgIGNhc2UgRWRpdG9yVHlwZS5TY3NzOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQ29udGVudFBhZ2UoKTtcbiAgICAgICAgICAgIGNhc2UgRWRpdG9yVHlwZS5HbG9iYWxTY3NzOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lZGl0b3Iuc2F2ZUdsb2JhbFNjc3MoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignSW52YWxpZCBmb2N1cycpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVkaXRvci5jbGVhckNoYW5nZSh0aGlzLmZvY3VzZWQpO1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH07XG5cbiAgcHVibGljIHNhdmVDb250ZW50UGFnZSgpIHtcbiAgICBjb25zdCBuYW1lcyA9IHtcbiAgICAgIFtFZGl0b3JUeXBlLlNjc3NdOiAnc3R5bGVzJyxcbiAgICAgIFtFZGl0b3JUeXBlLkh0bWxdOiAnY29udGVudCcsXG4gICAgfTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBpZDogdGhpcy5jb250ZW50TGF5b3V0LmlkLFxuICAgICAgW25hbWVzW3RoaXMuZm9jdXNlZF1dOiB0aGlzLmVkaXRvci5jaGFuZ2VzW3RoaXMuZm9jdXNlZF0sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zYXZlQ29udGVudExheW91dCh7XG4gICAgICBpZDogdGhpcy5jb250ZW50TGF5b3V0LmlkLFxuICAgICAgLi4uZGF0YSxcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWRpdG9yLmhhc0NoYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wcm9tcHQuY29uZmlybSh7XG4gICAgICBkaWFsb2dDb25maWc6IHtcbiAgICAgICAgd2lkdGg6IG51bGwsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnLFxuICAgICAgdGVtcGxhdGU6ICdXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRvIHdpdGggeW91ciBjaGFuZ2VzPycsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ1JldmlldyBDaGFuZ2VzJyxcbiAgICAgICAgICB2YWx1ZTogJ3JldmlldycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0Rpc2NhcmQgQ2hhbmdlcycsXG4gICAgICAgICAgdmFsdWU6ICdkaXNjYXJkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnZGlzY2FyZCcpIHtcbiAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlblNldHRpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKENvbnRlbnRMYXlvdXRDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29udGVudExheW91dDogdGhpcy5jb250ZW50TGF5b3V0LFxuICAgICAgfSxcbiAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY29udGVudExheW91dCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRlbnRMYXlvdXQgPSB7XG4gICAgICAgICAgLi4udGhpcy5jb250ZW50TGF5b3V0LFxuICAgICAgICAgIC4uLmNvbnRlbnRMYXlvdXQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0RXNjYXBlKCk6IHZvaWQge1xuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2dzLnJldmVyc2UoKVswXTtcbiAgICAgICAgaWYgKGRpYWxvZ1JlZj8uY29tcG9uZW50SW5zdGFuY2UgPT09IHRoaXMpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInN1Ym1pdHRlZFwiIFtkaXJ0eVN1Ym1pdEJ1dHRvbl09XCJmYWxzZVwiIFtjb25maXJtXT1cImZhbHNlXCI+XG4gIDxmcy1kaWFsb2cgKmZzU2tlbGV0b25Gb3JtPVwiY29udGVudExheW91dFwiPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICBMYXlvdXQgRWRpdG9yXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+e3tjb250ZW50TGF5b3V0Lm5hbWV9fTwvZGl2PiAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVzXCI+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiaHRtbFwiIFtjaGVja2VkXT1cImVkaXRvcnMuaHRtbFwiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5IVE1MPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNjc3NcIiBbY2hlY2tlZF09XCJlZGl0b3JzLnNjc3NcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+U0NTUzwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICA8IS0tIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImpzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5qc1wiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5KUzwvbWF0LWJ1dHRvbi10b2dnbGU+IC0tPlxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZ2xvYmFsU2Nzc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuZ2xvYmFsU2Nzc1wiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5HbG9iYWwgU0NTUzwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD4gICAgICBcbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICNzdWJtaXRcbiAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdG9yPy5oYXNDaGFuZ2VzIHx8IHN1Ym1pdHRpbmdcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJpc01hYyA/ICdjbWQrcycgOiAnY3RybCtzJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZSgpXCI+ICBcbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj4gIFxuICAgICAgICAgICAgRG9uZVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaDE+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8YXBwLWVkaXRvclxuICAgICAgICBbY29udGVudENvbmZpZ109XCJjb25maWdcIlxuICAgICAgICBbc2hvd0h0bWxdPVwiZWRpdG9ycy5odG1sXCJcbiAgICAgICAgW3Nob3dTY3NzXT1cImVkaXRvcnMuc2Nzc1wiXG4gICAgICAgIFtzaG93R2xvYmFsU2Nzc109XCJlZGl0b3JzLmdsb2JhbFNjc3NcIlxuICAgICAgICBbaHRtbF09XCJjb250ZW50TGF5b3V0LmNvbnRlbnRcIlxuICAgICAgICBbc2Nzc109XCJjb250ZW50TGF5b3V0LnN0eWxlc1wiXG4gICAgICAgIChmb2N1c2VkKT1cImVkaXRvckZvY3VzZWQoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtZWRpdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxidXR0b24gXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+ICBcbiAgICAgICAgRG9uZSAgICAgIFxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlc1wiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgbXVsdGlwbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiaHRtbFwiIFtjaGVja2VkXT1cImVkaXRvcnMuaHRtbFwiIChjaGFuZ2UpPVwiZWRpdG9yVG9nZ2xlQ2hhbmdlKCRldmVudClcIj5IVE1MPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJzY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5zY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPlNDU1M8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImdsb2JhbFNjc3NcIiBbY2hlY2tlZF09XCJlZGl0b3JzLmdsb2JhbFNjc3NcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+R2xvYmFsIFNDU1M8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPiAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT4iXX0=
|
package/esm2022/app/modules/content-layouts/components/content-layouts/content-layouts.component.mjs
CHANGED
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
3
|
import { ItemType } from '@firestitch/filter';
|
|
4
|
-
import { FsListComponent } from '@firestitch/list';
|
|
4
|
+
import { FsListComponent, FsListModule } from '@firestitch/list';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
import { filter, map, takeUntil } from 'rxjs/operators';
|
|
7
7
|
import { FS_CONTENT_CONFIG } from '../../../../injectors';
|
|
8
8
|
import { ContentLayoutComponent } from '../../components/content-layout';
|
|
9
9
|
import { ContentLayoutEditorComponent } from '../content-layout-editor/content-layout-editor.component';
|
|
10
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
11
|
+
import { FsDateModule } from '@firestitch/date';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@
|
|
12
|
-
import * as i2 from "@
|
|
13
|
-
import * as i3 from "@firestitch/list";
|
|
14
|
-
import * as i4 from "@firestitch/date";
|
|
13
|
+
import * as i1 from "@firestitch/list";
|
|
14
|
+
import * as i2 from "@firestitch/date";
|
|
15
15
|
export class FsContentLayoutsComponent {
|
|
16
|
-
_config;
|
|
17
|
-
_dialog;
|
|
16
|
+
_config = inject(FS_CONTENT_CONFIG);
|
|
17
|
+
_dialog = inject(MatDialog);
|
|
18
18
|
listComponent;
|
|
19
19
|
listConfig;
|
|
20
20
|
_destroy$ = new Subject();
|
|
21
|
-
constructor(_config, _dialog) {
|
|
22
|
-
this._config = _config;
|
|
23
|
-
this._dialog = _dialog;
|
|
24
|
-
}
|
|
25
21
|
ngOnInit() {
|
|
26
22
|
this._initListConfig();
|
|
27
23
|
}
|
|
@@ -104,17 +100,18 @@ export class FsContentLayoutsComponent {
|
|
|
104
100
|
},
|
|
105
101
|
};
|
|
106
102
|
}
|
|
107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsContentLayoutsComponent, deps: [
|
|
108
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsContentLayoutsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsContentLayoutsComponent, isStandalone: true, selector: "fs-content-layouts", viewQueries: [{ propertyName: "listComponent", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i2.FsDatePipe, name: "fsDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
109
105
|
}
|
|
110
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsContentLayoutsComponent, decorators: [{
|
|
111
107
|
type: Component,
|
|
112
|
-
args: [{ selector: 'fs-content-layouts', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
108
|
+
args: [{ selector: 'fs-content-layouts', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
109
|
+
FsListModule,
|
|
110
|
+
NgTemplateOutlet,
|
|
111
|
+
FsDateModule,
|
|
112
|
+
], template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n @if (row.state !== 'deleted') {\n <a (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n } @else {\n {{row.name}}\n }\n\n <ng-template #name>{{row.name}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n" }]
|
|
113
|
+
}], propDecorators: { listComponent: [{
|
|
117
114
|
type: ViewChild,
|
|
118
115
|
args: [FsListComponent]
|
|
119
116
|
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dHMvY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dHMvY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBRWpFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7OztBQVN4RyxNQUFNLE9BQU8seUJBQXlCO0lBVUM7SUFDM0I7SUFSSCxhQUFhLENBQWtCO0lBRS9CLFVBQVUsQ0FBZTtJQUV4QixTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV4QyxZQUNxQyxPQUF3QixFQUNuRCxP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QzNCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDekUsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7dUdBMUdVLHlCQUF5QixrQkFVMUIsaUJBQWlCOzJGQVZoQix5QkFBeUIseUdBRXpCLGVBQWUsZ0RDL0I1Qiwyb0JBZ0JBOzsyRkRhYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07OzBCQVk1QyxNQUFNOzJCQUFDLGlCQUFpQjtpRUFQcEIsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRlNfQ09OVEVOVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb250ZW50LWxheW91dCc7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGVudC1sYXlvdXQtZWRpdG9yL2NvbnRlbnQtbGF5b3V0LWVkaXRvci5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWNvbnRlbnQtbGF5b3V0cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWxheW91dHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWxheW91dHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudExheW91dHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpXG4gIHB1YmxpYyBsaXN0Q29tcG9uZW50OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgcHVibGljIGxpc3RDb25maWc6IEZzTGlzdENvbmZpZztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19DT05URU5UX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBGc0NvbnRlbnRDb25maWcsXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdExpc3RDb25maWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRWRpdG9yKGNvbnRlbnRMYXlvdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKENvbnRlbnRMYXlvdXRFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnMTAwdncnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgZGF0YToge1xuICAgICAgICBjb250ZW50TGF5b3V0LFxuICAgICAgICBjb250ZW50Q29uZmlnOiB0aGlzLl9jb25maWcsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkxheW91dChjb250ZW50TGF5b3V0OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2cub3BlbihDb250ZW50TGF5b3V0Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnRMYXlvdXQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoX2NvbnRlbnRMYXlvdXQpID0+ICEhX2NvbnRlbnRMYXlvdXQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TGlzdENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdDcmVhdGUnLFxuICAgICAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5MYXlvdXQoe30pXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByb3dBY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuZGVsZXRlQ29udGVudExheW91dChkYXRhKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbW92ZToge1xuICAgICAgICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgICAgICAgIHRlbXBsYXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZSB0aGlzIHJlY29yZD8nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgICBsYWJlbDogJ0RlbGV0ZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRDb250ZW50TGF5b3V0cyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiByZXNwb25zZS5jb250ZW50TGF5b3V0cywgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHJlc3RvcmU6IHtcbiAgICAgICAgcXVlcnk6IHsgc3RhdGU6ICdkZWxldGVkJyB9LFxuICAgICAgICBmaWx0ZXJMYWJlbDogJ1Nob3cgRGVsZXRlZCcsXG4gICAgICAgIG1lbnVMYWJlbDogJ1Jlc3RvcmUnLFxuICAgICAgICByZWxvYWQ6IHRydWUsXG4gICAgICAgIGNsaWNrOiAocm93KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5zYXZlQ29udGVudExheW91dCh7IGlkOiByb3cuaWQsIHN0YXRlOiAnYWN0aXZlJyB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG59XG5cbiIsIjxmcy1saXN0IFtjb25maWddPVwibGlzdENvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4gbmFtZT1cIm5hbWVcIiB0aXRsZT1cIk5hbWVcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKm5nSWY9XCJyb3cuc3RhdGUgIT09ICdkZWxldGVkJzsgZWxzZSBuYW1lXCIgKGNsaWNrKT1cIm9wZW5FZGl0b3Iocm93KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5hbWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYT5cblxuICAgICAgPG5nLXRlbXBsYXRlICNuYW1lPnt7cm93Lm5hbWV9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIG5hbWU9XCJtb2RpZnlfZGF0ZVwiIHRpdGxlPVwiTW9kaWZpZWRcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cubW9kaWZ5RGF0ZSB8IGZzRGF0ZTogJ2RhdGUtdGltZS15ZWFybGVzcyd9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dHMvY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9jb250ZW50LWxheW91dHMvY29tcG9uZW50cy9jb250ZW50LWxheW91dHMvY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWVoRCxNQUFNLE9BQU8seUJBQXlCO0lBQzVCLE9B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Q0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzNCLFdBQVcsRUFBRSxjQUFjO2dCQUMzQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO3VHQXhHVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qiw2SEFLekIsZUFBZSxnRENuQzVCLDJyQkFvQkEseURES1EsWUFBWSwwZkFDWixnQkFBZ0IsbUpBQ2hCLFlBQVk7OzJGQUdQLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2Y7OEJBUUksYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnLCBGc0xpc3RNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRlNfQ09OVEVOVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb250ZW50LWxheW91dCc7XG5pbXBvcnQgeyBDb250ZW50TGF5b3V0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29udGVudC1sYXlvdXQtZWRpdG9yL2NvbnRlbnQtbGF5b3V0LWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZzLWNvbnRlbnQtbGF5b3V0cycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbGF5b3V0cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1sYXlvdXRzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZzTGlzdE1vZHVsZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgRnNEYXRlTW9kdWxlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudExheW91dHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NvbmZpZyA9IGluamVjdDxGc0NvbnRlbnRDb25maWc+KEZTX0NPTlRFTlRfQ09ORklHKTtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudClcbiAgcHVibGljIGxpc3RDb21wb25lbnQ6IEZzTGlzdENvbXBvbmVudDtcblxuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdExpc3RDb25maWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRWRpdG9yKGNvbnRlbnRMYXlvdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKENvbnRlbnRMYXlvdXRFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnMTAwdncnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgZGF0YToge1xuICAgICAgICBjb250ZW50TGF5b3V0LFxuICAgICAgICBjb250ZW50Q29uZmlnOiB0aGlzLl9jb25maWcsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50LnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkxheW91dChjb250ZW50TGF5b3V0OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9kaWFsb2cub3BlbihDb250ZW50TGF5b3V0Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbnRlbnRMYXlvdXQsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoX2NvbnRlbnRMYXlvdXQpID0+ICEhX2NvbnRlbnRMYXlvdXQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TGlzdENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdDcmVhdGUnLFxuICAgICAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wZW5MYXlvdXQoe30pXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByb3dBY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuZGVsZXRlQ29udGVudExheW91dChkYXRhKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbW92ZToge1xuICAgICAgICAgICAgdGl0bGU6ICdDb25maXJtJyxcbiAgICAgICAgICAgIHRlbXBsYXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZSB0aGlzIHJlY29yZD8nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgICBsYWJlbDogJ0RlbGV0ZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRDb250ZW50TGF5b3V0cyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geyBkYXRhOiByZXNwb25zZS5jb250ZW50TGF5b3V0cywgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHJlc3RvcmU6IHtcbiAgICAgICAgcXVlcnk6IHsgc3RhdGU6ICdkZWxldGVkJyB9LFxuICAgICAgICBmaWx0ZXJMYWJlbDogJ1Nob3cgRGVsZXRlZCcsXG4gICAgICAgIG1lbnVMYWJlbDogJ1Jlc3RvcmUnLFxuICAgICAgICByZWxvYWQ6IHRydWUsXG4gICAgICAgIGNsaWNrOiAocm93KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5zYXZlQ29udGVudExheW91dCh7IGlkOiByb3cuaWQsIHN0YXRlOiAnYWN0aXZlJyB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG59XG5cbiIsIjxmcy1saXN0IFtjb25maWddPVwibGlzdENvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4gbmFtZT1cIm5hbWVcIiB0aXRsZT1cIk5hbWVcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgQGlmIChyb3cuc3RhdGUgIT09ICdkZWxldGVkJykge1xuICAgICAgICA8YSAoY2xpY2spPVwib3BlbkVkaXRvcihyb3cpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuYW1lXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7e3Jvdy5uYW1lfX1cbiAgICAgIH1cblxuICAgICAgPG5nLXRlbXBsYXRlICNuYW1lPnt7cm93Lm5hbWV9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIG5hbWU9XCJtb2RpZnlfZGF0ZVwiIHRpdGxlPVwiTW9kaWZpZWRcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cubW9kaWZ5RGF0ZSB8IGZzRGF0ZTogJ2RhdGUtdGltZS15ZWFybGVzcyd9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+XG4iXX0=
|