@firestitch/content 12.2.4 → 12.2.6

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 +397 -251
  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 +95 -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 +99 -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 +4 -11
  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 +243 -105
  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,94 @@
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 () {
323
+ _this._message.success('Saved Changes');
324
+ }))
325
+ .subscribe();
326
+ };
327
+ ContentLayoutEditorComponent.prototype.openSettings = function () {
328
+ var _this = this;
329
+ this._dialog.open(ContentLayoutComponent, {
330
+ data: {
331
+ contentLayout: this.contentLayout,
332
+ },
333
+ })
334
+ .afterClosed()
335
+ .pipe(operators.takeUntil(this._destroy$))
336
+ .subscribe(function (contentLayout) {
337
+ _this.contentLayout = Object.assign(Object.assign({}, _this.contentLayout), contentLayout);
338
+ _this._cdRef.markForCheck();
339
+ });
340
+ };
341
+ return ContentLayoutEditorComponent;
342
+ }());
343
+ 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 });
344
+ 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 });
345
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentLayoutEditorComponent, decorators: [{
346
+ type: i0.Component,
347
+ args: [{
348
+ templateUrl: './content-layout-editor.component.html',
349
+ styleUrls: ['./content-layout-editor.component.scss'],
350
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
351
+ }]
352
+ }], ctorParameters: function () {
353
+ return [{ type: undefined, decorators: [{
354
+ type: i0.Inject,
355
+ args: [i1.MAT_DIALOG_DATA]
356
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i1__namespace.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
357
+ } });
358
+
295
359
  var FsContentLayoutsComponent = /** @class */ (function () {
296
360
  function FsContentLayoutsComponent(_config, _dialog) {
297
361
  this._config = _config;
@@ -303,20 +367,13 @@
303
367
  };
304
368
  FsContentLayoutsComponent.prototype.openEditor = function (contentLayout) {
305
369
  var _this = this;
306
- this._dialog.open(EditorComponent, {
370
+ this._dialog.open(ContentLayoutEditorComponent, {
307
371
  maxWidth: '100vw',
308
372
  width: '100%',
309
373
  height: '100%',
310
374
  data: {
311
- contentPage: contentLayout,
312
- title: 'Layout',
375
+ contentLayout: contentLayout,
313
376
  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
377
  },
321
378
  })
322
379
  .afterClosed()
@@ -393,7 +450,7 @@
393
450
  return FsContentLayoutsComponent;
394
451
  }());
395
452
  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 });
453
+ 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
454
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsComponent, decorators: [{
398
455
  type: i0.Component,
399
456
  args: [{
@@ -409,7 +466,7 @@
409
466
  }] }, { type: i1__namespace.MatDialog }];
410
467
  }, propDecorators: { listComponent: [{
411
468
  type: i0.ViewChild,
412
- args: [i2$1.FsListComponent]
469
+ args: [i2$2.FsListComponent]
413
470
  }] } });
414
471
 
415
472
  var FsContentLayoutsModule = /** @class */ (function () {
@@ -419,68 +476,69 @@
419
476
  }());
420
477
  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
478
  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,
479
+ FsContentLayoutsComponent,
480
+ ContentLayoutEditorComponent], imports: [i10.CommonModule,
481
+ i7.FormsModule,
424
482
  i1.MatDialogModule,
425
- i8$1.MatInputModule,
426
- i4$1.MatFormFieldModule,
427
- i4.MatButtonModule,
483
+ i8$2.MatInputModule,
484
+ i4$2.MatFormFieldModule,
485
+ i4$1.MatButtonModule,
428
486
  tabs.MatTabsModule,
429
487
  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,
488
+ i5$1.MatSelectModule,
489
+ i8$1.MatButtonToggleModule,
490
+ i2$2.FsListModule,
491
+ i3$2.FsDateModule,
492
+ i7$1.FsFormModule,
493
+ i3.FsLabelModule,
494
+ i8.FsSkeletonModule,
437
495
  htmlEditor.FsHtmlEditorModule,
438
- i3.FsDialogModule,
439
- i8.FsTextEditorModule,
496
+ i3$1.FsDialogModule,
497
+ i4.FsTextEditorModule,
440
498
  FsContentEditorModule], exports: [FsContentLayoutsComponent] });
441
499
  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,
500
+ i10.CommonModule,
501
+ i7.FormsModule,
444
502
  i1.MatDialogModule,
