@firestitch/content 12.2.4 → 12.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. package/app/interfaces/content-config.d.ts +2 -0
  2. package/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.d.ts +41 -0
  3. package/app/modules/content-layouts/components/content-layout-editor/index.d.ts +1 -0
  4. package/app/modules/content-layouts/components/index.d.ts +3 -0
  5. package/app/modules/content-layouts/fs-content-layouts.module.d.ts +21 -20
  6. package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts +43 -0
  7. package/app/modules/content-pages/components/content-page-editor/index.d.ts +1 -0
  8. package/app/modules/content-pages/components/index.d.ts +3 -0
  9. package/app/modules/content-pages/fs-content-pages.module.d.ts +22 -20
  10. package/app/modules/editor/components/editor/editor.component.d.ts +15 -32
  11. package/bundles/firestitch-content.umd.js +400 -250
  12. package/bundles/firestitch-content.umd.js.map +1 -1
  13. package/esm2015/app/interfaces/content-config.js +1 -1
  14. package/esm2015/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.js +97 -0
  15. package/esm2015/app/modules/content-layouts/components/content-layout-editor/index.js +2 -0
  16. package/esm2015/app/modules/content-layouts/components/content-layouts/content-layouts.component.js +4 -11
  17. package/esm2015/app/modules/content-layouts/components/index.js +4 -0
  18. package/esm2015/app/modules/content-layouts/fs-content-layouts.module.js +10 -7
  19. package/esm2015/app/modules/content-pages/components/content-page-editor/content-page-editor.component.js +101 -0
  20. package/esm2015/app/modules/content-pages/components/content-page-editor/index.js +2 -0
  21. package/esm2015/app/modules/content-pages/components/content-pages/content-pages.component.js +3 -10
  22. package/esm2015/app/modules/content-pages/components/index.js +4 -0
  23. package/esm2015/app/modules/content-pages/fs-content-pages.module.js +9 -2
  24. package/esm2015/app/modules/editor/components/editor/editor.component.js +41 -65
  25. package/fesm2015/firestitch-content.js +246 -104
  26. package/fesm2015/firestitch-content.js.map +1 -1
  27. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/button'), require('@angular/material/dialog'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/tabs'), require('@firestitch/date'), require('@firestitch/dialog'), require('@firestitch/form'), require('@firestitch/html-editor'), require('@firestitch/list'), require('@firestitch/text-editor'), require('@angular/material/button-toggle'), require('@angular/material/icon'), require('@angular/material/select'), require('@firestitch/label'), require('@firestitch/skeleton'), require('@firestitch/common'), require('angular-split'), require('rxjs'), require('rxjs/operators'), require('@firestitch/message'), require('@firestitch/filter'), require('@angular/material/core'), require('@angular/router'), require('@angular/platform-browser'), require('@firestitch/body')) :
3
- typeof define === 'function' && define.amd ? define('@firestitch/content', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/button', '@angular/material/dialog', '@angular/material/form-field', '@angular/material/input', '@angular/material/tabs', '@firestitch/date', '@firestitch/dialog', '@firestitch/form', '@firestitch/html-editor', '@firestitch/list', '@firestitch/text-editor', '@angular/material/button-toggle', '@angular/material/icon', '@angular/material/select', '@firestitch/label', '@firestitch/skeleton', '@firestitch/common', 'angular-split', 'rxjs', 'rxjs/operators', '@firestitch/message', '@firestitch/filter', '@angular/material/core', '@angular/router', '@angular/platform-browser', '@firestitch/body'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch.content = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.button, global.ng.material.dialog, global.ng.material.formField, global.ng.material.input, global.ng.material.tabs, global.i3$1, global.i3, global.i5$1, global.htmlEditor, global.i2$1, global.i8, global.ng.material.buttonToggle, global.ng.material.icon, global.ng.material.select, global.i7, global.i13, global.i12, global.i6, global.rxjs, global.rxjs.operators, global.i2, global.filter, global.ng.material.core, global.ng.router, global.ng.platformBrowser, global.i3$2));
5
- })(this, (function (exports, i10$1, i0, i7$1, i4, i1, i4$1, i8$1, tabs, i3$1, i3, i5$1, htmlEditor, i2$1, i8, i10, i5, i5$2, i7, i13, i12, i6, rxjs, operators, i2, filter, i6$1, i2$2, i1$1, i3$2) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/button'), require('@angular/material/button-toggle'), require('@angular/material/dialog'), require('@angular/material/form-field'), require('@angular/material/icon'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@firestitch/date'), require('@firestitch/dialog'), require('@firestitch/form'), require('@firestitch/html-editor'), require('@firestitch/label'), require('@firestitch/list'), require('@firestitch/skeleton'), require('@firestitch/text-editor'), require('@firestitch/common'), require('angular-split'), require('rxjs'), require('@firestitch/message'), require('rxjs/operators'), require('@firestitch/filter'), require('@angular/material/core'), require('@angular/router'), require('@angular/platform-browser'), require('@firestitch/body')) :
3
+ typeof define === 'function' && define.amd ? define('@firestitch/content', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/button', '@angular/material/button-toggle', '@angular/material/dialog', '@angular/material/form-field', '@angular/material/icon', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@firestitch/date', '@firestitch/dialog', '@firestitch/form', '@firestitch/html-editor', '@firestitch/label', '@firestitch/list', '@firestitch/skeleton', '@firestitch/text-editor', '@firestitch/common', 'angular-split', 'rxjs', '@firestitch/message', 'rxjs/operators', '@firestitch/filter', '@angular/material/core', '@angular/router', '@angular/platform-browser', '@firestitch/body'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch.content = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.button, global.ng.material.buttonToggle, global.ng.material.dialog, global.ng.material.formField, global.ng.material.icon, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.i3$2, global.i3$1, global.i7$1, global.htmlEditor, global.i3, global.i2$2, global.i8, global.i4, global.i7$2, global.i2$1, global.rxjs, global.i2, global.rxjs.operators, global.filter, global.ng.material.core, global.ng.router, global.ng.platformBrowser, global.i3$3));
5
+ })(this, (function (exports, i10, i0, i7, i4$1, i8$1, i1, i4$2, i5, i8$2, i5$1, tabs, i3$2, i3$1, i7$1, htmlEditor, i3, i2$2, i8, i4, i7$2, i2$1, rxjs, i2, operators, filter, i6, i2$3, i1$1, i3$3) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -22,65 +22,54 @@
22
22
  return Object.freeze(n);
23
23
  }
24
24
 
25
- var i10__namespace$1 = /*#__PURE__*/_interopNamespace(i10$1);
25
+ var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i7__namespace$1 = /*#__PURE__*/_interopNamespace(i7$1);
28
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
27
+ var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
28
+ var i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$1);
29
+ var i8__namespace$2 = /*#__PURE__*/_interopNamespace(i8$1);
29
30
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
30
- var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
31
- var i8__namespace$1 = /*#__PURE__*/_interopNamespace(i8$1);
31
+ var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$2);
32
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
33
+ var i8__namespace$1 = /*#__PURE__*/_interopNamespace(i8$2);
34
+ var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
35
+ var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
32
36
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
37
+ var i7__namespace$1 = /*#__PURE__*/_interopNamespace(i7$1);
33
38
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
34
- var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
35
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
39
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
36
40
  var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
