@worktile/theia 2.5.2 → 3.0.0-next.2
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.
- package/bundles/worktile-theia.umd.js +4947 -4554
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/constants/toolbar.d.ts +0 -1
- package/core/create-plugin.d.ts +2 -0
- package/core/create-toolbar.d.ts +5 -0
- package/core/index.d.ts +4 -0
- package/core/utils/flatten-deep-plugins.d.ts +6 -0
- package/core/utils/get-plugin-options.d.ts +2 -0
- package/core/utils/get-plugin.d.ts +2 -0
- package/core/utils/get-plugins-by-key.d.ts +2 -0
- package/core/utils/get-plugins.d.ts +2 -0
- package/core/utils/index.d.ts +7 -0
- package/core/utils/merge-options.d.ts +2 -0
- package/core/utils/override-plugins-by-key.d.ts +5 -0
- package/core/with-theia.d.ts +4 -0
- package/editor.component.d.ts +4 -6
- package/editor.module.d.ts +2 -2
- package/esm2015/components/toolbar-item/toolbar-item.component.js +1 -1
- package/esm2015/constants/toolbar.js +1 -2
- package/esm2015/core/create-plugin.js +6 -0
- package/esm2015/core/create-toolbar.js +57 -0
- package/esm2015/core/index.js +5 -0
- package/esm2015/core/utils/flatten-deep-plugins.js +36 -0
- package/esm2015/core/utils/get-plugin-options.js +3 -0
- package/esm2015/core/utils/get-plugin.js +3 -0
- package/esm2015/core/utils/get-plugins-by-key.js +8 -0
- package/esm2015/core/utils/get-plugins.js +5 -0
- package/esm2015/core/utils/index.js +8 -0
- package/esm2015/core/utils/merge-options.js +15 -0
- package/esm2015/core/utils/override-plugins-by-key.js +27 -0
- package/esm2015/core/with-theia.js +36 -0
- package/esm2015/editor.component.js +27 -40
- package/esm2015/interfaces/editor.js +2 -2
- package/esm2015/interfaces/index.js +3 -1
- package/esm2015/interfaces/plugins/index.js +5 -0
- package/esm2015/interfaces/plugins/no-infer.js +2 -0
- package/esm2015/interfaces/plugins/plugin-key.js +40 -0
- package/esm2015/interfaces/plugins/plugins.js +2 -0
- package/esm2015/interfaces/plugins/with-override.js +2 -0
- package/esm2015/interfaces/toolbar.js +1 -1
- package/esm2015/interfaces/utility/index.js +4 -0
- package/esm2015/interfaces/utility/nested-structure-by-key.js +2 -0
- package/esm2015/interfaces/utility/override-by-key.js +2 -0
- package/esm2015/interfaces/utility/types.js +2 -0
- package/esm2015/plugins/align/align.editor.js +3 -3
- package/esm2015/plugins/align/align.plugin.js +41 -2
- package/esm2015/plugins/autoformat/autoformat.plugin.js +19 -13
- package/esm2015/plugins/blockquote/blockquote.editor.js +9 -16
- package/esm2015/plugins/blockquote/blockquote.plugin.js +23 -4
- package/esm2015/plugins/code/code.editor.js +4 -15
- package/esm2015/plugins/code/code.plugin.js +22 -2
- package/esm2015/plugins/color/color.plugin.js +25 -0
- package/esm2015/plugins/common/auto-insert-data..js +14 -9
- package/esm2015/plugins/common/block-card.plugin.js +9 -3
- package/esm2015/plugins/common/get-fragment.plugin.js +10 -2
- package/esm2015/plugins/common/history.plugin.js +7 -1
- package/esm2015/plugins/common/move-selection.plugin.js +9 -3
- package/esm2015/plugins/common/remove-empty.plugin.js +7 -1
- package/esm2015/plugins/common/remove-void.plugin.js +8 -2
- package/esm2015/plugins/common/reset-type.plugin.js +7 -1
- package/esm2015/plugins/common/transforms.plugin.js +8 -2
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +10 -5
- package/esm2015/plugins/deserializers/deserialize-md.plugin.js +11 -5
- package/esm2015/plugins/font-size/font-size.editor.js +29 -3
- package/esm2015/plugins/heading/heading.editor.js +22 -4
- package/esm2015/plugins/heading/heading.plugin.js +60 -2
- package/esm2015/plugins/hr/hr.plugin.js +21 -1
- package/esm2015/plugins/image/image.plugin.js +24 -3
- package/esm2015/plugins/indent/indent.editor.js +18 -16
- package/esm2015/plugins/indent/indent.plugin.js +50 -9
- package/esm2015/plugins/index.js +70 -126
- package/esm2015/plugins/inline-code/inline-code.plugin.js +19 -2
- package/esm2015/plugins/link/link.plugin.js +21 -7
- package/esm2015/plugins/list/list.editor.js +3 -3
- package/esm2015/plugins/list/list.plugin.js +46 -3
- package/esm2015/plugins/mark/mark.plugin.js +44 -2
- package/esm2015/plugins/node-id/node-id.plugin.js +21 -5
- package/esm2015/plugins/normalizers/insert-paragraph-nodes.js +10 -2
- package/esm2015/plugins/normalizers/remove-empty-nodes.js +1 -1
- package/esm2015/plugins/normalizers/trailing-node.plugin.js +27 -18
- package/esm2015/plugins/paint-format/paint-format.editor.js +60 -4
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +7 -4
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +4 -4
- package/esm2015/plugins/quick-insert/quick-insert.plugin.js +23 -16
- package/esm2015/plugins/soft-break/soft-break.plugin.js +22 -3
- package/esm2015/plugins/table/components/table.component.js +4 -5
- package/esm2015/plugins/table/table.plugin.js +26 -7
- package/esm2015/plugins/table/transforms/insert-table.js +2 -2
- package/esm2015/plugins/todo-item/todo-item.editor.js +4 -4
- package/esm2015/plugins/todo-item/todo-item.plugin.js +21 -2
- package/esm2015/plugins/vertical-align/vertical-align.editor.js +40 -1
- package/esm2015/public-api.js +2 -1
- package/esm2015/queries/index.js +3 -5
- package/esm2015/queries/is-contain-nested-type.js +29 -0
- package/esm2015/transforms/insert-element-next.js +11 -11
- package/esm2015/transforms/insert-element.js +1 -1
- package/esm2015/utils/index.js +5 -1
- package/fesm2015/worktile-theia.js +6624 -6253
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/editor.d.ts +14 -12
- package/interfaces/index.d.ts +2 -0
- package/interfaces/plugins/index.d.ts +4 -0
- package/interfaces/plugins/no-infer.d.ts +1 -0
- package/interfaces/plugins/plugin-key.d.ts +48 -0
- package/interfaces/plugins/plugins.d.ts +39 -0
- package/interfaces/plugins/with-override.d.ts +7 -0
- package/interfaces/toolbar.d.ts +0 -1
- package/interfaces/utility/index.d.ts +3 -0
- package/interfaces/utility/nested-structure-by-key.d.ts +3 -0
- package/interfaces/utility/override-by-key.d.ts +3 -0
- package/interfaces/utility/types.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/align/align.editor.d.ts +1 -1
- package/plugins/align/align.plugin.d.ts +2 -1
- package/plugins/autoformat/autoformat.plugin.d.ts +2 -1
- package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
- package/plugins/code/code.plugin.d.ts +2 -2
- package/plugins/color/color.plugin.d.ts +1 -0
- package/plugins/common/auto-insert-data..d.ts +2 -3
- package/plugins/common/block-card.plugin.d.ts +2 -2
- package/plugins/common/get-fragment.plugin.d.ts +5 -1
- package/plugins/common/history.plugin.d.ts +4 -3
- package/plugins/common/move-selection.plugin.d.ts +2 -2
- package/plugins/common/remove-empty.plugin.d.ts +2 -2
- package/plugins/common/remove-void.plugin.d.ts +2 -1
- package/plugins/common/reset-type.plugin.d.ts +2 -2
- package/plugins/common/transforms.plugin.d.ts +2 -1
- package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
- package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
- package/plugins/font-size/font-size.editor.d.ts +3 -2
- package/plugins/heading/heading.editor.d.ts +4 -1
- package/plugins/heading/heading.plugin.d.ts +7 -2
- package/plugins/hr/hr.plugin.d.ts +2 -2
- package/plugins/image/image.plugin.d.ts +7 -2
- package/plugins/indent/indent.editor.d.ts +2 -2
- package/plugins/indent/indent.plugin.d.ts +7 -3
- package/plugins/index.d.ts +1 -5
- package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
- package/plugins/link/link.plugin.d.ts +2 -2
- package/plugins/list/list.plugin.d.ts +2 -2
- package/plugins/mark/mark.plugin.d.ts +2 -1
- package/plugins/node-id/node-id.plugin.d.ts +2 -3
- package/plugins/normalizers/insert-paragraph-nodes.d.ts +6 -2
- package/plugins/normalizers/trailing-node.plugin.d.ts +2 -1
- package/plugins/paint-format/paint-format.editor.d.ts +1 -0
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +2 -3
- package/plugins/quick-insert/quick-insert.editor.d.ts +1 -1
- package/plugins/quick-insert/quick-insert.plugin.d.ts +5 -1
- package/plugins/soft-break/soft-break.plugin.d.ts +3 -2
- package/plugins/table/components/table.component.d.ts +2 -2
- package/plugins/table/table.plugin.d.ts +2 -2
- package/plugins/todo-item/todo-item.plugin.d.ts +2 -2
- package/plugins/vertical-align/vertical-align.editor.d.ts +1 -0
- package/public-api.d.ts +1 -0
- package/queries/index.d.ts +2 -4
- package/queries/is-contain-nested-type.d.ts +2 -0
- package/transforms/insert-element-next.d.ts +1 -1
- package/utils/index.d.ts +4 -0
- package/esm2015/plugins/align/options.js +0 -37
- package/esm2015/plugins/blockquote/options.js +0 -13
- package/esm2015/plugins/code/options.js +0 -13
- package/esm2015/plugins/color/options.js +0 -20
- package/esm2015/plugins/font-size/options.js +0 -25
- package/esm2015/plugins/heading/options.js +0 -54
- package/esm2015/plugins/hr/options.js +0 -13
- package/esm2015/plugins/image/options.js +0 -12
- package/esm2015/plugins/indent/options.js +0 -28
- package/esm2015/plugins/inline-code/options.js +0 -14
- package/esm2015/plugins/link/options.js +0 -12
- package/esm2015/plugins/list/options.js +0 -19
- package/esm2015/plugins/mark/options.js +0 -37
- package/esm2015/plugins/paint-format/options.js +0 -57
- package/esm2015/plugins/table/options.js +0 -14
- package/esm2015/plugins/todo-item/options.js +0 -12
- package/esm2015/plugins/vertical-align/options.js +0 -39
- package/esm2015/queries/anchor-inline.js +0 -5
- package/esm2015/queries/get-children.js +0 -14
- package/esm2015/queries/is-empty-content.js +0 -15
- package/plugins/align/options.d.ts +0 -2
- package/plugins/blockquote/options.d.ts +0 -2
- package/plugins/code/options.d.ts +0 -2
- package/plugins/color/options.d.ts +0 -2
- package/plugins/font-size/options.d.ts +0 -2
- package/plugins/heading/options.d.ts +0 -2
- package/plugins/hr/options.d.ts +0 -2
- package/plugins/image/options.d.ts +0 -2
- package/plugins/indent/options.d.ts +0 -2
- package/plugins/inline-code/options.d.ts +0 -2
- package/plugins/link/options.d.ts +0 -2
- package/plugins/list/options.d.ts +0 -2
- package/plugins/mark/options.d.ts +0 -2
- package/plugins/paint-format/options.d.ts +0 -2
- package/plugins/table/options.d.ts +0 -2
- package/plugins/todo-item/options.d.ts +0 -2
- package/plugins/vertical-align/options.d.ts +0 -2
- package/queries/anchor-inline.d.ts +0 -2
- package/queries/get-children.d.ts +0 -6
- package/queries/is-empty-content.d.ts +0 -2
package/constants/toolbar.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { InjectionToken } from '@angular/core';
|
|
|
3
3
|
import { ToolbarItem, ToolbarKey } from '../interfaces';
|
|
4
4
|
import type { TheToolbarGroupComponent } from '../components/toolbar-group/toolbar-group.component';
|
|
5
5
|
export declare const TheToolbarGroupToken: InjectionToken<ComponentType<TheToolbarGroupComponent>>;
|
|
6
|
-
export declare const QUICK_TOOLBAR_HOTKEY = "/";
|
|
7
6
|
export declare enum DropdownMode {
|
|
8
7
|
icon = "icon-mode",
|
|
9
8
|
text = "text-mode"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { NoInfer, OverrideByKey, ThePlugin } from '../interfaces';
|
|
2
|
+
export declare const createPluginFactory: <P = {}>(defaultPlugin: ThePlugin<{}, NoInfer<P>>) => <T = {}>(override?: Partial<ThePlugin<T, NoInfer<P>>>, overrideByKey?: OverrideByKey) => ThePlugin<T, NoInfer<P>>;
|
package/core/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { NoInfer, OverrideByKey, ThePlugin } from '../../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* 将每个 plugin 从 `overrideByKey` 递归深度合并到具有相同 key 的 plugin(plugin > plugin.plugins)。
|
|
4
|
+
*/
|
|
5
|
+
export declare const overridePluginsByKey: <T = {}, P = {}>(plugin: ThePlugin<T, NoInfer<P>>, overrideByKey?: OverrideByKey, nested?: boolean) => ThePlugin<T, NoInfer<P>>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AngularEditor } from 'slate-angular';
|
|
2
|
+
import { HistoryEditor } from 'slate-history';
|
|
3
|
+
import { TheEditor, ThePlugin } from '../interfaces';
|
|
4
|
+
export declare const withTheia: <T extends AngularEditor & HistoryEditor & TheEditor>(editor: T, plugins?: ThePlugin[]) => TheEditor;
|
package/editor.component.d.ts
CHANGED
|
@@ -2,17 +2,16 @@ import { OnInit, OnDestroy, ViewContainerRef, ElementRef, EventEmitter, OnChange
|
|
|
2
2
|
import { MixinBase } from 'ngx-tethys/core';
|
|
3
3
|
import { Editor, Text, Element, Descendant, Range, NodeEntry } from 'slate';
|
|
4
4
|
import { SlateError } from 'slate-angular';
|
|
5
|
-
import {
|
|
5
|
+
import { TheOptions, DomEventDataInfo, TheEditor, ToolbarEntity } from './interfaces';
|
|
6
6
|
import { TheTemplateComponent } from './components/template/template.component';
|
|
7
7
|
import { TheToolbarComponent } from './components/toolbar/toolbar.component';
|
|
8
|
-
import { TheToolbarService } from './services/toolbar.service';
|
|
9
|
-
import { TheContextService } from './services/context.service';
|
|
10
8
|
import { TheTextComponent } from './components/text/text.component';
|
|
9
|
+
import { TheContextService } from './services/context.service';
|
|
11
10
|
import { TheQuickInsertComponent } from './plugins/quick-insert/components/quick-insert.component';
|
|
11
|
+
import { ThePlugin } from './interfaces/plugins/plugins';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
declare const TheEditorComponent_base: import("ngx-tethys/core").Constructor<import("ngx-tethys/core").ThyUnsubscribe> & typeof MixinBase;
|
|
14
14
|
export declare class TheEditorComponent extends TheEditorComponent_base implements OnInit, OnChanges, OnDestroy {
|
|
15
|
-
private toolbarService;
|
|
16
15
|
private theContextService;
|
|
17
16
|
private viewContainerRef;
|
|
18
17
|
private elementRef;
|
|
@@ -32,7 +31,6 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
|
|
|
32
31
|
templateInstance: TheTemplateComponent;
|
|
33
32
|
globalToolbarInstance: TheToolbarComponent;
|
|
34
33
|
quickInsertInstance: TheQuickInsertComponent;
|
|
35
|
-
_plugins: ThePlugin[];
|
|
36
34
|
toolbarEntity: ToolbarEntity;
|
|
37
35
|
editor: TheEditor;
|
|
38
36
|
editorValue: Descendant[];
|
|
@@ -45,7 +43,7 @@ export declare class TheEditorComponent extends TheEditorComponent_base implemen
|
|
|
45
43
|
elementToHtml: WeakMap<Element, string>;
|
|
46
44
|
private onChangeCallback;
|
|
47
45
|
private onTouchedCallback;
|
|
48
|
-
constructor(
|
|
46
|
+
constructor(theContextService: TheContextService, viewContainerRef: ViewContainerRef, elementRef: ElementRef, ngZone: NgZone, cdr: ChangeDetectorRef);
|
|
49
47
|
ngOnInit(): void;
|
|
50
48
|
ngOnChanges(changes: SimpleChanges): void;
|
|
51
49
|
ngOnDestroy(): void;
|
package/editor.module.d.ts
CHANGED
|
@@ -91,8 +91,8 @@ import * as i58 from "ngx-tethys/resizable";
|
|
|
91
91
|
import * as i59 from "ngx-tethys/switch";
|
|
92
92
|
import * as i60 from "ng-codemirror";
|
|
93
93
|
import * as i61 from "./components/column-resize/column-resize.module";
|
|
94
|
-
export declare const COMPONENTS: (typeof TheColorSelectComponent | typeof TheTableOptionsComponent | typeof TheContextMenuComponent | typeof TheToolbarGroupComponent | typeof TheTextComponent | typeof TheDefaultElementComponent | typeof
|
|
95
|
-
export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheImageComponent | typeof TheTodoItemComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheLinkComponent | typeof TheTdComponent
|
|
94
|
+
export declare const COMPONENTS: (typeof TheColorSelectComponent | typeof TheTableOptionsComponent | typeof TheContextMenuComponent | typeof TheToolbarGroupComponent | typeof TheTextComponent | typeof TheDefaultElementComponent | typeof TheToolbarItemComponent | typeof NavSplitLineComponent | typeof TheToolbarDropdownComponent | typeof TheToolbarComponent | typeof TheQuickToolbarComponent | typeof TheQuickInsertComponent | typeof TheConversionHintComponent | typeof TheTableSelectComponent | typeof TheTableToolbarItemComponent | typeof TheIndentToolbarComponent | typeof TheVerticalToolbarItemComponent | typeof TheColorToolbarItemComponent | typeof TheInsertMarkComponent | typeof TheInlineToolbarComponent)[];
|
|
95
|
+
export declare const PLUGIN_COMPONENTS: (typeof TheTableToolbarComponent | typeof TheTableComponent | typeof TheTemplateComponent | typeof TheImageComponent | typeof TheTodoItemComponent | typeof TheBlockquoteComponent | typeof TheCodeComponent | typeof TheLinkHoverComponent | typeof TheLinkEditComponent | typeof TheLinkComponent | typeof TheTdComponent)[];
|
|
96
96
|
export declare class TheEditorModule {
|
|
97
97
|
static ɵfac: i0.ɵɵFactoryDeclaration<TheEditorModule, never>;
|
|
98
98
|
static ɵmod: i0.ɵɵNgModuleDeclaration<TheEditorModule, [typeof i1.TheEditorComponent, typeof i2.ElementStylePipe, typeof i2.ElementClassPipe, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i5.TheToolbarGroupComponent, typeof i6.TheToolbarItemComponent, typeof i7.TheInlineToolbarComponent, typeof i8.NavSplitLineComponent, typeof i9.TheTextComponent, typeof i10.TheDefaultElementComponent, typeof i11.TheQuickInsertComponent, typeof i12.TheQuickToolbarComponent, typeof i13.TheColorSelectComponent, typeof i14.TheColorToolbarItemComponent, typeof i15.TheContextMenuComponent, typeof i16.TheInsertMarkComponent, typeof i17.TheTableSelectComponent, typeof i18.TheTableToolbarItemComponent, typeof i19.TheConversionHintComponent, typeof i20.TheVerticalToolbarItemComponent, typeof i21.TheIndentToolbarComponent, typeof i22.TheTableOptionsComponent, typeof i23.TheImageComponent, typeof i24.TheTemplateComponent, typeof i25.TheHrComponent, typeof i26.TheBlockquoteComponent, typeof i27.TheTodoItemComponent, typeof i28.TheListItemComponent, typeof i29.TheBulletedListComponent, typeof i30.TheNumberedListComponent, typeof i31.TheCodeComponent, typeof i32.TheLinkComponent, typeof i33.TheLinkEditComponent, typeof i34.TheLinkHoverComponent, typeof i35.TheTableToolbarComponent, typeof i36.TheTableComponent, typeof i37.TheTableRowComponent, typeof i38.TheTdComponent, typeof i39.TheInlineCodeComponent], [typeof i40.CommonModule, typeof i41.SlateModule, typeof i42.FormsModule, typeof i43.ThyIconModule, typeof i44.ThyAvatarModule, typeof i45.ThyNavModule, typeof i46.ThyFormModule, typeof i47.ThySharedModule, typeof i48.ThyListModule, typeof i49.ThyTooltipModule, typeof i50.ThyProgressModule, typeof i51.ThyAutocompleteModule, typeof i52.ThyActionMenuModule, typeof i53.ThyInputModule, typeof i54.ThySelectModule, typeof i55.ThyButtonModule, typeof i56.ThyNotifyModule, typeof i57.ThyAlertModule, typeof i58.ThyResizableModule, typeof i59.ThySwitchModule, typeof i60.CodemirrorModule, typeof i61.TheColumnSizeModule], [typeof i1.TheEditorComponent, typeof i3.TheToolbarComponent, typeof i4.TheToolbarDropdownComponent, typeof i6.TheToolbarItemComponent, typeof i10.TheDefaultElementComponent]>;
|
|
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
|
119
119
|
type: HostBinding,
|
|
120
120
|
args: ['class.disabled']
|
|
121
121
|
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL3Rvb2xiYXItaXRlbS90b29sYmFyLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBNkJoRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0lBeUJwRSxZQUFvQixNQUFjLEVBQVUsR0FBNkI7UUFDckUsS0FBSyxFQUFFLENBQUM7UUFEUSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFwQmhFLGFBQVEsR0FBb0IsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUVoRSxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUVsQyxXQUFNLEdBQXFCLEtBQUssQ0FBQztRQUVqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBZ0JqQixDQUFDO0lBVkQsY0FBYyxDQUFDLEtBQWlCO1FBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQW1DLGFBQWE7UUFDNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFNRCxRQUFROztRQUNKLElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGtCQUFrQixLQUFJLGVBQWUsQ0FBQyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGtCQUFrQixDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWM7O1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE9BQU8sRUFBQyxDQUFDLENBQUMsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFpQjs7UUFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxRQUFRLEtBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUEsRUFBRTtZQUMvRCxPQUFPO1NBQ1Y7UUFFRCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNqQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqRixjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzdDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3FIQTFEUSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix1WEFhTyxnQkFBZ0Isa0VBdEM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvQlQ7NEZBS1EsdUJBQXVCO2tCQTNCbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0JUO29CQUNELElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3FCQUM1QjtpQkFDSjtvSUFFWSxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU04sZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkUsY0FBYztzQkFEYixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLRixhQUFhO3NCQUEvQyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUVkaXRvciwgVG9vbGJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRoZVRvb2xiYXJCYXNlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2xiYXItYmFzZS1pdGVtL3Rvb2xiYXItYmFzZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFySXRlbU1vZGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdG9vbGJhcic7XG5pbXBvcnQgeyBpc0NvbXBvbmVudFR5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtdG9vbGJhci1pdGVtJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbU1vZGUgPT09IFRvb2xiYXJJdGVtTW9kZS5ob3Jpem9udGFsOyBlbHNlIHNlbGVjdGlvbkl0ZW1cIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdGh5SWNvbk5hdkxpbmtcbiAgICAgICAgICAgICAgICBbdGh5SWNvbk5hdkxpbmtJY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW3RoeVRvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgW3RoeVRvb2x0aXBUZW1wbGF0ZUNvbnRleHRdPVwieyBuYW1lOiBpdGVtLm5hbWUsIHNob3J0Y3V0S2V5OiBpdGVtLnNob3J0Y3V0S2V5IH1cIlxuICAgICAgICAgICAgICAgIHRoeVRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgICAgIFt0aHlJY29uTmF2TGlua0FjdGl2ZV09XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiZXhlY3V0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbkl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0/LnF1aWNrSXRlbUNvbXBvbmVudFwiPlxuICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbT8uaWNvblwiIFt0aHlJY29uUm90YXRlXT1cIjBcIiBjbGFzcz1cInF1aWNrLXRvb2xiYXItaWNvblwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWljay10b29sYmFyLW5hbWVcIj57eyBpdGVtPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcCBsZXQtZGF0YT4ge3sgZGF0YS5uYW1lIH19IHt7IGRhdGEuc2hvcnRjdXRLZXkgfX0gPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAjdG9vbGJhckNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbiAgICBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aGUtdG9vbGJhci1pdGVtJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGhlVG9vbGJhckl0ZW1Db21wb25lbnQgZXh0ZW5kcyBUaGVUb29sYmFyQmFzZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGVkaXRvcjogVGhlRWRpdG9yO1xuXG4gICAgQElucHV0KCkgaXRlbTogVG9vbGJhckl0ZW07XG5cbiAgICBASW5wdXQoKSBpdGVtTW9kZTogVG9vbGJhckl0ZW1Nb2RlID0gVG9vbGJhckl0ZW1Nb2RlLmhvcml6b250YWw7XG5cbiAgICBUb29sYmFySXRlbU1vZGUgPSBUb29sYmFySXRlbU1vZGU7XG5cbiAgICBhY3RpdmU6IHN0cmluZyB8IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCd0b29sYmFyQ29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICB0b29sYmFyQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICB0b2dnbGVEcm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBzdXBlci5leGVjdXRlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZ2V0IGRpc2FibGVkU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbT8ucXVpY2tJdGVtQ29tcG9uZW50ICYmIGlzQ29tcG9uZW50VHlwZSh0aGlzLml0ZW0/LnF1aWNrSXRlbUNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbGJhckl0ZW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0dXNDaGFuZ2UoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuaXRlbT8uZGlzYWJsZSA/IHRoaXMuaXRlbT8uZGlzYWJsZShlZGl0b3IpIDogZmFsc2U7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pdGVtPy5hY3RpdmUgPyB0aGlzLml0ZW0/LmFjdGl2ZShlZGl0b3IpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZXhlY3V0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBzdXBlci5leGVjdXRlKGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy5lZGl0b3I/LmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaXRlbT8uZXhlY3V0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pdGVtPy5leGVjdXRlKHRoaXMuZWRpdG9yKTtcbiAgICB9XG5cbiAgICByZW5kZXJUb29sYmFySXRlbSgpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtRmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuaXRlbS5xdWlja0l0ZW1Db21wb25lbnQpO1xuICAgICAgICAgICAgY29uc3QgdG9sbGJhckl0ZW1SZWYgPSB0aGlzLnRvb2xiYXJDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRvb2xiYXJJdGVtRmFjdG9yeSk7XG4gICAgICAgICAgICB0b2xsYmFySXRlbVJlZi5pbnN0YW5jZS5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgICAgIHRvbGxiYXJJdGVtUmVmLmluc3RhbmNlLml0ZW0gPSB0aGlzLml0ZW07XG4gICAgICAgICAgICB0b2xsYmFySXRlbVJlZi5pbnN0YW5jZS5pdGVtTW9kZSA9IFRvb2xiYXJJdGVtTW9kZS52ZXJ0aWNhbDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -2,7 +2,6 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
import { ElementKinds, MarkTypes } from './node-types';
|
|
3
3
|
import { ToolbarActionTypes, STANDARD_HEADING_TYPES } from '../constants/node-types';
|
|
4
4
|
export const TheToolbarGroupToken = new InjectionToken('the-toolbar-group-token');
|
|
5
|
-
export const QUICK_TOOLBAR_HOTKEY = '/';
|
|
6
5
|
export var DropdownMode;
|
|
7
6
|
(function (DropdownMode) {
|
|
8
7
|
DropdownMode["icon"] = "icon-mode";
|
|
@@ -68,4 +67,4 @@ export const ToolbarMoreGroup = {
|
|
|
68
67
|
key: 'more',
|
|
69
68
|
icon: 'more'
|
|
70
69
|
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb25zdGFudHMvdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEwQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRTNILE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsa0NBQWtCLENBQUE7SUFDbEIsa0NBQWtCLENBQUE7QUFDdEIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixpRUFBVSxDQUFBO0lBQ1YsNkRBQVEsQ0FBQTtBQUNaLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUVELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFpQjtJQUN4RCxZQUFZLENBQUMsV0FBVztJQUN4QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFNBQVMsQ0FBQyxJQUFJO0lBQ2QsU0FBUyxDQUFDLE1BQU07SUFDaEIsU0FBUyxDQUFDLFNBQVM7SUFDbkIsU0FBUyxDQUFDLE1BQU07SUFDaEIsWUFBWSxDQUFDLFVBQVU7SUFDdkIsU0FBUyxDQUFDLEtBQUs7SUFDZixTQUFTLENBQUMsZUFBZTtJQUN6QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLGtCQUFrQixDQUFDLFNBQVM7SUFDNUIsa0JBQWtCLENBQUMsYUFBYTtJQUNoQyxrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsWUFBWSxDQUFDLElBQUk7SUFDakIsWUFBWSxDQUFDLEtBQUs7SUFDbEIsWUFBWSxDQUFDLEtBQUs7SUFDbEIsWUFBWSxDQUFDLFVBQVU7SUFDdkIsWUFBWSxDQUFDLElBQUk7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFpQjtJQUN4RCxrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsU0FBUyxDQUFDLElBQUk7SUFDZCxTQUFTLENBQUMsTUFBTTtJQUNoQixTQUFTLENBQUMsU0FBUztJQUNuQixTQUFTLENBQUMsTUFBTTtJQUNoQixZQUFZLENBQUMsVUFBVTtJQUN2QixTQUFTLENBQUMsS0FBSztJQUNmLFNBQVMsQ0FBQyxlQUFlO0lBQ3pCLGtCQUFrQixDQUFDLEtBQUs7SUFDeEIsa0JBQWtCLENBQUMsU0FBUztJQUM1QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxJQUFJO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBaUI7SUFDdkQsR0FBRyxzQkFBc0I7SUFDekIsa0JBQWtCLENBQUMsS0FBSztJQUN4QixZQUFZLENBQUMsWUFBWTtJQUN6QixZQUFZLENBQUMsWUFBWTtJQUN6QixrQkFBa0IsQ0FBQyxLQUFLO0lBQ3hCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxFQUFFO0lBQ2YsWUFBWSxDQUFDLElBQUk7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnQjtJQUN6QyxHQUFHLEVBQUUsTUFBTTtJQUNYLElBQUksRUFBRSxNQUFNO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIE1hcmtUeXBlcyB9IGZyb20gJy4vbm9kZS10eXBlcyc7XG5pbXBvcnQgeyBUb29sYmFySXRlbSwgVG9vbGJhcktleSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvblR5cGVzLCBTVEFOREFSRF9IRUFESU5HX1RZUEVTIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBUaGVUb29sYmFyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2xiYXItZ3JvdXAvdG9vbGJhci1ncm91cC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgVGhlVG9vbGJhckdyb3VwVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50VHlwZTxUaGVUb29sYmFyR3JvdXBDb21wb25lbnQ+PigndGhlLXRvb2xiYXItZ3JvdXAtdG9rZW4nKTtcblxuZXhwb3J0IGVudW0gRHJvcGRvd25Nb2RlIHtcbiAgICBpY29uID0gJ2ljb24tbW9kZScsXG4gICAgdGV4dCA9ICd0ZXh0LW1vZGUnXG59XG5cbmV4cG9ydCBlbnVtIFRvb2xiYXJJdGVtTW9kZSB7XG4gICAgaG9yaXpvbnRhbCxcbiAgICB2ZXJ0aWNhbFxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdEdsb2JhbFRvb2xiYXJEZWZpbml0aW9uOiBUb29sYmFyS2V5W10gPSBbXG4gICAgRWxlbWVudEtpbmRzLmhlYWRpbmdMaXN0LFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBNYXJrVHlwZXMuYm9sZCxcbiAgICBNYXJrVHlwZXMuaXRhbGljLFxuICAgIE1hcmtUeXBlcy51bmRlcmxpbmUsXG4gICAgTWFya1R5cGVzLnN0cmlrZSxcbiAgICBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICBNYXJrVHlwZXMuY29sb3IsXG4gICAgTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMudmVydGljYWxBbGlnbixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCxcbiAgICBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBFbGVtZW50S2luZHMubGluayxcbiAgICBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgRWxlbWVudEtpbmRzLnRhYmxlLFxuICAgIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlLFxuICAgIEVsZW1lbnRLaW5kcy5jb2RlXG5dO1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdElubGluZVRvb2xiYXJEZWZpbml0aW9uOiBUb29sYmFyS2V5W10gPSBbXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmNsZWFuLFxuICAgIFRvb2xiYXJBY3Rpb25UeXBlcy5zcGxpdCxcbiAgICBNYXJrVHlwZXMuYm9sZCxcbiAgICBNYXJrVHlwZXMuaXRhbGljLFxuICAgIE1hcmtUeXBlcy51bmRlcmxpbmUsXG4gICAgTWFya1R5cGVzLnN0cmlrZSxcbiAgICBFbGVtZW50S2luZHMuaW5saW5lQ29kZSxcbiAgICBNYXJrVHlwZXMuY29sb3IsXG4gICAgTWFya1R5cGVzLmJhY2tncm91bmRDb2xvcixcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLmFsaWduVHlwZSxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLmxpbmtcbl07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0UXVpY2tUb29sYmFyRGVmaW5pdGlvbjogVG9vbGJhcktleVtdID0gW1xuICAgIC4uLlNUQU5EQVJEX0hFQURJTkdfVFlQRVMsXG4gICAgVG9vbGJhckFjdGlvblR5cGVzLnNwbGl0LFxuICAgIEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QsXG4gICAgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCxcbiAgICBUb29sYmFyQWN0aW9uVHlwZXMuc3BsaXQsXG4gICAgRWxlbWVudEtpbmRzLmxpbmssXG4gICAgRWxlbWVudEtpbmRzLmltYWdlLFxuICAgIEVsZW1lbnRLaW5kcy50YWJsZSxcbiAgICBFbGVtZW50S2luZHMuYmxvY2txdW90ZSxcbiAgICBFbGVtZW50S2luZHMuaHIsXG4gICAgRWxlbWVudEtpbmRzLmNvZGVcbl07XG5cbmV4cG9ydCBjb25zdCBUb29sYmFyTW9yZUdyb3VwOiBUb29sYmFySXRlbSA9IHtcbiAgICBrZXk6ICdtb3JlJyxcbiAgICBpY29uOiAnbW9yZSdcbn07XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { overridePluginsByKey } from './utils';
|
|
2
|
+
export const createPluginFactory = (defaultPlugin) => (override, overrideByKey = {}) => {
|
|
3
|
+
overrideByKey[defaultPlugin.key] = override;
|
|
4
|
+
return overridePluginsByKey(Object.assign({}, defaultPlugin), overrideByKey);
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL2NyZWF0ZS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUM1QixDQUFTLGFBQXdDLEVBQUUsRUFBRSxDQUNyRCxDQUFTLFFBQTRDLEVBQUUsZ0JBQStCLEVBQUUsRUFBNEIsRUFBRTtJQUNsSCxhQUFhLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQWUsQ0FBQztJQUVuRCxPQUFPLG9CQUFvQixDQUFPLGtCQUFLLGFBQWEsQ0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vSW5mZXIsIE92ZXJyaWRlQnlLZXksIFRoZVBsdWdpbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQbHVnaW5zQnlLZXkgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVBsdWdpbkZhY3RvcnkgPVxuICAgIDxQID0ge30+KGRlZmF1bHRQbHVnaW46IFRoZVBsdWdpbjx7fSwgTm9JbmZlcjxQPj4pID0+XG4gICAgPFQgPSB7fT4ob3ZlcnJpZGU/OiBQYXJ0aWFsPFRoZVBsdWdpbjxULCBOb0luZmVyPFA+Pj4sIG92ZXJyaWRlQnlLZXk6IE92ZXJyaWRlQnlLZXkgPSB7fSk6IFRoZVBsdWdpbjxULCBOb0luZmVyPFA+PiA9PiB7XG4gICAgICAgIG92ZXJyaWRlQnlLZXlbZGVmYXVsdFBsdWdpbi5rZXldID0gb3ZlcnJpZGUgYXMgYW55O1xuXG4gICAgICAgIHJldHVybiBvdmVycmlkZVBsdWdpbnNCeUtleTxULCBQPih7IC4uLmRlZmF1bHRQbHVnaW4gfSBhcyBhbnksIG92ZXJyaWRlQnlLZXkpO1xuICAgIH07XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { getToolbarClass } from '../utils';
|
|
2
|
+
import { DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DefaultQuickToolbarDefinition } from '../constants/toolbar';
|
|
3
|
+
const toolbarInitialize = (toolbarItems, global = DefaultGlobalToolbarDefinition, inline = DefaultInlineToolbarDefinition, quick = DefaultQuickToolbarDefinition) => {
|
|
4
|
+
const toolbarDefinition = {
|
|
5
|
+
global,
|
|
6
|
+
inline,
|
|
7
|
+
quick
|
|
8
|
+
};
|
|
9
|
+
const toolbarOperations = new Map();
|
|
10
|
+
toolbarItems.forEach(i => toolbarOperations.set(i.key, i));
|
|
11
|
+
const toolbarEntity = nextToolbarEntity(toolbarDefinition, toolbarOperations);
|
|
12
|
+
return {
|
|
13
|
+
toolbarDefinition,
|
|
14
|
+
toolbarOperations,
|
|
15
|
+
toolbarEntity
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const nextToolbarEntity = (toolbarDefinition, toolbarItems) => {
|
|
19
|
+
const entity = {};
|
|
20
|
+
for (const defKey in toolbarDefinition) {
|
|
21
|
+
entity[defKey] = getToolbarItemByKeys(toolbarDefinition[defKey], toolbarItems);
|
|
22
|
+
}
|
|
23
|
+
return entity;
|
|
24
|
+
};
|
|
25
|
+
const getToolbarItemByKeys = (keys, toolbarItems) => {
|
|
26
|
+
const items = [];
|
|
27
|
+
keys.forEach((key) => {
|
|
28
|
+
if (key === `split`) {
|
|
29
|
+
items.push({ key: `split` });
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const item = toolbarItems.get(key);
|
|
33
|
+
if (item && item.includes) {
|
|
34
|
+
items.push(Object.assign(Object.assign({}, item), { includes: getToolbarItemByKeys(item.includes, toolbarItems) }));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (item) {
|
|
38
|
+
items.push(item);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return items;
|
|
42
|
+
};
|
|
43
|
+
export const createToolbar = (editor, toolbar) => {
|
|
44
|
+
const toolbarItems = editor === null || editor === void 0 ? void 0 : editor.plugins.reduce((prevItems, nextPlugin) => {
|
|
45
|
+
var _a;
|
|
46
|
+
prevItems.push(...((_a = nextPlugin === null || nextPlugin === void 0 ? void 0 : nextPlugin.toolbarItems) !== null && _a !== void 0 ? _a : []));
|
|
47
|
+
return prevItems;
|
|
48
|
+
}, []);
|
|
49
|
+
const toolbarOption = toolbarInitialize(toolbarItems, toolbar === null || toolbar === void 0 ? void 0 : toolbar.global, toolbar === null || toolbar === void 0 ? void 0 : toolbar.inline, toolbar === null || toolbar === void 0 ? void 0 : toolbar.quick);
|
|
50
|
+
const globalToolbarClass = ['the-global-toolbar', getToolbarClass(editor)];
|
|
51
|
+
const toolbarEntity = toolbarOption.toolbarEntity;
|
|
52
|
+
return {
|
|
53
|
+
globalToolbarClass,
|
|
54
|
+
toolbarEntity
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvb2xiYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS9jcmVhdGUtdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJJLE1BQU0saUJBQWlCLEdBQUcsQ0FDdEIsWUFBMkIsRUFDM0IsU0FBbUIsOEJBQThCLEVBQ2pELFNBQW1CLDhCQUE4QixFQUNqRCxRQUFrQiw2QkFBNkIsRUFDOUIsRUFBRTtJQUNuQixNQUFNLGlCQUFpQixHQUFHO1FBQ3RCLE1BQU07UUFDTixNQUFNO1FBQ04sS0FBSztLQUNSLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUE2QixJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUNuRixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzRCxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTlFLE9BQU87UUFDSCxpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGFBQWE7S0FDaEIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxpQkFBb0MsRUFBRSxZQUFzQyxFQUFpQixFQUFFO0lBQ3RILE1BQU0sTUFBTSxHQUFrQixFQUFFLENBQUM7SUFDakMsS0FBSyxNQUFNLE1BQU0sSUFBSSxpQkFBaUIsRUFBRTtRQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDbEY7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBa0IsRUFBRSxZQUFzQyxFQUFpQixFQUFFO0lBQ3ZHLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQWUsRUFBRSxFQUFFO1FBQzdCLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0IsT0FBTztTQUNWO1FBQ0QsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZCLEtBQUssQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxRQUFRLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQXdCLEVBQUUsWUFBWSxDQUFDLElBQUcsQ0FBQztZQUNyRyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksRUFBRTtZQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEI7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWlCLEVBQUUsT0FBc0IsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxFQUFFOztRQUNsRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxZQUFZLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEcsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLG9CQUFvQixFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFFbEQsT0FBTztRQUNILGtCQUFrQjtRQUNsQixhQUFhO0tBQ2hCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVFZGl0b3IsIFRvb2xiYXJEZWZpbml0aW9uLCBUb29sYmFyRW50aXR5LCBUb29sYmFySW5pdE9wdGlvbiwgVG9vbGJhckl0ZW0sIFRvb2xiYXJLZXksIFRvb2xiYXJPcHRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFRvb2xiYXJDbGFzcyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IERlZmF1bHRHbG9iYWxUb29sYmFyRGVmaW5pdGlvbiwgRGVmYXVsdElubGluZVRvb2xiYXJEZWZpbml0aW9uLCBEZWZhdWx0UXVpY2tUb29sYmFyRGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvbnN0YW50cy90b29sYmFyJztcblxuY29uc3QgdG9vbGJhckluaXRpYWxpemUgPSAoXG4gICAgdG9vbGJhckl0ZW1zOiBUb29sYmFySXRlbVtdLFxuICAgIGdsb2JhbDogc3RyaW5nW10gPSBEZWZhdWx0R2xvYmFsVG9vbGJhckRlZmluaXRpb24sXG4gICAgaW5saW5lOiBzdHJpbmdbXSA9IERlZmF1bHRJbmxpbmVUb29sYmFyRGVmaW5pdGlvbixcbiAgICBxdWljazogc3RyaW5nW10gPSBEZWZhdWx0UXVpY2tUb29sYmFyRGVmaW5pdGlvblxuKTogVG9vbGJhckluaXRPcHRpb24gPT4ge1xuICAgIGNvbnN0IHRvb2xiYXJEZWZpbml0aW9uID0ge1xuICAgICAgICBnbG9iYWwsXG4gICAgICAgIGlubGluZSxcbiAgICAgICAgcXVpY2tcbiAgICB9O1xuXG4gICAgY29uc3QgdG9vbGJhck9wZXJhdGlvbnM6IE1hcDxzdHJpbmcsIFRvb2xiYXJJdGVtPiA9IG5ldyBNYXA8c3RyaW5nLCBUb29sYmFySXRlbT4oKTtcbiAgICB0b29sYmFySXRlbXMuZm9yRWFjaChpID0+IHRvb2xiYXJPcGVyYXRpb25zLnNldChpLmtleSwgaSkpO1xuXG4gICAgY29uc3QgdG9vbGJhckVudGl0eSA9IG5leHRUb29sYmFyRW50aXR5KHRvb2xiYXJEZWZpbml0aW9uLCB0b29sYmFyT3BlcmF0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0b29sYmFyRGVmaW5pdGlvbixcbiAgICAgICAgdG9vbGJhck9wZXJhdGlvbnMsXG4gICAgICAgIHRvb2xiYXJFbnRpdHlcbiAgICB9O1xufTtcblxuY29uc3QgbmV4dFRvb2xiYXJFbnRpdHkgPSAodG9vbGJhckRlZmluaXRpb246IFRvb2xiYXJEZWZpbml0aW9uLCB0b29sYmFySXRlbXM6IE1hcDxzdHJpbmcsIFRvb2xiYXJJdGVtPik6IFRvb2xiYXJFbnRpdHkgPT4ge1xuICAgIGNvbnN0IGVudGl0eTogVG9vbGJhckVudGl0eSA9IHt9O1xuICAgIGZvciAoY29uc3QgZGVmS2V5IGluIHRvb2xiYXJEZWZpbml0aW9uKSB7XG4gICAgICAgIGVudGl0eVtkZWZLZXldID0gZ2V0VG9vbGJhckl0ZW1CeUtleXModG9vbGJhckRlZmluaXRpb25bZGVmS2V5XSwgdG9vbGJhckl0ZW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudGl0eTtcbn07XG5cbmNvbnN0IGdldFRvb2xiYXJJdGVtQnlLZXlzID0gKGtleXM6IFRvb2xiYXJLZXlbXSwgdG9vbGJhckl0ZW1zOiBNYXA8c3RyaW5nLCBUb29sYmFySXRlbT4pOiBUb29sYmFySXRlbVtdID0+IHtcbiAgICBjb25zdCBpdGVtczogVG9vbGJhckl0ZW1bXSA9IFtdO1xuICAgIGtleXMuZm9yRWFjaCgoa2V5OiBUb29sYmFyS2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09IGBzcGxpdGApIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBrZXk6IGBzcGxpdGAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbSA9IHRvb2xiYXJJdGVtcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5pbmNsdWRlcykge1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7IC4uLml0ZW0sIGluY2x1ZGVzOiBnZXRUb29sYmFySXRlbUJ5S2V5cyhpdGVtLmluY2x1ZGVzIGFzIFRvb2xiYXJLZXlbXSwgdG9vbGJhckl0ZW1zKSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpdGVtcztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUb29sYmFyID0gKGVkaXRvcjogVGhlRWRpdG9yLCB0b29sYmFyOiBUb29sYmFyT3B0aW9uKSA9PiB7XG4gICAgY29uc3QgdG9vbGJhckl0ZW1zID0gZWRpdG9yPy5wbHVnaW5zLnJlZHVjZSgocHJldkl0ZW1zLCBuZXh0UGx1Z2luKSA9PiB7XG4gICAgICAgIHByZXZJdGVtcy5wdXNoKC4uLihuZXh0UGx1Z2luPy50b29sYmFySXRlbXMgPz8gW10pKTtcbiAgICAgICAgcmV0dXJuIHByZXZJdGVtcztcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgdG9vbGJhck9wdGlvbiA9IHRvb2xiYXJJbml0aWFsaXplKHRvb2xiYXJJdGVtcywgdG9vbGJhcj8uZ2xvYmFsLCB0b29sYmFyPy5pbmxpbmUsIHRvb2xiYXI/LnF1aWNrKTtcbiAgICBjb25zdCBnbG9iYWxUb29sYmFyQ2xhc3MgPSBbJ3RoZS1nbG9iYWwtdG9vbGJhcicsIGdldFRvb2xiYXJDbGFzcyhlZGl0b3IpXTtcbiAgICBjb25zdCB0b29sYmFyRW50aXR5ID0gdG9vbGJhck9wdGlvbi50b29sYmFyRW50aXR5O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ2xvYmFsVG9vbGJhckNsYXNzLFxuICAgICAgICB0b29sYmFyRW50aXR5XG4gICAgfTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './with-theia';
|
|
2
|
+
export * from './create-plugin';
|
|
3
|
+
export * from './create-toolbar';
|
|
4
|
+
export * from './utils/index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpdGgtdGhlaWEnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtcGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXRvb2xiYXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { _ } from '../../utils/lodash';
|
|
2
|
+
/**
|
|
3
|
+
* 循环 plugins 到 editor.plugins 和 editor.pluginsByKey
|
|
4
|
+
* 如果有 key 重复则进行覆盖
|
|
5
|
+
*/
|
|
6
|
+
export const flattenDeepPlugins = (editor, plugins) => {
|
|
7
|
+
if (!plugins)
|
|
8
|
+
return;
|
|
9
|
+
plugins.forEach((plugin) => {
|
|
10
|
+
let p = plugin;
|
|
11
|
+
if (!p.options)
|
|
12
|
+
p.options = {};
|
|
13
|
+
if (!p.nestedStructureByKey)
|
|
14
|
+
p.nestedStructureByKey = {};
|
|
15
|
+
// 如果有 key 重复则进行覆盖
|
|
16
|
+
for (const key in p.nestedStructureByKey) {
|
|
17
|
+
if (!editor.nestedStructureByKey[key]) {
|
|
18
|
+
editor.nestedStructureByKey[key] = p.nestedStructureByKey[key];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (!editor.pluginsByKey[p.key]) {
|
|
22
|
+
editor.plugins.push(p);
|
|
23
|
+
editor.pluginsByKey[p.key] = p;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const index = editor.plugins.indexOf(editor.pluginsByKey[p.key]);
|
|
27
|
+
const mergedPlugin = _.defaultsDeep(p, editor.pluginsByKey[p.key]);
|
|
28
|
+
if (index >= 0) {
|
|
29
|
+
editor.plugins[index] = mergedPlugin;
|
|
30
|
+
}
|
|
31
|
+
editor.pluginsByKey[p.key] = mergedPlugin;
|
|
32
|
+
}
|
|
33
|
+
flattenDeepPlugins(editor, p.plugins);
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlbi1kZWVwLXBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS91dGlscy9mbGF0dGVuLWRlZXAtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHdkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBUyxNQUFpQixFQUFFLE9BQXdCLEVBQUUsRUFBRTtJQUN0RixJQUFJLENBQUMsT0FBTztRQUFFLE9BQU87SUFFckIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUN0QyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtZQUFFLENBQUMsQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFFekQsa0JBQWtCO1FBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLG9CQUFvQixFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEU7U0FDSjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVuRSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDeEM7WUFDRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDN0M7UUFDRCxrQkFBa0IsQ0FBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXyB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZGFzaCc7XG5pbXBvcnQgeyBUaGVFZGl0b3IsIFRoZVBsdWdpbiwgV2l0aFRoZVBsdWdpbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIOW+queOryBwbHVnaW5zIOWIsCBlZGl0b3IucGx1Z2lucyDlkowgZWRpdG9yLnBsdWdpbnNCeUtleVxuICog5aaC5p6c5pyJIGtleSDph43lpI3liJnov5vooYzopobnm5ZcbiAqL1xuZXhwb3J0IGNvbnN0IGZsYXR0ZW5EZWVwUGx1Z2lucyA9IDxUID0ge30+KGVkaXRvcjogVGhlRWRpdG9yLCBwbHVnaW5zPzogVGhlUGx1Z2luPFQ+W10pID0+IHtcbiAgICBpZiAoIXBsdWdpbnMpIHJldHVybjtcblxuICAgIHBsdWdpbnMuZm9yRWFjaCgocGx1Z2luOiBXaXRoVGhlUGx1Z2luKSA9PiB7XG4gICAgICAgIGxldCBwID0gcGx1Z2luO1xuICAgICAgICBpZiAoIXAub3B0aW9ucykgcC5vcHRpb25zID0ge30gYXMgYW55O1xuICAgICAgICBpZiAoIXAubmVzdGVkU3RydWN0dXJlQnlLZXkpIHAubmVzdGVkU3RydWN0dXJlQnlLZXkgPSB7fTtcblxuICAgICAgICAvLyDlpoLmnpzmnIkga2V5IOmHjeWkjeWImei/m+ihjOimhuebllxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwLm5lc3RlZFN0cnVjdHVyZUJ5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIWVkaXRvci5uZXN0ZWRTdHJ1Y3R1cmVCeUtleVtrZXldKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLm5lc3RlZFN0cnVjdHVyZUJ5S2V5W2tleV0gPSBwLm5lc3RlZFN0cnVjdHVyZUJ5S2V5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWVkaXRvci5wbHVnaW5zQnlLZXlbcC5rZXldKSB7XG4gICAgICAgICAgICBlZGl0b3IucGx1Z2lucy5wdXNoKHApO1xuICAgICAgICAgICAgZWRpdG9yLnBsdWdpbnNCeUtleVtwLmtleV0gPSBwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBlZGl0b3IucGx1Z2lucy5pbmRleE9mKGVkaXRvci5wbHVnaW5zQnlLZXlbcC5rZXldKTtcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZFBsdWdpbiA9IF8uZGVmYXVsdHNEZWVwKHAsIGVkaXRvci5wbHVnaW5zQnlLZXlbcC5rZXldKTtcblxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICBlZGl0b3IucGx1Z2luc1tpbmRleF0gPSBtZXJnZWRQbHVnaW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlZGl0b3IucGx1Z2luc0J5S2V5W3Aua2V5XSA9IG1lcmdlZFBsdWdpbjtcbiAgICAgICAgfVxuICAgICAgICBmbGF0dGVuRGVlcFBsdWdpbnM8VD4oZWRpdG9yLCBwLnBsdWdpbnMhKTtcbiAgICB9KTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { getPlugin } from './get-plugin';
|
|
2
|
+
export const getPluginOptions = (editor, key) => { var _a; return (_a = getPlugin(editor, key).options) !== null && _a !== void 0 ? _a : {}; };
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBsdWdpbi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvcmUvdXRpbHMvZ2V0LXBsdWdpbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBaUIsTUFBaUIsRUFBRSxHQUFjLEVBQXNCLEVBQUUsV0FDdEcsT0FBQSxNQUFBLFNBQVMsQ0FBTyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxtQ0FBSyxFQUF5QixDQUFBLEVBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbktleSwgVGhlRWRpdG9yLCBUaGVQbHVnaW5PcHRpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gJy4vZ2V0LXBsdWdpbic7XG5cbmV4cG9ydCBjb25zdCBnZXRQbHVnaW5PcHRpb25zID0gPFAgPSB7fSwgVCA9IHt9PihlZGl0b3I6IFRoZUVkaXRvciwga2V5OiBQbHVnaW5LZXkpOiBUaGVQbHVnaW5PcHRpb248UD4gPT5cbiAgICBnZXRQbHVnaW48UCwgVD4oZWRpdG9yLCBrZXkpLm9wdGlvbnMgPz8gKHt9IGFzIFRoZVBsdWdpbk9wdGlvbjxQPik7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { getPluginsByKey } from './get-plugins-by-key';
|
|
2
|
+
export const getPlugin = (editor, key) => getPluginsByKey(editor)[key];
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL3V0aWxzL2dldC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFpQixNQUFpQixFQUFFLEdBQWMsRUFBdUIsRUFBRSxDQUFDLGVBQWUsQ0FBTyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbktleSwgVGhlRWRpdG9yLCBXaXRoVGhlUGx1Z2luIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5zQnlLZXkgfSBmcm9tICcuL2dldC1wbHVnaW5zLWJ5LWtleSc7XG5cbmV4cG9ydCBjb25zdCBnZXRQbHVnaW4gPSA8UCA9IHt9LCBUID0ge30+KGVkaXRvcjogVGhlRWRpdG9yLCBrZXk6IFBsdWdpbktleSk6IFdpdGhUaGVQbHVnaW48VCwgUD4gPT4gZ2V0UGx1Z2luc0J5S2V5PFQsIFA+KGVkaXRvcilba2V5XTtcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const getPluginsByKey = (editor) => {
|
|
2
|
+
const plugins = {};
|
|
3
|
+
if (editor === null || editor === void 0 ? void 0 : editor.pluginsByKey) {
|
|
4
|
+
return editor.pluginsByKey;
|
|
5
|
+
}
|
|
6
|
+
return plugins;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBsdWdpbnMtYnkta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvcmUvdXRpbHMvZ2V0LXBsdWdpbnMtYnkta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFpQixNQUFrQixFQUEwQyxFQUFFO0lBQzFHLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUVuQixJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEVBQUU7UUFDdEIsT0FBTyxNQUFNLENBQUMsWUFBc0QsQ0FBQztLQUN4RTtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbktleSwgVGhlRWRpdG9yLCBXaXRoVGhlUGx1Z2luIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRQbHVnaW5zQnlLZXkgPSA8VCA9IHt9LCBQID0ge30+KGVkaXRvcj86IFRoZUVkaXRvcik6IFJlY29yZDxQbHVnaW5LZXksIFdpdGhUaGVQbHVnaW48VCwgUD4+ID0+IHtcbiAgICBjb25zdCBwbHVnaW5zID0ge307XG5cbiAgICBpZiAoZWRpdG9yPy5wbHVnaW5zQnlLZXkpIHtcbiAgICAgICAgcmV0dXJuIGVkaXRvci5wbHVnaW5zQnlLZXkgYXMgUmVjb3JkPFBsdWdpbktleSwgV2l0aFRoZVBsdWdpbjxULCBQPj47XG4gICAgfVxuXG4gICAgcmV0dXJuIHBsdWdpbnM7XG59O1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const getPlugins = (editor) => {
|
|
2
|
+
var _a;
|
|
3
|
+
return (_a = editor === null || editor === void 0 ? void 0 : editor.plugins) !== null && _a !== void 0 ? _a : [];
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS91dGlscy9nZXQtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBUyxNQUFpQixFQUFrQixFQUFFOztJQUNwRSxPQUFPLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZUVkaXRvciwgVGhlUGx1Z2luIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRQbHVnaW5zID0gPFQgPSB7fT4oZWRpdG9yOiBUaGVFZGl0b3IpOiBUaGVQbHVnaW48VD5bXSA9PiB7XG4gICAgcmV0dXJuIGVkaXRvcj8ucGx1Z2lucyA/PyBbXTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './flatten-deep-plugins';
|
|
2
|
+
export * from './get-plugins';
|
|
3
|
+
export * from './get-plugin';
|
|
4
|
+
export * from './get-plugins-by-key';
|
|
5
|
+
export * from './get-plugin-options';
|
|
6
|
+
export * from './override-plugins-by-key';
|
|
7
|
+
export * from './merge-options';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZsYXR0ZW4tZGVlcC1wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXBsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtcGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXBsdWdpbnMtYnkta2V5JztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXBsdWdpbi1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcnJpZGUtcGx1Z2lucy1ieS1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { _ } from '../../utils/lodash';
|
|
2
|
+
export const mergeOptions = (plugin, override) => {
|
|
3
|
+
const { options } = plugin;
|
|
4
|
+
const newOptions = {};
|
|
5
|
+
for (let option in options) {
|
|
6
|
+
if (Array.isArray(options[option])) {
|
|
7
|
+
newOptions[option] = _.union(options[option], override.options[option]);
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
newOptions[option] = options[option];
|
|
11
|
+
}
|
|
12
|
+
plugin.options = newOptions;
|
|
13
|
+
return plugin;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2Utb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL3V0aWxzL21lcmdlLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFpQixNQUFnQyxFQUFFLFFBQW1CLEVBQTRCLEVBQUU7SUFDNUgsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMzQixNQUFNLFVBQVUsR0FBRyxFQUFTLENBQUM7SUFFN0IsS0FBSyxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7UUFDeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUF1QixDQUFDO1lBQzlGLFNBQVM7U0FDWjtRQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDeEM7SUFDRCxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUU1QixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IE5vSW5mZXIsIFRoZVBsdWdpbiwgVGhlUGx1Z2luT3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBtZXJnZU9wdGlvbnMgPSA8VCA9IHt9LCBQID0ge30+KHBsdWdpbjogVGhlUGx1Z2luPFQsIE5vSW5mZXI8UD4+LCBvdmVycmlkZTogVGhlUGx1Z2luKTogVGhlUGx1Z2luPFQsIE5vSW5mZXI8UD4+ID0+IHtcbiAgICBjb25zdCB7IG9wdGlvbnMgfSA9IHBsdWdpbjtcbiAgICBjb25zdCBuZXdPcHRpb25zID0ge30gYXMgYW55O1xuXG4gICAgZm9yIChsZXQgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uc1tvcHRpb25dKSkge1xuICAgICAgICAgICAgbmV3T3B0aW9uc1tvcHRpb25dID0gXy51bmlvbihvcHRpb25zW29wdGlvbl0sIG92ZXJyaWRlLm9wdGlvbnNbb3B0aW9uXSkgYXMgVGhlUGx1Z2luT3B0aW9uPFA+O1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbmV3T3B0aW9uc1tvcHRpb25dID0gb3B0aW9uc1tvcHRpb25dO1xuICAgIH1cbiAgICBwbHVnaW4ub3B0aW9ucyA9IG5ld09wdGlvbnM7XG5cbiAgICByZXR1cm4gcGx1Z2luO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import { _ } from '../../utils/lodash';
|
|
3
|
+
import { mergeOptions } from './merge-options';
|
|
4
|
+
/**
|
|
5
|
+
* 将每个 plugin 从 `overrideByKey` 递归深度合并到具有相同 key 的 plugin(plugin > plugin.plugins)。
|
|
6
|
+
*/
|
|
7
|
+
export const overridePluginsByKey = (plugin, overrideByKey = {}, nested) => {
|
|
8
|
+
if (overrideByKey[plugin.key]) {
|
|
9
|
+
plugin = mergeOptions(plugin, overrideByKey[plugin.key]);
|
|
10
|
+
const _a = overrideByKey[plugin.key], { plugins: pluginOverridesPlugins } = _a, pluginOverrides = __rest(_a, ["plugins"]);
|
|
11
|
+
plugin = _.defaultsDeep(pluginOverrides, plugin);
|
|
12
|
+
if (!nested) {
|
|
13
|
+
pluginOverridesPlugins === null || pluginOverridesPlugins === void 0 ? void 0 : pluginOverridesPlugins.forEach(pOverrides => {
|
|
14
|
+
if (!plugin.plugins)
|
|
15
|
+
plugin.plugins = [];
|
|
16
|
+
const found = plugin.plugins.find(p => p.key === pOverrides.key);
|
|
17
|
+
if (!found)
|
|
18
|
+
plugin.plugins.push(pOverrides);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (plugin.plugins) {
|
|
23
|
+
plugin.plugins = plugin.plugins.map(p => overridePluginsByKey(p, overrideByKey, true));
|
|
24
|
+
}
|
|
25
|
+
return plugin;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGUtcGx1Z2lucy1ieS1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29yZS91dGlscy9vdmVycmlkZS1wbHVnaW5zLWJ5LWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2hDLE1BQWdDLEVBQ2hDLGdCQUErQixFQUFFLEVBQ2pDLE1BQWdCLEVBQ1EsRUFBRTtJQUMxQixJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDM0IsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpELE1BQU0sS0FBMEQsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBbkYsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLE9BQWtELEVBQTdDLGVBQWUsY0FBckQsV0FBdUQsQ0FBNEIsQ0FBQztRQUUxRixNQUFNLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULHNCQUFzQixhQUF0QixzQkFBc0IsdUJBQXRCLHNCQUFzQixDQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUV6QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsS0FBSztvQkFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztTQUNOO0tBQ0o7SUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDaEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqRztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICcuLi8uLi91dGlscy9sb2Rhc2gnO1xuaW1wb3J0IHsgTm9JbmZlciwgT3ZlcnJpZGVCeUtleSwgVGhlUGx1Z2luIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuXG4vKipcbiAqIOWwhuavj+S4qiBwbHVnaW4g5LuOIGBvdmVycmlkZUJ5S2V5YCDpgJLlvZLmt7HluqblkIjlubbliLDlhbfmnInnm7jlkIwga2V5IOeahCBwbHVnaW7vvIhwbHVnaW4gPiBwbHVnaW4ucGx1Z2luc++8ieOAglxuICovXG5leHBvcnQgY29uc3Qgb3ZlcnJpZGVQbHVnaW5zQnlLZXkgPSA8VCA9IHt9LCBQID0ge30+KFxuICAgIHBsdWdpbjogVGhlUGx1Z2luPFQsIE5vSW5mZXI8UD4+LFxuICAgIG92ZXJyaWRlQnlLZXk6IE92ZXJyaWRlQnlLZXkgPSB7fSxcbiAgICBuZXN0ZWQ/OiBib29sZWFuXG4pOiBUaGVQbHVnaW48VCwgTm9JbmZlcjxQPj4gPT4ge1xuICAgIGlmIChvdmVycmlkZUJ5S2V5W3BsdWdpbi5rZXldKSB7XG4gICAgICAgIHBsdWdpbiA9IG1lcmdlT3B0aW9ucyhwbHVnaW4sIG92ZXJyaWRlQnlLZXlbcGx1Z2luLmtleV0pO1xuXG4gICAgICAgIGNvbnN0IHsgcGx1Z2luczogcGx1Z2luT3ZlcnJpZGVzUGx1Z2lucywgLi4ucGx1Z2luT3ZlcnJpZGVzIH0gPSBvdmVycmlkZUJ5S2V5W3BsdWdpbi5rZXldO1xuXG4gICAgICAgIHBsdWdpbiA9IF8uZGVmYXVsdHNEZWVwKHBsdWdpbk92ZXJyaWRlcywgcGx1Z2luKTtcblxuICAgICAgICBpZiAoIW5lc3RlZCkge1xuICAgICAgICAgICAgcGx1Z2luT3ZlcnJpZGVzUGx1Z2lucz8uZm9yRWFjaChwT3ZlcnJpZGVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXBsdWdpbi5wbHVnaW5zKSBwbHVnaW4ucGx1Z2lucyA9IFtdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSBwbHVnaW4ucGx1Z2lucy5maW5kKHAgPT4gcC5rZXkgPT09IHBPdmVycmlkZXMua2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kKSBwbHVnaW4ucGx1Z2lucy5wdXNoKHBPdmVycmlkZXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGx1Z2luLnBsdWdpbnMpIHtcbiAgICAgICAgcGx1Z2luLnBsdWdpbnMgPSBwbHVnaW4ucGx1Z2lucy5tYXAocCA9PiBvdmVycmlkZVBsdWdpbnNCeUtleTxULCB7fT4ocCwgb3ZlcnJpZGVCeUtleSwgdHJ1ZSkpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVnaW47XG59O1xuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { overridePluginsByKey, flattenDeepPlugins } from './utils';
|
|
2
|
+
import * as TheTransforms from '../transforms';
|
|
3
|
+
export const withTheia = (editor, plugins = []) => {
|
|
4
|
+
let e = editor;
|
|
5
|
+
e.renderElement = (element) => null;
|
|
6
|
+
e.renderLeaf = (text) => null;
|
|
7
|
+
e.insertElement = (element) => TheTransforms.insertElementNext(e, element);
|
|
8
|
+
e.isContainer = (value) => false;
|
|
9
|
+
e.extraElementOptions = [];
|
|
10
|
+
e.disabled = false;
|
|
11
|
+
e.plugins = [];
|
|
12
|
+
e.pluginsByKey = {};
|
|
13
|
+
e.nestedStructureByKey = {};
|
|
14
|
+
// withOverridesByKey
|
|
15
|
+
flattenDeepPlugins(e, plugins);
|
|
16
|
+
// 如果 plugin.overrideByKey 存在,则把 plugin.overrideByKey 中的所有 key 覆盖到 editor.pluginsByKey 中
|
|
17
|
+
editor.plugins.forEach(plugin => {
|
|
18
|
+
if (plugin.overrideByKey) {
|
|
19
|
+
const newPlugins = editor.plugins.map(p => {
|
|
20
|
+
return overridePluginsByKey(p, plugin.overrideByKey);
|
|
21
|
+
});
|
|
22
|
+
editor.plugins = [];
|
|
23
|
+
editor.pluginsByKey = {};
|
|
24
|
+
// 再次扁平化覆盖
|
|
25
|
+
flattenDeepPlugins(editor, newPlugins);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
// withOverrides
|
|
29
|
+
e.plugins.forEach((plugin) => {
|
|
30
|
+
if (plugin.withOverrides) {
|
|
31
|
+
e = plugin.withOverrides(e, plugin);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return e;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10aGVpYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb3JlL3dpdGgtdGhlaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxhQUFhLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFzRCxNQUFTLEVBQUUsVUFBdUIsRUFBRSxFQUFFLEVBQUU7SUFDbkgsSUFBSSxDQUFDLEdBQUcsTUFBbUIsQ0FBQztJQUU1QixDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFVLEVBQVksRUFBRSxDQUFDLElBQUksQ0FBQztJQUM5QyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRixDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDMUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVuQixDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFFNUIscUJBQXFCO0lBQ3JCLGtCQUFrQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvQix3RkFBd0Y7SUFDeEYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUIsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLG9CQUFvQixDQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBb0IsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFekIsVUFBVTtZQUNWLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsZ0JBQWdCO0lBQ2hCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQ3hDLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUN0QixDQUFDLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCwgVGV4dCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIFZpZXdUeXBlIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IsIFRoZVBsdWdpbiwgV2l0aFRoZVBsdWdpbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQbHVnaW5zQnlLZXksIGZsYXR0ZW5EZWVwUGx1Z2lucyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IHdpdGhUaGVpYSA9IDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvciAmIEhpc3RvcnlFZGl0b3IgJiBUaGVFZGl0b3I+KGVkaXRvcjogVCwgcGx1Z2luczogVGhlUGx1Z2luW10gPSBbXSkgPT4ge1xuICAgIGxldCBlID0gZWRpdG9yIGFzIFRoZUVkaXRvcjtcblxuICAgIGUucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KTogVmlld1R5cGUgPT4gbnVsbDtcbiAgICBlLnJlbmRlckxlYWYgPSAodGV4dDogVGV4dCk6IFZpZXdUeXBlID0+IG51bGw7XG4gICAgZS5pbnNlcnRFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IFRoZVRyYW5zZm9ybXMuaW5zZXJ0RWxlbWVudE5leHQoZSwgZWxlbWVudCk7XG4gICAgZS5pc0NvbnRhaW5lciA9ICh2YWx1ZTogRWxlbWVudCkgPT4gZmFsc2U7XG4gICAgZS5leHRyYUVsZW1lbnRPcHRpb25zID0gW107XG4gICAgZS5kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgZS5wbHVnaW5zID0gW107XG4gICAgZS5wbHVnaW5zQnlLZXkgPSB7fTtcbiAgICBlLm5lc3RlZFN0cnVjdHVyZUJ5S2V5ID0ge307XG5cbiAgICAvLyB3aXRoT3ZlcnJpZGVzQnlLZXlcbiAgICBmbGF0dGVuRGVlcFBsdWdpbnMoZSwgcGx1Z2lucyk7XG5cbiAgICAvLyDlpoLmnpwgcGx1Z2luLm92ZXJyaWRlQnlLZXkg5a2Y5Zyo77yM5YiZ5oqKIHBsdWdpbi5vdmVycmlkZUJ5S2V5IOS4reeahOaJgOaciSBrZXkg6KaG55uW5YiwIGVkaXRvci5wbHVnaW5zQnlLZXkg5LitXG4gICAgZWRpdG9yLnBsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgICBpZiAocGx1Z2luLm92ZXJyaWRlQnlLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BsdWdpbnMgPSBlZGl0b3IucGx1Z2lucy5tYXAocCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlUGx1Z2luc0J5S2V5PFQsIHt9PihwLCBwbHVnaW4ub3ZlcnJpZGVCeUtleSBhcyBhbnkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGVkaXRvci5wbHVnaW5zID0gW107XG4gICAgICAgICAgICBlZGl0b3IucGx1Z2luc0J5S2V5ID0ge307XG5cbiAgICAgICAgICAgIC8vIOWGjeasoeaJgeW5s+WMluimhuebllxuICAgICAgICAgICAgZmxhdHRlbkRlZXBQbHVnaW5zKGVkaXRvciwgbmV3UGx1Z2lucyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIHdpdGhPdmVycmlkZXNcbiAgICBlLnBsdWdpbnMuZm9yRWFjaCgocGx1Z2luOiBXaXRoVGhlUGx1Z2luKSA9PiB7XG4gICAgICAgIGlmIChwbHVnaW4ud2l0aE92ZXJyaWRlcykge1xuICAgICAgICAgICAgZSA9IHBsdWdpbi53aXRoT3ZlcnJpZGVzKGUsIHBsdWdpbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlO1xufTtcbiJdfQ==
|