445
- i8$1.MatInputModule,
446
- i4$1.MatFormFieldModule,
447
- i4.MatButtonModule,
503
+ i8$2.MatInputModule,
504
+ i4$2.MatFormFieldModule,
505
+ i4$1.MatButtonModule,
448
506
  tabs.MatTabsModule,
449
507
  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,
508
+ i5$1.MatSelectModule,
509
+ i8$1.MatButtonToggleModule,
510
+ i2$2.FsListModule,
511
+ i3$2.FsDateModule,
512
+ i7$1.FsFormModule,
513
+ i3.FsLabelModule,
514
+ i8.FsSkeletonModule,
457
515
  htmlEditor.FsHtmlEditorModule,
458
- i3.FsDialogModule,
459
- i8.FsTextEditorModule,
516
+ i3$1.FsDialogModule,
517
+ i4.FsTextEditorModule,
460
518
  FsContentEditorModule,
461
519
  ]] });
462
520
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentLayoutsModule, decorators: [{
463
521
  type: i0.NgModule,
464
522
  args: [{
465
523
  imports: [
466
- i10$1.CommonModule,
467
- i7$1.FormsModule,
524
+ i10.CommonModule,
525
+ i7.FormsModule,
468
526
  i1.MatDialogModule,
469
- i8$1.MatInputModule,
470
- i4$1.MatFormFieldModule,
471
- i4.MatButtonModule,
527
+ i8$2.MatInputModule,
528
+ i4$2.MatFormFieldModule,
529
+ i4$1.MatButtonModule,
472
530
  tabs.MatTabsModule,
473
531
  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,
532
+ i5$1.MatSelectModule,
533
+ i8$1.MatButtonToggleModule,
534
+ i2$2.FsListModule,
535
+ i3$2.FsDateModule,
536
+ i7$1.FsFormModule,
537
+ i3.FsLabelModule,
538
+ i8.FsSkeletonModule,
481
539
  htmlEditor.FsHtmlEditorModule,
482
- i3.FsDialogModule,
483
- i8.FsTextEditorModule,
540
+ i3$1.FsDialogModule,
541
+ i4.FsTextEditorModule,
484
542
  FsContentEditorModule,
485
543
  ],
486
544
  exports: [
@@ -489,6 +547,7 @@
489
547
  declarations: [
490
548
  ContentLayoutComponent,
491
549
  FsContentLayoutsComponent,
550
+ ContentLayoutEditorComponent,
492
551
  ],
493
552
  }]
494
553
  }] });
@@ -555,7 +614,7 @@
555
614
  return ContentPageComponent;
556
615
  }());
557
616
  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 });
617
+ 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
618
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageComponent, decorators: [{
560
619
  type: i0.Component,
561
620
  args: [{
@@ -573,14 +632,103 @@
573
632
  }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
574
633
  }, propDecorators: { textEditors: [{
575
634
  type: i0.ViewChildren,
576
- args: [i8.FsTextEditorComponent]
635
+ args: [i4.FsTextEditorComponent]
577
636
  }] } });
578
637
 
