@firestitch/content-widget 12.1.2 → 12.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/app/content-widget/components/content-widget/content-widget.component.d.ts +15 -15
  2. package/app/content-widget/components/content-widget/index.d.ts +1 -1
  3. package/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.d.ts +16 -16
  4. package/app/content-widget/components/content-widget-renderer/index.d.ts +1 -1
  5. package/app/content-widget/fs-content-widget.module.d.ts +12 -12
  6. package/app/content-widget/injectors/content-wiget.injector.d.ts +2 -2
  7. package/app/content-widget/injectors/index.d.ts +1 -1
  8. package/app/content-widget/interfaces/content-widget-config.d.ts +4 -4
  9. package/app/content-widgets/components/content-widget/content-widget.component.d.ts +17 -17
  10. package/app/content-widgets/components/content-widget/index.d.ts +1 -1
  11. package/app/content-widgets/components/content-widgets/content-widgets.component.d.ts +24 -24
  12. package/app/content-widgets/components/content-widgets/index.d.ts +1 -1
  13. package/app/content-widgets/fs-content-widgets.module.d.ts +23 -23
  14. package/bundles/firestitch-content-widget.umd.js +285 -282
  15. package/bundles/firestitch-content-widget.umd.js.map +1 -1
  16. package/esm2015/app/content-widget/components/content-widget/content-widget.component.js +41 -41
  17. package/esm2015/app/content-widget/components/content-widget/index.js +1 -1
  18. package/esm2015/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.js +51 -51
  19. package/esm2015/app/content-widget/components/content-widget-renderer/index.js +1 -1
  20. package/esm2015/app/content-widget/fs-content-widget.module.js +41 -38
  21. package/esm2015/app/content-widget/injectors/content-wiget.injector.js +2 -2
  22. package/esm2015/app/content-widget/injectors/index.js +1 -1
  23. package/esm2015/app/content-widget/interfaces/content-widget-config.js +1 -1
  24. package/esm2015/app/content-widgets/components/content-widget/content-widget.component.js +47 -47
  25. package/esm2015/app/content-widgets/components/content-widget/index.js +1 -1
  26. package/esm2015/app/content-widgets/components/content-widgets/content-widgets.component.js +71 -71
  27. package/esm2015/app/content-widgets/components/content-widgets/index.js +1 -1
  28. package/esm2015/app/content-widgets/fs-content-widgets.module.js +81 -81
  29. package/esm2015/firestitch-content-widget.js +4 -4
  30. package/esm2015/public_api.js +5 -5
  31. package/fesm2015/firestitch-content-widget.js +263 -260
  32. package/fesm2015/firestitch-content-widget.js.map +1 -1
  33. package/firestitch-content-widget.d.ts +5 -5
  34. package/package.json +1 -2
  35. package/public_api.d.ts +6 -6
@@ -23,7 +23,7 @@ import { FsDialogModule } from '@firestitch/dialog';
23
23
  import * as i9 from '@firestitch/form';
24
24
  import { FsFormModule } from '@firestitch/form';
25
25
  import * as i5 from '@firestitch/html-editor';
