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