@firestitch/content-widget 12.2.2 → 13.0.1

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 (57) hide show
  1. package/app/content-widget/components/content-widget/content-widget.component.d.ts +16 -16
  2. package/app/content-widget/components/content-widget/index.d.ts +1 -1
  3. package/app/content-widget/components/content-widget-dialog/content-widget-dialog.component.d.ts +9 -9
  4. package/app/content-widget/components/content-widget-dialog/index.d.ts +1 -1
  5. package/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.d.ts +16 -16
  6. package/app/content-widget/components/content-widget-renderer/index.d.ts +1 -1
  7. package/app/content-widget/components/index.d.ts +1 -1
  8. package/app/content-widget/directives/content-widget-content.directive.d.ts +5 -5
  9. package/app/content-widget/directives/index.d.ts +1 -1
  10. package/app/content-widget/fs-content-widget.module.d.ts +17 -17
  11. package/app/content-widget/injectors/content-wiget.injector.d.ts +2 -2
  12. package/app/content-widget/injectors/index.d.ts +1 -1
  13. package/app/content-widget/interfaces/content-widget-config.d.ts +4 -4
  14. package/app/content-widget/services/content-widget.service.d.ts +9 -9
  15. package/app/content-widget/services/index.d.ts +1 -1
  16. package/app/content-widgets/components/content-widget/content-widget.component.d.ts +17 -17
  17. package/app/content-widgets/components/content-widget/index.d.ts +1 -1
  18. package/app/content-widgets/components/content-widgets/content-widgets.component.d.ts +24 -24
  19. package/app/content-widgets/components/content-widgets/index.d.ts +1 -1
  20. package/app/content-widgets/fs-content-widgets.module.d.ts +23 -23
  21. package/esm2020/app/content-widget/components/content-widget/content-widget.component.mjs +42 -0
  22. package/{esm2015/app/content-widget/components/content-widget/index.js → esm2020/app/content-widget/components/content-widget/index.mjs} +1 -1
  23. package/esm2020/app/content-widget/components/content-widget-dialog/content-widget-dialog.component.mjs +25 -0
  24. package/{esm2015/app/content-widget/components/content-widget-dialog/index.js → esm2020/app/content-widget/components/content-widget-dialog/index.mjs} +1 -1
  25. package/{esm2015/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.js → esm2020/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.mjs} +48 -52
  26. package/{esm2015/app/content-widget/components/content-widget-renderer/index.js → esm2020/app/content-widget/components/content-widget-renderer/index.mjs} +1 -1
  27. package/{esm2015/app/content-widget/components/index.js → esm2020/app/content-widget/components/index.mjs} +1 -1
  28. package/{esm2015/app/content-widget/directives/content-widget-content.directive.js → esm2020/app/content-widget/directives/content-widget-content.directive.mjs} +13 -13
  29. package/{esm2015/app/content-widget/directives/index.js → esm2020/app/content-widget/directives/index.mjs} +1 -1
  30. package/{esm2015/app/content-widget/fs-content-widget.module.js → esm2020/app/content-widget/fs-content-widget.module.mjs} +61 -61
  31. package/{esm2015/app/content-widget/injectors/content-wiget.injector.js → esm2020/app/content-widget/injectors/content-wiget.injector.mjs} +2 -2
  32. package/{esm2015/app/content-widget/injectors/index.js → esm2020/app/content-widget/injectors/index.mjs} +1 -1
  33. package/{esm2015/app/content-widget/interfaces/content-widget-config.js → esm2020/app/content-widget/interfaces/content-widget-config.mjs} +1 -1
  34. package/{esm2015/app/content-widget/services/content-widget.service.js → esm2020/app/content-widget/services/content-widget.service.mjs} +27 -27
  35. package/{esm2015/app/content-widget/services/index.js → esm2020/app/content-widget/services/index.mjs} +1 -1
  36. package/esm2020/app/content-widgets/components/content-widget/content-widget.component.mjs +46 -0
  37. package/{esm2015/app/content-widgets/components/content-widget/index.js → esm2020/app/content-widgets/components/content-widget/index.mjs} +1 -1
  38. package/esm2020/app/content-widgets/components/content-widgets/content-widgets.component.mjs +68 -0
  39. package/{esm2015/app/content-widgets/components/content-widgets/index.js → esm2020/app/content-widgets/components/content-widgets/index.mjs} +1 -1
  40. package/{esm2015/app/content-widgets/fs-content-widgets.module.js → esm2020/app/content-widgets/fs-content-widgets.module.mjs} +82 -82
  41. package/{esm2015/firestitch-content-widget.js → esm2020/firestitch-content-widget.mjs} +4 -4
  42. package/{esm2015/public_api.js → esm2020/public_api.mjs} +7 -7
  43. package/fesm2015/firestitch-content-widget.mjs +373 -0
  44. package/fesm2015/firestitch-content-widget.mjs.map +1 -0
  45. package/fesm2020/firestitch-content-widget.mjs +369 -0
  46. package/fesm2020/firestitch-content-widget.mjs.map +1 -0
  47. package/firestitch-content-widget.d.ts +5 -5
  48. package/package.json +20 -7
  49. package/public_api.d.ts +8 -8
  50. package/bundles/firestitch-content-widget.umd.js +0 -433
  51. package/bundles/firestitch-content-widget.umd.js.map +0 -1
  52. package/esm2015/app/content-widget/components/content-widget/content-widget.component.js +0 -46
  53. package/esm2015/app/content-widget/components/content-widget-dialog/content-widget-dialog.component.js +0 -29
  54. package/esm2015/app/content-widgets/components/content-widget/content-widget.component.js +0 -47
  55. package/esm2015/app/content-widgets/components/content-widgets/content-widgets.component.js +0 -72
  56. package/fesm2015/firestitch-content-widget.js +0 -386
  57. package/fesm2015/firestitch-content-widget.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestitch-content-widget.mjs","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/directives/content-widget-content.directive.ts","../../src/app/content-widget/injectors/content-wiget.injector.ts","../../src/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.ts","../../src/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.html","../../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/components/content-widget-dialog/content-widget-dialog.component.ts","../../src/app/content-widget/components/content-widget-dialog/content-widget-dialog.component.html","../../src/app/content-widget/fs-content-widget.module.ts","../../src/app/content-widget/services/content-widget.service.ts","../../src/firestitch-content-widget.ts"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\n\nimport { 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 \n private _saveContentWidget: (contentWidget: any) => Observable<any>;\n\n public constructor(\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.htmlEditorConfig = {\n ...this._data.htmlEditorConfig\n };\n \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._message.success('Saved Changes');\n }),\n );\n }\n\n}\n","\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.styles\"\n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"contentWidget.name\"\n name=\"name\"\n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","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';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\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?: any) => Observable<{ contentWidgets: any[], paging?: any }>;\n @Input() public saveContentWidget: (contentWidget: any) => Observable<any>;\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent;\n\n public config: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this.config = {\n paging: false,\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n fetch: (query) => {\n return this.fetchContentWidgets(query)\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 this._dialog.open(FsContentWidgetComponent, {\n width: '90%',\n data: { \n contentWidget,\n htmlEditorConfig: this.htmlEditorConfig,\n saveContentWidget: this.saveContentWidget,\n },\n })\n .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 { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\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';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetsComponent } from './components/content-widgets';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\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 { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[fsContentWidgetContent]',\n})\nexport class FsContentWidgetContentDirective {\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_WIDGET_CONFIG = new InjectionToken<any>('fs-content-widget-config');\n","import { AfterViewChecked, Component, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-widget-renderer',\n templateUrl: './content-widget-renderer.component.html',\n styleUrls: ['./content-widget-renderer.component.scss'],\n})\nexport class FsContentWidgetRendererComponent implements OnDestroy, AfterViewChecked {\n\n @Input() public content;\n\n private destroy$ = new Subject();\n\n constructor(\n private _router: Router,\n private _el: ElementRef,\n ) { }\n \n public ngAfterViewChecked(): void {\n this.registerHrefs();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public 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 { ChangeDetectorRef, Component, ContentChild, Inject, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FsContentWidgetContentDirective } from '../../directives';\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 @ContentChild(FsContentWidgetContentDirective, { read: TemplateRef })\n public contentWidgetContent: TemplateRef<any>;\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","<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"contentWidgetContent; else renderer\">\n <ng-container \n [ngTemplateOutlet]=\"contentWidgetContent\" \n [ngTemplateOutletContext]=\"{ content: renderer }\">\n </ng-container>\n </ng-container>\n <ng-template #renderer>\n <fs-content-widget-renderer \n [content]=\"content\">\n </fs-content-widget-renderer>\n </ng-template>\n</ng-container>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './content-widget-dialog.component.html',\n styleUrls: ['./content-widget-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentWidgetDialogComponent {\n\n public title;\n public tag;\n\n constructor(@Inject(MAT_DIALOG_DATA) private _data) {\n this.title = _data.title;\n this.tag = _data.tag;\n }\n}\n","<fs-dialog>\n <ng-container *ngIf=\"title\">\n <div mat-dialog-title>{{title}}</div>\n </ng-container>\n <mat-dialog-content>\n <fs-content-widget [tag]=\"tag\"></fs-content-widget>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n color=\"primary\" \n type=\"button\" \n [mat-dialog-close]=\"null\">\n Close \n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetRendererComponent } from './components/content-widget-renderer';\nimport { FsContentWidgetDialogComponent } from './components';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsContentWidgetContentDirective } from './directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n MatDialogModule,\n MatButtonModule,\n\n FsHtmlEditorModule,\n FsDialogModule,\n FsHtmlRendererModule,\n ],\n exports: [\n FsContentWidgetComponent,\n FsContentWidgetContentDirective,\n ],\n declarations: [\n FsContentWidgetRendererComponent,\n FsContentWidgetComponent,\n FsContentWidgetDialogComponent,\n FsContentWidgetContentDirective,\n ],\n})\nexport class FsContentWidgetModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetModule> {\n return {\n ngModule: FsContentWidgetModule,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsContentWidgetDialogComponent } from '../components';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsContentWidget {\n\n public constructor(\n private _dialog: MatDialog,\n ) {}\n\n public open(tag: string, title?: string) {\n this._dialog.open(FsContentWidgetDialogComponent, {\n data: { \n tag, \n title,\n }\n });\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FsContentWidgetComponent","i1","i2","i3","i1.FsContentWidgetRendererComponent","i2.FsContentWidgetComponent","i4","i5"],"mappings":"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"}
