@firestitch/content 18.0.0 → 18.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -170,11 +170,11 @@ export class ContentLayoutEditorComponent {
170
170
  });
171
171
  }
172
172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: i12.EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
173
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: i12.EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
174
  }
175
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, decorators: [{
176
176
  type: Component,
177
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
177
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
178
178
  }], ctorParameters: () => [{ type: undefined, decorators: [{
179
179
  type: Inject,
180
180
  args: [MAT_DIALOG_DATA]
@@ -175,11 +175,11 @@ export class ContentPageEditorComponent {
175
175
  });
176
176
  }
177
177
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentPageEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
178
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i10.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i11.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i12.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: i13.EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
178
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i10.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i11.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i12.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: i13.EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
179
  }
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentPageEditorComponent, decorators: [{
181
181
  type: Component,
182
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
182
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
183
183
  }], ctorParameters: () => [{ type: undefined, decorators: [{
184
184
  type: Inject,
185
185
  args: [MAT_DIALOG_DATA]
@@ -501,11 +501,11 @@ class ContentLayoutEditorComponent {
501
501
  });
502
502
  }
503
503
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2$1.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
504
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
504
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentLayoutEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
505
505
  }
506
506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentLayoutEditorComponent, decorators: [{
507
507
  type: Component,
508
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
508
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [showScss]=\"editors.scss\"\n [showGlobalScss]=\"editors.globalScss\"\n [html]=\"contentLayout.content\"\n [scss]=\"contentLayout.styles\"\n (focused)=\"editorFocused($event)\">\n </app-editor>\n </div>\n\n <!-- <div mat-dialog-actions>\n <button \n mat-button\n color=\"primary\"\n (click)=\"close()\"\n type=\"button\"> \n Done \n </button>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div> -->\n </fs-dialog>\n</form>", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
509
509
  }], ctorParameters: () => [{ type: undefined, decorators: [{
510
510
  type: Inject,
511
511
  args: [MAT_DIALOG_DATA]
@@ -930,11 +930,11 @@ class ContentPageEditorComponent {
930
930
  });
931
931
  }
932
932
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentPageEditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2$1.FsMessage }, { token: i1.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
933
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6$1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
933
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ContentPageEditorComponent, selector: "ng-component", viewQueries: [{ propertyName: "editor", first: true, predicate: EditorComponent, descendants: true }], ngImport: i0, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i6$1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { kind: "directive", type: i9.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "directive", type: i10.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { kind: "component", type: i11.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "component", type: EditorComponent, selector: "app-editor", inputs: ["showHtml", "showScss", "showJs", "showGlobalScss", "html", "scss", "js", "contentConfig"], outputs: ["changed", "focused", "blured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
934
934
  }
935
935
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ContentPageEditorComponent, decorators: [{
936
936
  type: Component,
937
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mat-stroked-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
937
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}form{height:100%}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}fs-dialog ::ng-deep .mat-button-toggle-label-content{line-height:36px}h1 .toggles{display:flex;justify-content:flex-end;justify-self:baseline;font-size:13px}h1 .actions{margin-left:30px}h1 .actions .mdc-button{margin-left:5px}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"] }]
938
938
  }], ctorParameters: () => [{ type: undefined, decorators: [{
939
939
  type: Inject,
940
940
  args: [MAT_DIALOG_DATA]
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-content.mjs","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\">&nbsp;&#9679;</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(null);\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 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 { 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(null);\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, finalize, 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 get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitting: boolean;\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(null);\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(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = () => {\n this.submitting = true;\n\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 finalize(() => {\n this.submitting = false;\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]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [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(null);\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 *ngIf=\"row.state !== 'deleted'; else name\" (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n\n <ng-template #name>{{row.name}}</ng-template>\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';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 MatTooltipModule,\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: 'Page', value: PageType.StandardPage },\n { name: 'Page (Not Found)', value: PageType.NotFoundPage },\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(null);\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 path: contentPage.path || '/',\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 { Observable, Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, finalize, 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 path?: 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(null);\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(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = (): Observable<any> => {\n this.submitting = true;\n\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 finalize(() => {\n this.submitting = false;\n this._cdRef.markForCheck();\n }),\n )\n .pipe(\n takeUntil(this._destroy$),\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]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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(null);\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 query = {\n contentLayouts: true,\n ...query,\n };\n\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 *ngIf=\"row.state !== 'deleted'; else name\" (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n <ng-template #name>{{row.name}}</ng-template>\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 *ngIf=\"row.state !== 'deleted'; else path\" [href]=\"'/' + row.path\" target=\"_black\">\n <ng-container [ngTemplateOutlet]=\"path\"></ng-container>\n </a>\n <ng-template #path>/{{row.path}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"layout\" title=\"Layout\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.contentLayout?.name}}\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';\nimport { RouterModule } from '@angular/router';\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 RouterModule,\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(null);\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 OnChanges,\n OnDestroy,\n SimpleChanges,\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, OnChanges{\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 ngOnChanges(changes: SimpleChanges): void {\n if(changes.contentPage.currentValue) {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\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(null);\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(null);\n this._destroy$.complete();\n this._title.setTitle('');\n\n document.querySelector('#content-style')?.remove();\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-style' });\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":["i1","i2","i3","i4","i8.EditorLabelComponent","i5","i6","i7","i8","i12.EditorComponent","i9","i10","i11","i12","i13.EditorComponent","i5.ContentRendererComponent"],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-content.mjs","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\">&nbsp;&#9679;</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(null);\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 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 { 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(null);\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, finalize, 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 get isMac(): boolean {\n return navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n }\n\n public submitting: boolean;\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(null);\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(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = () => {\n this.submitting = true;\n\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 finalize(() => {\n this.submitting = false;\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]=\"submitted\" [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\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-stroked-button\n color=\"primary\"\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-stroked-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 [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(null);\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 *ngIf=\"row.state !== 'deleted'; else name\" (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n\n <ng-template #name>{{row.name}}</ng-template>\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';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 MatTooltipModule,\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: 'Page', value: PageType.StandardPage },\n { name: 'Page (Not Found)', value: PageType.NotFoundPage },\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(null);\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 path: contentPage.path || '/',\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 { Observable, Subject, fromEvent, of, throwError } from 'rxjs';\nimport { filter, finalize, 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 path?: 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(null);\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(): void {\n this.submitted()\n .subscribe();\n }\n\n public submitted = (): Observable<any> => {\n this.submitting = true;\n\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 finalize(() => {\n this.submitting = false;\n this._cdRef.markForCheck();\n }),\n )\n .pipe(\n takeUntil(this._destroy$),\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]=\"submitted\" [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 #submit\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"!editor?.hasChanges || submitting\"\n [matTooltip]=\"isMac ? 'cmd+s' : 'ctrl+s'\"\n type=\"button\"\n (click)=\"save()\"> \n Save\n </button>\n\n <a \n mat-stroked-button\n target=\"_blank\"\n [routerLink]=\"contentPage.path\"\n type=\"button\"> \n Preview\n </a>\n\n <button \n mat-stroked-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(null);\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 query = {\n contentLayouts: true,\n ...query,\n };\n\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 *ngIf=\"row.state !== 'deleted'; else name\" (click)=\"openEditor(row)\">\n <ng-container [ngTemplateOutlet]=\"name\"></ng-container>\n </a>\n <ng-template #name>{{row.name}}</ng-template>\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 *ngIf=\"row.state !== 'deleted'; else path\" [href]=\"'/' + row.path\" target=\"_black\">\n <ng-container [ngTemplateOutlet]=\"path\"></ng-container>\n </a>\n <ng-template #path>/{{row.path}}</ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column name=\"layout\" title=\"Layout\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.contentLayout?.name}}\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';\nimport { RouterModule } from '@angular/router';\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 RouterModule,\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(null);\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 OnChanges,\n OnDestroy,\n SimpleChanges,\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, OnChanges{\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 ngOnChanges(changes: SimpleChanges): void {\n if(changes.contentPage.currentValue) {\n this._htmlRenderer.addStyle(this.contentPage.styles, { id: 'contentPageStyles' });\n this.content = this._sanitizer.bypassSecurityTrustHtml(this.contentPage.content);\n }\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(null);\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(null);\n this._destroy$.complete();\n this._title.setTitle('');\n\n document.querySelector('#content-style')?.remove();\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-style' });\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":["i1","i2","i3","i4","i8.EditorLabelComponent","i5","i6","i7","i8","i12.EditorComponent","i9","i10","i11","i12","i13.EditorComponent","i5.ContentRendererComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/content",
3
- "version": "18.0.0",
3
+ "version": "18.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-content"