26
- import { FsHtmlEditorModule } from '@firestitch/html-editor';
26
+ import { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';
27
27
  import * as i4 from '@firestitch/text-editor';
28
28
  import { FsTextEditorModule } from '@firestitch/text-editor';
29
29
  import * as i1 from '@firestitch/message';
@@ -32,279 +32,282 @@ import { ItemType } from '@firestitch/filter';
32
32
  import { Subject } from 'rxjs';
33
33
  import * as i1$1 from '@angular/router';
34
34
 
35
- class FsContentWidgetComponent$1 {
36
- constructor(_message, _data) {
37
- this._message = _message;
38
- this._data = _data;
39
- this.save = () => {
40
- return this._saveContentWidget(this.contentWidget)
41
- .pipe(tap((contentWidget) => {
42
- this.contentWidget = Object.assign(Object.assign({}, this.contentWidget), contentWidget);
43
- this._message.success('Saved Changes');
44
- }));
45
- };
46
- }
47
- ngOnInit() {
48
- this._saveContentWidget = this._data.saveContentWidget;
49
- this.htmlEditorConfig = this._data.htmlEditorConfig || {};
50
- this.contentWidget = Object.assign({}, this._data.contentWidget);
51
- }
52
- }
53
- FsContentWidgetComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, deps: [{ token: i1.FsMessage }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
54
- FsContentWidgetComponent$1.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent$1, selector: "ng-component", ngImport: i0, template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor \n [(ngModel)]=\"contentWidget.content\" \n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor \n [(ngModel)]=\"contentWidget.styles\" \n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input \n matInput \n placeholder=\"Name\" \n [(ngModel)]=\"contentWidget.name\" \n name=\"name\" \n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n color=\"primary\">\n Save\n </button>\n <button \n mat-button \n [mat-dialog-close]=\"null\" \n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["mat-form-field{width:100%}fs-html-editor{min-height:400px;display:block;overflow:hidden}.subtitle{font-size:60%;line-height:normal}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i4.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["init", "blur"] }, { type: i5.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i10.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i10.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatTabContent, selector: "[matTabContent]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, decorators: [{
56
- type: Component,
57
- args: [{
58
- templateUrl: './content-widget.component.html',
59
- styleUrls: ['./content-widget.component.scss'],
60
- }]
61
- }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: undefined, decorators: [{
62
- type: Inject,
63
- args: [MAT_DIALOG_DATA]
35
+ class FsContentWidgetComponent$1 {
36
+ constructor(_message, _data) {
37
+ this._message = _message;
38
+ this._data = _data;
39
+ this.save = () => {
40
+ return this._saveContentWidget(this.contentWidget)
41
+ .pipe(tap((contentWidget) => {
42
+ this.contentWidget = Object.assign(Object.assign({}, this.contentWidget), contentWidget);
43
+ this._message.success('Saved Changes');
44
+ }));
45
+ };
46
+ }
47
+ ngOnInit() {
48
+ this._saveContentWidget = this._data.saveContentWidget;
49
+ this.htmlEditorConfig = this._data.htmlEditorConfig || {};
50
+ this.contentWidget = Object.assign({}, this._data.contentWidget);
51
+ }
52
+ }
53
+ FsContentWidgetComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, deps: [{ token: i1.FsMessage }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
54
+ FsContentWidgetComponent$1.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent$1, selector: "ng-component", ngImport: i0, template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.styles\"\n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"contentWidget.name\"\n name=\"name\"\n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["mat-form-field{width:100%}fs-html-editor{min-height:400px;display:block;overflow:hidden}.subtitle{font-size:60%;line-height:normal}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i4.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["init", "blur"] }, { type: i5.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"] }, { type: i10.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i10.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatTabContent, selector: "[matTabContent]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, decorators: [{
56
+ type: Component,
57
+ args: [{
58
+ templateUrl: './content-widget.component.html',
59
+ styleUrls: ['./content-widget.component.scss'],
60
+ }]
61
+ }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: undefined, decorators: [{
62
+ type: Inject,
63
+ args: [MAT_DIALOG_DATA]
64
64
  }] }]; } });
65
65
 
