@firestitch/content 12.3.2 → 12.3.3
Sign up to get free protection for your applications and to get access to all the features.
- package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts +2 -1
- package/bundles/firestitch-content.umd.js +15 -9
- package/bundles/firestitch-content.umd.js.map +1 -1
- package/esm2015/app/modules/content-pages/components/content-page-editor/content-page-editor.component.js +14 -9
- package/fesm2015/firestitch-content.js +12 -6
- package/fesm2015/firestitch-content.js.map +1 -1
- package/package.json +1 -1
package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts
CHANGED
@@ -32,6 +32,7 @@ export declare class ContentPageEditorComponent implements OnInit, OnDestroy {
|
|
32
32
|
globalScss: boolean;
|
33
33
|
};
|
34
34
|
get isMac(): boolean;
|
35
|
+
submitting: boolean;
|
35
36
|
private _destroy$;
|
36
37
|
constructor(_data: {
|
37
38
|
contentPage: any;
|
@@ -42,7 +43,7 @@ export declare class ContentPageEditorComponent implements OnInit, OnDestroy {
|
|
42
43
|
ngOnDestroy(): void;
|
43
44
|
_initContentPage(contentPage: any): void;
|
44
45
|
editorFocused(type: any): void;
|
45
|
-
save: () => import("rxjs").
|
46
|
+
save: () => import("rxjs").Subscription;
|
46
47
|
saveContentPage(): import("rxjs").Observable<import("../../../../interfaces").FsContentPage>;
|
47
48
|
close(): void;
|
48
49
|
openSettings(): void;
|
@@ -2,7 +2,7 @@
|
|
2
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('rxjs/operators'), require('@firestitch/message'), require('@firestitch/prompt'), require('@firestitch/filter'), require('@angular/material/tooltip'), require('@angular/material/core'), require('@angular/router'), require('@angular/platform-browser'), require('@firestitch/html')) :
|
3
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', 'rxjs/operators', '@firestitch/message', '@firestitch/prompt', '@firestitch/filter', '@angular/material/tooltip', '@angular/material/core', '@angular/router', '@angular/platform-browser', '@firestitch/html'], factory) :
|
4
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, global.i5, global.htmlEditor, global.label, global.i2$2, global.i8, global.i4, global.i7, global.i2$1, global.rxjs, global.rxjs.operators, global.i2, global.i3$1, global.filter, global.ng.material.tooltip, global.ng.material.core, global.ng.router, global.ng.platformBrowser, global.i3$3));
|
5
|
-
})(this, (function (exports, i1, i0, i9, i5$1, i8$1, i1$1, i4$1, i6, i8$2, i5$2, tabs, i3$2, i3, i5, htmlEditor, label, i2$2, i8, i4, i7, i2$1, rxjs, operators, i2, i3$1, filter,
|
5
|
+
})(this, (function (exports, i1, i0, i9, i5$1, i8$1, i1$1, i4$1, i6, i8$2, i5$2, tabs, i3$2, i3, i5, htmlEditor, label, i2$2, i8, i4, i7, i2$1, rxjs, operators, i2, i3$1, filter, i11, i6$1, i2$3, i1$2, i3$3) { 'use strict';
|
6
6
|
|
7
7
|
function _interopNamespace(e) {
|
8
8
|
if (e && e.__esModule) return e;
|
@@ -42,7 +42,7 @@
|
|
42
42
|
var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
|
43
43
|
var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
|
44
44
|
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
|
45
|
-
var
|
45
|
+
var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
|
46
46
|
var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
|
47
47
|
var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
|
48
48
|
var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
|
@@ -806,8 +806,9 @@
|
|
806
806
|
_a);
|
807
807
|
this._destroy$ = new rxjs.Subject();
|
808
808
|
this.save = function () {
|
809
|
+
_this.submitting = true;
|
809
810
|
return rxjs.of(null)
|
810
|
-
.pipe(operators.filter(function () { return _this.focused; }), operators.switchMap(function () {
|
811
|
+
.pipe(operators.filter(function () { return _this.focused; }), operators.delay(3000), operators.switchMap(function () {
|
811
812
|
switch (_this.focused) {
|
812
813
|
case EditorType.Js:
|
813
814
|
case EditorType.Html:
|
@@ -817,10 +818,15 @@
|
|
817
818
|
return _this.editor.saveGlobalScss();
|
818
819
|
}
|
819
820
|
return rxjs.throwError('Invalid focus');
|
820
|
-
})
|
821
|
+
}))
|
822
|
+
.pipe(operators.takeUntil(_this._destroy$))
|
823
|
+
.subscribe(function () {
|
821
824
|
_this.editor.clearChange(_this.focused);
|
822
825
|
_this._cdRef.markForCheck();
|
823
|
-
}))
|
826
|
+
}, function () { }, function () {
|
827
|
+
_this.submitting = false;
|
828
|
+
_this._cdRef.markForCheck();
|
829
|
+
});
|
824
830
|
};
|
825
831
|
}
|
826
832
|
Object.defineProperty(ContentPageEditorComponent.prototype, "isMac", {
|
@@ -929,7 +935,7 @@
|
|
929
935
|
return ContentPageEditorComponent;
|
930
936
|
}());
|
931
937
|
ContentPageEditorComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageEditorComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace$1.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i1__namespace$1.MatDialog }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
932
|
-
ContentPageEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0__namespace, template: "<
|
938
|
+
ContentPageEditorComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0__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\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n\n <div class=\"actions\">\n <button\n #submit\n mat-button\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <button \n mat-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n</fs-dialog>\n ", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-button{border:solid 1px rgba(0,0,0,.12);line-height:48px;margin-right:10px;font-weight:600}h1 .actions .mat-button:last-child{margin-right:0}h1 .actions .mat-button ::ng-deep .svg-icon-process{display:none}.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: i5__namespace$1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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"] }, { type: i5__namespace$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], directives: [{ type: i8__namespace.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i8__namespace$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i5__namespace.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i11__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
933
939
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ContentPageEditorComponent, decorators: [{
|
934
940
|
type: i0.Component,
|
935
941
|
args: [{
|
@@ -1089,7 +1095,7 @@
|
|
1089
1095
|
i6.MatIconModule,
|
1090
1096
|
i5$2.MatSelectModule,
|
1091
1097
|
i8$1.MatButtonToggleModule,
|
1092
|
-
|
1098
|
+
i11.MatTooltipModule,
|
1093
1099
|
i2$2.FsListModule,
|
1094
1100
|
i3$2.FsDateModule,
|
1095
1101
|
i7.FsCommonModule,
|
@@ -1111,7 +1117,7 @@
|
|
1111
1117
|
i6.MatIconModule,
|
1112
1118
|
i5$2.MatSelectModule,
|
1113
1119
|
i8$1.MatButtonToggleModule,
|
1114
|
-
|
1120
|
+
i11.MatTooltipModule,
|
1115
1121
|
i2$2.FsListModule,
|
1116
1122
|
i3$2.FsDateModule,
|
1117
1123
|
i7.FsCommonModule,
|
@@ -1137,7 +1143,7 @@
|
|
1137
1143
|
i6.MatIconModule,
|
1138
1144
|
i5$2.MatSelectModule,
|
1139
1145
|
i8$1.MatButtonToggleModule,
|
1140
|
-
|
1146
|
+
i11.MatTooltipModule,
|
1141
1147
|
i2$2.FsListModule,
|
1142
1148
|
i3$2.FsDateModule,
|
1143
1149
|
i7.FsCommonModule,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"firestitch-content.umd.js","sources":["../../src/app/enums/editor-type.ts","../../src/app/enums/page-type.enum.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.html","../../src/app/modules/editor/components/editor/editor.component.ts","../../src/app/modules/editor/components/editor/editor.component.html","../../src/app/modules/editor/fs-content-editor.module.ts","../../src/app/injectors/content-config.injector.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.html","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.ts","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.html","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.ts","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.html","../../src/app/modules/content-layouts/fs-content-layouts.module.ts","../../src/app/consts/page-types.const.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.html","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.ts","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.html","../../src/app/modules/content-pages/components/content-pages/content-pages.component.ts","../../src/app/modules/content-pages/components/content-pages/content-pages.component.html","../../src/app/modules/content-pages/fs-content-pages.module.ts","../../src/app/modules/content-style/components/content-style/content-style.component.ts","../../src/app/modules/content-style/components/content-style/content-style.component.html","../../src/app/modules/content-style/fs-content-style.module.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.html","../../src/app/modules/content/components/content/content.component.ts","../../src/app/modules/content/components/content/content.component.html","../../src/app/modules/content/fs-content.module.ts","../../src/firestitch-content.ts"],"sourcesContent":["export enum EditorType {\n Js = 'js',\n Html = 'html',\n Scss = 'scss',\n GlobalScss = 'globalScss',\n}\n","export enum PageType {\n StandardPage = 'standardPage',\n BlogPost = 'blogPost',\n HomePage = 'homePage',\n NotFoundPage = 'notFoundPage',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\n\n\n@Component({\n selector: 'app-editor-label',\n templateUrl: './editor-label.component.html',\n styleUrls: ['./editor-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EditorLabelComponent {\n\n @Input()\n public changed: boolean;\n\n @Input()\n public focused: boolean;\n\n}\n","<div class=\"label\" [ngClass]=\"{ focused: focused }\">\n <ng-content></ng-content>\n <span *ngIf=\"changed\" class=\"changed\"> ●</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\n\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'app-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EditorComponent implements OnInit, OnDestroy {\n\n @Input() public showHtml = false;\n @Input() public showScss = false;\n @Input() public showJs = false;\n @Input() public showGlobalScss = false;\n\n @Input() public html;\n @Input() public scss;\n @Input() public js;\n @Input() public contentConfig: FsContentConfig;\n\n @Output() public changed = new EventEmitter<{ type: string; value: string }>();\n @Output() public focused = new EventEmitter<string>();\n @Output() public blured = new EventEmitter<string>();\n\n public changes: any = {};\n public EditorType = EditorType;\n public focusedArea: string;\n\n public contentStyle: {\n scss?: string;\n };\n\n public resizing = false;\n public title;\n\n public scssConfig: FsTextEditorConfig;\n public globalScssConfig: FsTextEditorConfig;\n public htmlConfig: FsTextEditorConfig;\n public jsConfig: FsTextEditorConfig;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) { }\n\n public ngOnInit(): void {\n this.initTextEditors();\n this.initGlobalContentStyle();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public change(type, value) {\n this.changed.emit({ type, value });\n this.changes[type] = value;\n }\n\n public get hasChanges() {\n return Object.keys(this.changes)\n .filter((name) => !!this.changes[name])\n .length !== 0;\n }\n\n public clearChange(type) {\n this.changes[type] = undefined;\n this._cdRef.markForCheck();\n }\n\n public initTextEditors() {\n this.scssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Scss);\n },\n blur: () => {\n this.blured.emit(EditorType.Scss);\n },\n };\n this.jsConfig = {\n tabSize: 2,\n language: 'js',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Js);\n },\n blur: () => {\n this.blured.emit(EditorType.Js);\n },\n };\n this.htmlConfig = {\n tabSize: 2,\n language: 'html',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Html);\n },\n blur: () => {\n this.blured.emit(EditorType.Html);\n },\n };\n this.globalScssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.GlobalScss);\n },\n blur: () => {\n this.blured.emit(EditorType.GlobalScss);\n },\n };\n }\n\n public initGlobalContentStyle() {\n this.contentConfig.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle || {};\n this._cdRef.markForCheck();\n });\n }\n\n public saveGlobalScss() {\n return this.contentConfig.saveContentStyle(this.contentStyle)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n private _onFocus(type): void {\n this.focusedArea = type;\n this.focused.emit(type);\n }\n\n}\n","<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $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 <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $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 <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $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 <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { AngularSplitModule } from 'angular-split';\n\nimport { EditorComponent } from './components/editor';\nimport { EditorLabelComponent } from './components/editor-label';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatButtonToggleModule,\n\n FsListModule,\n FsFormModule,\n FsSkeletonModule,\n FsLabelModule,\n FsHtmlEditorModule,\n FsCommonModule,\n FsDialogModule,\n FsTextEditorModule,\n\n AngularSplitModule,\n ],\n exports: [\n EditorComponent,\n ],\n declarations: [\n EditorComponent,\n EditorLabelComponent,\n ],\n})\nexport class FsContentEditorModule {\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_CONFIG = new InjectionToken<any>('fs-content-config');\n","import {\n Component,\n Inject,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChildren,\n QueryList,\n} from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, tap, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n templateUrl: './content-layout.component.html',\n styleUrls: ['./content-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentLayoutComponent implements OnInit, OnDestroy {\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentLayout = null;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n constructor( \n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<ContentLayoutComponent>,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentLayout(this.contentLayout)\n .pipe(\n tap((contentLayout) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentLayout);\n }),\n );\n };\n\n private _fetchData(): void {\n of(this._data.contentLayout)\n .pipe(\n switchMap((contentLayout) => {\n return of(contentLayout);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = { ...contentLayout };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout.id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { ContentLayoutComponent } from '../content-layout/content-layout.component';\n\n\n@Component({\n templateUrl: './content-layout-editor.component.html',\n styleUrls: ['./content-layout-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentLayoutEditorComponent implements OnInit, OnDestroy {\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentLayout: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n };\n\n public config: FsContentConfig;\n public EditorType = EditorType;\n public focused = null;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.GlobalScss]: false,\n };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: {\n contentLayout: any;\n contentConfig: FsContentConfig;\n },\n private _dialogRef: MatDialogRef<ContentLayoutEditorComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n private _prompt: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentLayout(this._data.contentLayout);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public _initContentLayout(contentLayout) {\n this.config.loadContentLayout(contentLayout.id)\n .subscribe((data) => {\n this.contentLayout = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save = () => {\n return of(null)\n .pipe(\n filter(() => this.focused),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n tap(() => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n }),\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentLayout.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentLayout({\n id: this.contentLayout.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n public close(): void {\n if(!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) =>{\n if(value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openSettings(): void {\n this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout: this.contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = {\n ...this.contentLayout,\n ...contentLayout,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if(dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">{{contentLayout.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a> \n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div>\n </fs-dialog>\n</form>","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentLayoutComponent } from '../../components/content-layout';\nimport { ContentLayoutEditorComponent } from '../content-layout-editor/content-layout-editor.component';\n\n\n@Component({\n selector: 'fs-content-layouts',\n templateUrl: './content-layouts.component.html',\n styleUrls: ['./content-layouts.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentLayoutsComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentLayout: any): void {\n this._dialog.open(ContentLayoutEditorComponent, {\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n data: {\n contentLayout,\n contentConfig: this._config,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public openLayout(contentLayout: any): Observable<any> {\n return this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n filter((_contentLayout) => !!_contentLayout),\n takeUntil(this._destroy$),\n );\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n paging: false,\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openLayout({})\n .subscribe(() => {\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentLayout(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentLayouts(query)\n .pipe(\n map((contentLayouts: any) => {\n return { data: contentLayouts };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentLayout({ id: row.id, state: 'active' });\n },\n },\n };\n }\n\n}\n\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentLayoutEditorComponent } from './components';\nimport { ContentLayoutComponent } from './components/content-layout';\nimport { FsContentLayoutsComponent } from './components/content-layouts';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatSelectModule,\n MatButtonToggleModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsLabelModule,\n FsSkeletonModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\n\n FsContentEditorModule,\n ],\n exports: [\n FsContentLayoutsComponent,\n ],\n declarations: [\n ContentLayoutComponent,\n FsContentLayoutsComponent,\n ContentLayoutEditorComponent,\n ],\n})\nexport class FsContentLayoutsModule {\n}\n","import { PageType } from '../enums';\n\nexport const PageTypes = [\n { name: 'Standard Page', value: PageType.StandardPage },\n { name: 'Home Page', value: PageType.HomePage },\n { name: 'Not Found Page', value: PageType.NotFoundPage },\n { name: 'Blog Post', value: PageType.BlogPost },\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { PageTypes } from '../../../../consts';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n templateUrl: './content-page.component.html',\n styleUrls: ['./content-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentPageComponent implements OnInit, OnDestroy {\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentPage = null;\n public PageTypes = PageTypes;\n public contentLayouts;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<ContentPageComponent>,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this._dialogRef.updateSize('600px');\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentPage(this.contentPage)\n .pipe(\n tap((contentPage) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentPage);\n }),\n );\n };\n\n private _fetchData(): void {\n this._config.loadContentLayouts()\n .subscribe((contentLayouts) => {\n this.contentLayouts = contentLayouts;\n this._cdRef.markForCheck();\n });\n\n of(this._data.contentPage)\n .pipe(\n switchMap((contentPage) => {\n return of(contentPage);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...contentPage,\n };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<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-label>Type</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.type\"\n name=\"type\"\n required>\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-label>Layout</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.contentLayoutId\"\n required\n name=\"contentLayoutId\">\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 <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.path\"\n name=\"path\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Title</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.title\"\n name=\"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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\n\n\n@Component({\n templateUrl: './content-page-editor.component.html',\n styleUrls: ['./content-page-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentPageEditorComponent implements OnInit, OnDestroy {\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentPage: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n js?: string;\n };\n public focused = null;\n public config: FsContentConfig;\n public resizing = false;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.Js]: false,\n [EditorType.GlobalScss]: false,\n };\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: {\n contentPage: any;\n contentConfig: FsContentConfig;\n },\n private _dialogRef: MatDialogRef<ContentPageEditorComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n private _prompt: FsPrompt,\n ) { }\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentPage(this._data.contentPage);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public _initContentPage(contentPage) {\n this.config.loadContentPage(contentPage.id)\n .subscribe((data) => {\n this.contentPage = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save = () => {\n return of(null)\n .pipe(\n filter(() => this.focused),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Js:\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n tap(() => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n }),\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Js]: 'js',\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentPage.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentPage({\n id: this.contentPage.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n\n public close(): void {\n if (!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) => {\n if (value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openSettings(): void {\n this._dialog.open(ContentPageComponent, {\n data: {\n contentPage: this.contentPage,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...this.contentPage,\n ...contentPage,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentPage\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a>\n\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n\n <div class=\"actions\">\n <button \n mat-button\n [disabled]=\"!editor?.hasChanges\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"submit\"> \n Save\n </button>\n\n <button \n mat-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { index } from '@firestitch/common';\nimport { ItemType } from '@firestitch/filter';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\n\nimport { PageTypes } from '../../../../consts';\nimport { PageType } from '../../../../enums';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentPageEditorComponent } from '../content-page-editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\n\n\n@Component({\n selector: 'fs-content-pages',\n templateUrl: './content-pages.component.html',\n styleUrls: ['./content-pages.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentPagesComponent implements OnInit, OnDestroy {\n\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n public pageTypes = index(PageTypes, 'value', 'name');\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentPage: any): void {\n this._dialog.open(ContentPageEditorComponent, {\n data: {\n contentPage,\n config: this._config,\n contentConfig: this._config,\n },\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n autoFocus: false,\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public openContentPage(contentPage): Observable<any> {\n return this._dialog.open(ContentPageComponent, {\n data: { contentPage },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openContentPage({\n type: PageType.StandardPage,\n })\n .pipe(\n filter((contentPage) => !!contentPage),\n )\n .subscribe((contentPage) => {\n this.openEditor(contentPage);\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentPage(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentPages(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentPages, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentPage({ id: row.id, state: 'active' });\n },\n },\n };\n }\n}\n\n\n","<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","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentPageEditorComponent } from './components';\nimport { ContentPageComponent } from './components/content-page';\nimport { FsContentPagesComponent } from './components/content-pages';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatSelectModule,\n MatButtonToggleModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCommonModule,\n FsFormModule,\n FsLabelModule,\n FsSkeletonModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\n\n FsContentEditorModule,\n ],\n exports: [\n FsContentPagesComponent,\n ],\n declarations: [\n FsContentPagesComponent,\n ContentPageComponent,\n ContentPageEditorComponent,\n ],\n})\nexport class FsContentPagesModule {\n public static forRoot(): ModuleWithProviders<FsContentPagesModule> {\n return {\n ngModule: FsContentPagesModule,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'fs-content-style',\n templateUrl: './content-style.component.html',\n styleUrls: ['./content-style.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentStyleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsTextEditorComponent)\n public textEditors: FsTextEditorComponent;\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n @Input() public height: string = '100%';\n\n public contentStyle = null;\n public styleConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.styleConfig.height = this.height;\n this._config.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save() {\n this._config.saveContentStyle(this.contentStyle)\n .pipe(\n tap((contentStyle) => {\n this.contentStyle = {\n ...this.contentStyle,\n ...contentStyle,\n };\n\n this._cdRef.markForCheck();\n this._message.success('Saved Changes');\n }),\n ).subscribe();\n }\n\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentStyleComponent } from './components/content-style';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n\n FsTextEditorModule,\n FsSkeletonModule,\n FsCommonModule,\n FsContentEditorModule,\n ],\n exports: [\n ContentStyleComponent,\n ],\n declarations: [\n ContentStyleComponent,\n ],\n})\nexport class FsContentStyleModule {\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-renderer',\n templateUrl: './content-renderer.component.html',\n styleUrls: ['./content-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentRendererComponent implements OnDestroy, AfterViewChecked, OnInit {\n\n @ViewChild('script', { read: ElementRef })\n public script: ElementRef;\n\n @Input() public contentPage;\n\n public content: SafeHtml;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _router: Router,\n private _el: ElementRef,\n private _htmlRenderer: HtmlRenderer,\n ) {}\n\n public ngOnInit(): void {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\n\n public ngAfterViewChecked(): void {\n this.registerHrefs();\n\n if(this.contentPage.js) {\n const script = document.createElement('script');\n script.text = this.contentPage.js;\n this.script.nativeElement.after(script);\n }\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.removeStyles();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public removeStyles(): void {\n const el = document.querySelector('#contentPageStyles');\n if(el) {\n el.remove();\n }\n }\n\n}\n","<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'fs-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentComponent implements OnInit, OnDestroy {\n\n public contentPage;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _title: Title,\n private _cdRef: ChangeDetectorRef,\n private _router: Router,\n private _el: ElementRef,\n private _htmlRenderer: HtmlRenderer,\n ) {}\n\n public ngOnInit(): void {\n this._initContent();\n this._initStyles();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._title.setTitle('');\n }\n\n private _initStyles(): void {\n if(this._config.loadContentStyleCss) {\n this._config.loadContentStyleCss()\n .subscribe((styles) => {\n this._htmlRenderer.addStyle(styles, { id: 'content-sytle' });\n });\n }\n }\n\n private _initContent(): void {\n this._loadContent();\n\n this._router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n this._loadContent();\n });\n }\n\n private _loadContent() {\n const path = (window as any).location.pathname;\n\n this._config.loadContent(path)\n .subscribe((contentPage) => {\n if(contentPage.title) {\n this._title.setTitle(contentPage.title);\n\n let ogTitleEl = document.querySelector('head meta[property=\"og:title\"]');\n if(!ogTitleEl) {\n ogTitleEl = document.createElement('meta');\n ogTitleEl.setAttribute('property','og:title');\n document.getElementsByTagName('head')[0].appendChild(ogTitleEl);\n }\n\n ogTitleEl.setAttribute('content',contentPage.title);\n }\n\n this.contentPage = contentPage;\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentComponent } from './components/content';\nimport { ContentRendererComponent } from './components/content-renderer';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n FsHtmlEditorModule,\n ],\n exports: [\n FsContentComponent,\n ],\n declarations: [\n FsContentComponent,\n ContentRendererComponent,\n ],\n})\nexport class FsContentModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Component","ChangeDetectionStrategy","Input","EventEmitter","Subject","tap","Output","CommonModule","FormsModule","MatDialogModule","MatButtonModule","MatTabsModule","MatIconModule","MatButtonToggleModule","FsListModule","FsFormModule","FsSkeletonModule","FsLabelModule","FsHtmlEditorModule","FsCommonModule","FsDialogModule","FsTextEditorModule","AngularSplitModule","NgModule","InjectionToken","of","switchMap","takeUntil","MAT_DIALOG_DATA","FsTextEditorComponent","Inject","ViewChildren","filter","throwError","fromEvent","ViewChild","ItemType","map","FsListComponent","MatInputModule","MatFormFieldModule","MatSelectModule","FsDateModule","index","MatTooltipModule","FsFormDirective","ElementRef","NavigationEnd"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"firestitch-content.umd.js","sources":["../../src/app/enums/editor-type.ts","../../src/app/enums/page-type.enum.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.ts","../../src/app/modules/editor/components/editor-label/editor-label.component.html","../../src/app/modules/editor/components/editor/editor.component.ts","../../src/app/modules/editor/components/editor/editor.component.html","../../src/app/modules/editor/fs-content-editor.module.ts","../../src/app/injectors/content-config.injector.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.ts","../../src/app/modules/content-layouts/components/content-layout/content-layout.component.html","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.ts","../../src/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.html","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.ts","../../src/app/modules/content-layouts/components/content-layouts/content-layouts.component.html","../../src/app/modules/content-layouts/fs-content-layouts.module.ts","../../src/app/consts/page-types.const.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.ts","../../src/app/modules/content-pages/components/content-page/content-page.component.html","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.ts","../../src/app/modules/content-pages/components/content-page-editor/content-page-editor.component.html","../../src/app/modules/content-pages/components/content-pages/content-pages.component.ts","../../src/app/modules/content-pages/components/content-pages/content-pages.component.html","../../src/app/modules/content-pages/fs-content-pages.module.ts","../../src/app/modules/content-style/components/content-style/content-style.component.ts","../../src/app/modules/content-style/components/content-style/content-style.component.html","../../src/app/modules/content-style/fs-content-style.module.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.ts","../../src/app/modules/content/components/content-renderer/content-renderer.component.html","../../src/app/modules/content/components/content/content.component.ts","../../src/app/modules/content/components/content/content.component.html","../../src/app/modules/content/fs-content.module.ts","../../src/firestitch-content.ts"],"sourcesContent":["export enum EditorType {\n Js = 'js',\n Html = 'html',\n Scss = 'scss',\n GlobalScss = 'globalScss',\n}\n","export enum PageType {\n StandardPage = 'standardPage',\n BlogPost = 'blogPost',\n HomePage = 'homePage',\n NotFoundPage = 'notFoundPage',\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n} from '@angular/core';\n\n\n@Component({\n selector: 'app-editor-label',\n templateUrl: './editor-label.component.html',\n styleUrls: ['./editor-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EditorLabelComponent {\n\n @Input()\n public changed: boolean;\n\n @Input()\n public focused: boolean;\n\n}\n","<div class=\"label\" [ngClass]=\"{ focused: focused }\">\n <ng-content></ng-content>\n <span *ngIf=\"changed\" class=\"changed\"> ●</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\n\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'app-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EditorComponent implements OnInit, OnDestroy {\n\n @Input() public showHtml = false;\n @Input() public showScss = false;\n @Input() public showJs = false;\n @Input() public showGlobalScss = false;\n\n @Input() public html;\n @Input() public scss;\n @Input() public js;\n @Input() public contentConfig: FsContentConfig;\n\n @Output() public changed = new EventEmitter<{ type: string; value: string }>();\n @Output() public focused = new EventEmitter<string>();\n @Output() public blured = new EventEmitter<string>();\n\n public changes: any = {};\n public EditorType = EditorType;\n public focusedArea: string;\n\n public contentStyle: {\n scss?: string;\n };\n\n public resizing = false;\n public title;\n\n public scssConfig: FsTextEditorConfig;\n public globalScssConfig: FsTextEditorConfig;\n public htmlConfig: FsTextEditorConfig;\n public jsConfig: FsTextEditorConfig;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _message: FsMessage,\n ) { }\n\n public ngOnInit(): void {\n this.initTextEditors();\n this.initGlobalContentStyle();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public change(type, value) {\n this.changed.emit({ type, value });\n this.changes[type] = value;\n }\n\n public get hasChanges() {\n return Object.keys(this.changes)\n .filter((name) => !!this.changes[name])\n .length !== 0;\n }\n\n public clearChange(type) {\n this.changes[type] = undefined;\n this._cdRef.markForCheck();\n }\n\n public initTextEditors() {\n this.scssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Scss);\n },\n blur: () => {\n this.blured.emit(EditorType.Scss);\n },\n };\n this.jsConfig = {\n tabSize: 2,\n language: 'js',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Js);\n },\n blur: () => {\n this.blured.emit(EditorType.Js);\n },\n };\n this.htmlConfig = {\n tabSize: 2,\n language: 'html',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.Html);\n },\n blur: () => {\n this.blured.emit(EditorType.Html);\n },\n };\n this.globalScssConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n focus: () => {\n this._onFocus(EditorType.GlobalScss);\n },\n blur: () => {\n this.blured.emit(EditorType.GlobalScss);\n },\n };\n }\n\n public initGlobalContentStyle() {\n this.contentConfig.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle || {};\n this._cdRef.markForCheck();\n });\n }\n\n public saveGlobalScss() {\n return this.contentConfig.saveContentStyle(this.contentStyle)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n private _onFocus(type): void {\n this.focusedArea = type;\n this.focused.emit(type);\n }\n\n}\n","<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $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 <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $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 <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $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 <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { AngularSplitModule } from 'angular-split';\n\nimport { EditorComponent } from './components/editor';\nimport { EditorLabelComponent } from './components/editor-label';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatButtonToggleModule,\n\n FsListModule,\n FsFormModule,\n FsSkeletonModule,\n FsLabelModule,\n FsHtmlEditorModule,\n FsCommonModule,\n FsDialogModule,\n FsTextEditorModule,\n\n AngularSplitModule,\n ],\n exports: [\n EditorComponent,\n ],\n declarations: [\n EditorComponent,\n EditorLabelComponent,\n ],\n})\nexport class FsContentEditorModule {\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_CONFIG = new InjectionToken<any>('fs-content-config');\n","import {\n Component,\n Inject,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChildren,\n QueryList,\n} from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, tap, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n templateUrl: './content-layout.component.html',\n styleUrls: ['./content-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentLayoutComponent implements OnInit, OnDestroy {\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentLayout = null;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n constructor( \n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<ContentLayoutComponent>,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentLayout(this.contentLayout)\n .pipe(\n tap((contentLayout) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentLayout);\n }),\n );\n };\n\n private _fetchData(): void {\n of(this._data.contentLayout)\n .pipe(\n switchMap((contentLayout) => {\n return of(contentLayout);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = { ...contentLayout };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" *fsSkeletonForm=\"contentLayout\">\n <fs-dialog>\n <h1 mat-dialog-title>{{contentLayout.id ? 'Layout' : 'Layout Page'}}</h1>\n <div mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentLayout.tag\"\n name=\"tag\">\n </mat-form-field>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions>\n </fs-form-dialog-actions>\n </div>\n </fs-dialog>\n</form>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { ContentLayoutComponent } from '../content-layout/content-layout.component';\n\n\n@Component({\n templateUrl: './content-layout-editor.component.html',\n styleUrls: ['./content-layout-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentLayoutEditorComponent implements OnInit, OnDestroy {\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentLayout: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n };\n\n public config: FsContentConfig;\n public EditorType = EditorType;\n public focused = null;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.GlobalScss]: false,\n };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: {\n contentLayout: any;\n contentConfig: FsContentConfig;\n },\n private _dialogRef: MatDialogRef<ContentLayoutEditorComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n private _prompt: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentLayout(this._data.contentLayout);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public _initContentLayout(contentLayout) {\n this.config.loadContentLayout(contentLayout.id)\n .subscribe((data) => {\n this.contentLayout = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save = () => {\n return of(null)\n .pipe(\n filter(() => this.focused),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n tap(() => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n }),\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentLayout.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentLayout({\n id: this.contentLayout.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n public close(): void {\n if(!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) =>{\n if(value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openSettings(): void {\n this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout: this.contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentLayout) => {\n this.contentLayout = {\n ...this.contentLayout,\n ...contentLayout,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if(dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<form fsForm [submit]=\"save\" [dirtySubmitButton]=\"false\" [confirm]=\"false\">\n <fs-dialog *fsSkeletonForm=\"contentLayout\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Layout Editor\n <div class=\"small\">{{contentLayout.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a> \n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div>\n </fs-dialog>\n</form>","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentLayoutComponent } from '../../components/content-layout';\nimport { ContentLayoutEditorComponent } from '../content-layout-editor/content-layout-editor.component';\n\n\n@Component({\n selector: 'fs-content-layouts',\n templateUrl: './content-layouts.component.html',\n styleUrls: ['./content-layouts.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentLayoutsComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentLayout: any): void {\n this._dialog.open(ContentLayoutEditorComponent, {\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n data: {\n contentLayout,\n contentConfig: this._config,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public openLayout(contentLayout: any): Observable<any> {\n return this._dialog.open(ContentLayoutComponent, {\n data: {\n contentLayout,\n },\n })\n .afterClosed()\n .pipe(\n filter((_contentLayout) => !!_contentLayout),\n takeUntil(this._destroy$),\n );\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n paging: false,\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openLayout({})\n .subscribe(() => {\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentLayout(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentLayouts(query)\n .pipe(\n map((contentLayouts: any) => {\n return { data: contentLayouts };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentLayout({ id: row.id, state: 'active' });\n },\n },\n };\n }\n\n}\n\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentLayoutEditorComponent } from './components';\nimport { ContentLayoutComponent } from './components/content-layout';\nimport { FsContentLayoutsComponent } from './components/content-layouts';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatSelectModule,\n MatButtonToggleModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsLabelModule,\n FsSkeletonModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\n\n FsContentEditorModule,\n ],\n exports: [\n FsContentLayoutsComponent,\n ],\n declarations: [\n ContentLayoutComponent,\n FsContentLayoutsComponent,\n ContentLayoutEditorComponent,\n ],\n})\nexport class FsContentLayoutsModule {\n}\n","import { PageType } from '../enums';\n\nexport const PageTypes = [\n { name: 'Standard Page', value: PageType.StandardPage },\n { name: 'Home Page', value: PageType.HomePage },\n { name: 'Not Found Page', value: PageType.NotFoundPage },\n { name: 'Blog Post', value: PageType.BlogPost },\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject, of } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { PageTypes } from '../../../../consts';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n templateUrl: './content-page.component.html',\n styleUrls: ['./content-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentPageComponent implements OnInit, OnDestroy {\n\n @ViewChildren(FsTextEditorComponent)\n public textEditors: QueryList<FsTextEditorComponent>;\n\n public contentPage = null;\n public PageTypes = PageTypes;\n public contentLayouts;\n public editors = { content: true, styles: true };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n private _dialogRef: MatDialogRef<ContentPageComponent>,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this._dialogRef.updateSize('600px');\n this._fetchData();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save = () => {\n return this._config.saveContentPage(this.contentPage)\n .pipe(\n tap((contentPage) => {\n this._message.success('Saved Changes');\n this._dialogRef.close(contentPage);\n }),\n );\n };\n\n private _fetchData(): void {\n this._config.loadContentLayouts()\n .subscribe((contentLayouts) => {\n this.contentLayouts = contentLayouts;\n this._cdRef.markForCheck();\n });\n\n of(this._data.contentPage)\n .pipe(\n switchMap((contentPage) => {\n return of(contentPage);\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...contentPage,\n };\n\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<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-label>Type</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.type\"\n name=\"type\"\n required>\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-label>Layout</mat-label>\n <mat-select\n [(ngModel)]=\"contentPage.contentLayoutId\"\n required\n name=\"contentLayoutId\">\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 <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.name\"\n name=\"name\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Path</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.path\"\n name=\"path\"\n required>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Title</mat-label>\n <input\n matInput\n [(ngModel)]=\"contentPage.title\"\n name=\"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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject, fromEvent, of, throwError } from 'rxjs';\nimport { delay, filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { EditorType } from '../../../../enums';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { EditorComponent } from '../../../editor/components/editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\n\n\n@Component({\n templateUrl: './content-page-editor.component.html',\n styleUrls: ['./content-page-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentPageEditorComponent implements OnInit, OnDestroy {\n\n @ViewChild(EditorComponent)\n public editor: EditorComponent;\n\n public contentPage: {\n id?: number;\n styles?: string;\n content?: string;\n name?: string;\n js?: string;\n };\n public focused = null;\n public config: FsContentConfig;\n public resizing = false;\n public title;\n public editors = {\n [EditorType.Html]: true,\n [EditorType.Scss]: true,\n [EditorType.Js]: false,\n [EditorType.GlobalScss]: false,\n };\n\n public get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitting: boolean;\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data: {\n contentPage: any;\n contentConfig: FsContentConfig;\n },\n private _dialogRef: MatDialogRef<ContentPageEditorComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n private _prompt: FsPrompt,\n ) { }\n\n public ngOnInit(): void {\n this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');\n this._dialogRef.disableClose = true;\n this.config = this._data.contentConfig;\n this._initContentPage(this._data.contentPage);\n this._initEscape();\n }\n\n public editorToggleChange(event: MatButtonToggleChange): void {\n this.editors[event.value] = !this.editors[event.value];\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public _initContentPage(contentPage) {\n this.config.loadContentPage(contentPage.id)\n .subscribe((data) => {\n this.contentPage = data;\n this._cdRef.markForCheck();\n });\n }\n\n public editorFocused(type) {\n this.focused = type;\n }\n\n public save = () => {\n this.submitting = true;\n\n return of(null)\n .pipe(\n filter(() => this.focused),\n delay(3000),\n switchMap(() => {\n switch (this.focused) {\n case EditorType.Js:\n case EditorType.Html:\n case EditorType.Scss:\n return this.saveContentPage();\n case EditorType.GlobalScss:\n return this.editor.saveGlobalScss();\n }\n\n return throwError('Invalid focus');\n }),\n )\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(\n () => {\n this.editor.clearChange(this.focused);\n this._cdRef.markForCheck();\n },\n () => { },\n () => {\n this.submitting = false;\n this._cdRef.markForCheck();\n },\n );\n };\n\n public saveContentPage() {\n const names = {\n [EditorType.Js]: 'js',\n [EditorType.Scss]: 'styles',\n [EditorType.Html]: 'content',\n };\n\n const data = {\n id: this.contentPage.id,\n [names[this.focused]]: this.editor.changes[this.focused],\n };\n\n return this.config.saveContentPage({\n id: this.contentPage.id,\n ...data,\n })\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n }),\n );\n }\n\n\n public close(): void {\n if (!this.editor.hasChanges) {\n return this._dialogRef.close();\n }\n\n this._prompt.confirm({\n dialogConfig: {\n width: null,\n },\n title: 'You have unsaved changes',\n template: 'What would you like to do with your changes?',\n buttons: [\n {\n label: 'Review Changes',\n value: 'review',\n },\n {\n label: 'Discard Changes',\n value: 'discard',\n },\n ],\n })\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((value) => {\n if (value === 'discard') {\n this._dialogRef.close();\n }\n });\n }\n\n public openSettings(): void {\n this._dialog.open(ContentPageComponent, {\n data: {\n contentPage: this.contentPage,\n },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((contentPage) => {\n this.contentPage = {\n ...this.contentPage,\n ...contentPage,\n };\n this._cdRef.markForCheck();\n });\n }\n\n private _initEscape(): void {\n fromEvent(document, 'keydown')\n .pipe(\n filter((event: KeyboardEvent) => event.code === 'Escape'),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n const dialogRef = this._dialog.openDialogs.reverse()[0];\n if (dialogRef?.componentInstance === this) {\n this.close();\n }\n });\n }\n\n}\n","<fs-dialog *fsSkeletonForm=\"contentPage\">\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n Page Editor\n <div class=\"small\">{{contentPage.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a>\n\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n\n <div class=\"actions\">\n <button\n #submit\n mat-button\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <button \n mat-button\n (click)=\"close()\"\n type=\"button\"> \n Done\n </button>\n </div>\n </div>\n </h1>\n <div mat-dialog-content>\n <app-editor\n [contentConfig]=\"config\"\n [showHtml]=\"editors.html\"\n [showJs]=\"editors.js\"\n [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentPage.content\"\n [scss]=\"contentPage.styles\"\n [js]=\"contentPage.js\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n</fs-dialog>\n ","import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { index } from '@firestitch/common';\nimport { ItemType } from '@firestitch/filter';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\n\nimport { PageTypes } from '../../../../consts';\nimport { PageType } from '../../../../enums';\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\nimport { ContentPageEditorComponent } from '../content-page-editor';\nimport { ContentPageComponent } from '../content-page/content-page.component';\n\n\n@Component({\n selector: 'fs-content-pages',\n templateUrl: './content-pages.component.html',\n styleUrls: ['./content-pages.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentPagesComponent implements OnInit, OnDestroy {\n\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent)\n public listComponent: FsListComponent;\n\n public listConfig: FsListConfig;\n public pageTypes = index(PageTypes, 'value', 'name');\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this._initListConfig();\n }\n\n public openEditor(contentPage: any): void {\n this._dialog.open(ContentPageEditorComponent, {\n data: {\n contentPage,\n config: this._config,\n contentConfig: this._config,\n },\n maxWidth: '100vw',\n width: '100%',\n height: '100%',\n autoFocus: false,\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.listComponent.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public openContentPage(contentPage): Observable<any> {\n return this._dialog.open(ContentPageComponent, {\n data: { contentPage },\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n );\n }\n\n private _initListConfig(): void {\n this.listConfig = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n actions: [\n {\n label: 'Create',\n click: () => {\n this.openContentPage({\n type: PageType.StandardPage,\n })\n .pipe(\n filter((contentPage) => !!contentPage),\n )\n .subscribe((contentPage) => {\n this.openEditor(contentPage);\n this.listComponent.reload();\n });\n },\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this._config.deleteContentPage(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this record?',\n },\n menu: true,\n label: 'Delete',\n },\n ],\n fetch: (query) => {\n return this._config.loadContentPages(query)\n .pipe(\n map((response: any) => {\n return { data: response.contentPages, paging: response.paging };\n }),\n );\n },\n restore: {\n query: { state: 'deleted' },\n filterLabel: 'Show Deleted',\n menuLabel: 'Restore',\n reload: true,\n click: (row) => {\n return this._config.saveContentPage({ id: row.id, state: 'active' });\n },\n },\n };\n }\n}\n\n\n","<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","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentPageEditorComponent } from './components';\nimport { ContentPageComponent } from './components/content-page';\nimport { FsContentPagesComponent } from './components/content-pages';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n MatIconModule,\n MatSelectModule,\n MatButtonToggleModule,\n MatTooltipModule,\n\n FsListModule,\n FsDateModule,\n FsCommonModule,\n FsFormModule,\n FsLabelModule,\n FsSkeletonModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\n\n FsContentEditorModule,\n ],\n exports: [\n FsContentPagesComponent,\n ],\n declarations: [\n FsContentPagesComponent,\n ContentPageComponent,\n ContentPageEditorComponent,\n ],\n})\nexport class FsContentPagesModule {\n public static forRoot(): ModuleWithProviders<FsContentPagesModule> {\n return {\n ngModule: FsContentPagesModule,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\n\nimport { FsFormDirective } from '@firestitch/form';\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorComponent } from '@firestitch/text-editor';\n\nimport { Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'fs-content-style',\n templateUrl: './content-style.component.html',\n styleUrls: ['./content-style.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentStyleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsTextEditorComponent)\n public textEditors: FsTextEditorComponent;\n\n @ViewChild(FsFormDirective)\n public form: FsFormDirective;\n\n @Input() public height: string = '100%';\n\n public contentStyle = null;\n public styleConfig = {\n tabSize: 2,\n language: 'scss',\n height: '100%',\n };\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _message: FsMessage,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.styleConfig.height = this.height;\n this._config.loadContentStyle()\n .subscribe((contentStyle) => {\n this.contentStyle = contentStyle;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public save() {\n this._config.saveContentStyle(this.contentStyle)\n .pipe(\n tap((contentStyle) => {\n this.contentStyle = {\n ...this.contentStyle,\n ...contentStyle,\n };\n\n this._cdRef.markForCheck();\n this._message.success('Saved Changes');\n }),\n ).subscribe();\n }\n\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentEditorModule } from '../editor';\n\nimport { ContentStyleComponent } from './components/content-style';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n\n FsTextEditorModule,\n FsSkeletonModule,\n FsCommonModule,\n FsContentEditorModule,\n ],\n exports: [\n ContentStyleComponent,\n ],\n declarations: [\n ContentStyleComponent,\n ],\n})\nexport class FsContentStyleModule {\n}\n","import {\n AfterViewChecked,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-renderer',\n templateUrl: './content-renderer.component.html',\n styleUrls: ['./content-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentRendererComponent implements OnDestroy, AfterViewChecked, OnInit {\n\n @ViewChild('script', { read: ElementRef })\n public script: ElementRef;\n\n @Input() public contentPage;\n\n public content: SafeHtml;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _router: Router,\n private _el: ElementRef,\n private _htmlRenderer: HtmlRenderer,\n ) {}\n\n public ngOnInit(): void {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\n\n public ngAfterViewChecked(): void {\n this.registerHrefs();\n\n if(this.contentPage.js) {\n const script = document.createElement('script');\n script.text = this.contentPage.js;\n this.script.nativeElement.after(script);\n }\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.removeStyles();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public removeStyles(): void {\n const el = document.querySelector('#contentPageStyles');\n if(el) {\n el.remove();\n }\n }\n\n}\n","<div *ngIf=\"content\" [innerHTML]=\"content\"></div>\n<span #script></span>","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { HtmlRenderer } from '@firestitch/html';\n\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { FS_CONTENT_CONFIG } from '../../../../injectors';\nimport { FsContentConfig } from '../../../../interfaces';\n\n\n@Component({\n selector: 'fs-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentComponent implements OnInit, OnDestroy {\n\n public contentPage;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_CONTENT_CONFIG) private _config: FsContentConfig,\n private _title: Title,\n private _cdRef: ChangeDetectorRef,\n private _router: Router,\n private _el: ElementRef,\n private _htmlRenderer: HtmlRenderer,\n ) {}\n\n public ngOnInit(): void {\n this._initContent();\n this._initStyles();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._title.setTitle('');\n }\n\n private _initStyles(): void {\n if(this._config.loadContentStyleCss) {\n this._config.loadContentStyleCss()\n .subscribe((styles) => {\n this._htmlRenderer.addStyle(styles, { id: 'content-sytle' });\n });\n }\n }\n\n private _initContent(): void {\n this._loadContent();\n\n this._router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n this._loadContent();\n });\n }\n\n private _loadContent() {\n const path = (window as any).location.pathname;\n\n this._config.loadContent(path)\n .subscribe((contentPage) => {\n if(contentPage.title) {\n this._title.setTitle(contentPage.title);\n\n let ogTitleEl = document.querySelector('head meta[property=\"og:title\"]');\n if(!ogTitleEl) {\n ogTitleEl = document.createElement('meta');\n ogTitleEl.setAttribute('property','og:title');\n document.getElementsByTagName('head')[0].appendChild(ogTitleEl);\n }\n\n ogTitleEl.setAttribute('content',contentPage.title);\n }\n\n this.contentPage = contentPage;\n this._cdRef.markForCheck();\n });\n }\n\n}\n","<ng-container *ngIf=\"contentPage\">\n <fs-content-renderer [contentPage]=\"contentPage\"></fs-content-renderer>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentComponent } from './components/content';\nimport { ContentRendererComponent } from './components/content-renderer';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n FsHtmlEditorModule,\n ],\n exports: [\n FsContentComponent,\n ],\n declarations: [\n FsContentComponent,\n ContentRendererComponent,\n ],\n})\nexport class FsContentModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Component","ChangeDetectionStrategy","Input","EventEmitter","Subject","tap","Output","CommonModule","FormsModule","MatDialogModule","MatButtonModule","MatTabsModule","MatIconModule","MatButtonToggleModule","FsListModule","FsFormModule","FsSkeletonModule","FsLabelModule","FsHtmlEditorModule","FsCommonModule","FsDialogModule","FsTextEditorModule","AngularSplitModule","NgModule","InjectionToken","of","switchMap","takeUntil","MAT_DIALOG_DATA","FsTextEditorComponent","Inject","ViewChildren","filter","throwError","fromEvent","ViewChild","ItemType","map","FsListComponent","MatInputModule","MatFormFieldModule","MatSelectModule","FsDateModule","delay","index","MatTooltipModule","FsFormDirective","ElementRef","NavigationEnd"],"mappings":"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"}
|