@plait/draw 0.62.0-next.5 → 0.62.0-next.7
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/pointer.d.ts +3 -3
- package/esm2022/arrow-line.component.mjs +157 -0
- package/esm2022/constants/geometry.mjs +3 -3
- package/esm2022/constants/pointer.mjs +4 -4
- 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/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.mjs +1 -20
- package/esm2022/plugins/with-table.mjs +21 -3
- package/esm2022/public-api.mjs +3 -3
- package/esm2022/table.component.mjs +6 -6
- package/esm2022/transforms/arrow-line.mjs +100 -0
- package/esm2022/transforms/geometry.mjs +4 -4
- package/esm2022/transforms/index.mjs +12 -11
- 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 +127 -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 +3 -3
- package/esm2022/utils/geometry.mjs +13 -13
- 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/swimlane.mjs +11 -5
- package/esm2022/utils/table-selected.mjs +3 -4
- package/esm2022/utils/table.mjs +16 -1
- package/fesm2022/plait-draw.mjs +448 -372
- 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 +1 -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 +12 -0
- package/transforms/index.d.ts +8 -8
- 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} +3 -3
- 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/geometry.d.ts +17 -17
- 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 +1 -1
- 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
|
@@ -2,7 +2,6 @@ import { idCreator, PlaitBoard, RectangleClient, Transforms } from '@plait/core'
|
|
|
2
2
|
import { PlaitDrawElement } from '../interfaces';
|
|
3
3
|
import { getCellWithPoints } from '../utils/table';
|
|
4
4
|
import { getSwimlaneCount } from '../utils/swimlane';
|
|
5
|
-
import { getSelectedCells } from '../utils';
|
|
6
5
|
import { Alignment } from '@plait/common';
|
|
7
6
|
export const updateSwimlaneCount = (board, swimlane, count) => {
|
|
8
7
|
if (count > 0 && PlaitDrawElement.isSwimlane(swimlane)) {
|
|
@@ -162,31 +161,4 @@ const updateSwimlane = (board, swimlane, newColumns, newRows, newCells, newPoint
|
|
|
162
161
|
points: newPoints
|
|
163
162
|
}, path);
|
|
164
163
|
};
|
|
165
|
-
export const setSwimlaneFill = (board, element, fill, path) => {
|
|
166
|
-
const selectedCells = getSelectedCells(element);
|
|
167
|
-
let newCells = element.cells;
|
|
168
|
-
if (selectedCells?.length) {
|
|
169
|
-
newCells = element.cells.map(cell => {
|
|
170
|
-
if (selectedCells.map(item => item.id).includes(cell.id)) {
|
|
171
|
-
return {
|
|
172
|
-
...cell,
|
|
173
|
-
fill
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
return cell;
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
newCells = element.cells.map(cell => {
|
|
181
|
-
if (cell.text && cell.textHeight) {
|
|
182
|
-
return {
|
|
183
|
-
...cell,
|
|
184
|
-
fill
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return cell;
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
Transforms.setNode(board, { cells: newCells }, path);
|
|
191
|
-
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVEsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBdUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUM3RixJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksS0FBSyxHQUFHLFlBQVksRUFBRSxDQUFDO2dCQUN2QixjQUFjLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUM7WUFDaEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxHQUFHLEtBQUss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O0lBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaWRDcmVhdG9yLCBQYXRoLCBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBUcmFuc2Zvcm1zIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRTd2ltbGFuZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGVDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IGdldFN3aW1sYW5lQ291bnQgfSBmcm9tICcuLi91dGlscy9zd2ltbGFuZSc7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZENlbGxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVTd2ltbGFuZUNvdW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgY291bnQ6IG51bWJlcikgPT4ge1xuICAgIGlmIChjb3VudCA+IDAgJiYgUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBnZXRTd2ltbGFuZUNvdW50KHN3aW1sYW5lKTtcbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgICAgICBpZiAoY291bnQgPiBjdXJyZW50Q291bnQpIHtcbiAgICAgICAgICAgICAgICBhZGRTd2ltbGFuZVJvdyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLnJvd3MubGVuZ3RoLCBjb3VudCAtIGN1cnJlbnRDb3VudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc3dpbWxhbmUucm93cy5sZW5ndGggLSAoY3VycmVudENvdW50IC0gY291bnQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVN3aW1sYW5lUm93KGJvYXJkLCBzd2ltbGFuZSwgZGVsZXRlSW5kZXgsIGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlcnRpY2FsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgICAgICBpZiAoY291bnQgPiBjdXJyZW50Q291bnQpIHtcbiAgICAgICAgICAgICAgICBhZGRTd2ltbGFuZUNvbHVtbihib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMubGVuZ3RoLCBjb3VudCAtIGN1cnJlbnRDb3VudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc3dpbWxhbmUuY29sdW1ucy5sZW5ndGggLSAoY3VycmVudENvdW50IC0gY291bnQpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVN3aW1sYW5lQ29sdW1uKGJvYXJkLCBzd2ltbGFuZSwgZGVsZXRlSW5kZXgsIGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZVJvdyA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIGNvbnN0IGFkZFJvd3M6IHsgaWQ6IHN0cmluZyB9W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBhZGRSb3dzLnB1c2goeyBpZDogaWRDcmVhdG9yKCkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV3Um93cy5zcGxpY2UoaW5kZXgsIDAsIC4uLmFkZFJvd3MpO1xuICAgICAgICBjb25zdCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxsc107XG4gICAgICAgIGFkZFJvd3MuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIG5ld0NlbGxzLnB1c2goLi4uY3JlYXRlTmV3U3dpbWxhbmVDZWxscyhzd2ltbGFuZSwgaXRlbS5pZCwgJ2NvbHVtbicpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxhc3RDZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jZWxsc1tzd2ltbGFuZS5jZWxscy5sZW5ndGggLSAxXS5pZCkucG9pbnRzO1xuICAgICAgICBjb25zdCBsYXN0Um93SGVpZ2h0ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSArIGxhc3RSb3dIZWlnaHQgKiBjb3VudF1dO1xuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNvbHVtbnMsIG5ld1Jvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZXJ0aWNhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBjb25zdCBuZXdDb2x1bW5zID0gWy4uLnN3aW1sYW5lLmNvbHVtbnNdO1xuICAgICAgICBjb25zdCBhZGRDb2x1bW5zOiB7IGlkOiBzdHJpbmcgfVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgYWRkQ29sdW1ucy5wdXNoKHsgaWQ6IGlkQ3JlYXRvcigpIH0pO1xuICAgICAgICB9XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRDb2x1bW5zKTtcbiAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICBhZGRDb2x1bW5zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBuZXdDZWxscy5wdXNoKC4uLmNyZWF0ZU5ld1N3aW1sYW5lQ2VsbHMoc3dpbWxhbmUsIGl0ZW0uaWQsICdyb3cnKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsYXN0Q2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY2VsbHNbc3dpbWxhbmUuY2VsbHMubGVuZ3RoIC0gMV0uaWQpLnBvaW50cztcbiAgICAgICAgY29uc3QgbGFzdENvbHVtbldpZHRoID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGxhc3RDZWxsUG9pbnRzKS53aWR0aDtcbiAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSArIGxhc3RDb2x1bW5XaWR0aCAqIGNvdW50LCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcblxuICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIG5ld0NvbHVtbnMsIHN3aW1sYW5lLnJvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTd2ltbGFuZVJvdyA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNIb3Jpem9udGFsU3dpbWxhbmUoc3dpbWxhbmUpKSB7XG4gICAgICAgIGlmIChjb3VudCA+IHN3aW1sYW5lLnJvd3MubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Um93cyA9IFsuLi5zd2ltbGFuZS5yb3dzXTtcbiAgICAgICAgbmV3Um93cy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcbiAgICAgICAgaWYgKG5ld1Jvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCBwYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXdDZWxscyA9IFsuLi5zd2ltbGFuZS5jZWxsc107XG4gICAgICAgICAgICBjb25zdCByZW1vdmVSb3dzID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5kZXg7IGkgPCBjb3VudCArIGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW1vdmVSb3cgPSBzd2ltbGFuZS5yb3dzW2ldO1xuICAgICAgICAgICAgICAgIHJlbW92ZVJvd3MucHVzaChyZW1vdmVSb3cpO1xuICAgICAgICAgICAgICAgIG5ld0NlbGxzID0gbmV3Q2VsbHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5yb3dJZCAhPT0gcmVtb3ZlUm93LmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByZW1vdmVSb3dIZWlnaHQgPSAwO1xuICAgICAgICAgICAgcmVtb3ZlUm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyb3cuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5yb3dJZCA9PT0gcm93LmlkKSE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHJvd0NlbGwuaWQpLnBvaW50cztcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUm93SGVpZ2h0ICs9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsUG9pbnRzKS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUm93SGVpZ2h0ICs9IHJvdy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0sIHN3aW1sYW5lLnBvaW50c1sxXVsxXSAtIHJlbW92ZVJvd0hlaWdodF1dO1xuICAgICAgICAgICAgdXBkYXRlU3dpbWxhbmUoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jb2x1bW5zLCBuZXdSb3dzLCBuZXdDZWxscywgbmV3UG9pbnRzKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTd2ltbGFuZUNvbHVtbiA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIgPSAxKSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZXJ0aWNhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBpZiAoY291bnQgPiBzd2ltbGFuZS5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSBbLi4uc3dpbWxhbmUuY29sdW1uc107XG4gICAgICAgIG5ld0NvbHVtbnMuc3BsaWNlKGluZGV4LCBjb3VudCk7XG4gICAgICAgIGlmIChuZXdDb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZShib2FyZCwgcGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlQ29sdW1ucyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgY291bnQgKyBpbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlQ29sdW1uID0gc3dpbWxhbmUuY29sdW1uc1tpXTtcbiAgICAgICAgICAgICAgICByZW1vdmVDb2x1bW5zLnB1c2gocmVtb3ZlQ29sdW1uKTtcbiAgICAgICAgICAgICAgICBuZXdDZWxscyA9IG5ld0NlbGxzLmZpbHRlcihpdGVtID0+IGl0ZW0uY29sdW1uSWQgIT09IHJlbW92ZUNvbHVtbi5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmVtb3ZlQ29sdW1uV2lkdGggPSAwO1xuICAgICAgICAgICAgcmVtb3ZlQ29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFjb2x1bW4ud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93Q2VsbCA9IHN3aW1sYW5lLmNlbGxzLmZpbmQoaXRlbSA9PiBpdGVtLmNvbHVtbklkID09PSBjb2x1bW4uaWQpITtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgcm93Q2VsbC5pZCkucG9pbnRzO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDb2x1bW5XaWR0aCArPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29sdW1uV2lkdGggKz0gY29sdW1uLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgbmV3UG9pbnRzOiBQb2ludFtdID0gW3N3aW1sYW5lLnBvaW50c1swXSwgW3N3aW1sYW5lLnBvaW50c1sxXVswXSAtIHJlbW92ZUNvbHVtbldpZHRoLCBzd2ltbGFuZS5wb2ludHNbMV1bMV1dXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgbmV3Q29sdW1ucywgc3dpbWxhbmUucm93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5jb25zdCBjcmVhdGVOZXdTd2ltbGFuZUNlbGxzID0gKHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBuZXdJZDogc3RyaW5nLCB0eXBlOiAncm93JyB8ICdjb2x1bW4nKTogUGxhaXRUYWJsZUNlbGxbXSA9PiB7XG4gICAgY29uc3QgY2VsbHM6IFBsYWl0VGFibGVDZWxsW10gPSBzd2ltbGFuZVtgJHt0eXBlfXNgXS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHJvd0lkOiB0eXBlID09PSAncm93JyA/IGl0ZW0uaWQgOiBuZXdJZCxcbiAgICAgICAgY29sdW1uSWQ6IHR5cGUgPT09ICdyb3cnID8gbmV3SWQgOiBpdGVtLmlkXG4gICAgfSkpO1xuICAgIGlmIChzd2ltbGFuZS5oZWFkZXIpIHtcbiAgICAgICAgY2VsbHMuc2hpZnQoKTtcbiAgICB9XG4gICAgY2VsbHNbMF0gPSB7XG4gICAgICAgIC4uLmNlbGxzWzBdLFxuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogc3dpbWxhbmUuaGVhZGVyID8gJ0xhbmUnIDogJ05ldyBTd2ltbGFuZScgfV0sXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmNlbnRlcixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdHlwZSA9PT0gJ3JvdycgPyB1bmRlZmluZWQgOiAndmVydGljYWwnXG4gICAgICAgIH0sXG4gICAgICAgIHRleHRIZWlnaHQ6IDIwXG4gICAgfTtcbiAgICByZXR1cm4gY2VsbHM7XG59O1xuXG5jb25zdCB1cGRhdGVTd2ltbGFuZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSxcbiAgICBuZXdDb2x1bW5zOiB7IGlkOiBzdHJpbmc7IHdpZHRoPzogbnVtYmVyIH1bXSxcbiAgICBuZXdSb3dzOiB7IGlkOiBzdHJpbmc7IGhlaWdodD86IG51bWJlciB9W10sXG4gICAgbmV3Q2VsbHM6IFBsYWl0VGFibGVDZWxsW10sXG4gICAgbmV3UG9pbnRzOiBQb2ludFtdXG4pID0+IHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc3dpbWxhbmUpO1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbHVtbnM6IG5ld0NvbHVtbnMsXG4gICAgICAgICAgICByb3dzOiBuZXdSb3dzLFxuICAgICAgICAgICAgY2VsbHM6IG5ld0NlbGxzLFxuICAgICAgICAgICAgcG9pbnRzOiBuZXdQb2ludHNcbiAgICAgICAgfSxcbiAgICAgICAgcGF0aFxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0U3dpbWxhbmVGaWxsID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEJhc2VUYWJsZSwgZmlsbDogc3RyaW5nLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDZWxscyA9IGdldFNlbGVjdGVkQ2VsbHMoZWxlbWVudCk7XG4gICAgbGV0IG5ld0NlbGxzID0gZWxlbWVudC5jZWxscztcbiAgICBpZiAoc2VsZWN0ZWRDZWxscz8ubGVuZ3RoKSB7XG4gICAgICAgIG5ld0NlbGxzID0gZWxlbWVudC5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRDZWxscy5tYXAoaXRlbSA9PiBpdGVtLmlkKS5pbmNsdWRlcyhjZWxsLmlkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNlbGwsXG4gICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NlbGxzID0gZWxlbWVudC5jZWxscy5tYXAoY2VsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY2VsbC50ZXh0ICYmIGNlbGwudGV4dEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNlbGwsXG4gICAgICAgICAgICAgICAgICAgIGZpbGxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgY2VsbHM6IG5ld0NlbGxzIH0sIHBhdGgpO1xufTtcbiJdfQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3N3aW1sYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVEsVUFBVSxFQUFTLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQzdGLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEQsSUFBSSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7Z0JBQ3ZCLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssR0FBRyxZQUFZLENBQUMsQ0FBQztZQUNoRixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ2xFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFR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QUNMO1FBQ0ksT0FBTyxFQUFFLFVBQVU7UUFDbkIsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsUUFBUTtRQUNmLE1BQU0sRUFBRSxTQUFTO0tBQ3BCLEVBQ0QsSUFBSSxDQUNQLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBhdGgsIFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdFbGVtZW50LCBQbGFpdFN3aW1sYW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdEJhc2VUYWJsZSwgUGxhaXRUYWJsZUNlbGwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldENlbGxXaXRoUG9pbnRzIH0gZnJvbSAnLi4vdXRpbHMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0U3dpbWxhbmVDb3VudCB9IGZyb20gJy4uL3V0aWxzL3N3aW1sYW5lJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlU3dpbWxhbmVDb3VudCA9IChib2FyZDogUGxhaXRCb2FyZCwgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsIGNvdW50OiBudW1iZXIpID0+IHtcbiAgICBpZiAoY291bnQgPiAwICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZShzd2ltbGFuZSkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudENvdW50ID0gZ2V0U3dpbWxhbmVDb3VudChzd2ltbGFuZSk7XG4gICAgICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSG9yaXpvbnRhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICAgICAgaWYgKGNvdW50ID4gY3VycmVudENvdW50KSB7XG4gICAgICAgICAgICAgICAgYWRkU3dpbWxhbmVSb3coYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5yb3dzLmxlbmd0aCwgY291bnQgLSBjdXJyZW50Q291bnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWxldGVJbmRleCA9IHN3aW1sYW5lLnJvd3MubGVuZ3RoIC0gKGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgICAgICByZW1vdmVTd2ltbGFuZVJvdyhib2FyZCwgc3dpbWxhbmUsIGRlbGV0ZUluZGV4LCBjdXJyZW50Q291bnQgLSBjb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNWZXJ0aWNhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICAgICAgaWYgKGNvdW50ID4gY3VycmVudENvdW50KSB7XG4gICAgICAgICAgICAgICAgYWRkU3dpbWxhbmVDb2x1bW4oYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jb2x1bW5zLmxlbmd0aCwgY291bnQgLSBjdXJyZW50Q291bnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWxldGVJbmRleCA9IHN3aW1sYW5lLmNvbHVtbnMubGVuZ3RoIC0gKGN1cnJlbnRDb3VudCAtIGNvdW50KTtcbiAgICAgICAgICAgICAgICByZW1vdmVTd2ltbGFuZUNvbHVtbihib2FyZCwgc3dpbWxhbmUsIGRlbGV0ZUluZGV4LCBjdXJyZW50Q291bnQgLSBjb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgYWRkU3dpbWxhbmVSb3cgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSG9yaXpvbnRhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBjb25zdCBuZXdSb3dzID0gWy4uLnN3aW1sYW5lLnJvd3NdO1xuICAgICAgICBjb25zdCBhZGRSb3dzOiB7IGlkOiBzdHJpbmcgfVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgYWRkUm93cy5wdXNoKHsgaWQ6IGlkQ3JlYXRvcigpIH0pO1xuICAgICAgICB9XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCAwLCAuLi5hZGRSb3dzKTtcbiAgICAgICAgY29uc3QgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICBhZGRSb3dzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBuZXdDZWxscy5wdXNoKC4uLmNyZWF0ZU5ld1N3aW1sYW5lQ2VsbHMoc3dpbWxhbmUsIGl0ZW0uaWQsICdjb2x1bW4nKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsYXN0Q2VsbFBvaW50cyA9IGdldENlbGxXaXRoUG9pbnRzKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY2VsbHNbc3dpbWxhbmUuY2VsbHMubGVuZ3RoIC0gMV0uaWQpLnBvaW50cztcbiAgICAgICAgY29uc3QgbGFzdFJvd0hlaWdodCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhsYXN0Q2VsbFBvaW50cykuaGVpZ2h0O1xuICAgICAgICBjb25zdCBuZXdQb2ludHM6IFBvaW50W10gPSBbc3dpbWxhbmUucG9pbnRzWzBdLCBbc3dpbWxhbmUucG9pbnRzWzFdWzBdLCBzd2ltbGFuZS5wb2ludHNbMV1bMV0gKyBsYXN0Um93SGVpZ2h0ICogY291bnRdXTtcbiAgICAgICAgdXBkYXRlU3dpbWxhbmUoYm9hcmQsIHN3aW1sYW5lLCBzd2ltbGFuZS5jb2x1bW5zLCBuZXdSb3dzLCBuZXdDZWxscywgbmV3UG9pbnRzKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgYWRkU3dpbWxhbmVDb2x1bW4gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVydGljYWxTd2ltbGFuZShzd2ltbGFuZSkpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1ucyA9IFsuLi5zd2ltbGFuZS5jb2x1bW5zXTtcbiAgICAgICAgY29uc3QgYWRkQ29sdW1uczogeyBpZDogc3RyaW5nIH1bXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGFkZENvbHVtbnMucHVzaCh7IGlkOiBpZENyZWF0b3IoKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBuZXdDb2x1bW5zLnNwbGljZShpbmRleCwgMCwgLi4uYWRkQ29sdW1ucyk7XG4gICAgICAgIGNvbnN0IG5ld0NlbGxzID0gWy4uLnN3aW1sYW5lLmNlbGxzXTtcbiAgICAgICAgYWRkQ29sdW1ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgbmV3Q2VsbHMucHVzaCguLi5jcmVhdGVOZXdTd2ltbGFuZUNlbGxzKHN3aW1sYW5lLCBpdGVtLmlkLCAncm93JykpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGFzdENlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHN3aW1sYW5lLmNlbGxzW3N3aW1sYW5lLmNlbGxzLmxlbmd0aCAtIDFdLmlkKS5wb2ludHM7XG4gICAgICAgIGNvbnN0IGxhc3RDb2x1bW5XaWR0aCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhsYXN0Q2VsbFBvaW50cykud2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0gKyBsYXN0Q29sdW1uV2lkdGggKiBjb3VudCwgc3dpbWxhbmUucG9pbnRzWzFdWzFdXV07XG5cbiAgICAgICAgdXBkYXRlU3dpbWxhbmUoYm9hcmQsIHN3aW1sYW5lLCBuZXdDb2x1bW5zLCBzd2ltbGFuZS5yb3dzLCBuZXdDZWxscywgbmV3UG9pbnRzKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU3dpbWxhbmVSb3cgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSG9yaXpvbnRhbFN3aW1sYW5lKHN3aW1sYW5lKSkge1xuICAgICAgICBpZiAoY291bnQgPiBzd2ltbGFuZS5yb3dzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5ld1Jvd3MgPSBbLi4uc3dpbWxhbmUucm93c107XG4gICAgICAgIG5ld1Jvd3Muc3BsaWNlKGluZGV4LCBjb3VudCk7XG4gICAgICAgIGlmIChuZXdSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZShib2FyZCwgcGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbmV3Q2VsbHMgPSBbLi4uc3dpbWxhbmUuY2VsbHNdO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlUm93cyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgY291bnQgKyBpbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlUm93ID0gc3dpbWxhbmUucm93c1tpXTtcbiAgICAgICAgICAgICAgICByZW1vdmVSb3dzLnB1c2gocmVtb3ZlUm93KTtcbiAgICAgICAgICAgICAgICBuZXdDZWxscyA9IG5ld0NlbGxzLmZpbHRlcihpdGVtID0+IGl0ZW0ucm93SWQgIT09IHJlbW92ZVJvdy5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcmVtb3ZlUm93SGVpZ2h0ID0gMDtcbiAgICAgICAgICAgIHJlbW92ZVJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcm93LmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dDZWxsID0gc3dpbWxhbmUuY2VsbHMuZmluZChpdGVtID0+IGl0ZW0ucm93SWQgPT09IHJvdy5pZCkhO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjZWxsUG9pbnRzID0gZ2V0Q2VsbFdpdGhQb2ludHMoYm9hcmQsIHN3aW1sYW5lLCByb3dDZWxsLmlkKS5wb2ludHM7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZVJvd0hlaWdodCArPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbFBvaW50cykuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZVJvd0hlaWdodCArPSByb3cuaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdQb2ludHM6IFBvaW50W10gPSBbc3dpbWxhbmUucG9pbnRzWzBdLCBbc3dpbWxhbmUucG9pbnRzWzFdWzBdLCBzd2ltbGFuZS5wb2ludHNbMV1bMV0gLSByZW1vdmVSb3dIZWlnaHRdXTtcbiAgICAgICAgICAgIHVwZGF0ZVN3aW1sYW5lKGJvYXJkLCBzd2ltbGFuZSwgc3dpbWxhbmUuY29sdW1ucywgbmV3Um93cywgbmV3Q2VsbHMsIG5ld1BvaW50cyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU3dpbWxhbmVDb2x1bW4gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHN3aW1sYW5lOiBQbGFpdFN3aW1sYW5lLCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyID0gMSkgPT4ge1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVydGljYWxTd2ltbGFuZShzd2ltbGFuZSkpIHtcbiAgICAgICAgaWYgKGNvdW50ID4gc3dpbWxhbmUuY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDb2x1bW5zID0gWy4uLnN3aW1sYW5lLmNvbHVtbnNdO1xuICAgICAgICBuZXdDb2x1bW5zLnNwbGljZShpbmRleCwgY291bnQpO1xuICAgICAgICBpZiAobmV3Q29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBzd2ltbGFuZSk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IG5ld0NlbGxzID0gWy4uLnN3aW1sYW5lLmNlbGxzXTtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IGNvdW50ICsgaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbiA9IHN3aW1sYW5lLmNvbHVtbnNbaV07XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ29sdW1ucy5wdXNoKHJlbW92ZUNvbHVtbik7XG4gICAgICAgICAgICAgICAgbmV3Q2VsbHMgPSBuZXdDZWxscy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvbHVtbklkICE9PSByZW1vdmVDb2x1bW4uaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJlbW92ZUNvbHVtbldpZHRoID0gMDtcbiAgICAgICAgICAgIHJlbW92ZUNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghY29sdW1uLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NlbGwgPSBzd2ltbGFuZS5jZWxscy5maW5kKGl0ZW0gPT4gaXRlbS5jb2x1bW5JZCA9PT0gY29sdW1uLmlkKSE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxQb2ludHMgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgc3dpbWxhbmUsIHJvd0NlbGwuaWQpLnBvaW50cztcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29sdW1uV2lkdGggKz0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGxQb2ludHMpLndpZHRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNvbHVtbldpZHRoICs9IGNvbHVtbi53aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BvaW50czogUG9pbnRbXSA9IFtzd2ltbGFuZS5wb2ludHNbMF0sIFtzd2ltbGFuZS5wb2ludHNbMV1bMF0gLSByZW1vdmVDb2x1bW5XaWR0aCwgc3dpbWxhbmUucG9pbnRzWzFdWzFdXV07XG4gICAgICAgICAgICB1cGRhdGVTd2ltbGFuZShib2FyZCwgc3dpbWxhbmUsIG5ld0NvbHVtbnMsIHN3aW1sYW5lLnJvd3MsIG5ld0NlbGxzLCBuZXdQb2ludHMpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuY29uc3QgY3JlYXRlTmV3U3dpbWxhbmVDZWxscyA9IChzd2ltbGFuZTogUGxhaXRTd2ltbGFuZSwgbmV3SWQ6IHN0cmluZywgdHlwZTogJ3JvdycgfCAnY29sdW1uJyk6IFBsYWl0VGFibGVDZWxsW10gPT4ge1xuICAgIGNvbnN0IGNlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdID0gc3dpbWxhbmVbYCR7dHlwZX1zYF0ubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICByb3dJZDogdHlwZSA9PT0gJ3JvdycgPyBpdGVtLmlkIDogbmV3SWQsXG4gICAgICAgIGNvbHVtbklkOiB0eXBlID09PSAncm93JyA/IG5ld0lkIDogaXRlbS5pZFxuICAgIH0pKTtcbiAgICBpZiAoc3dpbWxhbmUuaGVhZGVyKSB7XG4gICAgICAgIGNlbGxzLnNoaWZ0KCk7XG4gICAgfVxuICAgIGNlbGxzWzBdID0ge1xuICAgICAgICAuLi5jZWxsc1swXSxcbiAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6IHN3aW1sYW5lLmhlYWRlciA/ICdMYW5lJyA6ICdOZXcgU3dpbWxhbmUnIH1dLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5jZW50ZXIsXG4gICAgICAgICAgICBkaXJlY3Rpb246IHR5cGUgPT09ICdyb3cnID8gdW5kZWZpbmVkIDogJ3ZlcnRpY2FsJ1xuICAgICAgICB9LFxuICAgICAgICB0ZXh0SGVpZ2h0OiAyMFxuICAgIH07XG4gICAgcmV0dXJuIGNlbGxzO1xufTtcblxuY29uc3QgdXBkYXRlU3dpbWxhbmUgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgc3dpbWxhbmU6IFBsYWl0U3dpbWxhbmUsXG4gICAgbmV3Q29sdW1uczogeyBpZDogc3RyaW5nOyB3aWR0aD86IG51bWJlciB9W10sXG4gICAgbmV3Um93czogeyBpZDogc3RyaW5nOyBoZWlnaHQ/OiBudW1iZXIgfVtdLFxuICAgIG5ld0NlbGxzOiBQbGFpdFRhYmxlQ2VsbFtdLFxuICAgIG5ld1BvaW50czogUG9pbnRbXVxuKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHN3aW1sYW5lKTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoXG4gICAgICAgIGJvYXJkLFxuICAgICAgICB7XG4gICAgICAgICAgICBjb2x1bW5zOiBuZXdDb2x1bW5zLFxuICAgICAgICAgICAgcm93czogbmV3Um93cyxcbiAgICAgICAgICAgIGNlbGxzOiBuZXdDZWxscyxcbiAgICAgICAgICAgIHBvaW50czogbmV3UG9pbnRzXG4gICAgICAgIH0sXG4gICAgICAgIHBhdGhcbiAgICApO1xufTtcbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { RectangleClient, Transforms } from '@plait/core';
|
|
1
|
+
import { PlaitNode, RectangleClient, Transforms } from '@plait/core';
|
|
2
2
|
import { ShapeDefaultSpace } from '../constants';
|
|
3
3
|
import { PlaitTableElement } from '../interfaces/table';
|
|
4
4
|
import { getCellWithPoints, updateColumns, updateRows } from '../utils/table';
|
|
5
|
-
export const setTableText = (board,
|
|
5
|
+
export const setTableText = (board, path, cellId, text, textHeight) => {
|
|
6
|
+
const table = PlaitNode.get(board, path);
|
|
6
7
|
const cell = getCellWithPoints(board, table, cellId);
|
|
7
8
|
const cellIndex = table.cells.findIndex(item => item.id === cell.id);
|
|
8
9
|
let rows = [...table.rows];
|
|
@@ -38,7 +39,6 @@ export const setTableText = (board, table, cellId, text, textWidth, textHeight)
|
|
|
38
39
|
textHeight: textHeight,
|
|
39
40
|
text
|
|
40
41
|
};
|
|
41
|
-
|
|
42
|
-
Transforms.setNode(board, { rows, columns, cells, points }, [path]);
|
|
42
|
+
Transforms.setNode(board, { rows, columns, cells, points }, path);
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3RyYW5zZm9ybXMvdGFibGUtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxPQUFPLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLElBQVUsRUFBRSxNQUFjLEVBQUUsSUFBYSxFQUFFLFVBQWtCLEVBQUUsRUFBRTtJQUM3RyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQW1CLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkcsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFDeEQsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBc0IsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNyRCxNQUFNLE1BQU0sR0FBRyxjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pGLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDN0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxHQUFHLGFBQWEsQ0FBQztZQUM1QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5RSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUN2QixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRztRQUNmLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNuQixVQUFVLEVBQUUsVUFBVTtRQUN0QixJQUFJO0tBQ1AsQ0FBQztJQUVGLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF0aCwgUGxhaXRCb2FyZCwgUGxhaXROb2RlLCBSZWN0YW5nbGVDbGllbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGVDZWxsLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0Q2VsbFdpdGhQb2ludHMsIHVwZGF0ZUNvbHVtbnMsIHVwZGF0ZVJvd3MgfSBmcm9tICcuLi91dGlscy90YWJsZSc7XG5cbmV4cG9ydCBjb25zdCBzZXRUYWJsZVRleHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhdGg6IFBhdGgsIGNlbGxJZDogc3RyaW5nLCB0ZXh0OiBFbGVtZW50LCB0ZXh0SGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0YWJsZSA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpIGFzIFBsYWl0QmFzZVRhYmxlO1xuICAgIGNvbnN0IGNlbGwgPSBnZXRDZWxsV2l0aFBvaW50cyhib2FyZCwgdGFibGUsIGNlbGxJZCk7XG4gICAgY29uc3QgY2VsbEluZGV4ID0gdGFibGUuY2VsbHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gY2VsbC5pZCk7XG4gICAgbGV0IHJvd3MgPSBbLi4udGFibGUucm93c107XG4gICAgbGV0IGNvbHVtbnMgPSBbLi4udGFibGUuY29sdW1uc107XG4gICAgbGV0IGNlbGxzID0gWy4uLnRhYmxlLmNlbGxzXTtcbiAgICBsZXQgcG9pbnRzID0gWy4uLnRhYmxlLnBvaW50c107XG4gICAgY29uc3QgeyB3aWR0aDogY2VsbFdpZHRoLCBoZWlnaHQ6IGNlbGxIZWlnaHQgfSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsLnBvaW50cyk7XG4gICAgY29uc3QgZGVmYXVsdFNwYWNlID0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dDtcbiAgICBpZiAoUGxhaXRUYWJsZUVsZW1lbnQuaXNWZXJ0aWNhbFRleHQoY2VsbCBhcyBQbGFpdFRhYmxlQ2VsbCkpIHtcbiAgICAgICAgY29uc3QgY29sdW1uSWR4ID0gdGFibGUuY29sdW1ucy5maW5kSW5kZXgoY29sdW1uID0+IGNvbHVtbi5pZCA9PT0gY2VsbC5jb2x1bW5JZCk7XG4gICAgICAgIGlmICh0ZXh0SGVpZ2h0ID4gY2VsbFdpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDb2x1bW5XaWR0aCA9IHRleHRIZWlnaHQgKyBkZWZhdWx0U3BhY2UgKiAyO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gbmV3Q29sdW1uV2lkdGggLSBjZWxsV2lkdGg7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB1cGRhdGVDb2x1bW5zKHRhYmxlLCB0YWJsZS5jb2x1bW5zW2NvbHVtbklkeF0uaWQsIG5ld0NvbHVtbldpZHRoLCBvZmZzZXQpO1xuICAgICAgICAgICAgcG9pbnRzID0gcmVzdWx0LnBvaW50cztcbiAgICAgICAgICAgIGNvbHVtbnMgPSByZXN1bHQuY29sdW1ucztcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJvd0lkeCA9IHRhYmxlLnJvd3MuZmluZEluZGV4KHJvdyA9PiByb3cuaWQgPT09IGNlbGwucm93SWQpO1xuICAgICAgICBjb25zdCB0YWJsZVJvdyA9IHRhYmxlLnJvd3Nbcm93SWR4XTtcbiAgICAgICAgY29uc3QgY29tcGFyZUhlaWdodCA9IHRhYmxlUm93LmhlaWdodCA/PyBNYXRoLm1heChjZWxsSGVpZ2h0LCBjZWxsLnRleHRIZWlnaHQgfHwgMCk7XG4gICAgICAgIGlmICh0ZXh0SGVpZ2h0ID4gY29tcGFyZUhlaWdodCkge1xuICAgICAgICAgICAgY29uc3QgbmV3Um93SGVpZ2h0ID0gdGV4dEhlaWdodCArIGRlZmF1bHRTcGFjZSAqIDI7XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQgPSBuZXdSb3dIZWlnaHQgLSBjb21wYXJlSGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdXBkYXRlUm93cyh0YWJsZSwgdGFibGUucm93c1tyb3dJZHhdLmlkLCBuZXdSb3dIZWlnaHQsIG9mZnNldCk7XG4gICAgICAgICAgICBwb2ludHMgPSByZXN1bHQucG9pbnRzO1xuICAgICAgICAgICAgcm93cyA9IHJlc3VsdC5yb3dzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNlbGxzW2NlbGxJbmRleF0gPSB7XG4gICAgICAgIC4uLmNlbGxzW2NlbGxJbmRleF0sXG4gICAgICAgIHRleHRIZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgIHRleHRcbiAgICB9O1xuXG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IHJvd3MsIGNvbHVtbnMsIGNlbGxzLCBwb2ludHMgfSwgcGF0aCk7XG59O1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Transforms } from '@plait/core';
|
|
2
|
+
import { getSelectedCells } from '../utils';
|
|
3
|
+
export const setTableFill = (board, element, fill, path) => {
|
|
4
|
+
const selectedCells = getSelectedCells(element);
|
|
5
|
+
let newCells = element.cells;
|
|
6
|
+
if (selectedCells?.length) {
|
|
7
|
+
newCells = element.cells.map(cell => {
|
|
8
|
+
if (selectedCells.map(item => item.id).includes(cell.id)) {
|
|
9
|
+
return {
|
|
10
|
+
...cell,
|
|
11
|
+
fill
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return cell;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
newCells = element.cells.map(cell => {
|
|
19
|
+
if (cell.text && cell.textHeight) {
|
|
20
|
+
return {
|
|
21
|
+
...cell,
|
|
22
|
+
fill
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return cell;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
Transforms.setNode(board, { cells: newCells }, path);
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXVCLEVBQUUsSUFBWSxFQUFFLElBQVUsRUFBRSxFQUFFO0lBQ2pHLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDN0IsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEIsUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELE9BQU87b0JBQ0gsR0FBRyxJQUFJO29CQUNQLElBQUk7aUJBQ1AsQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7U0FBTSxDQUFDO1FBQ0osUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQy9CLE9BQU87b0JBQ0gsR0FBRyxJQUFJO29CQUNQLElBQUk7aUJBQ1AsQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXRoLCBQbGFpdEJvYXJkLCBUcmFuc2Zvcm1zIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFNlbGVjdGVkQ2VsbHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBzZXRUYWJsZUZpbGwgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0QmFzZVRhYmxlLCBmaWxsOiBzdHJpbmcsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gZ2V0U2VsZWN0ZWRDZWxscyhlbGVtZW50KTtcbiAgICBsZXQgbmV3Q2VsbHMgPSBlbGVtZW50LmNlbGxzO1xuICAgIGlmIChzZWxlY3RlZENlbGxzPy5sZW5ndGgpIHtcbiAgICAgICAgbmV3Q2VsbHMgPSBlbGVtZW50LmNlbGxzLm1hcChjZWxsID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZENlbGxzLm1hcChpdGVtID0+IGl0ZW0uaWQpLmluY2x1ZGVzKGNlbGwuaWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2VsbCxcbiAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2VsbDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Q2VsbHMgPSBlbGVtZW50LmNlbGxzLm1hcChjZWxsID0+IHtcbiAgICAgICAgICAgIGlmIChjZWxsLnRleHQgJiYgY2VsbC50ZXh0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2VsbCxcbiAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2VsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBjZWxsczogbmV3Q2VsbHMgfSwgcGF0aCk7XG59O1xuIl19
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { arrowPoints, createG, createPath, distanceBetweenPointAndPoint, drawLinearPath, rotate } from '@plait/core';
|
|
2
|
+
import { ArrowLineMarkerType, PlaitArrowLine } from '../../interfaces';
|
|
3
|
+
import { getExtendPoint, getUnitVectorByPointAndPoint } from '@plait/common';
|
|
4
|
+
import { getStrokeWidthByElement } from '../common';
|
|
5
|
+
const ARROW_LENGTH = 20;
|
|
6
|
+
export const drawArrowLineArrow = (element, points, options) => {
|
|
7
|
+
const arrowG = createG();
|
|
8
|
+
if (PlaitArrowLine.isSourceMark(element, ArrowLineMarkerType.none) && PlaitArrowLine.isTargetMark(element, ArrowLineMarkerType.none)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
12
|
+
const offset = (strokeWidth * strokeWidth) / 3;
|
|
13
|
+
if (points.length === 1) {
|
|
14
|
+
points = [points[0], [points[0][0] + 0.1, points[0][1]]];
|
|
15
|
+
}
|
|
16
|
+
if (!PlaitArrowLine.isSourceMark(element, ArrowLineMarkerType.none)) {
|
|
17
|
+
const source = getExtendPoint(points[0], points[1], ARROW_LENGTH + offset);
|
|
18
|
+
const sourceArrow = getArrow(element, { marker: element.source.marker, source, target: points[0], isSource: true }, options);
|
|
19
|
+
sourceArrow && arrowG.appendChild(sourceArrow);
|
|
20
|
+
}
|
|
21
|
+
if (!PlaitArrowLine.isTargetMark(element, ArrowLineMarkerType.none)) {
|
|
22
|
+
const source = getExtendPoint(points[points.length - 1], points[points.length - 2], ARROW_LENGTH + offset);
|
|
23
|
+
const arrow = getArrow(element, { marker: element.target.marker, source, target: points[points.length - 1], isSource: false }, options);
|
|
24
|
+
arrow && arrowG.appendChild(arrow);
|
|
25
|
+
}
|
|
26
|
+
return arrowG;
|
|
27
|
+
};
|
|
28
|
+
const getArrow = (element, arrowOptions, options) => {
|
|
29
|
+
const { marker, target, source, isSource } = arrowOptions;
|
|
30
|
+
let targetArrow;
|
|
31
|
+
switch (marker) {
|
|
32
|
+
case ArrowLineMarkerType.openTriangle: {
|
|
33
|
+
targetArrow = drawOpenTriangle(element, source, target, options);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case ArrowLineMarkerType.solidTriangle: {
|
|
37
|
+
targetArrow = drawSolidTriangle(source, target, options);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
case ArrowLineMarkerType.arrow: {
|
|
41
|
+
targetArrow = drawArrow(element, source, target, options);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case ArrowLineMarkerType.sharpArrow: {
|
|
45
|
+
targetArrow = drawSharpArrow(source, target, options);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case ArrowLineMarkerType.oneSideUp: {
|
|
49
|
+
targetArrow = drawOneSideArrow(source, target, isSource ? 'down' : 'up', options);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case ArrowLineMarkerType.oneSideDown: {
|
|
53
|
+
targetArrow = drawOneSideArrow(source, target, isSource ? 'up' : 'down', options);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case ArrowLineMarkerType.hollowTriangle: {
|
|
57
|
+
targetArrow = drawHollowTriangleArrow(source, target, options);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case ArrowLineMarkerType.singleSlash: {
|
|
61
|
+
targetArrow = drawSingleSlash(source, target, isSource, options);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return targetArrow;
|
|
66
|
+
};
|
|
67
|
+
const drawSharpArrow = (source, target, options) => {
|
|
68
|
+
const startPoint = target;
|
|
69
|
+
const { pointLeft, pointRight } = arrowPoints(source, target, 20);
|
|
70
|
+
const g = createG();
|
|
71
|
+
const path = createPath();
|
|
72
|
+
let polylinePath = `M${pointRight[0]},${pointRight[1]}A25,25,20,0,1,${pointLeft[0]},${pointLeft[1]}L${startPoint[0]},${startPoint[1]}Z`;
|
|
73
|
+
path.setAttribute('d', polylinePath);
|
|
74
|
+
path.setAttribute('stroke', `${options?.stroke}`);
|
|
75
|
+
path.setAttribute('stroke-width', `${options?.strokeWidth}`);
|
|
76
|
+
path.setAttribute('fill', `${options?.stroke}`);
|
|
77
|
+
g.appendChild(path);
|
|
78
|
+
return g;
|
|
79
|
+
};
|
|
80
|
+
const drawArrow = (element, source, target, options) => {
|
|
81
|
+
const unitVector = getUnitVectorByPointAndPoint(source, target);
|
|
82
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
83
|
+
const endPoint = [target[0] + (strokeWidth * unitVector[0]) / 2, target[1] + (strokeWidth * unitVector[1]) / 2];
|
|
84
|
+
const distance = distanceBetweenPointAndPoint(...source, ...endPoint);
|
|
85
|
+
const middlePoint = [
|
|
86
|
+
endPoint[0] - (((distance * 3) / 5 + strokeWidth) / 2) * unitVector[0],
|
|
87
|
+
endPoint[1] - (((distance * 3) / 5 + strokeWidth) / 2) * unitVector[1]
|
|
88
|
+
];
|
|
89
|
+
const { pointLeft, pointRight } = arrowPoints(source, endPoint, 30);
|
|
90
|
+
const arrowG = drawLinearPath([pointLeft, endPoint, pointRight, middlePoint], { ...options, fill: options.stroke }, true);
|
|
91
|
+
const path = arrowG.querySelector('path');
|
|
92
|
+
path.setAttribute('stroke-linejoin', 'round');
|
|
93
|
+
return arrowG;
|
|
94
|
+
};
|
|
95
|
+
const drawSolidTriangle = (source, target, options) => {
|
|
96
|
+
const endPoint = target;
|
|
97
|
+
const { pointLeft, pointRight } = arrowPoints(source, endPoint, 30);
|
|
98
|
+
return drawLinearPath([pointLeft, endPoint, pointRight], { ...options, fill: options.stroke }, true);
|
|
99
|
+
};
|
|
100
|
+
const drawOpenTriangle = (element, source, target, options) => {
|
|
101
|
+
const unitVector = getUnitVectorByPointAndPoint(source, target);
|
|
102
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
103
|
+
const endPoint = [target[0] + (strokeWidth * unitVector[0]) / 2, target[1] + (strokeWidth * unitVector[1]) / 2];
|
|
104
|
+
const { pointLeft, pointRight } = arrowPoints(source, endPoint, 40);
|
|
105
|
+
return drawLinearPath([pointLeft, endPoint, pointRight], options);
|
|
106
|
+
};
|
|
107
|
+
const drawOneSideArrow = (source, target, side, options) => {
|
|
108
|
+
const { pointLeft, pointRight } = arrowPoints(source, target, 40);
|
|
109
|
+
return drawLinearPath([side === 'up' ? pointRight : pointLeft, target], options);
|
|
110
|
+
};
|
|
111
|
+
const drawSingleSlash = (source, target, isSource, options) => {
|
|
112
|
+
const length = distanceBetweenPointAndPoint(...source, ...target);
|
|
113
|
+
const middlePoint = getExtendPoint(target, source, length / 2);
|
|
114
|
+
const angle = isSource ? 120 : 60;
|
|
115
|
+
const start = rotate(...source, ...middlePoint, (angle * Math.PI) / 180);
|
|
116
|
+
const end = rotate(...target, ...middlePoint, (angle * Math.PI) / 180);
|
|
117
|
+
return drawLinearPath([start, end], options);
|
|
118
|
+
};
|
|
119
|
+
const drawHollowTriangleArrow = (source, target, options) => {
|
|
120
|
+
const { pointLeft, pointRight } = arrowPoints(source, target, 30);
|
|
121
|
+
return drawLinearPath([pointLeft, pointRight, target], { ...options, fill: 'white' }, true);
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS1hcnJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL2Fycm93LWxpbmUvYXJyb3ctbGluZS1hcnJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRcEQsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBdUIsRUFBRSxNQUFlLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO0lBQzdGLE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuSSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FB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LElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCwgYXJyb3dQb2ludHMsIGNyZWF0ZUcsIGNyZWF0ZVBhdGgsIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsIGRyYXdMaW5lYXJQYXRoLCByb3RhdGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBcnJvd0xpbmVNYXJrZXJUeXBlLCBQbGFpdEFycm93TGluZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0RXh0ZW5kUG9pbnQsIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vY29tbW9uJztcblxuaW50ZXJmYWNlIEFycm93T3B0aW9ucyB7XG4gICAgbWFya2VyOiBBcnJvd0xpbmVNYXJrZXJUeXBlO1xuICAgIHNvdXJjZTogUG9pbnQ7XG4gICAgdGFyZ2V0OiBQb2ludDtcbiAgICBpc1NvdXJjZTogYm9vbGVhbjtcbn1cbmNvbnN0IEFSUk9XX0xFTkdUSCA9IDIwO1xuXG5leHBvcnQgY29uc3QgZHJhd0Fycm93TGluZUFycm93ID0gKGVsZW1lbnQ6IFBsYWl0QXJyb3dMaW5lLCBwb2ludHM6IFBvaW50W10sIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBhcnJvd0cgPSBjcmVhdGVHKCk7XG4gICAgaWYgKFBsYWl0QXJyb3dMaW5lLmlzU291cmNlTWFyayhlbGVtZW50LCBBcnJvd0xpbmVNYXJrZXJUeXBlLm5vbmUpICYmIFBsYWl0QXJyb3dMaW5lLmlzVGFyZ2V0TWFyayhlbGVtZW50LCBBcnJvd0xpbmVNYXJrZXJUeXBlLm5vbmUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IG9mZnNldCA9IChzdHJva2VXaWR0aCAqIHN0cm9rZVdpZHRoKSAvIDM7XG4gICAgaWYgKHBvaW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcG9pbnRzID0gW3BvaW50c1swXSwgW3BvaW50c1swXVswXSArIDAuMSwgcG9pbnRzWzBdWzFdXV07XG4gICAgfVxuXG4gICAgaWYgKCFQbGFpdEFycm93TGluZS5pc1NvdXJjZU1hcmsoZWxlbWVudCwgQXJyb3dMaW5lTWFya2VyVHlwZS5ub25lKSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBnZXRFeHRlbmRQb2ludChwb2ludHNbMF0sIHBvaW50c1sxXSwgQVJST1dfTEVOR1RIICsgb2Zmc2V0KTtcbiAgICAgICAgY29uc3Qgc291cmNlQXJyb3cgPSBnZXRBcnJvdyhlbGVtZW50LCB7IG1hcmtlcjogZWxlbWVudC5zb3VyY2UubWFya2VyLCBzb3VyY2UsIHRhcmdldDogcG9pbnRzWzBdLCBpc1NvdXJjZTogdHJ1ZSB9LCBvcHRpb25zKTtcbiAgICAgICAgc291cmNlQXJyb3cgJiYgYXJyb3dHLmFwcGVuZENoaWxkKHNvdXJjZUFycm93KTtcbiAgICB9XG4gICAgaWYgKCFQbGFpdEFycm93TGluZS5pc1RhcmdldE1hcmsoZWxlbWVudCwgQXJyb3dMaW5lTWFya2VyVHlwZS5ub25lKSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBnZXRFeHRlbmRQb2ludChwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLCBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDJdLCBBUlJPV19MRU5HVEggKyBvZmZzZXQpO1xuICAgICAgICBjb25zdCBhcnJvdyA9IGdldEFycm93KFxuICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIHsgbWFya2VyOiBlbGVtZW50LnRhcmdldC5tYXJrZXIsIHNvdXJjZSwgdGFyZ2V0OiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLCBpc1NvdXJjZTogZmFsc2UgfSxcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgKTtcblxuICAgICAgICBhcnJvdyAmJiBhcnJvd0cuYXBwZW5kQ2hpbGQoYXJyb3cpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyb3dHO1xufTtcblxuY29uc3QgZ2V0QXJyb3cgPSAoZWxlbWVudDogUGxhaXRBcnJvd0xpbmUsIGFycm93T3B0aW9uczogQXJyb3dPcHRpb25zLCBvcHRpb25zOiBPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBtYXJrZXIsIHRhcmdldCwgc291cmNlLCBpc1NvdXJjZSB9ID0gYXJyb3dPcHRpb25zO1xuICAgIGxldCB0YXJnZXRBcnJvdztcbiAgICBzd2l0Y2ggKG1hcmtlcikge1xuICAgICAgICBjYXNlIEFycm93TGluZU1hcmtlclR5cGUub3BlblRyaWFuZ2xlOiB7XG4gICAgICAgICAgICB0YXJnZXRBcnJvdyA9IGRyYXdPcGVuVHJpYW5nbGUoZWxlbWVudCwgc291cmNlLCB0YXJnZXQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBcnJvd0xpbmVNYXJrZXJUeXBlLnNvbGlkVHJpYW5nbGU6IHtcbiAgICAgICAgICAgIHRhcmdldEFycm93ID0gZHJhd1NvbGlkVHJpYW5nbGUoc291cmNlLCB0YXJnZXQsIG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBcnJvd0xpbmVNYXJrZXJUeXBlLmFycm93OiB7XG4gICAgICAgICAgICB0YXJnZXRBcnJvdyA9IGRyYXdBcnJvdyhlbGVtZW50LCBzb3VyY2UsIHRhcmdldCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFycm93TGluZU1hcmtlclR5cGUuc2hhcnBBcnJvdzoge1xuICAgICAgICAgICAgdGFyZ2V0QXJyb3cgPSBkcmF3U2hhcnBBcnJvdyhzb3VyY2UsIHRhcmdldCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFycm93TGluZU1hcmtlclR5cGUub25lU2lkZVVwOiB7XG4gICAgICAgICAgICB0YXJnZXRBcnJvdyA9IGRyYXdPbmVTaWRlQXJyb3coc291cmNlLCB0YXJnZXQsIGlzU291cmNlID8gJ2Rvd24nIDogJ3VwJywgb3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFycm93TGluZU1hcmtlclR5cGUub25lU2lkZURvd246IHtcbiAgICAgICAgICAgIHRhcmdldEFycm93ID0gZHJhd09uZVNpZGVBcnJvdyhzb3VyY2UsIHRhcmdldCwgaXNTb3VyY2UgPyAndXAnIDogJ2Rvd24nLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQXJyb3dMaW5lTWFya2VyVHlwZS5ob2xsb3dUcmlhbmdsZToge1xuICAgICAgICAgICAgdGFyZ2V0QXJyb3cgPSBkcmF3SG9sbG93VHJpYW5nbGVBcnJvdyhzb3VyY2UsIHRhcmdldCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFycm93TGluZU1hcmtlclR5cGUuc2luZ2xlU2xhc2g6IHtcbiAgICAgICAgICAgIHRhcmdldEFycm93ID0gZHJhd1NpbmdsZVNsYXNoKHNvdXJjZSwgdGFyZ2V0LCBpc1NvdXJjZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0QXJyb3c7XG59O1xuXG5jb25zdCBkcmF3U2hhcnBBcnJvdyA9IChzb3VyY2U6IFBvaW50LCB0YXJnZXQ6IFBvaW50LCBvcHRpb25zOiBPcHRpb25zKSA9PiB7XG4gICAgY29uc3Qgc3RhcnRQb2ludDogUG9pbnQgPSB0YXJnZXQ7XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgdGFyZ2V0LCAyMCk7XG4gICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aCgpO1xuICAgIGxldCBwb2x5bGluZVBhdGggPSBgTSR7cG9pbnRSaWdodFswXX0sJHtwb2ludFJpZ2h0WzFdfUEyNSwyNSwyMCwwLDEsJHtwb2ludExlZnRbMF19LCR7cG9pbnRMZWZ0WzFdfUwke3N0YXJ0UG9pbnRbMF19LCR7c3RhcnRQb2ludFsxXX1aYDtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHBvbHlsaW5lUGF0aCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIGAke29wdGlvbnM/LnN0cm9rZX1gKTtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywgYCR7b3B0aW9ucz8uc3Ryb2tlV2lkdGh9YCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBgJHtvcHRpb25zPy5zdHJva2V9YCk7XG4gICAgZy5hcHBlbmRDaGlsZChwYXRoKTtcbiAgICByZXR1cm4gZztcbn07XG5cbmNvbnN0IGRyYXdBcnJvdyA9IChlbGVtZW50OiBQbGFpdEFycm93TGluZSwgc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCwgb3B0aW9uczogT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHVuaXRWZWN0b3IgPSBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IGVuZFBvaW50OiBQb2ludCA9IFt0YXJnZXRbMF0gKyAoc3Ryb2tlV2lkdGggKiB1bml0VmVjdG9yWzBdKSAvIDIsIHRhcmdldFsxXSArIChzdHJva2VXaWR0aCAqIHVuaXRWZWN0b3JbMV0pIC8gMl07XG4gICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KC4uLnNvdXJjZSwgLi4uZW5kUG9pbnQpO1xuICAgIGNvbnN0IG1pZGRsZVBvaW50OiBQb2ludCA9IFtcbiAgICAgICAgZW5kUG9pbnRbMF0gLSAoKChkaXN0YW5jZSAqIDMpIC8gNSArIHN0cm9rZVdpZHRoKSAvIDIpICogdW5pdFZlY3RvclswXSxcbiAgICAgICAgZW5kUG9pbnRbMV0gLSAoKChkaXN0YW5jZSAqIDMpIC8gNSArIHN0cm9rZVdpZHRoKSAvIDIpICogdW5pdFZlY3RvclsxXVxuICAgIF07XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgZW5kUG9pbnQsIDMwKTtcbiAgICBjb25zdCBhcnJvd0cgPSBkcmF3TGluZWFyUGF0aChbcG9pbnRMZWZ0LCBlbmRQb2ludCwgcG9pbnRSaWdodCwgbWlkZGxlUG9pbnRdLCB7IC4uLm9wdGlvbnMsIGZpbGw6IG9wdGlvbnMuc3Ryb2tlIH0sIHRydWUpO1xuICAgIGNvbnN0IHBhdGggPSBhcnJvd0cucXVlcnlTZWxlY3RvcigncGF0aCcpO1xuICAgIHBhdGghLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLWxpbmVqb2luJywgJ3JvdW5kJyk7XG4gICAgcmV0dXJuIGFycm93Rztcbn07XG5cbmNvbnN0IGRyYXdTb2xpZFRyaWFuZ2xlID0gKHNvdXJjZTogUG9pbnQsIHRhcmdldDogUG9pbnQsIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBlbmRQb2ludDogUG9pbnQgPSB0YXJnZXQ7XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgZW5kUG9pbnQsIDMwKTtcbiAgICByZXR1cm4gZHJhd0xpbmVhclBhdGgoW3BvaW50TGVmdCwgZW5kUG9pbnQsIHBvaW50UmlnaHRdLCB7IC4uLm9wdGlvbnMsIGZpbGw6IG9wdGlvbnMuc3Ryb2tlIH0sIHRydWUpO1xufTtcblxuY29uc3QgZHJhd09wZW5UcmlhbmdsZSA9IChlbGVtZW50OiBQbGFpdEFycm93TGluZSwgc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCwgb3B0aW9uczogT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHVuaXRWZWN0b3IgPSBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KHNvdXJjZSwgdGFyZ2V0KTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IGVuZFBvaW50OiBQb2ludCA9IFt0YXJnZXRbMF0gKyAoc3Ryb2tlV2lkdGggKiB1bml0VmVjdG9yWzBdKSAvIDIsIHRhcmdldFsxXSArIChzdHJva2VXaWR0aCAqIHVuaXRWZWN0b3JbMV0pIC8gMl07XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgZW5kUG9pbnQsIDQwKTtcbiAgICByZXR1cm4gZHJhd0xpbmVhclBhdGgoW3BvaW50TGVmdCwgZW5kUG9pbnQsIHBvaW50UmlnaHRdLCBvcHRpb25zKTtcbn07XG5cbmNvbnN0IGRyYXdPbmVTaWRlQXJyb3cgPSAoc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCwgc2lkZTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgdGFyZ2V0LCA0MCk7XG4gICAgcmV0dXJuIGRyYXdMaW5lYXJQYXRoKFtzaWRlID09PSAndXAnID8gcG9pbnRSaWdodCA6IHBvaW50TGVmdCwgdGFyZ2V0XSwgb3B0aW9ucyk7XG59O1xuXG5jb25zdCBkcmF3U2luZ2xlU2xhc2ggPSAoc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCwgaXNTb3VyY2U6IGJvb2xlYW4sIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBsZW5ndGggPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KC4uLnNvdXJjZSwgLi4udGFyZ2V0KTtcbiAgICBjb25zdCBtaWRkbGVQb2ludCA9IGdldEV4dGVuZFBvaW50KHRhcmdldCwgc291cmNlLCBsZW5ndGggLyAyKTtcbiAgICBjb25zdCBhbmdsZSA9IGlzU291cmNlID8gMTIwIDogNjA7XG4gICAgY29uc3Qgc3RhcnQgPSByb3RhdGUoLi4uc291cmNlLCAuLi5taWRkbGVQb2ludCwgKGFuZ2xlICogTWF0aC5QSSkgLyAxODApIGFzIFBvaW50O1xuICAgIGNvbnN0IGVuZCA9IHJvdGF0ZSguLi50YXJnZXQsIC4uLm1pZGRsZVBvaW50LCAoYW5nbGUgKiBNYXRoLlBJKSAvIDE4MCkgYXMgUG9pbnQ7XG4gICAgcmV0dXJuIGRyYXdMaW5lYXJQYXRoKFtzdGFydCwgZW5kXSwgb3B0aW9ucyk7XG59O1xuXG5jb25zdCBkcmF3SG9sbG93VHJpYW5nbGVBcnJvdyA9IChzb3VyY2U6IFBvaW50LCB0YXJnZXQ6IFBvaW50LCBvcHRpb25zOiBPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludExlZnQsIHBvaW50UmlnaHQgfSA9IGFycm93UG9pbnRzKHNvdXJjZSwgdGFyZ2V0LCAzMCk7XG4gICAgcmV0dXJuIGRyYXdMaW5lYXJQYXRoKFtwb2ludExlZnQsIHBvaW50UmlnaHQsIHRhcmdldF0sIHsgLi4ub3B0aW9ucywgZmlsbDogJ3doaXRlJyB9LCB0cnVlKTtcbn07XG4iXX0=
|