66
- class FsContentWidgetsComponent {
67
- constructor(_dialog) {
68
- this._dialog = _dialog;
69
- this._destroy$ = new Subject();
70
- }
71
- ngOnInit() {
72
- this.config = {
73
- paging: false,
74
- filters: [
75
- {
76
- name: 'keyword',
77
- type: ItemType.Keyword,
78
- label: 'Search',
79
- },
80
- ],
81
- fetch: (query) => {
82
- return this.fetchContentWidgets(query.keyword)
83
- .pipe(map((data) => ({ data: data.contentWidgets })));
84
- },
85
- };
86
- }
87
- ngOnDestroy() {
88
- this._destroy$.next();
89
- this._destroy$.complete();
90
- }
91
- open(contentWidget) {
92
- const dialogRef = this._dialog.open(FsContentWidgetComponent$1, {
93
- width: '90%',
94
- data: {
95
- contentWidget,
96
- htmlEditorConfig: this.htmlEditorConfig,
97
- saveContentWidget: this.saveContentWidget,
98
- },
99
- });
100
- dialogRef.afterClosed()
101
- .pipe(takeUntil(this._destroy$))
102
- .subscribe(() => {
103
- this.list.reload();
104
- });
105
- }
106
- }
107
- FsContentWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, deps: [{ token: i10.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
108
- FsContentWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget", htmlEditorConfig: "htmlEditorConfig" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column class=\"name\">\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Preview</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"preview-container\">\n <div class=\"preview-content\">\n <div [innerHTML]=\"row.content\"></div>\n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"modified\">\n <ng-template fs-list-header>Modified</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.modifiedDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .modified,:host ::ng-deep .name{width:1%;white-space:nowrap}:host ::ng-deep .preview-content img{display:none}.preview-content{position:relative;max-height:100px;max-width:100%;overflow:hidden;-webkit-mask-image:-webkit-gradient(linear,left 60%,left bottom,from(black),to(rgba(0,0,0,0)))}\n"], components: [{ type: i2$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3$1.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, decorators: [{
110
- type: Component,
111
- args: [{
112
- selector: 'fs-content-widgets',
113
- templateUrl: './content-widgets.component.html',
114
- styleUrls: ['./content-widgets.component.scss'],
115
- }]
116
- }], ctorParameters: function () { return [{ type: i10.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
117
- type: Input
118
- }], saveContentWidget: [{
119
- type: Input
120
- }], htmlEditorConfig: [{
121
- type: Input
122
- }], list: [{
123
- type: ViewChild,
124
- args: [FsListComponent, { static: true }]
66
+ class FsContentWidgetsComponent {
67
+ constructor(_dialog) {
68
+ this._dialog = _dialog;
69
+ this._destroy$ = new Subject();
70
+ }
71
+ ngOnInit() {
72
+ this.config = {
73
+ paging: false,
74
+ filters: [
75
+ {
76
+ name: 'keyword',
77
+ type: ItemType.Keyword,
78
+ label: 'Search',
79
+ },
80
+ ],
81
+ fetch: (query) => {
82
+ return this.fetchContentWidgets(query.keyword)
83
+ .pipe(map((data) => ({ data: data.contentWidgets })));
84
+ },
85
+ };
86
+ }
87
+ ngOnDestroy() {
88
+ this._destroy$.next();
89
+ this._destroy$.complete();
90
+ }
91
+ open(contentWidget) {
92
+ const dialogRef = this._dialog.open(FsContentWidgetComponent$1, {
93
+ width: '90%',
94
+ data: {
95
+ contentWidget,
96
+ htmlEditorConfig: this.htmlEditorConfig,
97
+ saveContentWidget: this.saveContentWidget,
98
+ },
99
+ });
100
+ dialogRef.afterClosed()
101
+ .pipe(takeUntil(this._destroy$))
102
+ .subscribe(() => {
103
+ this.list.reload();
104
+ });
105
+ }
106
+ }
107
+ FsContentWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, deps: [{ token: i10.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
108
+ FsContentWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget", htmlEditorConfig: "htmlEditorConfig" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column class=\"name\">\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Preview</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"preview-container\">\n <div class=\"preview-content\">\n <div [innerHTML]=\"row.content\"></div>\n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"modified\">\n <ng-template fs-list-header>Modified</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.modifiedDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .modified,:host ::ng-deep .name{width:1%;white-space:nowrap}:host ::ng-deep .preview-content img{display:none}.preview-content{position:relative;max-height:100px;max-width:100%;overflow:hidden;-webkit-mask-image:-webkit-gradient(linear,left 60%,left bottom,from(black),to(rgba(0,0,0,0)))}\n"], components: [{ type: i2$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3$1.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, decorators: [{
110
+ type: Component,
111
+ args: [{
112
+ selector: 'fs-content-widgets',
113
+ templateUrl: './content-widgets.component.html',
114
+ styleUrls: ['./content-widgets.component.scss'],
115
+ }]
116
+ }], ctorParameters: function () { return [{ type: i10.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
117
+ type: Input
118
+ }], saveContentWidget: [{
119
+ type: Input
120
+ }], htmlEditorConfig: [{
121
+ type: Input
122
+ }], list: [{
123
+ type: ViewChild,
124
+ args: [FsListComponent, { static: true }]
125
125
  }] } });
126
126
 
127
- class FsContentWidgetsModule {
128
- static forRoot() {
129
- return {
130
- ngModule: FsContentWidgetsModule,
131
- };
132
- }
133
- }
134
- FsContentWidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
135
- FsContentWidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
136
- FsContentWidgetComponent$1], imports: [CommonModule,
137
- FormsModule,
138
- MatDialogModule,
139
- MatInputModule,
140
- MatFormFieldModule,
141
- MatButtonModule,
142
- MatTabsModule,
143
- FsListModule,
144
- FsDateModule,
145
- FsFormModule,
146
- FsHtmlEditorModule,
147
- FsDialogModule,
148
- FsTextEditorModule], exports: [FsContentWidgetsComponent] });
149
- FsContentWidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, imports: [[
150
- CommonModule,
151
- FormsModule,
152
- MatDialogModule,
153
- MatInputModule,
154
- MatFormFieldModule,
155
- MatButtonModule,
156
- MatTabsModule,
157
- FsListModule,
158
- FsDateModule,
159
- FsFormModule,
160
- FsHtmlEditorModule,
161
- FsDialogModule,
162
- FsTextEditorModule,
163
- ]] });
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, decorators: [{
165
- type: NgModule,
166
- args: [{
167
- imports: [
168
- CommonModule,
169
- FormsModule,
170
- MatDialogModule,
171
- MatInputModule,
172
- MatFormFieldModule,
173
- MatButtonModule,
174
- MatTabsModule,
175
- FsListModule,
176
- FsDateModule,
177
- FsFormModule,
178
- FsHtmlEditorModule,
179
- FsDialogModule,
180
- FsTextEditorModule,
181
- ],
182
- exports: [
183
- FsContentWidgetsComponent,
184
- ],
185
- declarations: [
186
- FsContentWidgetsComponent,
187
- FsContentWidgetComponent$1,
188
- ],
189
- }]
127
+ class FsContentWidgetsModule {
128
+ static forRoot() {
129
+ return {
130
+ ngModule: FsContentWidgetsModule,
131
+ };
132
+ }
133
+ }
134
+ FsContentWidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
135
+ FsContentWidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
136
+ FsContentWidgetComponent$1], imports: [CommonModule,
137
+ FormsModule,
138
+ MatDialogModule,
139
+ MatInputModule,
140
+ MatFormFieldModule,
141
+ MatButtonModule,
142
+ MatTabsModule,
143
+ FsListModule,
144
+ FsDateModule,
145
+ FsFormModule,
146
+ FsHtmlEditorModule,
147
+ FsDialogModule,
148
+ FsTextEditorModule], exports: [FsContentWidgetsComponent] });
149
+ FsContentWidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, imports: [[
150
+ CommonModule,
151
+ FormsModule,
152
+ MatDialogModule,
153
+ MatInputModule,
154
+ MatFormFieldModule,
155
+ MatButtonModule,
156
+ MatTabsModule,
157
+ FsListModule,
158
+ FsDateModule,
159
+ FsFormModule,
160
+ FsHtmlEditorModule,
161
+ FsDialogModule,
162
+ FsTextEditorModule,
163
+ ]] });
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, decorators: [{
165
+ type: NgModule,
166
+ args: [{
167
+ imports: [
168
+ CommonModule,
169
+ FormsModule,
170
+ MatDialogModule,
171
+ MatInputModule,
172
+ MatFormFieldModule,
173
+ MatButtonModule,
174
+ MatTabsModule,
175
+ FsListModule,
176
+ FsDateModule,
177
+ FsFormModule,
178
+ FsHtmlEditorModule,
179
+ FsDialogModule,
180
+ FsTextEditorModule,
181
+ ],
182
+ exports: [
183
+ FsContentWidgetsComponent,
184
+ ],
185
+ declarations: [
186
+ FsContentWidgetsComponent,
187
+ FsContentWidgetComponent$1,
188
+ ],
189
+ }]
190
190
  }] });
