@worktile/theia 2.2.7 → 2.3.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/worktile-theia.umd.js +852 -249
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/toolbar/toolbar.component.d.ts +3 -2
- package/components/toolbar-item/toolbar-item.component.d.ts +3 -4
- package/constants/default.d.ts +3 -0
- package/constants/node-types.d.ts +4 -0
- package/custom-types.d.ts +3 -1
- package/editor.component.d.ts +3 -1
- package/editor.module.d.ts +26 -24
- package/esm2015/components/toolbar/toolbar.component.js +6 -4
- package/esm2015/components/toolbar-item/toolbar-item.component.js +4 -4
- package/esm2015/constants/auto-format-rules.js +26 -7
- package/esm2015/constants/default.js +2 -1
- package/esm2015/constants/node-types.js +6 -1
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +12 -6
- package/esm2015/editor.module.js +6 -3
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/interfaces/image.js +1 -1
- package/esm2015/interfaces/valid-children-types.js +2 -1
- package/esm2015/plugins/align/align.editor.js +10 -2
- package/esm2015/plugins/align/options.js +3 -2
- package/esm2015/plugins/common/auto-insert-data..js +2 -18
- package/esm2015/plugins/dnd/component/dnd.component.js +260 -0
- package/esm2015/plugins/dnd/utils/get-current-target.js +19 -0
- package/esm2015/plugins/dnd/utils/get-hover-direction.js +13 -0
- package/esm2015/plugins/dnd/utils/is-valid-drag.js +38 -0
- package/esm2015/plugins/dnd/utils/move-drag-node.js +30 -0
- package/esm2015/plugins/dnd/utils/remove-drop-thumb-line.js +10 -0
- package/esm2015/plugins/image/image.component.js +167 -14
- package/esm2015/plugins/image/image.editor.js +4 -1
- package/esm2015/plugins/indent/on-keydown-indent.js +2 -3
- package/esm2015/plugins/list/list.editor.js +2 -2
- package/esm2015/plugins/quick-insert/components/quick-insert.component.js +13 -2
- package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +1 -1
- package/esm2015/services/context.service.js +5 -1
- package/esm2015/utils/dom.js +39 -1
- package/esm2015/utils/is-clean-empty-paragraph.js +4 -4
- package/esm2015/utils/merge-element-options.js +20 -0
- package/fesm2015/worktile-theia.js +786 -201
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/editor.d.ts +9 -1
- package/interfaces/image.d.ts +7 -1
- package/interfaces/valid-children-types.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/align/align.editor.d.ts +1 -0
- package/plugins/dnd/component/dnd.component.d.ts +42 -0
- package/plugins/dnd/component/dnd.component.scss +61 -0
- package/plugins/dnd/utils/get-current-target.d.ts +2 -0
- package/plugins/dnd/utils/get-hover-direction.d.ts +3 -0
- package/plugins/dnd/utils/is-valid-drag.d.ts +3 -0
- package/plugins/dnd/utils/move-drag-node.d.ts +2 -0
- package/plugins/dnd/utils/remove-drop-thumb-line.d.ts +2 -0
- package/plugins/image/image.component.d.ts +27 -3
- package/plugins/image/image.component.scss +9 -2
- package/plugins/image/image.editor.d.ts +6 -1
- package/plugins/quick-insert/components/quick-insert.component.d.ts +1 -0
- package/plugins/table/components/table.component.scss +1 -0
- package/services/context.service.d.ts +1 -0
- package/styles/editor.scss +4 -0
- package/styles/index.scss +1 -0
- package/styles/typo.scss +44 -0
- package/utils/dom.d.ts +5 -1
- package/utils/merge-element-options.d.ts +2 -0
|
@@ -4,6 +4,7 @@ import * as TheQueries from '../../queries';
|
|
|
4
4
|
import { DefaultElementOptions } from '../../interfaces';
|
|
5
5
|
import * as TheTransforms from '../../transforms';
|
|
6
6
|
import { extractFragment } from '../../utils/fragment';
|
|
7
|
+
import { mergeElementOptions } from '../../utils/merge-element-options';
|
|
7
8
|
export const withAutoInsertData = (validChildren) => (editor) => {
|
|
8
9
|
const { insertData } = editor;
|
|
9
10
|
let allElementOptions = DefaultElementOptions;
|
|
@@ -69,21 +70,4 @@ export const withAutoInsertData = (validChildren) => (editor) => {
|
|
|
69
70
|
};
|
|
70
71
|
return editor;
|
|
71
72
|
};
|
|
72
|
-
|
|
73
|
-
elementOptions = elementOptions.filter(item => item.inValidChildrenTypes.length > 0);
|
|
74
|
-
const combinationData = [...DefaultElementOptions, ...elementOptions];
|
|
75
|
-
const dataInfo = {};
|
|
76
|
-
combinationData.forEach(item => {
|
|
77
|
-
const { type, inValidChildrenTypes, isIndivisible } = item;
|
|
78
|
-
if (!dataInfo[type]) {
|
|
79
|
-
dataInfo[type] = {
|
|
80
|
-
type,
|
|
81
|
-
inValidChildrenTypes,
|
|
82
|
-
isIndivisible
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
dataInfo[type].inValidChildrenTypes = Array.from(new Set([...inValidChildrenTypes, ...dataInfo[type].inValidChildrenTypes]));
|
|
86
|
-
});
|
|
87
|
-
return dataInfo;
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1pbnNlcnQtZGF0YS4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb21tb24vYXV0by1pbnNlcnQtZGF0YS4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsYUFBb0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUMzRixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzlCLElBQUksaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7SUFDOUMsSUFBSSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsTUFBTSxFQUFFO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBa0IsRUFBRSxFQUFFOztRQUN2QyxJQUFJLE1BQUEsTUFBTSxDQUFDLG1CQUFtQiwwQ0FBRSxNQUFNLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbEUs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TUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsSUFBSTtnQkFDSixvQkFBb0I7Z0JBQ3BCLGFBQWE7YUFDaEIsQ0FBQztTQUNMO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pJLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBQYXRoLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IERlZmF1bHRFbGVtZW50T3B0aW9ucywgRWxlbWVudE9wdGlvbnNJbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuXG5leHBvcnQgY29uc3Qgd2l0aEF1dG9JbnNlcnREYXRhID0gKHZhbGlkQ2hpbGRyZW4/OiBFbGVtZW50T3B0aW9uc0luZm9bXSkgPT4gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgY29uc3QgeyBpbnNlcnREYXRhIH0gPSBlZGl0b3I7XG4gICAgbGV0IGFsbEVsZW1lbnRPcHRpb25zID0gRGVmYXVsdEVsZW1lbnRPcHRpb25zO1xuICAgIGlmICh2YWxpZENoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmFsaWRJbmZvID0gbWVyZ2VFbGVtZW50T3B0aW9ucyh2YWxpZENoaWxkcmVuKTtcbiAgICAgICAgYWxsRWxlbWVudE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKHZhbGlkSW5mbyk7XG4gICAgfVxuXG4gICAgZWRpdG9yLmluc2VydERhdGEgPSAoZGF0YTogRGF0YVRyYW5zZmVyKSA9PiB7XG4gICAgICAgIGlmIChlZGl0b3IuZXh0cmFFbGVtZW50T3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBleHRyYUluZm8gPSBtZXJnZUVsZW1lbnRPcHRpb25zKGVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zKTtcbiAgICAgICAgICAgIGFsbEVsZW1lbnRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhleHRyYUluZm8pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGl2aXNpYmxlVHlwZXMgPSBhbGxFbGVtZW50T3B0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlzSW5kaXZpc2libGUpLm1hcChpdGVtID0+IGl0ZW0udHlwZSk7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZXh0cmFjdEZyYWdtZW50KGRhdGEpO1xuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGlmIChUaGVRdWVyaWVzLmlzQWNyb3NzQmxvY2tzKGVkaXRvciwgZnJhZ21lbnQpIHx8IEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBmcmFnbWVudFswXSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydF0gPSBFZGl0b3IuZWRnZXMoZWRpdG9yLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIC8vIHF1ZXJ5IHdoZXRoZXIgdGhlcmUgaXMgYSBub2RlIHRvIGJlIHZlcmlmaWVkXG4gICAgICAgICAgICAgICAgY29uc3QgdHJ5VmVyaWZ5Tm9kZSA9IGFsbEVsZW1lbnRPcHRpb25zLmZpbmQoaXRlbSA9PlxuICAgICAgICAgICAgICAgICAgICBUaGVRdWVyaWVzLmdldEFib3ZlQnlUeXBlKGVkaXRvciwgaXRlbS50eXBlLCB7IGF0OiBzdGFydCwgbW9kZTogJ2xvd2VzdCcgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICh0cnlWZXJpZnlOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGV4aXN0IGludmFsaWQgZWxlbWVudCB0eXBlIGluIGZyYWdtZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGludmFsaWRJbmRleCA9IGZyYWdtZW50LmZpbmRJbmRleChpdGVtID0+IHRyeVZlcmlmeU5vZGUuaW5WYWxpZENoaWxkcmVuVHlwZXMuaW5jbHVkZXMoaXRlbS50eXBlKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRGcmFnbWVudERhdGEgPSBmcmFnbWVudC5zbGljZSgwLCBpbnZhbGlkSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW52YWxpZEZyYWdtZW50RGF0YSA9IGZyYWdtZW50LnNsaWNlKGludmFsaWRJbmRleCwgZnJhZ21lbnQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkRnJhZ21lbnREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRGcmFnbWVudERhdGEuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGl0IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gVGhlVHJhbnNmb3Jtcy5zcGxpdE5vZGUoZWRpdG9yLCBpbmRpdmlzaWJsZVR5cGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgaW52YWxpZEZyYWdtZW50RGF0YSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdDogUGF0aC5uZXh0KHBhdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0VtcHR5UGFyYWdyYXBoID0gVGhlUXVlcmllcy5pc0VtcHR5UGFyYWdyYXBoKGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbXB0eVBhdGggPSBQYXRoLnBhcmVudChlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRW1wdHlQYXJhZ3JhcGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogZW1wdHlQYXRoIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFBhdGggPSBlbXB0eVBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIFsuLi5lbXB0eVBhdGgsIGxhc3RQYXRoICsgZnJhZ21lbnQubGVuZ3RoIC0gMV0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFBhdGggPSBlbXB0eVBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIFsuLi5lbXB0eVBhdGgsIGxhc3RQYXRoICsgZnJhZ21lbnQubGVuZ3RoXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmNvbGxhcHNlKGVkaXRvciwgeyBlZGdlOiAnZW5kJyB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RGF0YShkYXRhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmNvbnN0IG1lcmdlRWxlbWVudE9wdGlvbnMgPSAoZWxlbWVudE9wdGlvbnM6IEVsZW1lbnRPcHRpb25zSW5mb1tdKSA9PiB7XG4gICAgZWxlbWVudE9wdGlvbnMgPSBlbGVtZW50T3B0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmluVmFsaWRDaGlsZHJlblR5cGVzLmxlbmd0aCA+IDApO1xuICAgIGNvbnN0IGNvbWJpbmF0aW9uRGF0YSA9IFsuLi5EZWZhdWx0RWxlbWVudE9wdGlvbnMsIC4uLmVsZW1lbnRPcHRpb25zXTtcbiAgICBjb25zdCBkYXRhSW5mbyA9IHt9O1xuICAgIGNvbWJpbmF0aW9uRGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB7IHR5cGUsIGluVmFsaWRDaGlsZHJlblR5cGVzLCBpc0luZGl2aXNpYmxlIH0gPSBpdGVtO1xuICAgICAgICBpZiAoIWRhdGFJbmZvW3R5cGVdKSB7XG4gICAgICAgICAgICBkYXRhSW5mb1t0eXBlXSA9IHtcbiAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgIGluVmFsaWRDaGlsZHJlblR5cGVzLFxuICAgICAgICAgICAgICAgIGlzSW5kaXZpc2libGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZGF0YUluZm9bdHlwZV0uaW5WYWxpZENoaWxkcmVuVHlwZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoWy4uLmluVmFsaWRDaGlsZHJlblR5cGVzLCAuLi5kYXRhSW5mb1t0eXBlXS5pblZhbGlkQ2hpbGRyZW5UeXBlc10pKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YUluZm87XG59O1xuIl19
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1pbnNlcnQtZGF0YS4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb21tb24vYXV0by1pbnNlcnQtZGF0YS4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsYUFBb0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUMzRixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzlCLElBQUksaUJBQWlCLEdBQUcscUJBQXFCLENBQUM7SUFDOUMsSUFBSSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsTUFBTSxFQUFFO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDaEQ7SUFFRCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBa0IsRUFBRSxFQUFFOztRQUN2QyxJQUFJLE1BQUEsTUFBTSxDQUFDLG1CQUFtQiwwQ0FBRSxNQUFNLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQUcs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QyxDQUFDO29CQUN6QyxJQUFJLGdCQUFnQixFQUFFO3dCQUNsQixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO3dCQUM3QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2pDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDN0U7eUJBQU07d0JBQ0gsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNqQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztxQkFDekU7b0JBQ0QsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDNUIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNWO1NBQ0o7UUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBQYXRoLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IERlZmF1bHRFbGVtZW50T3B0aW9ucywgRWxlbWVudE9wdGlvbnNJbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuaW1wb3J0IHsgbWVyZ2VFbGVtZW50T3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLWVsZW1lbnQtb3B0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCB3aXRoQXV0b0luc2VydERhdGEgPSAodmFsaWRDaGlsZHJlbj86IEVsZW1lbnRPcHRpb25zSW5mb1tdKSA9PiAoZWRpdG9yOiBFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IGluc2VydERhdGEgfSA9IGVkaXRvcjtcbiAgICBsZXQgYWxsRWxlbWVudE9wdGlvbnMgPSBEZWZhdWx0RWxlbWVudE9wdGlvbnM7XG4gICAgaWYgKHZhbGlkQ2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCB2YWxpZEluZm8gPSBtZXJnZUVsZW1lbnRPcHRpb25zKHZhbGlkQ2hpbGRyZW4pO1xuICAgICAgICBhbGxFbGVtZW50T3B0aW9ucyA9IE9iamVjdC52YWx1ZXModmFsaWRJbmZvKTtcbiAgICB9XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgaWYgKGVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhSW5mbyA9IG1lcmdlRWxlbWVudE9wdGlvbnMoZWRpdG9yLmV4dHJhRWxlbWVudE9wdGlvbnMpO1xuICAgICAgICAgICAgYWxsRWxlbWVudE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKGV4dHJhSW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kaXZpc2libGVUeXBlcyA9IGFsbEVsZW1lbnRPcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaXNJbmRpdmlzaWJsZSkubWFwKGl0ZW0gPT4gaXRlbS50eXBlKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBleHRyYWN0RnJhZ21lbnQoZGF0YSk7XG4gICAgICAgIGlmIChmcmFnbWVudCkge1xuICAgICAgICAgICAgaWYgKFRoZVF1ZXJpZXMuaXNBY3Jvc3NCbG9ja3MoZWRpdG9yLCBmcmFnbWVudCkgfHwgRWRpdG9yLmlzVm9pZChlZGl0b3IsIGZyYWdtZW50WzBdKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0XSA9IEVkaXRvci5lZGdlcyhlZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgLy8gcXVlcnkgd2hldGhlciB0aGVyZSBpcyBhIG5vZGUgdG8gYmUgdmVyaWZpZWRcbiAgICAgICAgICAgICAgICBjb25zdCB0cnlWZXJpZnlOb2RlID0gYWxsRWxlbWVudE9wdGlvbnMuZmluZChpdGVtID0+XG4gICAgICAgICAgICAgICAgICAgIFRoZVF1ZXJpZXMuZ2V0QWJvdmVCeVR5cGUoZWRpdG9yLCBpdGVtLnR5cGUsIHsgYXQ6IHN0YXJ0LCBtb2RlOiAnbG93ZXN0JyB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHRyeVZlcmlmeU5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaXMgZXhpc3QgaW52YWxpZCBlbGVtZW50IHR5cGUgaW4gZnJhZ21lbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW52YWxpZEluZGV4ID0gZnJhZ21lbnQuZmluZEluZGV4KGl0ZW0gPT4gdHJ5VmVyaWZ5Tm9kZS5pblZhbGlkQ2hpbGRyZW5UeXBlcy5pbmNsdWRlcyhpdGVtLnR5cGUpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZEZyYWdtZW50RGF0YSA9IGZyYWdtZW50LnNsaWNlKDAsIGludmFsaWRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnZhbGlkRnJhZ21lbnREYXRhID0gZnJhZ21lbnQuc2xpY2UoaW52YWxpZEluZGV4LCBmcmFnbWVudC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRGcmFnbWVudERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZEZyYWdtZW50RGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsaXQgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVUcmFuc2Zvcm1zLnNwbGl0Tm9kZShlZGl0b3IsIGluZGl2aXNpYmxlVHlwZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBpbnZhbGlkRnJhZ21lbnREYXRhLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0OiBQYXRoLm5leHQocGF0aClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRW1wdHlQYXJhZ3JhcGggPSBUaGVRdWVyaWVzLmlzRW1wdHlQYXJhZ3JhcGgoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtcHR5UGF0aCA9IFBhdGgucGFyZW50KGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgZnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eVBhcmFncmFwaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBlbXB0eVBhdGggfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UGF0aCA9IGVtcHR5UGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgWy4uLmVtcHR5UGF0aCwgbGFzdFBhdGggKyBmcmFnbWVudC5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UGF0aCA9IGVtcHR5UGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgWy4uLmVtcHR5UGF0aCwgbGFzdFBhdGggKyBmcmFnbWVudC5sZW5ndGhdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuY29sbGFwc2UoZWRpdG9yLCB7IGVkZ2U6ICdlbmQnIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbnNlcnREYXRhKGRhdGEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { fromEvent, merge, Subject } from 'rxjs';
|
|
3
|
+
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { Editor, Operation } from 'slate';
|
|
5
|
+
import { AngularEditor, EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
6
|
+
import { DROP_THUMB_LINE } from '../../../constants';
|
|
7
|
+
import { TheContextService } from '../../../services/context.service';
|
|
8
|
+
import { coercePixelsFromCssValue, findNodeEntryByPoint } from '../../../utils/dom';
|
|
9
|
+
import { getCurrentTarget } from '../utils/get-current-target';
|
|
10
|
+
import { getHoverDirection } from '../utils/get-hover-direction';
|
|
11
|
+
import { moveDragNode } from '../utils/move-drag-node';
|
|
12
|
+
import { isValidDrag } from '../utils/is-valid-drag';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "ngx-tethys/icon";
|
|
15
|
+
import * as i2 from "@angular/common";
|
|
16
|
+
const SNAPSHOT_PADDING_WIDTH = 5;
|
|
17
|
+
const SNAPSHOT_LIMI_HEIGHT = 70;
|
|
18
|
+
const DRAG_ICON_SIZE = 24;
|
|
19
|
+
const DRAG_ICON_OFFSET = 5;
|
|
20
|
+
export class TheDndComponent {
|
|
21
|
+
constructor(renderer, elementRef, ngZone, cdr) {
|
|
22
|
+
this.renderer = renderer;
|
|
23
|
+
this.elementRef = elementRef;
|
|
24
|
+
this.ngZone = ngZone;
|
|
25
|
+
this.cdr = cdr;
|
|
26
|
+
this.isDraging = false;
|
|
27
|
+
this.destroy$ = new Subject();
|
|
28
|
+
this.dragChange = new EventEmitter();
|
|
29
|
+
this.dropThumbLine = document.createElement('div');
|
|
30
|
+
this.dropThumbLine.className = DROP_THUMB_LINE;
|
|
31
|
+
}
|
|
32
|
+
get nativeElement() {
|
|
33
|
+
return this.elementRef.nativeElement;
|
|
34
|
+
}
|
|
35
|
+
get editableElement() {
|
|
36
|
+
return this.editor && EDITOR_TO_ELEMENT.get(this.editor);
|
|
37
|
+
}
|
|
38
|
+
ngAfterViewInit() {
|
|
39
|
+
const contextService = this.editor.injector.get(TheContextService);
|
|
40
|
+
this.ngZone.runOutsideAngular(() => {
|
|
41
|
+
merge(fromEvent(this.editableElement, `mousemove`), fromEvent(this.editableElement, `mouseleave`))
|
|
42
|
+
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
43
|
+
return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
|
|
44
|
+
}))
|
|
45
|
+
.subscribe(e => this.setDragIcon(e));
|
|
46
|
+
fromEvent(document, `drop`)
|
|
47
|
+
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
48
|
+
return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
|
|
49
|
+
}))
|
|
50
|
+
.subscribe(e => this.onDrop(e));
|
|
51
|
+
fromEvent(document, `dragover`)
|
|
52
|
+
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
53
|
+
return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
|
|
54
|
+
}))
|
|
55
|
+
.subscribe(e => this.onDragover(e));
|
|
56
|
+
fromEvent(document, `scroll`)
|
|
57
|
+
.pipe(takeUntil(this.destroy$), filter(() => {
|
|
58
|
+
return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
|
|
59
|
+
}))
|
|
60
|
+
.subscribe(e => {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
let scrollPosition = window.scrollY;
|
|
63
|
+
if (!this.isScrolling && this.isDraging) {
|
|
64
|
+
window.requestAnimationFrame(() => {
|
|
65
|
+
if (this.editableTop) {
|
|
66
|
+
// 滚动过程中,通过设置父级元素来设置snapshot位置
|
|
67
|
+
this.updateDndContainerPosition(null, scrollPosition + this.editableTop + 'px');
|
|
68
|
+
}
|
|
69
|
+
this.isScrolling = false;
|
|
70
|
+
});
|
|
71
|
+
this.isScrolling = true;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
this.setVisibility(false);
|
|
76
|
+
this.valueChangeHandle();
|
|
77
|
+
}
|
|
78
|
+
valueChangeHandle() {
|
|
79
|
+
const { onChange } = this.editor;
|
|
80
|
+
this.editor.onChange = () => {
|
|
81
|
+
const ops = this.editor.operations;
|
|
82
|
+
const skip = ops.length === 1 && Operation.isSelectionOperation(ops[0]);
|
|
83
|
+
if (!skip) {
|
|
84
|
+
this.setVisibility(false);
|
|
85
|
+
}
|
|
86
|
+
onChange();
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
updateDndContainerPosition(left, top) {
|
|
90
|
+
const element = this.elementRef.nativeElement;
|
|
91
|
+
const parentElement = element.parentElement;
|
|
92
|
+
top && this.renderer.setStyle(parentElement, 'top', top);
|
|
93
|
+
left && this.renderer.setStyle(parentElement, 'left', left);
|
|
94
|
+
}
|
|
95
|
+
getEditableTop(event) {
|
|
96
|
+
const offsetHeight = document.documentElement.offsetHeight;
|
|
97
|
+
const { height } = this.editableElement.getBoundingClientRect();
|
|
98
|
+
if (event.clientY < this.dragElementHeight) {
|
|
99
|
+
this.editableTop = -this.editableElement.offsetTop;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (height > event.pageY && event.clientY + this.dragElementHeight >= offsetHeight) {
|
|
103
|
+
this.editableTop = event.clientY - this.editableElement.offsetTop;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.editableTop = null;
|
|
107
|
+
}
|
|
108
|
+
onDragStart(event) {
|
|
109
|
+
this.isDraging = true;
|
|
110
|
+
this.dragChange.emit(this.isDraging);
|
|
111
|
+
this.dragSnapshotContent = document.querySelector('.drag-snapshot-container');
|
|
112
|
+
this.dragSnapshotContent.className = 'the-editor-typo drag-snapshot-container';
|
|
113
|
+
this.dragSnapshotContent.appendChild(this.dragElement.cloneNode(true));
|
|
114
|
+
this.dragElement.style.opacity = '0.3';
|
|
115
|
+
}
|
|
116
|
+
onDragEnd(event) {
|
|
117
|
+
this.dragElement.style.opacity = '';
|
|
118
|
+
this.isDraging = false;
|
|
119
|
+
this.setVisibility(false);
|
|
120
|
+
this.resetDragSnapshotContent();
|
|
121
|
+
this.dragChange.emit(this.isDraging);
|
|
122
|
+
}
|
|
123
|
+
onDrop(event) {
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
if (this.isDraging) {
|
|
126
|
+
moveDragNode(this.editor, this.dragNode, event);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
onDragover(event) {
|
|
130
|
+
event.preventDefault();
|
|
131
|
+
if (this.isDraging && !this.isScrolling) {
|
|
132
|
+
this.getEditableTop(event);
|
|
133
|
+
const offsetWidth = document.documentElement.offsetWidth;
|
|
134
|
+
const { left: editorLeft, top: editorTop, height } = this.editableElement.getBoundingClientRect();
|
|
135
|
+
let top = 0;
|
|
136
|
+
let left = 0;
|
|
137
|
+
if (editorLeft > 0) {
|
|
138
|
+
if (event.clientX + this.dragElementWidth / 2 > offsetWidth) {
|
|
139
|
+
left = event.pageX - editorLeft - this.elementRef.nativeElement.offsetWidth;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
left = Math.max(event.pageX - editorLeft, -editorLeft) + 10;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
let paddingTop = 0; // paddingTop: 编辑器距离顶部的距离
|
|
146
|
+
if (editorTop >= 0) {
|
|
147
|
+
// 无滚动情况下
|
|
148
|
+
top = event.clientY - this.editableElement.offsetTop;
|
|
149
|
+
paddingTop = editorTop - this.editableElement.offsetTop;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// 有滚动距离
|
|
153
|
+
top = Math.abs(editorTop) + event.clientY; // 滚动距离 + 鼠标clientY
|
|
154
|
+
paddingTop = event.pageY - this.editableElement.offsetTop - top;
|
|
155
|
+
// 防止底部出现滚动条
|
|
156
|
+
if (paddingTop < height - top) {
|
|
157
|
+
top = top + paddingTop;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
this.updateDndContainerPosition(left + 'px', top + 'px');
|
|
161
|
+
this.setSnapshotStyle(event);
|
|
162
|
+
this.setDropThumbLine(event);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
setDropThumbLine(event) {
|
|
166
|
+
var _a;
|
|
167
|
+
let element = getCurrentTarget(this.editor, event);
|
|
168
|
+
const direction = getHoverDirection(this.editor, event);
|
|
169
|
+
if (element) {
|
|
170
|
+
if (direction && direction === 'top') {
|
|
171
|
+
element = (_a = element.previousElementSibling) === null || _a === void 0 ? void 0 : _a.querySelector('[data-slate-node="element"]');
|
|
172
|
+
}
|
|
173
|
+
if (element && isValidDrag(this.editor, this.dragNode.node, element)) {
|
|
174
|
+
element.appendChild(this.dropThumbLine);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
setDragIcon(event) {
|
|
179
|
+
if (!this.isDraging) {
|
|
180
|
+
const nodeEntry = findNodeEntryByPoint(this.editor, event.x, event.y, 'highest');
|
|
181
|
+
if (nodeEntry && !Editor.isEmpty(this.editor, nodeEntry[0])) {
|
|
182
|
+
const rootNode = AngularEditor.toDOMNode(this.editor, nodeEntry[0]);
|
|
183
|
+
this.dragNode = {
|
|
184
|
+
node: nodeEntry[0],
|
|
185
|
+
path: nodeEntry[1]
|
|
186
|
+
};
|
|
187
|
+
this.dragElement = rootNode;
|
|
188
|
+
let lineHeight = coercePixelsFromCssValue(window.getComputedStyle(rootNode)['lineHeight']);
|
|
189
|
+
const offsetTop = rootNode.offsetTop + rootNode.offsetParent.offsetTop + (lineHeight - DRAG_ICON_SIZE) / 2;
|
|
190
|
+
const offsetLeft = rootNode.offsetLeft + rootNode.offsetParent.offsetLeft;
|
|
191
|
+
this.updateDndContainerPosition(offsetLeft - DRAG_ICON_SIZE - DRAG_ICON_OFFSET + 'px', offsetTop + 'px');
|
|
192
|
+
this.setVisibility(true);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
this.setVisibility(false);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
setSnapshotStyle(event) {
|
|
200
|
+
const { width, height } = this.dragElement.getBoundingClientRect();
|
|
201
|
+
this.dragElementHeight = height;
|
|
202
|
+
this.dragElementWidth = width;
|
|
203
|
+
let dragSnapshotContentStyle = `visibility: visible; width: ${width + SNAPSHOT_PADDING_WIDTH * 2}px;`;
|
|
204
|
+
if (height > SNAPSHOT_LIMI_HEIGHT) {
|
|
205
|
+
dragSnapshotContentStyle = dragSnapshotContentStyle + 'transform: scale(0.45);';
|
|
206
|
+
this.dragElementHeight = this.dragElementHeight * 0.45;
|
|
207
|
+
this.dragElementWidth = this.dragElementWidth * 0.45;
|
|
208
|
+
}
|
|
209
|
+
let snapshotTop = 0;
|
|
210
|
+
let snapshotLeft = 0;
|
|
211
|
+
// 上下移动:超出屏幕高度,重新设置snapshot的位置
|
|
212
|
+
if (event.clientY + this.dragElementHeight > document.documentElement.offsetHeight) {
|
|
213
|
+
snapshotTop = this.dragElementHeight;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
snapshotTop = 0;
|
|
217
|
+
}
|
|
218
|
+
// 左右移动:超出屏幕宽度,重新设置snapshot的位置
|
|
219
|
+
if (event.clientX + this.dragElementWidth / 2 > document.documentElement.offsetWidth) {
|
|
220
|
+
snapshotLeft = this.dragElementWidth;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
snapshotLeft = 0;
|
|
224
|
+
}
|
|
225
|
+
dragSnapshotContentStyle = dragSnapshotContentStyle + `top: ${-snapshotTop}px; left: ${-snapshotLeft}px;`;
|
|
226
|
+
this.dragSnapshotContent.setAttribute('style', dragSnapshotContentStyle);
|
|
227
|
+
}
|
|
228
|
+
resetDragSnapshotContent() {
|
|
229
|
+
this.dragSnapshotContent.className = 'drag-snapshot-container';
|
|
230
|
+
this.dragSnapshotContent.setAttribute('style', '');
|
|
231
|
+
this.dragSnapshotContent.innerHTML = '';
|
|
232
|
+
}
|
|
233
|
+
setVisibility(visible = true) {
|
|
234
|
+
this.nativeElement.parentNode.style.visibility = visible ? 'visible' : 'hidden';
|
|
235
|
+
}
|
|
236
|
+
ngOnDestroy() {
|
|
237
|
+
this.destroy$.next();
|
|
238
|
+
this.destroy$.complete();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
TheDndComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheDndComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
242
|
+
TheDndComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: TheDndComponent, selector: "[theDnd]", inputs: { editor: "editor" }, outputs: { dragChange: "dragChange" }, host: { classAttribute: "the-drag-drop" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div\n draggable=\"true\"\n class=\"the-drag-drop-icon\"\n [ngStyle]=\"{ opacity: isDraging ? 0 : '' }\"\n (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\"\n>\n <thy-icon thyIconName=\"drag\"> </thy-icon>\n</div>\n", components: [{ type: i1.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheDndComponent, decorators: [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{
|
|
246
|
+
selector: '[theDnd]',
|
|
247
|
+
templateUrl: './dnd.component.html',
|
|
248
|
+
host: {
|
|
249
|
+
class: 'the-drag-drop'
|
|
250
|
+
}
|
|
251
|
+
}]
|
|
252
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { editor: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], dragChange: [{
|
|
255
|
+
type: Output
|
|
256
|
+
}], content: [{
|
|
257
|
+
type: ViewChild,
|
|
258
|
+
args: ['content', { static: false }]
|
|
259
|
+
}] } });
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC9jb21wb25lbnQvZG5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC9jb21wb25lbnQvZG5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFckQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDakMsTUFB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Sjs4S0FVWSxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFja0MsT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZGl0b3IsIE9wZXJhdGlvbiB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIEVESVRPUl9UT19FTEVNRU5UIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBEUk9QX1RIVU1CX0xJTkUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRHJhZ05vZGUsIEVsZW1lbnRPcHRpb25zSW5mbyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLCBmaW5kTm9kZUVudHJ5QnlQb2ludCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2RvbSc7XG5pbXBvcnQgeyBnZXRDdXJyZW50VGFyZ2V0IH0gZnJvbSAnLi4vdXRpbHMvZ2V0LWN1cnJlbnQtdGFyZ2V0JztcbmltcG9ydCB7IGdldEhvdmVyRGlyZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LWhvdmVyLWRpcmVjdGlvbic7XG5pbXBvcnQgeyBtb3ZlRHJhZ05vZGUgfSBmcm9tICcuLi91dGlscy9tb3ZlLWRyYWctbm9kZSc7XG5pbXBvcnQgeyBpc1ZhbGlkRHJhZyB9IGZyb20gJy4uL3V0aWxzL2lzLXZhbGlkLWRyYWcnO1xuXG5jb25zdCBTTkFQU0hPVF9QQURESU5HX1dJRFRIID0gNTtcbmNvbnN0IFNOQVBTSE9UX0xJTUlfSEVJR0hUID0gNzA7XG5jb25zdCBEUkFHX0lDT05fU0laRSA9IDI0O1xuY29uc3QgRFJBR19JQ09OX09GRlNFVCA9IDU7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3RoZURuZF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kbmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aGUtZHJhZy1kcm9wJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGhlRG5kQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBpc0RyYWdpbmcgPSBmYWxzZTtcblxuICAgIGRyYWdOb2RlOiBEcmFnTm9kZTtcblxuICAgIGRyYWdTbmFwc2hvdENvbnRlbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQElucHV0KCkgZWRpdG9yOiBFZGl0b3I7XG5cbiAgICBAT3V0cHV0KCkgZHJhZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgZHJhZ0VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgZHJhZ0VsZW1lbnRIZWlnaHQ6IG51bWJlcjtcblxuICAgIGRyYWdFbGVtZW50V2lkdGg6IG51bWJlcjtcblxuICAgIGlzU2Nyb2xsaW5nOiBib29sZWFuO1xuXG4gICAgZHJvcFRodW1iTGluZTogSFRNTEVsZW1lbnQ7XG5cbiAgICBlZGl0YWJsZVRvcDogbnVtYmVyO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250ZW50OiBFbGVtZW50UmVmO1xuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGVkaXRhYmxlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yICYmIEVESVRPUl9UT19FTEVNRU5ULmdldCh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICB0aGlzLmRyb3BUaHVtYkxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5kcm9wVGh1bWJMaW5lLmNsYXNzTmFtZSA9IERST1BfVEhVTUJfTElORTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gdGhpcy5lZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgbWVyZ2UoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWRpdGFibGVFbGVtZW50LCBgbW91c2Vtb3ZlYCksIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmVkaXRhYmxlRWxlbWVudCwgYG1vdXNlbGVhdmVgKSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkudGhlT3B0aW9ucy5yZWFkb25seSAmJiBjb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkudGhlT3B0aW9ucy5kcmFnQW5kRHJvcDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHRoaXMuc2V0RHJhZ0ljb24oZSkpO1xuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCBgZHJvcGApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMucmVhZG9ubHkgJiYgY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMuZHJhZ0FuZERyb3A7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB0aGlzLm9uRHJvcChlKSk7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsIGBkcmFnb3ZlcmApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMucmVhZG9ubHkgJiYgY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMuZHJhZ0FuZERyb3A7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB0aGlzLm9uRHJhZ292ZXIoZSkpO1xuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCBgc2Nyb2xsYClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkudGhlT3B0aW9ucy5yZWFkb25seSAmJiBjb250ZXh0U2VydmljZS5nZXRPcHRpb25zKCkudGhlT3B0aW9ucy5kcmFnQW5kRHJvcDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsaW5nICYmIHRoaXMuaXNEcmFnaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lZGl0YWJsZVRvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDmu5rliqjov4fnqIvkuK3vvIzpgJrov4forr7nva7niLbnuqflhYPntKDmnaXorr7nva5zbmFwc2hvdOS9jee9rlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURuZENvbnRhaW5lclBvc2l0aW9uKG51bGwsIHNjcm9sbFBvc2l0aW9uICsgdGhpcy5lZGl0YWJsZVRvcCArICdweCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldFZpc2liaWxpdHkoZmFsc2UpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlSGFuZGxlKCk7XG4gICAgfVxuXG4gICAgdmFsdWVDaGFuZ2VIYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMuZWRpdG9yO1xuICAgICAgICB0aGlzLmVkaXRvci5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wcyA9IHRoaXMuZWRpdG9yLm9wZXJhdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBza2lwID0gb3BzLmxlbmd0aCA9PT0gMSAmJiBPcGVyYXRpb24uaXNTZWxlY3Rpb25PcGVyYXRpb24ob3BzWzBdKTtcbiAgICAgICAgICAgIGlmICghc2tpcCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNoYW5nZSgpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRG5kQ29udGFpbmVyUG9zaXRpb24obGVmdDogc3RyaW5nLCB0b3A6IHN0cmluZykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHRvcCAmJiB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBhcmVudEVsZW1lbnQsICd0b3AnLCB0b3ApO1xuICAgICAgICBsZWZ0ICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocGFyZW50RWxlbWVudCwgJ2xlZnQnLCBsZWZ0KTtcbiAgICB9XG5cbiAgICBnZXRFZGl0YWJsZVRvcChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBvZmZzZXRIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCB7IGhlaWdodCB9ID0gdGhpcy5lZGl0YWJsZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChldmVudC5jbGllbnRZIDwgdGhpcy5kcmFnRWxlbWVudEhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5lZGl0YWJsZVRvcCA9IC10aGlzLmVkaXRhYmxlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlaWdodCA+IGV2ZW50LnBhZ2VZICYmIGV2ZW50LmNsaWVudFkgKyB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0ID49IG9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5lZGl0YWJsZVRvcCA9IGV2ZW50LmNsaWVudFkgLSB0aGlzLmVkaXRhYmxlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0YWJsZVRvcCA9IG51bGw7XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICB0aGlzLmlzRHJhZ2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZHJhZ0NoYW5nZS5lbWl0KHRoaXMuaXNEcmFnaW5nKTtcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmRyYWctc25hcHNob3QtY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBzaG90Q29udGVudC5jbGFzc05hbWUgPSAndGhlLWVkaXRvci10eXBvIGRyYWctc25hcHNob3QtY29udGFpbmVyJztcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LmFwcGVuZENoaWxkKHRoaXMuZHJhZ0VsZW1lbnQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgdGhpcy5kcmFnRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAuMyc7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcmFnRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJyc7XG4gICAgICAgIHRoaXMuaXNEcmFnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgIHRoaXMucmVzZXREcmFnU25hcHNob3RDb250ZW50KCk7XG4gICAgICAgIHRoaXMuZHJhZ0NoYW5nZS5lbWl0KHRoaXMuaXNEcmFnaW5nKTtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnaW5nKSB7XG4gICAgICAgICAgICBtb3ZlRHJhZ05vZGUodGhpcy5lZGl0b3IsIHRoaXMuZHJhZ05vZGUsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJhZ292ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnaW5nICYmICF0aGlzLmlzU2Nyb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmdldEVkaXRhYmxlVG9wKGV2ZW50KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgeyBsZWZ0OiBlZGl0b3JMZWZ0LCB0b3A6IGVkaXRvclRvcCwgaGVpZ2h0IH0gPSB0aGlzLmVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGxldCB0b3AgPSAwO1xuICAgICAgICAgICAgbGV0IGxlZnQgPSAwO1xuXG4gICAgICAgICAgICBpZiAoZWRpdG9yTGVmdCA+IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2xpZW50WCArIHRoaXMuZHJhZ0VsZW1lbnRXaWR0aCAvIDIgPiBvZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gZXZlbnQucGFnZVggLSBlZGl0b3JMZWZ0IC0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gTWF0aC5tYXgoZXZlbnQucGFnZVggLSBlZGl0b3JMZWZ0LCAtZWRpdG9yTGVmdCkgKyAxMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBwYWRkaW5nVG9wID0gMDsgLy8gcGFkZGluZ1RvcDog57yW6L6R5Zmo6Led56a76aG26YOo55qE6Led56a7XG4gICAgICAgICAgICBpZiAoZWRpdG9yVG9wID49IDApIHtcbiAgICAgICAgICAgICAgICAvLyDml6Dmu5rliqjmg4XlhrXkuItcbiAgICAgICAgICAgICAgICB0b3AgPSBldmVudC5jbGllbnRZIC0gdGhpcy5lZGl0YWJsZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgIHBhZGRpbmdUb3AgPSBlZGl0b3JUb3AgLSB0aGlzLmVkaXRhYmxlRWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIOaciea7muWKqOi3neemu1xuICAgICAgICAgICAgICAgIHRvcCA9IE1hdGguYWJzKGVkaXRvclRvcCkgKyBldmVudC5jbGllbnRZOyAvLyDmu5rliqjot53nprsgKyDpvKDmoIdjbGllbnRZXG4gICAgICAgICAgICAgICAgcGFkZGluZ1RvcCA9IGV2ZW50LnBhZ2VZIC0gdGhpcy5lZGl0YWJsZUVsZW1lbnQub2Zmc2V0VG9wIC0gdG9wO1xuICAgICAgICAgICAgICAgIC8vIOmYsuatouW6lemDqOWHuueOsOa7muWKqOadoVxuICAgICAgICAgICAgICAgIGlmIChwYWRkaW5nVG9wIDwgaGVpZ2h0IC0gdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHRvcCArIHBhZGRpbmdUb3A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVEbmRDb250YWluZXJQb3NpdGlvbihsZWZ0ICsgJ3B4JywgdG9wICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnNldFNuYXBzaG90U3R5bGUoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5zZXREcm9wVGh1bWJMaW5lKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERyb3BUaHVtYkxpbmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBnZXRDdXJyZW50VGFyZ2V0KHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldEhvdmVyRGlyZWN0aW9uKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoZGlyZWN0aW9uICYmIGRpcmVjdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nPy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1zbGF0ZS1ub2RlPVwiZWxlbWVudFwiXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgJiYgaXNWYWxpZERyYWcodGhpcy5lZGl0b3IsIHRoaXMuZHJhZ05vZGUubm9kZSwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZHJvcFRodW1iTGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXREcmFnSWNvbihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNEcmFnaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlRW50cnkgPSBmaW5kTm9kZUVudHJ5QnlQb2ludCh0aGlzLmVkaXRvciwgZXZlbnQueCwgZXZlbnQueSwgJ2hpZ2hlc3QnKTtcbiAgICAgICAgICAgIGlmIChub2RlRW50cnkgJiYgIUVkaXRvci5pc0VtcHR5KHRoaXMuZWRpdG9yLCBub2RlRW50cnlbMF0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdE5vZGUgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZSh0aGlzLmVkaXRvciwgbm9kZUVudHJ5WzBdKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICBub2RlOiBub2RlRW50cnlbMF0sXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IG5vZGVFbnRyeVsxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnRWxlbWVudCA9IHJvb3ROb2RlO1xuICAgICAgICAgICAgICAgIGxldCBsaW5lSGVpZ2h0ID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJvb3ROb2RlKVsnbGluZUhlaWdodCddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSByb290Tm9kZS5vZmZzZXRUb3AgKyAocm9vdE5vZGUub2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRUb3AgKyAobGluZUhlaWdodCAtIERSQUdfSUNPTl9TSVpFKSAvIDI7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0TGVmdCA9IHJvb3ROb2RlLm9mZnNldExlZnQgKyAocm9vdE5vZGUub2Zmc2V0UGFyZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRG5kQ29udGFpbmVyUG9zaXRpb24ob2Zmc2V0TGVmdCAtIERSQUdfSUNPTl9TSVpFIC0gRFJBR19JQ09OX09GRlNFVCArICdweCcsIG9mZnNldFRvcCArICdweCcpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eSh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFNuYXBzaG90U3R5bGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLmRyYWdFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICB0aGlzLmRyYWdFbGVtZW50V2lkdGggPSB3aWR0aDtcblxuICAgICAgICBsZXQgZHJhZ1NuYXBzaG90Q29udGVudFN0eWxlID0gYHZpc2liaWxpdHk6IHZpc2libGU7IHdpZHRoOiAke3dpZHRoICsgU05BUFNIT1RfUEFERElOR19XSURUSCAqIDJ9cHg7YDtcbiAgICAgICAgaWYgKGhlaWdodCA+IFNOQVBTSE9UX0xJTUlfSEVJR0hUKSB7XG4gICAgICAgICAgICBkcmFnU25hcHNob3RDb250ZW50U3R5bGUgPSBkcmFnU25hcHNob3RDb250ZW50U3R5bGUgKyAndHJhbnNmb3JtOiBzY2FsZSgwLjQ1KTsnO1xuICAgICAgICAgICAgdGhpcy5kcmFnRWxlbWVudEhlaWdodCA9IHRoaXMuZHJhZ0VsZW1lbnRIZWlnaHQgKiAwLjQ1O1xuICAgICAgICAgICAgdGhpcy5kcmFnRWxlbWVudFdpZHRoID0gdGhpcy5kcmFnRWxlbWVudFdpZHRoICogMC40NTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc25hcHNob3RUb3AgPSAwO1xuICAgICAgICBsZXQgc25hcHNob3RMZWZ0ID0gMDtcbiAgICAgICAgLy8g5LiK5LiL56e75Yqo77ya6LaF5Ye65bGP5bmV6auY5bqm77yM6YeN5paw6K6+572uc25hcHNob3TnmoTkvY3nva5cbiAgICAgICAgaWYgKGV2ZW50LmNsaWVudFkgKyB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0ID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgc25hcHNob3RUb3AgPSB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc25hcHNob3RUb3AgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g5bem5Y+z56e75Yqo77ya6LaF5Ye65bGP5bmV5a695bqm77yM6YeN5paw6K6+572uc25hcHNob3TnmoTkvY3nva5cbiAgICAgICAgaWYgKGV2ZW50LmNsaWVudFggKyB0aGlzLmRyYWdFbGVtZW50V2lkdGggLyAyID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICBzbmFwc2hvdExlZnQgPSB0aGlzLmRyYWdFbGVtZW50V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzbmFwc2hvdExlZnQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGRyYWdTbmFwc2hvdENvbnRlbnRTdHlsZSA9IGRyYWdTbmFwc2hvdENvbnRlbnRTdHlsZSArIGB0b3A6ICR7LXNuYXBzaG90VG9wfXB4OyBsZWZ0OiAkey1zbmFwc2hvdExlZnR9cHg7YDtcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBkcmFnU25hcHNob3RDb250ZW50U3R5bGUpO1xuICAgIH1cblxuICAgIHJlc2V0RHJhZ1NuYXBzaG90Q29udGVudCgpIHtcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LmNsYXNzTmFtZSA9ICdkcmFnLXNuYXBzaG90LWNvbnRhaW5lcic7XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBzaG90Q29udGVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpO1xuICAgICAgICB0aGlzLmRyYWdTbmFwc2hvdENvbnRlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuXG4gICAgc2V0VmlzaWJpbGl0eSh2aXNpYmxlID0gdHJ1ZSkge1xuICAgICAgICAodGhpcy5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnZpc2liaWxpdHkgPSB2aXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGRyYWdnYWJsZT1cInRydWVcIlxuICAgIGNsYXNzPVwidGhlLWRyYWctZHJvcC1pY29uXCJcbiAgICBbbmdTdHlsZV09XCJ7IG9wYWNpdHk6IGlzRHJhZ2luZyA/IDAgOiAnJyB9XCJcbiAgICAoZHJhZ3N0YXJ0KT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIlxuICAgIChkcmFnZW5kKT1cIm9uRHJhZ0VuZCgkZXZlbnQpXCJcbj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJkcmFnXCI+IDwvdGh5LWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { coercePixelsFromCssValue, findNodeEntryByPoint } from '../../../utils/dom';
|
|
2
|
+
import { TheEditor } from '../../../interfaces';
|
|
3
|
+
import { EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
4
|
+
export const getCurrentTarget = (editor, event) => {
|
|
5
|
+
const editorElement = EDITOR_TO_ELEMENT.get(editor);
|
|
6
|
+
const { left, right } = editorElement.getBoundingClientRect();
|
|
7
|
+
let { paddingLeft, paddingRight } = window.getComputedStyle(editorElement, null);
|
|
8
|
+
const paddingLeftPixels = coercePixelsFromCssValue(paddingLeft);
|
|
9
|
+
const paddingRightPixels = coercePixelsFromCssValue(paddingRight);
|
|
10
|
+
let x = event.x;
|
|
11
|
+
if (event.x <= left + paddingLeftPixels || event.x >= right - paddingRightPixels) {
|
|
12
|
+
x = left + paddingLeftPixels;
|
|
13
|
+
}
|
|
14
|
+
const nodeEntry = findNodeEntryByPoint(editor, x, event.y);
|
|
15
|
+
if (nodeEntry) {
|
|
16
|
+
return TheEditor.toDOMNode(editor, nodeEntry[0]);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWN1cnJlbnQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvZG5kL3V0aWxzL2dldC1jdXJyZW50LXRhcmdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBaUIsRUFBRSxLQUFpQixFQUFlLEVBQUU7SUFDbEYsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztJQUNuRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzlELElBQUksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRixNQUFNLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sa0JBQWtCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoQixJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxHQUFHLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLGtCQUFrQixFQUFFO1FBQzlFLENBQUMsR0FBRyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7S0FDaEM7SUFDRCxNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLFNBQVMsRUFBRTtRQUNYLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEQ7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUsIGZpbmROb2RlRW50cnlCeVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZG9tJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRURJVE9SX1RPX0VMRU1FTlQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRUYXJnZXQgPSAoZWRpdG9yOiBUaGVFZGl0b3IsIGV2ZW50OiBNb3VzZUV2ZW50KTogSFRNTEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGVkaXRvckVsZW1lbnQgPSBFRElUT1JfVE9fRUxFTUVOVC5nZXQoZWRpdG9yKSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSBlZGl0b3JFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGxldCB7IHBhZGRpbmdMZWZ0LCBwYWRkaW5nUmlnaHQgfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVkaXRvckVsZW1lbnQsIG51bGwpO1xuICAgIGNvbnN0IHBhZGRpbmdMZWZ0UGl4ZWxzID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHBhZGRpbmdMZWZ0KTtcbiAgICBjb25zdCBwYWRkaW5nUmlnaHRQaXhlbHMgPSBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUocGFkZGluZ1JpZ2h0KTtcbiAgICBsZXQgeCA9IGV2ZW50Lng7XG4gICAgaWYgKGV2ZW50LnggPD0gbGVmdCArIHBhZGRpbmdMZWZ0UGl4ZWxzIHx8IGV2ZW50LnggPj0gcmlnaHQgLSBwYWRkaW5nUmlnaHRQaXhlbHMpIHtcbiAgICAgICAgeCA9IGxlZnQgKyBwYWRkaW5nTGVmdFBpeGVscztcbiAgICB9XG4gICAgY29uc3Qgbm9kZUVudHJ5ID0gZmluZE5vZGVFbnRyeUJ5UG9pbnQoZWRpdG9yLCB4LCBldmVudC55KTtcbiAgICBpZiAobm9kZUVudHJ5KSB7XG4gICAgICAgIHJldHVybiBUaGVFZGl0b3IudG9ET01Ob2RlKGVkaXRvciwgbm9kZUVudHJ5WzBdKTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getCurrentTarget } from './get-current-target';
|
|
2
|
+
export const getHoverDirection = (editor, event) => {
|
|
3
|
+
const rootNode = getCurrentTarget(editor, event);
|
|
4
|
+
if (rootNode) {
|
|
5
|
+
const { top, bottom } = rootNode.getBoundingClientRect();
|
|
6
|
+
const middleHeight = (bottom - top) / 2;
|
|
7
|
+
if (top + middleHeight > event.clientY) {
|
|
8
|
+
return 'top';
|
|
9
|
+
}
|
|
10
|
+
return 'bottom';
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWhvdmVyLWRpcmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC91dGlscy9nZXQtaG92ZXItZGlyZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBaUIsRUFBRSxLQUFpQixFQUFpQixFQUFFO0lBQ3JGLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxJQUFJLFFBQVEsRUFBRTtRQUNWLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxRQUFRLENBQUM7S0FDbkI7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERyb3BEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFRhcmdldCB9IGZyb20gJy4vZ2V0LWN1cnJlbnQtdGFyZ2V0JztcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyRGlyZWN0aW9uID0gKGVkaXRvcjogVGhlRWRpdG9yLCBldmVudDogTW91c2VFdmVudCk6IERyb3BEaXJlY3Rpb24gPT4ge1xuICAgIGNvbnN0IHJvb3ROb2RlID0gZ2V0Q3VycmVudFRhcmdldChlZGl0b3IsIGV2ZW50KTtcbiAgICBpZiAocm9vdE5vZGUpIHtcbiAgICAgICAgY29uc3QgeyB0b3AsIGJvdHRvbSB9ID0gcm9vdE5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IG1pZGRsZUhlaWdodCA9IChib3R0b20gLSB0b3ApIC8gMjtcbiAgICAgICAgaWYgKHRvcCArIG1pZGRsZUhlaWdodCA+IGV2ZW50LmNsaWVudFkpIHtcbiAgICAgICAgICAgIHJldHVybiAndG9wJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Editor } from 'slate';
|
|
2
|
+
import { DefaultElementOptions, TheEditor } from '../../../interfaces';
|
|
3
|
+
import { mergeElementOptions } from '../../../utils/merge-element-options';
|
|
4
|
+
export const isValidDrag = (editor, dragNode, currentTarget) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const node = TheEditor.toSlateNode(editor, currentTarget);
|
|
7
|
+
const dropPath = TheEditor.findPath(editor, node);
|
|
8
|
+
const dragPath = TheEditor.findPath(editor, dragNode);
|
|
9
|
+
if (dragPath[0] === dropPath[0] && dropPath.length > 1) {
|
|
10
|
+
// 阻止list元素拖入自身
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
let allElementOptions = DefaultElementOptions;
|
|
14
|
+
if ((_a = editor.extraElementOptions) === null || _a === void 0 ? void 0 : _a.length) {
|
|
15
|
+
const extraInfo = mergeElementOptions(editor.extraElementOptions);
|
|
16
|
+
allElementOptions = Object.values(extraInfo);
|
|
17
|
+
}
|
|
18
|
+
const types = allElementOptions.map(item => item.type);
|
|
19
|
+
if (types.indexOf(node.type) > -1 && allElementOptions[types.indexOf(node.type)].isSecondaryContainer) {
|
|
20
|
+
// 阻止向table-celld等二级容器中拖入
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
let containerParent = Editor.above(editor, {
|
|
24
|
+
at: dropPath,
|
|
25
|
+
mode: 'lowest',
|
|
26
|
+
match: (node) => {
|
|
27
|
+
return node && node.type && types.includes(node.type);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
if (containerParent) {
|
|
31
|
+
const { inValidChildrenTypes } = allElementOptions.find(item => item.type === containerParent[0].type);
|
|
32
|
+
if (inValidChildrenTypes.includes(dragNode.type)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtdmFsaWQtZHJhZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC91dGlscy9pcy12YWxpZC1kcmFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWlCLEVBQUUsUUFBdUIsRUFBRSxhQUEwQixFQUFFLEVBQUU7O0lBQ2xHLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBa0IsQ0FBQztJQUMzRSxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0RCxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDcEQsZUFBZTtRQUNmLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsSUFBSSxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUM5QyxJQUFJLE1BQUEsTUFBTSxDQUFDLG1CQUFtQiwwQ0FBRSxNQUFNLEVBQUU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNoRDtJQUNELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUU7UUFDbkcseUJBQXlCO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsSUFBSSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDdkMsRUFBRSxFQUFFLFFBQVE7UUFDWixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxDQUFDLElBQW1CLEVBQUUsRUFBRTtZQUMzQixPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7S0FDSixDQUFDLENBQUM7SUFFSCxJQUFJLGVBQWUsRUFBRTtRQUNqQixNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RyxJQUFJLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUMsT0FBTyxLQUFLLENBQUM7U0FDaEI7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEVsZW1lbnRPcHRpb25zLCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IG1lcmdlRWxlbWVudE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9tZXJnZS1lbGVtZW50LW9wdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZERyYWcgPSAoZWRpdG9yOiBUaGVFZGl0b3IsIGRyYWdOb2RlOiBDdXN0b21FbGVtZW50LCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBUaGVFZGl0b3IudG9TbGF0ZU5vZGUoZWRpdG9yLCBjdXJyZW50VGFyZ2V0KSBhcyBDdXN0b21FbGVtZW50O1xuICAgIGNvbnN0IGRyb3BQYXRoID0gVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgY29uc3QgZHJhZ1BhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBkcmFnTm9kZSk7XG4gICAgaWYgKGRyYWdQYXRoWzBdID09PSBkcm9wUGF0aFswXSAmJiBkcm9wUGF0aC5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIOmYu+atomxpc3TlhYPntKDmi5blhaXoh6rouqtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgYWxsRWxlbWVudE9wdGlvbnMgPSBEZWZhdWx0RWxlbWVudE9wdGlvbnM7XG4gICAgaWYgKGVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZXh0cmFJbmZvID0gbWVyZ2VFbGVtZW50T3B0aW9ucyhlZGl0b3IuZXh0cmFFbGVtZW50T3B0aW9ucyk7XG4gICAgICAgIGFsbEVsZW1lbnRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhleHRyYUluZm8pO1xuICAgIH1cbiAgICBjb25zdCB0eXBlcyA9IGFsbEVsZW1lbnRPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0udHlwZSk7XG4gICAgaWYgKHR5cGVzLmluZGV4T2Yobm9kZS50eXBlKSA+IC0xICYmIGFsbEVsZW1lbnRPcHRpb25zW3R5cGVzLmluZGV4T2Yobm9kZS50eXBlKV0uaXNTZWNvbmRhcnlDb250YWluZXIpIHtcbiAgICAgICAgLy8g6Zi75q2i5ZCRdGFibGUtY2VsbGTnrYnkuoznuqflrrnlmajkuK3mi5blhaVcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgY29udGFpbmVyUGFyZW50ID0gRWRpdG9yLmFib3ZlKGVkaXRvciwge1xuICAgICAgICBhdDogZHJvcFBhdGgsXG4gICAgICAgIG1vZGU6ICdsb3dlc3QnLFxuICAgICAgICBtYXRjaDogKG5vZGU6IEN1c3RvbUVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBub2RlICYmIG5vZGUudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyhub2RlLnR5cGUpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoY29udGFpbmVyUGFyZW50KSB7XG4gICAgICAgIGNvbnN0IHsgaW5WYWxpZENoaWxkcmVuVHlwZXMgfSA9IGFsbEVsZW1lbnRPcHRpb25zLmZpbmQoaXRlbSA9PiBpdGVtLnR5cGUgPT09IGNvbnRhaW5lclBhcmVudFswXS50eXBlKTtcbiAgICAgICAgaWYgKGluVmFsaWRDaGlsZHJlblR5cGVzLmluY2x1ZGVzKGRyYWdOb2RlLnR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TheEditor } from '../../../interfaces';
|
|
2
|
+
import { Path, Editor, Transforms } from 'slate';
|
|
3
|
+
import { removeDropThumbLine } from './remove-drop-thumb-line';
|
|
4
|
+
import { EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
5
|
+
import { DROP_THUMB_LINE } from '../../../constants';
|
|
6
|
+
export const moveDragNode = (editor, dragNode, event) => {
|
|
7
|
+
event.stopPropagation();
|
|
8
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
9
|
+
const dropThumbLine = element.querySelector('.' + DROP_THUMB_LINE);
|
|
10
|
+
const parentElement = dropThumbLine && dropThumbLine.parentNode;
|
|
11
|
+
if (parentElement) {
|
|
12
|
+
const node = TheEditor.toSlateNode(editor, parentElement);
|
|
13
|
+
let dropPath = node && TheEditor.findPath(editor, node);
|
|
14
|
+
if (dropPath.length) {
|
|
15
|
+
const dragPath = dragNode.path;
|
|
16
|
+
const before = Path.isBefore(dragPath, dropPath) && Path.isSibling(dragPath, dropPath);
|
|
17
|
+
dropPath = before ? dropPath : Path.next(dropPath);
|
|
18
|
+
if (dropPath.length) {
|
|
19
|
+
Editor.withoutNormalizing(editor, () => {
|
|
20
|
+
Transforms.moveNodes(editor, {
|
|
21
|
+
at: dragPath,
|
|
22
|
+
to: dropPath
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
removeDropThumbLine(editor);
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1kcmFnLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9kbmQvdXRpbHMvbW92ZS1kcmFnLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQWlCLEVBQUUsUUFBa0IsRUFBRSxLQUFpQixFQUFFLEVBQUU7SUFDckYsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUNuRSxNQUFNLGFBQWEsR0FBRyxhQUFhLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQztJQUNoRSxJQUFJLGFBQWEsRUFBRTtRQUNmLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFELElBQUksUUFBUSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RixRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNqQixNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDbkMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7d0JBQ3pCLEVBQUUsRUFBRSxRQUFRO3dCQUNaLEVBQUUsRUFBRSxRQUFRO3FCQUNmLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7S0FDSjtJQUVELG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdOb2RlLCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhdGgsIEVkaXRvciwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IHJlbW92ZURyb3BUaHVtYkxpbmUgfSBmcm9tICcuL3JlbW92ZS1kcm9wLXRodW1iLWxpbmUnO1xuaW1wb3J0IHsgRURJVE9SX1RPX0VMRU1FTlQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IERST1BfVEhVTUJfTElORSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBtb3ZlRHJhZ05vZGUgPSAoZWRpdG9yOiBUaGVFZGl0b3IsIGRyYWdOb2RlOiBEcmFnTm9kZSwgZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBlbGVtZW50ID0gRURJVE9SX1RPX0VMRU1FTlQuZ2V0KGVkaXRvcik7XG4gICAgY29uc3QgZHJvcFRodW1iTGluZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLicgKyBEUk9QX1RIVU1CX0xJTkUpO1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBkcm9wVGh1bWJMaW5lICYmIGRyb3BUaHVtYkxpbmUucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlID0gVGhlRWRpdG9yLnRvU2xhdGVOb2RlKGVkaXRvciwgcGFyZW50RWxlbWVudCk7XG4gICAgICAgIGxldCBkcm9wUGF0aCA9IG5vZGUgJiYgVGhlRWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgbm9kZSk7XG4gICAgICAgIGlmIChkcm9wUGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRyYWdQYXRoID0gZHJhZ05vZGUucGF0aDtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IFBhdGguaXNCZWZvcmUoZHJhZ1BhdGgsIGRyb3BQYXRoKSAmJiBQYXRoLmlzU2libGluZyhkcmFnUGF0aCwgZHJvcFBhdGgpO1xuICAgICAgICAgICAgZHJvcFBhdGggPSBiZWZvcmUgPyBkcm9wUGF0aCA6IFBhdGgubmV4dChkcm9wUGF0aCk7XG4gICAgICAgICAgICBpZiAoZHJvcFBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5tb3ZlTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdDogZHJhZ1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICB0bzogZHJvcFBhdGhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVEcm9wVGh1bWJMaW5lKGVkaXRvcik7XG59O1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EDITOR_TO_ELEMENT } from 'slate-angular';
|
|
2
|
+
import { DROP_THUMB_LINE } from '../../../constants';
|
|
3
|
+
export const removeDropThumbLine = (editor) => {
|
|
4
|
+
const element = EDITOR_TO_ELEMENT.get(editor);
|
|
5
|
+
const dropThumbLine = element.querySelector('.' + DROP_THUMB_LINE);
|
|
6
|
+
if (dropThumbLine) {
|
|
7
|
+
dropThumbLine.remove();
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWRyb3AtdGh1bWItbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC91dGlscy9yZW1vdmUtZHJvcC10aHVtYi1saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUU7SUFDckQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLElBQUksYUFBYSxFQUFFO1FBQ2YsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQzFCO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRURJVE9SX1RPX0VMRU1FTlQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IERST1BfVEhVTUJfTElORSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IHJlbW92ZURyb3BUaHVtYkxpbmUgPSAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gRURJVE9SX1RPX0VMRU1FTlQuZ2V0KGVkaXRvcik7XG4gICAgY29uc3QgZHJvcFRodW1iTGluZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLicgKyBEUk9QX1RIVU1CX0xJTkUpO1xuICAgIGlmIChkcm9wVGh1bWJMaW5lKSB7XG4gICAgICAgIGRyb3BUaHVtYkxpbmUucmVtb3ZlKCk7XG4gICAgfVxufTtcbiJdfQ==
|