@firestitch/content 13.0.3 → 13.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. package/app/consts/index.d.ts +1 -1
  2. package/app/consts/page-types.const.d.ts +5 -5
  3. package/app/enums/editor-type.d.ts +6 -6
  4. package/app/enums/index.d.ts +2 -2
  5. package/app/enums/page-type.enum.d.ts +6 -6
  6. package/app/injectors/content-config.injector.d.ts +2 -2
  7. package/app/injectors/index.d.ts +1 -1
  8. package/app/interfaces/content-config.d.ts +21 -21
  9. package/app/interfaces/content-layout.d.ts +10 -10
  10. package/app/interfaces/content-page.d.ts +14 -14
  11. package/app/interfaces/content-style.d.ts +4 -4
  12. package/app/interfaces/index.d.ts +4 -4
  13. package/app/modules/content/components/content/content.component.d.ts +25 -25
  14. package/app/modules/content/components/content/index.d.ts +1 -1
  15. package/app/modules/content/components/content-renderer/content-renderer.component.d.ts +24 -24
  16. package/app/modules/content/components/content-renderer/index.d.ts +1 -1
  17. package/app/modules/content/fs-content.module.d.ts +10 -10
  18. package/app/modules/content-layouts/components/content-layout/content-layout.component.d.ts +27 -27
  19. package/app/modules/content-layouts/components/content-layout/index.d.ts +1 -1
  20. package/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.d.ts +50 -50
  21. package/app/modules/content-layouts/components/content-layout-editor/index.d.ts +1 -1
  22. package/app/modules/content-layouts/components/content-layouts/content-layouts.component.d.ts +21 -21
  23. package/app/modules/content-layouts/components/content-layouts/index.d.ts +1 -1
  24. package/app/modules/content-layouts/components/index.d.ts +3 -3
  25. package/app/modules/content-layouts/fs-content-layouts.module.d.ts +28 -28
  26. package/app/modules/content-pages/components/content-page/content-page.component.d.ts +32 -32
  27. package/app/modules/content-pages/components/content-page/index.d.ts +1 -1
  28. package/app/modules/content-pages/components/content-page-editor/content-page-editor.component.d.ts +56 -56
  29. package/app/modules/content-pages/components/content-page-editor/index.d.ts +1 -1
  30. package/app/modules/content-pages/components/content-pages/content-pages.component.d.ts +24 -24
  31. package/app/modules/content-pages/components/content-pages/index.d.ts +1 -1
  32. package/app/modules/content-pages/components/index.d.ts +3 -3
  33. package/app/modules/content-pages/fs-content-pages.module.d.ts +33 -33
  34. package/app/modules/content-style/components/content-style/content-style.component.d.ts +27 -27
  35. package/app/modules/content-style/components/content-style/index.d.ts +1 -1
  36. package/app/modules/content-style/fs-content-style.module.d.ts +14 -14
  37. package/app/modules/editor/components/editor/editor.component.d.ts +49 -49
  38. package/app/modules/editor/components/editor/index.d.ts +1 -1
  39. package/app/modules/editor/components/editor-label/editor-label.component.d.ts +7 -7
  40. package/app/modules/editor/components/editor-label/index.d.ts +1 -1
  41. package/app/modules/editor/fs-content-editor.module.d.ts +24 -24
  42. package/app/modules/editor/index.d.ts +1 -1
  43. package/esm2020/app/consts/index.mjs +1 -1
  44. package/esm2020/app/consts/page-types.const.mjs +5 -5
  45. package/esm2020/app/enums/editor-type.mjs +7 -7
  46. package/esm2020/app/enums/index.mjs +3 -3
  47. package/esm2020/app/enums/page-type.enum.mjs +7 -7
  48. package/esm2020/app/injectors/content-config.injector.mjs +2 -2
  49. package/esm2020/app/injectors/index.mjs +1 -1
  50. package/esm2020/app/interfaces/content-config.mjs +1 -1
  51. package/esm2020/app/interfaces/content-layout.mjs +1 -1
  52. package/esm2020/app/interfaces/content-page.mjs +1 -1
  53. package/esm2020/app/interfaces/content-style.mjs +1 -1
  54. package/esm2020/app/interfaces/index.mjs +5 -5
  55. package/esm2020/app/modules/content/components/content/content.component.mjs +80 -80
  56. package/esm2020/app/modules/content/components/content/index.mjs +1 -1
  57. package/esm2020/app/modules/content/components/content-renderer/content-renderer.component.mjs +73 -73
  58. package/esm2020/app/modules/content/components/content-renderer/index.mjs +1 -1
  59. package/esm2020/app/modules/content/fs-content.module.mjs +32 -32
  60. package/esm2020/app/modules/content-layouts/components/content-layout/content-layout.component.mjs +67 -67
  61. package/esm2020/app/modules/content-layouts/components/content-layout/index.mjs +1 -1
  62. package/esm2020/app/modules/content-layouts/components/content-layout-editor/content-layout-editor.component.mjs +161 -161
  63. package/esm2020/app/modules/content-layouts/components/content-layout-editor/index.mjs +1 -1
  64. package/esm2020/app/modules/content-layouts/components/content-layouts/content-layouts.component.mjs +115 -115
  65. package/esm2020/app/modules/content-layouts/components/content-layouts/index.mjs +1 -1
  66. package/esm2020/app/modules/content-layouts/components/index.mjs +4 -4
  67. package/esm2020/app/modules/content-layouts/fs-content-layouts.module.mjs +103 -103
  68. package/esm2020/app/modules/content-pages/components/content-page/content-page.component.mjs +82 -81
  69. package/esm2020/app/modules/content-pages/components/content-page/index.mjs +1 -1
  70. package/esm2020/app/modules/content-pages/components/content-page-editor/content-page-editor.component.mjs +178 -178
  71. package/esm2020/app/modules/content-pages/components/content-page-editor/index.mjs +1 -1
  72. package/esm2020/app/modules/content-pages/components/content-pages/content-pages.component.mjs +129 -128
  73. package/esm2020/app/modules/content-pages/components/content-pages/index.mjs +1 -1
  74. package/esm2020/app/modules/content-pages/components/index.mjs +4 -4
  75. package/esm2020/app/modules/content-pages/fs-content-pages.module.mjs +120 -120
  76. package/esm2020/app/modules/content-style/components/content-style/content-style.component.mjs +68 -68
  77. package/esm2020/app/modules/content-style/components/content-style/index.mjs +1 -1
  78. package/esm2020/app/modules/content-style/fs-content-style.module.mjs +49 -49
  79. package/esm2020/app/modules/editor/components/editor/editor.component.mjs +143 -143
  80. package/esm2020/app/modules/editor/components/editor/index.mjs +1 -1
  81. package/esm2020/app/modules/editor/components/editor-label/editor-label.component.mjs +15 -15
  82. package/esm2020/app/modules/editor/components/editor-label/index.mjs +1 -1
  83. package/esm2020/app/modules/editor/fs-content-editor.module.mjs +88 -88
  84. package/esm2020/app/modules/editor/index.mjs +1 -1
  85. package/esm2020/firestitch-content.mjs +4 -4
  86. package/esm2020/public_api.mjs +10 -10
  87. package/fesm2015/firestitch-content.mjs +1249 -1251
  88. package/fesm2015/firestitch-content.mjs.map +1 -1
  89. package/fesm2020/firestitch-content.mjs +1253 -1251
  90. package/fesm2020/firestitch-content.mjs.map +1 -1
  91. package/firestitch-content.d.ts +5 -5
  92. package/package.json +1 -1
  93. package/public_api.d.ts +10 -10