638
+ var ContentPageEditorComponent = /** @class */ (function () {
639
+ function ContentPageEditorComponent(_data, _dialogRef, _message, _dialog, _cdRef) {
640
+ this._data = _data;
641
+ this._dialogRef = _dialogRef;
642
+ this._message = _message;
643
+ this._dialog = _dialog;
644
+ this._cdRef = _cdRef;
645
+ this.resizing = false;
646
+ this.editors = {
647
+ html: true,
648
+ scss: true,
649
+ js: false,
650
+ globalScss: false,
651
+ };
652
+ this._destroy$ = new rxjs.Subject();
653
+ }
654
+ ContentPageEditorComponent.prototype.ngOnInit = function () {
655
+ this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
656
+ this.config = this._data.contentConfig;
657
+ this._initContentPage(this._data.contentPage);
658
+ };
659
+ ContentPageEditorComponent.prototype.editorToggleChange = function (event) {
660
+ this.editors[event.value] = !this.editors[event.value];
661
+ };
662
+ ContentPageEditorComponent.prototype.ngOnDestroy = function () {
663
+ this._destroy$.next();
664
+ this._destroy$.complete();
665
+ };
666
+ ContentPageEditorComponent.prototype._initContentPage = function (contentPage) {
667
+ var _this = this;
668
+ this.config.loadContentPage(contentPage.id)
669
+ .subscribe(function (data) {
670
+ _this.contentPage = data;
671
+ _this._cdRef.markForCheck();
672
+ });
673
+ };
674
+ ContentPageEditorComponent.prototype.editorChanged = function (event) {
675
+ var data = {};
676
+ if (event.type === 'js') {
677
+ data.js = event.value;
678
+ }
679
+ if (event.type === 'html') {
680
+ data.content = event.value;
681
+ }
682
+ if (event.type === 'scss') {
683
+ data.styles = event.value;
684
+ }
685
+ this.saveContentPage(data);
686
+ };
687
+ ContentPageEditorComponent.prototype.saveContentPage = function (data) {
688
+ var _this = this;
689
+ this.config.saveContentPage(Object.assign({ id: this.contentPage.id }, data))
690
+ .pipe(operators.tap(function () {
691
+ _this._message.success('Saved Changes');
692
+ }))
693
+ .subscribe();
694
+ };
695
+ ContentPageEditorComponent.prototype.openSettings = function () {
696
+ var _this = this;
697
+ this._dialog.open(ContentPageComponent, {
698
+ data: {
699
+ contentPage: this.contentPage,
700
+ },
701
+ })
702
+ .afterClosed()
703
+ .pipe(operators.takeUntil(this._destroy$))
704
+ .subscribe(function (contentPage) {
705
+ _this.contentPage = Object.assign(Object.assign({}, _this.contentPage), contentPage);
706
+ _this._cdRef.markForCheck();
707
+ });
708
+ };
709
+ return ContentPageEditorComponent;
710
+ }());
711
+ 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 });
712
+ 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 });
713
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageEditorComponent, decorators: [{
714
+ type: i0.Component,
715
+ args: [{
716
+ templateUrl: './content-page-editor.component.html',
717
+ styleUrls: ['./content-page-editor.component.scss'],
718
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
719
+ }]
720
+ }], ctorParameters: function () {
721
+ return [{ type: undefined, decorators: [{
722
+ type: i0.Inject,
723
+ args: [i1.MAT_DIALOG_DATA]
724
+ }] }, { type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: i1__namespace.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
725
+ } });
726
+
579
727
  var FsContentPagesComponent = /** @class */ (function () {
580
728
  function FsContentPagesComponent(_config, _dialog) {
581
729
  this._config = _config;
582
730
  this._dialog = _dialog;
583
- this.pageTypes = i12.index(PageTypes, 'value', 'name');
731
+ this.pageTypes = i7$2.index(PageTypes, 'value', 'name');
584
732
  this._destroy$ = new rxjs.Subject();
585
733
  }
586
734
  FsContentPagesComponent.prototype.ngOnInit = function () {
@@ -588,18 +736,11 @@
588
736
  };
589
737
  FsContentPagesComponent.prototype.openEditor = function (contentPage) {
590
738
  var _this = this;
591
- this._dialog.open(EditorComponent, {
739
+ this._dialog.open(ContentPageEditorComponent, {
592
740
  data: {
593
741
  contentPage: contentPage,
594
742
  config: this._config,
595
- title: 'Page',
596
743
  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
744
  },
604
745
  maxWidth: '100vw',
605
746
  width: '100%',
@@ -607,7 +748,7 @@
607
748
  autoFocus: false,
608
749
  })
609
750
  .afterClosed()
610
- .pipe(operators.filter(function (_contentPage) { return !!_contentPage; }), operators.takeUntil(this._destroy$))
751
+ .pipe(operators.takeUntil(this._destroy$))
611
752
  .subscribe(function () {
612
753
  _this.listComponent.reload();
613
754
  });
@@ -681,7 +822,7 @@
681
822
  return FsContentPagesComponent;
682
823
  }());
683
824
  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 });
825
+ 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
826
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesComponent, decorators: [{
686
827
  type: i0.Component,
687
828
  args: [{
@@ -699,7 +840,7 @@
699
840
  type: i0.Input
700
841
  }], listComponent: [{
701
842
  type: i0.ViewChild,
702
- args: [i2$1.FsListComponent]
843
+ args: [i2$2.FsListComponent]
703
844
  }] } });
704
845
 
705
846
  var FsContentPagesModule = /** @class */ (function () {
@@ -714,68 +855,72 @@
714
855
  }());
715
856
  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
857
  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,
