@worktile/theia 2.3.0-next.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bundles/worktile-theia.umd.js +144 -471
  2. package/bundles/worktile-theia.umd.js.map +1 -1
  3. package/constants/default.d.ts +0 -2
  4. package/editor.component.d.ts +0 -2
  5. package/editor.module.d.ts +24 -26
  6. package/esm2015/constants/default.js +1 -2
  7. package/esm2015/editor.component.js +17 -14
  8. package/esm2015/editor.module.js +3 -6
  9. package/esm2015/interfaces/editor.js +1 -1
  10. package/esm2015/plugins/align/align.editor.js +6 -2
  11. package/esm2015/plugins/image/image.component.js +13 -8
  12. package/esm2015/utils/dom.js +5 -3
  13. package/esm2015/utils/index.js +3 -1
  14. package/fesm2015/worktile-theia.js +137 -462
  15. package/fesm2015/worktile-theia.js.map +1 -1
  16. package/interfaces/editor.d.ts +1 -6
  17. package/package.json +1 -1
  18. package/plugins/image/image.component.scss +0 -7
  19. package/plugins/table/components/table.component.scss +2 -2
  20. package/styles/editor.scss +160 -133
  21. package/styles/index.scss +1 -2
  22. package/styles/typo.scss +12 -1
  23. package/utils/index.d.ts +2 -0
  24. package/esm2015/plugins/dnd/component/dnd.component.js +0 -254
  25. package/esm2015/plugins/dnd/utils/get-current-target.js +0 -19
  26. package/esm2015/plugins/dnd/utils/get-hover-direction.js +0 -13
  27. package/esm2015/plugins/dnd/utils/is-valid-drag.js +0 -38
  28. package/esm2015/plugins/dnd/utils/move-drag-node.js +0 -30
  29. package/esm2015/plugins/dnd/utils/remove-drop-thumb-line.js +0 -10
  30. package/plugins/dnd/component/dnd.component.d.ts +0 -42
  31. package/plugins/dnd/component/dnd.component.scss +0 -60
  32. package/plugins/dnd/utils/get-current-target.d.ts +0 -2
  33. package/plugins/dnd/utils/get-hover-direction.d.ts +0 -3
  34. package/plugins/dnd/utils/is-valid-drag.d.ts +0 -3
  35. package/plugins/dnd/utils/move-drag-node.d.ts +0 -2
  36. package/plugins/dnd/utils/remove-drop-thumb-line.d.ts +0 -2
