@firestitch/html-editor 15.0.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/app/modules/html-editor/components/html-editor/html-editor.component.d.ts +1 -1
  2. package/app/modules/html-renderer/components/html-renderer/html-renderer.component.d.ts +1 -1
  3. package/esm2022/app/modules/html-editor/classes/plugin.mjs +7 -0
  4. package/esm2022/app/modules/html-editor/components/html-editor/html-editor.component.mjs +518 -0
  5. package/{esm2020 → esm2022}/app/modules/html-editor/directives/html-editor-container.directive.mjs +4 -4
  6. package/{esm2020 → esm2022}/app/modules/html-editor/fs-html-editor.module.mjs +13 -13
  7. package/esm2022/app/modules/html-editor/plugins/checklist.plugin.mjs +40 -0
  8. package/esm2022/app/modules/html-editor/plugins/code.plugin.mjs +68 -0
  9. package/esm2022/app/modules/html-editor/plugins/mention.plugin.mjs +92 -0
  10. package/esm2022/app/modules/html-editor/plugins/realtime.plugin.mjs +17 -0
  11. package/esm2022/app/modules/html-editor/plugins/screen-record.plugin.mjs +94 -0
  12. package/esm2022/app/modules/html-editor/services/froala-loader.service.mjs +93 -0
  13. package/esm2022/app/modules/html-renderer/components/html-renderer/html-renderer.component.mjs +27 -0
  14. package/{esm2020 → esm2022}/app/modules/html-renderer/fs-html-renderer.module.mjs +5 -5
  15. package/{fesm2020 → fesm2022}/firestitch-html-editor.mjs +95 -71
  16. package/{fesm2020 → fesm2022}/firestitch-html-editor.mjs.map +1 -1
  17. package/package.json +5 -11
  18. package/esm2020/app/modules/html-editor/classes/plugin.mjs +0 -5
  19. package/esm2020/app/modules/html-editor/components/html-editor/html-editor.component.mjs +0 -509
  20. package/esm2020/app/modules/html-editor/plugins/checklist.plugin.mjs +0 -39
  21. package/esm2020/app/modules/html-editor/plugins/code.plugin.mjs +0 -67
  22. package/esm2020/app/modules/html-editor/plugins/mention.plugin.mjs +0 -90
  23. package/esm2020/app/modules/html-editor/plugins/realtime.plugin.mjs +0 -16
  24. package/esm2020/app/modules/html-editor/plugins/screen-record.plugin.mjs +0 -92
  25. package/esm2020/app/modules/html-editor/services/froala-loader.service.mjs +0 -90
  26. package/esm2020/app/modules/html-renderer/components/html-renderer/html-renderer.component.mjs +0 -24
  27. package/fesm2015/firestitch-html-editor.mjs +0 -1043
  28. package/fesm2015/firestitch-html-editor.mjs.map +0 -1
  29. /package/{esm2020 → esm2022}/app/modules/html-editor/consts/paragraph-buttons.const.mjs +0 -0
  30. /package/{esm2020 → esm2022}/app/modules/html-editor/consts/rich-buttons.const.mjs +0 -0
  31. /package/{esm2020 → esm2022}/app/modules/html-editor/consts/text-buttons.const.mjs +0 -0
  32. /package/{esm2020 → esm2022}/app/modules/html-editor/directives/index.mjs +0 -0
  33. /package/{esm2020 → esm2022}/app/modules/html-editor/enums/default-plugin.enum.mjs +0 -0
  34. /package/{esm2020 → esm2022}/app/modules/html-editor/injects/config.inject.mjs +0 -0
  35. /package/{esm2020 → esm2022}/app/modules/html-editor/interfaces/html-editor-config.mjs +0 -0
  36. /package/{esm2020 → esm2022}/app/modules/html-editor/interfaces/index.mjs +0 -0
  37. /package/{esm2020 → esm2022}/app/modules/html-editor/interfaces/plugin-config.mjs +0 -0
  38. /package/{esm2020 → esm2022}/app/modules/html-editor/interfaces/toolbar-button.mjs +0 -0
  39. /package/{esm2020 → esm2022}/app/modules/html-editor/plugins/configs/mention-plugin.config.mjs +0 -0
  40. /package/{esm2020 → esm2022}/app/modules/html-editor/plugins/configs/screen-record-plugin.config.mjs +0 -0
  41. /package/{esm2020 → esm2022}/firestitch-html-editor.mjs +0 -0
  42. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -4,11 +4,11 @@ export class FsHtmlEditorContainerDirective {
4
4
  static ngTemplateContextGuard(dir, ctx) {
5
5
  return true;
6
6
  }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FsHtmlEditorContainerDirective, selector: "[fsHtmlEditorContainer]", ngImport: i0 });
7
9
  }
8
- FsHtmlEditorContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
- FsHtmlEditorContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FsHtmlEditorContainerDirective, selector: "[fsHtmlEditorContainer]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorContainerDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorContainerDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{ selector: '[fsHtmlEditorContainer]' }]
13
13
  }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1lZGl0b3ItY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9odG1sLWVkaXRvci9kaXJlY3RpdmVzL2h0bWwtZWRpdG9yLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEdBQW1DLEVBQ25DLEdBQVk7UUFJWixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzRIQVJVLDhCQUE4QjtnSEFBOUIsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBRDFDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tmc0h0bWxFZGl0b3JDb250YWluZXJdJyB9KVxuZXhwb3J0IGNsYXNzIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gIHB1YmxpYyBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICBkaXI6IEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICBjdHg6IHVua25vd24sXG4gICk6IGN0eCBpcyB7XG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIH0ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1lZGl0b3ItY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9odG1sLWVkaXRvci9kaXJlY3RpdmVzL2h0bWwtZWRpdG9yLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUNsQyxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEdBQW1DLEVBQ25DLEdBQVk7UUFJWixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7d0dBUlUsOEJBQThCOzRGQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBRDFDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tmc0h0bWxFZGl0b3JDb250YWluZXJdJyB9KVxuZXhwb3J0IGNsYXNzIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gIHB1YmxpYyBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChcbiAgICBkaXI6IEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICBjdHg6IHVua25vd24sXG4gICk6IGN0eCBpcyB7XG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIH0ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -21,19 +21,19 @@ export class FsHtmlEditorModule {
21
21
  ],
22
22
  };
23
23
  }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorModule, declarations: [FsHtmlEditorComponent,
26
+ FsHtmlEditorContainerDirective], imports: [CommonModule,
27
+ FsSkeletonModule,
28
+ FsLabelModule,
29
+ FsHtmlRendererModule], exports: [FsHtmlEditorComponent,
30
+ FsHtmlEditorContainerDirective] });
31
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorModule, imports: [CommonModule,
32
+ FsSkeletonModule,
33
+ FsLabelModule,
34
+ FsHtmlRendererModule] });
24
35
  }
