@worktile/theia 1.2.7 → 1.2.11
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 +802 -162
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/inline-toolbar/inline-toolbar.component.d.ts +24 -0
- package/components/inline-toolbar/inline-toolbar.component.scss +18 -0
- package/components/nav-split-line/nav-split-line.component.d.ts +6 -1
- package/components/toolbar-dropdown/toolbar-dropdown.component.scss +3 -0
- package/components/toolbar-item/toolbar-item.component.d.ts +14 -5
- package/constants/code.d.ts +7 -7
- package/constants/node-types.d.ts +0 -1
- package/constants/toolbar.d.ts +6 -2
- package/custom-types.d.ts +1 -0
- package/editor.component.d.ts +6 -4
- package/editor.module.d.ts +59 -52
- package/esm2015/components/color-select/color-select.component.js +3 -2
- package/esm2015/components/inline-toolbar/inline-toolbar.component.js +136 -0
- package/esm2015/components/nav-split-line/nav-split-line.component.js +26 -5
- package/esm2015/components/toolbar-base-item/toolbar-base-item.component.js +3 -2
- package/esm2015/components/toolbar-item/toolbar-item.component.js +70 -24
- package/esm2015/constants/code.js +7 -7
- package/esm2015/constants/node-types.js +1 -2
- package/esm2015/constants/toolbar.js +37 -5
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +24 -19
- package/esm2015/editor.module.js +20 -8
- package/esm2015/interfaces/toolbar.js +1 -1
- package/esm2015/plugins/code/code.component.js +13 -8
- package/esm2015/plugins/common/auto-insert-data..js +2 -3
- package/esm2015/plugins/common/get-fragment.plugin.js +4 -4
- package/esm2015/plugins/deserializers/deserialize-html.plugin.js +8 -1
- package/esm2015/plugins/image/image.plugin.js +1 -2
- package/esm2015/plugins/index.js +8 -4
- package/esm2015/plugins/link/link.plugin.js +7 -2
- package/esm2015/plugins/list/list.plugin.js +9 -9
- package/esm2015/plugins/list/queries/get-start-list-item.js +9 -2
- package/esm2015/plugins/list/queries/is-selection-in-same-list-item.js +17 -0
- package/esm2015/plugins/node-id/node-id.plugin.js +7 -2
- package/esm2015/plugins/paint-format/options.js +54 -0
- package/esm2015/plugins/paint-format/paint-format.editor.js +67 -0
- package/esm2015/plugins/placeholder/placeholder.component.js +75 -0
- package/esm2015/plugins/public-api.js +2 -1
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +76 -0
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +75 -0
- package/esm2015/plugins/quick-insert/quick-insert.editor.js +61 -0
- package/esm2015/plugins/quick-insert/quick-insert.plugint.js +37 -0
- package/esm2015/plugins/table/components/row/row.component.js +3 -1
- package/esm2015/plugins/table/components/table.component.js +6 -3
- package/esm2015/plugins/table/components/td/td.component.js +2 -1
- package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +1 -1
- package/esm2015/plugins/table/table.plugin.js +3 -3
- package/esm2015/plugins/vertical-align/toolbar-item.component.js +11 -6
- package/esm2015/public-api.js +2 -1
- package/esm2015/services/context.service.js +2 -2
- package/esm2015/services/toolbar.service.js +5 -5
- package/esm2015/utils/auto-focus.js +2 -2
- package/esm2015/utils/fragment.js +3 -3
- package/esm2015/utils/is-clean-empty-paragraph.js +32 -0
- package/esm2015/utils/weak-maps.js +2 -1
- package/fesm2015/worktile-theia.js +778 -160
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/toolbar.d.ts +3 -2
- package/package.json +1 -1
- package/plugins/code/code.component.d.ts +3 -2
- package/plugins/list/queries/get-start-list-item.d.ts +8 -2
- package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -0
- package/plugins/paint-format/options.d.ts +2 -0
- package/plugins/paint-format/paint-format.editor.d.ts +7 -0
- package/{components → plugins}/placeholder/placeholder.component.d.ts +5 -6
- package/{components → plugins}/placeholder/placeholder.component.scss +0 -0
- package/plugins/public-api.d.ts +1 -0
- package/plugins/quick-insert/components/quick-insert.component.d.ts +25 -0
- package/plugins/quick-insert/components/quick-insert.component.scss +21 -0
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +29 -0
- package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.scss +21 -0
- package/plugins/quick-insert/quick-insert.editor.d.ts +8 -0
- package/plugins/quick-insert/quick-insert.plugint.d.ts +2 -0
- package/plugins/table/components/table.component.d.ts +1 -0
- package/plugins/vertical-align/toolbar-item.component.d.ts +1 -0
- package/public-api.d.ts +1 -0
- package/services/toolbar.service.d.ts +1 -1
- package/styles/editor.scss +41 -15
- package/styles/index.scss +5 -2
- package/utils/is-clean-empty-paragraph.d.ts +8 -0
- package/utils/weak-maps.d.ts +1 -0
- package/esm2015/components/placeholder/placeholder.component.js +0 -88
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Transforms, Node, Editor, Path } from 'slate';
|
|
2
2
|
import { AngularEditor, getPlainText } from 'slate-angular';
|
|
3
|
-
import { CLIPBOARD_FORMAT_KEY, ElementKinds
|
|
3
|
+
import { CLIPBOARD_FORMAT_KEY, ElementKinds } from '../../constants';
|
|
4
4
|
import * as TheQueries from '../../queries';
|
|
5
5
|
import * as TheTransforms from '../../transforms';
|
|
6
6
|
import { isList } from './queries/is-list';
|
|
@@ -23,6 +23,7 @@ import { TheNumberedListComponent } from './components/numbered-list.component';
|
|
|
23
23
|
import { TheBulletedListComponent } from './components/bulleted-list.component';
|
|
24
24
|
import { TheListItemComponent } from './components/list-item.component';
|
|
25
25
|
import { extractFragment } from '../../utils/fragment';
|
|
26
|
+
import { isSelectionInSameListItem } from './queries/is-selection-in-same-list-item';
|
|
26
27
|
export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
|
|
27
28
|
const { insertBreak, deleteBackward, onKeydown, insertData, setFragmentData, renderElement } = editor;
|
|
28
29
|
const resetBlockTypesListRule = {
|
|
@@ -105,15 +106,14 @@ export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
|
|
|
105
106
|
const fragmentElement = fragmentData[0];
|
|
106
107
|
if (getListTypes().includes(fragmentElement.type)) {
|
|
107
108
|
const startNodes = getStartListItem([fragmentElement.children[0]]);
|
|
108
|
-
// 复制列表中的图片时startNodes长度为零
|
|
109
|
-
if (startNodes.length === 0) {
|
|
110
|
-
setFragmentData(unit);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
109
|
const children = startNodes.concat(fragmentElement.children.slice(1));
|
|
114
|
-
|
|
110
|
+
let fragmentNodes = [
|
|
115
111
|
Object.assign(Object.assign({}, fragmentElement), { children })
|
|
116
112
|
];
|
|
113
|
+
if (isSelectionInSameListItem(editor)) {
|
|
114
|
+
// 仅仅复制列表中的内容
|
|
115
|
+
fragmentNodes = children[0].children;
|
|
116
|
+
}
|
|
117
117
|
const fragment = fragmentNodes.concat(fragmentData.slice(1));
|
|
118
118
|
const domRange = AngularEditor.toDOMRange(editor, selection);
|
|
119
119
|
const contents = domRange.cloneContents();
|
|
@@ -197,7 +197,7 @@ export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
|
|
|
197
197
|
};
|
|
198
198
|
editor.insertData = (data) => {
|
|
199
199
|
const text = data.getData('text/plain');
|
|
200
|
-
const fragment = extractFragment(data
|
|
200
|
+
const fragment = extractFragment(data);
|
|
201
201
|
const aboveEntry = Editor.above(editor, {
|
|
202
202
|
match: n => Editor.isBlock(editor, n) && n.type === ElementKinds.listItem
|
|
203
203
|
});
|
|
@@ -235,4 +235,4 @@ export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
|
|
|
235
235
|
};
|
|
236
236
|
return editor;
|
|
237
237
|
};
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RixPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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LE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIEVkaXRvciwgUGF0aCwgQW5jZXN0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBnZXRQbGFpblRleHQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMsIEVMRU1FTlRfVU5JUVVFX0lEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgaXNMaXN0IH0gZnJvbSAnLi9xdWVyaWVzL2lzLWxpc3QnO1xuaW1wb3J0IHsgaXNJbkxpc3QgfSBmcm9tICcuL3F1ZXJpZXMvaXMtaW4tbGlzdCc7XG5pbXBvcnQgeyBpc0xpc3ROZXN0ZWQgfSBmcm9tICcuL3F1ZXJpZXMvaXMtbGlzdC1uZXN0ZWQnO1xuaW1wb3J0IHsgZ2V0TGlzdFR5cGVzIH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LXR5cGVzJztcbmltcG9ydCB7IGdldFN0YXJ0TGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LXN0YXJ0LWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBpc1NpbmdsZUxpc3RJdGVtIH0gZnJvbSAnLi9xdWVyaWVzL2lzLXNpbmdsZS1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgZ2V0TGlzdEl0ZW1FbnRyeSB9IGZyb20gJy4vcXVlcmllcy9nZXQtbGlzdC1pdGVtLWVudHJ5JztcbmltcG9ydCB7IGhhc0xpc3RJbkxpc3RJdGVtLCBoYXNTdGFibGVMaXN0SW5MaXN0SXRlbSwgaGFzU3RhYmxlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaGFzLWxpc3QtaW4tbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzU2VsZWN0aW9uQXRMaXN0SXRlbVN0YXJ0IH0gZnJvbSAnLi9xdWVyaWVzL2lzLXNlbGVjdGlvbi1hdC1saXN0LWl0ZW0tc3RhcnQnO1xuaW1wb3J0IHsgaW5zZXJ0TGlzdERhdGEgfSBmcm9tICcuL3RyYW5zZm9ybXMvaW5zZXJ0LWxpc3QtZGF0YSc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1VcCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS11cCc7XG5pbXBvcnQgeyBpbnNlcnRMaXN0SXRlbSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1pdGVtJztcbmltcG9ydCB7IHVud3JhcExpc3QgfSBmcm9tICcuL3RyYW5zZm9ybXMvdW53cmFwLWxpc3QnO1xuaW1wb3J0IHsgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QgfSBmcm9tICcuL3RyYW5zZm9ybXMvbW92ZS1saXN0LWl0ZW0tc3VibGlzdC1pdGVtcy10by1saXN0LWl0ZW0tc3VibGlzdCc7XG5pbXBvcnQgeyBnZXRMaXN0Tm9ybWFsaXplciB9IGZyb20gJy4vbm9ybWFsaXplcnMvZ2V0LWxpc3Qtbm9ybWFsaXplcic7XG5pbXBvcnQgeyBvbktleURvd25MaXN0IH0gZnJvbSAnLi9vbi1rZXktZG93bi1saXN0JztcbmltcG9ydCB7IFdpdGhMaXN0T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVGhlTnVtYmVyZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlcmVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUJ1bGxldGVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idWxsZXRlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IGV4dHJhY3RGcmFnbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZyYWdtZW50JztcblxuZXhwb3J0IGNvbnN0IHdpdGhMaXN0ID1cbiAgICAoeyB2YWxpZExpQ2hpbGRyZW5UeXBlcyB9OiBXaXRoTGlzdE9wdGlvbnMgPSB7fSkgPT5cbiAgICAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnNlcnRCcmVhaywgZGVsZXRlQmFja3dhcmQsIG9uS2V5ZG93biwgaW5zZXJ0RGF0YSwgc2V0RnJhZ21lbnREYXRhLCByZW5kZXJFbGVtZW50IH0gPSBlZGl0b3I7XG5cbiAgICAgICAgY29uc3QgcmVzZXRCbG9ja1R5cGVzTGlzdFJ1bGUgPSB7XG4gICAgICAgICAgICB0eXBlczogW0VsZW1lbnRLaW5kcy5saXN0SXRlbV0sXG4gICAgICAgICAgICBkZWZhdWx0VHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCxcbiAgICAgICAgICAgIG9uUmVzZXQ6IChfZWRpdG9yOiBFZGl0b3IpID0+IHVud3JhcExpc3QoX2VkaXRvcilcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3IuaW5zZXJ0QnJlYWsgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuXG4gICAgICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaXNWb2lkID0gRWRpdG9yLmlzVm9pZChlZGl0b3IsIG5vZGUpO1xuICAgICAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGlzdEVudHJ5ID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgIGlmIChsaXN0RW50cnkpIHtcbiAgICAgICAgICAgICAgICBsZXQgbW92ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBsaXN0LCBsaXN0SXRlbSB9ID0gbGlzdEVudHJ5O1xuICAgICAgICAgICAgICAgIGNvbnN0IFtsaXN0SXRlbU5vZGUsIGxpc3RJdGVtUGF0aF0gPSBsaXN0SXRlbTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3Iuc2VsZWN0aW9uLmZvY3VzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBFZGl0b3IuaXNTdGFydChlZGl0b3IsIGN1cnNvciwgbGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAgICAgICAgIC8vIGRlcHJlY2F0ZWRcbiAgICAgICAgICAgICAgICAvLyDlpoLmnpzmnInlrZDnuqdcbiAgICAgICAgICAgICAgICBpZiAoaGFzTGlzdEluTGlzdEl0ZW0obGlzdEl0ZW1Ob2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgc2VsZWN0aW9uIGlzIGF0IHRoZSBlbmQgb2YgbGksXG4gICAgICAgICAgICAgICAgICAgICAqIGluc2VydCBiZWxvdyBsaSB3aGVyZSBjaGlsZHJlbiB3aWxsIGJlIG1vdmVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKEVkaXRvci5pc0VuZChlZGl0b3IsIGN1cnNvciwgbGlzdEl0ZW1QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCwgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGF0OiBQYXRoLm5leHQobGlzdEl0ZW1QYXRoKSwgc2VsZWN0OiB0cnVlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICog5aaC5p6c6YCJ5Yy65piv5ZyobGlzdEl0ZW3nmoTlvIDlpLTvvIzliJnlnKhsaXN0SXRlbeS4iuaWueaPkuWFpVxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5saXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsIGNoaWxkcmVuOiBbeyB0ZXh0OiAnJyB9XSB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBhdDogbGlzdEl0ZW1QYXRoIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyDlpoLmnpzpgInmi6nnmoRsaXN0SXRlbeS4uuepuuWImeWwhuWFtuWQkeS4iuenu+WKqFxuICAgICAgICAgICAgICAgIGlmIChpc1N0YXJ0ICYmIFRoZVF1ZXJpZXMuaXNCbG9ja0Fib3ZlRW1wdHkoZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgICAgICBtb3ZlZCA9IG1vdmVMaXN0SXRlbVVwKGVkaXRvciwgeyBsaXN0LCBsaXN0SXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vdmVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZGlkUmVzZXQgPSBUaGVUcmFuc2Zvcm1zLm9uS2V5RG93blJlc2V0QmxvY2tUeXBlKHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNldEJsb2NrVHlwZXNMaXN0UnVsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVkaWNhdGU6ICgpID0+ICFtb3ZlZCAmJiBpc1N0YXJ0ICYmIFRoZVF1ZXJpZXMuaXNCbG9ja0Fib3ZlRW1wdHkoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSkobnVsbCwgZWRpdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlkUmVzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEFkZCBhIG5ldyBsaXN0IGl0ZW0gaWYgc2VsZWN0aW9uIGlzIGluIGEgTElTVF9JVEVNID4gcC50eXBlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmICghbW92ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0ZWQgPSBpbnNlcnRMaXN0SXRlbShlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3Iuc2V0RnJhZ21lbnREYXRhID0gdW5pdCA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICAgICAgY29uc3QgW3N0YXJ0XSA9IEVkaXRvci5lZGdlcyhlZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICBpZiAoaXNJbkxpc3QoZWRpdG9yLCBzdGFydCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudERhdGEgPSBlZGl0b3IuZ2V0RnJhZ21lbnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudEVsZW1lbnQgPSBmcmFnbWVudERhdGFbMF0gYXMgRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoZ2V0TGlzdFR5cGVzKCkuaW5jbHVkZXMoZnJhZ21lbnRFbGVtZW50LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0Tm9kZXMgPSBnZXRTdGFydExpc3RJdGVtKFtmcmFnbWVudEVsZW1lbnQuY2hpbGRyZW5bMF1dKTtcbiAgICAgICAgICAgICAgICAgICAgLy8g5aSN5Yi25YiX6KGo5Lit55qE5Zu+54mH5pe2c3RhcnROb2Rlc+mVv+W6puS4uumbtlxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEZyYWdtZW50RGF0YSh1bml0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHN0YXJ0Tm9kZXMuY29uY2F0KChmcmFnbWVudEVsZW1lbnQuY2hpbGRyZW4gYXMgTm9kZVtdKS5zbGljZSgxKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50Tm9kZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZnJhZ21lbnRFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0gYXMgTm9kZVtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50Tm9kZXMuY29uY2F0KGZyYWdtZW50RGF0YS5zbGljZSgxKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJhbmdlID0gQW5ndWxhckVkaXRvci50b0RPTVJhbmdlKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudHMgPSBkb21SYW5nZS5jbG9uZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ09iaiA9IEpTT04uc3RyaW5naWZ5KGZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZCA9IHdpbmRvdy5idG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdPYmopKTtcbiAgICAgICAgICAgICAgICAgICAgdW5pdC5zZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWAsIGVuY29kZWQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgZGl2LmFwcGVuZENoaWxkKGNvbnRlbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoJ3RleHQvaHRtbCcsIGRpdi5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoJ3RleHQvcGxhaW4nLCBnZXRQbGFpblRleHQoZGl2KSk7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldEZyYWdtZW50RGF0YSh1bml0KTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG5cbiAgICAgICAgICAgIGlmIChyZXMgJiYgaXNTZWxlY3Rpb25BdExpc3RJdGVtU3RhcnQoZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGlzdCwgbGlzdEl0ZW0gfSA9IHJlcztcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBsaXN0UGF0aF0gPSBsaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IFtsaXN0SXRlbU5vZGUsIGxpc3RJdGVtUGF0aF0gPSBsaXN0SXRlbTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzTGlzdEl0ZW1QYXRoID0gVGhlUXVlcmllcy5nZXRQcmV2aW91c1BhdGgobGlzdEl0ZW1QYXRoKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RJdGVtUGF0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVQb2ludCA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gUGF0aC5wYXJlbnQoYmVmb3JlUG9pbnQucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBOb2RlLmdldChlZGl0b3IsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzVm9pZChlZGl0b3IsIHBhcmVudE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBbRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQ6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnVud3JhcE5vZGVzQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlzdEl0ZW1QYXRoICYmIGhhc1N0YWJsZUxpc3RJbkxpc3RJdGVtKGxpc3RJdGVtTm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3ByZXZpb3VzTGlzdEl0ZW1Ob2RlXSA9IEVkaXRvci5ub2RlKGVkaXRvciwgcHJldmlvdXNMaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUxpc3RJdGVtOiBsaXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9MaXN0SXRlbTogW3ByZXZpb3VzTGlzdEl0ZW1Ob2RlIGFzIEFuY2VzdG9yLCBwcmV2aW91c0xpc3RJdGVtUGF0aF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge31cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gbW92ZSBsaXN0SXRlbSBjaGlsZHJlbiB0byBiZWZvcmUgbGlzdEl0ZW1cbiAgICAgICAgICAgICAgICBpZiAobGlzdEl0ZW1Ob2RlLmNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZihlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVQb2ludCA9IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IEVkaXRvci5zdGFydChlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IEVkaXRvci5lbmQoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNJbkZpcnN0Q2hpbGQgPSAhaXNMaXN0TmVzdGVkKGVkaXRvciwgbGlzdFBhdGgpICYmIFRoZVF1ZXJpZXMuaXNGaXJzdENoaWxkKGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0byA9IGlzSW5GaXJzdENoaWxkID8gbGlzdFBhdGggOiBQYXRoLm5leHQoUGF0aC5wYXJlbnQoYmVmb3JlUG9pbnQucGF0aCkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiB0eXBlc1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQ6IEVkaXRvci5yYW5nZShlZGl0b3IsIHN0YXJ0UG9pbnQsIGVuZFBvaW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogbm9kZSA9PiBsaXN0SXRlbU5vZGUuY2hpbGRyZW4uaW5jbHVkZXMobm9kZSBhcyBhbnkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogYmVmb3JlUGF0aFJlZi51bnJlZigpIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzSW5GaXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGVwcmVjYXRlZFxuICAgICAgICAgICAgICAgIGlmICghaXNMaXN0TmVzdGVkKGVkaXRvciwgbGlzdFBhdGgpICYmIFRoZVF1ZXJpZXMuaXNGaXJzdENoaWxkKGxpc3RJdGVtUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdW53cmFwTGlzdChlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBkYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZXh0cmFjdEZyYWdtZW50KGRhdGEsIEVMRU1FTlRfVU5JUVVFX0lEKTtcbiAgICAgICAgICAgIGNvbnN0IGFib3ZlRW50cnkgPSBFZGl0b3IuYWJvdmUoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICAgICAgICAgIGlzTGlzdChmcmFnbWVudFswXSBhcyBFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgICAgICBhYm92ZUVudHJ5ICYmXG4gICAgICAgICAgICAgICAgICAgICFpc1NpbmdsZUxpc3RJdGVtKGZyYWdtZW50WzBdKSAmJlxuICAgICAgICAgICAgICAgICAgICBoYXNTdGFibGVMaXN0SXRlbShyZXMubGlzdEl0ZW1bMF0pXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydExpc3REYXRhKGVkaXRvciwgeyBmcm9tTGlzdDogZnJhZ21lbnRbMF0gYXMgRWxlbWVudCwgdG9MaXN0SXRlbUVudHJ5OiBhYm92ZUVudHJ5IH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5vbktleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ29udGludWUgPSAhb25LZXlEb3duTGlzdChldmVudCwgZWRpdG9yKTtcbiAgICAgICAgICAgIGlmIChpc0NvbnRpbnVlKSB7XG4gICAgICAgICAgICAgICAgb25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IGdldExpc3ROb3JtYWxpemVyKGVkaXRvciwgeyB2YWxpZExpQ2hpbGRyZW5UeXBlczogdmFsaWRMaUNoaWxkcmVuVHlwZXMgfSk7XG5cbiAgICAgICAgZWRpdG9yLnJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVOdW1iZXJlZExpc3RDb21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRoZUJ1bGxldGVkTGlzdENvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVMaXN0SXRlbUNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfTtcbiJdfQ==
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxD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QUFDO0lBQ2xDLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIEVkaXRvciwgUGF0aCwgQW5jZXN0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBnZXRQbGFpblRleHQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBpc0xpc3QgfSBmcm9tICcuL3F1ZXJpZXMvaXMtbGlzdCc7XG5pbXBvcnQgeyBpc0luTGlzdCB9IGZyb20gJy4vcXVlcmllcy9pcy1pbi1saXN0JztcbmltcG9ydCB7IGlzTGlzdE5lc3RlZCB9IGZyb20gJy4vcXVlcmllcy9pcy1saXN0LW5lc3RlZCc7XG5pbXBvcnQgeyBnZXRMaXN0VHlwZXMgfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LWxpc3QtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3RhcnRMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzU2luZ2xlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2luZ2xlLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuaW1wb3J0IHsgaGFzTGlzdEluTGlzdEl0ZW0sIGhhc1N0YWJsZUxpc3RJbkxpc3RJdGVtLCBoYXNTdGFibGVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9oYXMtbGlzdC1pbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25BdExpc3RJdGVtU3RhcnQgfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2VsZWN0aW9uLWF0LWxpc3QtaXRlbS1zdGFydCc7XG5pbXBvcnQgeyBpbnNlcnRMaXN0RGF0YSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhJztcbmltcG9ydCB7IG1vdmVMaXN0SXRlbVVwIH0gZnJvbSAnLi90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLXVwJztcbmltcG9ydCB7IGluc2VydExpc3RJdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2luc2VydC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgdW53cmFwTGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy91bndyYXAtbGlzdCc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0JztcbmltcG9ydCB7IGdldExpc3ROb3JtYWxpemVyIH0gZnJvbSAnLi9ub3JtYWxpemVycy9nZXQtbGlzdC1ub3JtYWxpemVyJztcbmltcG9ydCB7IG9uS2V5RG93bkxpc3QgfSBmcm9tICcuL29uLWtleS1kb3duLWxpc3QnO1xuaW1wb3J0IHsgV2l0aExpc3RPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUaGVOdW1iZXJlZExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGxldGVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25JblNhbWVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9pcy1zZWxlY3Rpb24taW4tc2FtZS1saXN0LWl0ZW0nO1xuXG5leHBvcnQgY29uc3Qgd2l0aExpc3QgPVxuICAgICh7IHZhbGlkTGlDaGlsZHJlblR5cGVzIH06IFdpdGhMaXN0T3B0aW9ucyA9IHt9KSA9PlxuICAgIChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICBjb25zdCB7IGluc2VydEJyZWFrLCBkZWxldGVCYWNrd2FyZCwgb25LZXlkb3duLCBpbnNlcnREYXRhLCBzZXRGcmFnbWVudERhdGEsIHJlbmRlckVsZW1lbnQgfSA9IGVkaXRvcjtcblxuICAgICAgICBjb25zdCByZXNldEJsb2NrVHlwZXNMaXN0UnVsZSA9IHtcbiAgICAgICAgICAgIHR5cGVzOiBbRWxlbWVudEtpbmRzLmxpc3RJdGVtXSxcbiAgICAgICAgICAgIGRlZmF1bHRUeXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICAgICAgb25SZXNldDogKF9lZGl0b3I6IEVkaXRvcikgPT4gdW53cmFwTGlzdChfZWRpdG9yKVxuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5pbnNlcnRCcmVhayA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG5cbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc1ZvaWQgPSBFZGl0b3IuaXNWb2lkKGVkaXRvciwgbm9kZSk7XG4gICAgICAgICAgICBpZiAoaXNWb2lkKSB7XG4gICAgICAgICAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaXN0RW50cnkgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICAgICAgaWYgKGxpc3RFbnRyeSkge1xuICAgICAgICAgICAgICAgIGxldCBtb3ZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxpc3QsIGxpc3RJdGVtIH0gPSBsaXN0RW50cnk7XG4gICAgICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5zZWxlY3Rpb24uZm9jdXM7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTdGFydCA9IEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpO1xuXG4gICAgICAgICAgICAgICAgLy8gZGVwcmVjYXRlZFxuICAgICAgICAgICAgICAgIC8vIOWmguaenOacieWtkOe6p1xuICAgICAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiBzZWxlY3Rpb24gaXMgYXQgdGhlIGVuZCBvZiBsaSxcbiAgICAgICAgICAgICAgICAgICAgICogaW5zZXJ0IGJlbG93IGxpIHdoZXJlIGNoaWxkcmVuIHdpbGwgYmUgbW92ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzRW5kKGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLCBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYXQ6IFBhdGgubmV4dChsaXN0SXRlbVBhdGgpLCBzZWxlY3Q6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiDlpoLmnpzpgInljLrmmK/lnKhsaXN0SXRlbeeahOW8gOWktO+8jOWImeWcqGxpc3RJdGVt5LiK5pa55o+S5YWlXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCwgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGF0OiBsaXN0SXRlbVBhdGggfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIOWmguaenOmAieaLqeeahGxpc3RJdGVt5Li656m65YiZ5bCG5YW25ZCR5LiK56e75YqoXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVkID0gbW92ZUxpc3RJdGVtVXAoZWRpdG9yLCB7IGxpc3QsIGxpc3RJdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW92ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaWRSZXNldCA9IFRoZVRyYW5zZm9ybXMub25LZXlEb3duUmVzZXRCbG9ja1R5cGUoe1xuICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc2V0QmxvY2tUeXBlc0xpc3RSdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZTogKCkgPT4gIW1vdmVkICYmIGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KShudWxsLCBlZGl0b3IpO1xuICAgICAgICAgICAgICAgIGlmIChkaWRSZXNldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQWRkIGEgbmV3IGxpc3QgaXRlbSBpZiBzZWxlY3Rpb24gaXMgaW4gYSBMSVNUX0lURU0gPiBwLnR5cGUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKCFtb3ZlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZCA9IGluc2VydExpc3RJdGVtKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5zZXRGcmFnbWVudERhdGEgPSB1bml0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgICAgICBjb25zdCBbc3RhcnRdID0gRWRpdG9yLmVkZ2VzKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIGlmIChpc0luTGlzdChlZGl0b3IsIHN0YXJ0KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RGF0YSA9IGVkaXRvci5nZXRGcmFnbWVudCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RWxlbWVudCA9IGZyYWdtZW50RGF0YVswXSBhcyBFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChnZXRMaXN0VHlwZXMoKS5pbmNsdWRlcyhmcmFnbWVudEVsZW1lbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnROb2RlcyA9IGdldFN0YXJ0TGlzdEl0ZW0oW2ZyYWdtZW50RWxlbWVudC5jaGlsZHJlblswXV0gYXMgRWxlbWVudFtdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBzdGFydE5vZGVzLmNvbmNhdCgoZnJhZ21lbnRFbGVtZW50LmNoaWxkcmVuIGFzIEVsZW1lbnRbXSkuc2xpY2UoMSkpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnROb2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5mcmFnbWVudEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSBhcyBOb2RlW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOS7heS7heWkjeWItuWIl+ihqOS4reeahOWGheWuuVxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnROb2RlcyA9IGNoaWxkcmVuWzBdLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZnJhZ21lbnROb2Rlcy5jb25jYXQoZnJhZ21lbnREYXRhLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tUmFuZ2UgPSBBbmd1bGFyRWRpdG9yLnRvRE9NUmFuZ2UoZWRpdG9yLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50cyA9IGRvbVJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nT2JqID0gSlNPTi5zdHJpbmdpZnkoZnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gd2luZG93LmJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ09iaikpO1xuICAgICAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCwgZW5jb2RlZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoY29udGVudHMpO1xuICAgICAgICAgICAgICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gICAgICAgICAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9odG1sJywgZGl2LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9wbGFpbicsIGdldFBsYWluVGV4dChkaXYpKTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0RnJhZ21lbnREYXRhKHVuaXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5kZWxldGVCYWNrd2FyZCA9IHVuaXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcblxuICAgICAgICAgICAgaWYgKHJlcyAmJiBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydChlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBsaXN0LCBsaXN0SXRlbSB9ID0gcmVzO1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGxpc3RQYXRoXSA9IGxpc3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNMaXN0SXRlbVBhdGggPSBUaGVRdWVyaWVzLmdldFByZXZpb3VzUGF0aChsaXN0SXRlbVBhdGgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlzdEl0ZW1QYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBQYXRoLnBhcmVudChiZWZvcmVQb2ludC5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IE5vZGUuZ2V0KGVkaXRvciwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNWb2lkKGVkaXRvciwgcGFyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy51bndyYXBOb2Rlc0J5VHlwZShlZGl0b3IsIFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNMaXN0SXRlbVBhdGggJiYgaGFzU3RhYmxlTGlzdEluTGlzdEl0ZW0obGlzdEl0ZW1Ob2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldmlvdXNMaXN0SXRlbU5vZGVdID0gRWRpdG9yLm5vZGUoZWRpdG9yLCBwcmV2aW91c0xpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tTGlzdEl0ZW06IGxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0xpc3RJdGVtOiBbcHJldmlvdXNMaXN0SXRlbU5vZGUgYXMgQW5jZXN0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBtb3ZlIGxpc3RJdGVtIGNoaWxkcmVuIHRvIGJlZm9yZSBsaXN0SXRlbVxuICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUGF0aFJlZiA9IEVkaXRvci5wYXRoUmVmKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gRWRpdG9yLmVuZChlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0luRmlyc3RDaGlsZCA9ICFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvID0gaXNJbkZpcnN0Q2hpbGQgPyBsaXN0UGF0aCA6IFBhdGgubmV4dChQYXRoLnBhcmVudChiZWZvcmVQb2ludC5wYXRoKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHR5cGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdDogRWRpdG9yLnJhbmdlKGVkaXRvciwgc3RhcnRQb2ludCwgZW5kUG9pbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5pbmNsdWRlcyhub2RlIGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBiZWZvcmVQYXRoUmVmLnVucmVmKCkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNJbkZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBkZXByZWNhdGVkXG4gICAgICAgICAgICAgICAgaWYgKCFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICB1bndyYXBMaXN0KGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5pbnNlcnREYXRhID0gKGRhdGE6IERhdGFUcmFuc2ZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGRhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBleHRyYWN0RnJhZ21lbnQoZGF0YSk7XG4gICAgICAgICAgICBjb25zdCBhYm92ZUVudHJ5ID0gRWRpdG9yLmFib3ZlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVkaXRvci5pc0Jsb2NrKGVkaXRvciwgbikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0xpc3QoZnJhZ21lbnRbMF0gYXMgRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAgICAgYWJvdmVFbnRyeSAmJlxuICAgICAgICAgICAgICAgICAgICAhaXNTaW5nbGVMaXN0SXRlbShmcmFnbWVudFswXSkgJiZcbiAgICAgICAgICAgICAgICAgICAgaGFzU3RhYmxlTGlzdEl0ZW0ocmVzLmxpc3RJdGVtWzBdKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRMaXN0RGF0YShlZGl0b3IsIHsgZnJvbUxpc3Q6IGZyYWdtZW50WzBdIGFzIEVsZW1lbnQsIHRvTGlzdEl0ZW1FbnRyeTogYWJvdmVFbnRyeSB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5zZXJ0RGF0YShkYXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5RG93bkxpc3QoZXZlbnQsIGVkaXRvcik7XG4gICAgICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSBnZXRMaXN0Tm9ybWFsaXplcihlZGl0b3IsIHsgdmFsaWRMaUNoaWxkcmVuVHlwZXM6IHZhbGlkTGlDaGlsZHJlblR5cGVzIH0pO1xuXG4gICAgICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGhlTnVtYmVyZWRMaXN0Q29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVCdWxsZXRlZExpc3RDb21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGhlTGlzdEl0ZW1Db21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZWRpdG9yO1xuICAgIH07XG4iXX0=
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { ElementKinds } from '../../../constants';
|
|
2
|
+
import { getListTypes } from './get-list-types';
|
|
3
|
+
/**
|
|
4
|
+
* 获取 List 中 ListItems,过滤掉空列表嵌套
|
|
5
|
+
* @param node
|
|
6
|
+
* @param initialValue
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
2
9
|
export const getStartListItem = (node, initialValue) => {
|
|
3
10
|
if (!initialValue) {
|
|
4
11
|
initialValue = [];
|
|
5
12
|
}
|
|
6
13
|
if (node) {
|
|
7
14
|
return node.reduce((result, current) => {
|
|
8
|
-
if (current.type
|
|
15
|
+
if ((current.type === ElementKinds.listItem && !getListTypes().includes(current.children[0].type))) {
|
|
9
16
|
result.push(current);
|
|
10
17
|
}
|
|
11
18
|
else {
|
|
@@ -17,4 +24,4 @@ export const getStartListItem = (node, initialValue) => {
|
|
|
17
24
|
}, initialValue);
|
|
18
25
|
}
|
|
19
26
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXN0YXJ0LWxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2xpc3QvcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWUsRUFBRSxZQUF3QixFQUFFLEVBQUU7SUFDMUUsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNmLFlBQVksR0FBRyxFQUFFLENBQUM7S0FDckI7SUFDRCxJQUFJLElBQUksRUFBRTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQWlCLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxRQUFRLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNoRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3hCO2lCQUFNO2dCQUNILElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtvQkFDbEIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQzNEO2FBQ0o7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDcEI7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgRWxlbWVudEtpbmRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldExpc3RUeXBlcyB9IGZyb20gJy4vZ2V0LWxpc3QtdHlwZXMnO1xuXG4vKipcbiAqIOiOt+WPliBMaXN0IOS4rSBMaXN0SXRlbXPvvIzov4fmu6TmjonnqbrliJfooajltYzlpZdcbiAqIEBwYXJhbSBub2RlIFxuICogQHBhcmFtIGluaXRpYWxWYWx1ZSBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgY29uc3QgZ2V0U3RhcnRMaXN0SXRlbSA9IChub2RlOiBFbGVtZW50W10sIGluaXRpYWxWYWx1ZT86IEVsZW1lbnRbXSkgPT4ge1xuICAgIGlmICghaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgIGluaXRpYWxWYWx1ZSA9IFtdO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5yZWR1Y2UoKHJlc3VsdDogRWxlbWVudFtdLCBjdXJyZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoKGN1cnJlbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmxpc3RJdGVtICYmICFnZXRMaXN0VHlwZXMoKS5pbmNsdWRlcyhjdXJyZW50LmNoaWxkcmVuWzBdLnR5cGUpKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBnZXRTdGFydExpc3RJdGVtKGN1cnJlbnQuY2hpbGRyZW4gYXMgRWxlbWVudFtdLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIGluaXRpYWxWYWx1ZSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Range, Path } from 'slate';
|
|
2
|
+
import { getAboveByType } from '../../../queries/get-above-by-type';
|
|
3
|
+
import { ElementKinds } from '../../../constants/node-types';
|
|
4
|
+
/**
|
|
5
|
+
* Is the selection in same li
|
|
6
|
+
*/
|
|
7
|
+
export const isSelectionInSameListItem = (editor) => {
|
|
8
|
+
const { selection } = editor;
|
|
9
|
+
if (!selection) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const [start, end] = Range.edges(selection);
|
|
13
|
+
const startListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: start.path });
|
|
14
|
+
const endListItemEntry = getAboveByType(editor, ElementKinds.listItem, { at: end.path });
|
|
15
|
+
return startListItemEntry && endListItemEntry && Path.equals(startListItemEntry[1], endListItemEntry[1]);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtc2VsZWN0aW9uLWluLXNhbWUtbGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbGlzdC9xdWVyaWVzL2lzLXNlbGVjdGlvbi1pbi1zYW1lLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDckMsTUFBYyxFQUNoQixFQUFFO0lBQ0EsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU3QixJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0YsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekYsT0FBTyxrQkFBa0IsSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdldEFib3ZlQnlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcXVlcmllcy9nZXQtYWJvdmUtYnktdHlwZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5cbi8qKlxuICogSXMgdGhlIHNlbGVjdGlvbiBpbiBzYW1lIGxpXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtID0gKFxuICAgIGVkaXRvcjogRWRpdG9yXG4pID0+IHtcbiAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuXG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IFJhbmdlLmVkZ2VzKHNlbGVjdGlvbik7XG4gICAgY29uc3Qgc3RhcnRMaXN0SXRlbUVudHJ5ID0gZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0sIHsgYXQ6IHN0YXJ0LnBhdGggfSk7XG4gICAgY29uc3QgZW5kTGlzdEl0ZW1FbnRyeSA9IGdldEFib3ZlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtLCB7IGF0OiBlbmQucGF0aCB9KTtcblxuICAgIHJldHVybiBzdGFydExpc3RJdGVtRW50cnkgJiYgZW5kTGlzdEl0ZW1FbnRyeSAmJiBQYXRoLmVxdWFscyhzdGFydExpc3RJdGVtRW50cnlbMV0sIGVuZExpc3RJdGVtRW50cnlbMV0pO1xufTsiXX0=
|
|
@@ -2,9 +2,10 @@ import { Element } from 'slate';
|
|
|
2
2
|
import * as TheQueries from '../../queries';
|
|
3
3
|
import * as TheTransforms from '../../transforms';
|
|
4
4
|
import { _ } from '../../utils/lodash';
|
|
5
|
+
import { deleteElementKey } from '../../utils/fragment';
|
|
5
6
|
export const withNodeID = ({ idKey = 'id', idCreator = () => Date.now(), filterText = true, filter = () => true } = {}) => (e) => {
|
|
6
7
|
const editor = e;
|
|
7
|
-
const { apply } = editor;
|
|
8
|
+
const { apply, getFragment } = editor;
|
|
8
9
|
const idPropsCreator = () => ({ [idKey]: idCreator() });
|
|
9
10
|
editor.removedIDs = new Set();
|
|
10
11
|
editor.apply = (operation) => {
|
|
@@ -43,6 +44,10 @@ export const withNodeID = ({ idKey = 'id', idCreator = () => Date.now(), filterT
|
|
|
43
44
|
}
|
|
44
45
|
return apply(operation);
|
|
45
46
|
};
|
|
47
|
+
editor.getFragment = () => {
|
|
48
|
+
const fragment = _.cloneDeep(getFragment());
|
|
49
|
+
return deleteElementKey(fragment, idKey);
|
|
50
|
+
};
|
|
46
51
|
return editor;
|
|
47
52
|
};
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pZC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub2RlLWlkL25vZGUtaWQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxPQUFPLEVBQXVDLE1BQU0sT0FBTyxDQUFDO0FBQ2hGLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FDbkIsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQXNCLEVBQUUsRUFBRSxFQUFFLENBQ2pILENBQW1CLENBQUksRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLENBQWlDLENBQUM7SUFFakQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFO1FBQ3BDLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDbEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRyxDQUFDLENBQUM7WUFFRixzQ0FBc0M7WUFDdEMsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDNUI7WUFFRCw0REFBNEQ7WUFDNUQsYUFBYSxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQixJQUFJO2dCQUNKLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0gsTUFBTSxFQUFFLFNBQVM7aUJBQ3BCO2FBQ0osQ0FBQyxDQUFDO1lBRUgsT0FBTyxLQUFLLGlDQUNMLFNBQVMsS0FDWixJQUFJLElBQ04sQ0FBQztTQUNOO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFLLFNBQVMsQ0FBQyxVQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVGLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsT0FBTyxLQUFLLGlDQUNMLFNBQVMsS0FDWixVQUFVLGtDQUNILFNBQVMsQ0FBQyxVQUFVLEtBQ3ZCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUVqQixDQUFDO1NBQ047UUFFRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUssU0FBUyxDQUFDLFVBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUUsU0FBUyxDQUFDLFVBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNuRTtRQUVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQWlCLENBQUM7SUFDN0QsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZUVudHJ5LCBFbGVtZW50LCBOb2RlLCBFZGl0b3IsIE9wZXJhdGlvbiwgRGVzY2VuZGFudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBfIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IGRlbGV0ZUVsZW1lbnRLZXkgfSBmcm9tICcuLi8uLi91dGlscy9mcmFnbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aE5vZGVJRFByb3BzIGV4dGVuZHMgUXVlcnlPcHRpb25zIHtcbiAgICAvLyBLZXkgdXNlZCBmb3IgdGhlIGlkLiBEZWZhdWx0IGlzIGBpZGAuXG4gICAgaWRLZXk/OiBzdHJpbmc7XG4gICAgLy8gSUQgZmFjdG9yeSwgZS5nLiBgdXVpZGBcbiAgICBpZENyZWF0b3I/OiAoKSA9PiB2b2lkO1xuICAgIC8vIEZpbHRlciBgVGV4dGAgbm9kZXMuXG4gICAgZmlsdGVyVGV4dD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUlEID1cbiAgICAoeyBpZEtleSA9ICdpZCcsIGlkQ3JlYXRvciA9ICgpID0+IERhdGUubm93KCksIGZpbHRlclRleHQgPSB0cnVlLCBmaWx0ZXIgPSAoKSA9PiB0cnVlIH06IFdpdGhOb2RlSURQcm9wcyA9IHt9KSA9PlxuICAgIDxUIGV4dGVuZHMgRWRpdG9yPihlOiBUKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IGUgYXMgVCAmIHsgcmVtb3ZlZElEczogU2V0PGFueT4gfTtcblxuICAgICAgICBjb25zdCB7IGFwcGx5LCBnZXRGcmFnbWVudCB9ID0gZWRpdG9yO1xuXG4gICAgICAgIGNvbnN0IGlkUHJvcHNDcmVhdG9yID0gKCkgPT4gKHsgW2lkS2V5XTogaWRDcmVhdG9yKCkgfSk7XG5cbiAgICAgICAgZWRpdG9yLnJlbW92ZWRJRHMgPSBuZXcgU2V0KCk7XG5cbiAgICAgICAgZWRpdG9yLmFwcGx5ID0gKG9wZXJhdGlvbjogT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdpbnNlcnRfbm9kZScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSAoZW50cnk6IE5vZGVFbnRyeTxOb2RlPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbX25vZGVdID0gZW50cnk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoZW50cnkpICYmIGZpbHRlclRleHQgPyBFbGVtZW50LmlzRWxlbWVudChfbm9kZSkgOiBUaGVRdWVyaWVzLmlzRGVzY2VuZGFudChfbm9kZSk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIC8vIGZpeCBjYW4gbm90IGZpbmQgcGF0aCBieSBvcmlnbiBub2RlXG4gICAgICAgICAgICAgICAgbGV0IG5vZGUgPSBvcGVyYXRpb24ubm9kZTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pc0V4dGVuc2libGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IF8uY2xvbmVEZWVwKG5vZGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGl0IHdpbGwgbm90IG92ZXJ3cml0ZSBpZHMgb25jZSBpdCdzIHNldCBhcyBpdCdzIHJlYWQtb25seVxuICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMubWVyZ2VEZWVwVG9Ob2Rlcyh7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogaWRQcm9wc0NyZWF0b3IsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IG5ld0ZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBub2RlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ3NwbGl0X25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgaWQgPSBvcGVyYXRpb24ucHJvcGVydGllc1tpZEtleV07XG4gICAgICAgICAgICAgICAgaWYgKGVkaXRvci5yZW1vdmVkSURzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnJlbW92ZWRJRHMuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRLZXldOiBpZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ21lcmdlX25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBlZGl0b3IucmVtb3ZlZElEcy5hZGQoKG9wZXJhdGlvbi5wcm9wZXJ0aWVzIGFzIEVsZW1lbnQpW2lkS2V5XSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhcHBseShvcGVyYXRpb24pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5nZXRGcmFnbWVudCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gXy5jbG9uZURlZXAoZ2V0RnJhZ21lbnQoKSk7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlRWxlbWVudEtleShmcmFnbWVudCwgaWRLZXkpIGFzIERlc2NlbmRhbnRbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfTtcbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Editor, Range } from 'slate';
|
|
2
|
+
import { MarkProps, ToolbarActionTypes } from '../../constants';
|
|
3
|
+
import { TableEditor } from '../table/table.editor';
|
|
4
|
+
import { PaintFormatEditor } from './paint-format.editor';
|
|
5
|
+
import * as TheTransforms from '../../transforms';
|
|
6
|
+
export const PaintFormatOptions = [
|
|
7
|
+
{
|
|
8
|
+
key: ToolbarActionTypes.undo,
|
|
9
|
+
icon: 'undo',
|
|
10
|
+
name: '撤销',
|
|
11
|
+
execute: (editor) => editor.undo()
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
key: ToolbarActionTypes.redo,
|
|
15
|
+
icon: 'redo',
|
|
16
|
+
name: '重做',
|
|
17
|
+
execute: (editor) => editor.redo()
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
key: ToolbarActionTypes.paintformat,
|
|
21
|
+
icon: 'paintformat',
|
|
22
|
+
name: '格式刷',
|
|
23
|
+
execute: PaintFormatEditor.enableFormatBrush,
|
|
24
|
+
active: PaintFormatEditor.isActive
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: ToolbarActionTypes.clean,
|
|
28
|
+
icon: 'clean',
|
|
29
|
+
name: '清除格式',
|
|
30
|
+
execute: (editor) => {
|
|
31
|
+
const { selection } = editor;
|
|
32
|
+
if (!selection) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (TableEditor.clearMark(editor)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (Range.isCollapsed(selection)) {
|
|
39
|
+
const marks = Editor.marks(editor);
|
|
40
|
+
for (const key of Object.keys(marks)) {
|
|
41
|
+
Editor.removeMark(editor, key);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const unsetMarks = {};
|
|
46
|
+
MarkProps.forEach(key => {
|
|
47
|
+
unsetMarks[key] = null;
|
|
48
|
+
});
|
|
49
|
+
TheTransforms.setMarks(editor, unsetMarks);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQWEsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBa0I7SUFDN0M7UUFDSSxHQUFHLEVBQUUsa0JBQWtCLENBQUMsSUFBSTtRQUM1QixJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRSxJQUFJO1FBQ1YsT0FBTyxFQUFFLENBQUMsTUFBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtLQUNoRDtJQUNEO1FBQ0ksR0FBRyxFQUFFLGtCQUFrQixDQUFDLElBQUk7UUFDNUIsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsSUFBSTtRQUNWLE9BQU8sRUFBRSxDQUFDLE1BQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7S0FDaEQ7SUFDRDtRQUNJLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXO1FBQ25DLElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSxLQUFLO1FBQ1gsT0FBTyxFQUFFLGlCQUFpQixDQUFDLGlCQUFpQjtRQUM1QyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtLQUNyQztJQUNEO1FBQ0ksR0FBRyxFQUFFLGtCQUFrQixDQUFDLEtBQUs7UUFDN0IsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxDQUFDLE1BQWlCLEVBQUUsRUFBRTtZQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ1osT0FBTzthQUNWO1lBRUQsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQixPQUFPO2FBQ1Y7WUFFRCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDbEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ2xDO2FBQ0o7aUJBQU07Z0JBQ0gsTUFBTSxVQUFVLEdBQTJDLEVBQUUsQ0FBQztnQkFDOUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDcEIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDOUM7UUFDTCxDQUFDO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE1hcmtQcm9wcywgTWFya1R5cGVzLCBUb29sYmFyQWN0aW9uVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yLCBUb29sYmFySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGFibGVFZGl0b3IgfSBmcm9tICcuLi90YWJsZS90YWJsZS5lZGl0b3InO1xuaW1wb3J0IHsgUGFpbnRGb3JtYXRFZGl0b3IgfSBmcm9tICcuL3BhaW50LWZvcm1hdC5lZGl0b3InO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFBhaW50Rm9ybWF0T3B0aW9uczogVG9vbGJhckl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLnVuZG8sXG4gICAgICAgIGljb246ICd1bmRvJyxcbiAgICAgICAgbmFtZTogJ+aSpOmUgCcsXG4gICAgICAgIGV4ZWN1dGU6IChlZGl0b3I6IFRoZUVkaXRvcikgPT4gZWRpdG9yLnVuZG8oKVxuICAgIH0sXG4gICAge1xuICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy5yZWRvLFxuICAgICAgICBpY29uOiAncmVkbycsXG4gICAgICAgIG5hbWU6ICfph43lgZonLFxuICAgICAgICBleGVjdXRlOiAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IGVkaXRvci5yZWRvKClcbiAgICB9LFxuICAgIHtcbiAgICAgICAga2V5OiBUb29sYmFyQWN0aW9uVHlwZXMucGFpbnRmb3JtYXQsXG4gICAgICAgIGljb246ICdwYWludGZvcm1hdCcsXG4gICAgICAgIG5hbWU6ICfmoLzlvI/liLcnLFxuICAgICAgICBleGVjdXRlOiBQYWludEZvcm1hdEVkaXRvci5lbmFibGVGb3JtYXRCcnVzaCxcbiAgICAgICAgYWN0aXZlOiBQYWludEZvcm1hdEVkaXRvci5pc0FjdGl2ZVxuICAgIH0sXG4gICAge1xuICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy5jbGVhbixcbiAgICAgICAgaWNvbjogJ2NsZWFuJyxcbiAgICAgICAgbmFtZTogJ+a4hemZpOagvOW8jycsXG4gICAgICAgIGV4ZWN1dGU6IChlZGl0b3I6IFRoZUVkaXRvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoVGFibGVFZGl0b3IuY2xlYXJNYXJrKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFya3MgPSBFZGl0b3IubWFya3MoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtYXJrcykpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLnJlbW92ZU1hcmsoZWRpdG9yLCBrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRNYXJrczogeyBba2V5IGluIE1hcmtUeXBlc10/OiBudWxsIHwgc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgICAgICBNYXJrUHJvcHMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB1bnNldE1hcmtzW2tleV0gPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCB1bnNldE1hcmtzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbl07XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { take, skip, filter } from 'rxjs/operators';
|
|
2
|
+
import { Range } from 'slate';
|
|
3
|
+
import { HistoryEditor } from 'slate-history';
|
|
4
|
+
import { EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
5
|
+
import { TheEditor } from '../../interfaces';
|
|
6
|
+
import { TheContextService } from '../../services/context.service';
|
|
7
|
+
import { MarkProps } from '../../constants/node-types';
|
|
8
|
+
import * as TheQueries from '../../queries';
|
|
9
|
+
import * as TheTransforms from '../../transforms';
|
|
10
|
+
export const PaintFormatEditor = {
|
|
11
|
+
formatBrush(editor) {
|
|
12
|
+
const contextService = editor.injector.get(TheContextService);
|
|
13
|
+
const obj = {};
|
|
14
|
+
for (const key of MarkProps) {
|
|
15
|
+
const k = contextService.paintFormatStatus.marks[key];
|
|
16
|
+
obj[key] = k || null;
|
|
17
|
+
}
|
|
18
|
+
const block = TheQueries.anchorBlock(editor);
|
|
19
|
+
if (block && Range.isCollapsed(editor.selection)) {
|
|
20
|
+
// TODO:: 在撤销时有bug, 临时使用withoutSaving处理
|
|
21
|
+
HistoryEditor.withoutSaving(editor, () => {
|
|
22
|
+
const path = TheEditor.findPath(editor, block);
|
|
23
|
+
TheTransforms.setMarks(editor, obj, path);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
TheTransforms.setMarks(editor, obj);
|
|
28
|
+
}
|
|
29
|
+
PaintFormatEditor.cancelFormatBrushStatus(editor);
|
|
30
|
+
},
|
|
31
|
+
isActive(editor) {
|
|
32
|
+
const contextService = editor.injector.get(TheContextService);
|
|
33
|
+
const res = contextService.paintFormatStatus.isActive;
|
|
34
|
+
return res;
|
|
35
|
+
},
|
|
36
|
+
enableFormatBrush(editor) {
|
|
37
|
+
const contextService = editor.injector.get(TheContextService);
|
|
38
|
+
if (contextService.paintFormatStatus.isActive) {
|
|
39
|
+
return PaintFormatEditor.cancelFormatBrushStatus(editor);
|
|
40
|
+
}
|
|
41
|
+
contextService.paintFormatStatus = {
|
|
42
|
+
isActive: true,
|
|
43
|
+
marks: TheQueries.getSelectionMarks(editor)
|
|
44
|
+
};
|
|
45
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
46
|
+
element.classList.add('pointer-paint');
|
|
47
|
+
contextService.onMouseUp$
|
|
48
|
+
.pipe(skip(1), filter(event => element.contains(event.target)), take(1))
|
|
49
|
+
.subscribe((event) => {
|
|
50
|
+
if (contextService.paintFormatStatus.isActive) {
|
|
51
|
+
PaintFormatEditor.formatBrush(editor);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
editor.onChange();
|
|
55
|
+
},
|
|
56
|
+
cancelFormatBrushStatus(editor) {
|
|
57
|
+
const contextService = editor.injector.get(TheContextService);
|
|
58
|
+
contextService.paintFormatStatus = {
|
|
59
|
+
isActive: false,
|
|
60
|
+
marks: {}
|
|
61
|
+
};
|
|
62
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
63
|
+
element.classList.remove('pointer-paint');
|
|
64
|
+
editor.onChange();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtZm9ybWF0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9wYWludC1mb3JtYXQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLFdBQVcsQ0FBQyxNQUFpQjtRQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDeEI7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLHVDQUF1QztZQUN2QyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ3JDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE1BQWlCO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN0RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxNQUFpQjtRQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELElBQUksY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUMzQyxPQUFPLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsY0FBYyxDQUFDLGlCQUFpQixHQUFHO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7U0FDOUMsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxjQUFjLENBQUMsVUFBVTthQUNwQixJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWlCLENBQUMsQ0FBQyxFQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsTUFBaUI7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsaUJBQWlCLEdBQUc7WUFDL0IsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSwgc2tpcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBFRElUT1JfVE9fRUxFTUVOVCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXJrUHJvcHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFBhaW50Rm9ybWF0RWRpdG9yID0ge1xuICAgIGZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBNYXJrUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5tYXJrc1trZXldO1xuICAgICAgICAgICAgb2JqW2tleV0gPSBrIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChibG9jayAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gVE9ETzo6IOWcqOaSpOmUgOaXtuaciWJ1Zywg5Li05pe25L2/55Sod2l0aG91dFNhdmluZ+WkhOeQhlxuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG9iaiwgcGF0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCByZXMgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9LFxuICAgIGVuYWJsZUZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGlmIChjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1hcmtzOiBUaGVRdWVyaWVzLmdldFNlbGVjdGlvbk1hcmtzKGVkaXRvcilcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCkpLFxuICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRTZXJ2aWNlLnBhaW50Rm9ybWF0U3RhdHVzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmZvcm1hdEJydXNoKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVkaXRvci5vbkNoYW5nZSgpO1xuICAgIH0sXG4gICAgY2FuY2VsRm9ybWF0QnJ1c2hTdGF0dXMoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBtYXJrczoge31cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgZWRpdG9yLm9uQ2hhbmdlKCk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, Input, HostListener } from '@angular/core';
|
|
2
|
+
import { Node } from 'slate';
|
|
3
|
+
import { AngularEditor } from 'slate-angular';
|
|
4
|
+
import { isCleanEmptyParagraph } from '../../utils/is-clean-empty-paragraph';
|
|
5
|
+
import * as TheQueries from '../../queries';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class ThePlaceholderComponent {
|
|
8
|
+
constructor(renderer, elementRef) {
|
|
9
|
+
this.renderer = renderer;
|
|
10
|
+
this.elementRef = elementRef;
|
|
11
|
+
this.isHide = true;
|
|
12
|
+
}
|
|
13
|
+
handleCompositionStart() {
|
|
14
|
+
var _a;
|
|
15
|
+
if ((_a = this.editor) === null || _a === void 0 ? void 0 : _a.selection) {
|
|
16
|
+
this.hide();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
handleCompositionEnd(event) {
|
|
20
|
+
if (!event.data) {
|
|
21
|
+
this.checkStatus();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
checkStatus() {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
const { editor } = this;
|
|
27
|
+
// empty content and no selection processing
|
|
28
|
+
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.autoFocus) && !(editor === null || editor === void 0 ? void 0 : editor.selection) && TheQueries.isEmptyContent(editor.children)) {
|
|
29
|
+
// normal top is 28, but margin-top: -41px is set when maxHeight is set, so top is 69
|
|
30
|
+
const firstTop = ((_b = this.options) === null || _b === void 0 ? void 0 : _b.maxHeight) ? 69 : 28;
|
|
31
|
+
this.updatePosition(30, firstTop);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (isCleanEmptyParagraph(editor)) {
|
|
35
|
+
const block = Node.ancestor(editor, [(_c = editor === null || editor === void 0 ? void 0 : editor.selection) === null || _c === void 0 ? void 0 : _c.anchor.path[0]]);
|
|
36
|
+
const rootNode = AngularEditor.toDOMNode(editor, block);
|
|
37
|
+
this.isHide = false;
|
|
38
|
+
this.updatePosition(rootNode.offsetLeft, rootNode.offsetTop);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.isHide = true;
|
|
42
|
+
}
|
|
43
|
+
updatePosition(left, top) {
|
|
44
|
+
this.isHide = false;
|
|
45
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'top', `${top}px`);
|
|
46
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'left', `${left}px`);
|
|
47
|
+
}
|
|
48
|
+
hide() {
|
|
49
|
+
this.isHide = true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ThePlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: ThePlaceholderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
ThePlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: ThePlaceholderComponent, selector: "div[thePlaceholder]", inputs: { editor: "editor", options: "options" }, host: { listeners: { "document:compositionstart": "handleCompositionStart()", "document:compositionend": "handleCompositionEnd($event)" }, properties: { "class.hide": "isHide" }, classAttribute: "the-placeholder" }, ngImport: i0, template: `{{ options?.placeholder }}`, isInline: true });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: ThePlaceholderComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{
|
|
57
|
+
selector: 'div[thePlaceholder]',
|
|
58
|
+
template: `{{ options?.placeholder }}`,
|
|
59
|
+
host: {
|
|
60
|
+
class: 'the-placeholder',
|
|
61
|
+
'[class.hide]': 'isHide'
|
|
62
|
+
}
|
|
63
|
+
}]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { editor: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], options: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], handleCompositionStart: [{
|
|
69
|
+
type: HostListener,
|
|
70
|
+
args: ['document:compositionstart']
|
|
71
|
+
}], handleCompositionEnd: [{
|
|
72
|
+
type: HostListener,
|
|
73
|
+
args: ['document:compositionend', ['$event']]
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvcGxhY2Vob2xkZXIvcGxhY2Vob2xkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQVUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7O0FBVTVDLE1BQU0sT0FBTyx1QkFBdUI7SUFvQmhDLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0I7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFoQnZFLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFnQjRELENBQUM7SUFiM0Usc0JBQXNCOztRQUNsQixJQUFJLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNmO0lBQ0wsQ0FBQztJQUdELG9CQUFvQixDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBSU0sV0FBVzs7UUFDZCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXhCLDRDQUE0QztRQUM1QyxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxTQUFTLEtBQUksQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLENBQUEsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3RixxRkFBcUY7WUFDckYsTUFBTSxRQUFRLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbEMsT0FBTztTQUNWO1FBRUQsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsMENBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekUsTUFBTSxRQUFRLEdBQWdCLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXJFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFZLEVBQUUsR0FBWTtRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDOztvSEFwRFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIscVVBTnRCLDRCQUE0QjsyRkFNN0IsdUJBQXVCO2tCQVJuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixjQUFjLEVBQUUsUUFBUTtxQkFDM0I7aUJBQ0o7eUhBRVksTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFLTixzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCO2dCQVF6QyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBIb3N0TGlzdGVuZXIsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgaXNDbGVhbkVtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtY2xlYW4tZW1wdHktcGFyYWdyYXBoJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGl2W3RoZVBsYWNlaG9sZGVyXScsXG4gICAgdGVtcGxhdGU6IGB7eyBvcHRpb25zPy5wbGFjZWhvbGRlciB9fWAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoZS1wbGFjZWhvbGRlcicsXG4gICAgICAgICdbY2xhc3MuaGlkZV0nOiAnaXNIaWRlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGhlUGxhY2Vob2xkZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IFRoZU9wdGlvbnM7XG5cbiAgICBpc0hpZGUgPSB0cnVlO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y29tcG9zaXRpb25zdGFydCcpXG4gICAgaGFuZGxlQ29tcG9zaXRpb25TdGFydCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yPy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y29tcG9zaXRpb25lbmQnLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUNvbXBvc2l0aW9uRW5kKGV2ZW50KSB7XG4gICAgICAgIGlmICghZXZlbnQuZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja1N0YXR1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBwdWJsaWMgY2hlY2tTdGF0dXMoKSB7XG4gICAgICAgIGNvbnN0IHsgZWRpdG9yIH0gPSB0aGlzO1xuXG4gICAgICAgIC8vIGVtcHR5IGNvbnRlbnQgYW5kIG5vIHNlbGVjdGlvbiBwcm9jZXNzaW5nXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnM/LmF1dG9Gb2N1cyAmJiAhZWRpdG9yPy5zZWxlY3Rpb24gJiYgVGhlUXVlcmllcy5pc0VtcHR5Q29udGVudChlZGl0b3IuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAvLyBub3JtYWwgdG9wIGlzIDI4LCBidXQgbWFyZ2luLXRvcDogLTQxcHggaXMgc2V0IHdoZW4gbWF4SGVpZ2h0IGlzIHNldCwgc28gdG9wIGlzIDY5XG4gICAgICAgICAgICBjb25zdCBmaXJzdFRvcCA9IHRoaXMub3B0aW9ucz8ubWF4SGVpZ2h0ID8gNjkgOiAyODtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oMzAsIGZpcnN0VG9wKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0NsZWFuRW1wdHlQYXJhZ3JhcGgoZWRpdG9yKSkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBOb2RlLmFuY2VzdG9yKGVkaXRvciwgW2VkaXRvcj8uc2VsZWN0aW9uPy5hbmNob3IucGF0aFswXV0pO1xuICAgICAgICAgICAgY29uc3Qgcm9vdE5vZGU6IEhUTUxFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBibG9jayk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNIaWRlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHJvb3ROb2RlLm9mZnNldExlZnQsIHJvb3ROb2RlLm9mZnNldFRvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0hpZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUG9zaXRpb24obGVmdDogbnVtYmVyLCB0b3A/OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pc0hpZGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGUoKSB7XG4gICAgICAgIHRoaXMuaXNIaWRlID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -11,4 +11,5 @@ export * from './table/table.editor';
|
|
|
11
11
|
export * from './todo-item/todo-item.editor';
|
|
12
12
|
export * from './vertical-align/vertical-align.editor';
|
|
13
13
|
export * from './link/link.editor';
|
|
14
|
-
|
|
14
|
+
export * from './quick-insert/quick-insert.editor';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbGlnbi9hbGlnbi5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29kZS9jb2RlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9yL2NvbG9yLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRpbmcvaGVhZGluZy5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9oci9oci5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS9pbWFnZS5lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0L2xpc3QuZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWFyay9tYXJrLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlL3RhYmxlLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RvZG8taXRlbS90b2RvLWl0ZW0uZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdmVydGljYWwtYWxpZ24vdmVydGljYWwtYWxpZ24uZWRpdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGluay9saW5rLmVkaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWluc2VydC9xdWljay1pbnNlcnQuZWRpdG9yJztcbiJdfQ==
|