858
+ ContentPageComponent,
859
+ ContentPageEditorComponent], imports: [i10.CommonModule,
860
+ i7.FormsModule,
719
861
  i1.MatDialogModule,
720
- i8$1.MatInputModule,
721
- i4$1.MatFormFieldModule,
722
- i4.MatButtonModule,
862
+ i8$2.MatInputModule,
863
+ i4$2.MatFormFieldModule,
864
+ i4$1.MatButtonModule,
723
865
  tabs.MatTabsModule,
724
866
  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,
867
+ i5$1.MatSelectModule,
868
+ i8$1.MatButtonToggleModule,
869
+ i2$2.FsListModule,
870
+ i3$2.FsDateModule,
871
+ i7$2.FsCommonModule,
872
+ i7$1.FsFormModule,
873
+ i3.FsLabelModule,
874
+ i8.FsSkeletonModule,
732
875
  htmlEditor.FsHtmlEditorModule,
733
- i3.FsDialogModule,
734
- i8.FsTextEditorModule,
876
+ i3$1.FsDialogModule,
877
+ i4.FsTextEditorModule,
735
878
  FsContentEditorModule], exports: [FsContentPagesComponent] });
736
879
  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,
880
+ i10.CommonModule,
881
+ i7.FormsModule,
739
882
  i1.MatDialogModule,
740
- i8$1.MatInputModule,
741
- i4$1.MatFormFieldModule,
742
- i4.MatButtonModule,
883
+ i8$2.MatInputModule,
884
+ i4$2.MatFormFieldModule,
885
+ i4$1.MatButtonModule,
743
886
  tabs.MatTabsModule,
744
887
  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,
888
+ i5$1.MatSelectModule,
889
+ i8$1.MatButtonToggleModule,
890
+ i2$2.FsListModule,
891
+ i3$2.FsDateModule,
892
+ i7$2.FsCommonModule,
893
+ i7$1.FsFormModule,
894
+ i3.FsLabelModule,
895
+ i8.FsSkeletonModule,
752
896
  htmlEditor.FsHtmlEditorModule,
753
- i3.FsDialogModule,
754
- i8.FsTextEditorModule,
897
+ i3$1.FsDialogModule,
898
+ i4.FsTextEditorModule,
755
899
  FsContentEditorModule,
756
900
  ]] });
757
901
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentPagesModule, decorators: [{
758
902
  type: i0.NgModule,
759
903
  args: [{
760
904
  imports: [
761
- i10$1.CommonModule,
762
- i7$1.FormsModule,
905
+ i10.CommonModule,
906
+ i7.FormsModule,
763
907
  i1.MatDialogModule,
764
- i8$1.MatInputModule,
765
- i4$1.MatFormFieldModule,
766
- i4.MatButtonModule,
908
+ i8$2.MatInputModule,
909
+ i4$2.MatFormFieldModule,
910
+ i4$1.MatButtonModule,
767
911
  tabs.MatTabsModule,
768
912
  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,
913
+ i5$1.MatSelectModule,
914
+ i8$1.MatButtonToggleModule,
915
+ i2$2.FsListModule,
916
+ i3$2.FsDateModule,
917
+ i7$2.FsCommonModule,
918
+ i7$1.FsFormModule,
919
+ i3.FsLabelModule,
920
+ i8.FsSkeletonModule,
776
921
  htmlEditor.FsHtmlEditorModule,
777
- i3.FsDialogModule,
778
- i8.FsTextEditorModule,
922
+ i3$1.FsDialogModule,
923
+ i4.FsTextEditorModule,
779
924
  FsContentEditorModule,
780
925
  ],
781
926
  exports: [
@@ -784,6 +929,7 @@
784
929
  declarations: [
785
930
  FsContentPagesComponent,
786
931
  ContentPageComponent,
932
+ ContentPageEditorComponent,
787
933
  ],
788
934
  }]
789
935
  }] });
@@ -827,7 +973,7 @@
827
973
  return ContentStyleComponent;
828
974
  }());
829
975
  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 });
976
+ 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
977
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentStyleComponent, decorators: [{
832
978
  type: i0.Component,
833
979
  args: [{
@@ -843,10 +989,10 @@
843
989
  }] }, { type: i2__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
844
990
  }, propDecorators: { textEditors: [{
845
991
  type: i0.ViewChild,
846
- args: [i8.FsTextEditorComponent]
992
+ args: [i4.FsTextEditorComponent]
847
993
  }], form: [{
848
994
  type: i0.ViewChild,
849
- args: [i5$1.FsFormDirective]
995
+ args: [i7$1.FsFormDirective]
850
996
  }], height: [{
851
997
  type: i0.Input
852
998
  }] } });