37
- var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
38
- var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
39
- var i5__namespace$2 = /*#__PURE__*/_interopNamespace(i5$2);
40
- var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
41
- var i13__namespace = /*#__PURE__*/_interopNamespace(i13);
42
- var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
43
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
41
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
42
+ var i7__namespace$2 = /*#__PURE__*/_interopNamespace(i7$2);
43
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
44
44
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
45
- var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
46
- var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
45
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
46
+ var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
47
47
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
48
- var i3__namespace$2 = /*#__PURE__*/_interopNamespace(i3$2);
48
+ var i3__namespace$3 = /*#__PURE__*/_interopNamespace(i3$3);
49
49
 
50
50
  var EditorComponent = /** @class */ (function () {
51
- function EditorComponent(_data, _dialogRef, _message, _cdRef) {
52
- this._data = _data;
53
- this._dialogRef = _dialogRef;
51
+ function EditorComponent(_message, _cdRef) {
54
52
  this._message = _message;
55
53
  this._cdRef = _cdRef;
54
+ this.showHtml = false;
55
+ this.showScss = false;
56
+ this.showJs = false;
57
+ this.showGlobalScss = false;
58
+ this.changed = new i0.EventEmitter();
56
59
  this.resizing = false;
57
- this.editors = {
58
- html: true,
59
- scss: true,
60
- js: false,
61
- globalScss: false,
62
- };
63
60
  this._destroy$ = new rxjs.Subject();
64
61
  }
65
62
  EditorComponent.prototype.ngOnInit = function () {
66
- this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
67
- this.title = this._data.title;
68
- this.contentPage = this._data.contentPage;
69
- this._config = this._data.contentConfig;
70
- this._save = this._data.save;
71
63
  this.initTextEditors();
72
64
  this.initGlobalContentStyle();
73
65
  };
74
- EditorComponent.prototype.editorToggleChange = function (event) {
75
- this.editors[event.value] = !this.editors[event.value];
76
- };
77
66
  EditorComponent.prototype.ngOnDestroy = function () {
78
67
  this._destroy$.next();
79
68
  this._destroy$.complete();
80
69
  };
81
70
  EditorComponent.prototype.globalScssChange = function () {
82
71
  var _this = this;
83
- this._config.saveContentStyle(this.contentStyle)
72
+ this.contentConfig.saveContentStyle(this.contentStyle)
84
73
  .subscribe(function (contentStyle) {
85
74
  _this.contentStyle = contentStyle;
86
75
  _this._message.success('Saved Changes');
@@ -111,53 +100,43 @@
111
100
  };
112
101
  EditorComponent.prototype.initGlobalContentStyle = function () {
113
102
  var _this = this;
114
- this._config.loadContentStyle()
103
+ this.contentConfig.loadContentStyle()
115
104
  .subscribe(function (contentStyle) {
116
- _this.contentStyle = contentStyle;
117
- _this._cdRef.markForCheck();
118
- });
119
- };
120
- EditorComponent.prototype.saveContentPage = function () {
121
- var _this = this;
122
- this._save({
123
- id: this.contentPage.id,
124
- styles: this.contentPage.styles,
125
- content: this.contentPage.content,
126
- js: this.contentPage.js,
127
- })
128
- .pipe(operators.tap(function (contentPage) {
129
- _this.contentPage = Object.assign(Object.assign({}, _this.contentPage), contentPage);
130
- _this._cdRef.markForCheck();
131
- _this._message.success('Saved Changes');
132
- }))
133
- .subscribe();
134
- };
135
- EditorComponent.prototype.openSettings = function () {
136
- var _this = this;
137
- this._data.openSettings(this.contentPage)
138
- .pipe(operators.takeUntil(this._destroy$))
139
- .subscribe(function (contentPage) {
140
- _this.contentPage = Object.assign(Object.assign({}, _this.contentPage), contentPage);
105
+ _this.contentStyle = contentStyle || {};
141
106
  _this._cdRef.markForCheck();
142
107
  });
143
108
  };
144
109
  return EditorComponent;
145
110
  }());
146
- EditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EditorComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
147
- EditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EditorComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog>\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n {{title}}\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 <div class=\"container\">\n <as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"editors.html\" [order]=\"1\">\n <div class=\"editor-container\">\n <fs-label>HTML</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.content\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.scss\" [order]=\"2\">\n <div class=\"editor-container\">\n <fs-label>SCSS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.styles\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.js\" [order]=\"3\">\n <div class=\"editor-container\">\n <fs-label>JS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.globalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <fs-label>Global SCSS</fs-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"globalScssChange()\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n </as-split>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions\n [save]=\"false\"\n [done]=\"true\">\n </fs-form-dialog-actions>\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\n", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}:host ::ng-deep .as-split-gutter{background-color:unset!important}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}.container{height:100%;display:flex;flex-direction:column}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace.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: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6__namespace.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { type: i7__namespace.FsLabelComponent, selector: "fs-label" }, { type: i8__namespace.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }, { type: i5__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }, { type: i10__namespace.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { type: i7__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace$1.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: i12__namespace.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { type: i13__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10__namespace.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
111
+ EditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EditorComponent, deps: [{ token: i2__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
112
+ EditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EditorComponent, selector: "app-editor", inputs: { showHtml: "showHtml", showScss: "showScss", showJs: "showJs", showGlobalScss: "showGlobalScss", html: "html", scss: "scss", js: "js", contentConfig: "contentConfig" }, outputs: { changed: "changed" }, ngImport: i0__namespace, template: "<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <fs-label>HTML</fs-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"changed.emit({ type: 'html', value: $event })\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <fs-label>SCSS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"changed.emit({ type: 'scss', value: $event })\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <fs-label>JS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"changed.emit({ type: 'js', value: $event })\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <fs-label>Global SCSS</fs-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"globalScssChange()\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n", styles: [":host ::ng-deep .as-split-gutter{background-color:unset!important}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}\n"], components: [{ type: i2__namespace$1.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { type: i3__namespace.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i2__namespace$1.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace$1.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: i7__namespace$2.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { type: i8__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
148
113
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: EditorComponent, decorators: [{
149
114
  type: i0.Component,
150
115
  args: [{
116
+ selector: 'app-editor',
151
117
  templateUrl: './editor.component.html',
152
118
  styleUrls: ['./editor.component.scss'],
153
119
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
154
120
  }]
155
- }], ctorParameters: function () {
156
- return [{ type: undefined, decorators: [{
157
- type: i0.Inject,
158
- args: [i1.MAT_DIALOG_DATA]
159
- }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
160
- } });
121
+ }], ctorParameters: function () { return [{ type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { showHtml: [{
122
+ type: i0.Input
123
+ }], showScss: [{
124
+ type: i0.Input
125
+ }], showJs: [{
126
+ type: i0.Input
127
+ }], showGlobalScss: [{
128
+ type: i0.Input
129
+ }], html: [{
130
+ type: i0.Input
131
+ }], scss: [{
132
+ type: i0.Input
133
+ }], js: [{
134
+ type: i0.Input
135
+ }], contentConfig: [{
136
+ type: i0.Input
137
+ }], changed: [{
138
+ type: i0.Output
139
+ }] } });
161
140
 
162
141
  var FsContentEditorModule = /** @class */ (function () {
163
142
  function FsContentEditorModule() {
@@ -165,60 +144,60 @@
165
144
  return FsContentEditorModule;
166
145
  }());
167
146
  FsContentEditorModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentEditorModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
168
- FsContentEditorModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentEditorModule, declarations: [EditorComponent], imports: [i10$1.CommonModule,
169
- i7$1.FormsModule,
147
+ FsContentEditorModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentEditorModule, declarations: [EditorComponent], imports: [i10.CommonModule,
148
+ i7.FormsModule,
170
149
  i1.MatDialogModule,
171
- i4.MatButtonModule,
150
+ i4$1.MatButtonModule,
172
151
  tabs.MatTabsModule,
173
152
  i5.MatIconModule,
174
- i10.MatButtonToggleModule,
175
- i2$1.FsListModule,
176
- i5$1.FsFormModule,
177
- i13.FsSkeletonModule,
178
- i7.FsLabelModule,
153
+ i8$1.MatButtonToggleModule,
154
+ i2$2.FsListModule,
155
+ i7$1.FsFormModule,
156
+ i8.FsSkeletonModule,
157
+ i3.FsLabelModule,
179
158
  htmlEditor.FsHtmlEditorModule,
180
- i12.FsCommonModule,
181
- i3.FsDialogModule,
182
- i8.FsTextEditorModule,
183
- i6.AngularSplitModule], exports: [EditorComponent] });
159
+ i7$2.FsCommonModule,
160
+ i3$1.FsDialogModule,
161
+ i4.FsTextEditorModule,
162
+ i2$1.AngularSplitModule], exports: [EditorComponent] });
184
163
  FsContentEditorModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentEditorModule, imports: [[
185
- i10$1.CommonModule,
186
- i7$1.FormsModule,
164
+ i10.CommonModule,
165
+ i7.FormsModule,
187
166
  i1.MatDialogModule,
188
- i4.MatButtonModule,
167
+ i4$1.MatButtonModule,
189
168
  tabs.MatTabsModule,
190
169
  i5.MatIconModule,
191
- i10.MatButtonToggleModule,
192
- i2$1.FsListModule,
193
- i5$1.FsFormModule,
194
- i13.FsSkeletonModule,
195
- i7.FsLabelModule,
170
+ i8$1.MatButtonToggleModule,
171
+ i2$2.FsListModule,
172
+ i7$1.FsFormModule,
173
+ i8.FsSkeletonModule,
174
+ i3.FsLabelModule,
196
175
  htmlEditor.FsHtmlEditorModule,
197
- i12.FsCommonModule,
198
- i3.FsDialogModule,
199
- i8.FsTextEditorModule,
200
- i6.AngularSplitModule,
176
+ i7$2.FsCommonModule,
177
+ i3$1.FsDialogModule,
178
+ i4.FsTextEditorModule,
179
+ i2$1.AngularSplitModule,
201
180
  ]] });
202
181
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentEditorModule, decorators: [{
203
182
  type: i0.NgModule,
204
183
  args: [{
205
184
  imports: [
206
- i10$1.CommonModule,
207
- i7$1.FormsModule,
185
+ i10.CommonModule,
186
+ i7.FormsModule,
208
187
  i1.MatDialogModule,
209
- i4.MatButtonModule,
188
+ i4$1.MatButtonModule,
210
189
  tabs.MatTabsModule,
211
190
  i5.MatIconModule,
212
- i10.MatButtonToggleModule,
213
- i2$1.FsListModule,
214
- i5$1.FsFormModule,
215
- i13.FsSkeletonModule,
216
- i7.FsLabelModule,
191
+ i8$1.MatButtonToggleModule,
192
+ i2$2.FsListModule,
193
+ i7$1.FsFormModule,
194
+ i8.FsSkeletonModule,
195
+ i3.FsLabelModule,
217
196
  htmlEditor.FsHtmlEditorModule,
218
- i12.FsCommonModule,
219
- i3.FsDialogModule,
220
- i8.FsTextEditorModule,
221
- i6.AngularSplitModule,
197
+ i7$2.FsCommonModule,
198
+ i3$1.FsDialogModule,
199
+ i4.FsTextEditorModule,
200
+ i2$1.AngularSplitModule,
222
201
  ],
223
202
  exports: [
224
203
  EditorComponent,
@@ -271,7 +250,7 @@
271
250
  return ContentLayoutComponent;
272
251
  }());
273
252
  ContentLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentLayoutComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
274
- ContentLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "textEditors", predicate: i8.FsTextEditorComponent, descendants: true }], ngImport: i0__namespace, 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 <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required\n placeholder=\"Name\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\"\n placeholder=\"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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], directives: [{ type: i13__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5__namespace$1.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8__namespace$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace$1.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__namespace$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace$1.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i5__namespace$1.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__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
253
+ ContentLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "textEditors", predicate: i4.FsTextEditorComponent, descendants: true }], ngImport: i0__namespace, 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 <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required\n placeholder=\"Name\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\"\n placeholder=\"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__namespace$1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i7__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace$1.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i8__namespace$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.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__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace$1.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i7__namespace$1.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__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
275
254
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentLayoutComponent, decorators: [{
276
255
  type: i0.Component,
277
256
  args: [{
@@ -289,9 +268,96 @@
289
268
  }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
290
269
  }, propDecorators: { textEditors: [{
291
270
  type: i0.ViewChildren,
292
- args: [i8.FsTextEditorComponent]
271
+ args: [i4.FsTextEditorComponent]
293
272
  }] } });
294
273
 
274
+ var ContentLayoutEditorComponent = /** @class */ (function () {
275
+ function ContentLayoutEditorComponent(_data, _dialogRef, _message, _dialog, _cdRef) {
276
+ this._data = _data;
277
+ this._dialogRef = _dialogRef;
278
+ this._message = _message;
279
+ this._dialog = _dialog;
280
+ this._cdRef = _cdRef;
281
+ this.resizing = false;
282
+ this.editors = {
283
+ html: true,
284
+ scss: true,
285
+ globalScss: false,
286
+ };
287
+ this._destroy$ = new rxjs.Subject();
288
+ }
289
+ ContentLayoutEditorComponent.prototype.ngOnInit = function () {
290
+ this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
291
+ this.config = this._data.contentConfig;
292
+ this._initContentLayout(this._data.contentLayout);
293
+ };
294
+ ContentLayoutEditorComponent.prototype.editorToggleChange = function (event) {
295
+ this.editors[event.value] = !this.editors[event.value];
296
+ };
297
+ ContentLayoutEditorComponent.prototype.ngOnDestroy = function () {
298
+ this._destroy$.next();
299
+ this._destroy$.complete();
300
+ };
301
+ ContentLayoutEditorComponent.prototype._initContentLayout = function (contentLayout) {
302
+ var _this = this;
303
+ this.config.loadContentLayout(contentLayout.id)
304
+ .subscribe(function (data) {
305
+ _this.contentLayout = data;
306
+ _this._cdRef.markForCheck();
307
+ });
308
+ };
309
+ ContentLayoutEditorComponent.prototype.editorChanged = function (event) {
310
+ var data = {};
311
+ if (event.type === 'html') {
312
+ data.content = event.value;
313
+ }
314
+ if (event.type === 'scss') {
315
+ data.styles = event.value;
316
+ }
317
+ this.saveContentLayout(data);
318
+ };
319
+ ContentLayoutEditorComponent.prototype.saveContentLayout = function (data) {
320
+ var _this = this;
321
+ this.config.saveContentLayout(Object.assign({ id: this.contentLayout.id }, data))
322
+ .pipe(operators.tap(function (contentLayout) {
323
+ _this.contentLayout = Object.assign(Object.assign({}, _this.contentLayout), contentLayout);
324
+ _this._cdRef.markForCheck();
325
+ _this._message.success('Saved Changes');
326
+ }))
327
+ .subscribe();
328
+ };
329
+ ContentLayoutEditorComponent.prototype.openSettings = function () {
330
+ var _this = this;
331
+ this._dialog.open(ContentLayoutComponent, {
332
+ data: {
333
+ contentLayout: this.contentLayout,
334
+ },
335
+ })
336
+ .afterClosed()
337
+ .pipe(operators.takeUntil(this._destroy$))
338
+ .subscribe(function (contentLayout) {
339
+ _this.contentLayout = Object.assign(Object.assign({}, _this.contentLayout), contentLayout);
340
+ _this._cdRef.markForCheck();
341
+ });
342
+ };
343
+ return ContentLayoutEditorComponent;
344
+ }());
345
+ ContentLayoutEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentLayoutEditorComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i1__namespace.MatDialog }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
346
+ ContentLayoutEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentLayoutEditorComponent, selector: "ng-component", ngImport: i0__namespace, template: "<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 (changed)=\"editorChanged($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions\n [save]=\"false\"\n [done]=\"true\">\n </fs-form-dialog-actions>\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\n", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}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: i3__namespace$1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$2.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: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed"] }, { type: i7__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }, { type: i8__namespace$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8__namespace$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
347
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentLayoutEditorComponent, decorators: [{
348
+ type: i0.Component,
349
+ args: [{
350
+ templateUrl: './content-layout-editor.component.html',
351
+ styleUrls: ['./content-layout-editor.component.scss'],
352
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
353
+ }]
354
+ }], ctorParameters: function () {
355
+ return [{ type: undefined, decorators: [{
356
+ type: i0.Inject,
357
+ args: [i1.MAT_DIALOG_DATA]
358
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i1__namespace.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
359
+ } });
360
+
295
361
  var FsContentLayoutsComponent = /** @class */ (function () {
296
362
  function FsContentLayoutsComponent(_config, _dialog) {
297
363
  this._config = _config;
@@ -303,20 +369,13 @@
303
369
  };
304
370
  FsContentLayoutsComponent.prototype.openEditor = function (contentLayout) {
305
371
  var _this = this;
306
- this._dialog.open(EditorComponent, {
372
+ this._dialog.open(ContentLayoutEditorComponent, {
307
373
  maxWidth: '100vw',
308
374
  width: '100%',
309
375
  height: '100%',
310
376
  data: {
311
- contentPage: contentLayout,
312
- title: 'Layout',
377
+ contentLayout: contentLayout,
313
378
  contentConfig: this._config,
314
- save: function (data) {
315
- return _this._config.saveContentLayout(Object.assign({ id: contentLayout.id }, data));
316
- },
317
- openSettings: function (data) {
318
- return _this.openLayout(data);
319
- },
320
379
  },
321
380
  })
322
381
  .afterClosed()
@@ -393,7 +452,7 @@
393
452
  return FsContentLayoutsComponent;
394
453
  }());
395
454
  FsContentLayoutsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1__namespace.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
396
- FsContentLayoutsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentLayoutsComponent, selector: "fs-content-layouts", viewQueries: [{ propertyName: "listComponent", first: true, predicate: i2$1.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openEditor(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i2__namespace$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }], pipes: { "fsDate": i3__namespace$1.FsDatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
455
+ FsContentLayoutsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentLayoutsComponent, selector: "fs-content-layouts", viewQueries: [{ propertyName: "listComponent", first: true, predicate: i2$2.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openEditor(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i2__namespace$2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }], directives: [{ type: i2__namespace$2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }], pipes: { "fsDate": i3__namespace$2.FsDatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
397
456
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsComponent, decorators: [{
398
457
  type: i0.Component,
399
458
  args: [{
@@ -409,7 +468,7 @@
409
468
  }] }, { type: i1__namespace.MatDialog }];
410
469
  }, propDecorators: { listComponent: [{
411
470
  type: i0.ViewChild,
412
- args: [i2$1.FsListComponent]
471
+ args: [i2$2.FsListComponent]
413
472
  }] } });
414
473
 
415
474
  var FsContentLayoutsModule = /** @class */ (function () {
@@ -419,68 +478,69 @@
419
478
  }());
420
479
  FsContentLayoutsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
421
480
  FsContentLayoutsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsModule, declarations: [ContentLayoutComponent,
422
- FsContentLayoutsComponent], imports: [i10$1.CommonModule,
423
- i7$1.FormsModule,
481
+ FsContentLayoutsComponent,
482
+ ContentLayoutEditorComponent], imports: [i10.CommonModule,
483
+ i7.FormsModule,
424
484
  i1.MatDialogModule,
425
- i8$1.MatInputModule,
426
- i4$1.MatFormFieldModule,
427
- i4.MatButtonModule,
485
+ i8$2.MatInputModule,
486
+ i4$2.MatFormFieldModule,
487
+ i4$1.MatButtonModule,
428
488
  tabs.MatTabsModule,
429
489
  i5.MatIconModule,
430
- i5$2.MatSelectModule,
431
- i10.MatButtonToggleModule,
432
- i2$1.FsListModule,
433
- i3$1.FsDateModule,
434
- i5$1.FsFormModule,
435
- i7.FsLabelModule,
436
- i13.FsSkeletonModule,
490
+ i5$1.MatSelectModule,
491
+ i8$1.MatButtonToggleModule,
492
+ i2$2.FsListModule,
493
+ i3$2.FsDateModule,
494
+ i7$1.FsFormModule,
495
+ i3.FsLabelModule,
496
+ i8.FsSkeletonModule,
437
497
  htmlEditor.FsHtmlEditorModule,
438
- i3.FsDialogModule,
439
- i8.FsTextEditorModule,
498
+ i3$1.FsDialogModule,
499
+ i4.FsTextEditorModule,
440
500
  FsContentEditorModule], exports: [FsContentLayoutsComponent] });
441
501
  FsContentLayoutsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsModule, imports: [[
442
- i10$1.CommonModule,
443
- i7$1.FormsModule,
502
+ i10.CommonModule,
503
+ i7.FormsModule,
444
504
  i1.MatDialogModule,
445
- i8$1.MatInputModule,
446
- i4$1.MatFormFieldModule,
447
- i4.MatButtonModule,
505
+ i8$2.MatInputModule,
506
+ i4$2.MatFormFieldModule,
507
+ i4$1.MatButtonModule,
448
508
  tabs.MatTabsModule,
449
509
  i5.MatIconModule,
450
- i5$2.MatSelectModule,
451
- i10.MatButtonToggleModule,
452
- i2$1.FsListModule,
453
- i3$1.FsDateModule,
454
- i5$1.FsFormModule,
455
- i7.FsLabelModule,
456
- i13.FsSkeletonModule,
510
+ i5$1.MatSelectModule,
511
+ i8$1.MatButtonToggleModule,
512
+ i2$2.FsListModule,
513
+ i3$2.FsDateModule,
514
+ i7$1.FsFormModule,
515
+ i3.FsLabelModule,
516
+ i8.FsSkeletonModule,
457
517
  htmlEditor.FsHtmlEditorModule,
458
- i3.FsDialogModule,
459
- i8.FsTextEditorModule,
518
+ i3$1.FsDialogModule,
519
+ i4.FsTextEditorModule,
460
520
  FsContentEditorModule,
461
521
  ]] });
462
522
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsModule, decorators: [{
463
523
  type: i0.NgModule,
464
524
  args: [{
465
525
  imports: [
466
- i10$1.CommonModule,
467
- i7$1.FormsModule,
526
+ i10.CommonModule,
527
+ i7.FormsModule,
468
528
  i1.MatDialogModule,
469
- i8$1.MatInputModule,
470
- i4$1.MatFormFieldModule,
471
- i4.MatButtonModule,
529
+ i8$2.MatInputModule,
530
+ i4$2.MatFormFieldModule,
531
+ i4$1.MatButtonModule,
472
532
  tabs.MatTabsModule,
473
533
  i5.MatIconModule,
474
- i5$2.MatSelectModule,
475
- i10.MatButtonToggleModule,
476
- i2$1.FsListModule,
477
- i3$1.FsDateModule,
478
- i5$1.FsFormModule,
479
- i7.FsLabelModule,
480
- i13.FsSkeletonModule,
534
+ i5$1.MatSelectModule,
535
+ i8$1.MatButtonToggleModule,
536
+ i2$2.FsListModule,
537
+ i3$2.FsDateModule,
538
+ i7$1.FsFormModule,
539
+ i3.FsLabelModule,
540
+ i8.FsSkeletonModule,
481
541
  htmlEditor.FsHtmlEditorModule,
482
- i3.FsDialogModule,
483
- i8.FsTextEditorModule,
542
+ i3$1.FsDialogModule,
543
+ i4.FsTextEditorModule,
484
544
  FsContentEditorModule,
485
545
  ],
486
546
  exports: [
@@ -489,6 +549,7 @@
489
549
  declarations: [
490
550
  ContentLayoutComponent,
491
551
  FsContentLayoutsComponent,
552
+ ContentLayoutEditorComponent,
492
553
  ],
493
554
  }]
494
555
  }] });
@@ -555,7 +616,7 @@
555
616
  return ContentPageComponent;
556
617
  }());
557
618
  ContentPageComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
558
- ContentPageComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageComponent, selector: "ng-component", viewQueries: [{ propertyName: "textEditors", predicate: i8.FsTextEditorComponent, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentPage\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentPage.id ? 'Page' : 'Create Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"contentPage.type\"\n name=\"type\"\n required\n placeholder=\"Type\">\n <mat-option\n *ngFor=\"let item of PageTypes\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"contentLayouts\">\n <mat-select\n [(ngModel)]=\"contentPage.contentLayoutId\"\n required\n name=\"contentLayoutId\"\n placeholder=\"Layout\">\n <mat-option\n *ngFor=\"let item of contentLayouts\"\n [value]=\"item.id\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.name\"\n name=\"name\"\n required\n placeholder=\"Name\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.path\"\n name=\"path\"\n required\n placeholder=\"Path\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.title\"\n name=\"title\"\n placeholder=\"Title\">\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__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5__namespace$2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i6__namespace$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], directives: [{ type: i13__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5__namespace$1.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7__namespace$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace$1.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i10__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace$1.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: i5__namespace$1.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__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
619
+ ContentPageComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageComponent, selector: "ng-component", viewQueries: [{ propertyName: "textEditors", predicate: i4.FsTextEditorComponent, descendants: true }], ngImport: i0__namespace, template: "<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentPage\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentPage.id ? 'Page' : 'Create Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-select\n [(ngModel)]=\"contentPage.type\"\n name=\"type\"\n required\n placeholder=\"Type\">\n <mat-option\n *ngFor=\"let item of PageTypes\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field *ngIf=\"contentLayouts\">\n <mat-select\n [(ngModel)]=\"contentPage.contentLayoutId\"\n required\n name=\"contentLayoutId\"\n placeholder=\"Layout\">\n <mat-option\n *ngFor=\"let item of contentLayouts\"\n [value]=\"item.id\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.name\"\n name=\"name\"\n required\n placeholder=\"Name\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.path\"\n name=\"path\"\n required\n placeholder=\"Path\">\n </mat-form-field>\n <mat-form-field>\n <input\n matInput\n [(ngModel)]=\"contentPage.title\"\n name=\"title\"\n placeholder=\"Title\">\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__namespace$1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5__namespace$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i6__namespace.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace$1.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__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace$1.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i10__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8__namespace$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.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__namespace$1.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__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
559
620
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageComponent, decorators: [{
560
621
  type: i0.Component,
561
622
  args: [{
@@ -573,14 +634,105 @@
573
634
  }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
574
635
  }, propDecorators: { textEditors: [{
575
636
  type: i0.ViewChildren,
576
- args: [i8.FsTextEditorComponent]
637
+ args: [i4.FsTextEditorComponent]
577
638
  }] } });
578
639
 
640
+ var ContentPageEditorComponent = /** @class */ (function () {
641
+ function ContentPageEditorComponent(_data, _dialogRef, _message, _dialog, _cdRef) {
642
+ this._data = _data;
643
+ this._dialogRef = _dialogRef;
644
+ this._message = _message;
645
+ this._dialog = _dialog;
646
+ this._cdRef = _cdRef;
647
+ this.resizing = false;
648
+ this.editors = {
649
+ html: true,
650
+ scss: true,
651
+ js: false,
652
+ globalScss: false,
653
+ };
654
+ this._destroy$ = new rxjs.Subject();
655
+ }
656
+ ContentPageEditorComponent.prototype.ngOnInit = function () {
657
+ this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
658
+ this.config = this._data.contentConfig;
659
+ this._initContentPage(this._data.contentPage);
660
+ };
661
+ ContentPageEditorComponent.prototype.editorToggleChange = function (event) {
662
+ this.editors[event.value] = !this.editors[event.value];
663
+ };
664
+ ContentPageEditorComponent.prototype.ngOnDestroy = function () {
665
+ this._destroy$.next();
666
+ this._destroy$.complete();
667
+ };
668
+ ContentPageEditorComponent.prototype._initContentPage = function (contentPage) {
669
+ var _this = this;
670
+ this.config.loadContentPage(contentPage.id)
671
+ .subscribe(function (data) {
672
+ _this.contentPage = data;
673
+ _this._cdRef.markForCheck();
674
+ });
675
+ };
676
+ ContentPageEditorComponent.prototype.editorChanged = function (event) {
677
+ var data = {};
678
+ if (event.type === 'js') {
679
+ data.js = event.value;
680
+ }
681
+ if (event.type === 'html') {
682
+ data.content = event.value;
683
+ }
684
+ if (event.type === 'scss') {
685
+ data.styles = event.value;
686
+ }
687
+ this.saveContentPage(data);
688
+ };
689
+ ContentPageEditorComponent.prototype.saveContentPage = function (data) {
690
+ var _this = this;
691
+ this.config.saveContentPage(Object.assign({ id: this.contentPage.id }, data))
692
+ .pipe(operators.tap(function (contentPage) {
693
+ _this.contentPage = Object.assign(Object.assign({}, _this.contentPage), contentPage);
694
+ _this._cdRef.markForCheck();
695
+ _this._message.success('Saved Changes');
696
+ }))
697
+ .subscribe();
698
+ };
699
+ ContentPageEditorComponent.prototype.openSettings = function () {
700
+ var _this = this;
701
+ this._dialog.open(ContentPageComponent, {
702
+ data: {
703
+ contentPage: this.contentPage,
704
+ },
705
+ })
706
+ .afterClosed()
707
+ .pipe(operators.takeUntil(this._destroy$))
708
+ .subscribe(function (contentPage) {
709
+ _this.contentPage = Object.assign(Object.assign({}, _this.contentPage), contentPage);
710
+ _this._cdRef.markForCheck();
711
+ });
712
+ };
713
+ return ContentPageEditorComponent;
714
+ }());
715
+ ContentPageEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageEditorComponent, deps: [{ token: i1.MAT_DIALOG_DATA }, { token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i1__namespace.MatDialog }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
716
+ ContentPageEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageEditorComponent, selector: "ng-component", ngImport: i0__namespace, template: "<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 (changed)=\"editorChanged($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions\n [save]=\"false\"\n [done]=\"true\">\n </fs-form-dialog-actions>\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\n", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}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: i3__namespace$1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4__namespace$2.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: i5__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed"] }, { type: i7__namespace$1.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }, { type: i8__namespace$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i8__namespace$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
717
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageEditorComponent, decorators: [{
718
+ type: i0.Component,
719
+ args: [{
720
+ templateUrl: './content-page-editor.component.html',
721
+ styleUrls: ['./content-page-editor.component.scss'],
722
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
723
+ }]
724
+ }], ctorParameters: function () {
725
+ return [{ type: undefined, decorators: [{
726
+ type: i0.Inject,
727
+ args: [i1.MAT_DIALOG_DATA]
728
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i1__namespace.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
729
+ } });
730
+
579
731
  var FsContentPagesComponent = /** @class */ (function () {
580
732
  function FsContentPagesComponent(_config, _dialog) {
581
733
  this._config = _config;
582
734
  this._dialog = _dialog;
583
- this.pageTypes = i12.index(PageTypes, 'value', 'name');
735
+ this.pageTypes = i7$2.index(PageTypes, 'value', 'name');
584
736
  this._destroy$ = new rxjs.Subject();
585
737
  }
586
738
  FsContentPagesComponent.prototype.ngOnInit = function () {
@@ -588,18 +740,11 @@
588
740
  };
589
741
  FsContentPagesComponent.prototype.openEditor = function (contentPage) {
590
742
  var _this = this;
591
- this._dialog.open(EditorComponent, {
743
+ this._dialog.open(ContentPageEditorComponent, {
592
744
  data: {
593
745
  contentPage: contentPage,
594
746
  config: this._config,
595
- title: 'Page',
596
747
  contentConfig: this._config,
597
- save: function (data) {
598
- return _this._config.saveContentPage(data);
599
- },
600
- openSettings: function (data) {
601
- return _this.openContentPage(data);
602
- },
603
748
  },
604
749
  maxWidth: '100vw',
605
750
  width: '100%',
@@ -681,7 +826,7 @@
681
826
  return FsContentPagesComponent;
682
827
  }());
683
828
  FsContentPagesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1__namespace.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
684
- FsContentPagesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentPagesComponent, selector: "fs-content-pages", inputs: { htmlEditorConfig: "htmlEditorConfig" }, viewQueries: [{ propertyName: "listComponent", first: true, predicate: i2$1.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openEditor(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"path\" title=\"Path\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a [href]=\"'/' + row.path\" target=\"_black\">/{{row.path}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"type\" title=\"Type\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{pageTypes[row.type]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .modified,:host ::ng-deep .name{width:1%;white-space:nowrap}:host ::ng-deep .preview-content img{display:none}.preview-content{position:relative;max-height:100px;max-width:100%;overflow:hidden;-webkit-mask-image:-webkit-gradient(linear,left 60%,left bottom,from(black),to(rgba(0,0,0,0)))}\n"], components: [{ type: i2__namespace$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }], pipes: { "fsDate": i3__namespace$1.FsDatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
829
+ FsContentPagesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentPagesComponent, selector: "fs-content-pages", inputs: { htmlEditorConfig: "htmlEditorConfig" }, viewQueries: [{ propertyName: "listComponent", first: true, predicate: i2$2.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"listConfig\">\n <fs-list-column name=\"name\" title=\"Name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"openEditor(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"path\" title=\"Path\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a [href]=\"'/' + row.path\" target=\"_black\">/{{row.path}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"type\" title=\"Type\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{pageTypes[row.type]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"modify_date\" title=\"Modified\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.modifyDate | fsDate: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .modified,:host ::ng-deep .name{width:1%;white-space:nowrap}:host ::ng-deep .preview-content img{display:none}.preview-content{position:relative;max-height:100px;max-width:100%;overflow:hidden;-webkit-mask-image:-webkit-gradient(linear,left 60%,left bottom,from(black),to(rgba(0,0,0,0)))}\n"], components: [{ type: i2__namespace$2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }], directives: [{ type: i2__namespace$2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }], pipes: { "fsDate": i3__namespace$2.FsDatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
685
830
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesComponent, decorators: [{
686
831
  type: i0.Component,
687
832
  args: [{
@@ -699,7 +844,7 @@
699
844
  type: i0.Input
700
845
  }], listComponent: [{
701
846
  type: i0.ViewChild,
702
- args: [i2$1.FsListComponent]
847
+ args: [i2$2.FsListComponent]
703
848
  }] } });
704
849
 
705
850
  var FsContentPagesModule = /** @class */ (function () {
@@ -714,68 +859,72 @@
714
859
  }());
715
860
  FsContentPagesModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
716
861
  FsContentPagesModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesModule, declarations: [FsContentPagesComponent,
717
- ContentPageComponent], imports: [i10$1.CommonModule,
718
- i7$1.FormsModule,
862
+ ContentPageComponent,
863
+ ContentPageEditorComponent], imports: [i10.CommonModule,
864
+ i7.FormsModule,
719
865
  i1.MatDialogModule,
720
- i8$1.MatInputModule,
721
- i4$1.MatFormFieldModule,
722
- i4.MatButtonModule,
866
+ i8$2.MatInputModule,
867
+ i4$2.MatFormFieldModule,
868
+ i4$1.MatButtonModule,
723
869
  tabs.MatTabsModule,
724
870
  i5.MatIconModule,
725
- i5$2.MatSelectModule,
726
- i10.MatButtonToggleModule,
727
- i2$1.FsListModule,
728
- i3$1.FsDateModule,
729
- i5$1.FsFormModule,
730
- i7.FsLabelModule,
731
- i13.FsSkeletonModule,
871
+ i5$1.MatSelectModule,
872
+ i8$1.MatButtonToggleModule,
873
+ i2$2.FsListModule,
874
+ i3$2.FsDateModule,
875
+ i7$2.FsCommonModule,
876
+ i7$1.FsFormModule,
877
+ i3.FsLabelModule,
878
+ i8.FsSkeletonModule,
732
879
  htmlEditor.FsHtmlEditorModule,
733
- i3.FsDialogModule,
734
- i8.FsTextEditorModule,
880
+ i3$1.FsDialogModule,
881
+ i4.FsTextEditorModule,
735
882
  FsContentEditorModule], exports: [FsContentPagesComponent] });
736
883
  FsContentPagesModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesModule, imports: [[
737
- i10$1.CommonModule,
738
- i7$1.FormsModule,
884
+ i10.CommonModule,
885
+ i7.FormsModule,
739
886
  i1.MatDialogModule,
740
- i8$1.MatInputModule,
741
- i4$1.MatFormFieldModule,
742
- i4.MatButtonModule,
887
+ i8$2.MatInputModule,
888
+ i4$2.MatFormFieldModule,
889
+ i4$1.MatButtonModule,
743
890
  tabs.MatTabsModule,
744
891
  i5.MatIconModule,
745
- i5$2.MatSelectModule,
746
- i10.MatButtonToggleModule,
747
- i2$1.FsListModule,
748
- i3$1.FsDateModule,
749
- i5$1.FsFormModule,
750
- i7.FsLabelModule,
751
- i13.FsSkeletonModule,
892
+ i5$1.MatSelectModule,
893
+ i8$1.MatButtonToggleModule,
894
+ i2$2.FsListModule,
895
+ i3$2.FsDateModule,
896
+ i7$2.FsCommonModule,
897
+ i7$1.FsFormModule,
898
+ i3.FsLabelModule,
899
+ i8.FsSkeletonModule,
752
900
  htmlEditor.FsHtmlEditorModule,
753
- i3.FsDialogModule,
754
- i8.FsTextEditorModule,
901
+ i3$1.FsDialogModule,
902
+ i4.FsTextEditorModule,
755
903
  FsContentEditorModule,
756
904
  ]] });
757
905
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesModule, decorators: [{
758
906
  type: i0.NgModule,
759
907
  args: [{
760
908
  imports: [
761
- i10$1.CommonModule,
762
- i7$1.FormsModule,
909
+ i10.CommonModule,
910
+ i7.FormsModule,
763
911
  i1.MatDialogModule,
764
- i8$1.MatInputModule,
765
- i4$1.MatFormFieldModule,
766
- i4.MatButtonModule,
912
+ i8$2.MatInputModule,
913
+ i4$2.MatFormFieldModule,
914
+ i4$1.MatButtonModule,
767
915
  tabs.MatTabsModule,
768
916
  i5.MatIconModule,
769
- i5$2.MatSelectModule,
770
- i10.MatButtonToggleModule,
771
- i2$1.FsListModule,
772
- i3$1.FsDateModule,
773
- i5$1.FsFormModule,
774
- i7.FsLabelModule,
775
- i13.FsSkeletonModule,
917
+ i5$1.MatSelectModule,
918
+ i8$1.MatButtonToggleModule,
919
+ i2$2.FsListModule,
920
+ i3$2.FsDateModule,
921
+ i7$2.FsCommonModule,
922
+ i7$1.FsFormModule,
923
+ i3.FsLabelModule,
924
+ i8.FsSkeletonModule,
776
925
  htmlEditor.FsHtmlEditorModule,
777
- i3.FsDialogModule,
778
- i8.FsTextEditorModule,
926
+ i3$1.FsDialogModule,
927
+ i4.FsTextEditorModule,
779
928
  FsContentEditorModule,
780
929
  ],
781
930
  exports: [
@@ -784,6 +933,7 @@
784
933
  declarations: [
785
934
  FsContentPagesComponent,
786
935
  ContentPageComponent,
936
+ ContentPageEditorComponent,
787
937
  ],
788
938
  }]
789
939
  }] });
@@ -827,7 +977,7 @@
827
977
  return ContentStyleComponent;
828
978
  }());
829
979
  ContentStyleComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentStyleComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i2__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
830
- ContentStyleComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentStyleComponent, selector: "fs-content-style", inputs: { height: "height" }, viewQueries: [{ propertyName: "textEditors", first: true, predicate: i8.FsTextEditorComponent, descendants: true }, { propertyName: "form", first: true, predicate: i5$1.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""], components: [{ type: i8__namespace.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i13__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i12__namespace.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
980
+ ContentStyleComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentStyleComponent, selector: "fs-content-style", inputs: { height: "height" }, viewQueries: [{ propertyName: "textEditors", first: true, predicate: i4.FsTextEditorComponent, descendants: true }, { propertyName: "form", first: true, predicate: i7$1.FsFormDirective, descendants: true }], ngImport: i0__namespace, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""], components: [{ type: i4__namespace.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace$2.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
831
981
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentStyleComponent, decorators: [{
832
982
  type: i0.Component,
833
983
  args: [{
@@ -843,10 +993,10 @@
843
993
  }] }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
844
994
  }, propDecorators: { textEditors: [{
845
995
  type: i0.ViewChild,
846
- args: [i8.FsTextEditorComponent]
996
+ args: [i4.FsTextEditorComponent]
847
997
  }], form: [{
848
998
  type: i0.ViewChild,
849
- args: [i5$1.FsFormDirective]
999
+ args: [i7$1.FsFormDirective]
850
1000
  }], height: [{
851
1001
  type: i0.Input
852
1002
  }] } });
@@ -857,32 +1007,32 @@
857
1007
  return FsContentStyleModule;
858
1008
  }());
859
1009
  FsContentStyleModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
860
- FsContentStyleModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, declarations: [ContentStyleComponent], imports: [i10$1.CommonModule,
861
- i7$1.FormsModule,
862
- i4.MatButtonModule,
863
- i8.FsTextEditorModule,
864
- i13.FsSkeletonModule,
865
- i12.FsCommonModule,
1010
+ FsContentStyleModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, declarations: [ContentStyleComponent], imports: [i10.CommonModule,
1011
+ i7.FormsModule,
1012
+ i4$1.MatButtonModule,
1013
+ i4.FsTextEditorModule,
1014
+ i8.FsSkeletonModule,
1015
+ i7$2.FsCommonModule,
866
1016
  FsContentEditorModule], exports: [ContentStyleComponent] });
867
1017
  FsContentStyleModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, imports: [[
868
- i10$1.CommonModule,
869
- i7$1.FormsModule,
870
- i4.MatButtonModule,
871
- i8.FsTextEditorModule,
872
- i13.FsSkeletonModule,
873
- i12.FsCommonModule,
1018
+ i10.CommonModule,
1019
+ i7.FormsModule,
1020
+ i4$1.MatButtonModule,
1021
+ i4.FsTextEditorModule,
1022
+ i8.FsSkeletonModule,
1023
+ i7$2.FsCommonModule,
874
1024
  FsContentEditorModule,
875
1025
  ]] });
876
1026
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, decorators: [{
877
1027
  type: i0.NgModule,
878
1028
  args: [{
879
1029
  imports: [
880
- i10$1.CommonModule,
881
- i7$1.FormsModule,
882
- i4.MatButtonModule,
883
- i8.FsTextEditorModule,
884
- i13.FsSkeletonModule,
885
- i12.FsCommonModule,
1030
+ i10.CommonModule,
1031
+ i7.FormsModule,
1032
+ i4$1.MatButtonModule,
1033
+ i4.FsTextEditorModule,
1034
+ i8.FsSkeletonModule,
1035
+ i7$2.FsCommonModule,
886
1036
  FsContentEditorModule,
887
1037
  ],
888
1038
  exports: [
@@ -950,8 +1100,8 @@
950
1100
  };
951
1101
  return ContentRendererComponent;
952
1102
  }());
953
- ContentRendererComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentRendererComponent, deps: [{ token: i1__namespace$1.DomSanitizer }, { token: i2__namespace$2.Router }, { token: i0__namespace.ElementRef }, { token: i3__namespace$2.HtmlRenderer }], target: i0__namespace.ɵɵFactoryTarget.Component });
954
- ContentRendererComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentRendererComponent, selector: "fs-content-renderer", inputs: { contentPage: "contentPage" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["script"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>", styles: [""], directives: [{ type: i10__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1103
+ ContentRendererComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentRendererComponent, deps: [{ token: i1__namespace$1.DomSanitizer }, { token: i2__namespace$3.Router }, { token: i0__namespace.ElementRef }, { token: i3__namespace$3.HtmlRenderer }], target: i0__namespace.ɵɵFactoryTarget.Component });
1104
+ ContentRendererComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentRendererComponent, selector: "fs-content-renderer", inputs: { contentPage: "contentPage" }, viewQueries: [{ propertyName: "script", first: true, predicate: ["script"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>", styles: [""], directives: [{ type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
955
1105
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentRendererComponent, decorators: [{
956
1106
  type: i0.Component,
957
1107
  args: [{
@@ -960,7 +1110,7 @@
960
1110
  styleUrls: ['./content-renderer.component.scss'],
961
1111
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
962
1112
  }]
963
- }], ctorParameters: function () { return [{ type: i1__namespace$1.DomSanitizer }, { type: i2__namespace$2.Router }, { type: i0__namespace.ElementRef }, { type: i3__namespace$2.HtmlRenderer }]; }, propDecorators: { script: [{
1113
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.DomSanitizer }, { type: i2__namespace$3.Router }, { type: i0__namespace.ElementRef }, { type: i3__namespace$3.HtmlRenderer }]; }, propDecorators: { script: [{
964
1114
  type: i0.ViewChild,
965
1115
  args: ['script', { read: i0.ElementRef }]
966
1116
  }], contentPage: [{
@@ -1006,7 +1156,7 @@
1006
1156
  var _this = this;
1007
1157
  this._loadContent();
1008
1158
  this._router.events
1009
- .pipe(operators.filter(function (e) { return e instanceof i2$2.NavigationEnd; }), operators.takeUntil(this._destroy$))
1159
+ .pipe(operators.filter(function (e) { return e instanceof i2$3.NavigationEnd; }), operators.takeUntil(this._destroy$))
1010
1160
  .subscribe(function (e) {
1011
1161
  _this._loadContent();
1012
1162
  });
@@ -1032,8 +1182,8 @@
1032
1182
  };
1033
1183
  return FsContentComponent;
1034
1184
  }());
1035
- FsContentComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1__namespace$1.Title }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace$2.Router }, { token: i0__namespace.ElementRef }, { token: i3__namespace$2.HtmlRenderer }], target: i0__namespace.ɵɵFactoryTarget.Component });
1036
- FsContentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentComponent, selector: "fs-content", ngImport: i0__namespace, template: "<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>", styles: [""], components: [{ type: ContentRendererComponent, selector: "fs-content-renderer", inputs: ["contentPage"] }], directives: [{ type: i10__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1185
+ FsContentComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1__namespace$1.Title }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace$3.Router }, { token: i0__namespace.ElementRef }, { token: i3__namespace$3.HtmlRenderer }], target: i0__namespace.ɵɵFactoryTarget.Component });
1186
+ FsContentComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentComponent, selector: "fs-content", ngImport: i0__namespace, template: "<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>", styles: [""], components: [{ type: ContentRendererComponent, selector: "fs-content-renderer", inputs: ["contentPage"] }], directives: [{ type: i10__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1037
1187
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentComponent, decorators: [{
1038
1188
  type: i0.Component,
1039
1189
  args: [{
@@ -1046,7 +1196,7 @@
1046
1196
  return [{ type: undefined, decorators: [{
1047
1197
  type: i0.Inject,
1048
1198
  args: [FS_CONTENT_CONFIG]
1049
- }] }, { type: i1__namespace$1.Title }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace$2.Router }, { type: i0__namespace.ElementRef }, { type: i3__namespace$2.HtmlRenderer }];
1199
+ }] }, { type: i1__namespace$1.Title }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace$3.Router }, { type: i0__namespace.ElementRef }, { type: i3__namespace$3.HtmlRenderer }];
1050
1200
  } });
1051
1201
 
1052
1202
  var FsContentModule = /** @class */ (function () {
@@ -1056,17 +1206,17 @@
1056
1206
  }());
1057
1207
  FsContentModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1058
1208
  FsContentModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, declarations: [FsContentComponent,
1059
- ContentRendererComponent], imports: [i10$1.CommonModule,
1209
+ ContentRendererComponent], imports: [i10.CommonModule,
1060
1210
  htmlEditor.FsHtmlEditorModule], exports: [FsContentComponent] });
1061
1211
  FsContentModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, imports: [[
1062
- i10$1.CommonModule,
1212
+ i10.CommonModule,
1063
1213
  htmlEditor.FsHtmlEditorModule,
1064
1214
  ]] });
1065
1215
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, decorators: [{
1066
1216
  type: i0.NgModule,
1067
1217
  args: [{
1068
1218
  imports: [
1069
- i10$1.CommonModule,
1219
+ i10.CommonModule,
1070
1220
  htmlEditor.FsHtmlEditorModule,
1071
1221
  ],
1072
1222
  exports: [