@plait/common 0.55.0 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/element-ref.d.ts +7 -0
- package/core/group.component.d.ts +5 -4
- package/core/plugin-element.d.ts +8 -1
- package/esm2022/core/element-ref.mjs +12 -0
- package/esm2022/core/group.component.mjs +20 -14
- package/esm2022/core/image-base.component.mjs +5 -3
- package/esm2022/core/plugin-element.mjs +20 -2
- package/esm2022/generators/generator.mjs +1 -1
- package/esm2022/generators/image.generator.mjs +2 -1
- package/esm2022/plugins/with-group.mjs +11 -7
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/utils/resize.mjs +9 -2
- package/esm2022/utils/text.mjs +5 -6
- package/fesm2022/plait-common.mjs +70 -26
- package/fesm2022/plait-common.mjs.map +1 -1
- package/generators/image.generator.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/utils/resize.d.ts +2 -1
- package/utils/text.d.ts +4 -3
package/esm2022/utils/resize.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, ResizeCursorClass, setDragging, RESIZE_CURSORS, rotatePoints } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, RectangleClient, ResizeCursorClass, setDragging, RESIZE_CURSORS, rotatePoints, getSelectedElements, isSelectionMoving } from '@plait/core';
|
|
2
2
|
export const getResizeHandleByIndex = (index) => {
|
|
3
3
|
return `${index}`;
|
|
4
4
|
};
|
|
@@ -123,4 +123,11 @@ export const resetPointsAfterResize = (originRectangle, currentRectangle, origin
|
|
|
123
123
|
const rotatedPoints = rotatePoints(currentPoints, originRectangleCenterPoint, angle);
|
|
124
124
|
return rotatePoints(rotatedPoints, correctElementCenterPoint, -angle);
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJL0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEdBQUcsS0FBSyxFQUFrQixDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsWUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRixJQUFJLDBCQUEwQixHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBSSwwQkFBMEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBQzVILENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBSZXNpemVDdXJzb3JDbGFzcywgc2V0RHJhZ2dpbmcsIFJFU0laRV9DVVJTT1JTLCByb3RhdGVQb2ludHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tICcuLi9jb25zdGFudHMvcmVzaXplJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudE9yQXJyYXksIFJlc2l6ZVJlZiB9IGZyb20gJy4uL3R5cGVzL3Jlc2l6ZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVIYW5kbGVCeUluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gYCR7aW5kZXh9YCBhcyBSZXNpemVIYW5kbGU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZSA9IChyZXNpemVIYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIHJldHVybiBOdW1iZXIocmVzaXplSGFuZGxlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTeW1tZXRyaWNIYW5kbGVJbmRleCA9IChib2FyZDogUGxhaXRCb2FyZCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG9yaWdpbkluZGV4ID0gaXNFZGdlSGFuZGxlKGJvYXJkLCBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSkgPyBpbmRleCAtIDQgOiBpbmRleDtcbiAgICBsZXQgb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggPSBvcmlnaW5JbmRleCArIDI7XG4gICAgaWYgKG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID49IDQpIHtcbiAgICAgICAgb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggPSBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCAtIDQ7XG4gICAgfVxuICAgIHJldHVybiBpc0VkZ2VIYW5kbGUoYm9hcmQsIGdldFJlc2l6ZUhhbmRsZUJ5SW5kZXgoaW5kZXgpKSA/IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ICsgNCA6IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4O1xufTtcblxuY29uc3QgZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm53c2U7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5lc3c7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5zO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ldztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSb3RhdGVkUmVzaXplQ3Vyc29yQ2xhc3NCeUFuZ2xlID0gKGN1cnNvcjogUmVzaXplQ3Vyc29yQ2xhc3MsIGFuZ2xlOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IFJFU0laRV9DVVJTT1JTLmluZGV4T2YoY3Vyc29yKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCB0ZW1wID0gTWF0aC5yb3VuZChhbmdsZSAvIChNYXRoLlBJIC8gNCkpO1xuICAgICAgICBjdXJzb3IgPSBSRVNJWkVfQ1VSU09SU1soaW5kZXggKyB0ZW1wKSAlIFJFU0laRV9DVVJTT1JTLmxlbmd0aF0gYXMgUmVzaXplQ3Vyc29yQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmcyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgZGlhbWV0ZXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgY29uc3QgcmVmcyA9IGNvcm5lcnMubWFwKChjb3JuZXIsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlY3RhbmdsZToge1xuICAgICAgICAgICAgICAgIHg6IGNvcm5lclswXSAtIGRpYW1ldGVyIC8gMixcbiAgICAgICAgICAgICAgICB5OiBjb3JuZXJbMV0gLSBkaWFtZXRlciAvIDIsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGRpYW1ldGVyLFxuICAgICAgICAgICAgICAgIGhlaWdodDogZGlhbWV0ZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYW5kbGU6IGdldFJlc2l6ZUhhbmRsZUJ5SW5kZXgoaW5kZXgpIGFzIFJlc2l6ZUhhbmRsZSxcbiAgICAgICAgICAgIGN1cnNvckNsYXNzOiBnZXRSZXNpemVDdXJzb3JDbGFzc0J5SW5kZXgoaW5kZXgpIGFzIFJlc2l6ZUN1cnNvckNsYXNzXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgY29uc3QgcmVjdGFuZ2xlcyA9IGdldFJlc2l6ZVNpZGVSZWN0YW5nbGVzKGNvcm5lcnMsIGRpYW1ldGVyIC8gMik7XG4gICAgcmVmcy5wdXNoKFxuICAgICAgICAuLi5yZWN0YW5nbGVzLm1hcCgocmVjdGFuZ2xlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUsXG4gICAgICAgICAgICAgICAgaGFuZGxlOiBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4ICsgNCkgYXMgUmVzaXplSGFuZGxlLFxuICAgICAgICAgICAgICAgIGN1cnNvckNsYXNzOiBnZXRSZXNpemVDdXJzb3JDbGFzc0J5SW5kZXgoaW5kZXggKyA0KSBhcyBSZXNpemVDdXJzb3JDbGFzc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZWZzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc2l6ZUhhbmRsZVBvaW50QnlJbmRleCA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChpbmRleCA8PSAzKSB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBjb3JuZXJzW2luZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlZGdlQ2VudGVyUG9pbnRzID0gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGVkZ2VDZW50ZXJQb2ludHNbaW5kZXggLSA0XTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRSZXNpemVTaWRlUmVjdGFuZ2xlcyA9IChjb3JuZXJQb2ludHM6IFBvaW50W10sIG9mZnNldDogbnVtYmVyKTogUmVjdGFuZ2xlQ2xpZW50W10gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29ybmVyUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW2Nvcm5lclBvaW50c1tpXSwgY29ybmVyUG9pbnRzWyhpICsgMSkgJSA0XV0pO1xuICAgICAgICBjb25zdCBhcnIgPSBuZXcgQXJyYXkoMikuZmlsbCgwKTtcbiAgICAgICAgYXJyWyhpICsgMSkgJSAyXSA9IG9mZnNldCAvIDI7XG4gICAgICAgIHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5leHBhbmQocmVjdGFuZ2xlLCBhcnJbMF0sIGFyclsxXSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKHJlY3RhbmdsZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgSVNfUkVTSVpJTkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBSZXNpemVSZWY8YW55LCBhbnk+PigpO1xuXG5leHBvcnQgY29uc3QgaXNSZXNpemluZyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiAhIUlTX1JFU0laSU5HLmdldChib2FyZCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZXNpemluZ0J5Q29uZGl0aW9uID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5LCBLPihcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBtYXRjaDogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+KSA9PiBib29sZWFuXG4pID0+IHtcbiAgICByZXR1cm4gaXNSZXNpemluZyhib2FyZCkgJiYgbWF0Y2goSVNfUkVTSVpJTkcuZ2V0KGJvYXJkKSEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFJlc2l6aW5nID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5LCBLPihib2FyZDogUGxhaXRCb2FyZCwgcmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LmFkZChgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuc2V0KGJvYXJkLCByZXNpemVSZWYpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCB0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVSZXNpemluZyA9IChib2FyZDogUGxhaXRCb2FyZCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QucmVtb3ZlKGAke2tleX0tcmVzaXppbmdgKTtcbiAgICBJU19SRVNJWklORy5kZWxldGUoYm9hcmQpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCBmYWxzZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFZGdlSGFuZGxlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBoYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZShoYW5kbGUpO1xuICAgIGlmIChpbmRleCA+PSA0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb3JuZXJIYW5kbGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGhhbmRsZTogUmVzaXplSGFuZGxlKSA9PiB7XG4gICAgcmV0dXJuICFpc0VkZ2VIYW5kbGUoYm9hcmQsIGhhbmRsZSk7XG59O1xuXG4vLyDlpITnkIblhYPntKDlhYjml4vovazlkI5yZXNpemXlr7zoh7TnmoTkvY3nva7lgY/np7tcbmV4cG9ydCBjb25zdCByZXNldFBvaW50c0FmdGVyUmVzaXplID0gKFxuICAgIG9yaWdpblJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGN1cnJlbnRSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludDogUG9pbnQsXG4gICAgY3VycmVudFNlbGVjdGlvbkNlbnRlclBvaW50OiBQb2ludCxcbiAgICBhbmdsZTogbnVtYmVyXG4pOiBbUG9pbnQsIFBvaW50XSA9PiB7XG4gICAgY29uc3QgY29ycmVjdFNlbGVjdGlvbkNlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFtjdXJyZW50U2VsZWN0aW9uQ2VudGVyUG9pbnRdLCBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludCwgYW5nbGUpWzBdO1xuICAgIGNvbnN0IHJvdGF0ZWRFbGVtZW50Q2VudGVyUG9pbnQgPSByb3RhdGVQb2ludHMoXG4gICAgICAgIFtSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudFJlY3RhbmdsZSkgYXMgUG9pbnRdLFxuICAgICAgICBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludCxcbiAgICAgICAgYW5nbGVcbiAgICApWzBdO1xuXG4gICAgY29uc3QgY3VycmVudFBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMoY3VycmVudFJlY3RhbmdsZSk7XG4gICAgY29uc3Qgb3JpZ2luUmVjdGFuZ2xlQ2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQob3JpZ2luUmVjdGFuZ2xlKTtcblxuICAgIGNvbnN0IGNvcnJlY3RFbGVtZW50Q2VudGVyUG9pbnQgPSByb3RhdGVQb2ludHMoW3JvdGF0ZWRFbGVtZW50Q2VudGVyUG9pbnRdLCBjb3JyZWN0U2VsZWN0aW9uQ2VudGVyUG9pbnQsIC1hbmdsZSlbMF07XG5cbiAgICBjb25zdCByb3RhdGVkUG9pbnRzID0gcm90YXRlUG9pbnRzKGN1cnJlbnRQb2ludHMsIG9yaWdpblJlY3RhbmdsZUNlbnRlclBvaW50LCBhbmdsZSk7XG4gICAgcmV0dXJuIHJvdGF0ZVBvaW50cyhyb3RhdGVkUG9pbnRzLCBjb3JyZWN0RWxlbWVudENlbnRlclBvaW50LCAtYW5nbGUpIGFzIFtQb2ludCwgUG9pbnRdO1xufTtcbiJdfQ==
|
|
126
|
+
export const canResize = (board, element) => {
|
|
127
|
+
if (PlaitBoard.hasBeenTextEditing(board) || isSelectionMoving(board)) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
const selectedElements = getSelectedElements(board);
|
|
131
|
+
return selectedElements.length === 1 && selectedElements[0] === element;
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFFVixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDcEIsTUFBTSxhQUFhLENBQUM7QUFJckIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEdBQUcsS0FBSyxFQUFrQixDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsWUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRixJQUFJLDBCQUEwQixHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBSSwwQkFBMEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBQzVILENB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Q0FBbUIsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUNsRSxJQUFJLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUM7QUFDNUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBSZXNpemVDdXJzb3JDbGFzcyxcbiAgICBzZXREcmFnZ2luZyxcbiAgICBSRVNJWkVfQ1VSU09SUyxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplSGFuZGxlIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRPckFycmF5LCBSZXNpemVSZWYgfSBmcm9tICcuLi90eXBlcy9yZXNpemUnO1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplSGFuZGxlQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIGAke2luZGV4fWAgYXMgUmVzaXplSGFuZGxlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEluZGV4QnlSZXNpemVIYW5kbGUgPSAocmVzaXplSGFuZGxlOiBSZXNpemVIYW5kbGUpID0+IHtcbiAgICByZXR1cm4gTnVtYmVyKHJlc2l6ZUhhbmRsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3ltbWV0cmljSGFuZGxlSW5kZXggPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcmlnaW5JbmRleCA9IGlzRWRnZUhhbmRsZShib2FyZCwgZ2V0UmVzaXplSGFuZGxlQnlJbmRleChpbmRleCkpID8gaW5kZXggLSA0IDogaW5kZXg7XG4gICAgbGV0IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID0gb3JpZ2luSW5kZXggKyAyO1xuICAgIGlmIChvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCA+PSA0KSB7XG4gICAgICAgIG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID0gb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggLSA0O1xuICAgIH1cbiAgICByZXR1cm4gaXNFZGdlSGFuZGxlKGJvYXJkLCBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSkgPyBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCArIDQgOiBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleDtcbn07XG5cbmNvbnN0IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ud3NlO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5uZXN3O1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ucztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MuZXc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Um90YXRlZFJlc2l6ZUN1cnNvckNsYXNzQnlBbmdsZSA9IChjdXJzb3I6IFJlc2l6ZUN1cnNvckNsYXNzLCBhbmdsZTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBSRVNJWkVfQ1VSU09SUy5pbmRleE9mKGN1cnNvcik7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgdGVtcCA9IE1hdGgucm91bmQoYW5nbGUgLyAoTWF0aC5QSSAvIDQpKTtcbiAgICAgICAgY3Vyc29yID0gUkVTSVpFX0NVUlNPUlNbKGluZGV4ICsgdGVtcCkgJSBSRVNJWkVfQ1VSU09SUy5sZW5ndGhdIGFzIFJlc2l6ZUN1cnNvckNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gY3Vyc29yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY3RhbmdsZVJlc2l6ZUhhbmRsZVJlZnMgPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGRpYW1ldGVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIGNvbnN0IHJlZnMgPSBjb3JuZXJzLm1hcCgoY29ybmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWN0YW5nbGU6IHtcbiAgICAgICAgICAgICAgICB4OiBjb3JuZXJbMF0gLSBkaWFtZXRlciAvIDIsXG4gICAgICAgICAgICAgICAgeTogY29ybmVyWzFdIC0gZGlhbWV0ZXIgLyAyLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBkaWFtZXRlcixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGRpYW1ldGVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFuZGxlOiBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSBhcyBSZXNpemVIYW5kbGUsXG4gICAgICAgICAgICBjdXJzb3JDbGFzczogZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4KGluZGV4KSBhcyBSZXNpemVDdXJzb3JDbGFzc1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHJlY3RhbmdsZXMgPSBnZXRSZXNpemVTaWRlUmVjdGFuZ2xlcyhjb3JuZXJzLCBkaWFtZXRlciAvIDIpO1xuICAgIHJlZnMucHVzaChcbiAgICAgICAgLi4ucmVjdGFuZ2xlcy5tYXAoKHJlY3RhbmdsZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIGhhbmRsZTogZ2V0UmVzaXplSGFuZGxlQnlJbmRleChpbmRleCArIDQpIGFzIFJlc2l6ZUhhbmRsZSxcbiAgICAgICAgICAgICAgICBjdXJzb3JDbGFzczogZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4KGluZGV4ICsgNCkgYXMgUmVzaXplQ3Vyc29yQ2xhc3NcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmVmcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVIYW5kbGVQb2ludEJ5SW5kZXggPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoaW5kZXggPD0gMykge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gY29ybmVyc1tpbmRleF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWRnZUNlbnRlclBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBlZGdlQ2VudGVyUG9pbnRzW2luZGV4IC0gNF07XG4gICAgfVxufTtcblxuY29uc3QgZ2V0UmVzaXplU2lkZVJlY3RhbmdsZXMgPSAoY29ybmVyUG9pbnRzOiBQb2ludFtdLCBvZmZzZXQ6IG51bWJlcik6IFJlY3RhbmdsZUNsaWVudFtdID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvcm5lclBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtjb3JuZXJQb2ludHNbaV0sIGNvcm5lclBvaW50c1soaSArIDEpICUgNF1dKTtcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IEFycmF5KDIpLmZpbGwoMCk7XG4gICAgICAgIGFyclsoaSArIDEpICUgMl0gPSBvZmZzZXQgLyAyO1xuICAgICAgICByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZXhwYW5kKHJlY3RhbmdsZSwgYXJyWzBdLCBhcnJbMV0pO1xuICAgICAgICByZXN1bHQucHVzaChyZWN0YW5nbGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IElTX1JFU0laSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUmVzaXplUmVmPGFueSwgYW55Pj4oKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gISFJU19SRVNJWklORy5nZXQoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmdCeUNvbmRpdGlvbiA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSwgSz4oXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbWF0Y2g6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPikgPT4gYm9vbGVhblxuKSA9PiB7XG4gICAgcmV0dXJuIGlzUmVzaXppbmcoYm9hcmQpICYmIG1hdGNoKElTX1JFU0laSU5HLmdldChib2FyZCkhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZXNpemluZyA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSwgSz4oYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+LCBrZXk6IHN0cmluZykgPT4ge1xuICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7a2V5fS1yZXNpemluZ2ApO1xuICAgIElTX1JFU0laSU5HLnNldChib2FyZCwgcmVzaXplUmVmKTtcbiAgICBzZXREcmFnZ2luZyhib2FyZCwgdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuZGVsZXRlKGJvYXJkKTtcbiAgICBzZXREcmFnZ2luZyhib2FyZCwgZmFsc2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRWRnZUhhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgaGFuZGxlOiBSZXNpemVIYW5kbGUpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IGdldEluZGV4QnlSZXNpemVIYW5kbGUoaGFuZGxlKTtcbiAgICBpZiAoaW5kZXggPj0gNCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzQ29ybmVySGFuZGxlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBoYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIHJldHVybiAhaXNFZGdlSGFuZGxlKGJvYXJkLCBoYW5kbGUpO1xufTtcblxuLy8g5aSE55CG5YWD57Sg5YWI5peL6L2s5ZCOcmVzaXpl5a+86Ie055qE5L2N572u5YGP56e7XG5leHBvcnQgY29uc3QgcmVzZXRQb2ludHNBZnRlclJlc2l6ZSA9IChcbiAgICBvcmlnaW5SZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBjdXJyZW50UmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsXG4gICAgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQ6IFBvaW50LFxuICAgIGN1cnJlbnRTZWxlY3Rpb25DZW50ZXJQb2ludDogUG9pbnQsXG4gICAgYW5nbGU6IG51bWJlclxuKTogW1BvaW50LCBQb2ludF0gPT4ge1xuICAgIGNvbnN0IGNvcnJlY3RTZWxlY3Rpb25DZW50ZXJQb2ludCA9IHJvdGF0ZVBvaW50cyhbY3VycmVudFNlbGVjdGlvbkNlbnRlclBvaW50XSwgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQsIGFuZ2xlKVswXTtcbiAgICBjb25zdCByb3RhdGVkRWxlbWVudENlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFxuICAgICAgICBbUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KGN1cnJlbnRSZWN0YW5nbGUpIGFzIFBvaW50XSxcbiAgICAgICAgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQsXG4gICAgICAgIGFuZ2xlXG4gICAgKVswXTtcblxuICAgIGNvbnN0IGN1cnJlbnRQb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKGN1cnJlbnRSZWN0YW5nbGUpO1xuICAgIGNvbnN0IG9yaWdpblJlY3RhbmdsZUNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KG9yaWdpblJlY3RhbmdsZSk7XG5cbiAgICBjb25zdCBjb3JyZWN0RWxlbWVudENlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFtyb3RhdGVkRWxlbWVudENlbnRlclBvaW50XSwgY29ycmVjdFNlbGVjdGlvbkNlbnRlclBvaW50LCAtYW5nbGUpWzBdO1xuXG4gICAgY29uc3Qgcm90YXRlZFBvaW50cyA9IHJvdGF0ZVBvaW50cyhjdXJyZW50UG9pbnRzLCBvcmlnaW5SZWN0YW5nbGVDZW50ZXJQb2ludCwgYW5nbGUpO1xuICAgIHJldHVybiByb3RhdGVQb2ludHMocm90YXRlZFBvaW50cywgY29ycmVjdEVsZW1lbnRDZW50ZXJQb2ludCwgLWFuZ2xlKSBhcyBbUG9pbnQsIFBvaW50XTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYW5SZXNpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGlmIChQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkgfHwgaXNTZWxlY3Rpb25Nb3ZpbmcoYm9hcmQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBzZWxlY3RlZEVsZW1lbnRzWzBdID09PSBlbGVtZW50O1xufTtcbiJdfQ==
|
package/esm2022/utils/text.mjs
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { PlaitElement } from '@plait/core';
|
|
2
1
|
import { PlaitMarkEditor } from '@plait/text';
|
|
3
2
|
import { Node } from 'slate';
|
|
4
3
|
export const getTextManages = (element) => {
|
|
5
|
-
|
|
6
|
-
return component.getTextManages();
|
|
4
|
+
return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
|
|
7
5
|
};
|
|
8
6
|
export const getFirstTextManage = (element) => {
|
|
9
7
|
const textManage = getTextManages(element)[0];
|
|
10
8
|
if (!textManage) {
|
|
11
|
-
|
|
9
|
+
console.warn('can not find textManage');
|
|
12
10
|
}
|
|
13
11
|
return textManage;
|
|
14
12
|
};
|
|
@@ -20,7 +18,7 @@ export const getTextEditors = (element) => {
|
|
|
20
18
|
export const getFirstTextEditor = (element) => {
|
|
21
19
|
const textEditor = getTextEditors(element)[0];
|
|
22
20
|
if (!textEditor) {
|
|
23
|
-
|
|
21
|
+
console.warn('can not find textManage');
|
|
24
22
|
}
|
|
25
23
|
return textEditor;
|
|
26
24
|
};
|
|
@@ -60,4 +58,5 @@ export const getElementsText = (elements) => {
|
|
|
60
58
|
.filter(item => item)
|
|
61
59
|
.join(' ');
|
|
62
60
|
};
|
|
63
|
-
|
|
61
|
+
export const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWMsZUFBZSxFQUFjLE1BQU0sYUFBYSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDM0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBNkIsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBNkIsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRixPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF3QixFQUFFLEVBQUU7SUFDeEQsT0FBTyxRQUFRO1NBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixPQUFPLE9BQU87cUJBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUMsQ0FBQztxQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDTCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QyxJQUFJLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uUGx1Z2luRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvcGx1Z2luLWVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGV4dCwgUGxhaXRNYXJrRWRpdG9yLCBUZXh0TWFuYWdlIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2VzID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5nZXQoZWxlbWVudCkgfHwgW107XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0TWFuYWdlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KVswXTtcbiAgICBpZiAoIXRleHRNYW5hZ2UpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdjYW4gbm90IGZpbmQgdGV4dE1hbmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGV4dE1hbmFnZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0RWRpdG9ycyA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudCkubWFwKG1hbmFnZSA9PiB7XG4gICAgICAgIHJldHVybiBtYW5hZ2UuY29tcG9uZW50UmVmLmluc3RhbmNlLmVkaXRvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRFZGl0b3IgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dEVkaXRvciA9IGdldFRleHRFZGl0b3JzKGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dEVkaXRvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYXJrc0J5RWxlbWVudCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnMoZWxlbWVudCk7XG4gICAgY29uc3QgZWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICBpZiAoIWVkaXRvcikge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGlmIChlZGl0b3IuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KVswXTtcbiAgICAgICAgY29uc3QgY3VycmVudE1hcmtzOiBPbWl0PEN1c3RvbVRleHQsICd0ZXh0Jz4gPSBQbGFpdE1hcmtFZGl0b3IuZ2V0TWFya3NCeUVsZW1lbnQodGV4dE1hbmFnZS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2hpbGRyZW5bMF0pO1xuICAgICAgICByZXR1cm4gY3VycmVudE1hcmtzO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50TWFya3M6IE9taXQ8Q3VzdG9tVGV4dCwgJ3RleHQnPiA9IFBsYWl0TWFya0VkaXRvci5nZXRNYXJrcyhlZGl0b3IpO1xuICAgIHJldHVybiBjdXJyZW50TWFya3M7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudHNUZXh0ID0gKGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50c1xuICAgICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnMoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGVkaXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlZGl0b3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGVkaXRvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dHNFbnRyeSA9IE5vZGUudGV4dHMoZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0ZXh0c0VudHJ5KS5yZWR1Y2UoKHRvdGFsLCB0ZXh0KSA9PiAodG90YWwgKz0gdGV4dFswXS50ZXh0KSwgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSlcbiAgICAgICAgLmpvaW4oJyAnKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUzogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFRleHRNYW5hZ2VbXT4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, createForeignObject, updateForeignObject, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, distanceBetweenPointAndPoint, Point, Direction, hotkeys,
|
|
1
|
+
import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, createForeignObject, updateForeignObject, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, isSelectionMoving, getSelectedElements, distanceBetweenPointAndPoint, Point, Direction, hotkeys, PlaitContextService, createDebugGenerator, Transforms, getHighestSelectedElements, getRectangleByElements, MERGING, PlaitPointerType, isMainPointer, toViewBoxPoint, toHostPoint, preventTouchMove, PRESS_AND_MOVE_BUFFER, isDragging, throttleRAF, handleTouchTarget, ACTIVE_STROKE_WIDTH, getRectangleByGroup, PlaitPluginElementComponent, isSelectedElementOrGroup, Selection, getHitElementsBySelection, createGroupRectangleG, getSelectedGroups, getHighestSelectedGroups, getSelectedIsolatedElements, idCreator, getSelectedIsolatedElementsCanAddToGroup, getGroupByElement } from '@plait/core';
|
|
2
2
|
import { isKeyHotkey } from 'is-hotkey';
|
|
3
3
|
import { PlaitMarkEditor, MarkTypes, AlignEditor } from '@plait/text';
|
|
4
4
|
import { Node, Transforms as Transforms$1, Editor } from 'slate';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { Component, ChangeDetectionStrategy,
|
|
6
|
+
import { Directive, inject, Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
8
|
|
|
8
9
|
const BASE = 4;
|
|
9
10
|
const PRIMARY_COLOR = '#6698FF';
|
|
@@ -180,6 +181,7 @@ class ActiveGenerator extends Generator {
|
|
|
180
181
|
}
|
|
181
182
|
|
|
182
183
|
class ImageGenerator extends Generator {
|
|
184
|
+
static { this.key = 'image-generator'; }
|
|
183
185
|
constructor(board, options) {
|
|
184
186
|
super(board, options);
|
|
185
187
|
this.board = board;
|
|
@@ -358,6 +360,13 @@ const resetPointsAfterResize = (originRectangle, currentRectangle, originSelecti
|
|
|
358
360
|
const rotatedPoints = rotatePoints(currentPoints, originRectangleCenterPoint, angle);
|
|
359
361
|
return rotatePoints(rotatedPoints, correctElementCenterPoint, -angle);
|
|
360
362
|
};
|
|
363
|
+
const canResize = (board, element) => {
|
|
364
|
+
if (PlaitBoard.hasBeenTextEditing(board) || isSelectionMoving(board)) {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
const selectedElements = getSelectedElements(board);
|
|
368
|
+
return selectedElements.length === 1 && selectedElements[0] === element;
|
|
369
|
+
};
|
|
361
370
|
|
|
362
371
|
function getUnitVectorByPointAndPoint(point1, point2) {
|
|
363
372
|
const deltaX = point2[0] - point1[0];
|
|
@@ -726,13 +735,12 @@ const isDrawingMode = (board) => {
|
|
|
726
735
|
};
|
|
727
736
|
|
|
728
737
|
const getTextManages = (element) => {
|
|
729
|
-
|
|
730
|
-
return component.getTextManages();
|
|
738
|
+
return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
|
|
731
739
|
};
|
|
732
740
|
const getFirstTextManage = (element) => {
|
|
733
741
|
const textManage = getTextManages(element)[0];
|
|
734
742
|
if (!textManage) {
|
|
735
|
-
|
|
743
|
+
console.warn('can not find textManage');
|
|
736
744
|
}
|
|
737
745
|
return textManage;
|
|
738
746
|
};
|
|
@@ -744,7 +752,7 @@ const getTextEditors = (element) => {
|
|
|
744
752
|
const getFirstTextEditor = (element) => {
|
|
745
753
|
const textEditor = getTextEditors(element)[0];
|
|
746
754
|
if (!textEditor) {
|
|
747
|
-
|
|
755
|
+
console.warn('can not find textManage');
|
|
748
756
|
}
|
|
749
757
|
return textEditor;
|
|
750
758
|
};
|
|
@@ -784,6 +792,7 @@ const getElementsText = (elements) => {
|
|
|
784
792
|
.filter(item => item)
|
|
785
793
|
.join(' ');
|
|
786
794
|
};
|
|
795
|
+
const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
|
|
787
796
|
|
|
788
797
|
const selectImage = (board, defaultImageWidth, handle, acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp']) => {
|
|
789
798
|
const inputFile = document.createElement('input');
|
|
@@ -1583,13 +1592,33 @@ class GroupGenerator extends Generator {
|
|
|
1583
1592
|
}
|
|
1584
1593
|
}
|
|
1585
1594
|
|
|
1595
|
+
class PlaitCommonElementRef {
|
|
1596
|
+
constructor() {
|
|
1597
|
+
this.generatorMap = new Map();
|
|
1598
|
+
}
|
|
1599
|
+
addGenerator(key, generator) {
|
|
1600
|
+
this.generatorMap.set(key, generator);
|
|
1601
|
+
}
|
|
1602
|
+
getGenerator(key) {
|
|
1603
|
+
return this.generatorMap.get(key);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1586
1607
|
class CommonPluginElement extends PlaitPluginElementComponent {
|
|
1587
1608
|
constructor() {
|
|
1588
|
-
|
|
1609
|
+
const elementRef = new PlaitCommonElementRef();
|
|
1610
|
+
super(elementRef);
|
|
1589
1611
|
this.textManages = [];
|
|
1590
1612
|
}
|
|
1613
|
+
initializeWeakMap() {
|
|
1614
|
+
ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
|
|
1615
|
+
}
|
|
1616
|
+
destroyWeakMap() {
|
|
1617
|
+
ELEMENT_TO_TEXT_MANAGES.delete(this.element);
|
|
1618
|
+
}
|
|
1591
1619
|
initializeTextManages(textManages) {
|
|
1592
1620
|
this.textManages = textManages;
|
|
1621
|
+
this.initializeWeakMap();
|
|
1593
1622
|
}
|
|
1594
1623
|
addTextManage(textManage) {
|
|
1595
1624
|
this.textManages.push(textManage);
|
|
@@ -1599,16 +1628,23 @@ class CommonPluginElement extends PlaitPluginElementComponent {
|
|
|
1599
1628
|
manage.destroy();
|
|
1600
1629
|
});
|
|
1601
1630
|
this.textManages = [];
|
|
1631
|
+
this.destroyWeakMap();
|
|
1602
1632
|
}
|
|
1603
1633
|
getTextManages() {
|
|
1604
1634
|
return this.textManages;
|
|
1605
1635
|
}
|
|
1636
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1637
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: CommonPluginElement, usesInheritance: true, ngImport: i0 }); }
|
|
1606
1638
|
}
|
|
1639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, decorators: [{
|
|
1640
|
+
type: Directive
|
|
1641
|
+
}], ctorParameters: () => [] });
|
|
1607
1642
|
|
|
1608
1643
|
class GroupComponent extends CommonPluginElement {
|
|
1609
|
-
constructor(
|
|
1610
|
-
super(
|
|
1611
|
-
this.
|
|
1644
|
+
constructor(destroyRef) {
|
|
1645
|
+
super();
|
|
1646
|
+
this.destroyRef = destroyRef;
|
|
1647
|
+
this.contextService = inject(PlaitContextService);
|
|
1612
1648
|
}
|
|
1613
1649
|
initializeGenerator() {
|
|
1614
1650
|
this.activeGenerator = new ActiveGenerator(this.board, {
|
|
@@ -1626,14 +1662,18 @@ class GroupComponent extends CommonPluginElement {
|
|
|
1626
1662
|
ngOnInit() {
|
|
1627
1663
|
super.ngOnInit();
|
|
1628
1664
|
this.initializeGenerator();
|
|
1665
|
+
this.contextService
|
|
1666
|
+
.onStable()
|
|
1667
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
1668
|
+
.subscribe(() => {
|
|
1669
|
+
const elementsInGroup = getElementsInGroup(this.board, this.element, false, true);
|
|
1670
|
+
const isPartialSelectGroup = elementsInGroup.some(item => isSelectedElementOrGroup(this.board, item)) &&
|
|
1671
|
+
!elementsInGroup.every(item => isSelectedElementOrGroup(this.board, item));
|
|
1672
|
+
this.groupGenerator.processDrawing(this.element, this.getElementG(), isPartialSelectGroup);
|
|
1673
|
+
});
|
|
1629
1674
|
}
|
|
1630
|
-
onContextChanged(value, previous) {
|
|
1631
|
-
|
|
1632
|
-
const isPartialSelectGroup = elementsInGroup.some(item => isSelectedElementOrGroup(this.board, item)) &&
|
|
1633
|
-
!elementsInGroup.every(item => isSelectedElementOrGroup(this.board, item));
|
|
1634
|
-
this.groupGenerator.processDrawing(value.element, this.getElementG(), isPartialSelectGroup);
|
|
1635
|
-
}
|
|
1636
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1675
|
+
onContextChanged(value, previous) { }
|
|
1676
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1637
1677
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: GroupComponent, isStandalone: true, selector: "plait-group", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1638
1678
|
}
|
|
1639
1679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, decorators: [{
|
|
@@ -1644,7 +1684,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
1644
1684
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1645
1685
|
standalone: true
|
|
1646
1686
|
}]
|
|
1647
|
-
}], ctorParameters: () => [{ type: i0.
|
|
1687
|
+
}], ctorParameters: () => [{ type: i0.DestroyRef }] });
|
|
1648
1688
|
|
|
1649
1689
|
function withGroup(board) {
|
|
1650
1690
|
let groupRectangleG;
|
|
@@ -1663,10 +1703,13 @@ function withGroup(board) {
|
|
|
1663
1703
|
if (board.selection && !Selection.isCollapsed(board.selection)) {
|
|
1664
1704
|
selection = board.selection;
|
|
1665
1705
|
}
|
|
1666
|
-
const
|
|
1667
|
-
if (
|
|
1668
|
-
|
|
1669
|
-
|
|
1706
|
+
const pointer = PlaitBoard.getPointer(board);
|
|
1707
|
+
if (!isResizing(board) && pointer === PlaitPointerType.selection) {
|
|
1708
|
+
const hitElements = getHitElementsBySelection(board, selection);
|
|
1709
|
+
if (hitElements.length) {
|
|
1710
|
+
groupRectangleG = createGroupRectangleG(board, hitElements);
|
|
1711
|
+
groupRectangleG && PlaitBoard.getElementActiveHost(board).append(groupRectangleG);
|
|
1712
|
+
}
|
|
1670
1713
|
}
|
|
1671
1714
|
pointerMove(event);
|
|
1672
1715
|
};
|
|
@@ -1676,7 +1719,7 @@ function withGroup(board) {
|
|
|
1676
1719
|
globalPointerUp(event);
|
|
1677
1720
|
};
|
|
1678
1721
|
board.getRelatedFragment = (elements, originData) => {
|
|
1679
|
-
const groups = getSelectedGroups(board, originData);
|
|
1722
|
+
const groups = getSelectedGroups(board, elements, originData);
|
|
1680
1723
|
return getRelatedFragment([...elements, ...groups], originData);
|
|
1681
1724
|
};
|
|
1682
1725
|
board.insertFragment = (clipboardData, targetPoint) => {
|
|
@@ -1883,8 +1926,9 @@ class ImageBaseComponent {
|
|
|
1883
1926
|
return this.getRectangle();
|
|
1884
1927
|
},
|
|
1885
1928
|
hasResizeHandle: () => {
|
|
1886
|
-
const
|
|
1887
|
-
|
|
1929
|
+
const isSelectedImageElement = canResize(this.board, this.element);
|
|
1930
|
+
const isSelectedImage = !!getElementOfFocusedImage(this.board);
|
|
1931
|
+
return isSelectedImage || isSelectedImageElement;
|
|
1888
1932
|
}
|
|
1889
1933
|
});
|
|
1890
1934
|
this.initialized = true;
|
|
@@ -1932,5 +1976,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
1932
1976
|
* Generated bundle index. Do not edit.
|
|
1933
1977
|
*/
|
|
1934
1978
|
|
|
1935
|
-
export { AStar, ActiveGenerator, AlignTransform, BASE, BoardCreationMode, CommonPluginElement, DEFAULT_ROUTE_MARGIN, Generator, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, TRANSPARENT, TextTransforms, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, buildImage, calculatePolylineLength, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getSymmetricHandleIndex, getTextEditors, getTextManages, getTextMarksByElement, getUnitVectorByPointAndPoint, hasAfterDraw, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, withGroup, withResize };
|
|
1979
|
+
export { AStar, ActiveGenerator, AlignTransform, BASE, BoardCreationMode, CommonPluginElement, DEFAULT_ROUTE_MARGIN, ELEMENT_TO_TEXT_MANAGES, Generator, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PlaitCommonElementRef, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, TRANSPARENT, TextTransforms, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, buildImage, calculatePolylineLength, canResize, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getSymmetricHandleIndex, getTextEditors, getTextManages, getTextMarksByElement, getUnitVectorByPointAndPoint, hasAfterDraw, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, withGroup, withResize };
|
|
1936
1980
|
//# sourceMappingURL=plait-common.mjs.map
|