@@ -1,254 +0,0 @@
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
- const DRAG_SNAPSHOT_OFFSET = 15; // 拖拽内容距离鼠标偏移量
21
- export class TheDndComponent {
22
- constructor(renderer, elementRef, ngZone, cdr) {
23
- this.renderer = renderer;
24
- this.elementRef = elementRef;
25
- this.ngZone = ngZone;
26
- this.cdr = cdr;
27
- this.isDraging = false;
28
- this.destroy$ = new Subject();
29
- this.dragChange = new EventEmitter();
30
- this.dropThumbLine = document.createElement('div');
31
- this.dropThumbLine.className = DROP_THUMB_LINE;
32
- }
33
- get nativeElement() {
34
- return this.elementRef.nativeElement;
35
- }
36
- get editableElement() {
37
- return this.editor && EDITOR_TO_ELEMENT.get(this.editor);
38
- }
39
- ngAfterViewInit() {
40
- const contextService = this.editor.injector.get(TheContextService);
41
- this.ngZone.runOutsideAngular(() => {
42
- merge(fromEvent(this.editableElement, `mousemove`), fromEvent(this.editableElement, `mouseleave`))
43
- .pipe(takeUntil(this.destroy$), filter(() => {
44
- return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
45
- }))
46
- .subscribe(e => this.setDragIcon(e));
47
- fromEvent(document, `drop`)
48
- .pipe(takeUntil(this.destroy$), filter(() => {
49
- return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
50
- }))
51
- .subscribe(e => this.onDrop(e));
52
- fromEvent(document, `dragover`)
53
- .pipe(takeUntil(this.destroy$), filter(() => {
54
- return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
55
- }))
56
- .subscribe(e => this.onDragover(e));
57
- fromEvent(document, `scroll`)
58
- .pipe(takeUntil(this.destroy$), filter(() => {
59
- return !contextService.getOptions().theOptions.readonly && contextService.getOptions().theOptions.dragAndDrop;
60
- }))
61
- .subscribe(e => {
62
- e.preventDefault();
63
- let scrollPosition = window.scrollY;
64
- if (!this.isScrolling && this.isDraging) {
65
- window.requestAnimationFrame(() => {
66
- if (this.editableTop) {
67
- // 滚动过程中,通过设置父级元素来设置snapshot位置
68
- this.updateDndContainerPosition(null, scrollPosition + this.editableTop + 'px');
69
- }
70
- this.isScrolling = false;
71
- });
72
- this.isScrolling = true;
73
- }
74
- });
75
- });
76
- this.setVisibility(false);
77
- this.valueChangeHandle();
78
- }
79
- valueChangeHandle() {
80
- const { onChange } = this.editor;
81
- this.editor.onChange = () => {
82
- const ops = this.editor.operations;
83
- const skip = ops.length === 1 && Operation.isSelectionOperation(ops[0]);
84
- if (!skip) {
85
- this.setVisibility(false);
86
- }
87
- onChange();
88
- };
89
- }
90
- updateDndContainerPosition(left, top) {
91
- const element = this.elementRef.nativeElement;
92
- const parentElement = element.parentElement;
93
- top && this.renderer.setStyle(parentElement, 'top', top);
94
- left && this.renderer.setStyle(parentElement, 'left', left);
95
- }
96
- getEditableTop(event) {
97
- const offsetHeight = document.documentElement.offsetHeight;
98
- const { height } = this.editableElement.getBoundingClientRect();
99
- if (event.clientY < this.dragElementHeight) {
100
- this.editableTop = -this.editableElement.offsetTop;
101
- return;
102
- }
103
- if (height > event.pageY && event.clientY + this.dragElementHeight >= offsetHeight) {
104
- this.editableTop = event.clientY - this.editableElement.offsetTop;
105
- return;
106
- }
107
- this.editableTop = null;
108
- }
109
- onDragStart(event) {
110
- this.isDraging = true;
111
- this.dragChange.emit(this.isDraging);
112
- this.dragSnapshotContent = this.elementRef.nativeElement.nextSibling;
113
- this.dragSnapshotContent.className = 'the-editor-typo drag-snapshot-container';
114
- this.dragSnapshotContent.appendChild(this.dragElement.cloneNode(true));
115
- this.dragElement.style.opacity = '0.3';
116
- }
117
- onDragEnd(event) {
118
- this.dragElement.style.opacity = '';
119
- this.isDraging = false;
120
- this.setVisibility(false);
121
- this.resetDragSnapshotContent();
122
- this.dragChange.emit(this.isDraging);
123
- }
124
- onDrop(event) {
125
- event.preventDefault();
126
- if (this.isDraging) {
127
- moveDragNode(this.editor, this.dragNode, event);
128
- }
129
- }
130
- onDragover(event) {
131
- event.preventDefault();
132
- if (this.isDraging && !this.isScrolling) {
133
- this.getEditableTop(event);
134
- const offsetWidth = document.documentElement.offsetWidth;
135
- const { left: editorLeft, top: editorTop, height } = this.editableElement.getBoundingClientRect();
136
- let top = 0;
137
- let left = 0;
138
- if (event.clientX + this.dragElementWidth / 2 > offsetWidth) {
139
- left = event.pageX - editorLeft - this.nativeElement.offsetWidth;
140
- }
141
- else {
142
- left = Math.max(event.pageX - editorLeft, -editorLeft) + DRAG_SNAPSHOT_OFFSET;
143
- }
144
- const scrollTop = document.documentElement.scrollTop;
145
- const editorMarginTop = editorTop + scrollTop; // 编辑器距离顶部间距
146
- if (event.clientY + this.dragElementHeight + DRAG_SNAPSHOT_OFFSET > document.documentElement.offsetHeight) {
147
- top = event.pageY - editorMarginTop - this.nativeElement.offsetHeight + DRAG_SNAPSHOT_OFFSET;
148
- top = Math.min(top, height - this.editableElement.offsetTop);
149
- }
150
- else {
151
- top = event.pageY - editorMarginTop + this.editableElement.offsetTop + DRAG_SNAPSHOT_OFFSET;
152
- }
153
- this.updateDndContainerPosition(left + 'px', top + 'px');
154
- this.setSnapshotStyle(event);
155
- this.setDropThumbLine(event);
156
- }
157
- }
158
- setDropThumbLine(event) {
159
- var _a;
160
- let element = getCurrentTarget(this.editor, event);
161
- const direction = getHoverDirection(this.editor, event);
162
- if (element) {
163
- if (direction && direction === 'top') {
164
- element = (_a = element.previousElementSibling) === null || _a === void 0 ? void 0 : _a.querySelector('[data-slate-node="element"]');
165
- }
166
- if (element && isValidDrag(this.editor, this.dragNode.node, element)) {
167
- element.appendChild(this.dropThumbLine);
168
- }
169
- }
170
- }
171
- setDragIcon(event) {
172
- if (!this.isDraging) {
173
- const nodeEntry = findNodeEntryByPoint(this.editor, event.x, event.y, 'highest');
174
- if (nodeEntry && !Editor.isEmpty(this.editor, nodeEntry[0])) {
175
- const rootNode = AngularEditor.toDOMNode(this.editor, nodeEntry[0]);
176
- this.dragNode = {
177
- node: nodeEntry[0],
178
- path: nodeEntry[1]
179
- };
180
- this.dragElement = rootNode;
181
- let lineHeight = coercePixelsFromCssValue(window.getComputedStyle(rootNode)['lineHeight']);
182
- const offsetTop = rootNode.offsetTop + rootNode.offsetParent.offsetTop + (lineHeight - DRAG_ICON_SIZE) / 2;
183
- const offsetLeft = rootNode.offsetLeft + rootNode.offsetParent.offsetLeft;
184
- this.updateDndContainerPosition(offsetLeft - DRAG_ICON_SIZE - DRAG_ICON_OFFSET + 'px', offsetTop + 'px');
185
- this.setVisibility(true);
186
- }
187
- else {
188
- this.setVisibility(false);
189
- }
190
- }
191
- }
192
- setSnapshotStyle(event) {
193
- const { width, height } = this.dragElement.getBoundingClientRect();
194
- this.dragElementHeight = height;
195
- this.dragElementWidth = width;
196
- let dragSnapshotContentStyle = `display: block; min-height: 0; width: ${width + SNAPSHOT_PADDING_WIDTH * 2}px;`;
197
- if (height > SNAPSHOT_LIMI_HEIGHT) {
198
- dragSnapshotContentStyle = dragSnapshotContentStyle + 'transform: scale(0.45);';
199
- this.dragElementHeight = this.dragElementHeight * 0.45;
200
- this.dragElementWidth = this.dragElementWidth * 0.45;
201
- }
202
- let snapshotTop = 0;
203
- let snapshotLeft = 0;
204
- // 上下移动:超出屏幕高度,重新设置snapshot的位置
205
- if (event.clientY + this.dragElementHeight + DRAG_SNAPSHOT_OFFSET > document.documentElement.offsetHeight) {
206
- snapshotTop = this.dragElementHeight;
207
- }
208
- else {
209
- snapshotTop = 0;
210
- }
211
- // 左右移动:超出屏幕宽度,重新设置snapshot的位置
212
- if (event.clientX + this.dragElementWidth / 2 > document.documentElement.offsetWidth) {
213
- snapshotLeft = this.dragElementWidth;
214
- }
215
- else {
216
- snapshotLeft = 0;
217
- }
218
- dragSnapshotContentStyle = dragSnapshotContentStyle + `top: ${-snapshotTop}px; left: ${-snapshotLeft}px;`;
219
- this.dragSnapshotContent.setAttribute('style', dragSnapshotContentStyle);
220
- }
221
- resetDragSnapshotContent() {
222
- this.dragSnapshotContent.className = 'drag-snapshot-container';
223
- this.dragSnapshotContent.setAttribute('style', '');
224
- this.dragSnapshotContent.innerHTML = '';
225
- }
226
- setVisibility(visible = true) {
227
- const dndContainer = this.nativeElement.parentNode;
228
- dndContainer.style.display = visible ? 'block' : 'none';
229
- }
230
- ngOnDestroy() {
231
- this.destroy$.next();
232
- this.destroy$.complete();
233
- }
234
- }
235
- 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 });
236
- 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"] }] });
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: TheDndComponent, decorators: [{
238
- type: Component,
239
- args: [{
240
- selector: '[theDnd]',
241
- templateUrl: './dnd.component.html',
242
- host: {
243
- class: 'the-drag-drop'
244
- }
245
- }]
246
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { editor: [{
247
- type: Input
248
- }], dragChange: [{
249
- type: Output
250
- }], content: [{
251
- type: ViewChild,
252
- args: ['content', { static: false }]
253
- }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC9jb21wb25lbnQvZG5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL2RuZC9jb21wb25lbnQvZG5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFckQsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDakMsTUFB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d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCO2lCQUNKOzhLQVVZLE1BQU07c0JBQWQsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQWNrQyxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkaXRvciwgT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgRURJVE9SX1RPX0VMRU1FTlQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IERST1BfVEhVTUJfTElORSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEcmFnTm9kZSwgRWxlbWVudE9wdGlvbnNJbmZvIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUsIGZpbmROb2RlRW50cnlCeVBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZG9tJztcbmltcG9ydCB7IGdldEN1cnJlbnRUYXJnZXQgfSBmcm9tICcuLi91dGlscy9nZXQtY3VycmVudC10YXJnZXQnO1xuaW1wb3J0IHsgZ2V0SG92ZXJEaXJlY3Rpb24gfSBmcm9tICcuLi91dGlscy9nZXQtaG92ZXItZGlyZWN0aW9uJztcbmltcG9ydCB7IG1vdmVEcmFnTm9kZSB9IGZyb20gJy4uL3V0aWxzL21vdmUtZHJhZy1ub2RlJztcbmltcG9ydCB7IGlzVmFsaWREcmFnIH0gZnJvbSAnLi4vdXRpbHMvaXMtdmFsaWQtZHJhZyc7XG5cbmNvbnN0IFNOQVBTSE9UX1BBRERJTkdfV0lEVEggPSA1O1xuY29uc3QgU05BUFNIT1RfTElNSV9IRUlHSFQgPSA3MDtcbmNvbnN0IERSQUdfSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBEUkFHX0lDT05fT0ZGU0VUID0gNTtcbmNvbnN0IERSQUdfU05BUFNIT1RfT0ZGU0VUID0gMTU7IC8vIOaLluaLveWGheWuuei3neemu+m8oOagh+WBj+enu+mHj1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t0aGVEbmRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG5kLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWRyYWctZHJvcCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRoZURuZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgaXNEcmFnaW5nID0gZmFsc2U7XG5cbiAgICBkcmFnTm9kZTogRHJhZ05vZGU7XG5cbiAgICBkcmFnU25hcHNob3RDb250ZW50OiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgQE91dHB1dCgpIGRyYWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGRyYWdFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGRyYWdFbGVtZW50SGVpZ2h0OiBudW1iZXI7XG5cbiAgICBkcmFnRWxlbWVudFdpZHRoOiBudW1iZXI7XG5cbiAgICBpc1Njcm9sbGluZzogYm9vbGVhbjtcblxuICAgIGRyb3BUaHVtYkxpbmU6IEhUTUxFbGVtZW50O1xuXG4gICAgZWRpdGFibGVUb3A6IG51bWJlcjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGVudDogRWxlbWVudFJlZjtcblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBlZGl0YWJsZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvciAmJiBFRElUT1JfVE9fRUxFTUVOVC5nZXQodGhpcy5lZGl0b3IpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgdGhpcy5kcm9wVGh1bWJMaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuZHJvcFRodW1iTGluZS5jbGFzc05hbWUgPSBEUk9QX1RIVU1CX0xJTkU7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IHRoaXMuZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIG1lcmdlKGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmVkaXRhYmxlRWxlbWVudCwgYG1vdXNlbW92ZWApLCBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lZGl0YWJsZUVsZW1lbnQsIGBtb3VzZWxlYXZlYCkpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMucmVhZG9ubHkgJiYgY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMuZHJhZ0FuZERyb3A7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB0aGlzLnNldERyYWdJY29uKGUpKTtcbiAgICAgICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgYGRyb3BgKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS50aGVPcHRpb25zLnJlYWRvbmx5ICYmIGNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS50aGVPcHRpb25zLmRyYWdBbmREcm9wO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGUgPT4gdGhpcy5vbkRyb3AoZSkpO1xuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCBgZHJhZ292ZXJgKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS50aGVPcHRpb25zLnJlYWRvbmx5ICYmIGNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS50aGVPcHRpb25zLmRyYWdBbmREcm9wO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGUgPT4gdGhpcy5vbkRyYWdvdmVyKGUpKTtcbiAgICAgICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgYHNjcm9sbGApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMucmVhZG9ubHkgJiYgY29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnRoZU9wdGlvbnMuZHJhZ0FuZERyb3A7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFBvc2l0aW9uID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Njcm9sbGluZyAmJiB0aGlzLmlzRHJhZ2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGFibGVUb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g5rua5Yqo6L+H56iL5Lit77yM6YCa6L+H6K6+572u54i257qn5YWD57Sg5p2l6K6+572uc25hcHNob3TkvY3nva5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEbmRDb250YWluZXJQb3NpdGlvbihudWxsLCBzY3JvbGxQb3NpdGlvbiArIHRoaXMuZWRpdGFibGVUb3AgKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRWaXNpYmlsaXR5KGZhbHNlKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZUhhbmRsZSgpO1xuICAgIH1cblxuICAgIHZhbHVlQ2hhbmdlSGFuZGxlKCkge1xuICAgICAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgdGhpcy5lZGl0b3Iub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHMgPSB0aGlzLmVkaXRvci5vcGVyYXRpb25zO1xuICAgICAgICAgICAgY29uc3Qgc2tpcCA9IG9wcy5sZW5ndGggPT09IDEgJiYgT3BlcmF0aW9uLmlzU2VsZWN0aW9uT3BlcmF0aW9uKG9wc1swXSk7XG4gICAgICAgICAgICBpZiAoIXNraXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpc2liaWxpdHkoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DaGFuZ2UoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZURuZENvbnRhaW5lclBvc2l0aW9uKGxlZnQ6IHN0cmluZywgdG9wOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB0b3AgJiYgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwYXJlbnRFbGVtZW50LCAndG9wJywgdG9wKTtcbiAgICAgICAgbGVmdCAmJiB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBhcmVudEVsZW1lbnQsICdsZWZ0JywgbGVmdCk7XG4gICAgfVxuXG4gICAgZ2V0RWRpdGFibGVUb3AoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQgfSA9IHRoaXMuZWRpdGFibGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBpZiAoZXZlbnQuY2xpZW50WSA8IHRoaXMuZHJhZ0VsZW1lbnRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGVUb3AgPSAtdGhpcy5lZGl0YWJsZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoZWlnaHQgPiBldmVudC5wYWdlWSAmJiBldmVudC5jbGllbnRZICsgdGhpcy5kcmFnRWxlbWVudEhlaWdodCA+PSBvZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGVUb3AgPSBldmVudC5jbGllbnRZIC0gdGhpcy5lZGl0YWJsZUVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWRpdGFibGVUb3AgPSBudWxsO1xuICAgIH1cblxuICAgIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pc0RyYWdpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRyYWdDaGFuZ2UuZW1pdCh0aGlzLmlzRHJhZ2luZyk7XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBzaG90Q29udGVudCA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkubmV4dFNpYmxpbmcgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBzaG90Q29udGVudC5jbGFzc05hbWUgPSAndGhlLWVkaXRvci10eXBvIGRyYWctc25hcHNob3QtY29udGFpbmVyJztcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LmFwcGVuZENoaWxkKHRoaXMuZHJhZ0VsZW1lbnQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgdGhpcy5kcmFnRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAuMyc7XG4gICAgfVxuXG4gICAgb25EcmFnRW5kKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcmFnRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJyc7XG4gICAgICAgIHRoaXMuaXNEcmFnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgIHRoaXMucmVzZXREcmFnU25hcHNob3RDb250ZW50KCk7XG4gICAgICAgIHRoaXMuZHJhZ0NoYW5nZS5lbWl0KHRoaXMuaXNEcmFnaW5nKTtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnaW5nKSB7XG4gICAgICAgICAgICBtb3ZlRHJhZ05vZGUodGhpcy5lZGl0b3IsIHRoaXMuZHJhZ05vZGUsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJhZ292ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEcmFnaW5nICYmICF0aGlzLmlzU2Nyb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmdldEVkaXRhYmxlVG9wKGV2ZW50KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgeyBsZWZ0OiBlZGl0b3JMZWZ0LCB0b3A6IGVkaXRvclRvcCwgaGVpZ2h0IH0gPSB0aGlzLmVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGxldCB0b3AgPSAwO1xuICAgICAgICAgICAgbGV0IGxlZnQgPSAwO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmNsaWVudFggKyB0aGlzLmRyYWdFbGVtZW50V2lkdGggLyAyID4gb2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gZXZlbnQucGFnZVggLSBlZGl0b3JMZWZ0IC0gdGhpcy5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gTWF0aC5tYXgoZXZlbnQucGFnZVggLSBlZGl0b3JMZWZ0LCAtZWRpdG9yTGVmdCkgKyBEUkFHX1NOQVBTSE9UX09GRlNFVDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRvck1hcmdpblRvcCA9IGVkaXRvclRvcCArIHNjcm9sbFRvcDsgLy8g57yW6L6R5Zmo6Led56a76aG26YOo6Ze06LedXG4gICAgICAgICAgICBpZiAoZXZlbnQuY2xpZW50WSArIHRoaXMuZHJhZ0VsZW1lbnRIZWlnaHQgKyBEUkFHX1NOQVBTSE9UX09GRlNFVCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0b3AgPSBldmVudC5wYWdlWSAtIGVkaXRvck1hcmdpblRvcCAtIHRoaXMubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyBEUkFHX1NOQVBTSE9UX09GRlNFVDtcbiAgICAgICAgICAgICAgICB0b3AgPSBNYXRoLm1pbih0b3AsIGhlaWdodCAtIHRoaXMuZWRpdGFibGVFbGVtZW50Lm9mZnNldFRvcCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvcCA9IGV2ZW50LnBhZ2VZIC0gZWRpdG9yTWFyZ2luVG9wICsgdGhpcy5lZGl0YWJsZUVsZW1lbnQub2Zmc2V0VG9wICsgRFJBR19TTkFQU0hPVF9PRkZTRVQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURuZENvbnRhaW5lclBvc2l0aW9uKGxlZnQgKyAncHgnLCB0b3AgKyAncHgnKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U25hcHNob3RTdHlsZShldmVudCk7XG4gICAgICAgICAgICB0aGlzLnNldERyb3BUaHVtYkxpbmUoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0RHJvcFRodW1iTGluZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBsZXQgZWxlbWVudCA9IGdldEN1cnJlbnRUYXJnZXQodGhpcy5lZGl0b3IsIGV2ZW50KTtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZ2V0SG92ZXJEaXJlY3Rpb24odGhpcy5lZGl0b3IsIGV2ZW50KTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgZGlyZWN0aW9uID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc/LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNsYXRlLW5vZGU9XCJlbGVtZW50XCJdJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBpc1ZhbGlkRHJhZyh0aGlzLmVkaXRvciwgdGhpcy5kcmFnTm9kZS5ub2RlLCBlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kcm9wVGh1bWJMaW5lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERyYWdJY29uKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pc0RyYWdpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVFbnRyeSA9IGZpbmROb2RlRW50cnlCeVBvaW50KHRoaXMuZWRpdG9yLCBldmVudC54LCBldmVudC55LCAnaGlnaGVzdCcpO1xuICAgICAgICAgICAgaWYgKG5vZGVFbnRyeSAmJiAhRWRpdG9yLmlzRW1wdHkodGhpcy5lZGl0b3IsIG5vZGVFbnRyeVswXSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb290Tm9kZSA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCBub2RlRW50cnlbMF0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ05vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IG5vZGVFbnRyeVswXSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogbm9kZUVudHJ5WzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdFbGVtZW50ID0gcm9vdE5vZGU7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmVIZWlnaHQgPSBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUod2luZG93LmdldENvbXB1dGVkU3R5bGUocm9vdE5vZGUpWydsaW5lSGVpZ2h0J10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFRvcCA9IHJvb3ROb2RlLm9mZnNldFRvcCArIChyb290Tm9kZS5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFRvcCArIChsaW5lSGVpZ2h0IC0gRFJBR19JQ09OX1NJWkUpIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gcm9vdE5vZGUub2Zmc2V0TGVmdCArIChyb290Tm9kZS5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldExlZnQ7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEbmRDb250YWluZXJQb3NpdGlvbihvZmZzZXRMZWZ0IC0gRFJBR19JQ09OX1NJWkUgLSBEUkFHX0lDT05fT0ZGU0VUICsgJ3B4Jywgb2Zmc2V0VG9wICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWaXNpYmlsaXR5KHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpc2liaWxpdHkoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0U25hcHNob3RTdHlsZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZHJhZ0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRXaWR0aCA9IHdpZHRoO1xuICAgICAgICBsZXQgZHJhZ1NuYXBzaG90Q29udGVudFN0eWxlID0gYGRpc3BsYXk6IGJsb2NrOyBtaW4taGVpZ2h0OiAwOyB3aWR0aDogJHt3aWR0aCArIFNOQVBTSE9UX1BBRERJTkdfV0lEVEggKiAyfXB4O2A7XG4gICAgICAgIGlmIChoZWlnaHQgPiBTTkFQU0hPVF9MSU1JX0hFSUdIVCkge1xuICAgICAgICAgICAgZHJhZ1NuYXBzaG90Q29udGVudFN0eWxlID0gZHJhZ1NuYXBzaG90Q29udGVudFN0eWxlICsgJ3RyYW5zZm9ybTogc2NhbGUoMC40NSk7JztcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRIZWlnaHQgPSB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0ICogMC40NTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VsZW1lbnRXaWR0aCA9IHRoaXMuZHJhZ0VsZW1lbnRXaWR0aCAqIDAuNDU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNuYXBzaG90VG9wID0gMDtcbiAgICAgICAgbGV0IHNuYXBzaG90TGVmdCA9IDA7XG4gICAgICAgIC8vIOS4iuS4i+enu+WKqO+8mui2heWHuuWxj+W5lemrmOW6pu+8jOmHjeaWsOiuvue9rnNuYXBzaG9055qE5L2N572uXG4gICAgICAgIGlmIChldmVudC5jbGllbnRZICsgdGhpcy5kcmFnRWxlbWVudEhlaWdodCArIERSQUdfU05BUFNIT1RfT0ZGU0VUID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgc25hcHNob3RUb3AgPSB0aGlzLmRyYWdFbGVtZW50SGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc25hcHNob3RUb3AgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g5bem5Y+z56e75Yqo77ya6LaF5Ye65bGP5bmV5a695bqm77yM6YeN5paw6K6+572uc25hcHNob3TnmoTkvY3nva5cbiAgICAgICAgaWYgKGV2ZW50LmNsaWVudFggKyB0aGlzLmRyYWdFbGVtZW50V2lkdGggLyAyID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoKSB7XG4gICAgICAgICAgICBzbmFwc2hvdExlZnQgPSB0aGlzLmRyYWdFbGVtZW50V2lkdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzbmFwc2hvdExlZnQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGRyYWdTbmFwc2hvdENvbnRlbnRTdHlsZSA9IGRyYWdTbmFwc2hvdENvbnRlbnRTdHlsZSArIGB0b3A6ICR7LXNuYXBzaG90VG9wfXB4OyBsZWZ0OiAkey1zbmFwc2hvdExlZnR9cHg7YDtcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBkcmFnU25hcHNob3RDb250ZW50U3R5bGUpO1xuICAgIH1cblxuICAgIHJlc2V0RHJhZ1NuYXBzaG90Q29udGVudCgpIHtcbiAgICAgICAgdGhpcy5kcmFnU25hcHNob3RDb250ZW50LmNsYXNzTmFtZSA9ICdkcmFnLXNuYXBzaG90LWNvbnRhaW5lcic7XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBzaG90Q29udGVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJycpO1xuICAgICAgICB0aGlzLmRyYWdTbmFwc2hvdENvbnRlbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgfVxuXG4gICAgc2V0VmlzaWJpbGl0eSh2aXNpYmxlID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCBkbmRDb250YWluZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgZG5kQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSB2aXNpYmxlID8gJ2Jsb2NrJyA6ICdub25lJztcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJ0aGUtZHJhZy1kcm9wLWljb25cIlxuICAgIFtuZ1N0eWxlXT1cInsgb3BhY2l0eTogaXNEcmFnaW5nID8gMCA6ICcnIH1cIlxuICAgIChkcmFnc3RhcnQpPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiXG4gICAgKGRyYWdlbmQpPVwib25EcmFnRW5kKCRldmVudClcIlxuPlxuICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cImRyYWdcIj4gPC90aHktaWNvbj5cbjwvZGl2PlxuIl19
@@ -1,19 +0,0 @@
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
@@ -1,13 +0,0 @@
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==
@@ -1,38 +0,0 @@
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
@@ -1,30 +0,0 @@
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
@@ -1,10 +0,0 @@
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==
@@ -1,42 +0,0 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from '@angular/core';
2
- import { Editor } from 'slate';
3
- import { DragNode } from '../../../interfaces';
4
- import * as i0 from "@angular/core";
5
- export declare class TheDndComponent implements AfterViewInit, OnDestroy {
6
- private renderer;
7
- private elementRef;
8
- private ngZone;
9
- private cdr;
10
- isDraging: boolean;
11
- dragNode: DragNode;
12
- dragSnapshotContent: HTMLElement;
13
- private destroy$;
14
- editor: Editor;
15
- dragChange: EventEmitter<boolean>;
16
- dragElement: HTMLElement;
17
- dragElementHeight: number;
18
- dragElementWidth: number;
19
- isScrolling: boolean;
20
- dropThumbLine: HTMLElement;
21
- editableTop: number;
22
- content: ElementRef;
23
- get nativeElement(): HTMLElement;
24
- get editableElement(): HTMLElement;
25
- constructor(renderer: Renderer2, elementRef: ElementRef, ngZone: NgZone, cdr: ChangeDetectorRef);
26
- ngAfterViewInit(): void;
27
- valueChangeHandle(): void;
28
- private updateDndContainerPosition;
29
- getEditableTop(event: MouseEvent): void;
30
- onDragStart(event: DragEvent): void;
31
- onDragEnd(event: DragEvent): void;
32
- onDrop(event: MouseEvent): void;
33
- onDragover(event: MouseEvent): void;
34
- setDropThumbLine(event: MouseEvent): void;
35
- setDragIcon(event: MouseEvent): void;
36
- setSnapshotStyle(event: MouseEvent): void;
37
- resetDragSnapshotContent(): void;
38
- setVisibility(visible?: boolean): void;
39
- ngOnDestroy(): void;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<TheDndComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<TheDndComponent, "[theDnd]", never, { "editor": "editor"; }, { "dragChange": "dragChange"; }, never, never>;
42
- }
@@ -1,60 +0,0 @@
1
- .the-drag-drop {
2
- position: absolute;
3
- cursor: grab;
4
- .the-drag-drop-icon {
5
- color: $gray-500;
6
- width: 24px;
7
- height: 24px;
8
- line-height: 24px;
9
- text-align: center;
10
- font-size: $font-size-base;
11
- border-radius: 3px;
12
-
13
- &:hover {
14
- cursor: pointer;
15
- background-color: rgba($primary, 0.15);
16
- color: $primary;
17
- }
18
- }
19
- }
20
- .drag-container{
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- }
25
- .drag-snapshot-container {
26
- position: absolute;
27
- transition: all 0.2 linear;
28
- background: $white;
29
- padding: 5px;
30
- top: 0px;
31
- left: 0px;
32
- transform-origin: left top;
33
- box-shadow: 0px 4px 10px 5px rgba($black, 0.07);
34
- border-radius: 4px;
35
- min-height: 0;
36
- z-index: 1800;
37
- display: none;
38
- pointer-events: none;
39
- user-select: none;
40
- ol, ul, blockquote, .slate-element-table .the-table{
41
- margin: 0;
42
- }
43
- .slate-element-paragraph{
44
- line-height: $line-height-base;
45
- }
46
- }
47
- .drop-thumb-line{
48
- width: 100%;
49
- left: 0px;
50
- right: 0px;
51
- bottom: -2px;
52
- height: 2px;
53
- pointer-events: none;
54
- user-select: none;
55
- background: $primary;
56
- position: absolute;
57
- }
58
- .slate-editable-container > *, .slate-element-paragraph, .slate-block{
59
- position: relative;
60
- }
@@ -1,2 +0,0 @@
1
- import { TheEditor } from '../../../interfaces';
2
- export declare const getCurrentTarget: (editor: TheEditor, event: MouseEvent) => HTMLElement;
@@ -1,3 +0,0 @@
1
- import { TheEditor } from '../../../interfaces';
2
- import { DropDirection } from '../../../constants';
3
- export declare const getHoverDirection: (editor: TheEditor, event: MouseEvent) => DropDirection;
@@ -1,3 +0,0 @@
1
- import { CustomElement } from '../../../custom-types';
2
- import { TheEditor } from '../../../interfaces';
3
- export declare const isValidDrag: (editor: TheEditor, dragNode: CustomElement, currentTarget: HTMLElement) => boolean;
@@ -1,2 +0,0 @@
1
- import { DragNode, TheEditor } from '../../../interfaces';
2
- export declare const moveDragNode: (editor: TheEditor, dragNode: DragNode, event: MouseEvent) => void;
@@ -1,2 +0,0 @@
1
- import { TheEditor } from '../../../interfaces';
2
- export declare const removeDropThumbLine: (editor: TheEditor) => void;