@@ -0,0 +1,369 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Inject, Input, ViewChild, NgModule, Directive, InjectionToken, TemplateRef, ContentChild, ChangeDetectionStrategy, Injectable } from '@angular/core';
3
+ import * as i2$2 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i7 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i3 from '@angular/material/tabs';
8
+ import { MatTabsModule } from '@angular/material/tabs';
9
+ import * as i10 from '@angular/material/dialog';
10
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
11
+ import * as i8 from '@angular/forms';
12
+ import { FormsModule } from '@angular/forms';
13
+ import * as i11 from '@angular/material/input';
14
+ import { MatInputModule } from '@angular/material/input';
15
+ import * as i6 from '@angular/material/form-field';
16
+ import { MatFormFieldModule } from '@angular/material/form-field';
17
+ import * as i2$1 from '@firestitch/list';
18
+ import { FsListComponent, FsListModule } from '@firestitch/list';
19
+ import * as i3$1 from '@firestitch/date';
20
+ import { FsDateModule } from '@firestitch/date';
21
+ import * as i2 from '@firestitch/dialog';
22
+ import { FsDialogModule } from '@firestitch/dialog';
23
+ import * as i9 from '@firestitch/form';
24
+ import { FsFormModule } from '@firestitch/form';
25
+ import * as i5 from '@firestitch/html-editor';
26
+ import { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';
27
+ import * as i4 from '@firestitch/text-editor';
28
+ import { FsTextEditorModule } from '@firestitch/text-editor';
29
+ import * as i1 from '@firestitch/message';
30
+ import { tap, map, takeUntil } from 'rxjs/operators';
31
+ import { ItemType } from '@firestitch/filter';
32
+ import { Subject } from 'rxjs';
33
+ import * as i1$1 from '@angular/router';
34
+
35
+ class FsContentWidgetComponent$1 {
36
+ constructor(_message, _data) {
37
+ this._message = _message;
38
+ this._data = _data;
39
+ this.save = () => {
40
+ return this._saveContentWidget(this.contentWidget)
41
+ .pipe(tap((contentWidget) => {
42
+ this.contentWidget = { ...this.contentWidget, ...contentWidget };
43
+ this._message.success('Saved Changes');
44
+ }));
45
+ };
46
+ }
47
+ ngOnInit() {
48
+ this._saveContentWidget = this._data.saveContentWidget;
49
+ this.htmlEditorConfig = {
50
+ ...this._data.htmlEditorConfig
51
+ };
52
+ this.contentWidget = { ...this._data.contentWidget };
53
+ }
54
+ }
55
+ FsContentWidgetComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetComponent$1, deps: [{ token: i1.FsMessage }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
56
+ FsContentWidgetComponent$1.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetComponent$1, selector: "ng-component", ngImport: i0, template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.styles\"\n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"contentWidget.name\"\n name=\"name\"\n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["mat-form-field{width:100%}fs-html-editor{min-height:400px;display:block;overflow:hidden}.subtitle{font-size:60%;line-height:normal}:host ::ng-deep .mat-tab-body-content{overflow:visible}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i4.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }, { type: i5.FsHtmlEditorComponent, selector: "fs-html-editor", inputs: ["config", "hint", "disabled"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { type: i10.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i10.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatTabContent, selector: "[matTabContent]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i9.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i10.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetComponent$1, decorators: [{
58
+ type: Component,
59
+ args: [{ template: "\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.styles\"\n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"contentWidget.name\"\n name=\"name\"\n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n", styles: ["mat-form-field{width:100%}fs-html-editor{min-height:400px;display:block;overflow:hidden}.subtitle{font-size:60%;line-height:normal}:host ::ng-deep .mat-tab-body-content{overflow:visible}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i1.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._destroy$ = new Subject();
69
+ }
70
+ ngOnInit() {
71
+ this.config = {
72
+ paging: false,
73
+ filters: [
74
+ {
75
+ name: 'keyword',
76
+ type: ItemType.Keyword,
77
+ label: 'Search',
78
+ },
79
+ ],
80
+ fetch: (query) => {
81
+ return this.fetchContentWidgets(query)
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
+ this._dialog.open(FsContentWidgetComponent$1, {
92
+ width: '90%',
93
+ data: {
94
+ contentWidget,
95
+ htmlEditorConfig: this.htmlEditorConfig,
96
+ saveContentWidget: this.saveContentWidget,
97
+ },
98
+ })
99
+ .afterClosed()
100
+ .pipe(takeUntil(this._destroy$))
101
+ .subscribe(() => {
102
+ this.list.reload();
103
+ });
104
+ }
105
+ }
106
+ FsContentWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsComponent, deps: [{ token: i10.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
107
+ FsContentWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetsComponent, selector: "fs-content-widgets", inputs: { fetchContentWidgets: "fetchContentWidgets", saveContentWidget: "saveContentWidget", htmlEditorConfig: "htmlEditorConfig" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column class=\"name\">\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Preview</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"preview-container\">\n <div class=\"preview-content\">\n <div [innerHTML]=\"row.content\"></div>\n </div>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"modified\">\n <ng-template fs-list-header>Modified</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.modifiedDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [":host ::ng-deep .modified,:host ::ng-deep .name{width:1%;white-space:nowrap}:host ::ng-deep .preview-content img{display:none}.preview-content{position:relative;max-height:100px;max-width:100%;overflow:hidden;-webkit-mask-image:-webkit-gradient(linear,left 60%,left bottom,from(black),to(rgba(0,0,0,0)))}\n"], components: [{ type: i2$1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3$1.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2$1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2$1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2$1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'fs-content-widgets', 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"] }]
111
+ }], ctorParameters: function () { return [{ type: i10.MatDialog }]; }, propDecorators: { fetchContentWidgets: [{
112
+ type: Input
113
+ }], saveContentWidget: [{
114
+ type: Input
115
+ }], htmlEditorConfig: [{
116
+ type: Input
117
+ }], list: [{
118
+ type: ViewChild,
119
+ args: [FsListComponent, { static: true }]
120
+ }] } });
121
+
122
+ class FsContentWidgetsModule {
123
+ static forRoot() {
124
+ return {
125
+ ngModule: FsContentWidgetsModule,
126
+ };
127
+ }
128
+ }
129
+ FsContentWidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
130
+ FsContentWidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsModule, declarations: [FsContentWidgetsComponent,
131
+ FsContentWidgetComponent$1], imports: [CommonModule,
132
+ FormsModule,
133
+ MatDialogModule,
134
+ MatInputModule,
135
+ MatFormFieldModule,
136
+ MatButtonModule,
137
+ MatTabsModule,
138
+ FsListModule,
139
+ FsDateModule,
140
+ FsFormModule,
141
+ FsHtmlEditorModule,
142
+ FsDialogModule,
143
+ FsTextEditorModule], exports: [FsContentWidgetsComponent] });
144
+ FsContentWidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsModule, imports: [[
145
+ CommonModule,
146
+ FormsModule,
147
+ MatDialogModule,
148
+ MatInputModule,
149
+ MatFormFieldModule,
150
+ MatButtonModule,
151
+ MatTabsModule,
152
+ FsListModule,
153
+ FsDateModule,
154
+ FsFormModule,
155
+ FsHtmlEditorModule,
156
+ FsDialogModule,
157
+ FsTextEditorModule,
158
+ ]] });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetsModule, decorators: [{
160
+ type: NgModule,
161
+ args: [{
162
+ imports: [
163
+ CommonModule,
164
+ FormsModule,
165
+ MatDialogModule,
166
+ MatInputModule,
167
+ MatFormFieldModule,
168
+ MatButtonModule,
169
+ MatTabsModule,
170
+ FsListModule,
171
+ FsDateModule,
172
+ FsFormModule,
173
+ FsHtmlEditorModule,
174
+ FsDialogModule,
175
+ FsTextEditorModule,
176
+ ],
177
+ exports: [
178
+ FsContentWidgetsComponent,
179
+ ],
180
+ declarations: [
181
+ FsContentWidgetsComponent,
182
+ FsContentWidgetComponent$1,
183
+ ],
184
+ }]
185
+ }] });
186
+
187
+ class FsContentWidgetContentDirective {
188
+ }
189
+ FsContentWidgetContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
190
+ FsContentWidgetContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetContentDirective, selector: "[fsContentWidgetContent]", ngImport: i0 });
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetContentDirective, decorators: [{
192
+ type: Directive,
193
+ args: [{
194
+ selector: '[fsContentWidgetContent]',
195
+ }]
196
+ }] });
197
+
198
+ const FS_CONTENT_WIDGET_CONFIG = new InjectionToken('fs-content-widget-config');
199
+
200
+ class FsContentWidgetRendererComponent {
201
+ constructor(_router, _el) {
202
+ this._router = _router;
203
+ this._el = _el;
204
+ this.destroy$ = new Subject();
205
+ }
206
+ ngAfterViewChecked() {
207
+ this.registerHrefs();
208
+ }
209
+ get el() {
210
+ return this._el.nativeElement;
211
+ }
212
+ registerHrefs() {
213
+ Array.from(this.el.querySelectorAll('a[href]'))
214
+ .filter((el) => {
215
+ return el.getAttribute('href').match(/^\//);
216
+ })
217
+ .forEach((el) => {
218
+ el.addEventListener('click', (event) => {
219
+ if (!event.shiftKey && !event.ctrlKey) {
220
+ event.preventDefault();
221
+ const href = el.getAttribute('href');
222
+ this._router.navigateByUrl(href);
223
+ }
224
+ });
225
+ });
226
+ }
227
+ ngOnDestroy() {
228
+ this.destroy$.next();
229
+ this.destroy$.complete();
230
+ }
231
+ }
232
+ FsContentWidgetRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetRendererComponent, deps: [{ token: i1$1.Router }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
233
+ FsContentWidgetRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: { content: "content" }, ngImport: i0, template: "<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: i5.FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: ["html"] }], directives: [{ type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetRendererComponent, decorators: [{
235
+ type: Component,
236
+ args: [{ selector: 'fs-content-widget-renderer', template: "<fs-html-renderer *ngIf=\"content\" [html]=\"content\"></fs-html-renderer>", styles: [":host ::ng-deep img{max-width:100%}\n"] }]
237
+ }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i0.ElementRef }]; }, propDecorators: { content: [{
238
+ type: Input
239
+ }] } });
240
+
241
+ class FsContentWidgetComponent {
242
+ constructor(config, _cdRef) {
243
+ this.config = config;
244
+ this._cdRef = _cdRef;
245
+ this.destroy$ = new Subject();
246
+ }
247
+ ngOnInit() {
248
+ this.config.fetchContentWidget(this.tag)
249
+ .pipe(takeUntil(this.destroy$))
250
+ .subscribe((content) => {
251
+ this.content = content;
252
+ this._cdRef.markForCheck();
253
+ });
254
+ }
255
+ ngOnDestroy() {
256
+ this.destroy$.next();
257
+ this.destroy$.complete();
258
+ }
259
+ }
260
+ FsContentWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetComponent, deps: [{ token: FS_CONTENT_WIDGET_CONFIG }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
261
+ FsContentWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetComponent, selector: "fs-content-widget", inputs: { tag: "tag" }, queries: [{ propertyName: "contentWidgetContent", first: true, predicate: FsContentWidgetContentDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"contentWidgetContent; else renderer\">\n <ng-container \n [ngTemplateOutlet]=\"contentWidgetContent\" \n [ngTemplateOutletContext]=\"{ content: renderer }\">\n </ng-container>\n </ng-container>\n <ng-template #renderer>\n <fs-content-widget-renderer \n [content]=\"content\">\n </fs-content-widget-renderer>\n </ng-template>\n</ng-container>", styles: [":host ::ng-deep img{max-width:100%}\n"], components: [{ type: FsContentWidgetRendererComponent, selector: "fs-content-widget-renderer", inputs: ["content"] }], directives: [{ type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetComponent, decorators: [{
263
+ type: Component,
264
+ args: [{ selector: 'fs-content-widget', template: "<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"contentWidgetContent; else renderer\">\n <ng-container \n [ngTemplateOutlet]=\"contentWidgetContent\" \n [ngTemplateOutletContext]=\"{ content: renderer }\">\n </ng-container>\n </ng-container>\n <ng-template #renderer>\n <fs-content-widget-renderer \n [content]=\"content\">\n </fs-content-widget-renderer>\n </ng-template>\n</ng-container>", styles: [":host ::ng-deep img{max-width:100%}\n"] }]
265
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
266
+ type: Inject,
267
+ args: [FS_CONTENT_WIDGET_CONFIG]
268
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentWidgetContent: [{
269
+ type: ContentChild,
270
+ args: [FsContentWidgetContentDirective, { read: TemplateRef }]
271
+ }], tag: [{
272
+ type: Input
273
+ }] } });
274
+
275
+ class FsContentWidgetDialogComponent {
276
+ constructor(_data) {
277
+ this._data = _data;
278
+ this.title = _data.title;
279
+ this.tag = _data.tag;
280
+ }
281
+ }
282
+ FsContentWidgetDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
283
+ FsContentWidgetDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsContentWidgetDialogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <ng-container *ngIf=\"title\">\n <div mat-dialog-title>{{title}}</div>\n </ng-container>\n <mat-dialog-content>\n <fs-content-widget [tag]=\"tag\"></fs-content-widget>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n color=\"primary\" \n type=\"button\" \n [mat-dialog-close]=\"null\">\n Close \n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { type: FsContentWidgetComponent, selector: "fs-content-widget", inputs: ["tag"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i10.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetDialogComponent, decorators: [{
285
+ type: Component,
286
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog>\n <ng-container *ngIf=\"title\">\n <div mat-dialog-title>{{title}}</div>\n </ng-container>\n <mat-dialog-content>\n <fs-content-widget [tag]=\"tag\"></fs-content-widget>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n color=\"primary\" \n type=\"button\" \n [mat-dialog-close]=\"null\">\n Close \n </button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""] }]
287
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
288
+ type: Inject,
289
+ args: [MAT_DIALOG_DATA]
290
+ }] }]; } });
291
+
292
+ class FsContentWidgetModule {
293
+ static forRoot() {
294
+ return {
295
+ ngModule: FsContentWidgetModule,
296
+ };
297
+ }
298
+ }
299
+ FsContentWidgetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
300
+ FsContentWidgetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetModule, declarations: [FsContentWidgetRendererComponent,
301
+ FsContentWidgetComponent,
302
+ FsContentWidgetDialogComponent,
303
+ FsContentWidgetContentDirective], imports: [CommonModule,
304
+ MatDialogModule,
305
+ MatButtonModule,
306
+ FsHtmlEditorModule,
307
+ FsDialogModule,
308
+ FsHtmlRendererModule], exports: [FsContentWidgetComponent,
309
+ FsContentWidgetContentDirective] });
310
+ FsContentWidgetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetModule, imports: [[
311
+ CommonModule,
312
+ MatDialogModule,
313
+ MatButtonModule,
314
+ FsHtmlEditorModule,
315
+ FsDialogModule,
316
+ FsHtmlRendererModule,
317
+ ]] });
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidgetModule, decorators: [{
319
+ type: NgModule,
320
+ args: [{
321
+ imports: [
322
+ CommonModule,
323
+ MatDialogModule,
324
+ MatButtonModule,
325
+ FsHtmlEditorModule,
326
+ FsDialogModule,
327
+ FsHtmlRendererModule,
328
+ ],
329
+ exports: [
330
+ FsContentWidgetComponent,
331
+ FsContentWidgetContentDirective,
332
+ ],
333
+ declarations: [
334
+ FsContentWidgetRendererComponent,
335
+ FsContentWidgetComponent,
336
+ FsContentWidgetDialogComponent,
337
+ FsContentWidgetContentDirective,
338
+ ],
339
+ }]
340
+ }] });
341
+
342
+ class FsContentWidget {
343
+ constructor(_dialog) {
344
+ this._dialog = _dialog;
345
+ }
346
+ open(tag, title) {
347
+ this._dialog.open(FsContentWidgetDialogComponent, {
348
+ data: {
349
+ tag,
350
+ title,
351
+ }
352
+ });
353
+ }
354
+ }
355
+ FsContentWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidget, deps: [{ token: i10.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
356
+ FsContentWidget.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidget, providedIn: 'root' });
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentWidget, decorators: [{
358
+ type: Injectable,
359
+ args: [{
360
+ providedIn: 'root',
361
+ }]
362
+ }], ctorParameters: function () { return [{ type: i10.MatDialog }]; } });
363
+
364
+ /**
365
+ * Generated bundle index. Do not edit.
366
+ */
367
+
368
+ export { FS_CONTENT_WIDGET_CONFIG, FsContentWidget, FsContentWidgetComponent, FsContentWidgetContentDirective, FsContentWidgetModule, FsContentWidgetsComponent, FsContentWidgetsModule };
369
+ //# sourceMappingURL=firestitch-content-widget.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestitch-content-widget.mjs","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/directives/content-widget-content.directive.ts","../../src/app/content-widget/injectors/content-wiget.injector.ts","../../src/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.ts","../../src/app/content-widget/components/content-widget-renderer/content-widget-renderer.component.html","../../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/components/content-widget-dialog/content-widget-dialog.component.ts","../../src/app/content-widget/components/content-widget-dialog/content-widget-dialog.component.html","../../src/app/content-widget/fs-content-widget.module.ts","../../src/app/content-widget/services/content-widget.service.ts","../../src/firestitch-content-widget.ts"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\n\nimport { 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 \n private _saveContentWidget: (contentWidget: any) => Observable<any>;\n\n public constructor(\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.htmlEditorConfig = {\n ...this._data.htmlEditorConfig\n };\n \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._message.success('Saved Changes');\n }),\n );\n }\n\n}\n","\n<form fsForm [submit]=\"save\">\n <fs-dialog>\n <div mat-dialog-title>\n Content Widget\n <div class=\"subtitle\">{{contentWidget.name}}</div>\n </div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"HTML\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"{ language: 'html', tabSize: 2 }\"\n name=\"html\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Rich Text\">\n <ng-template matTabContent>\n <fs-html-editor\n [(ngModel)]=\"contentWidget.content\"\n [config]=\"htmlEditorConfig\"\n name=\"content\">\n </fs-html-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"contentWidget.styles\"\n [config]=\"{ language: 'scss', tabSize: 2 }\"\n name=\"styles\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Settings\">\n <mat-form-field>\n <input\n matInput\n placeholder=\"Name\"\n [(ngModel)]=\"contentWidget.name\"\n name=\"name\"\n [required]=\"true\">\n </mat-form-field>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","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';\nimport { FsHtmlEditorConfig } from '@firestitch/html-editor';\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?: any) => Observable<{ contentWidgets: any[], paging?: any }>;\n @Input() public saveContentWidget: (contentWidget: any) => Observable<any>;\n @Input() public htmlEditorConfig: FsHtmlEditorConfig;\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent;\n\n public config: FsListConfig;\n\n private _destroy$ = new Subject();\n\n constructor(\n private _dialog: MatDialog,\n ) {}\n\n public ngOnInit(): void {\n this.config = {\n paging: false,\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n ],\n fetch: (query) => {\n return this.fetchContentWidgets(query)\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 this._dialog.open(FsContentWidgetComponent, {\n width: '90%',\n data: { \n contentWidget,\n htmlEditorConfig: this.htmlEditorConfig,\n saveContentWidget: this.saveContentWidget,\n },\n })\n .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 { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\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';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetsComponent } from './components/content-widgets';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatTabsModule,\n\n FsListModule,\n FsDateModule,\n FsFormModule,\n FsHtmlEditorModule,\n FsDialogModule,\n FsTextEditorModule,\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 { Directive } from '@angular/core';\n\n\n@Directive({\n selector: '[fsContentWidgetContent]',\n})\nexport class FsContentWidgetContentDirective {\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_CONTENT_WIDGET_CONFIG = new InjectionToken<any>('fs-content-widget-config');\n","import { AfterViewChecked, Component, ElementRef, Input, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Subject } from 'rxjs';\n\n\n@Component({\n selector: 'fs-content-widget-renderer',\n templateUrl: './content-widget-renderer.component.html',\n styleUrls: ['./content-widget-renderer.component.scss'],\n})\nexport class FsContentWidgetRendererComponent implements OnDestroy, AfterViewChecked {\n\n @Input() public content;\n\n private destroy$ = new Subject();\n\n constructor(\n private _router: Router,\n private _el: ElementRef,\n ) { }\n \n public ngAfterViewChecked(): void {\n this.registerHrefs();\n }\n\n public get el(): any {\n return this._el.nativeElement;\n }\n\n public registerHrefs(): void {\n Array.from(this.el.querySelectorAll('a[href]'))\n .filter((el: Element) => {\n return el.getAttribute('href').match(/^\\//);\n })\n .forEach((el: Element) => {\n el.addEventListener('click',(event: MouseEvent) => {\n if(!event.shiftKey && !event.ctrlKey) {\n event.preventDefault();\n const href = el.getAttribute('href');\n this._router.navigateByUrl(href);\n }\n });\n });\n }\n\n public 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 { ChangeDetectorRef, Component, ContentChild, Inject, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FsContentWidgetContentDirective } from '../../directives';\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 @ContentChild(FsContentWidgetContentDirective, { read: TemplateRef })\n public contentWidgetContent: TemplateRef<any>;\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","<ng-container *ngIf=\"content\">\n <ng-container *ngIf=\"contentWidgetContent; else renderer\">\n <ng-container \n [ngTemplateOutlet]=\"contentWidgetContent\" \n [ngTemplateOutletContext]=\"{ content: renderer }\">\n </ng-container>\n </ng-container>\n <ng-template #renderer>\n <fs-content-widget-renderer \n [content]=\"content\">\n </fs-content-widget-renderer>\n </ng-template>\n</ng-container>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './content-widget-dialog.component.html',\n styleUrls: ['./content-widget-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsContentWidgetDialogComponent {\n\n public title;\n public tag;\n\n constructor(@Inject(MAT_DIALOG_DATA) private _data) {\n this.title = _data.title;\n this.tag = _data.tag;\n }\n}\n","<fs-dialog>\n <ng-container *ngIf=\"title\">\n <div mat-dialog-title>{{title}}</div>\n </ng-container>\n <mat-dialog-content>\n <fs-content-widget [tag]=\"tag\"></fs-content-widget>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n color=\"primary\" \n type=\"button\" \n [mat-dialog-close]=\"null\">\n Close \n </button>\n </mat-dialog-actions>\n</fs-dialog>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';\n\nimport { FsContentWidgetComponent } from './components/content-widget';\nimport { FsContentWidgetRendererComponent } from './components/content-widget-renderer';\nimport { FsContentWidgetDialogComponent } from './components';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsContentWidgetContentDirective } from './directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n\n MatDialogModule,\n MatButtonModule,\n\n FsHtmlEditorModule,\n FsDialogModule,\n FsHtmlRendererModule,\n ],\n exports: [\n FsContentWidgetComponent,\n FsContentWidgetContentDirective,\n ],\n declarations: [\n FsContentWidgetRendererComponent,\n FsContentWidgetComponent,\n FsContentWidgetDialogComponent,\n FsContentWidgetContentDirective,\n ],\n})\nexport class FsContentWidgetModule {\n static forRoot(): ModuleWithProviders<FsContentWidgetModule> {\n return {\n ngModule: FsContentWidgetModule,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsContentWidgetDialogComponent } from '../components';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsContentWidget {\n\n public constructor(\n private _dialog: MatDialog,\n ) {}\n\n public open(tag: string, title?: string) {\n this._dialog.open(FsContentWidgetDialogComponent, {\n data: { \n tag, \n title,\n }\n });\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FsContentWidgetComponent","i1","i2","i3","i1.FsContentWidgetRendererComponent","i2.FsContentWidgetComponent","i4","i5"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@firestitch/content-widget" />
5
- export * from './public_api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@firestitch/content-widget" />
5
+ export * from './public_api';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/content-widget",
3
- "version": "12.2.2",
3
+ "version": "13.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-content-widget"
@@ -17,10 +17,23 @@
17
17
  "tslib": "^2.0.0"