25
- FsHtmlEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- FsHtmlEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorModule, declarations: [FsHtmlEditorComponent,
27
- FsHtmlEditorContainerDirective], imports: [CommonModule,
28
- FsSkeletonModule,
29
- FsLabelModule,
30
- FsHtmlRendererModule], exports: [FsHtmlEditorComponent,
31
- FsHtmlEditorContainerDirective] });
32
- FsHtmlEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorModule, imports: [CommonModule,
33
- FsSkeletonModule,
34
- FsLabelModule,
35
- FsHtmlRendererModule] });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlEditorModule, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlEditorModule, decorators: [{
37
37
  type: NgModule,
38
38
  args: [{
39
39
  imports: [
@@ -72,4 +72,4 @@ export function FsHtmlEditorConfigFactory(config) {
72
72
  ...config,
73
73
  };
74
74
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtaHRtbC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2h0bWwtZWRpdG9yL2ZzLWh0bWwtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFxQi9GLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUE2QixFQUFFO1FBQ25ELE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUM1RDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixVQUFVLEVBQUUseUJBQXlCO29CQUNyQyxJQUFJLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDdEM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztnSEFiVSxrQkFBa0I7aUhBQWxCLGtCQUFrQixpQkFKM0IscUJBQXFCO1FBQ3JCLDhCQUE4QixhQVo5QixZQUFZO1FBRVosZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixvQkFBb0IsYUFHcEIscUJBQXFCO1FBQ3JCLDhCQUE4QjtpSEFPckIsa0JBQWtCLFlBZjNCLFlBQVk7UUFFWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLG9CQUFvQjs0RkFXWCxrQkFBa0I7a0JBakI5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUVaLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsOEJBQThCO3FCQUMvQjtpQkFDRjs7QUFpQkQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQTBCO0lBQ2xFLE9BQU87UUFDTCxhQUFhLEVBQUU7Ozs7Ozs7Ozs7Ozs7O1NBY2Q7UUFDRCxHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgRnNTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NrZWxldG9uJztcblxuaW1wb3J0IHsgRnNIdG1sUmVuZGVyZXJNb2R1bGUgfSBmcm9tICcuLi9odG1sLXJlbmRlcmVyL2ZzLWh0bWwtcmVuZGVyZXIubW9kdWxlJztcblxuaW1wb3J0IHsgRnNIdG1sRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2h0bWwtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRnJvYWxhUGx1Z2luIH0gZnJvbSAnLi9lbnVtcy9kZWZhdWx0LXBsdWdpbi5lbnVtJztcbmltcG9ydCB7IEZTX0hUTUxfRURJVE9SX0NPTkZJRywgRlNfSFRNTF9FRElUT1JfREVGQVVMVF9DT05GSUcgfSBmcm9tICcuL2luamVjdHMvY29uZmlnLmluamVjdCc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvaHRtbC1lZGl0b3ItY29uZmlnJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuXG4gICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICBGc0xhYmVsTW9kdWxlLFxuICAgIEZzSHRtbFJlbmRlcmVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNIdG1sRWRpdG9yQ29tcG9uZW50LFxuICAgIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNIdG1sRWRpdG9yQ29tcG9uZW50LFxuICAgIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNIdG1sRWRpdG9yTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogRnNIdG1sRWRpdG9yQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEZzSHRtbEVkaXRvck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnNIdG1sRWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRlNfSFRNTF9FRElUT1JfREVGQVVMVF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZTX0hUTUxfRURJVE9SX0NPTkZJRyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBGc0h0bWxFZGl0b3JDb25maWdGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtGU19IVE1MX0VESVRPUl9ERUZBVUxUX0NPTkZJR10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZzSHRtbEVkaXRvckNvbmZpZ0ZhY3RvcnkoY29uZmlnOiBGc0h0bWxFZGl0b3JDb25maWcpIHtcbiAgcmV0dXJuIHtcbiAgICBmcm9hbGFQbHVnaW5zOiBbXG4gICAgICBGcm9hbGFQbHVnaW4uQWxpZ24sXG4gICAgICBGcm9hbGFQbHVnaW4uQ29sb3JzLFxuICAgICAgRnJvYWxhUGx1Z2luLkltYWdlLFxuICAgICAgRnJvYWxhUGx1Z2luLkxpbmssXG4gICAgICBGcm9hbGFQbHVnaW4uTGlzdHMsXG4gICAgICBGcm9hbGFQbHVnaW4uUGFyYWdyYXBoRm9ybWF0LFxuICAgICAgRnJvYWxhUGx1Z2luLlF1b3RlLFxuICAgICAgRnJvYWxhUGx1Z2luLlRhYmxlLFxuICAgICAgRnJvYWxhUGx1Z2luLlVybCxcbiAgICAgIEZyb2FsYVBsdWdpbi5WaWRlbyxcbiAgICAgIEZyb2FsYVBsdWdpbi5EcmFnZ2FibGUsXG4gICAgICBGcm9hbGFQbHVnaW4uRm9udFNpemUsXG4gICAgICBGcm9hbGFQbHVnaW4uTGluZUhlaWdodCxcbiAgICBdLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbn1cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtaHRtbC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2h0bWwtZWRpdG9yL2ZzLWh0bWwtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFxQi9GLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUE2QixFQUFFO1FBQ25ELE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUM1RDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixVQUFVLEVBQUUseUJBQXlCO29CQUNyQyxJQUFJLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDdEM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO3dHQWJVLGtCQUFrQjt5R0FBbEIsa0JBQWtCLGlCQUozQixxQkFBcUI7WUFDckIsOEJBQThCLGFBWjlCLFlBQVk7WUFFWixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG9CQUFvQixhQUdwQixxQkFBcUI7WUFDckIsOEJBQThCO3lHQU9yQixrQkFBa0IsWUFmM0IsWUFBWTtZQUVaLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2Isb0JBQW9COzs0RkFXWCxrQkFBa0I7a0JBakI5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUVaLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDL0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsOEJBQThCO3FCQUMvQjtpQkFDRjs7QUFpQkQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQTBCO0lBQ2xFLE9BQU87UUFDTCxhQUFhLEVBQUU7Ozs7Ozs7Ozs7Ozs7O1NBY2Q7UUFDRCxHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgRnNTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NrZWxldG9uJztcblxuaW1wb3J0IHsgRnNIdG1sUmVuZGVyZXJNb2R1bGUgfSBmcm9tICcuLi9odG1sLXJlbmRlcmVyL2ZzLWh0bWwtcmVuZGVyZXIubW9kdWxlJztcblxuaW1wb3J0IHsgRnNIdG1sRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2h0bWwtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRnJvYWxhUGx1Z2luIH0gZnJvbSAnLi9lbnVtcy9kZWZhdWx0LXBsdWdpbi5lbnVtJztcbmltcG9ydCB7IEZTX0hUTUxfRURJVE9SX0NPTkZJRywgRlNfSFRNTF9FRElUT1JfREVGQVVMVF9DT05GSUcgfSBmcm9tICcuL2luamVjdHMvY29uZmlnLmluamVjdCc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvaHRtbC1lZGl0b3ItY29uZmlnJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuXG4gICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICBGc0xhYmVsTW9kdWxlLFxuICAgIEZzSHRtbFJlbmRlcmVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNIdG1sRWRpdG9yQ29tcG9uZW50LFxuICAgIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNIdG1sRWRpdG9yQ29tcG9uZW50LFxuICAgIEZzSHRtbEVkaXRvckNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNIdG1sRWRpdG9yTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogRnNIdG1sRWRpdG9yQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEZzSHRtbEVkaXRvck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnNIdG1sRWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRlNfSFRNTF9FRElUT1JfREVGQVVMVF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZTX0hUTUxfRURJVE9SX0NPTkZJRyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBGc0h0bWxFZGl0b3JDb25maWdGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtGU19IVE1MX0VESVRPUl9ERUZBVUxUX0NPTkZJR10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZzSHRtbEVkaXRvckNvbmZpZ0ZhY3RvcnkoY29uZmlnOiBGc0h0bWxFZGl0b3JDb25maWcpIHtcbiAgcmV0dXJuIHtcbiAgICBmcm9hbGFQbHVnaW5zOiBbXG4gICAgICBGcm9hbGFQbHVnaW4uQWxpZ24sXG4gICAgICBGcm9hbGFQbHVnaW4uQ29sb3JzLFxuICAgICAgRnJvYWxhUGx1Z2luLkltYWdlLFxuICAgICAgRnJvYWxhUGx1Z2luLkxpbmssXG4gICAgICBGcm9hbGFQbHVnaW4uTGlzdHMsXG4gICAgICBGcm9hbGFQbHVnaW4uUGFyYWdyYXBoRm9ybWF0LFxuICAgICAgRnJvYWxhUGx1Z2luLlF1b3RlLFxuICAgICAgRnJvYWxhUGx1Z2luLlRhYmxlLFxuICAgICAgRnJvYWxhUGx1Z2luLlVybCxcbiAgICAgIEZyb2FsYVBsdWdpbi5WaWRlbyxcbiAgICAgIEZyb2FsYVBsdWdpbi5EcmFnZ2FibGUsXG4gICAgICBGcm9hbGFQbHVnaW4uRm9udFNpemUsXG4gICAgICBGcm9hbGFQbHVnaW4uTGluZUhlaWdodCxcbiAgICBdLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Plugin } from '../classes/plugin';
2
+ export class ChecklistPlugin extends Plugin {
3
+ config;
4
+ constructor(config = { name: 'checklist' }) {
5
+ super();
6
+ this.config = config;
7
+ this.config = {
8
+ ...config,
9
+ name: 'checklist',
10
+ buttons: [
11
+ {
12
+ name: 'checklist',
13
+ svgPath: 'M8.4,10.3l-1.2,1.2l4,4L20,6.7l-1.2-1.2l-7.6,7.6L8.4,10.3z M18.2,18.2H5.8V5.8h8.9V4H5.8C4.8,4,4,4.8,4,5.8v12.4c0,1,0.8,1.8,1.8,1.8h12.4c1,0,1.8-0.8,1.8-1.8v-7.1h-1.8V18.2z',
14
+ click: (editor) => {
15
+ editor.html.insert('<ul class="checklist"><li></li></ul>');
16
+ }
17
+ }
18
+ ]
19
+ };
20
+ }
21
+ initialize() {
22
+ this.editor.events.on('click', (e) => {
23
+ const li = e.target;
24
+ if (li.nodeName === 'LI' && e.offsetX < 0) {
25
+ const items = [li, ...li.querySelectorAll('li')];
26
+ if (li.classList.contains('checked')) {
27
+ items.forEach((item) => {
28
+ item.classList.remove('checked');
29
+ });
30
+ }
31
+ else {
32
+ items.forEach((item) => {
33
+ item.classList.add('checked');
34
+ });
35
+ }
36
+ }
37
+ }, false);
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9odG1sLWVkaXRvci9wbHVnaW5zL2NoZWNrbGlzdC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNDLE1BQU0sT0FBTyxlQUFnQixTQUFRLE1BQU07SUFFZjtJQUExQixZQUEwQixTQUF1QixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFEZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBc0M7UUFFcEUsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsV0FBVztvQkFDakIsT0FBTyxFQUFFLDRLQUE0SztvQkFDckwsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7b0JBQzdELENBQUM7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3BCLElBQUksRUFBRSxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUU7Z0JBRXpDLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBRWpELElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3BDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7UUFFSCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuLi9jbGFzc2VzL3BsdWdpbic7XG5cbmltcG9ydCB7IFBsdWdpbkNvbmZpZyB9IGZyb20gJy4vLi4vaW50ZXJmYWNlcy9wbHVnaW4tY29uZmlnJztcblxuXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0UGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogUGx1Z2luQ29uZmlnID0geyBuYW1lOiAnY2hlY2tsaXN0JyB9KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIG5hbWU6ICdjaGVja2xpc3QnLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2NoZWNrbGlzdCcsXG4gICAgICAgICAgc3ZnUGF0aDogJ004LjQsMTAuM2wtMS4yLDEuMmw0LDRMMjAsNi43bC0xLjItMS4ybC03LjYsNy42TDguNCwxMC4zeiBNMTguMiwxOC4ySDUuOFY1LjhoOC45VjRINS44QzQuOCw0LDQsNC44LDQsNS44djEyLjRjMCwxLDAuOCwxLjgsMS44LDEuOGgxMi40YzEsMCwxLjgtMC44LDEuOC0xLjh2LTcuMWgtMS44VjE4LjJ6JyxcbiAgICAgICAgICBjbGljazogKGVkaXRvcikgPT4ge1xuICAgICAgICAgICAgZWRpdG9yLmh0bWwuaW5zZXJ0KCc8dWwgY2xhc3M9XCJjaGVja2xpc3RcIj48bGk+PC9saT48L3VsPicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmVkaXRvci5ldmVudHMub24oJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGNvbnN0IGxpID0gZS50YXJnZXQ7XG4gICAgICBpZiAobGkubm9kZU5hbWUgPT09ICdMSScgJiYgZS5vZmZzZXRYIDwgMCkge1xuXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gW2xpLCAuLi5saS5xdWVyeVNlbGVjdG9yQWxsKCdsaScpXTtcblxuICAgICAgICBpZiAobGkuY2xhc3NMaXN0LmNvbnRhaW5zKCdjaGVja2VkJykpIHtcbiAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2NoZWNrZWQnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2NoZWNrZWQnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSwgZmFsc2UpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { Plugin } from '../classes/plugin';
2
+ export class CodePlugin extends Plugin {
3
+ config;
4
+ constructor(config = { name: 'code' }) {
5
+ super();
6
+ this.config = config;
7
+ this.config = {
8
+ ...config,
9
+ name: 'code',
10
+ buttons: [
11
+ {
12
+ name: 'code',
13
+ svgPath: 'M8.9,7.3L4.2,12l4.7,4.7l1.1-1.1L6.4,12L10,8.4L8.9,7.3z M15.1,7.3L14,8.4l3.6,3.6L14,15.6l1.1,1.1l4.7-4.7L15.1,7.3z',
14
+ click: (editor) => {
15
+ const node = editor.selection.get();
16
+ const codeEl = this._getCodeEl(node.baseNode);
17
+ if (codeEl) {
18
+ codeEl.classList.remove('code');
19
+ }
20
+ else {
21
+ editor.html.insert('<p class="code">' + editor.selection.get().toString().replace(/\n{1,}/g, '<br>') + '</p>');
22
+ }
23
+ }
24
+ }
25
+ ]
26
+ };
27
+ }
28
+ initialize() {
29
+ this.editor.events.on('keydown', (e) => {
30
+ if (e.keyCode === 13) {
31
+ const selection = this.editor.selection.get();
32
+ if (selection && this._getCodeEl(selection.baseNode)) {
33
+ e.preventDefault();
34
+ e.stopPropagation();
35
+ e.stopImmediatePropagation();
36
+ let br = '<br>';
37
+ const base = selection.baseNode;
38
+ if (base.nodeName === '#text' && selection.baseOffset === base.length) {
39
+ if (!(base.nextSibling && base.nextSibling.nodeName === 'BR')) {
40
+ br += '<br>';
41
+ }
42
+ }
43
+ else {
44
+ const el = Array.from(base.childNodes).splice(selection.baseOffset - 1, 1).pop();
45
+ if (el && el.nodeName !== 'BR') {
46
+ br += '<br>';
47
+ }
48
+ }
49
+ this.editor.html.insert(br);
50
+ return false;
51
+ }
52
+ }
53
+ }, true);
54
+ }
55
+ destroy() { }
56
+ _getCodeEl(el) {
57
+ if (el) {
58
+ if (el.classList && el.classList.contains('code')) {
59
+ return el;
60
+ }
61
+ if (el.parentElement) {
62
+ return this._getCodeEl(el.parentElement);
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1lZGl0b3IvcGx1Z2lucy9jb2RlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLM0MsTUFBTSxPQUFPLFVBQVcsU0FBUSxNQUFNO0lBRVY7SUFBMUIsWUFBMEIsU0FBdUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRGdCLFdBQU0sR0FBTixNQUFNLENBQWlDO1FBRS9ELElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUUsbUhBQW1IO29CQUM1SCxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDaEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzlDLElBQUksTUFBTSxFQUFFOzRCQUNWLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUNqQzs2QkFBTTs0QkFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7eUJBQy9HO29CQUNILENBQUM7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO2dCQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFFOUMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3BELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUNwQixDQUFDLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO29CQUNoQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO29CQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFFckUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRTs0QkFDN0QsRUFBRSxJQUFJLE1BQU0sQ0FBQzt5QkFDZDtxQkFDRjt5QkFBTTt3QkFDTCxNQUFNLEVBQUUsR0FBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ3RGLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFOzRCQUM5QixFQUFFLElBQUksTUFBTSxDQUFDO3lCQUNkO3FCQUNGO29CQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDNUIsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxPQUFPLEtBQUksQ0FBQztJQUVYLFVBQVUsQ0FBQyxFQUFFO1FBRW5CLElBQUksRUFBRSxFQUFFO1lBQ04sSUFBSSxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNqRCxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBRUQsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFO2dCQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbiB9IGZyb20gJy4uL2NsYXNzZXMvcGx1Z2luJztcblxuaW1wb3J0IHsgUGx1Z2luQ29uZmlnIH0gZnJvbSAnLi8uLi9pbnRlcmZhY2VzL3BsdWdpbi1jb25maWcnO1xuXG5cbmV4cG9ydCBjbGFzcyBDb2RlUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogUGx1Z2luQ29uZmlnID0geyBuYW1lOiAnY29kZScgfSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBuYW1lOiAnY29kZScsXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnY29kZScsXG4gICAgICAgICAgc3ZnUGF0aDogJ004LjksNy4zTDQuMiwxMmw0LjcsNC43bDEuMS0xLjFMNi40LDEyTDEwLDguNEw4LjksNy4zeiBNMTUuMSw3LjNMMTQsOC40bDMuNiwzLjZMMTQsMTUuNmwxLjEsMS4xbDQuNy00LjdMMTUuMSw3LjN6JyxcbiAgICAgICAgICBjbGljazogKGVkaXRvcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGVkaXRvci5zZWxlY3Rpb24uZ2V0KCk7XG4gICAgICAgICAgICBjb25zdCBjb2RlRWwgPSB0aGlzLl9nZXRDb2RlRWwobm9kZS5iYXNlTm9kZSk7XG4gICAgICAgICAgICBpZiAoY29kZUVsKSB7XG4gICAgICAgICAgICAgIGNvZGVFbC5jbGFzc0xpc3QucmVtb3ZlKCdjb2RlJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlZGl0b3IuaHRtbC5pbnNlcnQoJzxwIGNsYXNzPVwiY29kZVwiPicgKyBlZGl0b3Iuc2VsZWN0aW9uLmdldCgpLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxuezEsfS9nLCc8YnI+JykgKyAnPC9wPicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmVkaXRvci5ldmVudHMub24oJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5lZGl0b3Iuc2VsZWN0aW9uLmdldCgpO1xuXG4gICAgICAgIGlmIChzZWxlY3Rpb24gJiYgdGhpcy5fZ2V0Q29kZUVsKHNlbGVjdGlvbi5iYXNlTm9kZSkpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGxldCBiciA9ICc8YnI+JztcbiAgICAgICAgICBjb25zdCBiYXNlID0gc2VsZWN0aW9uLmJhc2VOb2RlO1xuICAgICAgICAgIGlmIChiYXNlLm5vZGVOYW1lID09PSAnI3RleHQnICYmIHNlbGVjdGlvbi5iYXNlT2Zmc2V0ID09PSBiYXNlLmxlbmd0aCkge1xuXG4gICAgICAgICAgICBpZiAoIShiYXNlLm5leHRTaWJsaW5nICYmIGJhc2UubmV4dFNpYmxpbmcubm9kZU5hbWUgPT09ICdCUicpKSB7XG4gICAgICAgICAgICAgIGJyICs9ICc8YnI+JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZWw6IGFueSA9IEFycmF5LmZyb20oYmFzZS5jaGlsZE5vZGVzKS5zcGxpY2Uoc2VsZWN0aW9uLmJhc2VPZmZzZXQgLSAxLCAxKS5wb3AoKTtcbiAgICAgICAgICAgIGlmIChlbCAmJiBlbC5ub2RlTmFtZSAhPT0gJ0JSJykge1xuICAgICAgICAgICAgICBiciArPSAnPGJyPic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5lZGl0b3IuaHRtbC5pbnNlcnQoYnIpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7fVxuXG4gIHByaXZhdGUgX2dldENvZGVFbChlbCkge1xuXG4gICAgaWYgKGVsKSB7XG4gICAgICBpZiAoZWwuY2xhc3NMaXN0ICYmIGVsLmNsYXNzTGlzdC5jb250YWlucygnY29kZScpKSB7XG4gICAgICAgIHJldHVybiBlbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldENvZGVFbChlbC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,92 @@
1
+ import { debounce } from 'lodash-es';
2
+ import Tribute from 'tributejs';
3
+ import { Plugin } from '../classes/plugin';
4
+ import { guid } from '@firestitch/common';
5
+ export class MentionPlugin extends Plugin {
6
+ config;
7
+ static _currentGuid = null;
8
+ static _tributes = [];
9
+ _tribute;
10
+ _guid = guid();
11
+ constructor(config) {
12
+ super();
13
+ this.config = config;
14
+ this.config = {
15
+ ...config,
16
+ buttons: [
17
+ {
18
+ name: config.name,
19
+ tooltip: config.tooltip,
20
+ svgPath: config.iconPath,
21
+ click: (editor) => {
22
+ this._closeAll();
23
+ this._tribute.showMenuForCollection(editor.el);
24
+ }
25
+ }
26
+ ]
27
+ };
28
+ this._tribute = new Tribute({
29
+ values: debounce(this._loadValues.bind(this), 200),
30
+ searchOpts: {
31
+ pre: '',
32
+ post: '',
33
+ skip: true
34
+ },
35
+ containerClass: `fs-html-editor-mention-container ${this.config.containerClass || ''}`,
36
+ itemClass: `fs-html-editor-mention-menu-item ${this.config.menuItemClass || ''}`,
37
+ trigger: this.config.trigger,
38
+ allowSpaces: true,
39
+ menuItemTemplate: (item) => {
40
+ return this.config.menuItemTemplate(item.original);
41
+ },
42
+ selectTemplate: (item) => {
43
+ const template = this.config.selectedTemplate(item.original);
44
+ let p = document.createElement('p');
45
+ p.innerHTML = template;
46
+ let node = p.firstElementChild;
47
+ if (!node) {
48
+ node = document.createElement('span');
49
+ node.innerHTML = template;
50
+ }
51
+ node.setAttribute('contenteditable', 'false');
52
+ node.classList.add('fr-deletable');
53
+ return node.outerHTML;
54
+ },
55
+ });
56
+ MentionPlugin._tributes.push(this._tribute);
57
+ }
58
+ initialize() {
59
+ this._tribute.attach(this.editor.el);
60
+ this.editor.events.on('keydown', (e) => {
61
+ if (e.key === 'Enter' && this._tribute.isActive) {
62
+ return false;
63
+ }
64
+ }, true);
65
+ this.editor.el.addEventListener("tribute-replaced", this.selected);
66
+ }
67
+ selected = (event) => {
68
+ if (this.config.selected) {
69
+ if (MentionPlugin._currentGuid === this._guid) {
70
+ this.config.selected(event.detail.item.original);
71
+ }
72
+ }
73
+ };
74
+ destroy() {
75
+ this.editor.el.removeEventListener("tribute-replaced", this.selected);
76
+ }
77
+ _closeAll() {
78
+ MentionPlugin._tributes.forEach((tribute) => {
79
+ if (tribute.menu) {
80
+ tribute.hideMenu();
81
+ }
82
+ });
83
+ }
84
+ _loadValues(keyword, cb) {
85
+ MentionPlugin._currentGuid = this._guid;
86
+ return this.config.fetch(keyword)
87
+ .subscribe((data) => {
88
+ cb(data);
89
+ });
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudGlvbi5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1lZGl0b3IvcGx1Z2lucy9tZW50aW9uLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sT0FBd0IsTUFBTSxXQUFXLENBQUM7QUFJakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUcxQyxNQUFNLE9BQU8sYUFBYyxTQUFRLE1BQU07SUFPYjtJQUxsQixNQUFNLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixRQUFRLENBQUM7SUFDVCxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFFdkIsWUFBMEIsTUFBMkI7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFEZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFFbkQsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDdkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRO29CQUN4QixLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDakQsQ0FBQztpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDeEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUM7WUFDbEQsVUFBVSxFQUFFO2dCQUNWLEdBQUcsRUFBRSxFQUFFO2dCQUNQLElBQUksRUFBRSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJO2FBQ1g7WUFDRCxjQUFjLEVBQUUsb0NBQW9DLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFBRTtZQUN0RixTQUFTLEVBQUUsb0NBQW9DLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRTtZQUNoRixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzVCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGdCQUFnQixFQUFFLENBQUMsSUFBc0IsRUFBRSxFQUFFO2dCQUMzQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxjQUFjLEVBQUUsQ0FBQyxJQUFzQixFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUU3RCxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztnQkFFdkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO2dCQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNULElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztpQkFDM0I7Z0JBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRW5DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDaEQsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUdULElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDMUIsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFHLGFBQWEsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEQ7U0FDRjtJQUNILENBQUMsQ0FBQTtJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFNBQVM7UUFDZixhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDaEIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQzthQUN0QixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgVHJpYnV0ZSwgeyBUcmlidXRlSXRlbSB9IGZyb20gJ3RyaWJ1dGVqcyc7XG5cbmltcG9ydCB7IE1lbnRpb25QbHVnaW5Db25maWcgfSBmcm9tICcuL2NvbmZpZ3MvbWVudGlvbi1wbHVnaW4uY29uZmlnJztcblxuaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnLi4vY2xhc3Nlcy9wbHVnaW4nO1xuXG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuXG5leHBvcnQgY2xhc3MgTWVudGlvblBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnRHdWlkID0gbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgX3RyaWJ1dGVzID0gW107XG4gIHByaXZhdGUgX3RyaWJ1dGU7XG4gIHByaXZhdGUgX2d1aWQgPSBndWlkKCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWc6IE1lbnRpb25QbHVnaW5Db25maWcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXG4gICAgICAgICAgdG9vbHRpcDogY29uZmlnLnRvb2x0aXAsXG4gICAgICAgICAgc3ZnUGF0aDogY29uZmlnLmljb25QYXRoLFxuICAgICAgICAgIGNsaWNrOiAoZWRpdG9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jbG9zZUFsbCgpO1xuICAgICAgICAgICAgdGhpcy5fdHJpYnV0ZS5zaG93TWVudUZvckNvbGxlY3Rpb24oZWRpdG9yLmVsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgdGhpcy5fdHJpYnV0ZSA9IG5ldyBUcmlidXRlKHtcbiAgICAgICAgdmFsdWVzOiBkZWJvdW5jZSh0aGlzLl9sb2FkVmFsdWVzLmJpbmQodGhpcyksIDIwMCksXG4gICAgICAgIHNlYXJjaE9wdHM6IHtcbiAgICAgICAgICBwcmU6ICcnLFxuICAgICAgICAgIHBvc3Q6ICcnLFxuICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbmVyQ2xhc3M6IGBmcy1odG1sLWVkaXRvci1tZW50aW9uLWNvbnRhaW5lciAke3RoaXMuY29uZmlnLmNvbnRhaW5lckNsYXNzIHx8ICcnfWAsXG4gICAgICAgIGl0ZW1DbGFzczogYGZzLWh0bWwtZWRpdG9yLW1lbnRpb24tbWVudS1pdGVtICR7dGhpcy5jb25maWcubWVudUl0ZW1DbGFzcyB8fCAnJ31gLFxuICAgICAgICB0cmlnZ2VyOiB0aGlzLmNvbmZpZy50cmlnZ2VyLFxuICAgICAgICBhbGxvd1NwYWNlczogdHJ1ZSxcbiAgICAgICAgbWVudUl0ZW1UZW1wbGF0ZTogKGl0ZW06IFRyaWJ1dGVJdGVtPGFueT4pID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWcubWVudUl0ZW1UZW1wbGF0ZShpdGVtLm9yaWdpbmFsKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0VGVtcGxhdGU6IChpdGVtOiBUcmlidXRlSXRlbTxhbnk+KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLmNvbmZpZy5zZWxlY3RlZFRlbXBsYXRlKGl0ZW0ub3JpZ2luYWwpO1xuXG4gICAgICAgICAgbGV0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgICAgICAgcC5pbm5lckhUTUwgPSB0ZW1wbGF0ZTtcblxuICAgICAgICAgIGxldCBub2RlID0gcC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICBub2RlLmlubmVySFRNTCA9IHRlbXBsYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKTtcbiAgICAgICAgICBub2RlLmNsYXNzTGlzdC5hZGQoJ2ZyLWRlbGV0YWJsZScpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vZGUub3V0ZXJIVE1MO1xuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICBNZW50aW9uUGx1Z2luLl90cmlidXRlcy5wdXNoKHRoaXMuX3RyaWJ1dGUpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5fdHJpYnV0ZS5hdHRhY2godGhpcy5lZGl0b3IuZWwpO1xuICAgIHRoaXMuZWRpdG9yLmV2ZW50cy5vbigna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIHRoaXMuX3RyaWJ1dGUuaXNBY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0sIHRydWUpO1xuXG4gICAgXG4gICAgdGhpcy5lZGl0b3IuZWwuYWRkRXZlbnRMaXN0ZW5lcihcInRyaWJ1dGUtcmVwbGFjZWRcIiwgdGhpcy5zZWxlY3RlZCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWQgPSAoZXZlbnQpID0+IHtcbiAgICBpZih0aGlzLmNvbmZpZy5zZWxlY3RlZCkge1xuICAgICAgaWYoTWVudGlvblBsdWdpbi5fY3VycmVudEd1aWQgPT09IHRoaXMuX2d1aWQpIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2VsZWN0ZWQoZXZlbnQuZGV0YWlsLml0ZW0ub3JpZ2luYWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuZWRpdG9yLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmlidXRlLXJlcGxhY2VkXCIsIHRoaXMuc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VBbGwoKSB7XG4gICAgTWVudGlvblBsdWdpbi5fdHJpYnV0ZXMuZm9yRWFjaCgodHJpYnV0ZSkgPT4ge1xuICAgICAgaWYgKHRyaWJ1dGUubWVudSkge1xuICAgICAgICB0cmlidXRlLmhpZGVNZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkVmFsdWVzKGtleXdvcmQsIGNiKSB7XG4gICAgTWVudGlvblBsdWdpbi5fY3VycmVudEd1aWQgPSB0aGlzLl9ndWlkO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5mZXRjaChrZXl3b3JkKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY2IoZGF0YSk7XG4gICAgICAgICAgICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { Plugin } from '../classes/plugin';
2
+ export class RealtimePlugin extends Plugin {
3
+ config;
4
+ constructor(config = { name: 'realtime' }) {
5
+ super();
6
+ this.config = config;
7
+ this.config = {
8
+ ...config,
9
+ name: 'realtime',
10
+ };
11
+ }
12
+ initialize() {
13
+ this.editor.events.on('click', (e) => {
14
+ }, false);
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2h0bWwtZWRpdG9yL3BsdWdpbnMvcmVhbHRpbWUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUczQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE1BQU07SUFFZDtJQUExQixZQUEwQixTQUF1QixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7UUFDbkUsS0FBSyxFQUFFLENBQUM7UUFEZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFFbkUsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVTtRQUVmLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUVyQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbHVnaW5Db25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BsdWdpbi1jb25maWcnO1xuXG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuLi9jbGFzc2VzL3BsdWdpbic7XG5cblxuZXhwb3J0IGNsYXNzIFJlYWx0aW1lUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogUGx1Z2luQ29uZmlnID0geyBuYW1lOiAncmVhbHRpbWUnIH0pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgbmFtZTogJ3JlYWx0aW1lJyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKSB7XG5cbiAgICB0aGlzLmVkaXRvci5ldmVudHMub24oJ2NsaWNrJywgKGUpID0+IHtcblxuICAgIH0sIGZhbHNlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,94 @@
1
+ import { Plugin } from '../classes/plugin';
2
+ export class ScreenRecordPlugin extends Plugin {
3
+ config;
4
+ _activeEl;
5
+ constructor(config = {}) {
6
+ super();
7
+ this.config = config;
8
+ this.config = {
9
+ ...config,
10
+ name: config.name || 'screenRecord',
11
+ buttons: [
12
+ {
13
+ name: 'screenRecord',
14
+ svgPath: `M14.7,7.7v6.1H7.1V7.7H14.7 M16.3,9.6V6.9c0-0.4-0.3-0.8-0.8-0.8H6.4c-0.4,0-0.8,0.3-0.8,0.8v7.6c0,0.4,0.3,0.8,0.8,0.8h9.1c0.4,0,0.8-0.3,0.8-0.8v-2.7l1.7,1.7c0.3,0.3,0.8,0.3,1.1,0c0.1-0.1,0.2-0.3,0.2-0.5V8.4c0-0.4-0.3-0.8-0.8-0.8
15
+ c-0.2,0-0.4,0.1-0.5,0.2L16.3,9.6z M21.5,1.6H2.9c-0.7,0-1.3,0.7-1.3,1.6v14.6c0,0.9,0.6,1.6,1.3,1.6h7.6v1.1l-5,1c-0.2,0-0.4,0.3-0.4,0.6c0,0.3,0.2,0.4,0.4,0.4c0,0,0,0,0.1,0l5.3-1h2.6l5.3,1c0,0,0,0,0.1,0c0.2,0,0.4-0.2,0.4-0.4
16
+ c0-0.3-0.1-0.6-0.4-0.6l-5-1v-1.1h7.6c0.7,0,1.3-0.7,1.3-1.6V3.2C22.9,2.3,22.3,1.6,21.5,1.6z M21.1,17.3H3.3V3.7h17.8L21.1,17.3L21.1,17.3z`,
17
+ tooltip: 'Screen Record',
18
+ click: (editor) => {
19
+ navigator.mediaDevices.getDisplayMedia({ video: true })
20
+ .then((stream) => {
21
+ const chunks = [];
22
+ const options = { mimeType: 'video/webm; codecs=vp9' };
23
+ let mediaRecorder = new MediaRecorder(stream, options);
24
+ stream.addEventListener('inactive', (e) => {
25
+ mediaRecorder.stop();
26
+ mediaRecorder = null;
27
+ stream.getTracks().forEach((track) => track.stop());
28
+ stream = null;
29
+ const blob = new Blob(chunks, { type: 'video/webm' });
30
+ config.upload(blob)
31
+ .subscribe((url) => {
32
+ editor.html.insert(`<span class="fr-screen-record fr-deletable fr-draggable"><video controls style="max-width:${config.maxWidth}"><source src="${url}" type="video/webm"></video></span>`);
33
+ });
34
+ });
35
+ mediaRecorder.addEventListener('dataavailable', (event) => {
36
+ if (event.data && event.data.size > 0) {
37
+ chunks.push(event.data);
38
+ }
39
+ });
40
+ mediaRecorder.start(10);
41
+ })
42
+ .catch((e) => { });
43
+ }
44
+ }
45
+ ]
46
+ };
47
+ }
48
+ async initialize() {
49
+ const FroalaEditor = window.FroalaEditor;
50
+ this.editor.events.on('mouseup', (e) => {
51
+ const el = this._getEl(e.target);
52
+ if (el) {
53
+ this.editor.popups.hideAll();
54
+ this._activeEl = el;
55
+ this._showPopup(el);
56
+ }
57
+ });
58
+ FroalaEditor.POPUP_TEMPLATES["screenRecordPlugin.popup"] = '[_BUTTONS_]';
59
+ FroalaEditor.DefineIcon('popupClose', { NAME: 'trash', SVG_KEY: 'remove' });
60
+ FroalaEditor.RegisterCommand('popupClose', {
61
+ title: 'Remove',
62
+ undo: false,
63
+ focus: false,
64
+ callback: () => {
65
+ if (this._activeEl) {
66
+ this._activeEl.remove();
67
+ }
68
+ }
69
+ });
70
+ }
71
+ _createPopup() {
72
+ const template = {
73
+ buttons: `<div class="fr-buttons">${this.editor.button.buildList(['popupClose'])}</div>`,
74
+ };
75
+ return this.editor.popups.create('screenRecordPlugin.popup', template);
76
+ }
77
+ _showPopup(el) {
78
+ var $popup = this.editor.popups.get('screenRecordPlugin.popup');
79
+ if (!$popup) {
80
+ $popup = this._createPopup();
81
+ }
82
+ this.editor.popups.setContainer('screenRecordPlugin.popup', this.editor.$(el));
83
+ const left = el.offsetLeft + el.offsetWidth / 2;
84
+ this.editor.popups.show('screenRecordPlugin.popup', left, null);
85
+ }
86
+ _getEl(el) {
87
+ if (el && el.classList) {
88
+ if (el.classList.contains('fr-screen-record'))
89
+ return el;
90
+ return this._getEl(el.parentNode);
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlY29yZC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1lZGl0b3IvcGx1Z2lucy9zY3JlZW4tcmVjb3JkLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLM0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLE1BQU07SUFJbEI7SUFGbEIsU0FBUyxDQUFDO0lBRWxCLFlBQTBCLFNBQW1DLEVBQUU7UUFDN0QsS0FBSyxFQUFFLENBQUM7UUFEZ0IsV0FBTSxHQUFOLE1BQU0sQ0FBK0I7UUFHN0QsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLGNBQWM7WUFDbkMsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixPQUFPLEVBQUU7OzBJQUV1SDtvQkFDaEksT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUVWLFNBQVUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzZCQUMzRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTs0QkFDZixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7NEJBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLENBQUM7NEJBQ3ZELElBQUksYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzs0QkFFdkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dDQUN4QyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0NBQ3JCLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0NBQ3JCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dDQUNwRCxNQUFNLEdBQUcsSUFBSSxDQUFDO2dDQUVkLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dDQUN0RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztxQ0FDaEIsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0NBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDZGQUE2RixNQUFNLENBQUMsUUFBUSxrQkFBa0IsR0FBRyxxQ0FBcUMsQ0FBQyxDQUFDO2dDQUM3TCxDQUFDLENBQUMsQ0FBQzs0QkFDTCxDQUFDLENBQUMsQ0FBQzs0QkFFSCxhQUFhLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0NBQ3hELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7b0NBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lDQUN6Qjs0QkFDSCxDQUFDLENBQUMsQ0FBQzs0QkFFSCxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUMxQixDQUFDLENBQUM7NkJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQztpQkFDRjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLFlBQVksR0FBSSxNQUFjLENBQUMsWUFBWSxDQUFDO1FBRWxELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVqQyxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsR0FBRyxhQUFhLENBQUM7UUFFekUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLFlBQVksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO1lBQ3pDLEtBQUssRUFBRSxRQUFRO1lBQ2YsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUN6QjtZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUVsQixNQUFNLFFBQVEsR0FBRztZQUNmLE9BQU8sRUFBRSwyQkFBMkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUTtTQUN6RixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLFVBQVUsQ0FBRSxFQUFFO1FBQ3BCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzlCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxNQUFNLENBQUMsRUFBRTtRQUNmLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLENBQUM7WUFFWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NyZWVuUmVjb3JkUGx1Z2luQ29uZmlnIH0gZnJvbSAnLi9jb25maWdzL3NjcmVlbi1yZWNvcmQtcGx1Z2luLmNvbmZpZyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuLi9jbGFzc2VzL3BsdWdpbic7XG5cblxuZGVjbGFyZSB2YXIgTWVkaWFSZWNvcmRlcjogYW55O1xuXG5leHBvcnQgY2xhc3MgU2NyZWVuUmVjb3JkUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblxuICBwcml2YXRlIF9hY3RpdmVFbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogU2NyZWVuUmVjb3JkUGx1Z2luQ29uZmlnID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBuYW1lOiBjb25maWcubmFtZSB8fCAnc2NyZWVuUmVjb3JkJyxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdzY3JlZW5SZWNvcmQnLFxuICAgICAgICAgIHN2Z1BhdGg6IGBNMTQuNyw3Ljd2Ni4xSDcuMVY3LjdIMTQuNyBNMTYuMyw5LjZWNi45YzAtMC40LTAuMy0wLjgtMC44LTAuOEg2LjRjLTAuNCwwLTAuOCwwLjMtMC44LDAuOHY3LjZjMCwwLjQsMC4zLDAuOCwwLjgsMC44aDkuMWMwLjQsMCwwLjgtMC4zLDAuOC0wLjh2LTIuN2wxLjcsMS43YzAuMywwLjMsMC44LDAuMywxLjEsMGMwLjEtMC4xLDAuMi0wLjMsMC4yLTAuNVY4LjRjMC0wLjQtMC4zLTAuOC0wLjgtMC44XG5cdGMtMC4yLDAtMC40LDAuMS0wLjUsMC4yTDE2LjMsOS42eiBNMjEuNSwxLjZIMi45Yy0wLjcsMC0xLjMsMC43LTEuMywxLjZ2MTQuNmMwLDAuOSwwLjYsMS42LDEuMywxLjZoNy42djEuMWwtNSwxYy0wLjIsMC0wLjQsMC4zLTAuNCwwLjZjMCwwLjMsMC4yLDAuNCwwLjQsMC40YzAsMCwwLDAsMC4xLDBsNS4zLTFoMi42bDUuMywxYzAsMCwwLDAsMC4xLDBjMC4yLDAsMC40LTAuMiwwLjQtMC40XG4gIGMwLTAuMy0wLjEtMC42LTAuNC0wLjZsLTUtMXYtMS4xaDcuNmMwLjcsMCwxLjMtMC43LDEuMy0xLjZWMy4yQzIyLjksMi4zLDIyLjMsMS42LDIxLjUsMS42eiBNMjEuMSwxNy4zSDMuM1YzLjdoMTcuOEwyMS4xLDE3LjNMMjEuMSwxNy4zemAsXG4gICAgICAgICAgdG9vbHRpcDogJ1NjcmVlbiBSZWNvcmQnLFxuICAgICAgICAgIGNsaWNrOiAoZWRpdG9yKSA9PiB7XG5cbiAgICAgICAgICAgICg8YW55Pm5hdmlnYXRvcikubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB0cnVlIH0pXG4gICAgICAgICAgICAgIC50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0geyBtaW1lVHlwZTogJ3ZpZGVvL3dlYm07IGNvZGVjcz12cDknIH07XG4gICAgICAgICAgICAgICAgbGV0IG1lZGlhUmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihzdHJlYW0sIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICAgICAgc3RyZWFtLmFkZEV2ZW50TGlzdGVuZXIoJ2luYWN0aXZlJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIG1lZGlhUmVjb3JkZXIuc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgbWVkaWFSZWNvcmRlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCgodHJhY2spID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICAgICAgICAgICAgICBzdHJlYW0gPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoY2h1bmtzLCB7IHR5cGU6ICd2aWRlby93ZWJtJyB9KTtcbiAgICAgICAgICAgICAgICAgIGNvbmZpZy51cGxvYWQoYmxvYilcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodXJsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5odG1sLmluc2VydChgPHNwYW4gY2xhc3M9XCJmci1zY3JlZW4tcmVjb3JkIGZyLWRlbGV0YWJsZSBmci1kcmFnZ2FibGVcIj48dmlkZW8gY29udHJvbHMgc3R5bGU9XCJtYXgtd2lkdGg6JHtjb25maWcubWF4V2lkdGh9XCI+PHNvdXJjZSBzcmM9XCIke3VybH1cIiB0eXBlPVwidmlkZW8vd2VibVwiPjwvdmlkZW8+PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBtZWRpYVJlY29yZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGFhdmFpbGFibGUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhICYmIGV2ZW50LmRhdGEuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBtZWRpYVJlY29yZGVyLnN0YXJ0KDEwKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7IH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBGcm9hbGFFZGl0b3IgPSAod2luZG93IGFzIGFueSkuRnJvYWxhRWRpdG9yO1xuXG4gICAgdGhpcy5lZGl0b3IuZXZlbnRzLm9uKCdtb3VzZXVwJywgKGUpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5fZ2V0RWwoZS50YXJnZXQpO1xuXG4gICAgICBpZiAoZWwpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IucG9wdXBzLmhpZGVBbGwoKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRWwgPSBlbDtcbiAgICAgICAgdGhpcy5fc2hvd1BvcHVwKGVsKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIEZyb2FsYUVkaXRvci5QT1BVUF9URU1QTEFURVNbXCJzY3JlZW5SZWNvcmRQbHVnaW4ucG9wdXBcIl0gPSAnW19CVVRUT05TX10nO1xuXG4gICAgRnJvYWxhRWRpdG9yLkRlZmluZUljb24oJ3BvcHVwQ2xvc2UnLCB7IE5BTUU6ICd0cmFzaCcsIFNWR19LRVk6ICdyZW1vdmUnIH0pO1xuICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlckNvbW1hbmQoJ3BvcHVwQ2xvc2UnLCB7XG4gICAgICB0aXRsZTogJ1JlbW92ZScsXG4gICAgICB1bmRvOiBmYWxzZSxcbiAgICAgIGZvY3VzOiBmYWxzZSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmVFbCkge1xuICAgICAgICAgIHRoaXMuX2FjdGl2ZUVsLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVQb3B1cCgpIHtcblxuICAgIGNvbnN0IHRlbXBsYXRlID0ge1xuICAgICAgYnV0dG9uczogYDxkaXYgY2xhc3M9XCJmci1idXR0b25zXCI+JHt0aGlzLmVkaXRvci5idXR0b24uYnVpbGRMaXN0KFsncG9wdXBDbG9zZSddKX08L2Rpdj5gLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5lZGl0b3IucG9wdXBzLmNyZWF0ZSgnc2NyZWVuUmVjb3JkUGx1Z2luLnBvcHVwJywgdGVtcGxhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1BvcHVwIChlbCkge1xuICAgIHZhciAkcG9wdXAgPSB0aGlzLmVkaXRvci5wb3B1cHMuZ2V0KCdzY3JlZW5SZWNvcmRQbHVnaW4ucG9wdXAnKTtcblxuICAgIGlmICghJHBvcHVwKSB7XG4gICAgICAkcG9wdXAgPSB0aGlzLl9jcmVhdGVQb3B1cCgpO1xuICAgIH1cblxuICAgIHRoaXMuZWRpdG9yLnBvcHVwcy5zZXRDb250YWluZXIoJ3NjcmVlblJlY29yZFBsdWdpbi5wb3B1cCcsIHRoaXMuZWRpdG9yLiQoZWwpKTtcblxuICAgIGNvbnN0IGxlZnQgPSBlbC5vZmZzZXRMZWZ0ICsgZWwub2Zmc2V0V2lkdGggLyAyO1xuXG4gICAgdGhpcy5lZGl0b3IucG9wdXBzLnNob3coJ3NjcmVlblJlY29yZFBsdWdpbi5wb3B1cCcsIGxlZnQsIG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RWwoZWwpIHtcbiAgICBpZiAoZWwgJiYgZWwuY2xhc3NMaXN0KSB7XG4gICAgICBpZiAoZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdmci1zY3JlZW4tcmVjb3JkJykpXG4gICAgICAgIHJldHVybiBlbDtcblxuICAgICAgcmV0dXJuIHRoaXMuX2dldEVsKGVsLnBhcmVudE5vZGUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,93 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
+ import { fsSourceLoader } from '@firestitch/common';
4
+ import { BehaviorSubject, combineLatest } from 'rxjs';
5
+ import { concatMap, map, shareReplay, tap } from 'rxjs/operators';
6
+ import { FS_HTML_EDITOR_CONFIG } from '../injects/config.inject';
7
+ import * as i0 from "@angular/core";
8
+ export class FsFroalaLoaderService {
9
+ _defaultConfig;
10
+ _document;
11
+ _froalaEditor;
12
+ _froalaLoaded = new BehaviorSubject(false);
13
+ _froalaPluginsLoaded = new BehaviorSubject(false);
14
+ _sourceLoader = fsSourceLoader;
15
+ _loaded$ = combineLatest([this._froalaLoaded, this._froalaPluginsLoaded])
16
+ .pipe(map(([FroalaReady, pluginsRead]) => {
17
+ return pluginsRead && FroalaReady;
18
+ }), shareReplay(1));
19
+ constructor(_defaultConfig, _document) {
20
+ this._defaultConfig = _defaultConfig;
21
+ this._document = _document;
22
+ this._sourceLoader.setDocument(this._document);
23
+ this._load();
24
+ }
25
+ get loaded$() {
26
+ return this._loaded$;
27
+ }
28
+ get FroalaEditor() {
29
+ return this._froalaEditor;
30
+ }
31
+ _load() {
32
+ const baseDir = '/assets/froala/';
33
+ this._sourceLoader.registerResources({
34
+ froala: [
35
+ `${baseDir}js/froala_editor.min.js`,
36
+ `${baseDir}css/froala_editor.pkgd.min.css`,
37
+ ],
38
+ froala_align: `${baseDir}js/plugins/align.min.js`,
39
+ froala_colors: `${baseDir}js/plugins/colors.min.js`,
40
+ froala_image: `${baseDir}js/plugins/image.min.js`,
41
+ froala_link: `${baseDir}js/plugins/link.min.js`,
42
+ froala_lists: `${baseDir}js/plugins/lists.min.js`,
43
+ froala_paragraph_format: `${baseDir}js/plugins/paragraph_format.min.js`,
44
+ froala_table: `${baseDir}js/plugins/table.min.js`,
45
+ froala_url: `${baseDir}js/plugins/url.min.js`,
46
+ froala_video: `${baseDir}js/plugins/video.min.js`,
47
+ froala_quote: `${baseDir}js/plugins/quote.min.js`,
48
+ froala_draggable: `${baseDir}js/plugins/draggable.min.js`,
49
+ froala_font_size: `${baseDir}js/plugins/font_size.min.js`,
50
+ froala_quick_insert: `${baseDir}js/plugins/quick_insert.min.js`,
51
+ froala_line_height: `${baseDir}js/plugins/line_height.min.js`,
52
+ });
53
+ this._sourceLoader.loadResource('froala')
54
+ .pipe(tap(() => {
55
+ this._froalaEditor = window.FroalaEditor;
56
+ this._froalaDone();
57
+ }), concatMap(() => {
58
+ return this._loadPlugins();
59
+ }), tap(() => {
60
+ this._froalaPluginsDone();
61
+ }))
62
+ .subscribe();
63
+ }
64
+ _loadPlugins() {
65
+ const resources = this._defaultConfig
66
+ .froalaPlugins
67
+ .map((pluginName) => `froala_${pluginName}`);
68
+ return this._sourceLoader.loadResources(resources);
69
+ }
70
+ _froalaDone() {
71
+ this._froalaLoaded.next(true);
72
+ }
73
+ _froalaPluginsDone() {
74
+ this._froalaPluginsLoaded.next(true);
75
+ }
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFroalaLoaderService, deps: [{ token: FS_HTML_EDITOR_CONFIG, optional: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
77
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFroalaLoaderService, providedIn: 'root' });
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFroalaLoaderService, decorators: [{
80
+ type: Injectable,
81
+ args: [{
82
+ providedIn: 'root',
83
+ }]
84
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
85
+ type: Optional
86
+ }, {
87
+ type: Inject,
88
+ args: [FS_HTML_EDITOR_CONFIG]
89
+ }] }, { type: Document, decorators: [{
90
+ type: Inject,
91
+ args: [DOCUMENT]
92
+ }] }]; } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvYWxhLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2h0bWwtZWRpdG9yL3NlcnZpY2VzL2Zyb2FsYS1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFtQnRCO0lBRUE7SUFuQkYsYUFBYSxDQUFNO0lBRW5CLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxhQUFhLEdBQUcsY0FBYyxDQUFDO0lBRS9CLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzlFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE9BQU8sV0FBVyxJQUFJLFdBQVcsQ0FBQztJQUNwQyxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVKLFlB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QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmc1NvdXJjZUxvYWRlciB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZTX0hUTUxfRURJVE9SX0NPTkZJRyB9IGZyb20gJy4uL2luamVjdHMvY29uZmlnLmluamVjdCc7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2h0bWwtZWRpdG9yLWNvbmZpZyc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZzRnJvYWxhTG9hZGVyU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfZnJvYWxhRWRpdG9yOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZnJvYWxhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgX2Zyb2FsYVBsdWdpbnNMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBfc291cmNlTG9hZGVyID0gZnNTb3VyY2VMb2FkZXI7XG5cbiAgcHJpdmF0ZSBfbG9hZGVkJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2Zyb2FsYUxvYWRlZCwgdGhpcy5fZnJvYWxhUGx1Z2luc0xvYWRlZF0pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKFtGcm9hbGFSZWFkeSwgcGx1Z2luc1JlYWRdKSA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW5zUmVhZCAmJiBGcm9hbGFSZWFkeTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRlNfSFRNTF9FRElUT1JfQ09ORklHKVxuICAgIHByaXZhdGUgX2RlZmF1bHRDb25maWc6IEZzSHRtbEVkaXRvckNvbmZpZyxcbiAgICBASW5qZWN0KERPQ1VNRU5UKVxuICAgIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCxcbiAgKSB7XG4gICAgdGhpcy5fc291cmNlTG9hZGVyLnNldERvY3VtZW50KHRoaXMuX2RvY3VtZW50KTtcbiAgICB0aGlzLl9sb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRlZCQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZyb2FsYUVkaXRvcigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9mcm9hbGFFZGl0b3I7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkKCkge1xuICAgIGNvbnN0IGJhc2VEaXIgPSAnL2Fzc2V0cy9mcm9hbGEvJztcbiAgICB0aGlzLl9zb3VyY2VMb2FkZXIucmVnaXN0ZXJSZXNvdXJjZXMoe1xuICAgICAgZnJvYWxhOiBbXG4gICAgICAgIGAke2Jhc2VEaXJ9anMvZnJvYWxhX2VkaXRvci5taW4uanNgLFxuICAgICAgICBgJHtiYXNlRGlyfWNzcy9mcm9hbGFfZWRpdG9yLnBrZ2QubWluLmNzc2AsXG4gICAgICBdLFxuICAgICAgZnJvYWxhX2FsaWduOiBgJHtiYXNlRGlyfWpzL3BsdWdpbnMvYWxpZ24ubWluLmpzYCxcbiAgICAgIGZyb2FsYV9jb2xvcnM6IGAke2Jhc2VEaXJ9anMvcGx1Z2lucy9jb2xvcnMubWluLmpzYCxcbiAgICAgIGZyb2FsYV9pbWFnZTogYCR7YmFzZURpcn1qcy9wbHVnaW5zL2ltYWdlLm1pbi5qc2AsXG4gICAgICBmcm9hbGFfbGluazogYCR7YmFzZURpcn1qcy9wbHVnaW5zL2xpbmsubWluLmpzYCxcbiAgICAgIGZyb2FsYV9saXN0czogYCR7YmFzZURpcn1qcy9wbHVnaW5zL2xpc3RzLm1pbi5qc2AsXG4gICAgICBmcm9hbGFfcGFyYWdyYXBoX2Zvcm1hdDogYCR7YmFzZURpcn1qcy9wbHVnaW5zL3BhcmFncmFwaF9mb3JtYXQubWluLmpzYCxcbiAgICAgIGZyb2FsYV90YWJsZTogYCR7YmFzZURpcn1qcy9wbHVnaW5zL3RhYmxlLm1pbi5qc2AsXG4gICAgICBmcm9hbGFfdXJsOiBgJHtiYXNlRGlyfWpzL3BsdWdpbnMvdXJsLm1pbi5qc2AsXG4gICAgICBmcm9hbGFfdmlkZW86IGAke2Jhc2VEaXJ9anMvcGx1Z2lucy92aWRlby5taW4uanNgLFxuICAgICAgZnJvYWxhX3F1b3RlOiBgJHtiYXNlRGlyfWpzL3BsdWdpbnMvcXVvdGUubWluLmpzYCxcbiAgICAgIGZyb2FsYV9kcmFnZ2FibGU6IGAke2Jhc2VEaXJ9anMvcGx1Z2lucy9kcmFnZ2FibGUubWluLmpzYCxcbiAgICAgIGZyb2FsYV9mb250X3NpemU6IGAke2Jhc2VEaXJ9anMvcGx1Z2lucy9mb250X3NpemUubWluLmpzYCxcbiAgICAgIGZyb2FsYV9xdWlja19pbnNlcnQ6IGAke2Jhc2VEaXJ9anMvcGx1Z2lucy9xdWlja19pbnNlcnQubWluLmpzYCxcbiAgICAgIGZyb2FsYV9saW5lX2hlaWdodDogYCR7YmFzZURpcn1qcy9wbHVnaW5zL2xpbmVfaGVpZ2h0Lm1pbi5qc2AsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9zb3VyY2VMb2FkZXIubG9hZFJlc291cmNlKCdmcm9hbGEnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZnJvYWxhRWRpdG9yID0gKHdpbmRvdyBhcyBhbnkpLkZyb2FsYUVkaXRvcjtcbiAgICAgICAgICB0aGlzLl9mcm9hbGFEb25lKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBjb25jYXRNYXAoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9sb2FkUGx1Z2lucygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9mcm9hbGFQbHVnaW5zRG9uZSgpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRQbHVnaW5zKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IHRoaXMuX2RlZmF1bHRDb25maWdcbiAgICAgIC5mcm9hbGFQbHVnaW5zXG4gICAgICAubWFwKChwbHVnaW5OYW1lKSA9PiBgZnJvYWxhXyR7cGx1Z2luTmFtZX1gKTtcblxuICAgIHJldHVybiB0aGlzLl9zb3VyY2VMb2FkZXIubG9hZFJlc291cmNlcyhyZXNvdXJjZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnJvYWxhRG9uZSgpIHtcbiAgICB0aGlzLl9mcm9hbGFMb2FkZWQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Zyb2FsYVBsdWdpbnNEb25lKCkge1xuICAgIHRoaXMuX2Zyb2FsYVBsdWdpbnNMb2FkZWQubmV4dCh0cnVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { DomSanitizer } from '@angular/platform-browser';
2
+ import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ export class FsHtmlRendererComponent {
6
+ sanitized;
7
+ _cdRef;
8
+ set setHtml(html) {
9
+ this.trustedHtml = this.sanitized.bypassSecurityTrustHtml(html || '');
10
+ this._cdRef.markForCheck();
11
+ }
12
+ trustedHtml;
13
+ constructor(sanitized, _cdRef) {
14
+ this.sanitized = sanitized;
15
+ this._cdRef = _cdRef;
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FsHtmlRendererComponent, selector: "fs-html-renderer", inputs: { setHtml: ["html", "setHtml"] }, ngImport: i0, template: "<span class=\"fr-view fs-html-editor-default\" [innerHtml]=\"trustedHtml\"></span>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'fs-html-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"fr-view fs-html-editor-default\" [innerHtml]=\"trustedHtml\"></span>\n" }]
23
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { setHtml: [{
24
+ type: Input,
25
+ args: ['html']
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1yZW5kZXJlci9jb21wb25lbnRzL2h0bWwtcmVuZGVyZXIvaHRtbC1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1yZW5kZXJlci9jb21wb25lbnRzL2h0bWwtcmVuZGVyZXIvaHRtbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVM3RixNQUFNLE9BQU8sdUJBQXVCO0lBVXhCO0lBQ0E7SUFUVixJQUEwQixPQUFPLENBQUMsSUFBSTtRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVcsQ0FBVztJQUU3QixZQUNVLFNBQXVCLEVBQ3ZCLE1BQXlCO1FBRHpCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFDL0IsQ0FBQzt3R0FaTSx1QkFBdUI7NEZBQXZCLHVCQUF1QixrR0NWcEMsc0ZBQ0E7OzRGRFNhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTttSUFJckIsT0FBTztzQkFBaEMsS0FBSzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtaHRtbC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnaHRtbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydodG1sLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0h0bWxSZW5kZXJlckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCdodG1sJykgcHVibGljIHNldCBzZXRIdG1sKGh0bWwpIHtcbiAgICB0aGlzLnRydXN0ZWRIdG1sID0gdGhpcy5zYW5pdGl6ZWQuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCB8fCAnJyk7XG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgdHJ1c3RlZEh0bWw6IFNhZmVIdG1sO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNhbml0aXplZDogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7IH1cblxufVxuIiwiPHNwYW4gY2xhc3M9XCJmci12aWV3IGZzLWh0bWwtZWRpdG9yLWRlZmF1bHRcIiBbaW5uZXJIdG1sXT1cInRydXN0ZWRIdG1sXCI+PC9zcGFuPlxuIl19
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { FsHtmlRendererComponent } from './components/html-renderer/html-renderer.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class FsHtmlRendererModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererModule, declarations: [FsHtmlRendererComponent], imports: [CommonModule], exports: [FsHtmlRendererComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererModule, imports: [CommonModule] });
6
9
  }
7
- FsHtmlRendererModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlRendererModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- FsHtmlRendererModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlRendererModule, declarations: [FsHtmlRendererComponent], imports: [CommonModule], exports: [FsHtmlRendererComponent] });
9
- FsHtmlRendererModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlRendererModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FsHtmlRendererModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsHtmlRendererModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
21
21
  ],
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtaHRtbC1yZW5kZXJlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1yZW5kZXJlci9mcy1odG1sLXJlbmRlcmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFhN0YsTUFBTSxPQUFPLG9CQUFvQjs7a0hBQXBCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGlCQUg3Qix1QkFBdUIsYUFOdkIsWUFBWSxhQUdaLHVCQUF1QjttSEFNZCxvQkFBb0IsWUFUN0IsWUFBWTs0RkFTSCxvQkFBb0I7a0JBWGhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRnNIdG1sUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaHRtbC1yZW5kZXJlci9odG1sLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0h0bWxSZW5kZXJlckNvbXBvbmVudCxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNIdG1sUmVuZGVyZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzSHRtbFJlbmRlcmVyTW9kdWxlIHtcbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtaHRtbC1yZW5kZXJlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvaHRtbC1yZW5kZXJlci9mcy1odG1sLXJlbmRlcmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFhN0YsTUFBTSxPQUFPLG9CQUFvQjt3R0FBcEIsb0JBQW9CO3lHQUFwQixvQkFBb0IsaUJBSDdCLHVCQUF1QixhQU52QixZQUFZLGFBR1osdUJBQXVCO3lHQU1kLG9CQUFvQixZQVQ3QixZQUFZOzs0RkFTSCxvQkFBb0I7a0JBWGhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHVCQUF1QjtxQkFDeEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRnNIdG1sUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaHRtbC1yZW5kZXJlci9odG1sLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0h0bWxSZW5kZXJlckNvbXBvbmVudCxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRnNIdG1sUmVuZGVyZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzSHRtbFJlbmRlcmVyTW9kdWxlIHtcbn1cbiJdfQ==