@firestitch/content-widget 12.0.0

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 (32) hide show
  1. package/app/content-widget/components/content-widget/content-widget.component.d.ts +15 -0
  2. package/app/content-widget/components/content-widget/index.d.ts +1 -0
  3. package/app/content-widget/fs-content-widget.module.d.ts +11 -0
  4. package/app/content-widget/injectors/content-wiget.injector.d.ts +2 -0
  5. package/app/content-widget/injectors/index.d.ts +1 -0
  6. package/app/content-widget/interfaces/content-widget-config.d.ts +4 -0
  7. package/app/content-widgets/components/content-widget/content-widget.component.d.ts +19 -0
  8. package/app/content-widgets/components/content-widget/index.d.ts +1 -0
  9. package/app/content-widgets/components/content-widgets/content-widgets.component.d.ts +22 -0
  10. package/app/content-widgets/components/content-widgets/index.d.ts +1 -0
  11. package/app/content-widgets/fs-content-widgets.module.d.ts +21 -0
  12. package/bundles/firestitch-content-widget.umd.js +287 -0
  13. package/bundles/firestitch-content-widget.umd.js.map +1 -0
  14. package/esm2015/app/content-widget/components/content-widget/content-widget.component.js +42 -0
  15. package/esm2015/app/content-widget/components/content-widget/index.js +2 -0
  16. package/esm2015/app/content-widget/fs-content-widget.module.js +35 -0
  17. package/esm2015/app/content-widget/injectors/content-wiget.injector.js +3 -0
  18. package/esm2015/app/content-widget/injectors/index.js +2 -0
  19. package/esm2015/app/content-widget/interfaces/content-widget-config.js +2 -0
  20. package/esm2015/app/content-widgets/components/content-widget/content-widget.component.js +49 -0
  21. package/esm2015/app/content-widgets/components/content-widget/index.js +2 -0
  22. package/esm2015/app/content-widgets/components/content-widgets/content-widgets.component.js +69 -0
  23. package/esm2015/app/content-widgets/components/content-widgets/index.js +2 -0
  24. package/esm2015/app/content-widgets/fs-content-widgets.module.js +74 -0
  25. package/esm2015/firestitch-content-widget.js +5 -0
  26. package/esm2015/public_api.js +5 -0
  27. package/fesm2015/firestitch-content-widget.js +254 -0
  28. package/fesm2015/firestitch-content-widget.js.map +1 -0
  29. package/firestitch-content-widget.d.ts +5 -0
  30. package/package.json +27 -0
  31. package/public_api.d.ts +5 -0
  32. package/styles.scss +0 -0
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { FsContentWidgetConfig } from '../../interfaces/content-widget-config';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FsContentWidgetComponent implements OnDestroy, OnInit {
5
+ config: FsContentWidgetConfig;
6
+ private _cdRef;
7
+ content: any;
8
+ private destroy$;
9
+ tag: string;
10
+ constructor(config: FsContentWidgetConfig, _cdRef: ChangeDetectorRef);
11
+ ngOnInit(): void;
12
+ ngOnDestroy(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsContentWidgetComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsContentWidgetComponent, "fs-content-widget", never, { "tag": "tag"; }, {}, never, never>;
15
+ }
@@ -0,0 +1 @@
1
+ export * from './content-widget.component';
@@ -0,0 +1,11 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/content-widget/content-widget.component";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@firestitch/html-editor";
6
+ export declare class FsContentWidgetModule {
7
+ static forRoot(): ModuleWithProviders<FsContentWidgetModule>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsContentWidgetModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FsContentWidgetModule, [typeof i1.FsContentWidgetComponent], [typeof i2.CommonModule, typeof i3.FsHtmlEditorModule], [typeof i1.FsContentWidgetComponent]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<FsContentWidgetModule>;
11
+ }
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const FS_CONTENT_WIDGET_CONFIG: InjectionToken<any>;
@@ -0,0 +1 @@
1
+ export * from './content-wiget.injector';
@@ -0,0 +1,4 @@
1
+ import { Observable } from "rxjs";
2
+ export interface FsContentWidgetConfig {
3
+ fetchContentWidget: (tag: string) => Observable<string>;
4
+ }
@@ -0,0 +1,19 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { MatDialogRef } from '@angular/material/dialog';
3
+ import { FsHtmlEditorConfig } from '@firestitch/html-editor';
4
+ import { FsMessage } from '@firestitch/message';
5
+ import { Observable } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ export declare class FsContentWidgetComponent implements OnInit {
8
+ private _dialogRef;
9
+ private _message;
10
+ private _data;
11
+ contentWidget: any;
12
+ htmlEditorConfig: FsHtmlEditorConfig;
13
+ private _saveContentWidget;
14
+ constructor(_dialogRef: MatDialogRef<FsContentWidgetComponent>, _message: FsMessage, _data: any);
15
+ ngOnInit(): void;
16
+ save: () => Observable<any>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsContentWidgetComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsContentWidgetComponent, "ng-component", never, {}, {}, never, never>;
19
+ }
@@ -0,0 +1 @@
1
+ export * from './content-widget.component';
@@ -0,0 +1,22 @@
1
+ import { OnInit, OnDestroy } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { FsListComponent, FsListConfig } from '@firestitch/list';
4
+ import { Observable } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export declare class FsContentWidgetsComponent implements OnInit, OnDestroy {
7
+ private _dialog;
8
+ fetchContentWidgets: (query?: string) => Observable<{
9
+ contentWigets: any[];
10
+ paging?: any;
11
+ }>;
12
+ saveContentWidget: (contentWidget: any) => Observable<any>;
13
+ list: FsListComponent;
14
+ config: FsListConfig;
15
+ private _destroy$;
16
+ constructor(_dialog: MatDialog);
17
+ ngOnInit(): void;
18
+ ngOnDestroy(): void;
19
+ open(contentWidget: any): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsContentWidgetsComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsContentWidgetsComponent, "fs-content-widgets", never, { "fetchContentWidgets": "fetchContentWidgets"; "saveContentWidget": "saveContentWidget"; }, {}, never, never>;
22
+ }
@@ -0,0 +1 @@
1
+ export * from './content-widgets.component';
@@ -0,0 +1,21 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/content-widgets/content-widgets.component";
4
+ import * as i2 from "./components/content-widget/content-widget.component";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/forms";
7
+ import * as i5 from "@angular/material/dialog";
8
+ import * as i6 from "@angular/material/input";
9
+ import * as i7 from "@angular/material/form-field";
10
+ import * as i8 from "@angular/material/button";
11
+ import * as i9 from "@firestitch/list";
12
+ import * as i10 from "@firestitch/date";
13
+ import * as i11 from "@firestitch/form";
14
+ import * as i12 from "@firestitch/html-editor";
15
+ import * as i13 from "@firestitch/dialog";
16
+ export declare class FsContentWidgetsModule {
17
+ static forRoot(): ModuleWithProviders<FsContentWidgetsModule>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsContentWidgetsModule, never>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FsContentWidgetsModule, [typeof i1.FsContentWidgetsComponent, typeof i2.FsContentWidgetComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.MatDialogModule, typeof i6.MatInputModule, typeof i7.MatFormFieldModule, typeof i8.MatButtonModule, typeof i9.FsListModule, typeof i10.FsDateModule, typeof i11.FsFormModule, typeof i12.FsHtmlEditorModule, typeof i13.FsDialogModule], [typeof i1.FsContentWidgetsComponent]>;
20
+ static ɵinj: i0.ɵɵInjectorDeclaration<FsContentWidgetsModule>;
21
+ }
@@ -0,0 +1,287 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/material/dialog'), require('@angular/forms'), require('@angular/material/input'), require('@angular/material/form-field'), require('@firestitch/list'), require('@firestitch/date'), require('@firestitch/dialog'), require('@firestitch/form'), require('@firestitch/html-editor'), require('rxjs/operators'), require('@firestitch/message'), require('@angular/material/button'), require('@firestitch/filter'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('@firestitch/content-widget', ['exports', '@angular/core', '@angular/common', '@angular/material/dialog', '@angular/forms', '@angular/material/input', '@angular/material/form-field', '@firestitch/list', '@firestitch/date', '@firestitch/dialog', '@firestitch/form', '@firestitch/html-editor', 'rxjs/operators', '@firestitch/message', '@angular/material/button', '@firestitch/filter', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.firestitch = global.firestitch || {}, global.firestitch["content-widget"] = {}), global.ng.core, global.ng.common, global.ng.material.dialog, global.ng.forms, global.ng.material.input, global.ng.material.formField, global.i2$1, global.i3$1, global.i3, global.i8, global.i5, global.rxjs.operators, global.i2, global.ng.material.button, global.filter, global.rxjs));
5
+ })(this, (function (exports, i0, i2$2, i1, i7, i9, i4, i2$1, i3$1, i3, i8, i5, operators, i2, i6, filter, rxjs) { 'use strict';
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
27
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
28
+ var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
29
+ var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
30
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
31
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
32
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
33
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
34
+ var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
35
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
36
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
37
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
38
+
39
+ var FsContentWidgetComponent$1 = /** @class */ (function () {
40
+ function FsContentWidgetComponent(_dialogRef, _message, _data) {
41
+ var _this = this;
42
+ this._dialogRef = _dialogRef;
43
+ this._message = _message;
44
+ this._data = _data;
45
+ this.htmlEditorConfig = {
46
+ autofocus: true,
47
+ };
48
+ this.save = function () {
49
+ return _this._saveContentWidget(_this.contentWidget)
50
+ .pipe(operators.tap(function (contentWidget) {
51
+ _this.contentWidget = Object.assign(Object.assign({}, _this.contentWidget), contentWidget);
52
+ _this._dialogRef.close(_this.contentWidget);
53
+ _this._message.success('Saved Changes');
54
+ }));
55
+ };
56
+ }
57
+ FsContentWidgetComponent.prototype.ngOnInit = function () {
58
+ this._saveContentWidget = this._data.saveContentWidget;
59
+ this.contentWidget = Object.assign({}, this._data.contentWidget);
60
+ };
61
+ return FsContentWidgetComponent;
62
+ }());
63
+ FsContentWidgetComponent$1.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetComponent$1, deps: [{ token: i1__namespace.MatDialogRef }, { token: i2__namespace.FsMessage }, { token: i1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
64
+ FsContentWidgetComponent$1.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent$1, selector: "ng-component", ngImport: i0__namespace, template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>Content Widget</div>\n <mat-dialog-content>\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\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\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%}:host ::ng-deep .mat-dialog-content{min-height:400px}\n"], components: [{ type: i3__namespace.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5__namespace.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config"] }, { type: i6__namespace.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: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8__namespace.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: i1__namespace.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8__namespace.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1__namespace.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
65
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetComponent$1, decorators: [{
66
+ type: i0.Component,
67
+ args: [{
68
+ templateUrl: './content-widget.component.html',
69
+ styleUrls: ['./content-widget.component.scss'],
70
+ }]
71
+ }], ctorParameters: function () {
72
+ return [{ type: i1__namespace.MatDialogRef }, { type: i2__namespace.FsMessage }, { type: undefined, decorators: [{
73
+ type: i0.Inject,
74
+ args: [i1.MAT_DIALOG_DATA]
75
+ }] }];
76
+ } });
77
+
78
+ var FsContentWidgetsComponent = /** @class */ (function () {
79
+ function FsContentWidgetsComponent(_dialog) {
80
+ this._dialog = _dialog;
81
+ this.config = null;
82
+ this._destroy$ = new rxjs.Subject();
83
+ }
84
+ FsContentWidgetsComponent.prototype.ngOnInit = function () {
85
+ var _this = this;
86
+ this.config = {
87
+ filters: [
88
+ {
89
+ name: 'keyword',
90
+ type: filter.ItemType.Keyword,
91
+ label: 'Search',
92
+ },
93
+ ],
94
+ fetch: function (query) {
95
+ return _this.fetchContentWidgets(query.keyword)
96
+ .pipe(operators.map(function (data) { return ({ data: data.contentWidgets }); }));
97
+ },
98
+ };
99
+ };
100
+ FsContentWidgetsComponent.prototype.ngOnDestroy = function () {
101
+ this._destroy$.next();
102
+ this._destroy$.complete();
103
+ };
104
+ FsContentWidgetsComponent.prototype.open = function (contentWidget) {
105
+ var _this = this;
106
+ var dialogRef = this._dialog.open(FsContentWidgetComponent$1, {
107
+ width: '90%',
108
+ data: {
109
+ contentWidget: contentWidget,
110
+ saveContentWidget: this.saveContentWidget,
111
+ },
112
+ });
113
+ dialogRef.afterClosed()
114
+ .pipe(operators.takeUntil(this._destroy$))
115
+ .subscribe(function () {
116
+ _this.list.reload();
117
+ });
118
+ };
119
+ return FsContentWidgetsComponent;
120
+ }());
121
+ FsContentWidgetsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsComponent, deps: [{ token: i1__namespace.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
122
+ FsContentWidgetsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$1.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, 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__namespace$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3__namespace$1.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
123
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsComponent, decorators: [{
124
+ type: i0.Component,
125
+ args: [{
126
+ selector: 'fs-content-widgets',
127
+ templateUrl: './content-widgets.component.html',
128
+ styleUrls: ['./content-widgets.component.scss'],
129
+ }]
130
+ }], ctorParameters: function () { return [{ type: i1__namespace.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
131
+ type: i0.Input
132
+ }], saveContentWidget: [{
133
+ type: i0.Input
134
+ }], list: [{
135
+ type: i0.ViewChild,
136
+ args: [i2$1.FsListComponent, { static: true }]
137
+ }] } });
138
+
139
+ var FsContentWidgetsModule = /** @class */ (function () {
140
+ function FsContentWidgetsModule() {
141
+ }
142
+ FsContentWidgetsModule.forRoot = function () {
143
+ return {
144
+ ngModule: FsContentWidgetsModule,
145
+ };
146
+ };
147
+ return FsContentWidgetsModule;
148
+ }());
149
+ FsContentWidgetsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
150
+ FsContentWidgetsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
151
+ FsContentWidgetComponent$1], imports: [i2$2.CommonModule,
152
+ i7.FormsModule,
153
+ i1.MatDialogModule,
154
+ i9.MatInputModule,
155
+ i4.MatFormFieldModule,
156
+ i6.MatButtonModule,
157
+ i2$1.FsListModule,
158
+ i3$1.FsDateModule,
159
+ i8.FsFormModule,
160
+ i5.FsHtmlEditorModule,
161
+ i3.FsDialogModule], exports: [FsContentWidgetsComponent] });
162
+ FsContentWidgetsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsModule, imports: [[
163
+ i2$2.CommonModule,
164
+ i7.FormsModule,
165
+ i1.MatDialogModule,
166
+ i9.MatInputModule,
167
+ i4.MatFormFieldModule,
168
+ i6.MatButtonModule,
169
+ i2$1.FsListModule,
170
+ i3$1.FsDateModule,
171
+ i8.FsFormModule,
172
+ i5.FsHtmlEditorModule,
173
+ i3.FsDialogModule,
174
+ ]] });
175
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetsModule, decorators: [{
176
+ type: i0.NgModule,
177
+ args: [{
178
+ imports: [
179
+ i2$2.CommonModule,
180
+ i7.FormsModule,
181
+ i1.MatDialogModule,
182
+ i9.MatInputModule,
183
+ i4.MatFormFieldModule,
184
+ i6.MatButtonModule,
185
+ i2$1.FsListModule,
186
+ i3$1.FsDateModule,
187
+ i8.FsFormModule,
188
+ i5.FsHtmlEditorModule,
189
+ i3.FsDialogModule,
190
+ ],
191
+ exports: [
192
+ FsContentWidgetsComponent,
193
+ ],
194
+ declarations: [
195
+ FsContentWidgetsComponent,
196
+ FsContentWidgetComponent$1,
197
+ ],
198
+ }]
199
+ }] });
200
+
201
+ var FS_CONTENT_WIDGET_CONFIG = new i0.InjectionToken('fs-content-widget-config');
202
+
203
+ var FsContentWidgetComponent = /** @class */ (function () {
204
+ function FsContentWidgetComponent(config, _cdRef) {
205
+ this.config = config;
206
+ this._cdRef = _cdRef;
207
+ this.destroy$ = new rxjs.Subject();
208
+ }
209
+ FsContentWidgetComponent.prototype.ngOnInit = function () {
210
+ var _this = this;
211
+ this.config.fetchContentWidget(this.tag)
212
+ .pipe(operators.takeUntil(this.destroy$))
213
+ .subscribe(function (content) {
214
+ _this.content = content;
215
+ _this._cdRef.markForCheck();
216
+ });
217
+ };
218
+ FsContentWidgetComponent.prototype.ngOnDestroy = function () {
219
+ this.destroy$.next();
220
+ this.destroy$.complete();
221
+ };
222
+ return FsContentWidgetComponent;
223
+ }());
224
+ FsContentWidgetComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetComponent, deps: [{ token: FS_CONTENT_WIDGET_CONFIG }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
225
+ FsContentWidgetComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent, selector: "fs-content-widget", inputs: { tag: "tag" }, ngImport: i0__namespace, template: "<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: i5__namespace.FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: ["html"] }], directives: [{ type: i2__namespace$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
226
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetComponent, decorators: [{
227
+ type: i0.Component,
228
+ args: [{
229
+ selector: 'fs-content-widget',
230
+ templateUrl: './content-widget.component.html',
231
+ styleUrls: ['./content-widget.component.scss'],
232
+ }]
233
+ }], ctorParameters: function () {
234
+ return [{ type: undefined, decorators: [{
235
+ type: i0.Inject,
236
+ args: [FS_CONTENT_WIDGET_CONFIG]
237
+ }] }, { type: i0__namespace.ChangeDetectorRef }];
238
+ }, propDecorators: { tag: [{
239
+ type: i0.Input
240
+ }] } });
241
+
242
+ var FsContentWidgetModule = /** @class */ (function () {
243
+ function FsContentWidgetModule() {
244
+ }
245
+ FsContentWidgetModule.forRoot = function () {
246
+ return {
247
+ ngModule: FsContentWidgetModule,
248
+ };
249
+ };
250
+ return FsContentWidgetModule;
251
+ }());
252
+ FsContentWidgetModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
253
+ FsContentWidgetModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetModule, declarations: [FsContentWidgetComponent], imports: [i2$2.CommonModule,
254
+ i5.FsHtmlEditorModule], exports: [FsContentWidgetComponent] });
255
+ FsContentWidgetModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetModule, imports: [[
256
+ i2$2.CommonModule,
257
+ i5.FsHtmlEditorModule,
258
+ ]] });
259
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsContentWidgetModule, decorators: [{
260
+ type: i0.NgModule,
261
+ args: [{
262
+ imports: [
263
+ i2$2.CommonModule,
264
+ i5.FsHtmlEditorModule,
265
+ ],
266
+ exports: [
267
+ FsContentWidgetComponent,
268
+ ],
269
+ declarations: [
270
+ FsContentWidgetComponent,
271
+ ],
272
+ }]
273
+ }] });
274
+
275
+ /**
276
+ * Generated bundle index. Do not edit.
277
+ */
278
+
279
+ exports.FsContentWidgetComponent = FsContentWidgetComponent;
280
+ exports.FsContentWidgetModule = FsContentWidgetModule;
281
+ exports.FsContentWidgetsComponent = FsContentWidgetsComponent;
282
+ exports.FsContentWidgetsModule = FsContentWidgetsModule;
283
+
284
+ Object.defineProperty(exports, '__esModule', { value: true });
285
+
286
+ }));
287
+ //# sourceMappingURL=firestitch-content-widget.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestitch-content-widget.umd.js","sources":["../../src/app/content-widgets/components/content-widget/content-widget.component.ts","../../src/app/content-widgets/components/content-widget/content-widget.component.html","../../src/app/content-widgets/components/content-widgets/content-widgets.component.ts","../../src/app/content-widgets/components/content-widgets/content-widgets.component.html","../../src/app/content-widgets/fs-content-widgets.module.ts","../../src/app/content-widget/injectors/content-wiget.injector.ts","../../src/app/content-widget/components/content-widget/content-widget.component.ts","../../src/app/content-widget/components/content-widget/content-widget.component.html","../../src/app/content-widget/fs-content-widget.module.ts","../../src/firestitch-content-widget.ts"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\n\nimport { FsMessage } from '@firestitch/message';\nimport { Observable } from 'rxjs';\n\nimport { tap } from 'rxjs/operators';\n\n\n@Component({\n templateUrl: './content-widget.component.html',\n styleUrls: ['./content-widget.component.scss'],\n})\nexport class FsContentWidgetComponent implements OnInit {\n\n public contentWidget;\n public htmlEditorConfig: FsHtmlEditorConfig = {\n autofocus: true,\n };\n \n private _saveContentWidget: (contentWidget: any) => Observable<any>;\n\n public constructor(\n private _dialogRef: MatDialogRef<FsContentWidgetComponent>,\n private _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n ) {\n }\n\n public ngOnInit(): void {\n this._saveContentWidget = this._data.saveContentWidget;\n this.contentWidget = { ...this._data.contentWidget };\n }\n\n public save = () => {\n return this._saveContentWidget(this.contentWidget)\n .pipe(\n tap((contentWidget) => {\n this.contentWidget = { ...this.contentWidget, ...contentWidget };\n this._dialogRef.close(this.contentWidget);\n this._message.success('Saved Changes');\n }),\n );\n }\n\n}\n","\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>Content Widget</div>\n <mat-dialog-content>\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\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\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","import { Component, ViewChild, OnInit, OnDestroy, Input } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { FsContentWidgetComponent } from '../content-widget/content-widget.component';\n\n\n@Component({\n selector: 'fs-content-widgets',\n templateUrl: './content-widgets.component.html',\n styleUrls: ['./content-widgets.component.scss'],\n})\nexport class FsContentWidgetsComponent implements OnInit, OnDestroy {\n\n @Input() public fetchContentWidgets: (query?: string) => Observable<{ contentWigets: any[], paging?: any }>;\n @Input() public saveContentWidget: (contentWidget: any) => Observable<any>;\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent;\n\n public config: FsListConfig = null;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n fetch: (query) => {\n return this.fetchContentWidgets(query.keyword)\n .pipe(\n map((data: any) => ({ data: data.contentWidgets })),\n );\n },\n };\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public open(contentWidget): void {\n const dialogRef = this._dialog.open(FsContentWidgetComponent, {\n width: '90%',\n data: { \n contentWidget,\n saveContentWidget: this.saveContentWidget,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n}\n","<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","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetsComponent } from './components/content-widgets';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsHtmlEditorModule,\n FsDialogModule,\n ],\n exports: [\n FsContentWidgetsComponent,\n ],\n declarations: [\n FsContentWidgetsComponent,\n FsContentWidgetComponent,\n ],\n})\nexport class FsContentWidgetsModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetsModule> {\n return {\n ngModule: FsContentWidgetsModule,\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_WIDGET_CONFIG = new InjectionToken<any>('fs-content-widget-config');\n","import { ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FS_CONTENT_WIDGET_CONFIG } from '../../injectors';\nimport { FsContentWidgetConfig } from '../../interfaces/content-widget-config';\n\n\n@Component({\n selector: 'fs-content-widget',\n templateUrl: './content-widget.component.html',\n styleUrls: ['./content-widget.component.scss'],\n})\nexport class FsContentWidgetComponent implements OnDestroy, OnInit {\n\n public content;\n\n private destroy$ = new Subject();\n\n @Input() public tag: string;\n\n constructor(\n @Inject(FS_CONTENT_WIDGET_CONFIG) public config: FsContentWidgetConfig,\n private _cdRef: ChangeDetectorRef,\n ) { }\n \n public ngOnInit(): void {\n this.config.fetchContentWidget(this.tag)\n .pipe(\n takeUntil(this.destroy$),\n )\n .subscribe((content) => {\n this.content = content;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n}\n","<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n FsHtmlEditorModule,\n ],\n exports: [\n FsContentWidgetComponent,\n ],\n declarations: [\n FsContentWidgetComponent,\n ],\n})\nexport class FsContentWidgetModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetModule> {\n return {\n ngModule: FsContentWidgetModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["tap","FsContentWidgetComponent","MAT_DIALOG_DATA","Component","Inject","Subject","ItemType","map","takeUntil","FsListComponent","Input","ViewChild","CommonModule","FormsModule","MatDialogModule","MatInputModule","MatFormFieldModule","MatButtonModule","FsListModule","FsDateModule","FsFormModule","FsHtmlEditorModule","FsDialogModule","NgModule","InjectionToken"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { ChangeDetectorRef, Component, Inject, Input } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { FS_CONTENT_WIDGET_CONFIG } from '../../injectors';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@firestitch/html-editor";
7
+ import * as i2 from "@angular/common";
8
+ export class FsContentWidgetComponent {
9
+ constructor(config, _cdRef) {
10
+ this.config = config;
11
+ this._cdRef = _cdRef;
12
+ this.destroy$ = new Subject();
13
+ }
14
+ ngOnInit() {
15
+ this.config.fetchContentWidget(this.tag)
16
+ .pipe(takeUntil(this.destroy$))
17
+ .subscribe((content) => {
18
+ this.content = content;
19
+ this._cdRef.markForCheck();
20
+ });
21
+ }
22
+ ngOnDestroy() {
23
+ this.destroy$.next();
24
+ this.destroy$.complete();
25
+ }
26
+ }
27
+ 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 });
28
+ 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-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: i1.FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: ["html"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
30
+ type: Component,
31
+ args: [{
32
+ selector: 'fs-content-widget',
33
+ templateUrl: './content-widget.component.html',
34
+ styleUrls: ['./content-widget.component.scss'],
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
37
+ type: Inject,
38
+ args: [FS_CONTENT_WIDGET_CONFIG]
39
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tag: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb250ZW50LXdpZGdldC9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0L2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29udGVudC13aWRnZXQvY29tcG9uZW50cy9jb250ZW50LXdpZGdldC9jb250ZW50LXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUzNELE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDMkMsTUFBNkIsRUFDOUQsTUFBeUI7UUFEUSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM5RCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQU4zQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQU83QixDQUFDO0lBRUUsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUN2QyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3NIQTNCVSx3QkFBd0Isa0JBU3pCLHdCQUF3QjswR0FUdkIsd0JBQXdCLGlGQ2JyQyw0RUFBc0U7NEZEYXpELHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDL0M7OzBCQVVJLE1BQU07MkJBQUMsd0JBQXdCOzRFQUhsQixHQUFHO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRlNfQ09OVEVOVF9XSURHRVRfQ09ORklHIH0gZnJvbSAnLi4vLi4vaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQ29udGVudFdpZGdldENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29udGVudC13aWRnZXQtY29uZmlnJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1jb250ZW50LXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblxuICBwdWJsaWMgY29udGVudDtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoKSBwdWJsaWMgdGFnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGU19DT05URU5UX1dJREdFVF9DT05GSUcpIHB1YmxpYyBjb25maWc6IEZzQ29udGVudFdpZGdldENvbmZpZyxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkgeyB9XG4gIFxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcuZmV0Y2hDb250ZW50V2lkZ2V0KHRoaXMudGFnKVxuICAgIC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgIClcbiAgICAuc3Vic2NyaWJlKChjb250ZW50KSA9PiB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbn1cbiIsIjxmcy1odG1sLXJlbmRlcmVyICpuZ0lmPVwiY29udGVudFwiIFtodG1sXT1cImNvbnRlbnRcIj48L2ZzLWh0bWwtcmVuZGVyZXI+Il19
@@ -0,0 +1,2 @@
1
+ export * from './content-widget.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0L2NvbXBvbmVudHMvY29udGVudC13aWRnZXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGVudC13aWRnZXQuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FsHtmlEditorModule } from '@firestitch/html-editor';
4
+ import { FsContentWidgetComponent } from './components/content-widget';
5
+ import * as i0 from "@angular/core";
6
+ export class FsContentWidgetModule {
7
+ static forRoot() {
8
+ return {
9
+ ngModule: FsContentWidgetModule,
10
+ };
11
+ }
12
+ }
13
+ FsContentWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FsContentWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, declarations: [FsContentWidgetComponent], imports: [CommonModule,
15
+ FsHtmlEditorModule], exports: [FsContentWidgetComponent] });
16
+ FsContentWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, imports: [[
17
+ CommonModule,
18
+ FsHtmlEditorModule,
19
+ ]] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ imports: [
24
+ CommonModule,
25
+ FsHtmlEditorModule,
26
+ ],
27
+ exports: [
28
+ FsContentWidgetComponent,
29
+ ],
30
+ declarations: [
31
+ FsContentWidgetComponent,
32
+ ],
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC13aWRnZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jb250ZW50LXdpZGdldC9mcy1jb250ZW50LXdpZGdldC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQWdCdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUscUJBQXFCO1NBQ2hDLENBQUM7SUFDSixDQUFDOzttSEFMVSxxQkFBcUI7b0hBQXJCLHFCQUFxQixpQkFIOUIsd0JBQXdCLGFBUnhCLFlBQVk7UUFFWixrQkFBa0IsYUFHbEIsd0JBQXdCO29IQU1mLHFCQUFxQixZQVp2QjtZQUNQLFlBQVk7WUFFWixrQkFBa0I7U0FDbkI7NEZBUVUscUJBQXFCO2tCQWJqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUVaLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3QjtxQkFDekI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRnNIdG1sRWRpdG9yTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbC1lZGl0b3InO1xuXG5pbXBvcnQgeyBGc0NvbnRlbnRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC13aWRnZXQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG5cbiAgICBGc0h0bWxFZGl0b3JNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0NvbnRlbnRXaWRnZXRDb21wb25lbnQsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZzQ29udGVudFdpZGdldENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNDb250ZW50V2lkZ2V0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGc0NvbnRlbnRXaWRnZXRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZzQ29udGVudFdpZGdldE1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const FS_CONTENT_WIDGET_CONFIG = new InjectionToken('fs-content-widget-config');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC13aWdldC5pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29udGVudC13aWRnZXQvaW5qZWN0b3JzL2NvbnRlbnQtd2lnZXQuaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBTSwwQkFBMEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZTX0NPTlRFTlRfV0lER0VUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdmcy1jb250ZW50LXdpZGdldC1jb25maWcnKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './content-wiget.injector';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0L2luamVjdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXdpZ2V0LmluamVjdG9yJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC13aWRnZXQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb250ZW50LXdpZGdldC9pbnRlcmZhY2VzL2NvbnRlbnQtd2lkZ2V0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNDb250ZW50V2lkZ2V0Q29uZmlnIHtcbiAgZmV0Y2hDb250ZW50V2lkZ2V0OiAodGFnOiBzdHJpbmcpID0+IE9ic2VydmFibGU8c3RyaW5nPjtcbn0iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { tap } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/dialog";
7
+ import * as i2 from "@firestitch/message";
8
+ import * as i3 from "@firestitch/dialog";
9
+ import * as i4 from "@angular/material/form-field";
10
+ import * as i5 from "@firestitch/html-editor";
11
+ import * as i6 from "@angular/material/button";
12
+ import * as i7 from "@angular/forms";
13
+ import * as i8 from "@firestitch/form";
14
+ import * as i9 from "@angular/material/input";
15
+ export class FsContentWidgetComponent {
16
+ constructor(_dialogRef, _message, _data) {
17
+ this._dialogRef = _dialogRef;
18
+ this._message = _message;
19
+ this._data = _data;
20
+ this.htmlEditorConfig = {
21
+ autofocus: true,
22
+ };
23
+ this.save = () => {
24
+ return this._saveContentWidget(this.contentWidget)
25
+ .pipe(tap((contentWidget) => {
26
+ this.contentWidget = Object.assign(Object.assign({}, this.contentWidget), contentWidget);
27
+ this._dialogRef.close(this.contentWidget);
28
+ this._message.success('Saved Changes');
29
+ }));
30
+ };
31
+ }
32
+ ngOnInit() {
33
+ this._saveContentWidget = this._data.saveContentWidget;
34
+ this.contentWidget = Object.assign({}, this._data.contentWidget);
35
+ }
36
+ }
37
+ FsContentWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
38
+ FsContentWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetComponent, selector: "ng-component", ngImport: i0, template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>Content Widget</div>\n <mat-dialog-content>\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\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\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%}:host ::ng-deep .mat-dialog-content{min-height:400px}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config"] }, { type: i6.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: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.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: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ templateUrl: './content-widget.component.html',
43
+ styleUrls: ['./content-widget.component.scss'],
44
+ }]
45
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: undefined, decorators: [{
46
+ type: Inject,
47
+ args: [MAT_DIALOG_DATA]
48
+ }] }]; } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb250ZW50LXdpZGdldHMvY29tcG9uZW50cy9jb250ZW50LXdpZGdldC9jb250ZW50LXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0cy9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0L2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFPckMsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUNVLFVBQWtELEVBQ2xELFFBQW1CLEVBQ00sS0FBVTtRQUZuQyxlQUFVLEdBQVYsVUFBVSxDQUF3QztRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ00sVUFBSyxHQUFMLEtBQUssQ0FBSztRQVR0QyxxQkFBZ0IsR0FBdUI7WUFDNUMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQztRQWdCSyxTQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7aUJBQy9DLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsbUNBQVEsSUFBSSxDQUFDLGFBQWEsR0FBSyxhQUFhLENBQUUsQ0FBQztnQkFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFBO0lBaEJELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEscUJBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUUsQ0FBQztJQUN2RCxDQUFDOztzSEFuQlUsd0JBQXdCLHVFQVl6QixlQUFlOzBHQVpkLHdCQUF3QixvRENmckMsMjFCQW1DQTs0RkRwQmEsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQzs7MEJBYUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9odG1sLWVkaXRvcic7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGNvbnRlbnRXaWRnZXQ7XG4gIHB1YmxpYyBodG1sRWRpdG9yQ29uZmlnOiBGc0h0bWxFZGl0b3JDb25maWcgPSB7XG4gICAgYXV0b2ZvY3VzOiB0cnVlLFxuICB9O1xuICBcbiAgcHJpdmF0ZSBfc2F2ZUNvbnRlbnRXaWRnZXQ6IChjb250ZW50V2lkZ2V0OiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RnNDb250ZW50V2lkZ2V0Q29tcG9uZW50PixcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2F2ZUNvbnRlbnRXaWRnZXQgPSB0aGlzLl9kYXRhLnNhdmVDb250ZW50V2lkZ2V0O1xuICAgIHRoaXMuY29udGVudFdpZGdldCA9IHsgLi4udGhpcy5fZGF0YS5jb250ZW50V2lkZ2V0IH07XG4gIH1cblxuICBwdWJsaWMgc2F2ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fc2F2ZUNvbnRlbnRXaWRnZXQodGhpcy5jb250ZW50V2lkZ2V0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoY29udGVudFdpZGdldCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGVudFdpZGdldCA9IHsgLi4udGhpcy5jb250ZW50V2lkZ2V0LCAuLi5jb250ZW50V2lkZ2V0IH07XG4gICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHRoaXMuY29udGVudFdpZGdldCk7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG59XG4iLCJcbjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInNhdmVcIj5cbiAgPGZzLWRpYWxvZz5cbiAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+Q29udGVudCBXaWRnZXQ8L2Rpdj5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgbWF0SW5wdXQgXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lXCIgXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250ZW50V2lkZ2V0Lm5hbWVcIiBcbiAgICAgICAgICBuYW1lPVwibmFtZVwiIFxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZnMtaHRtbC1lZGl0b3JcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb250ZW50V2lkZ2V0LmNvbnRlbnRcIlxuICAgICAgICBbY29uZmlnXT1cImh0bWxFZGl0b3JDb25maWdcIlxuICAgICAgICBuYW1lPVwiY29udGVudFwiPlxuICAgICAgPC9mcy1odG1sLWVkaXRvcj5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICBtYXQtYnV0dG9uIFxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICBTYXZlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gXG4gICAgICAgICAgbWF0LWJ1dHRvbiBcbiAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCIgXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './content-widget.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0cy9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { Component, ViewChild, Input } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { FsListComponent } from '@firestitch/list';
4
+ import { ItemType } from '@firestitch/filter';
5
+ import { Subject } from 'rxjs';
6
+ import { map, takeUntil } from 'rxjs/operators';
7
+ import { FsContentWidgetComponent } from '../content-widget/content-widget.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/dialog";
10
+ import * as i2 from "@firestitch/list";
11
+ import * as i3 from "@firestitch/date";
12
+ export class FsContentWidgetsComponent {
13
+ constructor(_dialog) {
14
+ this._dialog = _dialog;
15
+ this.config = null;
16
+ this._destroy$ = new Subject();
17
+ }
18
+ ngOnInit() {
19
+ this.config = {
20
+ filters: [
21
+ {
22
+ name: 'keyword',
23
+ type: ItemType.Keyword,
24
+ label: 'Search',
25
+ },
26
+ ],
27
+ fetch: (query) => {
28
+ return this.fetchContentWidgets(query.keyword)
29
+ .pipe(map((data) => ({ data: data.contentWidgets })));
30
+ },
31
+ };
32
+ }
33
+ ngOnDestroy() {
34
+ this._destroy$.next();
35
+ this._destroy$.complete();
36
+ }
37
+ open(contentWidget) {
38
+ const dialogRef = this._dialog.open(FsContentWidgetComponent, {
39
+ width: '90%',
40
+ data: {
41
+ contentWidget,
42
+ saveContentWidget: this.saveContentWidget,
43
+ },
44
+ });
45
+ dialogRef.afterClosed()
46
+ .pipe(takeUntil(this._destroy$))
47
+ .subscribe(() => {
48
+ this.list.reload();
49
+ });
50
+ }
51
+ }
52
+ FsContentWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
53
+ FsContentWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget" }, 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.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'fs-content-widgets',
58
+ templateUrl: './content-widgets.component.html',
59
+ styleUrls: ['./content-widgets.component.scss'],
60
+ }]
61
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
62
+ type: Input
63
+ }], saveContentWidget: [{
64
+ type: Input
65
+ }], list: [{
66
+ type: ViewChild,
67
+ args: [FsListComponent, { static: true }]
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC13aWRnZXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29udGVudC13aWRnZXRzL2NvbXBvbmVudHMvY29udGVudC13aWRnZXRzL2NvbnRlbnQtd2lkZ2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0cy9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0cy9jb250ZW50LXdpZGdldHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQVF0RixNQUFNLE9BQU8seUJBQXlCO0lBWXBDLFlBQ1UsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUxyQixXQUFNLEdBQWlCLElBQUksQ0FBQztRQUUzQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUkvQixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7cUJBQzNDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FDcEQsQ0FBQztZQUNOLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxJQUFJLENBQUMsYUFBYTtRQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUM1RCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRTtnQkFDSixhQUFhO2dCQUNiLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxFQUFFO2FBQ3BCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUhBdkRVLHlCQUF5QjsyR0FBekIseUJBQXlCLGdNQUt6QixlQUFlLDhEQ3ZCNUIsNDBCQXdCQTs0RkROYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGtDQUFrQztvQkFDL0MsU0FBUyxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQ2hEO2dHQUdpQixtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUdDLElBQUk7c0JBRFYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNDb250ZW50V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29udGVudC13aWRnZXQvY29udGVudC13aWRnZXQuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1jb250ZW50LXdpZGdldHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGVudC13aWRnZXRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC13aWRnZXRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudFdpZGdldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIGZldGNoQ29udGVudFdpZGdldHM6IChxdWVyeT86IHN0cmluZykgPT4gT2JzZXJ2YWJsZTx7IGNvbnRlbnRXaWdldHM6IGFueVtdLCBwYWdpbmc/OiBhbnkgfT47XG4gIEBJbnB1dCgpIHB1YmxpYyBzYXZlQ29udGVudFdpZGdldDogKGNvbnRlbnRXaWRnZXQ6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hDb250ZW50V2lkZ2V0cyhxdWVyeS5rZXl3b3JkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+ICh7IGRhdGE6IGRhdGEuY29udGVudFdpZGdldHMgfSkpLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb250ZW50V2lkZ2V0KTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oRnNDb250ZW50V2lkZ2V0Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzkwJScsXG4gICAgICBkYXRhOiB7IFxuICAgICAgICBjb250ZW50V2lkZ2V0LFxuICAgICAgICBzYXZlQ29udGVudFdpZGdldDogdGhpcy5zYXZlQ29udGVudFdpZGdldCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIGNsYXNzPVwibmFtZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5OYW1lPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxhIChjbGljayk9XCJvcGVuKHJvdylcIj57e3Jvdy5uYW1lfX08L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5QcmV2aWV3PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInJvdy5jb250ZW50XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIGNsYXNzPVwibW9kaWZpZWRcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TW9kaWZpZWQ8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5tb2RpZmllZERhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './content-widgets.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnRlbnQtd2lkZ2V0cy9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXdpZGdldHMuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatDialogModule } from '@angular/material/dialog';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { MatInputModule } from '@angular/material/input';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { FsListModule } from '@firestitch/list';
8
+ import { FsDateModule } from '@firestitch/date';
9
+ import { FsDialogModule } from '@firestitch/dialog';
10
+ import { FsFormModule } from '@firestitch/form';
11
+ import { FsHtmlEditorModule } from '@firestitch/html-editor';
12
+ import { FsContentWidgetComponent } from './components/content-widget';
13
+ import { FsContentWidgetsComponent } from './components/content-widgets';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import * as i0 from "@angular/core";
16
+ export class FsContentWidgetsModule {
17
+ static forRoot() {
18
+ return {
19
+ ngModule: FsContentWidgetsModule,
20
+ };
21
+ }
22
+ }
23
+ FsContentWidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ FsContentWidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
25
+ FsContentWidgetComponent], imports: [CommonModule,
26
+ FormsModule,
27
+ MatDialogModule,
28
+ MatInputModule,
29
+ MatFormFieldModule,
30
+ MatButtonModule,
31
+ FsListModule,
32
+ FsDateModule,
33
+ FsFormModule,
34
+ FsHtmlEditorModule,
35
+ FsDialogModule], exports: [FsContentWidgetsComponent] });
36
+ FsContentWidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, imports: [[
37
+ CommonModule,
38
+ FormsModule,
39
+ MatDialogModule,
40
+ MatInputModule,
41
+ MatFormFieldModule,
42
+ MatButtonModule,
43
+ FsListModule,
44
+ FsDateModule,
45
+ FsFormModule,
46
+ FsHtmlEditorModule,
47
+ FsDialogModule,
48
+ ]] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, decorators: [{
50
+ type: NgModule,
51
+ args: [{
52
+ imports: [
53
+ CommonModule,
54
+ FormsModule,
55
+ MatDialogModule,
56
+ MatInputModule,
57
+ MatFormFieldModule,
58
+ MatButtonModule,
59
+ FsListModule,
60
+ FsDateModule,
61
+ FsFormModule,
62
+ FsHtmlEditorModule,
63
+ FsDialogModule,
64
+ ],
65
+ exports: [
66
+ FsContentWidgetsComponent,
67
+ ],
68
+ declarations: [
69
+ FsContentWidgetsComponent,
70
+ FsContentWidgetComponent,
71
+ ],
72
+ }]
73
+ }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC13aWRnZXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY29udGVudC13aWRnZXRzL2ZzLWNvbnRlbnQtd2lkZ2V0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBMkIzRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7U0FDakMsQ0FBQztJQUNKLENBQUM7O29IQUxVLHNCQUFzQjtxSEFBdEIsc0JBQXNCLGlCQUovQix5QkFBeUI7UUFDekIsd0JBQXdCLGFBbkJ4QixZQUFZO1FBQ1osV0FBVztRQUVYLGVBQWU7UUFDZixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLGVBQWU7UUFFZixZQUFZO1FBQ1osWUFBWTtRQUNaLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsY0FBYyxhQUdkLHlCQUF5QjtxSEFPaEIsc0JBQXNCLFlBdkJ4QjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBRVgsZUFBZTtZQUNmLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsZUFBZTtZQUVmLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWTtZQUNaLGtCQUFrQjtZQUNsQixjQUFjO1NBQ2Y7NEZBU1Usc0JBQXNCO2tCQXhCbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUVYLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBRWYsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7cUJBQzFCO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7d0JBQ3pCLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuaW1wb3J0IHsgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNIdG1sRWRpdG9yTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbC1lZGl0b3InO1xuXG5pbXBvcnQgeyBGc0NvbnRlbnRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGVudC13aWRnZXQnO1xuaW1wb3J0IHsgRnNDb250ZW50V2lkZ2V0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50LXdpZGdldHMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG5cbiAgICBGc0xpc3RNb2R1bGUsXG4gICAgRnNEYXRlTW9kdWxlLFxuICAgIEZzRm9ybU1vZHVsZSxcbiAgICBGc0h0bWxFZGl0b3JNb2R1bGUsXG4gICAgRnNEaWFsb2dNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0NvbnRlbnRXaWRnZXRzQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGc0NvbnRlbnRXaWRnZXRzQ29tcG9uZW50LFxuICAgIEZzQ29udGVudFdpZGdldENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNDb250ZW50V2lkZ2V0c01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnNDb250ZW50V2lkZ2V0c01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnNDb250ZW50V2lkZ2V0c01vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0aXRjaC1jb250ZW50LXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXJlc3RpdGNoLWNvbnRlbnQtd2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export { FsContentWidgetsModule } from './app/content-widgets/fs-content-widgets.module';
2
+ export { FsContentWidgetModule } from './app/content-widget/fs-content-widget.module';
3
+ export { FsContentWidgetsComponent } from './app/content-widgets/components/content-widgets/content-widgets.component';
4
+ export { FsContentWidgetComponent } from './app/content-widget/components/content-widget/content-widget.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBR3RGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlFQUF5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRnNDb250ZW50V2lkZ2V0c01vZHVsZSB9IGZyb20gJy4vYXBwL2NvbnRlbnQtd2lkZ2V0cy9mcy1jb250ZW50LXdpZGdldHMubW9kdWxlJztcbmV4cG9ydCB7IEZzQ29udGVudFdpZGdldE1vZHVsZSB9IGZyb20gJy4vYXBwL2NvbnRlbnQtd2lkZ2V0L2ZzLWNvbnRlbnQtd2lkZ2V0Lm1vZHVsZSc7XG5leHBvcnQgeyBGc0NvbnRlbnRXaWRnZXRDb25maWcgfSBmcm9tICcuL2FwcC9jb250ZW50LXdpZGdldC9pbnRlcmZhY2VzL2NvbnRlbnQtd2lkZ2V0LWNvbmZpZyc7XG5cbmV4cG9ydCB7IEZzQ29udGVudFdpZGdldHNDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb250ZW50LXdpZGdldHMvY29tcG9uZW50cy9jb250ZW50LXdpZGdldHMvY29udGVudC13aWRnZXRzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc0NvbnRlbnRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb250ZW50LXdpZGdldC9jb21wb25lbnRzL2NvbnRlbnQtd2lkZ2V0L2NvbnRlbnQtd2lkZ2V0LmNvbXBvbmVudCc7Il19
@@ -0,0 +1,254 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Inject, Input, ViewChild, NgModule, InjectionToken } from '@angular/core';
3
+ import * as i2$2 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 from '@angular/material/dialog';
6
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
7
+ import * as i7 from '@angular/forms';
8
+ import { FormsModule } from '@angular/forms';
9
+ import * as i9 from '@angular/material/input';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import * as i4 from '@angular/material/form-field';
12
+ import { MatFormFieldModule } from '@angular/material/form-field';
13
+ import * as i2$1 from '@firestitch/list';
14
+ import { FsListComponent, FsListModule } from '@firestitch/list';
15
+ import * as i3$1 from '@firestitch/date';
16
+ import { FsDateModule } from '@firestitch/date';
17
+ import * as i3 from '@firestitch/dialog';
18
+ import { FsDialogModule } from '@firestitch/dialog';
19
+ import * as i8 from '@firestitch/form';
20
+ import { FsFormModule } from '@firestitch/form';
21
+ import * as i5 from '@firestitch/html-editor';
22
+ import { FsHtmlEditorModule } from '@firestitch/html-editor';
23
+ import * as i2 from '@firestitch/message';
24
+ import { tap, map, takeUntil } from 'rxjs/operators';
25
+ import * as i6 from '@angular/material/button';
26
+ import { MatButtonModule } from '@angular/material/button';
27
+ import { ItemType } from '@firestitch/filter';
28
+ import { Subject } from 'rxjs';
29
+
30
+ class FsContentWidgetComponent$1 {
31
+ constructor(_dialogRef, _message, _data) {
32
+ this._dialogRef = _dialogRef;
33
+ this._message = _message;
34
+ this._data = _data;
35
+ this.htmlEditorConfig = {
36
+ autofocus: true,
37
+ };
38
+ this.save = () => {
39
+ return this._saveContentWidget(this.contentWidget)
40
+ .pipe(tap((contentWidget) => {
41
+ this.contentWidget = Object.assign(Object.assign({}, this.contentWidget), contentWidget);
42
+ this._dialogRef.close(this.contentWidget);
43
+ this._message.success('Saved Changes');
44
+ }));
45
+ };
46
+ }
47
+ ngOnInit() {
48
+ this._saveContentWidget = this._data.saveContentWidget;
49
+ this.contentWidget = Object.assign({}, this._data.contentWidget);
50
+ }
51
+ }
52
+ FsContentWidgetComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, deps: [{ token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
53
+ 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>Content Widget</div>\n <mat-dialog-content>\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\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\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%}:host ::ng-deep .mat-dialog-content{min-height:400px}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i5.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config"] }, { type: i6.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: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.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: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent$1, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ templateUrl: './content-widget.component.html',
58
+ styleUrls: ['./content-widget.component.scss'],
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [MAT_DIALOG_DATA]
63
+ }] }]; } });
64
+
65
+ class FsContentWidgetsComponent {
66
+ constructor(_dialog) {
67
+ this._dialog = _dialog;
68
+ this.config = null;
69
+ this._destroy$ = new Subject();
70
+ }
71
+ ngOnInit() {
72
+ this.config = {
73
+ filters: [
74
+ {
75
+ name: 'keyword',
76
+ type: ItemType.Keyword,
77
+ label: 'Search',
78
+ },
79
+ ],
80
+ fetch: (query) => {
81
+ return this.fetchContentWidgets(query.keyword)
82
+ .pipe(map((data) => ({ data: data.contentWidgets })));
83
+ },
84
+ };
85
+ }
86
+ ngOnDestroy() {
87
+ this._destroy$.next();
88
+ this._destroy$.complete();
89
+ }
90
+ open(contentWidget) {
91
+ const dialogRef = this._dialog.open(FsContentWidgetComponent$1, {
92
+ width: '90%',
93
+ data: {
94
+ contentWidget,
95
+ saveContentWidget: this.saveContentWidget,
96
+ },
97
+ });
98
+ dialogRef.afterClosed()
99
+ .pipe(takeUntil(this._destroy$))
100
+ .subscribe(() => {
101
+ this.list.reload();
102
+ });
103
+ }
104
+ }
105
+ FsContentWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
106
+ FsContentWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget" }, 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"] }] });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsComponent, decorators: [{
108
+ type: Component,
109
+ args: [{
110
+ selector: 'fs-content-widgets',
111
+ templateUrl: './content-widgets.component.html',
112
+ styleUrls: ['./content-widgets.component.scss'],
113
+ }]
114
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
115
+ type: Input
116
+ }], saveContentWidget: [{
117
+ type: Input
118
+ }], list: [{
119
+ type: ViewChild,
120
+ args: [FsListComponent, { static: true }]
121
+ }] } });
122
+
123
+ class FsContentWidgetsModule {
124
+ static forRoot() {
125
+ return {
126
+ ngModule: FsContentWidgetsModule,
127
+ };
128
+ }
129
+ }
130
+ FsContentWidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
131
+ FsContentWidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
132
+ FsContentWidgetComponent$1], imports: [CommonModule,
133
+ FormsModule,
134
+ MatDialogModule,
135
+ MatInputModule,
136
+ MatFormFieldModule,
137
+ MatButtonModule,
138
+ FsListModule,
139
+ FsDateModule,
140
+ FsFormModule,
141
+ FsHtmlEditorModule,
142
+ FsDialogModule], exports: [FsContentWidgetsComponent] });
143
+ FsContentWidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, imports: [[
144
+ CommonModule,
145
+ FormsModule,
146
+ MatDialogModule,
147
+ MatInputModule,
148
+ MatFormFieldModule,
149
+ MatButtonModule,
150
+ FsListModule,
151
+ FsDateModule,
152
+ FsFormModule,
153
+ FsHtmlEditorModule,
154
+ FsDialogModule,
155
+ ]] });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetsModule, decorators: [{
157
+ type: NgModule,
158
+ args: [{
159
+ imports: [
160
+ CommonModule,
161
+ FormsModule,
162
+ MatDialogModule,
163
+ MatInputModule,
164
+ MatFormFieldModule,
165
+ MatButtonModule,
166
+ FsListModule,
167
+ FsDateModule,
168
+ FsFormModule,
169
+ FsHtmlEditorModule,
170
+ FsDialogModule,
171
+ ],
172
+ exports: [
173
+ FsContentWidgetsComponent,
174
+ ],
175
+ declarations: [
176
+ FsContentWidgetsComponent,
177
+ FsContentWidgetComponent$1,
178
+ ],
179
+ }]
180
+ }] });
181
+
182
+ const FS_CONTENT_WIDGET_CONFIG = new InjectionToken('fs-content-widget-config');
183
+
184
+ class FsContentWidgetComponent {
185
+ constructor(config, _cdRef) {
186
+ this.config = config;
187
+ this._cdRef = _cdRef;
188
+ this.destroy$ = new Subject();
189
+ }
190
+ ngOnInit() {
191
+ this.config.fetchContentWidget(this.tag)
192
+ .pipe(takeUntil(this.destroy$))
193
+ .subscribe((content) => {
194
+ this.content = content;
195
+ this._cdRef.markForCheck();
196
+ });
197
+ }
198
+ ngOnDestroy() {
199
+ this.destroy$.next();
200
+ this.destroy$.complete();
201
+ }
202
+ }
203
+ 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 });
204
+ 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-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: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
206
+ type: Component,
207
+ args: [{
208
+ selector: 'fs-content-widget',
209
+ templateUrl: './content-widget.component.html',
210
+ styleUrls: ['./content-widget.component.scss'],
211
+ }]
212
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
213
+ type: Inject,
214
+ args: [FS_CONTENT_WIDGET_CONFIG]
215
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { tag: [{
216
+ type: Input
217
+ }] } });
218
+
219
+ class FsContentWidgetModule {
220
+ static forRoot() {
221
+ return {
222
+ ngModule: FsContentWidgetModule,
223
+ };
224
+ }
225
+ }
226
+ FsContentWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
227
+ FsContentWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, declarations: [FsContentWidgetComponent], imports: [CommonModule,
228
+ FsHtmlEditorModule], exports: [FsContentWidgetComponent] });
229
+ FsContentWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, imports: [[
230
+ CommonModule,
231
+ FsHtmlEditorModule,
232
+ ]] });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentWidgetModule, decorators: [{
234
+ type: NgModule,
235
+ args: [{
236
+ imports: [
237
+ CommonModule,
238
+ FsHtmlEditorModule,
239
+ ],
240
+ exports: [
241
+ FsContentWidgetComponent,
242
+ ],
243
+ declarations: [
244
+ FsContentWidgetComponent,
245
+ ],
246
+ }]
247
+ }] });
248
+
249
+ /**
250
+ * Generated bundle index. Do not edit.
251
+ */
252
+
253
+ export { FsContentWidgetComponent, FsContentWidgetModule, FsContentWidgetsComponent, FsContentWidgetsModule };
254
+ //# sourceMappingURL=firestitch-content-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestitch-content-widget.js","sources":["../../src/app/content-widgets/components/content-widget/content-widget.component.ts","../../src/app/content-widgets/components/content-widget/content-widget.component.html","../../src/app/content-widgets/components/content-widgets/content-widgets.component.ts","../../src/app/content-widgets/components/content-widgets/content-widgets.component.html","../../src/app/content-widgets/fs-content-widgets.module.ts","../../src/app/content-widget/injectors/content-wiget.injector.ts","../../src/app/content-widget/components/content-widget/content-widget.component.ts","../../src/app/content-widget/components/content-widget/content-widget.component.html","../../src/app/content-widget/fs-content-widget.module.ts","../../src/firestitch-content-widget.ts"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\n\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\n\nimport { FsMessage } from '@firestitch/message';\nimport { Observable } from 'rxjs';\n\nimport { tap } from 'rxjs/operators';\n\n\n@Component({\n templateUrl: './content-widget.component.html',\n styleUrls: ['./content-widget.component.scss'],\n})\nexport class FsContentWidgetComponent implements OnInit {\n\n public contentWidget;\n public htmlEditorConfig: FsHtmlEditorConfig = {\n autofocus: true,\n };\n \n private _saveContentWidget: (contentWidget: any) => Observable<any>;\n\n public constructor(\n private _dialogRef: MatDialogRef<FsContentWidgetComponent>,\n private _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private _data: any,\n ) {\n }\n\n public ngOnInit(): void {\n this._saveContentWidget = this._data.saveContentWidget;\n this.contentWidget = { ...this._data.contentWidget };\n }\n\n public save = () => {\n return this._saveContentWidget(this.contentWidget)\n .pipe(\n tap((contentWidget) => {\n this.contentWidget = { ...this.contentWidget, ...contentWidget };\n this._dialogRef.close(this.contentWidget);\n this._message.success('Saved Changes');\n }),\n );\n }\n\n}\n","\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>Content Widget</div>\n <mat-dialog-content>\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\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\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","import { Component, ViewChild, OnInit, OnDestroy, Input } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { FsContentWidgetComponent } from '../content-widget/content-widget.component';\n\n\n@Component({\n selector: 'fs-content-widgets',\n templateUrl: './content-widgets.component.html',\n styleUrls: ['./content-widgets.component.scss'],\n})\nexport class FsContentWidgetsComponent implements OnInit, OnDestroy {\n\n @Input() public fetchContentWidgets: (query?: string) => Observable<{ contentWigets: any[], paging?: any }>;\n @Input() public saveContentWidget: (contentWidget: any) => Observable<any>;\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent;\n\n public config: FsListConfig = null;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n fetch: (query) => {\n return this.fetchContentWidgets(query.keyword)\n .pipe(\n map((data: any) => ({ data: data.contentWidgets })),\n );\n },\n };\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public open(contentWidget): void {\n const dialogRef = this._dialog.open(FsContentWidgetComponent, {\n width: '90%',\n data: { \n contentWidget,\n saveContentWidget: this.saveContentWidget,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n}\n","<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","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetsComponent } from './components/content-widgets';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsHtmlEditorModule,\n FsDialogModule,\n ],\n exports: [\n FsContentWidgetsComponent,\n ],\n declarations: [\n FsContentWidgetsComponent,\n FsContentWidgetComponent,\n ],\n})\nexport class FsContentWidgetsModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetsModule> {\n return {\n ngModule: FsContentWidgetsModule,\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_WIDGET_CONFIG = new InjectionToken<any>('fs-content-widget-config');\n","import { ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FS_CONTENT_WIDGET_CONFIG } from '../../injectors';\nimport { FsContentWidgetConfig } from '../../interfaces/content-widget-config';\n\n\n@Component({\n selector: 'fs-content-widget',\n templateUrl: './content-widget.component.html',\n styleUrls: ['./content-widget.component.scss'],\n})\nexport class FsContentWidgetComponent implements OnDestroy, OnInit {\n\n public content;\n\n private destroy$ = new Subject();\n\n @Input() public tag: string;\n\n constructor(\n @Inject(FS_CONTENT_WIDGET_CONFIG) public config: FsContentWidgetConfig,\n private _cdRef: ChangeDetectorRef,\n ) { }\n \n public ngOnInit(): void {\n this.config.fetchContentWidget(this.tag)\n .pipe(\n takeUntil(this.destroy$),\n )\n .subscribe((content) => {\n this.content = content;\n this._cdRef.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n}\n","<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n FsHtmlEditorModule,\n ],\n exports: [\n FsContentWidgetComponent,\n ],\n declarations: [\n FsContentWidgetComponent,\n ],\n})\nexport class FsContentWidgetModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetModule> {\n return {\n ngModule: FsContentWidgetModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FsContentWidgetComponent"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@firestitch/content-widget" />
5
+ export * from './public_api';
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@firestitch/content-widget",
3
+ "version": "12.0.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/Firestitch/ngx-content-widget"
7
+ },
8
+ "author": {
9
+ "name": "Firestitch",
10
+ "email": "admin@firestitch.com"
11
+ },
12
+ "keywords": [
13
+ "angular"
14
+ ],
15
+ "license": "MIT",
16
+ "peerDependencies": {},
17
+ "dependencies": {
18
+ "tslib": "^2.0.0"
19
+ },
20
+ "sideEffects": false,
21
+ "main": "bundles/firestitch-content-widget.umd.js",
22
+ "module": "fesm2015/firestitch-content-widget.js",
23
+ "es2015": "fesm2015/firestitch-content-widget.js",
24
+ "esm2015": "esm2015/firestitch-content-widget.js",
25
+ "fesm2015": "fesm2015/firestitch-content-widget.js",
26
+ "typings": "firestitch-content-widget.d.ts"
27
+ }
@@ -0,0 +1,5 @@
1
+ export { FsContentWidgetsModule } from './app/content-widgets/fs-content-widgets.module';
2
+ export { FsContentWidgetModule } from './app/content-widget/fs-content-widget.module';
3
+ export { FsContentWidgetConfig } from './app/content-widget/interfaces/content-widget-config';
4
+ export { FsContentWidgetsComponent } from './app/content-widgets/components/content-widgets/content-widgets.component';
5
+ export { FsContentWidgetComponent } from './app/content-widget/components/content-widget/content-widget.component';
package/styles.scss ADDED
File without changes