191
191
 
192
192
  const FS_CONTENT_WIDGET_CONFIG = new InjectionToken('fs-content-widget-config');
193
193
 
194
- class FsContentWidgetRendererComponent {
195
- constructor(_router, _el) {
196
- this._router = _router;
197
- this._el = _el;
198
- this.destroy$ = new Subject();
199
- }
200
- ngAfterViewChecked() {
201
- this.registerHrefs();
202
- }
203
- get el() {
204
- return this._el.nativeElement;
205
- }
206
- registerHrefs() {
207
- Array.from(this.el.querySelectorAll('a[href]'))
208
- .filter((el) => {
209
- return el.getAttribute('href').match(/^\//);
210
- })
211
- .forEach((el) => {
212
- el.addEventListener('click', (event) => {
213
- if (!event.shiftKey && !event.ctrlKey) {
214
- event.preventDefault();
215
- const href = el.getAttribute('href');
216
- this._router.navigateByUrl(href);
217
- }
218
- });
219
- });
220
- }
221
- ngOnDestroy() {
222
- this.destroy$.next();
223
- this.destroy$.complete();
224
- }
225
- }
226
- FsContentWidgetRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetRendererComponent, deps: [{ token: i1$1.Router }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
227
- FsContentWidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: { content: "content" }, ngImport: i0, template: "<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: i5.FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: ["html"] }], directives: [{ type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetRendererComponent, decorators: [{
229
- type: Component,
230
- args: [{
231
- selector: 'fs-content-widget-renderer',
232
- templateUrl: './content-widget-renderer.component.html',
233
- styleUrls: ['./content-widget-renderer.component.scss'],
234
- }]
235
- }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i0.ElementRef }]; }, propDecorators: { content: [{
236
- type: Input
194
+ class FsContentWidgetRendererComponent {
195
+ constructor(_router, _el) {
196
+ this._router = _router;
197
+ this._el = _el;
198
+ this.destroy$ = new Subject();
199
+ }
200
+ ngAfterViewChecked() {
201
+ this.registerHrefs();
202
+ }
203
+ get el() {
204
+ return this._el.nativeElement;
205
+ }
206
+ registerHrefs() {
207
+ Array.from(this.el.querySelectorAll('a[href]'))
208
+ .filter((el) => {
209
+ return el.getAttribute('href').match(/^\//);
210
+ })
211
+ .forEach((el) => {
212
+ el.addEventListener('click', (event) => {
213
+ if (!event.shiftKey && !event.ctrlKey) {
214
+ event.preventDefault();
215
+ const href = el.getAttribute('href');
216
+ this._router.navigateByUrl(href);
217
+ }
218
+ });
219
+ });
220
+ }
221
+ ngOnDestroy() {
222
+ this.destroy$.next();
223
+ this.destroy$.complete();
224
+ }
225
+ }
226
+ FsContentWidgetRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetRendererComponent, deps: [{ token: i1$1.Router }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
227
+ FsContentWidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: { content: "content" }, ngImport: i0, template: "<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: i5.FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: ["html"] }], directives: [{ type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetRendererComponent, decorators: [{
229
+ type: Component,
230
+ args: [{
231
+ selector: 'fs-content-widget-renderer',
232
+ templateUrl: './content-widget-renderer.component.html',
233
+ styleUrls: ['./content-widget-renderer.component.scss'],
234
+ }]
235
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i0.ElementRef }]; }, propDecorators: { content: [{
236
+ type: Input
237
237
  }] } });