@@ -1,69 +1,69 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, ViewChild, } from '@angular/core';
2
- import { FsFormDirective } from '@firestitch/form';
3
- import { FsMessage } from '@firestitch/message';
4
- import { FsTextEditorComponent } from '@firestitch/text-editor';
5
- import { Subject } from 'rxjs';
6
- import { tap } from 'rxjs/operators';
7
- import { FS_CONTENT_CONFIG } from '../../../../injectors';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@firestitch/message";
10
- import * as i2 from "@firestitch/text-editor";
11
- import * as i3 from "@firestitch/skeleton";
12
- import * as i4 from "@angular/forms";
13
- import * as i5 from "@firestitch/common";
14
- export class ContentStyleComponent {
15
- constructor(_config, _message, _cdRef) {
16
- this._config = _config;
17
- this._message = _message;
18
- this._cdRef = _cdRef;
19
- this.height = '100%';
20
- this.contentStyle = null;
21
- this.styleConfig = {
22
- tabSize: 2,
23
- language: 'scss',
24
- height: '100%',
25
- };
26
- this._destroy$ = new Subject();
27
- }
28
- ngOnInit() {
29
- this.styleConfig.height = this.height;
30
- this._config.loadContentStyle()
31
- .subscribe((contentStyle) => {
32
- this.contentStyle = contentStyle;
33
- this._cdRef.markForCheck();
34
- });
35
- }
36
- ngOnDestroy() {
37
- this._destroy$.next();
38
- this._destroy$.complete();
39
- }
40
- save() {
41
- this._config.saveContentStyle(this.contentStyle)
42
- .pipe(tap((contentStyle) => {
43
- this.contentStyle = {
44
- ...this.contentStyle,
45
- ...contentStyle,
46
- };
47
- this._cdRef.markForCheck();
48
- this._message.success('Saved Changes');
49
- })).subscribe();
50
- }
51
- }
52
- ContentStyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentStyleComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.FsMessage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
- ContentStyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ContentStyleComponent, selector: "fs-content-style", inputs: { height: "height" }, viewQueries: [{ propertyName: "textEditors", first: true, predicate: FsTextEditorComponent, descendants: true }, { propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""], components: [{ type: i2.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i3.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentStyleComponent, decorators: [{
55
- type: Component,
56
- args: [{ selector: 'fs-content-style', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""] }]
57
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
58
- type: Inject,
59
- args: [FS_CONTENT_CONFIG]
60
- }] }, { type: i1.FsMessage }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textEditors: [{
61
- type: ViewChild,
62
- args: [FsTextEditorComponent]
63
- }], form: [{
64
- type: ViewChild,
65
- args: [FsFormDirective]
66
- }], height: [{
67
- type: Input
68
- }] } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, ViewChild, } from '@angular/core';
2
+ import { FsFormDirective } from '@firestitch/form';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { FsTextEditorComponent } from '@firestitch/text-editor';
5
+ import { Subject } from 'rxjs';
6
+ import { tap } from 'rxjs/operators';
7
+ import { FS_CONTENT_CONFIG } from '../../../../injectors';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@firestitch/message";
10
+ import * as i2 from "@firestitch/text-editor";
11
+ import * as i3 from "@firestitch/skeleton";
12
+ import * as i4 from "@angular/forms";
13
+ import * as i5 from "@firestitch/common";
14
+ export class ContentStyleComponent {
15
+ constructor(_config, _message, _cdRef) {
16
+ this._config = _config;
17
+ this._message = _message;
18
+ this._cdRef = _cdRef;
19
+ this.height = '100%';
20
+ this.contentStyle = null;
21
+ this.styleConfig = {
22
+ tabSize: 2,
23
+ language: 'scss',
24
+ height: '100%',
25
+ };
26
+ this._destroy$ = new Subject();
27
+ }
28
+ ngOnInit() {
29
+ this.styleConfig.height = this.height;
30
+ this._config.loadContentStyle()
31
+ .subscribe((contentStyle) => {
32
+ this.contentStyle = contentStyle;
33
+ this._cdRef.markForCheck();
34
+ });
35
+ }
36
+ ngOnDestroy() {
37
+ this._destroy$.next();
38
+ this._destroy$.complete();
39
+ }
40
+ save() {
41
+ this._config.saveContentStyle(this.contentStyle)
42
+ .pipe(tap((contentStyle) => {
43
+ this.contentStyle = {
44
+ ...this.contentStyle,
45
+ ...contentStyle,
46
+ };
47
+ this._cdRef.markForCheck();
48
+ this._message.success('Saved Changes');
49
+ })).subscribe();
50
+ }
51
+ }
52
+ ContentStyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentStyleComponent, deps: [{ token: FS_CONTENT_CONFIG }, { token: i1.FsMessage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
+ ContentStyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ContentStyleComponent, selector: "fs-content-style", inputs: { height: "height" }, viewQueries: [{ propertyName: "textEditors", first: true, predicate: FsTextEditorComponent, descendants: true }, { propertyName: "form", first: true, predicate: FsFormDirective, descendants: true }], ngImport: i0, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""], components: [{ type: i2.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i3.FsSkeletonFormDirective, selector: "[fsSkeletonForm]", inputs: ["fsSkeletonForm", "fsSkeletonFormLines"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ContentStyleComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'fs-content-style', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *fsSkeletonForm=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"contentStyle\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"save()\"\n [config]=\"styleConfig\">\n </fs-text-editor> \n</ng-container>\n", styles: [""] }]
57
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
58
+ type: Inject,
59
+ args: [FS_CONTENT_CONFIG]
60
+ }] }, { type: i1.FsMessage }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { textEditors: [{
61
+ type: ViewChild,
62
+ args: [FsTextEditorComponent]
63
+ }], form: [{
64
+ type: ViewChild,
65
+ args: [FsFormDirective]
66
+ }], height: [{
67
+ type: Input
68
+ }] } });
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1zdHlsZS9jb21wb25lbnRzL2NvbnRlbnQtc3R5bGUvY29udGVudC1zdHlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1zdHlsZS9jb21wb25lbnRzL2NvbnRlbnQtc3R5bGUvY29udGVudC1zdHlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVUxRCxNQUFNLE9BQU8scUJBQXFCO0lBbUJoQyxZQUNxQyxPQUF3QixFQUNuRCxRQUFtQixFQUNuQixNQUF5QjtRQUZFLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ25ELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFkbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixnQkFBVyxHQUFHO1lBQ25CLE9BQU8sRUFBRSxDQUFDO1lBQ1YsUUFBUSxFQUFFLE1BQU07WUFDaEIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO1FBRU0sY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNckMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7YUFDNUIsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUM3QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRztnQkFDbEIsR0FBRyxJQUFJLENBQUMsWUFBWTtnQkFDcEIsR0FBRyxZQUFZO2FBQ2hCLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7a0hBcERVLHFCQUFxQixrQkFvQnRCLGlCQUFpQjtzR0FwQmhCLHFCQUFxQixtSUFFckIscUJBQXFCLHVFQUdyQixlQUFlLGdEQ2xDNUIsK1NBU0E7MkZEb0JhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0I1QyxNQUFNOzJCQUFDLGlCQUFpQjtvR0FqQnBCLFdBQVc7c0JBRGpCLFNBQVM7dUJBQUMscUJBQXFCO2dCQUl6QixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZTtnQkFHVixNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRlNfQ09OVEVOVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi8uLi9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY29udGVudC1zdHlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXN0eWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1zdHlsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudFN0eWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoRnNUZXh0RWRpdG9yQ29tcG9uZW50KVxuICBwdWJsaWMgdGV4dEVkaXRvcnM6IEZzVGV4dEVkaXRvckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKEZzRm9ybURpcmVjdGl2ZSlcbiAgcHVibGljIGZvcm06IEZzRm9ybURpcmVjdGl2ZTtcblxuICBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0OiBzdHJpbmcgPSAnMTAwJSc7XG5cbiAgcHVibGljIGNvbnRlbnRTdHlsZSA9IG51bGw7XG4gIHB1YmxpYyBzdHlsZUNvbmZpZyA9IHtcbiAgICB0YWJTaXplOiAyLFxuICAgIGxhbmd1YWdlOiAnc2NzcycsXG4gICAgaGVpZ2h0OiAnMTAwJScsXG4gIH07XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfQ09OVEVOVF9DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogRnNDb250ZW50Q29uZmlnLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdHlsZUNvbmZpZy5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICB0aGlzLl9jb25maWcubG9hZENvbnRlbnRTdHlsZSgpXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50U3R5bGUpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGU7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpIHtcbiAgICB0aGlzLl9jb25maWcuc2F2ZUNvbnRlbnRTdHlsZSh0aGlzLmNvbnRlbnRTdHlsZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGNvbnRlbnRTdHlsZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGVudFN0eWxlID0ge1xuICAgICAgICAgICAgLi4udGhpcy5jb250ZW50U3R5bGUsXG4gICAgICAgICAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICB9KSxcbiAgICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqZnNTa2VsZXRvbkZvcm09XCJjb250ZW50U3R5bGVcIj5cbiAgPGZzLXRleHQtZWRpdG9yIFxuICAgIFsobmdNb2RlbCldPVwiY29udGVudFN0eWxlLnNjc3NcIiBcbiAgICBuYW1lPVwiY29udGVudFN0eWxlXCJcbiAgICBbZnNNb2RlbENoYW5nZU9wdGlvbnNdPVwieyBkZWJvdW5jZTogMzAwIH1cIlxuICAgIChmc01vZGVsQ2hhbmdlKT1cInNhdmUoKVwiXG4gICAgW2NvbmZpZ109XCJzdHlsZUNvbmZpZ1wiPlxuICA8L2ZzLXRleHQtZWRpdG9yPiAgICAgICAgICAgICAgXG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './content-style.component';
1
+ export * from './content-style.component';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1zdHlsZS9jb21wb25lbnRzL2NvbnRlbnQtc3R5bGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGVudC1zdHlsZS5jb21wb25lbnQnO1xuIl19
@@ -1,50 +1,50 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { FsCommonModule } from '@firestitch/common';
6
- import { FsSkeletonModule } from '@firestitch/skeleton';
7
- import { FsTextEditorModule } from '@firestitch/text-editor';
8
- import { FsContentEditorModule } from '../editor';
9
- import { ContentStyleComponent } from './components/content-style';
10
- import * as i0 from "@angular/core";
11
- export class FsContentStyleModule {
12
- }
13
- FsContentStyleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- FsContentStyleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, declarations: [ContentStyleComponent], imports: [CommonModule,
15
- FormsModule,
16
- MatButtonModule,
17
- FsTextEditorModule,
18
- FsSkeletonModule,
19
- FsCommonModule,
20
- FsContentEditorModule], exports: [ContentStyleComponent] });
21
- FsContentStyleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, imports: [[
22
- CommonModule,
23
- FormsModule,
24
- MatButtonModule,
25
- FsTextEditorModule,
26
- FsSkeletonModule,
27
- FsCommonModule,
28
- FsContentEditorModule,
29
- ]] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, decorators: [{
31
- type: NgModule,
32
- args: [{
33
- imports: [
34
- CommonModule,
35
- FormsModule,
36
- MatButtonModule,
37
- FsTextEditorModule,
38
- FsSkeletonModule,
39
- FsCommonModule,
40
- FsContentEditorModule,
41
- ],
42
- exports: [
43
- ContentStyleComponent,
44
- ],
45
- declarations: [
46
- ContentStyleComponent,
47
- ],
48
- }]
49
- }] });
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { FsCommonModule } from '@firestitch/common';
6
+ import { FsSkeletonModule } from '@firestitch/skeleton';
7
+ import { FsTextEditorModule } from '@firestitch/text-editor';
8
+ import { FsContentEditorModule } from '../editor';
9
+ import { ContentStyleComponent } from './components/content-style';
10
+ import * as i0 from "@angular/core";
11
+ export class FsContentStyleModule {
12
+ }
13
+ FsContentStyleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FsContentStyleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, declarations: [ContentStyleComponent], imports: [CommonModule,
15
+ FormsModule,
16
+ MatButtonModule,
17
+ FsTextEditorModule,
18
+ FsSkeletonModule,
19
+ FsCommonModule,
20
+ FsContentEditorModule], exports: [ContentStyleComponent] });
21
+ FsContentStyleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, imports: [[
22
+ CommonModule,
23
+ FormsModule,
24
+ MatButtonModule,
25
+ FsTextEditorModule,
26
+ FsSkeletonModule,
27
+ FsCommonModule,
28
+ FsContentEditorModule,
29
+ ]] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsContentStyleModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ imports: [
34
+ CommonModule,
35
+ FormsModule,
36
+ MatButtonModule,
37
+ FsTextEditorModule,
38
+ FsSkeletonModule,
39
+ FsCommonModule,
40
+ FsContentEditorModule,
41
+ ],
42
+ exports: [
43
+ ContentStyleComponent,
44
+ ],
45
+ declarations: [
46
+ ContentStyleComponent,
47
+ ],
48
+ }]
49
+ }] });
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC1zdHlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvY29udGVudC1zdHlsZS9mcy1jb250ZW50LXN0eWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBc0JuRSxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBSDdCLHFCQUFxQixhQWRyQixZQUFZO1FBQ1osV0FBVztRQUVYLGVBQWU7UUFFZixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxxQkFBcUIsYUFHckIscUJBQXFCO2tIQU1aLG9CQUFvQixZQWxCdEI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUVYLGVBQWU7WUFFZixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxxQkFBcUI7U0FDdEI7MkZBUVUsb0JBQW9CO2tCQW5CaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUVYLGVBQWU7d0JBRWYsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3FCQUN0QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmltcG9ydCB7IEZzQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5cbmltcG9ydCB7IEZzQ29udGVudEVkaXRvck1vZHVsZSB9IGZyb20gJy4uL2VkaXRvcic7XG5cbmltcG9ydCB7IENvbnRlbnRTdHlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50LXN0eWxlJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuXG4gICAgRnNUZXh0RWRpdG9yTW9kdWxlLFxuICAgIEZzU2tlbGV0b25Nb2R1bGUsXG4gICAgRnNDb21tb25Nb2R1bGUsXG4gICAgRnNDb250ZW50RWRpdG9yTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29udGVudFN0eWxlQ29tcG9uZW50LFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDb250ZW50U3R5bGVDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzQ29udGVudFN0eWxlTW9kdWxlIHtcbn1cbiJdfQ==
@@ -1,144 +1,144 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { FsMessage } from '@firestitch/message';
3
- import { Subject } from 'rxjs';
4
- import { tap } from 'rxjs/operators';
5
- import { EditorType } from '../../../../enums';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@firestitch/message";
8
- import * as i2 from "angular-split";
9
- import * as i3 from "../editor-label/editor-label.component";
10
- import * as i4 from "@firestitch/text-editor";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "@firestitch/form";
13
- import * as i7 from "@firestitch/common";
14
- import * as i8 from "@firestitch/skeleton";
15
- export class EditorComponent {
16
- constructor(_cdRef, _message) {
17
- this._cdRef = _cdRef;
18
- this._message = _message;
19
- this.showHtml = false;
20
- this.showScss = false;
21
- this.showJs = false;
22
- this.showGlobalScss = false;
23
- this.changed = new EventEmitter();
24
- this.focused = new EventEmitter();
25
- this.blured = new EventEmitter();
26
- this.changes = {};
27
- this.EditorType = EditorType;
28
- this.resizing = false;
29
- this._destroy$ = new Subject();
30
- }
31
- ngOnInit() {
32
- this.initTextEditors();
33
- this.initGlobalContentStyle();
34
- }
35
- ngOnDestroy() {
36
- this._destroy$.next();
37
- this._destroy$.complete();
38
- }
39
- change(type, value) {
40
- this.changed.emit({ type, value });
41
- this.changes[type] = value;
42
- }
43
- get hasChanges() {
44
- return Object.keys(this.changes)
45
- .filter((name) => !!this.changes[name])
46
- .length !== 0;
47
- }
48
- clearChange(type) {
49
- this.changes[type] = undefined;
50
- this._cdRef.markForCheck();
51
- }
52
- initTextEditors() {
53
- this.scssConfig = {
54
- tabSize: 2,
55
- language: 'scss',
56
- height: '100%',
57
- focus: () => {
58
- this._onFocus(EditorType.Scss);
59
- },
60
- blur: () => {
61
- this.blured.emit(EditorType.Scss);
62
- },
63
- };
64
- this.jsConfig = {
65
- tabSize: 2,
66
- language: 'js',
67
- height: '100%',
68
- focus: () => {
69
- this._onFocus(EditorType.Js);
70
- },
71
- blur: () => {
72
- this.blured.emit(EditorType.Js);
73
- },
74
- };
75
- this.htmlConfig = {
76
- tabSize: 2,
77
- language: 'html',
78
- height: '100%',
79
- focus: () => {
80
- this._onFocus(EditorType.Html);
81
- },
82
- blur: () => {
83
- this.blured.emit(EditorType.Html);
84
- },
85
- };
86
- this.globalScssConfig = {
87
- tabSize: 2,
88
- language: 'scss',
89
- height: '100%',
90
- focus: () => {
91
- this._onFocus(EditorType.GlobalScss);
92
- },
93
- blur: () => {
94
- this.blured.emit(EditorType.GlobalScss);
95
- },
96
- };
97
- }
98
- initGlobalContentStyle() {
99
- this.contentConfig.loadContentStyle()
100
- .subscribe((contentStyle) => {
101
- this.contentStyle = contentStyle || {};
102
- this._cdRef.markForCheck();
103
- });
104
- }
105
- saveGlobalScss() {
106
- return this.contentConfig.saveContentStyle(this.contentStyle)
107
- .pipe(tap(() => {
108
- this._message.success('Saved Changes');
109
- }));
110
- }
111
- _onFocus(type) {
112
- this.focusedArea = type;
113
- this.focused.emit(type);
114
- }
115
- }
116
- EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
117
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "app-editor", inputs: { showHtml: "showHtml", showScss: "showScss", showJs: "showJs", showGlobalScss: "showGlobalScss", html: "html", scss: "scss", js: "js", contentConfig: "contentConfig" }, outputs: { changed: "changed", focused: "focused", blured: "blured" }, ngImport: i0, template: "<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $event)\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $event)\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $event)\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n", styles: [":host ::ng-deep .as-split-gutter{background-color:unset!important}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}\n"], components: [{ type: i2.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { type: i3.EditorLabelComponent, selector: "app-editor-label", inputs: ["changed", "focused"] }, { type: i4.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i2.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.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: i7.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { type: i8.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $event)\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $event)\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $event)\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n", styles: [":host ::ng-deep .as-split-gutter{background-color:unset!important}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}\n"] }]
121
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsMessage }]; }, propDecorators: { showHtml: [{
122
- type: Input
123
- }], showScss: [{
124
- type: Input
125
- }], showJs: [{
126
- type: Input
127
- }], showGlobalScss: [{
128
- type: Input
129
- }], html: [{
130
- type: Input
131
- }], scss: [{
132
- type: Input
133
- }], js: [{
134
- type: Input
135
- }], contentConfig: [{
136
- type: Input
137
- }], changed: [{
138
- type: Output
139
- }], focused: [{
140
- type: Output
141
- }], blured: [{
142
- type: Output
143
- }] } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { FsMessage } from '@firestitch/message';
3
+ import { Subject } from 'rxjs';
4
+ import { tap } from 'rxjs/operators';
5
+ import { EditorType } from '../../../../enums';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@firestitch/message";
8
+ import * as i2 from "angular-split";
9
+ import * as i3 from "../editor-label/editor-label.component";
10
+ import * as i4 from "@firestitch/text-editor";
11
+ import * as i5 from "@angular/forms";
12
+ import * as i6 from "@firestitch/form";
13
+ import * as i7 from "@firestitch/common";
14
+ import * as i8 from "@firestitch/skeleton";
15
+ export class EditorComponent {
16
+ constructor(_cdRef, _message) {
17
+ this._cdRef = _cdRef;
18
+ this._message = _message;
19
+ this.showHtml = false;
20
+ this.showScss = false;
21
+ this.showJs = false;
22
+ this.showGlobalScss = false;
23
+ this.changed = new EventEmitter();
24
+ this.focused = new EventEmitter();
25
+ this.blured = new EventEmitter();
26
+ this.changes = {};
27
+ this.EditorType = EditorType;
28
+ this.resizing = false;
29
+ this._destroy$ = new Subject();
30
+ }
31
+ ngOnInit() {
32
+ this.initTextEditors();
33
+ this.initGlobalContentStyle();
34
+ }
35
+ ngOnDestroy() {
36
+ this._destroy$.next();
37
+ this._destroy$.complete();
38
+ }
39
+ change(type, value) {
40
+ this.changed.emit({ type, value });
41
+ this.changes[type] = value;
42
+ }
43
+ get hasChanges() {
44
+ return Object.keys(this.changes)
45
+ .filter((name) => !!this.changes[name])
46
+ .length !== 0;
47
+ }
48
+ clearChange(type) {
49
+ this.changes[type] = undefined;
50
+ this._cdRef.markForCheck();
51
+ }
52
+ initTextEditors() {
53
+ this.scssConfig = {
54
+ tabSize: 2,
55
+ language: 'scss',
56
+ height: '100%',
57
+ focus: () => {
58
+ this._onFocus(EditorType.Scss);
59
+ },
60
+ blur: () => {
61
+ this.blured.emit(EditorType.Scss);
62
+ },
63
+ };
64
+ this.jsConfig = {
65
+ tabSize: 2,
66
+ language: 'js',
67
+ height: '100%',
68
+ focus: () => {
69
+ this._onFocus(EditorType.Js);
70
+ },
71
+ blur: () => {
72
+ this.blured.emit(EditorType.Js);
73
+ },
74
+ };
75
+ this.htmlConfig = {
76
+ tabSize: 2,
77
+ language: 'html',
78
+ height: '100%',
79
+ focus: () => {
80
+ this._onFocus(EditorType.Html);
81
+ },
82
+ blur: () => {
83
+ this.blured.emit(EditorType.Html);
84
+ },
85
+ };
86
+ this.globalScssConfig = {
87
+ tabSize: 2,
88
+ language: 'scss',
89
+ height: '100%',
90
+ focus: () => {
91
+ this._onFocus(EditorType.GlobalScss);
92
+ },
93
+ blur: () => {
94
+ this.blured.emit(EditorType.GlobalScss);
95
+ },
96
+ };
97
+ }
98
+ initGlobalContentStyle() {
99
+ this.contentConfig.loadContentStyle()
100
+ .subscribe((contentStyle) => {
101
+ this.contentStyle = contentStyle || {};
102
+ this._cdRef.markForCheck();
103
+ });
104
+ }
105
+ saveGlobalScss() {
106
+ return this.contentConfig.saveContentStyle(this.contentStyle)
107
+ .pipe(tap(() => {
108
+ this._message.success('Saved Changes');
109
+ }));
110
+ }
111
+ _onFocus(type) {
112
+ this.focusedArea = type;
113
+ this.focused.emit(type);
114
+ }
115
+ }
116
+ EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
117
+ EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "app-editor", inputs: { showHtml: "showHtml", showScss: "showScss", showJs: "showJs", showGlobalScss: "showGlobalScss", html: "html", scss: "scss", js: "js", contentConfig: "contentConfig" }, outputs: { changed: "changed", focused: "focused", blured: "blured" }, ngImport: i0, template: "<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $event)\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $event)\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $event)\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n", styles: [":host ::ng-deep .as-split-gutter{background-color:unset!important}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}\n"], components: [{ type: i2.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { type: i3.EditorLabelComponent, selector: "app-editor-label", inputs: ["changed", "focused"] }, { type: i4.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }], directives: [{ type: i2.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.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: i7.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { type: i8.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'app-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"showHtml\" [order]=\"1\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.html !== undefined\"\n [focused]=\"focusedArea === 'html'\">\n HTML\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"html\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Html, $event)\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showScss\" [order]=\"2\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.scss !== undefined\"\n [focused]=\"focusedArea === 'scss'\">\n SCSS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"scss\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Scss, $event)\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showJs\" [order]=\"3\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.js !== undefined\"\n [focused]=\"focusedArea === 'js'\">\n JS\n </app-editor-label>\n <fs-text-editor \n [(ngModel)]=\"js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 0 }\"\n (fsModelChange)=\"change(EditorType.Js, $event)\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"showGlobalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <app-editor-label\n [changed]=\"changes.globalScss !== undefined\"\n [focused]=\"focusedArea === 'globalScss'\">\n Global SCSS\n </app-editor-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"change(EditorType.GlobalScss, $event)\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n</as-split>\n", styles: [":host ::ng-deep .as-split-gutter{background-color:unset!important}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}\n"] }]
121
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsMessage }]; }, propDecorators: { showHtml: [{
122
+ type: Input
123
+ }], showScss: [{
124
+ type: Input
125
+ }], showJs: [{
126
+ type: Input
127
+ }], showGlobalScss: [{
128
+ type: Input
129
+ }], html: [{
130
+ type: Input
131
+ }], scss: [{
132
+ type: Input
133
+ }], js: [{
134
+ type: Input
135
+ }], contentConfig: [{
136
+ type: Input
137
+ }], changed: [{
138
+ type: Output
139
+ }], focused: [{
140
+ type: Output
141
+ }], blured: [{
142
+ type: Output
143
+ }] } });
144
144
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7O0FBVS9DLE1BQU0sT0FBTyxlQUFlO0lBa0MxQixZQUNVLE1BQXlCLEVBQ3pCLFFBQW1CO1FBRG5CLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFsQ2IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQU90QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQW1DLENBQUM7UUFDOUQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFOUMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixlQUFVLEdBQUcsVUFB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QUF2QixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsTUFBTTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzVGV4dEVkaXRvckNvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3RleHQtZWRpdG9yJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFZGl0b3JUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0h0bWwgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dTY3NzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93SnMgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dHbG9iYWxTY3NzID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIGh0bWw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzY3NzO1xuICBASW5wdXQoKSBwdWJsaWMganM7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZW50Q29uZmlnOiBGc0NvbnRlbnRDb25maWc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHR5cGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PigpO1xuICBAT3V0cHV0KCkgcHVibGljIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwdWJsaWMgY2hhbmdlczogYW55ID0ge307XG4gIHB1YmxpYyBFZGl0b3JUeXBlID0gRWRpdG9yVHlwZTtcbiAgcHVibGljIGZvY3VzZWRBcmVhOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnRlbnRTdHlsZToge1xuICAgIHNjc3M/OiBzdHJpbmc7XG4gIH07XG5cbiAgcHVibGljIHJlc2l6aW5nID0gZmFsc2U7XG4gIHB1YmxpYyB0aXRsZTtcblxuICBwdWJsaWMgc2Nzc0NvbmZpZzogRnNUZXh0RWRpdG9yQ29uZmlnO1xuICBwdWJsaWMgZ2xvYmFsU2Nzc0NvbmZpZzogRnNUZXh0RWRpdG9yQ29uZmlnO1xuICBwdWJsaWMgaHRtbENvbmZpZzogRnNUZXh0RWRpdG9yQ29uZmlnO1xuICBwdWJsaWMganNDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0VGV4dEVkaXRvcnMoKTtcbiAgICB0aGlzLmluaXRHbG9iYWxDb250ZW50U3R5bGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2UodHlwZSwgdmFsdWUpIHtcbiAgICB0aGlzLmNoYW5nZWQuZW1pdCh7IHR5cGUsIHZhbHVlIH0pO1xuICAgIHRoaXMuY2hhbmdlc1t0eXBlXSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNDaGFuZ2VzKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoYW5nZXMpXG4gICAgICAuZmlsdGVyKChuYW1lKSA9PiAhIXRoaXMuY2hhbmdlc1tuYW1lXSlcbiAgICAgIC5sZW5ndGggIT09IDA7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJDaGFuZ2UodHlwZSkge1xuICAgIHRoaXMuY2hhbmdlc1t0eXBlXSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0VGV4dEVkaXRvcnMoKSB7XG4gICAgdGhpcy5zY3NzQ29uZmlnID0ge1xuICAgICAgdGFiU2l6ZTogMixcbiAgICAgIGxhbmd1YWdlOiAnc2NzcycsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGZvY3VzOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX29uRm9jdXMoRWRpdG9yVHlwZS5TY3NzKTtcbiAgICAgIH0sXG4gICAgICBibHVyOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmx1cmVkLmVtaXQoRWRpdG9yVHlwZS5TY3NzKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmpzQ29uZmlnID0ge1xuICAgICAgdGFiU2l6ZTogMixcbiAgICAgIGxhbmd1YWdlOiAnanMnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBmb2N1czogKCkgPT4ge1xuICAgICAgICB0aGlzLl9vbkZvY3VzKEVkaXRvclR5cGUuSnMpO1xuICAgICAgfSxcbiAgICAgIGJsdXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVyZWQuZW1pdChFZGl0b3JUeXBlLkpzKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmh0bWxDb25maWcgPSB7XG4gICAgICB0YWJTaXplOiAyLFxuICAgICAgbGFuZ3VhZ2U6ICdodG1sJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgZm9jdXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy5fb25Gb2N1cyhFZGl0b3JUeXBlLkh0bWwpO1xuICAgICAgfSxcbiAgICAgIGJsdXI6ICgpID0+IHtcbiAgICAgICAgdGhpcy5ibHVyZWQuZW1pdChFZGl0b3JUeXBlLkh0bWwpO1xuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMuZ2xvYmFsU2Nzc0NvbmZpZyA9IHtcbiAgICAgIHRhYlNpemU6IDIsXG4gICAgICBsYW5ndWFnZTogJ3Njc3MnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBmb2N1czogKCkgPT4ge1xuICAgICAgICB0aGlzLl9vbkZvY3VzKEVkaXRvclR5cGUuR2xvYmFsU2Nzcyk7XG4gICAgICB9LFxuICAgICAgYmx1cjogKCkgPT4ge1xuICAgICAgICB0aGlzLmJsdXJlZC5lbWl0KEVkaXRvclR5cGUuR2xvYmFsU2Nzcyk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaW5pdEdsb2JhbENvbnRlbnRTdHlsZSgpIHtcbiAgICB0aGlzLmNvbnRlbnRDb25maWcubG9hZENvbnRlbnRTdHlsZSgpXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50U3R5bGUpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge307XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUdsb2JhbFNjc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudENvbmZpZy5zYXZlQ29udGVudFN0eWxlKHRoaXMuY29udGVudFN0eWxlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uRm9jdXModHlwZSk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZEFyZWEgPSB0eXBlO1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KHR5cGUpO1xuICB9XG5cbn1cbiIsIjxhcy1zcGxpdCBbdW5pdF09XCIncGVyY2VudCdcIiBbZ3V0dGVyU2l6ZV09XCIyNVwiPiBcbiAgPGFzLXNwbGl0LWFyZWEgW3NpemVdPVwiNzBcIiBbdmlzaWJsZV09XCJzaG93SHRtbFwiIFtvcmRlcl09XCIxXCI+XG4gICAgPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIj5cbiAgICAgIDxhcHAtZWRpdG9yLWxhYmVsXG4gICAgICAgICAgW2NoYW5nZWRdPVwiY2hhbmdlcy5odG1sICE9PSB1bmRlZmluZWRcIlxuICAgICAgICAgIFtmb2N1c2VkXT1cImZvY3VzZWRBcmVhID09PSAnaHRtbCdcIj5cbiAgICAgICAgSFRNTFxuICAgICAgPC9hcHAtZWRpdG9yLWxhYmVsPlxuICAgICAgPGZzLXRleHQtZWRpdG9yIFxuICAgICAgICBbKG5nTW9kZWwpXT1cImh0bWxcIiBcbiAgICAgICAgbmFtZT1cImh0bWxcIlxuICAgICAgICBbZnNNb2RlbENoYW5nZU9wdGlvbnNdPVwieyBkZWJvdW5jZTogMCB9XCJcbiAgICAgICAgKGZzTW9kZWxDaGFuZ2UpPVwiY2hhbmdlKEVkaXRvclR5cGUuSHRtbCwgJGV2ZW50KVwiXG4gICAgICAgIFtjb25maWddPVwiaHRtbENvbmZpZ1wiPlxuICAgICAgPC9mcy10ZXh0LWVkaXRvcj4gICAgICAgICAgICAgIFxuICAgIDwvZGl2PlxuICA8L2FzLXNwbGl0LWFyZWE+XG4gIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjMwXCIgW3Zpc2libGVdPVwic2hvd1Njc3NcIiBbb3JkZXJdPVwiMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCI+XG4gICAgICA8YXBwLWVkaXRvci1sYWJlbFxuICAgICAgICAgIFtjaGFuZ2VkXT1cImNoYW5nZXMuc2NzcyAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgICBbZm9jdXNlZF09XCJmb2N1c2VkQXJlYSA9PT0gJ3Njc3MnXCI+XG4gICAgICAgIFNDU1NcbiAgICAgIDwvYXBwLWVkaXRvci1sYWJlbD5cbiAgICAgIDxmcy10ZXh0LWVkaXRvciBcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzY3NzXCIgXG4gICAgICAgIG5hbWU9XCJzY3NzXCJcbiAgICAgICAgW2ZzTW9kZWxDaGFuZ2VPcHRpb25zXT1cInsgZGVib3VuY2U6IDAgfVwiXG4gICAgICAgIChmc01vZGVsQ2hhbmdlKT1cImNoYW5nZShFZGl0b3JUeXBlLlNjc3MsICRldmVudClcIlxuICAgICAgICBbY29uZmlnXT1cInNjc3NDb25maWdcIj5cbiAgICAgIDwvZnMtdGV4dC1lZGl0b3I+ICAgIFxuICAgIDwvZGl2PlxuICA8L2FzLXNwbGl0LWFyZWE+XG4gIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjMwXCIgIFt2aXNpYmxlXT1cInNob3dKc1wiIFtvcmRlcl09XCIzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIj5cbiAgICAgIDxhcHAtZWRpdG9yLWxhYmVsXG4gICAgICAgICAgW2NoYW5nZWRdPVwiY2hhbmdlcy5qcyAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgICBbZm9jdXNlZF09XCJmb2N1c2VkQXJlYSA9PT0gJ2pzJ1wiPlxuICAgICAgICBKU1xuICAgICAgPC9hcHAtZWRpdG9yLWxhYmVsPlxuICAgICAgPGZzLXRleHQtZWRpdG9yIFxuICAgICAgICBbKG5nTW9kZWwpXT1cImpzXCIgXG4gICAgICAgIG5hbWU9XCJqc1wiXG4gICAgICAgIFtmc01vZGVsQ2hhbmdlT3B0aW9uc109XCJ7IGRlYm91bmNlOiAwIH1cIlxuICAgICAgICAoZnNNb2RlbENoYW5nZSk9XCJjaGFuZ2UoRWRpdG9yVHlwZS5KcywgJGV2ZW50KVwiXG4gICAgICAgIFtjb25maWddPVwianNDb25maWdcIj5cbiAgICAgIDwvZnMtdGV4dC1lZGl0b3I+ICAgIFxuICAgIDwvZGl2PlxuICA8L2FzLXNwbGl0LWFyZWE+XG4gIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjMwXCIgW3Zpc2libGVdPVwic2hvd0dsb2JhbFNjc3NcIiBbb3JkZXJdPVwiNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCI+XG4gICAgICA8YXBwLWVkaXRvci1sYWJlbFxuICAgICAgICAgIFtjaGFuZ2VkXT1cImNoYW5nZXMuZ2xvYmFsU2NzcyAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgICBbZm9jdXNlZF09XCJmb2N1c2VkQXJlYSA9PT0gJ2dsb2JhbFNjc3MnXCI+XG4gICAgICAgIEdsb2JhbCBTQ1NTXG4gICAgICA8L2FwcC1lZGl0b3ItbGFiZWw+XG4gICAgICA8bmctY29udGFpbmVyICpmc1NrZWxldG9uPVwiY29udGVudFN0eWxlXCI+XG4gICAgICAgIDxmcy10ZXh0LWVkaXRvciBcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRTdHlsZS5zY3NzXCIgXG4gICAgICAgICAgbmFtZT1cImdsb2JhbFNjc3NcIlxuICAgICAgICAgIFtmc01vZGVsQ2hhbmdlT3B0aW9uc109XCJ7IGRlYm91bmNlOiAzMDAgfVwiXG4gICAgICAgICAgKGZzTW9kZWxDaGFuZ2UpPVwiY2hhbmdlKEVkaXRvclR5cGUuR2xvYmFsU2NzcywgJGV2ZW50KVwiXG4gICAgICAgICAgW2NvbmZpZ109XCJnbG9iYWxTY3NzQ29uZmlnXCI+XG4gICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+IFxuICAgICAgPC9uZy1jb250YWluZXI+ICAgXG4gICAgPC9kaXY+XG4gIDwvYXMtc3BsaXQtYXJlYT5cbjwvYXMtc3BsaXQ+XG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './editor.component';
1
+ export * from './editor.component';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZWRpdG9yL2NvbXBvbmVudHMvZWRpdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuIl19