@plait/draw 0.62.0-next.6 → 0.62.0-next.8
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/arrow-line.component.d.ts +26 -0
- package/constants/geometry.d.ts +1 -0
- package/constants/pointer.d.ts +3 -3
- package/esm2022/arrow-line.component.mjs +157 -0
- package/esm2022/constants/geometry.mjs +10 -3
- package/esm2022/constants/pointer.mjs +4 -4
- package/esm2022/engines/basic-shapes/ellipse.mjs +5 -3
- package/esm2022/engines/basic-shapes/round-comment.mjs +5 -3
- package/esm2022/engines/flowchart/note-curly-left.mjs +2 -2
- package/esm2022/engines/flowchart/note-curly-right.mjs +7 -7
- package/esm2022/engines/flowchart/note-square.mjs +2 -2
- package/esm2022/engines/flowchart/or.mjs +5 -3
- package/esm2022/engines/flowchart/summing-junction.mjs +5 -3
- package/esm2022/engines/table/table.mjs +48 -26
- package/esm2022/engines/uml/deletion.mjs +3 -2
- package/esm2022/engines/uml/required-interface.mjs +3 -2
- package/esm2022/generators/arrow-line-active.generator.mjs +81 -0
- package/esm2022/generators/arrow-line-auto-complete.generator.mjs +46 -0
- package/esm2022/generators/arrow-line.generator.mjs +13 -0
- package/esm2022/generators/index.mjs +3 -3
- package/esm2022/geometry.component.mjs +4 -4
- package/esm2022/image.component.mjs +4 -4
- package/esm2022/interfaces/arrow-line.mjs +70 -0
- package/esm2022/interfaces/element.mjs +2 -2
- package/esm2022/interfaces/index.mjs +14 -7
- package/esm2022/interfaces/vector-line.mjs +6 -0
- package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +41 -0
- package/esm2022/plugins/with-arrow-line-auto-complete.mjs +74 -0
- package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +53 -0
- package/esm2022/plugins/with-arrow-line-create.mjs +53 -0
- package/esm2022/plugins/with-arrow-line-resize.mjs +158 -0
- package/esm2022/plugins/with-arrow-line-text-move.mjs +53 -0
- package/esm2022/plugins/with-arrow-line-text.mjs +63 -0
- package/esm2022/plugins/with-draw-fragment.mjs +13 -13
- package/esm2022/plugins/with-draw-resize.mjs +12 -5
- package/esm2022/plugins/with-draw.mjs +27 -20
- package/esm2022/plugins/with-geometry-resize.mjs +1 -1
- package/esm2022/plugins/with-swimlane-create.mjs +4 -7
- package/esm2022/plugins/with-swimlane.mjs +1 -20
- package/esm2022/plugins/with-table.mjs +34 -7
- package/esm2022/public-api.mjs +3 -3
- package/esm2022/table.component.mjs +6 -6
- package/esm2022/transforms/arrow-line.mjs +66 -0
- package/esm2022/transforms/common.mjs +36 -0
- package/esm2022/transforms/geometry.mjs +6 -28
- package/esm2022/transforms/index.mjs +15 -13
- package/esm2022/transforms/swimlane.mjs +1 -29
- package/esm2022/transforms/table-text.mjs +5 -5
- package/esm2022/transforms/table.mjs +30 -0
- package/esm2022/utils/arrow-line/arrow-line-arrow.mjs +123 -0
- package/esm2022/utils/arrow-line/arrow-line-basic.mjs +257 -0
- package/esm2022/utils/arrow-line/arrow-line-common.mjs +162 -0
- package/esm2022/utils/arrow-line/arrow-line-resize.mjs +309 -0
- package/esm2022/utils/arrow-line/elbow.mjs +114 -0
- package/esm2022/utils/arrow-line/index.mjs +6 -0
- package/esm2022/utils/clipboard.mjs +10 -10
- package/esm2022/utils/common.mjs +14 -5
- package/esm2022/utils/geometry.mjs +17 -14
- package/esm2022/utils/hit.mjs +67 -44
- package/esm2022/utils/index.mjs +2 -2
- package/esm2022/utils/memorize.mjs +4 -5
- package/esm2022/utils/position/arrow-line.mjs +67 -0
- package/esm2022/utils/position/geometry.mjs +1 -1
- package/esm2022/utils/selected.mjs +3 -3
- package/esm2022/utils/style/stroke.mjs +6 -4
- package/esm2022/utils/swimlane.mjs +16 -7
- package/esm2022/utils/table-selected.mjs +3 -4
- package/esm2022/utils/table.mjs +28 -5
- package/fesm2022/plait-draw.mjs +668 -511
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/arrow-line-active.generator.d.ts +13 -0
- package/generators/{line-auto-complete.generator.d.ts → arrow-line-auto-complete.generator.d.ts} +1 -1
- package/generators/arrow-line.generator.d.ts +8 -0
- package/generators/index.d.ts +2 -2
- package/geometry.component.d.ts +2 -2
- package/image.component.d.ts +2 -2
- package/interfaces/arrow-line.d.ts +75 -0
- package/interfaces/element.d.ts +1 -1
- package/interfaces/index.d.ts +6 -4
- package/interfaces/vector-line.d.ts +16 -0
- package/package.json +11 -1
- package/plugins/with-arrow-line-auto-complete-reaction.d.ts +2 -0
- package/plugins/with-arrow-line-auto-complete.d.ts +7 -0
- package/plugins/with-arrow-line-bound-reaction.d.ts +2 -0
- package/plugins/with-arrow-line-create.d.ts +2 -0
- package/plugins/with-arrow-line-resize.d.ts +2 -0
- package/plugins/with-arrow-line-text-move.d.ts +2 -0
- package/plugins/with-arrow-line-text.d.ts +2 -0
- package/plugins/with-draw-fragment.d.ts +2 -2
- package/plugins/with-swimlane.d.ts +1 -2
- package/public-api.d.ts +2 -2
- package/table.component.d.ts +2 -2
- package/transforms/arrow-line.d.ts +8 -0
- package/transforms/common.d.ts +3 -0
- package/transforms/geometry.d.ts +1 -2
- package/transforms/index.d.ts +9 -9
- package/transforms/swimlane.d.ts +1 -3
- package/transforms/table-text.d.ts +2 -3
- package/transforms/table.d.ts +3 -0
- package/utils/arrow-line/arrow-line-arrow.d.ts +4 -0
- package/utils/arrow-line/arrow-line-basic.d.ts +13 -0
- package/utils/{line/line-common.d.ts → arrow-line/arrow-line-common.d.ts} +8 -4
- package/utils/{line/line-resize.d.ts → arrow-line/arrow-line-resize.d.ts} +3 -3
- package/utils/{line → arrow-line}/elbow.d.ts +7 -7
- package/utils/arrow-line/index.d.ts +5 -0
- package/utils/clipboard.d.ts +4 -4
- package/utils/common.d.ts +1 -0
- package/utils/geometry.d.ts +2 -1
- package/utils/hit.d.ts +7 -4
- package/utils/index.d.ts +1 -1
- package/utils/position/arrow-line.d.ts +16 -0
- package/utils/selected.d.ts +2 -2
- package/utils/swimlane.d.ts +3 -2
- package/utils/table.d.ts +2 -0
- package/esm2022/generators/line-active.generator.mjs +0 -81
- package/esm2022/generators/line-auto-complete.generator.mjs +0 -46
- package/esm2022/generators/line.generator.mjs +0 -13
- package/esm2022/interfaces/line.mjs +0 -70
- package/esm2022/line.component.mjs +0 -155
- package/esm2022/plugins/with-line-auto-complete-reaction.mjs +0 -41
- package/esm2022/plugins/with-line-auto-complete.mjs +0 -75
- package/esm2022/plugins/with-line-bound-reaction.mjs +0 -53
- package/esm2022/plugins/with-line-create.mjs +0 -53
- package/esm2022/plugins/with-line-resize.mjs +0 -158
- package/esm2022/plugins/with-line-text-move.mjs +0 -53
- package/esm2022/plugins/with-line-text.mjs +0 -62
- package/esm2022/transforms/line.mjs +0 -100
- package/esm2022/utils/line/elbow.mjs +0 -114
- package/esm2022/utils/line/index.mjs +0 -6
- package/esm2022/utils/line/line-arrow.mjs +0 -123
- package/esm2022/utils/line/line-basic.mjs +0 -257
- package/esm2022/utils/line/line-common.mjs +0 -123
- package/esm2022/utils/line/line-resize.mjs +0 -309
- package/esm2022/utils/position/line.mjs +0 -67
- package/generators/line-active.generator.d.ts +0 -13
- package/generators/line.generator.d.ts +0 -8
- package/interfaces/line.d.ts +0 -75
- package/line.component.d.ts +0 -26
- package/plugins/with-line-auto-complete-reaction.d.ts +0 -2
- package/plugins/with-line-auto-complete.d.ts +0 -7
- package/plugins/with-line-bound-reaction.d.ts +0 -2
- package/plugins/with-line-create.d.ts +0 -2
- package/plugins/with-line-resize.d.ts +0 -2
- package/plugins/with-line-text-move.d.ts +0 -2
- package/plugins/with-line-text.d.ts +0 -2
- package/transforms/line.d.ts +0 -12
- package/utils/line/index.d.ts +0 -5
- package/utils/line/line-arrow.d.ts +0 -4
- package/utils/line/line-basic.d.ts +0 -13
- package/utils/position/line.d.ts +0 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { idCreator, RectangleClient } from '@plait/core';
|
|
2
|
-
import { DefaultSwimlanePropertyMap, SWIMLANE_HEADER_SIZE } from '../constants';
|
|
1
|
+
import { idCreator, PlaitBoard, RectangleClient } from '@plait/core';
|
|
2
|
+
import { DefaultSwimlanePropertyMap, getSwimlanePointers, SWIMLANE_HEADER_SIZE } from '../constants';
|
|
3
3
|
import { PlaitDrawElement, SwimlaneDrawSymbols, SwimlaneSymbols } from '../interfaces';
|
|
4
4
|
import { createCell } from './table';
|
|
5
5
|
export function buildSwimlaneTable(element) {
|
|
@@ -43,8 +43,10 @@ export const getDefaultSwimlanePoints = (pointer, centerPoint) => {
|
|
|
43
43
|
export const createDefaultSwimlane = (shape, points) => {
|
|
44
44
|
const header = isSwimlaneWithHeader(shape);
|
|
45
45
|
const dataShape = adjustSwimlaneShape(shape);
|
|
46
|
-
const
|
|
47
|
-
const
|
|
46
|
+
const width = points[1][0] - points[0][0];
|
|
47
|
+
const height = points[1][1] - points[0][1];
|
|
48
|
+
const rows = createDefaultRowsOrColumns(dataShape, 'row', header, height);
|
|
49
|
+
const columns = createDefaultRowsOrColumns(dataShape, 'column', header, width);
|
|
48
50
|
const swimlane = {
|
|
49
51
|
id: idCreator(),
|
|
50
52
|
type: 'swimlane',
|
|
@@ -57,18 +59,22 @@ export const createDefaultSwimlane = (shape, points) => {
|
|
|
57
59
|
};
|
|
58
60
|
return swimlane;
|
|
59
61
|
};
|
|
60
|
-
export const createDefaultRowsOrColumns = (shape, type, header) => {
|
|
62
|
+
export const createDefaultRowsOrColumns = (shape, type, header, size) => {
|
|
61
63
|
const createItems = (count) => new Array(count).fill('').map(() => ({ id: idCreator() }));
|
|
62
64
|
let data = createItems(3);
|
|
63
65
|
if ((type === 'row' && shape === SwimlaneSymbols.swimlaneVertical) ||
|
|
64
66
|
(type === 'column' && shape === SwimlaneSymbols.swimlaneHorizontal)) {
|
|
65
67
|
data = header ? data : createItems(2);
|
|
66
68
|
const dimension = type === 'row' ? 'height' : 'width';
|
|
69
|
+
let defaultSize = SWIMLANE_HEADER_SIZE;
|
|
70
|
+
if (size < SWIMLANE_HEADER_SIZE * data.length) {
|
|
71
|
+
defaultSize = Math.min((size / data.length / SWIMLANE_HEADER_SIZE) * SWIMLANE_HEADER_SIZE, SWIMLANE_HEADER_SIZE);
|
|
72
|
+
}
|
|
67
73
|
data = data.map((item, index) => {
|
|
68
74
|
if (index === 0 || (index === 1 && header)) {
|
|
69
75
|
return {
|
|
70
76
|
...item,
|
|
71
|
-
[dimension]:
|
|
77
|
+
[dimension]: defaultSize
|
|
72
78
|
};
|
|
73
79
|
}
|
|
74
80
|
return item;
|
|
@@ -112,4 +118,7 @@ export const adjustSwimlaneShape = (shape) => {
|
|
|
112
118
|
? SwimlaneSymbols.swimlaneHorizontal
|
|
113
119
|
: SwimlaneSymbols.swimlaneVertical;
|
|
114
120
|
};
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zd2ltbGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBc0I7SUFDckQsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLElBQUksZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxlQUFlLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RELElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksR0FBRztvQkFDSCxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNuQixPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO2lCQUMvQixDQUFDO1lBQ04sQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxHQUFHO29CQUNILEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsR0FBRyxJQUFJ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QyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2hELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUU7SUFDL0QsT0FBTyxDQUFDLG1CQUFtQixDQUFDLDRCQUE0QixFQUFFLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBMEIsRUFBbUIsRUFBRTtJQUMvRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsNEJBQTRCLEVBQUUsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxlQUFlLENBQUMsa0JBQWtCO1FBQ3BDLENBQUMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7QUFDM0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaWRDcmVhdG9yLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRGVmYXVsdFN3aW1sYW5lUHJvcGVydHlNYXAsIFNXSU1MQU5FX0hFQURFUl9TSVpFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0U3dpbWxhbmUsIFBsYWl0VGFibGVDZWxsLCBTd2ltbGFuZURyYXdTeW1ib2xzLCBTd2ltbGFuZVN5bWJvbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNlbGwgfSBmcm9tICcuL3RhYmxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU3dpbWxhbmVUYWJsZShlbGVtZW50OiBQbGFpdFN3aW1sYW5lKSB7XG4gICAgY29uc3Qgc3dpbWxhbmVFbGVtZW50ID0geyAuLi5lbGVtZW50IH07XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoZWxlbWVudCkpIHtcbiAgICAgICAgc3dpbWxhbmVFbGVtZW50LmNlbGxzID0gZWxlbWVudC5jZWxscy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDAgJiYgZWxlbWVudC5oZWFkZXIpIHtcbiAgICAgICAgICAgICAgICBpdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5lbGVtZW50LmNlbGxzWzBdLFxuICAgICAgICAgICAgICAgICAgICByb3dzcGFuOiBlbGVtZW50LnJvd3MubGVuZ3RoXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLnRleHQgJiYgaXRlbS50ZXh0SGVpZ2h0ICYmICFpdGVtLnRleHQuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbS50ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAndmVydGljYWwnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzd2ltbGFuZUVsZW1lbnQ7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LmhlYWRlcikge1xuICAgICAgICBzd2ltbGFuZUVsZW1lbnQuY2VsbHMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uZWxlbWVudC5jZWxsc1swXSxcbiAgICAgICAgICAgICAgICBjb2xzcGFuOiBlbGVtZW50LmNvbHVtbnMubGVuZ3RoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uZWxlbWVudC5jZWxscy5zbGljZSgxLCBlbGVtZW50LmNlbGxzLmxlbmd0aClcbiAgICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIHN3aW1sYW5lRWxlbWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRTd2ltbGFuZVBvaW50cyA9IChwb2ludGVyOiBTd2ltbGFuZURyYXdTeW1ib2xzLCBjZW50ZXJQb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IERlZmF1bHRTd2ltbGFuZVByb3BlcnR5TWFwW3BvaW50ZXJdO1xuICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeUNlbnRlclBvaW50KGNlbnRlclBvaW50LCBwcm9wZXJ0eS53aWR0aCwgcHJvcGVydHkuaGVpZ2h0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFN3aW1sYW5lID0gKHNoYXBlOiBTd2ltbGFuZURyYXdTeW1ib2xzLCBwb2ludHM6IFtQb2ludCwgUG9pbnRdKSA9PiB7XG4gICAgY29uc3QgaGVhZGVyID0gaXNTd2ltbGFuZVdpdGhIZWFkZXIoc2hhcGUpO1xuICAgIGNvbnN0IGRhdGFTaGFwZSA9IGFkanVzdFN3aW1sYW5lU2hhcGUoc2hhcGUpO1xuICAgIGNvbnN0IHJvd3MgPSBjcmVhdGVEZWZhdWx0Um93c09yQ29sdW1ucyhkYXRhU2hhcGUsICdyb3cnLCBoZWFkZXIpO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBjcmVhdGVEZWZhdWx0Um93c09yQ29sdW1ucyhkYXRhU2hhcGUsICdjb2x1bW4nLCBoZWFkZXIpO1xuICAgIGNvbnN0IHN3aW1sYW5lID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHR5cGU6ICdzd2ltbGFuZScsXG4gICAgICAgIHNoYXBlOiBkYXRhU2hhcGUsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgcm93cyxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBjZWxsczogY3JlYXRlRGVmYXVsdENlbGxzKGRhdGFTaGFwZSwgcm93cywgY29sdW1ucywgaGVhZGVyKVxuICAgIH0gYXMgUGxhaXRTd2ltbGFuZTtcbiAgICByZXR1cm4gc3dpbWxhbmU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFJvd3NPckNvbHVtbnMgPSAoc2hhcGU6IFN3aW1sYW5lU3ltYm9scywgdHlwZTogJ3JvdycgfCAnY29sdW1uJywgaGVhZGVyOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgY3JlYXRlSXRlbXMgPSAoY291bnQ6IG51bWJlcikgPT4gbmV3IEFycmF5KGNvdW50KS5maWxsKCcnKS5tYXAoKCkgPT4gKHsgaWQ6IGlkQ3JlYXRvcigpIH0pKTtcbiAgICBsZXQgZGF0YSA9IGNyZWF0ZUl0ZW1zKDMpO1xuICAgIGlmIChcbiAgICAgICAgKHR5cGUgPT09ICdyb3cnICYmIHNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVWZXJ0aWNhbCkgfHxcbiAgICAgICAgKHR5cGUgPT09ICdjb2x1bW4nICYmIHNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsKVxuICAgICkge1xuICAgICAgICBkYXRhID0gaGVhZGVyID8gZGF0YSA6IGNyZWF0ZUl0ZW1zKDIpO1xuICAgICAgICBjb25zdCBkaW1lbnNpb24gPSB0eXBlID09PSAncm93JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICAgICAgZGF0YSA9IGRhdGEubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwIHx8IChpbmRleCA9PT0gMSAmJiBoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgW2RpbWVuc2lvbl06IFNXSU1MQU5FX0hFQURFUl9TSVpFXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0Q2VsbHMgPSAoXG4gICAgc2hhcGU6IFN3aW1sYW5lU3ltYm9scyxcbiAgICByb3dzOiB7IGlkOiBzdHJpbmc7IGhlaWdodD86IG51bWJlciB9W10sXG4gICAgY29sdW1uczogeyBpZDogc3RyaW5nOyB3aWR0aD86IG51bWJlciB9W10sXG4gICAgaGVhZGVyOiBib29sZWFuXG4pID0+IHtcbiAgICBsZXQgaGVhZGVyQ2VsbDogUGxhaXRUYWJsZUNlbGxbXSA9IFtdO1xuICAgIGxldCBzdGFydEluZGV4ID0gMDtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGhlYWRlckNlbGwgPSBbY3JlYXRlQ2VsbChyb3dzWzBdLmlkLCBjb2x1bW5zWzBdLmlkLCAnTmV3IFN3aW1sYW5lJyldO1xuICAgICAgICBzdGFydEluZGV4ID0gMTtcbiAgICB9XG4gICAgY29uc3QgY2VsbHMgPSBuZXcgQXJyYXkoNikuZmlsbCgnJykubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPCAzKSB7XG4gICAgICAgICAgICBjb25zdCByb3dJZCA9IHNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVWZXJ0aWNhbCA/IHJvd3Nbc3RhcnRJbmRleF0uaWQgOiByb3dzW2luZGV4XS5pZDtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbklkID0gc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsID8gY29sdW1uc1tpbmRleF0uaWQgOiBjb2x1bW5zW3N0YXJ0SW5kZXhdLmlkO1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNlbGwocm93SWQsIGNvbHVtbklkLCBoZWFkZXI/ICdMYW5lJzogJ05ldyBTd2ltbGFuZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvd0lkID0gc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsID8gcm93c1tzdGFydEluZGV4ICsgMV0uaWQgOiByb3dzW2luZGV4IC0gM10uaWQ7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkID0gc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsID8gY29sdW1uc1tpbmRleCAtIDNdLmlkIDogY29sdW1uc1tzdGFydEluZGV4ICsgMV0uaWQ7XG4gICAgICAgIHJldHVybiBjcmVhdGVDZWxsKHJvd0lkLCBjb2x1bW5JZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIFsuLi5oZWFkZXJDZWxsLCAuLi5jZWxsc107XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3dpbWxhbmVDb3VudCA9IChzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSG9yaXpvbnRhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICByZXR1cm4gc3dpbWxhbmUucm93cy5sZW5ndGg7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVydGljYWxTd2ltbGFuZShzd2ltbGFuZSkpIHtcbiAgICAgICAgcmV0dXJuIHN3aW1sYW5lLmNvbHVtbnMubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1N3aW1sYW5lV2l0aEhlYWRlciA9IChzaGFwZTogU3dpbWxhbmVEcmF3U3ltYm9scykgPT4ge1xuICAgIHJldHVybiBbU3dpbWxhbmVEcmF3U3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxXaXRoSGVhZGVyLCBTd2ltbGFuZURyYXdTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxXaXRoSGVhZGVyXS5pbmNsdWRlcyhzaGFwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRqdXN0U3dpbWxhbmVTaGFwZSA9IChzaGFwZTogU3dpbWxhbmVEcmF3U3ltYm9scyk6IFN3aW1sYW5lU3ltYm9scyA9PiB7XG4gICAgcmV0dXJuIFtTd2ltbGFuZURyYXdTeW1ib2xzLnN3aW1sYW5lSG9yaXpvbnRhbFdpdGhIZWFkZXIsIFN3aW1sYW5lRHJhd1N5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsXS5pbmNsdWRlcyhzaGFwZSlcbiAgICAgICAgPyBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsXG4gICAgICAgIDogU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWw7XG59O1xuIl19
|
|
121
|
+
export const isSwimlanePointers = (board) => {
|
|
122
|
+
return PlaitBoard.isInPointer(board, getSwimlanePointers());
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zd2ltbGFuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBUyxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQXNCO0lBQ3JELE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUN2QyxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakQsZUFBZSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxJQUFJLEdBQUc7b0JBQ0gsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbkIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTTtpQkFDL0IsQ0FBQztZQUNOLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3ZELElBQUksR0FBRztvQkFDSCxHQUFHLElBQUk7b0JBQ1AsSUFB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QUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDN0csQ0FBQyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0I7UUFDcEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNwRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0U3dpbWxhbmVQcm9wZXJ0eU1hcCwgZ2V0U3dpbWxhbmVQb2ludGVycywgU1dJTUxBTkVfSEVBREVSX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRTd2ltbGFuZSwgUGxhaXRUYWJsZUNlbGwsIFN3aW1sYW5lRHJhd1N5bWJvbHMsIFN3aW1sYW5lU3ltYm9scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ2VsbCB9IGZyb20gJy4vdGFibGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTd2ltbGFuZVRhYmxlKGVsZW1lbnQ6IFBsYWl0U3dpbWxhbmUpIHtcbiAgICBjb25zdCBzd2ltbGFuZUVsZW1lbnQgPSB7IC4uLmVsZW1lbnQgfTtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0hvcml6b250YWxTd2ltbGFuZShlbGVtZW50KSkge1xuICAgICAgICBzd2ltbGFuZUVsZW1lbnQuY2VsbHMgPSBlbGVtZW50LmNlbGxzLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCAmJiBlbGVtZW50LmhlYWRlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmVsZW1lbnQuY2VsbHNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHJvd3NwYW46IGVsZW1lbnQucm93cy5sZW5ndGhcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0udGV4dCAmJiBpdGVtLnRleHRIZWlnaHQgJiYgIWl0ZW0udGV4dC5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHN3aW1sYW5lRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQuaGVhZGVyKSB7XG4gICAgICAgIHN3aW1sYW5lRWxlbWVudC5jZWxscyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5lbGVtZW50LmNlbGxzWzBdLFxuICAgICAgICAgICAgICAgIGNvbHNwYW46IGVsZW1lbnQuY29sdW1ucy5sZW5ndGhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi5lbGVtZW50LmNlbGxzLnNsaWNlKDEsIGVsZW1lbnQuY2VsbHMubGVuZ3RoKVxuICAgICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gc3dpbWxhbmVFbGVtZW50O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFN3aW1sYW5lUG9pbnRzID0gKHBvaW50ZXI6IFN3aW1sYW5lRHJhd1N5bWJvbHMsIGNlbnRlclBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gRGVmYXVsdFN3aW1sYW5lUHJvcGVydHlNYXBbcG9pbnRlcl07XG4gICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5Q2VudGVyUG9pbnQoY2VudGVyUG9pbnQsIHByb3BlcnR5LndpZHRoLCBwcm9wZXJ0eS5oZWlnaHQpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0U3dpbWxhbmUgPSAoc2hhcGU6IFN3aW1sYW5lRHJhd1N5bWJvbHMsIHBvaW50czogW1BvaW50LCBQb2ludF0pID0+IHtcbiAgICBjb25zdCBoZWFkZXIgPSBpc1N3aW1sYW5lV2l0aEhlYWRlcihzaGFwZSk7XG4gICAgY29uc3QgZGF0YVNoYXBlID0gYWRqdXN0U3dpbWxhbmVTaGFwZShzaGFwZSk7XG4gICAgY29uc3Qgd2lkdGggPSBwb2ludHNbMV1bMF0gLSBwb2ludHNbMF1bMF07XG4gICAgY29uc3QgaGVpZ2h0ID0gcG9pbnRzWzFdWzFdIC0gcG9pbnRzWzBdWzFdO1xuICAgIGNvbnN0IHJvd3MgPSBjcmVhdGVEZWZhdWx0Um93c09yQ29sdW1ucyhkYXRhU2hhcGUsICdyb3cnLCBoZWFkZXIsIGhlaWdodCk7XG4gICAgY29uc3QgY29sdW1ucyA9IGNyZWF0ZURlZmF1bHRSb3dzT3JDb2x1bW5zKGRhdGFTaGFwZSwgJ2NvbHVtbicsIGhlYWRlciwgd2lkdGgpO1xuICAgIGNvbnN0IHN3aW1sYW5lID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHR5cGU6ICdzd2ltbGFuZScsXG4gICAgICAgIHNoYXBlOiBkYXRhU2hhcGUsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgcm93cyxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBjZWxsczogY3JlYXRlRGVmYXVsdENlbGxzKGRhdGFTaGFwZSwgcm93cywgY29sdW1ucywgaGVhZGVyKVxuICAgIH0gYXMgUGxhaXRTd2ltbGFuZTtcbiAgICByZXR1cm4gc3dpbWxhbmU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFJvd3NPckNvbHVtbnMgPSAoc2hhcGU6IFN3aW1sYW5lU3ltYm9scywgdHlwZTogJ3JvdycgfCAnY29sdW1uJywgaGVhZGVyOiBib29sZWFuLCBzaXplOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjcmVhdGVJdGVtcyA9IChjb3VudDogbnVtYmVyKSA9PiBuZXcgQXJyYXkoY291bnQpLmZpbGwoJycpLm1hcCgoKSA9PiAoeyBpZDogaWRDcmVhdG9yKCkgfSkpO1xuICAgIGxldCBkYXRhID0gY3JlYXRlSXRlbXMoMyk7XG4gICAgaWYgKFxuICAgICAgICAodHlwZSA9PT0gJ3JvdycgJiYgc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsKSB8fFxuICAgICAgICAodHlwZSA9PT0gJ2NvbHVtbicgJiYgc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWwpXG4gICAgKSB7XG4gICAgICAgIGRhdGEgPSBoZWFkZXIgPyBkYXRhIDogY3JlYXRlSXRlbXMoMik7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbiA9IHR5cGUgPT09ICdyb3cnID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgICAgICBsZXQgZGVmYXVsdFNpemUgPSBTV0lNTEFORV9IRUFERVJfU0laRTtcbiAgICAgICAgaWYgKHNpemUgPCBTV0lNTEFORV9IRUFERVJfU0laRSAqIGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBkZWZhdWx0U2l6ZSA9IE1hdGgubWluKChzaXplIC8gZGF0YS5sZW5ndGggLyBTV0lNTEFORV9IRUFERVJfU0laRSkgKiBTV0lNTEFORV9IRUFERVJfU0laRSwgU1dJTUxBTkVfSEVBREVSX1NJWkUpO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEgPSBkYXRhLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCB8fCAoaW5kZXggPT09IDEgJiYgaGVhZGVyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIFtkaW1lbnNpb25dOiBkZWZhdWx0U2l6ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdENlbGxzID0gKFxuICAgIHNoYXBlOiBTd2ltbGFuZVN5bWJvbHMsXG4gICAgcm93czogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdLFxuICAgIGNvbHVtbnM6IHsgaWQ6IHN0cmluZzsgd2lkdGg/OiBudW1iZXIgfVtdLFxuICAgIGhlYWRlcjogYm9vbGVhblxuKSA9PiB7XG4gICAgbGV0IGhlYWRlckNlbGw6IFBsYWl0VGFibGVDZWxsW10gPSBbXTtcbiAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgICBoZWFkZXJDZWxsID0gW2NyZWF0ZUNlbGwocm93c1swXS5pZCwgY29sdW1uc1swXS5pZCwgJ05ldyBTd2ltbGFuZScpXTtcbiAgICAgICAgc3RhcnRJbmRleCA9IDE7XG4gICAgfVxuICAgIGNvbnN0IGNlbGxzID0gbmV3IEFycmF5KDYpLmZpbGwoJycpLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xuICAgICAgICAgICAgY29uc3Qgcm93SWQgPSBzaGFwZSA9PT0gU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWwgPyByb3dzW3N0YXJ0SW5kZXhdLmlkIDogcm93c1tpbmRleF0uaWQ7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5JZCA9IHNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVWZXJ0aWNhbCA/IGNvbHVtbnNbaW5kZXhdLmlkIDogY29sdW1uc1tzdGFydEluZGV4XS5pZDtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVDZWxsKHJvd0lkLCBjb2x1bW5JZCwgaGVhZGVyID8gJ0xhbmUnIDogJ05ldyBTd2ltbGFuZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJvd0lkID0gc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsID8gcm93c1tzdGFydEluZGV4ICsgMV0uaWQgOiByb3dzW2luZGV4IC0gM10uaWQ7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkID0gc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsID8gY29sdW1uc1tpbmRleCAtIDNdLmlkIDogY29sdW1uc1tzdGFydEluZGV4ICsgMV0uaWQ7XG4gICAgICAgIHJldHVybiBjcmVhdGVDZWxsKHJvd0lkLCBjb2x1bW5JZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIFsuLi5oZWFkZXJDZWxsLCAuLi5jZWxsc107XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3dpbWxhbmVDb3VudCA9IChzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSG9yaXpvbnRhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICByZXR1cm4gc3dpbWxhbmUucm93cy5sZW5ndGg7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVydGljYWxTd2ltbGFuZShzd2ltbGFuZSkpIHtcbiAgICAgICAgcmV0dXJuIHN3aW1sYW5lLmNvbHVtbnMubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1N3aW1sYW5lV2l0aEhlYWRlciA9IChzaGFwZTogU3dpbWxhbmVEcmF3U3ltYm9scykgPT4ge1xuICAgIHJldHVybiBbU3dpbWxhbmVEcmF3U3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxXaXRoSGVhZGVyLCBTd2ltbGFuZURyYXdTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxXaXRoSGVhZGVyXS5pbmNsdWRlcyhzaGFwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRqdXN0U3dpbWxhbmVTaGFwZSA9IChzaGFwZTogU3dpbWxhbmVEcmF3U3ltYm9scyk6IFN3aW1sYW5lU3ltYm9scyA9PiB7XG4gICAgcmV0dXJuIFtTd2ltbGFuZURyYXdTeW1ib2xzLnN3aW1sYW5lSG9yaXpvbnRhbFdpdGhIZWFkZXIsIFN3aW1sYW5lRHJhd1N5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsXS5pbmNsdWRlcyhzaGFwZSlcbiAgICAgICAgPyBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsXG4gICAgICAgIDogU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTd2ltbGFuZVBvaW50ZXJzID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIFBsYWl0Qm9hcmQuaXNJblBvaW50ZXIoYm9hcmQsIGdldFN3aW1sYW5lUG9pbnRlcnMoKSk7XG59O1xuIl19
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getSelectedElements } from '@plait/core';
|
|
2
|
-
import { PlaitTableElement } from '../interfaces/table';
|
|
3
2
|
import { PlaitDrawElement } from '../interfaces';
|
|
4
3
|
export const isSingleSelectTable = (board) => {
|
|
5
4
|
const selectedElements = getSelectedElements(board);
|
|
6
|
-
return selectedElements && selectedElements.length === 1 &&
|
|
5
|
+
return selectedElements && selectedElements.length === 1 && PlaitDrawElement.isElementByTable(selectedElements[0]);
|
|
7
6
|
};
|
|
8
7
|
export const isSingleSelectElementByTable = (board) => {
|
|
9
8
|
const selectedElements = getSelectedElements(board);
|
|
@@ -11,7 +10,7 @@ export const isSingleSelectElementByTable = (board) => {
|
|
|
11
10
|
};
|
|
12
11
|
export const getSelectedTableElements = (board, elements) => {
|
|
13
12
|
const selectedElements = elements?.length ? elements : getSelectedElements(board);
|
|
14
|
-
return selectedElements.filter(value =>
|
|
13
|
+
return selectedElements.filter(value => PlaitDrawElement.isElementByTable(value));
|
|
15
14
|
};
|
|
16
15
|
export const SELECTED_CELLS = new WeakMap();
|
|
17
16
|
export function getSelectedCells(element) {
|
|
@@ -23,4 +22,4 @@ export function setSelectedCells(element, cells) {
|
|
|
23
22
|
export function clearSelectedCells(element) {
|
|
24
23
|
return SELECTED_CELLS.delete(element);
|
|
25
24
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2VsZWN0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy90YWJsZS1zZWxlY3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsbUJBQW1CLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzlELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsT0FBTyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkgsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXlCLEVBQUUsRUFBRTtJQUNyRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBaUIsQ0FBQztBQUN0RyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW9DLENBQUM7QUFFOUUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQXVCO0lBQ3BELE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQXVCLEVBQUUsS0FBdUI7SUFDN0UsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQXVCO0lBQ3RELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgZ2V0U2VsZWN0ZWRFbGVtZW50cywgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRUYWJsZUNlbGwsIFBsYWl0QmFzZVRhYmxlLCBQbGFpdFRhYmxlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBpc1NpbmdsZVNlbGVjdFRhYmxlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNFbGVtZW50QnlUYWJsZShzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NpbmdsZVNlbGVjdEVsZW1lbnRCeVRhYmxlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNFbGVtZW50QnlUYWJsZShzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFRhYmxlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHM/Lmxlbmd0aCA/IGVsZW1lbnRzIDogZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNFbGVtZW50QnlUYWJsZSh2YWx1ZSkpIGFzIFBsYWl0VGFibGVbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBTRUxFQ1RFRF9DRUxMUyA9IG5ldyBXZWFrTWFwPFBsYWl0QmFzZVRhYmxlLCBQbGFpdFRhYmxlQ2VsbFtdPigpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRDZWxscyhlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSkge1xuICAgIHJldHVybiBTRUxFQ1RFRF9DRUxMUy5nZXQoZWxlbWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWxlY3RlZENlbGxzKGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlLCBjZWxsczogUGxhaXRUYWJsZUNlbGxbXSkge1xuICAgIHJldHVybiBTRUxFQ1RFRF9DRUxMUy5zZXQoZWxlbWVudCwgY2VsbHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJTZWxlY3RlZENlbGxzKGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlKSB7XG4gICAgcmV0dXJuIFNFTEVDVEVEX0NFTExTLmRlbGV0ZShlbGVtZW50KTtcbn1cbiJdfQ==
|
package/esm2022/utils/table.mjs
CHANGED
|
@@ -2,8 +2,12 @@ import { idCreator, RectangleClient } from '@plait/core';
|
|
|
2
2
|
import { getTextManage } from '../generators/text.generator';
|
|
3
3
|
import { Alignment } from '@plait/common';
|
|
4
4
|
import { TEXT_DEFAULT_HEIGHT } from '@plait/text-plugins';
|
|
5
|
+
import { getSelectedCells, getSelectedTableElements, isSingleSelectElementByTable } from './table-selected';
|
|
5
6
|
export function getCellsWithPoints(board, element) {
|
|
6
|
-
const table = board
|
|
7
|
+
const table = board?.buildTable(element);
|
|
8
|
+
if (!table || !table.points || !table.columns || !table.rows) {
|
|
9
|
+
throw new Error('can not get table cells points');
|
|
10
|
+
}
|
|
7
11
|
const rectangle = RectangleClient.getRectangleByPoints(table.points);
|
|
8
12
|
const columnsCount = table.columns.length;
|
|
9
13
|
const rowsCount = table.rows.length;
|
|
@@ -35,9 +39,14 @@ export function getCellsWithPoints(board, element) {
|
|
|
35
39
|
return cells;
|
|
36
40
|
}
|
|
37
41
|
export function getCellWithPoints(board, table, cellId) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
try {
|
|
43
|
+
const cells = getCellsWithPoints(board, table);
|
|
44
|
+
const cellIndex = cells && table.cells.findIndex(item => item.id === cellId);
|
|
45
|
+
return cells[cellIndex];
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw new Error('can not get table cell points');
|
|
49
|
+
}
|
|
41
50
|
}
|
|
42
51
|
function calculateCellsSize(items, tableSize, count, isWidth) {
|
|
43
52
|
const cellSizes = [];
|
|
@@ -146,4 +155,18 @@ export const createCell = (rowId, columnId, text = null) => {
|
|
|
146
155
|
}
|
|
147
156
|
return cell;
|
|
148
157
|
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBdUI7SUFDekUsTUFBTSxLQUFLLEdBQUksS0FBeUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFGLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkYsTUFBTSxLQUFLLEdBQStCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcs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QyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sY0FBZSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sZUFBZSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxPQUFzQixJQUFJLEVBQUUsRUFBRTtJQUN0RixNQUFNLElBQUksR0FBbUI7UUFDekIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLEtBQUs7UUFDTCxRQUFRO0tBQ1gsQ0FBQztJQUNGLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxtQkFBbUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUc7WUFDWCxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtTQUMxQixDQUFDO0lBQ04sQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlkQ3JlYXRvciwgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0QmFzZVRhYmxlLCBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlQm9hcmQsIFBsYWl0VGFibGVDZWxsLCBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldFRleHRNYW5hZ2UgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCB9IGZyb20gJ0BwbGFpdC90ZXh0LXBsdWdpbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSk6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50c1tdIHtcbiAgICBjb25zdCB0YWJsZSA9IChib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQpLmJ1aWxkVGFibGUoZWxlbWVudCk7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHRhYmxlLnBvaW50cyk7XG4gICAgY29uc3QgY29sdW1uc0NvdW50ID0gdGFibGUuY29sdW1ucy5sZW5ndGg7XG4gICAgY29uc3Qgcm93c0NvdW50ID0gdGFibGUucm93cy5sZW5ndGg7XG4gICAgY29uc3QgY2VsbFdpZHRocyA9IGNhbGN1bGF0ZUNlbGxzU2l6ZSh0YWJsZS5jb2x1bW5zLCByZWN0YW5nbGUud2lkdGgsIGNvbHVtbnNDb3VudCwgdHJ1ZSk7XG4gICAgY29uc3QgY2VsbEhlaWdodHMgPSBjYWxjdWxhdGVDZWxsc1NpemUodGFibGUucm93cywgcmVjdGFuZ2xlLmhlaWdodCwgcm93c0NvdW50LCBmYWxzZSk7XG4gICAgY29uc3QgY2VsbHM6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50c1tdID0gdGFibGUuY2VsbHMubWFwKGNlbGwgPT4ge1xuICAgICAgICBjb25zdCByb3dJZHggPSB0YWJsZS5yb3dzLmZpbmRJbmRleChyb3cgPT4gcm93LmlkID09PSBjZWxsLnJvd0lkKTtcbiAgICAgICAgY29uc3QgY29sdW1uSWR4ID0gdGFibGUuY29sdW1ucy5maW5kSW5kZXgoY29sdW1uID0+IGNvbHVtbi5pZCA9PT0gY2VsbC5jb2x1bW5JZCk7XG5cbiAgICAgICAgbGV0IGNlbGxUb3BMZWZ0WCA9IHJlY3RhbmdsZS54O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbklkeDsgaSsrKSB7XG4gICAgICAgICAgICBjZWxsVG9wTGVmdFggKz0gY2VsbFdpZHRoc1tpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjZWxsVG9wTGVmdFkgPSByZWN0YW5nbGUueTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dJZHg7IGkrKykge1xuICAgICAgICAgICAgY2VsbFRvcExlZnRZICs9IGNlbGxIZWlnaHRzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2VsbFdpZHRoID0gY2FsY3VsYXRlQ2VsbFNpemUoY2VsbCwgY2VsbFdpZHRocywgY29sdW1uSWR4LCB0cnVlKTtcbiAgICAgICAgY29uc3QgY2VsbEJvdHRvbVJpZ2h0WCA9IGNlbGxUb3BMZWZ0WCArIGNlbGxXaWR0aDtcblxuICAgICAgICBjb25zdCBjZWxsSGVpZ2h0ID0gY2FsY3VsYXRlQ2VsbFNpemUoY2VsbCwgY2VsbEhlaWdodHMsIHJvd0lkeCwgZmFsc2UpO1xuICAgICAgICBjb25zdCBjZWxsQm90dG9tUmlnaHRZID0gY2VsbFRvcExlZnRZICsgY2VsbEhlaWdodDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY2VsbCxcbiAgICAgICAgICAgIHBvaW50czogW1xuICAgICAgICAgICAgICAgIFtjZWxsVG9wTGVmdFgsIGNlbGxUb3BMZWZ0WV0sXG4gICAgICAgICAgICAgICAgW2NlbGxCb3R0b21SaWdodFgsIGNlbGxCb3R0b21SaWdodFldXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2VsbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsV2l0aFBvaW50cyhib2FyZDogUGxhaXRCb2FyZCwgdGFibGU6IFBsYWl0QmFzZVRhYmxlLCBjZWxsSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNlbGxzID0gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkIGFzIFBsYWl0VGFibGVCb2FyZCwgdGFibGUpO1xuICAgIGNvbnN0IGNlbGxJbmRleCA9IHRhYmxlLmNlbGxzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGNlbGxJZCk7XG4gICAgcmV0dXJuIGNlbGxzW2NlbGxJbmRleF07XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNlbGxzU2l6ZShpdGVtczogeyBpZDogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLCB0YWJsZVNpemU6IG51bWJlciwgY291bnQ6IG51bWJlciwgaXNXaWR0aDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNlbGxTaXplczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBzaXplVHlwZSA9IGlzV2lkdGggPyAnd2lkdGgnIDogJ2hlaWdodCc7XG5cbiAgICAvLyBUaGUgcmVtYWluaW5nIHNpemUgb2YgdGhlIHRhYmxlIGV4Y2x1ZGluZyBjZWxscyB3aXRoIGFscmVhZHkgc2V0IHNpemVzLlxuICAgIGxldCB0b3RhbFNpemVSZW1haW5pbmcgPSB0YWJsZVNpemU7XG5cbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaXRlbVtzaXplVHlwZV0pIHtcbiAgICAgICAgICAgIGNlbGxTaXplc1tpbmRleF0gPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgICAgIHRvdGFsU2l6ZVJlbWFpbmluZyAtPSBpdGVtW3NpemVUeXBlXTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRGl2aWRlIHRoZSByZW1haW5pbmcgc2l6ZSBlcXVhbGx5LlxuICAgIGNvbnN0IHJlbWFpbmluZ0l0ZW1Db3VudCA9IGNvdW50IC0gY2VsbFNpemVzLmZpbHRlcihpdGVtID0+ICEhaXRlbSkubGVuZ3RoO1xuICAgIGNvbnN0IHJlbWFpbmluZ0NlbGxTaXplID0gcmVtYWluaW5nSXRlbUNvdW50ID4gMCA/IHRvdGFsU2l6ZVJlbWFpbmluZyAvIHJlbWFpbmluZ0l0ZW1Db3VudCA6IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgIGlmICghY2VsbFNpemVzW2ldKSB7XG4gICAgICAgICAgICBjZWxsU2l6ZXNbaV0gPSByZW1haW5pbmdDZWxsU2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2VsbFNpemVzO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVDZWxsU2l6ZShjZWxsOiBQbGFpdFRhYmxlQ2VsbCwgc2l6ZXM6IG51bWJlcltdLCBpbmRleDogbnVtYmVyLCBpc1dpZHRoOiBib29sZWFuKSB7XG4gICAgY29uc3Qgc3BhbiA9IGlzV2lkdGggPyBjZWxsLmNvbHNwYW4gfHwgMSA6IGNlbGwucm93c3BhbiB8fCAxO1xuICAgIGxldCBzaXplID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW47IGkrKykge1xuICAgICAgICBjb25zdCBjZWxsSW5kZXggPSBpbmRleCArIGk7XG4gICAgICAgIHNpemUgKz0gc2l6ZXNbY2VsbEluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIHNpemU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaXRDZWxsKGJvYXJkOiBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlLCBwb2ludDogUG9pbnQpIHtcbiAgICBjb25zdCB0YWJsZSA9IGJvYXJkLmJ1aWxkVGFibGUoZWxlbWVudCk7XG4gICAgY29uc3QgY2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQsIHRhYmxlKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgIGNvbnN0IGNlbGwgPSBjZWxscy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGl0ZW0ucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIGNlbGxSZWN0YW5nbGUpO1xuICAgIH0pO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICAgIHJldHVybiB0YWJsZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbC5pZCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdENlbGwoY2VsbDogUGxhaXRUYWJsZUNlbGwpIHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZUJ5Q2VsbChjZWxsKTtcbiAgICB0ZXh0TWFuYWdlICYmIHRleHRNYW5hZ2UuZWRpdCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dE1hbmFnZUJ5Q2VsbChjZWxsOiBQbGFpdFRhYmxlQ2VsbCkge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlKGNlbGwuaWQpO1xufVxuXG5leHBvcnQgY29uc3QgdXBkYXRlQ29sdW1ucyA9ICh0YWJsZTogUGxhaXRCYXNlVGFibGUsIGNvbHVtbklkOiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRhYmxlLmNvbHVtbnMubWFwKGl0ZW0gPT4gKGl0ZW0uaWQgPT09IGNvbHVtbklkID8geyAuLi5pdGVtLCB3aWR0aCB9IDogaXRlbSkpO1xuICAgIGNvbnN0IHBvaW50cyA9IFt0YWJsZS5wb2ludHNbMF0sIFt0YWJsZS5wb2ludHNbMV1bMF0gKyBvZmZzZXQsIHRhYmxlLnBvaW50c1sxXVsxXV1dIGFzIFBvaW50W107XG4gICAgcmV0dXJuIHsgY29sdW1ucywgcG9pbnRzIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUm93cyA9ICh0YWJsZTogUGxhaXRCYXNlVGFibGUsIHJvd0lkOiBzdHJpbmcsIGhlaWdodDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzLm1hcChpdGVtID0+IChpdGVtLmlkID09PSByb3dJZCA/IHsgLi4uaXRlbSwgaGVpZ2h0IH0gOiBpdGVtKSk7XG4gICAgY29uc3QgcG9pbnRzID0gW3RhYmxlLnBvaW50c1swXSwgW3RhYmxlLnBvaW50c1sxXVswXSwgdGFibGUucG9pbnRzWzFdWzFdICsgb2Zmc2V0XV0gYXMgUG9pbnRbXTtcbiAgICByZXR1cm4geyByb3dzLCBwb2ludHMgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDZWxsSWRzQnlSb3dPckNvbHVtbihjZWxsczogUGxhaXRUYWJsZUNlbGxbXSwgb2xkSWQ6IHN0cmluZywgbmV3SWQ6IHN0cmluZywgdHlwZTogJ3JvdycgfCAnY29sdW1uJykge1xuICAgIGNvbnN0IGlkOiAncm93SWQnIHwgJ2NvbHVtbklkJyA9IGAke3R5cGV9SWRgO1xuICAgIGNlbGxzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtW2lkXSA9PT0gb2xkSWQpIHtcbiAgICAgICAgICAgIGl0ZW1baWRdID0gbmV3SWQ7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVJvd09yQ29sdW1uSWRzKGVsZW1lbnQ6IFBsYWl0VGFibGUsIHR5cGU6ICdyb3cnIHwgJ2NvbHVtbicpIHtcbiAgICBlbGVtZW50W2Ake3R5cGV9c2BdLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIHVwZGF0ZUNlbGxJZHNCeVJvd09yQ29sdW1uKGVsZW1lbnQuY2VsbHMsIGl0ZW0uaWQsIG5ld0lkLCB0eXBlKTtcbiAgICAgICAgaXRlbS5pZCA9IG5ld0lkO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2VsbElkcyhjZWxsczogUGxhaXRUYWJsZUNlbGxbXSkge1xuICAgIGNlbGxzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lkID0gaWRDcmVhdG9yKCk7XG4gICAgICAgIGl0ZW0uaWQgPSBuZXdJZDtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2VsbEluY2x1ZGVUZXh0KGNlbGw6IFBsYWl0VGFibGVDZWxsKSB7XG4gICAgcmV0dXJuIGNlbGwudGV4dCAmJiBjZWxsLnRleHRIZWlnaHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsc1JlY3RhbmdsZShib2FyZDogUGxhaXRUYWJsZUJvYXJkLCBlbGVtZW50OiBQbGFpdFRhYmxlLCBjZWxsczogUGxhaXRUYWJsZUNlbGxbXSkge1xuICAgIGNvbnN0IGNlbGxzV2l0aFBvaW50cyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHBvaW50cyA9IGNlbGxzLm1hcChjZWxsID0+IHtcbiAgICAgICAgY29uc3QgY2VsbFdpdGhQb2ludHMgPSBjZWxsc1dpdGhQb2ludHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGNlbGwuaWQpO1xuICAgICAgICByZXR1cm4gY2VsbFdpdGhQb2ludHMhLnBvaW50cztcbiAgICB9KTtcbiAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyk7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDZWxsID0gKHJvd0lkOiBzdHJpbmcsIGNvbHVtbklkOiBzdHJpbmcsIHRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsKSA9PiB7XG4gICAgY29uc3QgY2VsbDogUGxhaXRUYWJsZUNlbGwgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgcm93SWQsXG4gICAgICAgIGNvbHVtbklkXG4gICAgfTtcbiAgICBpZiAodGV4dCAhPT0gbnVsbCkge1xuICAgICAgICBjZWxsWyd0ZXh0SGVpZ2h0J10gPSBURVhUX0RFRkFVTFRfSEVJR0hUO1xuICAgICAgICBjZWxsWyd0ZXh0J10gPSB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dCB9XSxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQuY2VudGVyXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBjZWxsO1xufTtcbiJdfQ==
|
|
158
|
+
export const getSelectedTableCellsEditor = (board) => {
|
|
159
|
+
if (isSingleSelectElementByTable(board)) {
|
|
160
|
+
const elements = getSelectedTableElements(board);
|
|
161
|
+
const selectedCells = getSelectedCells(elements[0]);
|
|
162
|
+
const selectedCellsEditor = selectedCells?.map(cell => {
|
|
163
|
+
const textManage = getTextManageByCell(cell);
|
|
164
|
+
return textManage?.editor;
|
|
165
|
+
});
|
|
166
|
+
if (selectedCellsEditor?.length) {
|
|
167
|
+
return selectedCellsEditor;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return undefined;
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUcsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsT0FBdUI7SUFDekUsTUFBTSxLQUFLLEdBQUksS0FBeUIsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FB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MkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUE0QixFQUFFO0lBQ3ZGLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxNQUFNLG1CQUFtQixHQUFHLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsT0FBTyxVQUFVLEVBQUUsTUFBTSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM5QixPQUFPLG1CQUFtQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaWRDcmVhdG9yLCBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGUsIFBsYWl0VGFibGVCb2FyZCwgUGxhaXRUYWJsZUNlbGwsIFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0VGV4dE1hbmFnZSB9IGZyb20gJy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hUIH0gZnJvbSAnQHBsYWl0L3RleHQtcGx1Z2lucyc7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZENlbGxzLCBnZXRTZWxlY3RlZFRhYmxlRWxlbWVudHMsIGlzU2luZ2xlU2VsZWN0RWxlbWVudEJ5VGFibGUgfSBmcm9tICcuL3RhYmxlLXNlbGVjdGVkJztcbmltcG9ydCB7IEJhc2VFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlKTogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzW10ge1xuICAgIGNvbnN0IHRhYmxlID0gKGJvYXJkIGFzIFBsYWl0VGFibGVCb2FyZCk/LmJ1aWxkVGFibGUoZWxlbWVudCk7XG4gICAgaWYgKCF0YWJsZSB8fCAhdGFibGUucG9pbnRzIHx8ICF0YWJsZS5jb2x1bW5zIHx8ICF0YWJsZS5yb3dzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2FuIG5vdCBnZXQgdGFibGUgY2VsbHMgcG9pbnRzJyk7XG4gICAgfVxuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyh0YWJsZS5wb2ludHMpO1xuICAgIGNvbnN0IGNvbHVtbnNDb3VudCA9IHRhYmxlLmNvbHVtbnMubGVuZ3RoO1xuICAgIGNvbnN0IHJvd3NDb3VudCA9IHRhYmxlLnJvd3MubGVuZ3RoO1xuICAgIGNvbnN0IGNlbGxXaWR0aHMgPSBjYWxjdWxhdGVDZWxsc1NpemUodGFibGUuY29sdW1ucywgcmVjdGFuZ2xlLndpZHRoLCBjb2x1bW5zQ291bnQsIHRydWUpO1xuICAgIGNvbnN0IGNlbGxIZWlnaHRzID0gY2FsY3VsYXRlQ2VsbHNTaXplKHRhYmxlLnJvd3MsIHJlY3RhbmdsZS5oZWlnaHQsIHJvd3NDb3VudCwgZmFsc2UpO1xuICAgIGNvbnN0IGNlbGxzOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHNbXSA9IHRhYmxlLmNlbGxzLm1hcChjZWxsID0+IHtcbiAgICAgICAgY29uc3Qgcm93SWR4ID0gdGFibGUucm93cy5maW5kSW5kZXgocm93ID0+IHJvdy5pZCA9PT0gY2VsbC5yb3dJZCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkeCA9IHRhYmxlLmNvbHVtbnMuZmluZEluZGV4KGNvbHVtbiA9PiBjb2x1bW4uaWQgPT09IGNlbGwuY29sdW1uSWQpO1xuXG4gICAgICAgIGxldCBjZWxsVG9wTGVmdFggPSByZWN0YW5nbGUueDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5JZHg7IGkrKykge1xuICAgICAgICAgICAgY2VsbFRvcExlZnRYICs9IGNlbGxXaWR0aHNbaV07XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2VsbFRvcExlZnRZID0gcmVjdGFuZ2xlLnk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93SWR4OyBpKyspIHtcbiAgICAgICAgICAgIGNlbGxUb3BMZWZ0WSArPSBjZWxsSGVpZ2h0c1tpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNlbGxXaWR0aCA9IGNhbGN1bGF0ZUNlbGxTaXplKGNlbGwsIGNlbGxXaWR0aHMsIGNvbHVtbklkeCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGNlbGxCb3R0b21SaWdodFggPSBjZWxsVG9wTGVmdFggKyBjZWxsV2lkdGg7XG5cbiAgICAgICAgY29uc3QgY2VsbEhlaWdodCA9IGNhbGN1bGF0ZUNlbGxTaXplKGNlbGwsIGNlbGxIZWlnaHRzLCByb3dJZHgsIGZhbHNlKTtcbiAgICAgICAgY29uc3QgY2VsbEJvdHRvbVJpZ2h0WSA9IGNlbGxUb3BMZWZ0WSArIGNlbGxIZWlnaHQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmNlbGwsXG4gICAgICAgICAgICBwb2ludHM6IFtcbiAgICAgICAgICAgICAgICBbY2VsbFRvcExlZnRYLCBjZWxsVG9wTGVmdFldLFxuICAgICAgICAgICAgICAgIFtjZWxsQm90dG9tUmlnaHRYLCBjZWxsQm90dG9tUmlnaHRZXVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNlbGxzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQ6IFBsYWl0Qm9hcmQsIHRhYmxlOiBQbGFpdEJhc2VUYWJsZSwgY2VsbElkOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBjZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCBhcyBQbGFpdFRhYmxlQm9hcmQsIHRhYmxlKTtcbiAgICAgICAgY29uc3QgY2VsbEluZGV4ID0gY2VsbHMgJiYgdGFibGUuY2VsbHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbElkKTtcbiAgICAgICAgcmV0dXJuIGNlbGxzW2NlbGxJbmRleF07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW4gbm90IGdldCB0YWJsZSBjZWxsIHBvaW50cycpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlQ2VsbHNTaXplKGl0ZW1zOiB7IGlkOiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9W10sIHRhYmxlU2l6ZTogbnVtYmVyLCBjb3VudDogbnVtYmVyLCBpc1dpZHRoOiBib29sZWFuKSB7XG4gICAgY29uc3QgY2VsbFNpemVzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IHNpemVUeXBlID0gaXNXaWR0aCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcblxuICAgIC8vIFRoZSByZW1haW5pbmcgc2l6ZSBvZiB0aGUgdGFibGUgZXhjbHVkaW5nIGNlbGxzIHdpdGggYWxyZWFkeSBzZXQgc2l6ZXMuXG4gICAgbGV0IHRvdGFsU2l6ZVJlbWFpbmluZyA9IHRhYmxlU2l6ZTtcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpdGVtW3NpemVUeXBlXSkge1xuICAgICAgICAgICAgY2VsbFNpemVzW2luZGV4XSA9IGl0ZW1bc2l6ZVR5cGVdO1xuICAgICAgICAgICAgdG90YWxTaXplUmVtYWluaW5nIC09IGl0ZW1bc2l6ZVR5cGVdO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBEaXZpZGUgdGhlIHJlbWFpbmluZyBzaXplIGVxdWFsbHkuXG4gICAgY29uc3QgcmVtYWluaW5nSXRlbUNvdW50ID0gY291bnQgLSBjZWxsU2l6ZXMuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKS5sZW5ndGg7XG4gICAgY29uc3QgcmVtYWluaW5nQ2VsbFNpemUgPSByZW1haW5pbmdJdGVtQ291bnQgPiAwID8gdG90YWxTaXplUmVtYWluaW5nIC8gcmVtYWluaW5nSXRlbUNvdW50IDogMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgaWYgKCFjZWxsU2l6ZXNbaV0pIHtcbiAgICAgICAgICAgIGNlbGxTaXplc1tpXSA9IHJlbWFpbmluZ0NlbGxTaXplO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjZWxsU2l6ZXM7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNlbGxTaXplKGNlbGw6IFBsYWl0VGFibGVDZWxsLCBzaXplczogbnVtYmVyW10sIGluZGV4OiBudW1iZXIsIGlzV2lkdGg6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzcGFuID0gaXNXaWR0aCA/IGNlbGwuY29sc3BhbiB8fCAxIDogY2VsbC5yb3dzcGFuIHx8IDE7XG4gICAgbGV0IHNpemUgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNlbGxJbmRleCA9IGluZGV4ICsgaTtcbiAgICAgICAgc2l6ZSArPSBzaXplc1tjZWxsSW5kZXhdO1xuICAgIH1cbiAgICByZXR1cm4gc2l6ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhpdENlbGwoYm9hcmQ6IFBsYWl0VGFibGVCb2FyZCwgZWxlbWVudDogUGxhaXRCYXNlVGFibGUsIHBvaW50OiBQb2ludCkge1xuICAgIGNvbnN0IHRhYmxlID0gYm9hcmQuYnVpbGRUYWJsZShlbGVtZW50KTtcbiAgICBjb25zdCBjZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCwgdGFibGUpO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgY29uc3QgY2VsbCA9IGNlbGxzLmZpbmQoaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoaXRlbS5wb2ludHMpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgY2VsbFJlY3RhbmdsZSk7XG4gICAgfSk7XG4gICAgaWYgKGNlbGwpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlLmNlbGxzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBjZWxsLmlkKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0Q2VsbChjZWxsOiBQbGFpdFRhYmxlQ2VsbCkge1xuICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlQnlDZWxsKGNlbGwpO1xuICAgIHRleHRNYW5hZ2UgJiYgdGV4dE1hbmFnZS5lZGl0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0TWFuYWdlQnlDZWxsKGNlbGw6IFBsYWl0VGFibGVDZWxsKSB7XG4gICAgcmV0dXJuIGdldFRleHRNYW5hZ2UoY2VsbC5pZCk7XG59XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVDb2x1bW5zID0gKHRhYmxlOiBQbGFpdEJhc2VUYWJsZSwgY29sdW1uSWQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGFibGUuY29sdW1ucy5tYXAoaXRlbSA9PiAoaXRlbS5pZCA9PT0gY29sdW1uSWQgPyB7IC4uLml0ZW0sIHdpZHRoIH0gOiBpdGVtKSk7XG4gICAgY29uc3QgcG9pbnRzID0gW3RhYmxlLnBvaW50c1swXSwgW3RhYmxlLnBvaW50c1sxXVswXSArIG9mZnNldCwgdGFibGUucG9pbnRzWzFdWzFdXV0gYXMgUG9pbnRbXTtcbiAgICByZXR1cm4geyBjb2x1bW5zLCBwb2ludHMgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVSb3dzID0gKHRhYmxlOiBQbGFpdEJhc2VUYWJsZSwgcm93SWQ6IHN0cmluZywgaGVpZ2h0OiBudW1iZXIsIG9mZnNldDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3MubWFwKGl0ZW0gPT4gKGl0ZW0uaWQgPT09IHJvd0lkID8geyAuLi5pdGVtLCBoZWlnaHQgfSA6IGl0ZW0pKTtcbiAgICBjb25zdCBwb2ludHMgPSBbdGFibGUucG9pbnRzWzBdLCBbdGFibGUucG9pbnRzWzFdWzBdLCB0YWJsZS5wb2ludHNbMV1bMV0gKyBvZmZzZXRdXSBhcyBQb2ludFtdO1xuICAgIHJldHVybiB7IHJvd3MsIHBvaW50cyB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNlbGxJZHNCeVJvd09yQ29sdW1uKGNlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdLCBvbGRJZDogc3RyaW5nLCBuZXdJZDogc3RyaW5nLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKSB7XG4gICAgY29uc3QgaWQ6ICdyb3dJZCcgfCAnY29sdW1uSWQnID0gYCR7dHlwZX1JZGA7XG4gICAgY2VsbHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW1baWRdID09PSBvbGRJZCkge1xuICAgICAgICAgICAgaXRlbVtpZF0gPSBuZXdJZDtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlUm93T3JDb2x1bW5JZHMoZWxlbWVudDogUGxhaXRUYWJsZSwgdHlwZTogJ3JvdycgfCAnY29sdW1uJykge1xuICAgIGVsZW1lbnRbYCR7dHlwZX1zYF0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgbmV3SWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgdXBkYXRlQ2VsbElkc0J5Um93T3JDb2x1bW4oZWxlbWVudC5jZWxscywgaXRlbS5pZCwgbmV3SWQsIHR5cGUpO1xuICAgICAgICBpdGVtLmlkID0gbmV3SWQ7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDZWxsSWRzKGNlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdKSB7XG4gICAgY2VsbHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgbmV3SWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgaXRlbS5pZCA9IG5ld0lkO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDZWxsSW5jbHVkZVRleHQoY2VsbDogUGxhaXRUYWJsZUNlbGwpIHtcbiAgICByZXR1cm4gY2VsbC50ZXh0ICYmIGNlbGwudGV4dEhlaWdodDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENlbGxzUmVjdGFuZ2xlKGJvYXJkOiBQbGFpdFRhYmxlQm9hcmQsIGVsZW1lbnQ6IFBsYWl0VGFibGUsIGNlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdKSB7XG4gICAgY29uc3QgY2VsbHNXaXRoUG9pbnRzID0gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkIGFzIFBsYWl0VGFibGVCb2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgcG9pbnRzID0gY2VsbHMubWFwKGNlbGwgPT4ge1xuICAgICAgICBjb25zdCBjZWxsV2l0aFBvaW50cyA9IGNlbGxzV2l0aFBvaW50cy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbC5pZCk7XG4gICAgICAgIHJldHVybiBjZWxsV2l0aFBvaW50cyEucG9pbnRzO1xuICAgIH0pO1xuICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnRzKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNlbGwgPSAocm93SWQ6IHN0cmluZywgY29sdW1uSWQ6IHN0cmluZywgdGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGwpID0+IHtcbiAgICBjb25zdCBjZWxsOiBQbGFpdFRhYmxlQ2VsbCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICByb3dJZCxcbiAgICAgICAgY29sdW1uSWRcbiAgICB9O1xuICAgIGlmICh0ZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIGNlbGxbJ3RleHRIZWlnaHQnXSA9IFRFWFRfREVGQVVMVF9IRUlHSFQ7XG4gICAgICAgIGNlbGxbJ3RleHQnXSA9IHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0ZXh0IH1dLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5jZW50ZXJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGNlbGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRUYWJsZUNlbGxzRWRpdG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkKTogQmFzZUVkaXRvcltdIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoaXNTaW5nbGVTZWxlY3RFbGVtZW50QnlUYWJsZShib2FyZCkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZFRhYmxlRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gZ2V0U2VsZWN0ZWRDZWxscyhlbGVtZW50c1swXSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2VsbHNFZGl0b3IgPSBzZWxlY3RlZENlbGxzPy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZUJ5Q2VsbChjZWxsKTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0TWFuYWdlPy5lZGl0b3I7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRDZWxsc0VkaXRvcj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRDZWxsc0VkaXRvciBhcyBCYXNlRWRpdG9yW107XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG4iXX0=
|