@@ -857,32 +1003,32 @@
857
1003
  return FsContentStyleModule;
858
1004
  }());
859
1005
  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,
1006
+ FsContentStyleModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, declarations: [ContentStyleComponent], imports: [i10.CommonModule,
1007
+ i7.FormsModule,
1008
+ i4$1.MatButtonModule,
1009
+ i4.FsTextEditorModule,
1010
+ i8.FsSkeletonModule,
1011
+ i7$2.FsCommonModule,
866
1012
  FsContentEditorModule], exports: [ContentStyleComponent] });
867
1013
  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,
1014
+ i10.CommonModule,
1015
+ i7.FormsModule,
1016
+ i4$1.MatButtonModule,
1017
+ i4.FsTextEditorModule,
1018
+ i8.FsSkeletonModule,
1019
+ i7$2.FsCommonModule,
874
1020
  FsContentEditorModule,
875
1021
  ]] });
876
1022
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentStyleModule, decorators: [{
877
1023
  type: i0.NgModule,
878
1024
  args: [{
879
1025
  imports: [
880
- i10$1.CommonModule,
881
- i7$1.FormsModule,
882
- i4.MatButtonModule,
883
- i8.FsTextEditorModule,
884
- i13.FsSkeletonModule,
885
- i12.FsCommonModule,
1026
+ i10.CommonModule,
1027
+ i7.FormsModule,
1028
+ i4$1.MatButtonModule,
1029
+ i4.FsTextEditorModule,
1030
+ i8.FsSkeletonModule,
1031
+ i7$2.FsCommonModule,
886
1032
  FsContentEditorModule,
887
1033
  ],
888
1034
  exports: [
@@ -950,8 +1096,8 @@
950
1096
  };
951
1097
  return ContentRendererComponent;
952
1098
  }());
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 });
1099
+ 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 });
1100
+ 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
1101
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentRendererComponent, decorators: [{
956
1102
  type: i0.Component,
957
1103
  args: [{
@@ -960,7 +1106,7 @@
960
1106
  styleUrls: ['./content-renderer.component.scss'],
961
1107
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
962
1108
  }]
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: [{
1109
+ }], 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
1110
  type: i0.ViewChild,
965
1111
  args: ['script', { read: i0.ElementRef }]
966
1112
  }], contentPage: [{
@@ -1006,7 +1152,7 @@
1006
1152
  var _this = this;
1007
1153
  this._loadContent();
1008
1154
  this._router.events
1009
- .pipe(operators.filter(function (e) { return e instanceof i2$2.NavigationEnd; }), operators.takeUntil(this._destroy$))
1155
+ .pipe(operators.filter(function (e) { return e instanceof i2$3.NavigationEnd; }), operators.takeUntil(this._destroy$))
1010
1156
  .subscribe(function (e) {
1011
1157
  _this._loadContent();
1012
1158
  });
@@ -1032,8 +1178,8 @@
1032
1178
  };
1033
1179
  return FsContentComponent;
1034
1180
  }());
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 });
1181
+ 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 });
1182
+ 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
1183
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentComponent, decorators: [{
1038
1184
  type: i0.Component,
1039
1185
  args: [{
@@ -1046,7 +1192,7 @@
1046
1192
  return [{ type: undefined, decorators: [{
1047
1193
  type: i0.Inject,
1048
1194
  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 }];
1195
+ }] }, { type: i1__namespace$1.Title }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace$3.Router }, { type: i0__namespace.ElementRef }, { type: i3__namespace$3.HtmlRenderer }];
1050
1196
  } });
1051
1197
 
1052
1198
  var FsContentModule = /** @class */ (function () {
@@ -1056,17 +1202,17 @@
1056
1202
  }());
1057
1203
  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
1204
  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,
1205
+ ContentRendererComponent], imports: [i10.CommonModule,
1060
1206
  htmlEditor.FsHtmlEditorModule], exports: [FsContentComponent] });
1061
1207
  FsContentModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, imports: [[
1062
- i10$1.CommonModule,
1208
+ i10.CommonModule,
1063
1209
  htmlEditor.FsHtmlEditorModule,
1064
1210
  ]] });
1065
1211
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentModule, decorators: [{
1066
1212
  type: i0.NgModule,
1067
1213
  args: [{
1068
1214
  imports: [
1069
- i10$1.CommonModule,
1215
+ i10.CommonModule,
1070
1216
  htmlEditor.FsHtmlEditorModule,
1071
1217
  ],
1072
1218
  exports: [