238
238
 
239
- class FsContentWidgetComponent {
240
- constructor(config, _cdRef) {
241
- this.config = config;
242
- this._cdRef = _cdRef;
243
- this.destroy$ = new Subject();
244
- }
245
- ngOnInit() {
246
- this.config.fetchContentWidget(this.tag)
247
- .pipe(takeUntil(this.destroy$))
248
- .subscribe((content) => {
249
- this.content = content;
250
- this._cdRef.markForCheck();
251
- });
252
- }
253
- ngOnDestroy() {
254
- this.destroy$.next();
255
- this.destroy$.complete();
256
- }
257
- }
258
- FsContentWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, deps: [{ token: FS_CONTENT_WIDGET_CONFIG }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
259
- FsContentWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent, selector: "fs-content-widget", inputs: { tag: "tag" }, ngImport: i0, template: "<fs-content-widget-renderer *ngIf=\"content\" [content]=\"content\"></fs-content-widget-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: ["content"] }], directives: [{ type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
261
- type: Component,
262
- args: [{
263
- selector: 'fs-content-widget',
264
- templateUrl: './content-widget.component.html',
265
- styleUrls: ['./content-widget.component.scss'],
266
- }]
267
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
268
- type: Inject,
269
- args: [FS_CONTENT_WIDGET_CONFIG]
270
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tag: [{
271
- type: Input
239
+ class FsContentWidgetComponent {
240
+ constructor(config, _cdRef) {
241
+ this.config = config;
242
+ this._cdRef = _cdRef;
243
+ this.destroy$ = new Subject();
244
+ }
245
+ ngOnInit() {
246
+ this.config.fetchContentWidget(this.tag)
247
+ .pipe(takeUntil(this.destroy$))
248
+ .subscribe((content) => {
249
+ this.content = content;
250
+ this._cdRef.markForCheck();
251
+ });
252
+ }
253
+ ngOnDestroy() {
254
+ this.destroy$.next();
255
+ this.destroy$.complete();
256
+ }
257
+ }
258
+ FsContentWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, deps: [{ token: FS_CONTENT_WIDGET_CONFIG }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
259
+ FsContentWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent, selector: "fs-content-widget", inputs: { tag: "tag" }, ngImport: i0, template: "<fs-content-widget-renderer *ngIf=\"content\" [content]=\"content\"></fs-content-widget-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: ["content"] }], directives: [{ type: i3$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
261
+ type: Component,
262
+ args: [{
263
+ selector: 'fs-content-widget',
264
+ templateUrl: './content-widget.component.html',
265
+ styleUrls: ['./content-widget.component.scss'],
266
+ }]
267
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
268
+ type: Inject,
269
+ args: [FS_CONTENT_WIDGET_CONFIG]
270
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tag: [{
271
+ type: Input
272
272
  }] } });
273
273
 
274
- class FsContentWidgetModule {
275
- static forRoot() {
276
- return {
277
- ngModule: FsContentWidgetModule,
278
- };
279
- }
280
- }
281
- FsContentWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
282
- FsContentWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, declarations: [FsContentWidgetRendererComponent,
283
- FsContentWidgetComponent], imports: [CommonModule,
284
- FsHtmlEditorModule], exports: [FsContentWidgetComponent] });
285
- FsContentWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, imports: [[
286
- CommonModule,
287
- FsHtmlEditorModule,
288
- ]] });
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, decorators: [{
290
- type: NgModule,
291
- args: [{
292
- imports: [
293
- CommonModule,
294
- FsHtmlEditorModule,
295
- ],
296
- exports: [
297
- FsContentWidgetComponent,
298
- ],
299
- declarations: [
300
- FsContentWidgetRendererComponent,
301
- FsContentWidgetComponent,
302
- ],
303
- }]
274
+ class FsContentWidgetModule {
275
+ static forRoot() {
276
+ return {
277
+ ngModule: FsContentWidgetModule,
278
+ };
279
+ }
280
+ }
281
+ FsContentWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
282
+ FsContentWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, declarations: [FsContentWidgetRendererComponent,
283
+ FsContentWidgetComponent], imports: [CommonModule,
284
+ FsHtmlEditorModule,
285
+ FsHtmlRendererModule], exports: [FsContentWidgetComponent] });
286
+ FsContentWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, imports: [[
287
+ CommonModule,
288
+ FsHtmlEditorModule,
289
+ FsHtmlRendererModule,
290
+ ]] });
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, decorators: [{
292
+ type: NgModule,
293
+ args: [{
294
+ imports: [
295
+ CommonModule,
296
+ FsHtmlEditorModule,
297
+ FsHtmlRendererModule,
298
+ ],
299
+ exports: [
300
+ FsContentWidgetComponent,
301
+ ],
302
+ declarations: [
303
+ FsContentWidgetRendererComponent,
304
+ FsContentWidgetComponent,
305
+ ],
306
+ }]
304
307
  }] });
305
308
 
306
- /**
307
- * Generated bundle index. Do not edit.
309
+ /**
310
+ * Generated bundle index. Do not edit.
308
311
  */
309
312
 
310
313
  export { FS_CONTENT_WIDGET_CONFIG, FsContentWidgetComponent, FsContentWidgetModule, FsContentWidgetsComponent, FsContentWidgetsModule };