@firestitch/content 12.2.8 → 12.2.9
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 +51 -51
- 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 +31 -31
- 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 +47 -47
- package/app/modules/editor/components/editor/index.d.ts +1 -1
- package/app/modules/editor/fs-content-editor.module.d.ts +23 -23
- package/app/modules/editor/index.d.ts +1 -1
- package/bundles/firestitch-content.umd.js +1330 -1330
- package/bundles/firestitch-content.umd.js.map +1 -1
- package/esm2015/app/consts/index.js +1 -1
- package/esm2015/app/consts/page-types.const.js +7 -7
- package/esm2015/app/enums/editor-type.js +7 -7
- package/esm2015/app/enums/index.js +3 -3
- package/esm2015/app/enums/page-type.enum.js +7 -7
- package/esm2015/app/injectors/content-config.injector.js +2 -2
- package/esm2015/app/injectors/index.js +1 -1
- package/esm2015/app/interfaces/content-config.js +1 -1
- package/esm2015/app/interfaces/content-layout.js +1 -1
- package/esm2015/app/interfaces/content-page.js +1 -1
- package/esm2015/app/interfaces/content-style.js +1 -1
- package/esm2015/app/interfaces/index.js +5 -5
- package/esm2015/app/modules/content/components/content/content.component.js +84 -84
- package/esm2015/app/modules/content/components/content/index.js +1 -1
- package/esm2015/app/modules/content/components/content-renderer/content-renderer.component.js +76 -76
- package/esm2015/app/modules/content/components/content-renderer/index.js +1 -1
- package/esm2015/app/modules/content/fs-content.module.js +32 -32
- package/esm2015/app/modules/content-layouts/components/content-layout/content-layout.component.js +72 -72
- package/esm2015/app/modules/content-layouts/components/content-layout/index.js +1 -1
- package/esm2015/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.js +159 -159
- package/esm2015/app/modules/content-layouts/components/content-layout-editor/index.js +1 -1
- package/esm2015/app/modules/content-layouts/components/content-layouts/content-layouts.component.js +120 -120
- package/esm2015/app/modules/content-layouts/components/content-layouts/index.js +1 -1
- package/esm2015/app/modules/content-layouts/components/index.js +4 -4
- package/esm2015/app/modules/content-layouts/fs-content-layouts.module.js +103 -103
- package/esm2015/app/modules/content-pages/components/content-page/content-page.component.js +83 -83
- package/esm2015/app/modules/content-pages/components/content-page/index.js +1 -1
- package/esm2015/app/modules/content-pages/components/content-page-editor/content-page-editor.component.js +162 -162
- package/esm2015/app/modules/content-pages/components/content-page-editor/index.js +1 -1
- package/esm2015/app/modules/content-pages/components/content-pages/content-pages.component.js +129 -129
- package/esm2015/app/modules/content-pages/components/content-pages/index.js +1 -1
- package/esm2015/app/modules/content-pages/components/index.js +4 -4
- package/esm2015/app/modules/content-pages/fs-content-pages.module.js +112 -112
- package/esm2015/app/modules/content-style/components/content-style/content-style.component.js +70 -70
- package/esm2015/app/modules/content-style/components/content-style/index.js +1 -1
- package/esm2015/app/modules/content-style/fs-content-style.module.js +49 -49
- package/esm2015/app/modules/editor/components/editor/editor.component.js +144 -144
- package/esm2015/app/modules/editor/components/editor/index.js +1 -1
- package/esm2015/app/modules/editor/fs-content-editor.module.js +85 -85
- package/esm2015/app/modules/editor/index.js +1 -1
- package/esm2015/firestitch-content.js +4 -4
- package/esm2015/public_api.js +10 -10
- package/fesm2015/firestitch-content.js +1241 -1241
- package/fesm2015/firestitch-content.js.map +1 -1
- package/firestitch-content.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +10 -10
@@ -1,163 +1,163 @@
|
|
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 { ContentPageComponent } from '../content-page/content-page.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 ContentPageEditorComponent {
|
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.focused = null;
|
31
|
-
this.resizing = false;
|
32
|
-
this.editors = {
|
33
|
-
[EditorType.Html]: true,
|
34
|
-
[EditorType.Scss]: true,
|
35
|
-
[EditorType.Js]: false,
|
36
|
-
[EditorType.GlobalScss]: false,
|
37
|
-
};
|
38
|
-
this._destroy$ = new Subject();
|
39
|
-
this.save = () => {
|
40
|
-
return of(null)
|
41
|
-
.pipe(filter(() => this.focused), switchMap(() => {
|
42
|
-
switch (this.focused) {
|
43
|
-
case EditorType.Js:
|
44
|
-
case EditorType.Html:
|
45
|
-
case EditorType.Scss:
|
46
|
-
return this.saveContentPage();
|
47
|
-
case EditorType.GlobalScss:
|
48
|
-
return this.editor.saveGlobalScss();
|
49
|
-
}
|
50
|
-
return throwError('Invalid focus');
|
51
|
-
}), tap(() => {
|
52
|
-
this.editor.clearChange(this.focused);
|
53
|
-
this._cdRef.markForCheck();
|
54
|
-
}));
|
55
|
-
};
|
56
|
-
}
|
57
|
-
ngOnInit() {
|
58
|
-
this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
|
59
|
-
this._dialogRef.disableClose = true;
|
60
|
-
this.config = this._data.contentConfig;
|
61
|
-
this._initContentPage(this._data.contentPage);
|
62
|
-
this._initEscape();
|
63
|
-
}
|
64
|
-
editorToggleChange(event) {
|
65
|
-
this.editors[event.value] = !this.editors[event.value];
|
66
|
-
}
|
67
|
-
ngOnDestroy() {
|
68
|
-
this._destroy$.next();
|
69
|
-
this._destroy$.complete();
|
70
|
-
}
|
71
|
-
_initContentPage(contentPage) {
|
72
|
-
this.config.loadContentPage(contentPage.id)
|
73
|
-
.subscribe((data) => {
|
74
|
-
this.contentPage = data;
|
75
|
-
this._cdRef.markForCheck();
|
76
|
-
});
|
77
|
-
}
|
78
|
-
editorFocused(type) {
|
79
|
-
this.focused = type;
|
80
|
-
}
|
81
|
-
saveContentPage() {
|
82
|
-
const names = {
|
83
|
-
[EditorType.Js]: 'js',
|
84
|
-
[EditorType.Scss]: 'styles',
|
85
|
-
[EditorType.Html]: 'content',
|
86
|
-
};
|
87
|
-
const data = {
|
88
|
-
id: this.contentPage.id,
|
89
|
-
[names[this.focused]]: this.editor.changes[this.focused],
|
90
|
-
};
|
91
|
-
return this.config.saveContentPage(Object.assign({ id: this.contentPage.id }, data))
|
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(ContentPageComponent, {
|
126
|
-
data: {
|
127
|
-
contentPage: this.contentPage,
|
128
|
-
},
|
129
|
-
})
|
130
|
-
.afterClosed()
|
131
|
-
.pipe(takeUntil(this._destroy$))
|
132
|
-
.subscribe((contentPage) => {
|
133
|
-
this.contentPage = Object.assign(Object.assign({}, this.contentPage), contentPage);
|
134
|
-
this._cdRef.markForCheck();
|
135
|
-
});
|
136
|
-
}
|
137
|
-
_initEscape() {
|
138
|
-
fromEvent(document, 'keydown')
|
139
|
-
.pipe(filter((event) => event.code === 'Escape'), takeUntil(this._destroy$)).subscribe(() => {
|
140
|
-
const dialogRef = this._dialog.openDialogs.reverse()[0];
|
141
|
-
if ((dialogRef === null || dialogRef === void 0 ? void 0 : dialogRef.componentInstance) === this) {
|
142
|
-
this.close();
|
143
|
-
}
|
144
|
-
});
|
145
|
-
}
|
146
|
-
}
|
147
|
-
ContentPageEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentPageEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
|
148
|
-
ContentPageEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageEditorComponent, 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=\"contentPage\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage.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 [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\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 \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 </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}.mat-dialog-actions fs-form-dialog-actions{width:auto}.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", "mobileActionPlacement", "mobileWidth", "mode"] }, { 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-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], 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 });
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentPageEditorComponent, decorators: [{
|
150
|
-
type: Component,
|
151
|
-
args: [{
|
152
|
-
templateUrl: './content-page-editor.component.html',
|
153
|
-
styleUrls: ['./content-page-editor.component.scss'],
|
154
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
155
|
-
}]
|
156
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
157
|
-
type: Inject,
|
158
|
-
args: [MAT_DIALOG_DATA]
|
159
|
-
}] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: i1.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i3.FsPrompt }]; }, propDecorators: { editor: [{
|
160
|
-
type: ViewChild,
|
161
|
-
args: [EditorComponent]
|
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 { ContentPageComponent } from '../content-page/content-page.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 ContentPageEditorComponent {
|
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.focused = null;
|
31
|
+
this.resizing = false;
|
32
|
+
this.editors = {
|
33
|
+
[EditorType.Html]: true,
|
34
|
+
[EditorType.Scss]: true,
|
35
|
+
[EditorType.Js]: false,
|
36
|
+
[EditorType.GlobalScss]: false,
|
37
|
+
};
|
38
|
+
this._destroy$ = new Subject();
|
39
|
+
this.save = () => {
|
40
|
+
return of(null)
|
41
|
+
.pipe(filter(() => this.focused), switchMap(() => {
|
42
|
+
switch (this.focused) {
|
43
|
+
case EditorType.Js:
|
44
|
+
case EditorType.Html:
|
45
|
+
case EditorType.Scss:
|
46
|
+
return this.saveContentPage();
|
47
|
+
case EditorType.GlobalScss:
|
48
|
+
return this.editor.saveGlobalScss();
|
49
|
+
}
|
50
|
+
return throwError('Invalid focus');
|
51
|
+
}), tap(() => {
|
52
|
+
this.editor.clearChange(this.focused);
|
53
|
+
this._cdRef.markForCheck();
|
54
|
+
}));
|
55
|
+
};
|
56
|
+
}
|
57
|
+
ngOnInit() {
|
58
|
+
this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
|
59
|
+
this._dialogRef.disableClose = true;
|
60
|
+
this.config = this._data.contentConfig;
|
61
|
+
this._initContentPage(this._data.contentPage);
|
62
|
+
this._initEscape();
|
63
|
+
}
|
64
|
+
editorToggleChange(event) {
|
65
|
+
this.editors[event.value] = !this.editors[event.value];
|
66
|
+
}
|
67
|
+
ngOnDestroy() {
|
68
|
+
this._destroy$.next();
|
69
|
+
this._destroy$.complete();
|
70
|
+
}
|
71
|
+
_initContentPage(contentPage) {
|
72
|
+
this.config.loadContentPage(contentPage.id)
|
73
|
+
.subscribe((data) => {
|
74
|
+
this.contentPage = data;
|
75
|
+
this._cdRef.markForCheck();
|
76
|
+
});
|
77
|
+
}
|
78
|
+
editorFocused(type) {
|
79
|
+
this.focused = type;
|
80
|
+
}
|
81
|
+
saveContentPage() {
|
82
|
+
const names = {
|
83
|
+
[EditorType.Js]: 'js',
|
84
|
+
[EditorType.Scss]: 'styles',
|
85
|
+
[EditorType.Html]: 'content',
|
86
|
+
};
|
87
|
+
const data = {
|
88
|
+
id: this.contentPage.id,
|
89
|
+
[names[this.focused]]: this.editor.changes[this.focused],
|
90
|
+
};
|
91
|
+
return this.config.saveContentPage(Object.assign({ id: this.contentPage.id }, data))
|
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(ContentPageComponent, {
|
126
|
+
data: {
|
127
|
+
contentPage: this.contentPage,
|
128
|
+
},
|
129
|
+
})
|
130
|
+
.afterClosed()
|
131
|
+
.pipe(takeUntil(this._destroy$))
|
132
|
+
.subscribe((contentPage) => {
|
133
|
+
this.contentPage = Object.assign(Object.assign({}, this.contentPage), contentPage);
|
134
|
+
this._cdRef.markForCheck();
|
135
|
+
});
|
136
|
+
}
|
137
|
+
_initEscape() {
|
138
|
+
fromEvent(document, 'keydown')
|
139
|
+
.pipe(filter((event) => event.code === 'Escape'), takeUntil(this._destroy$)).subscribe(() => {
|
140
|
+
const dialogRef = this._dialog.openDialogs.reverse()[0];
|
141
|
+
if ((dialogRef === null || dialogRef === void 0 ? void 0 : dialogRef.componentInstance) === this) {
|
142
|
+
this.close();
|
143
|
+
}
|
144
|
+
});
|
145
|
+
}
|
146
|
+
}
|
147
|
+
ContentPageEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentPageEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
|
148
|
+
ContentPageEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageEditorComponent, 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=\"contentPage\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage.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 [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\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 \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 </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}.mat-dialog-actions fs-form-dialog-actions{width:auto}.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", "mobileActionPlacement", "mobileWidth", "mode"] }, { 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-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], 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 });
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ContentPageEditorComponent, decorators: [{
|
150
|
+
type: Component,
|
151
|
+
args: [{
|
152
|
+
templateUrl: './content-page-editor.component.html',
|
153
|
+
styleUrls: ['./content-page-editor.component.scss'],
|
154
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
155
|
+
}]
|
156
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
157
|
+
type: Inject,
|
158
|
+
args: [MAT_DIALOG_DATA]
|
159
|
+
}] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: i1.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i3.FsPrompt }]; }, propDecorators: { editor: [{
|
160
|
+
type: ViewChild,
|
161
|
+
args: [EditorComponent]
|
162
|
+
}] } });
|
163
163
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYWdlLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1wYWdlcy9jb21wb25lbnRzL2NvbnRlbnQtcGFnZS1lZGl0b3IvY29udGVudC1wYWdlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1wYWdlcy9jb21wb25lbnRzL2NvbnRlbnQtcGFnZS1lZGl0b3IvY29udGVudC1wYWdlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFROUUsTUFBTSxPQUFPLDBCQUEwQjtJQXlCckMsWUFDbUMs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R0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFHLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLGlCQUFpQixNQUFLLElBQUksRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3dIQTlLVSwwQkFBMEIsa0JBMEIzQixlQUFlOzRHQTFCZCwwQkFBMEIsNEZBRTFCLGVBQWUsZ0RDaEM1QixpMERBZ0RPOzRGRGxCTSwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7b0JBQ25ELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBMkJJLE1BQU07MkJBQUMsZUFBZTs4S0F2QmxCLE1BQU07c0JBRFosU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVkaXRvclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGc0NvbnRlbnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci9jb21wb25lbnRzL2VkaXRvcic7XG5pbXBvcnQgeyBDb250ZW50UGFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbnRlbnQtcGFnZS9jb250ZW50LXBhZ2UuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtcGFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LXBhZ2UtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50UGFnZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEVkaXRvckNvbXBvbmVudClcbiAgcHVibGljIGVkaXRvcjogRWRpdG9yQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBjb250ZW50UGFnZToge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHN0eWxlcz86IHN0cmluZztcbiAgICBjb250ZW50Pzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAganM/OiBzdHJpbmc7XG4gIH07XG4gIHB1YmxpYyBmb2N1c2VkID0gbnVsbDtcbiAgcHVibGljIGNvbmZpZzogRnNDb250ZW50Q29uZmlnO1xuICBwdWJsaWMgcmVzaXppbmcgPSBmYWxzZTtcbiAgcHVibGljIHRpdGxlO1xuICBwdWJsaWMgZWRpdG9ycyA9IHtcbiAgICBbRWRpdG9yVHlwZS5IdG1sXTogdHJ1ZSxcbiAgICBbRWRpdG9yVHlwZS5TY3NzXTogdHJ1ZSxcbiAgICBbRWRpdG9yVHlwZS5Kc106IGZhbHNlLFxuICAgIFtFZGl0b3JUeXBlLkdsb2JhbFNjc3NdOiBmYWxzZSxcbiAgfTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IHtcbiAgICAgIGNvbnRlbnRQYWdlOiBhbnk7XG4gICAgICBjb250ZW50Q29uZmlnOiBGc0NvbnRlbnRDb25maWc7XG4gICAgfSxcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb250ZW50UGFnZUVkaXRvckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5hZGRQYW5lbENsYXNzKCdmcy1jb250ZW50LWVkaXRvci1vdmVybGF5LXBhbmUnKTtcbiAgICB0aGlzLl9kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuX2RhdGEuY29udGVudENvbmZpZztcbiAgICB0aGlzLl9pbml0Q29udGVudFBhZ2UodGhpcy5fZGF0YS5jb250ZW50UGFnZSk7XG4gICAgdGhpcy5faW5pdEVzY2FwZSgpO1xuICB9XG5cbiAgcHVibGljIGVkaXRvclRvZ2dsZUNoYW5nZShldmVudDogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JzW2V2ZW50LnZhbHVlXSA9ICF0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIF9pbml0Q29udGVudFBhZ2UoY29udGVudFBhZ2UpIHtcbiAgICB0aGlzLmNvbmZpZy5sb2FkQ29udGVudFBhZ2UoY29udGVudFBhZ2UuaWQpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudFBhZ2UgPSBkYXRhO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRvckZvY3VzZWQodHlwZSkge1xuICAgIHRoaXMuZm9jdXNlZCA9IHR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gb2YobnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5mb2N1c2VkKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgY2FzZSBFZGl0b3JUeXBlLkpzOlxuICAgICAgICAgICAgY2FzZSBFZGl0b3JUeXBlLkh0bWw6XG4gICAgICAgICAgICBjYXNlIEVkaXRvclR5cGUuU2NzczpcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUNvbnRlbnRQYWdlKCk7XG4gICAgICAgICAgICBjYXNlIEVkaXRvclR5cGUuR2xvYmFsU2NzczpcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLnNhdmVHbG9iYWxTY3NzKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0ludmFsaWQgZm9jdXMnKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lZGl0b3IuY2xlYXJDaGFuZ2UodGhpcy5mb2N1c2VkKTtcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBzYXZlQ29udGVudFBhZ2UoKSB7XG4gICAgY29uc3QgbmFtZXMgPSB7XG4gICAgICBbRWRpdG9yVHlwZS5Kc106ICdqcycsXG4gICAgICBbRWRpdG9yVHlwZS5TY3NzXTogJ3N0eWxlcycsXG4gICAgICBbRWRpdG9yVHlwZS5IdG1sXTogJ2NvbnRlbnQnLFxuICAgIH07XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuY29udGVudFBhZ2UuaWQsXG4gICAgICBbbmFtZXNbdGhpcy5mb2N1c2VkXV06IHRoaXMuZWRpdG9yLmNoYW5nZXNbdGhpcy5mb2N1c2VkXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnNhdmVDb250ZW50UGFnZSh7XG4gICAgICBpZDogdGhpcy5jb250ZW50UGFnZS5pZCxcbiAgICAgIC4uLmRhdGEsXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYoIXRoaXMuZWRpdG9yLmhhc0NoYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9wcm9tcHQuY29uZmlybSh7XG4gICAgICBkaWFsb2dDb25maWc6IHtcbiAgICAgICAgd2lkdGg6IG51bGwsXG4gICAgICB9LFxuICAgICAgdGl0bGU6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMnLFxuICAgICAgdGVtcGxhdGU6ICdXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRvIHdpdGggeW91ciBjaGFuZ2VzPycsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ1JldmlldyBDaGFuZ2VzJyxcbiAgICAgICAgICB2YWx1ZTogJ3JldmlldycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0Rpc2NhcmQgQ2hhbmdlcycsXG4gICAgICAgICAgdmFsdWU6ICdkaXNjYXJkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+e1xuICAgICAgICBpZih2YWx1ZSA9PT0gJ2Rpc2NhcmQnKSB7XG4gICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihDb250ZW50UGFnZUNvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBjb250ZW50UGFnZTogdGhpcy5jb250ZW50UGFnZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRQYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudFBhZ2UgPSB7XG4gICAgICAgICAgLi4udGhpcy5jb250ZW50UGFnZSxcbiAgICAgICAgICAuLi5jb250ZW50UGFnZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFc2NhcGUoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZ3MucmV2ZXJzZSgpWzBdO1xuICAgICAgICBpZihkaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlID09PSB0aGlzKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8Zm9ybSBmc0Zvcm0gW3N1Ym1pdF09XCJzYXZlXCIgW2RpcnR5U3VibWl0QnV0dG9uXT1cImZhbHNlXCIgW2NvbmZpcm1dPVwiZmFsc2VcIj5cbiAgPGZzLWRpYWxvZyAqZnNTa2VsZXRvbkZvcm09XCJjb250ZW50UGFnZVwiPlxuICAgIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICBQYWdlIEVkaXRvclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiPnt7Y29udGVudFBhZ2UubmFtZX19PC9kaXY+ICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YVxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZXR0aW5ncygpXCJcbiAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxuICAgICAgICA8L2E+ICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2gxPlxuICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPGFwcC1lZGl0b3JcbiAgICAgICAgW2NvbnRlbnRDb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgW3Nob3dIdG1sXT1cImVkaXRvcnMuaHRtbFwiXG4gICAgICAgIFtzaG93SnNdPVwiZWRpdG9ycy5qc1wiXG4gICAgICAgIFtzaG93U2Nzc109XCJlZGl0b3JzLnNjc3NcIlxuICAgICAgICBbc2hvd0dsb2JhbFNjc3NdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCJcbiAgICAgICAgW2h0bWxdPVwiY29udGVudFBhZ2UuY29udGVudFwiXG4gICAgICAgIFtzY3NzXT1cImNvbnRlbnRQYWdlLnN0eWxlc1wiXG4gICAgICAgIFtqc109XCJjb250ZW50UGFnZS5qc1wiXG4gICAgICAgIChmb2N1c2VkKT1cImVkaXRvckZvY3VzZWQoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtZWRpdG9yPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8YnV0dG9uIFxuICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+ICBcbiAgICAgICAgRG9uZSAgICAgIFxuICAgICAgPC9idXR0b24+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVzXCI+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBtdWx0aXBsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJodG1sXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5odG1sXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkhUTUw8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNjc3NcIiBbY2hlY2tlZF09XCJlZGl0b3JzLnNjc3NcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+U0NTUzwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwianNcIiBbY2hlY2tlZF09XCJlZGl0b3JzLmpzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkpTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJnbG9iYWxTY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkdsb2JhbCBTQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD4gICAgICBcbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mcy1kaWFsb2c+XG48L2Zvcm0+Il19
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export * from './content-page-editor.component';
|
1
|
+
export * from './content-page-editor.component';
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1wYWdlcy9jb21wb25lbnRzL2NvbnRlbnQtcGFnZS1lZGl0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGVudC1wYWdlLWVkaXRvci5jb21wb25lbnQnO1xuIl19
|