18
18
  },
19
19
  "sideEffects": false,
20
- "main": "bundles/firestitch-content-widget.umd.js",
21
- "module": "fesm2015/firestitch-content-widget.js",
22
- "es2015": "fesm2015/firestitch-content-widget.js",
23
- "esm2015": "esm2015/firestitch-content-widget.js",
24
- "fesm2015": "fesm2015/firestitch-content-widget.js",
25
- "typings": "firestitch-content-widget.d.ts"
20
+ "module": "fesm2015/firestitch-content-widget.mjs",
21
+ "es2020": "fesm2020/firestitch-content-widget.mjs",
22
+ "esm2020": "esm2020/firestitch-content-widget.mjs",
23
+ "fesm2020": "fesm2020/firestitch-content-widget.mjs",
24
+ "fesm2015": "fesm2015/firestitch-content-widget.mjs",
25
+ "typings": "firestitch-content-widget.d.ts",
26
+ "exports": {
27
+ "./package.json": {
28
+ "default": "./package.json"
29
+ },
30
+ ".": {
31
+ "types": "./firestitch-content-widget.d.ts",
32
+ "esm2020": "./esm2020/firestitch-content-widget.mjs",
33
+ "es2020": "./fesm2020/firestitch-content-widget.mjs",
34
+ "es2015": "./fesm2015/firestitch-content-widget.mjs",
35
+ "node": "./fesm2015/firestitch-content-widget.mjs",
36
+ "default": "./fesm2020/firestitch-content-widget.mjs"
37
+ }
38
+ }
26
39
  }