@plait/core 0.13.0 → 0.15.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/constants/index.d.ts +1 -0
- package/core/island/island-base.component.d.ts +18 -1
- package/esm2020/board/board.component.mjs +17 -29
- package/esm2020/constants/index.mjs +2 -1
- package/esm2020/core/island/island-base.component.mjs +38 -2
- package/esm2020/interfaces/board.mjs +13 -4
- package/esm2020/plugins/create-board.mjs +2 -1
- package/esm2020/plugins/with-hotkey.mjs +54 -0
- package/esm2020/transforms/board.mjs +2 -2
- package/esm2020/utils/draw/line.mjs +20 -1
- package/esm2020/utils/weak-maps.mjs +2 -1
- package/fesm2015/plait-core.mjs +182 -79
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +182 -79
- package/fesm2020/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +3 -1
- package/package.json +1 -1
- package/plugins/with-hotkey.d.ts +2 -0
- package/utils/draw/line.d.ts +1 -0
- package/utils/weak-maps.d.ts +1 -0
|
@@ -23,7 +23,7 @@ const updatePointerType = (board, pointer) => {
|
|
|
23
23
|
};
|
|
24
24
|
function updateZoom(board, newZoom, isCenter = true) {
|
|
25
25
|
newZoom = clampZoomLevel(newZoom);
|
|
26
|
-
const mousePoint = PlaitBoard.
|
|
26
|
+
const mousePoint = PlaitBoard.getMovingPointInBoard(board);
|
|
27
27
|
const nativeElement = PlaitBoard.getBoardContainer(board);
|
|
28
28
|
const nativeElementRect = nativeElement.getBoundingClientRect();
|
|
29
29
|
const boardContainerRect = PlaitBoard.getBoardContainer(board).getBoundingClientRect();
|
|
@@ -116,4 +116,4 @@ export const BoardTransforms = {
|
|
|
116
116
|
updateThemeColor,
|
|
117
117
|
fitViewportWidth
|
|
118
118
|
};
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdHJhbnNmb3Jtcy9ib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQ0gsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUM5QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbkMsU0FBUyxjQUFjLENBQUMsS0FBaUIsRUFBRSxXQUFrQixFQUFFLElBQWE7SUFDeEUsSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNuQyxXQUFXLENBQUMsS0FBSyxFQUFFO1FBQ2YsR0FBRyxLQUFLLENBQUMsUUFBUTtRQUNqQixJQUFJO1FBQ0osV0FBVztLQUNkLENBQUMsQ0FBQztJQUNILHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQXNDLEtBQWlCLEVBQUUsT0FBVSxFQUFFLEVBQUU7SUFDN0YsS0FBSyxDQUFDLE9BQU8sR0FBRyxP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QUM7QUFDbkQsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBaUIsRUFBRSxJQUFvQjtJQUM3RCxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQzFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQyxtQkFBbUIsQ0FBRSxLQUFpQyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQzlELEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsV0FBVztJQUNYLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0NBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZUNvbG9yTW9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGhlbWUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50JztcbmltcG9ydCB7IFBsYWl0UG9pbnRlclR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50ZXInO1xuaW1wb3J0IHsgdG9Qb2ludCB9IGZyb20gJy4uL3V0aWxzL2RvbS9jb21tb24nO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL2VsZW1lbnQnO1xuaW1wb3J0IHsgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscy9tYXRoJztcbmltcG9ydCB7XG4gICAgY2xhbXBab29tTGV2ZWwsXG4gICAgY2xlYXJWaWV3cG9ydE9yaWdpbmF0aW9uLFxuICAgIGdldFZpZXdCb3hDZW50ZXJQb2ludCxcbiAgICBnZXRWaWV3cG9ydE9yaWdpbmF0aW9uLFxuICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lclxufSBmcm9tICcuLi91dGlscy92aWV3cG9ydCc7XG5pbXBvcnQgeyBCT0FSRF9UT19DT01QT05FTlQgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgc2V0Vmlld3BvcnQgfSBmcm9tICcuL3ZpZXdwb3J0JztcbmltcG9ydCB7IGRlcHRoRmlyc3RSZWN1cnNpb24sIGdldFJlYWxTY3JvbGxCYXJXaWR0aCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBzZXRUaGVtZSB9IGZyb20gJy4vdGhlbWUnO1xuaW1wb3J0IHsgRml0Vmlld3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3cG9ydCc7XG5cbmZ1bmN0aW9uIHVwZGF0ZVZpZXdwb3J0KGJvYXJkOiBQbGFpdEJvYXJkLCBvcmlnaW5hdGlvbjogUG9pbnQsIHpvb20/OiBudW1iZXIpIHtcbiAgICB6b29tID0gem9vbSA/PyBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIHNldFZpZXdwb3J0KGJvYXJkLCB7XG4gICAgICAgIC4uLmJvYXJkLnZpZXdwb3J0LFxuICAgICAgICB6b29tLFxuICAgICAgICBvcmlnaW5hdGlvblxuICAgIH0pO1xuICAgIGNsZWFyVmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG59XG5cbmNvbnN0IHVwZGF0ZVBvaW50ZXJUeXBlID0gPFQgZXh0ZW5kcyBzdHJpbmcgPSBQbGFpdFBvaW50ZXJUeXBlPihib2FyZDogUGxhaXRCb2FyZCwgcG9pbnRlcjogVCkgPT4ge1xuICAgIGJvYXJkLnBvaW50ZXIgPSBwb2ludGVyO1xuICAgIGNvbnN0IGJvYXJkQ29tcG9uZW50ID0gQk9BUkRfVE9fQ09NUE9ORU5ULmdldChib2FyZCk7XG4gICAgYm9hcmRDb21wb25lbnQ/Lm1hcmtGb3JDaGVjaygpO1xufTtcblxuZnVuY3Rpb24gdXBkYXRlWm9vbShib2FyZDogUGxhaXRCb2FyZCwgbmV3Wm9vbTogbnVtYmVyLCBpc0NlbnRlciA9IHRydWUpIHtcbiAgICBuZXdab29tID0gY2xhbXBab29tTGV2ZWwobmV3Wm9vbSk7XG5cbiAgICBjb25zdCBtb3VzZVBvaW50ID0gUGxhaXRCb2FyZC5nZXRNb3ZpbmdQb2ludChib2FyZCk7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgZm9jdXNQb2ludCA9IFtib2FyZENvbnRhaW5lclJlY3Qud2lkdGggLyAyLCBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMl07XG5cbiAgICBpZiAoIWlzQ2VudGVyICYmIG1vdXNlUG9pbnQgJiYgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUobW91c2VQb2ludFswXSwgbW91c2VQb2ludFsxXSwgbmF0aXZlRWxlbWVudFJlY3QpID09PSAwKSB7XG4gICAgICAgIGZvY3VzUG9pbnQgPSB0b1BvaW50KG1vdXNlUG9pbnRbMF0sIG1vdXNlUG9pbnRbMV0sIChuYXRpdmVFbGVtZW50IGFzIHVua25vd24pIGFzIFNWR0VsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHpvb20gPSBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIGNvbnN0IG9yaWdpbmF0aW9uID0gZ2V0Vmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG4gICAgY29uc3QgY2VudGVyWCA9IG9yaWdpbmF0aW9uIVswXSArIGZvY3VzUG9pbnRbMF0gLyB6b29tO1xuICAgIGNvbnN0IGNlbnRlclkgPSBvcmlnaW5hdGlvbiFbMV0gKyBmb2N1c1BvaW50WzFdIC8gem9vbTtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtjZW50ZXJYIC0gZm9jdXNQb2ludFswXSAvIG5ld1pvb20sIGNlbnRlclkgLSBmb2N1c1BvaW50WzFdIC8gbmV3Wm9vbV0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuZnVuY3Rpb24gZml0Vmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgc2Nyb2xsQmFyV2lkdGggPSBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgoYm9hcmQpO1xuXG4gICAgY29uc3QgYm9hcmRDb250YWluZXJSZWN0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZWxlbWVudEhvc3RCb3ggPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBib2FyZC5jaGlsZHJlbiwgdHJ1ZSk7XG4gICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgY29uc3QgYXV0b0ZpdFBhZGRpbmcgPSAxNjtcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC0gMiAqIGF1dG9GaXRQYWRkaW5nO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gYm9hcmRDb250YWluZXJSZWN0LmhlaWdodCAtIDIgKiBhdXRvRml0UGFkZGluZztcblxuICAgIGxldCBuZXdab29tID0gem9vbTtcbiAgICBpZiAodmlld3BvcnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoIHx8IHZpZXdwb3J0SGVpZ2h0IDwgZWxlbWVudEhvc3RCb3guaGVpZ2h0KSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbih2aWV3cG9ydFdpZHRoIC8gZWxlbWVudEhvc3RCb3gud2lkdGgsIHZpZXdwb3J0SGVpZ2h0IC8gZWxlbWVudEhvc3RCb3guaGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBuZXdab29tID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCBjZW50ZXJQb2ludCA9IGdldFZpZXdCb3hDZW50ZXJQb2ludChib2FyZCk7XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbXG4gICAgICAgIGNlbnRlclBvaW50WzBdIC0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC8gMiAvIG5ld1pvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tLFxuICAgICAgICBjZW50ZXJQb2ludFsxXSAtIGJvYXJkQ29udGFpbmVyUmVjdC5oZWlnaHQgLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIHpvb21cbiAgICBdIGFzIFBvaW50O1xuICAgIHVwZGF0ZVZpZXdwb3J0KGJvYXJkLCBuZXdPcmlnaW5hdGlvbiwgbmV3Wm9vbSk7XG59XG5cbmZ1bmN0aW9uIGZpdFZpZXdwb3J0V2lkdGgoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IEZpdFZpZXdwb3J0T3B0aW9ucykge1xuICAgIGxldCBzY3JvbGxCYXJXaWR0aCA9IGdldFJlYWxTY3JvbGxCYXJXaWR0aChib2FyZCk7XG5cbiAgICBjb25zdCBib2FyZENvbnRhaW5lciA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlID0gYm9hcmRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBsZXQgZmluYWxXaWR0aCA9IDA7XG4gICAgaWYgKG9wdGlvbnMubWF4V2lkdGgpIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IG9wdGlvbnMubWF4V2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlLndpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRIb3N0Qm94ID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9IGZpbmFsV2lkdGggLSAyICogb3B0aW9ucy5hdXRvRml0UGFkZGluZztcbiAgICBsZXQgbmV3Wm9vbSA9IDA7XG4gICAgaWYgKGNvbnRlbnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoKSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBlbGVtZW50SG9zdEJveC53aWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Wm9vbSA9IDE7XG4gICAgfVxuXG4gICAgbGV0IGZpbmFsSGVpZ2h0ID0gZWxlbWVudEhvc3RCb3guaGVpZ2h0ICogbmV3Wm9vbSArIDIgKiBvcHRpb25zLmF1dG9GaXRQYWRkaW5nO1xuICAgIGlmIChmaW5hbEhlaWdodCA+IG9wdGlvbnMubGltaXRIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBib2FyZENvbnRhaW5lci5jbG9zZXN0KGAuJHtvcHRpb25zLmNvbnRhaW5lckNsYXNzfWApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb250YWluZXJFbC5zdHlsZS5oZWlnaHQgPSBgJHtmaW5hbEhlaWdodH1weGA7XG4gICAgICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcihib2FyZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxIZWlnaHQgPSBvcHRpb25zLmxpbWl0SGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IGNlbnRlclggPSBlbGVtZW50SG9zdEJveC54ICsgZWxlbWVudEhvc3RCb3gud2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSBlbGVtZW50SG9zdEJveC55ICsgZWxlbWVudEhvc3RCb3guaGVpZ2h0IC8gMjtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtcbiAgICAgICAgY2VudGVyWCAtIGZpbmFsV2lkdGggLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIG5ld1pvb20sXG4gICAgICAgIGNlbnRlclkgLSBmaW5hbEhlaWdodCAvIDIgLyBuZXdab29tICsgc2Nyb2xsQmFyV2lkdGggLyAyIC8gbmV3Wm9vbVxuICAgIF0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuLyoqXG4gKiBhcHBseSB0aGVtZSB0byBldmVyeSBlbGVtZW50IChyZW1vdmUgZWxlbWVudCBjdXN0b20gcHJvcGVydGllcylcbiAqIGludm9rZSBhcHBseVRoZW1lQ29sb3JcbiAqL1xuZnVuY3Rpb24gdXBkYXRlVGhlbWVDb2xvcihib2FyZDogUGxhaXRCb2FyZCwgbW9kZTogVGhlbWVDb2xvck1vZGUpIHtcbiAgICBtb2RlID0gbW9kZSA/PyBib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZTtcbiAgICBzZXRUaGVtZShib2FyZCwgeyB0aGVtZUNvbG9yTW9kZTogbW9kZSB9KTtcblxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb24oKGJvYXJkIGFzIHVua25vd24pIGFzIFBsYWl0RWxlbWVudCwgZWxlbWVudCA9PiB7XG4gICAgICAgIGJvYXJkLmFwcGx5VGhlbWUoZWxlbWVudCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBCb2FyZFRyYW5zZm9ybXMgPSB7XG4gICAgdXBkYXRlUG9pbnRlclR5cGUsXG4gICAgdXBkYXRlVmlld3BvcnQsXG4gICAgZml0Vmlld3BvcnQsXG4gICAgdXBkYXRlWm9vbSxcbiAgICB1cGRhdGVUaGVtZUNvbG9yLFxuICAgIGZpdFZpZXdwb3J0V2lkdGhcbn07XG4iXX0=
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdHJhbnNmb3Jtcy9ib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQ0gsY0FBYyxFQUNkLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUM5QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHbkMsU0FBUyxjQUFjLENBQUMsS0FBaUIsRUFBRSxXQUFrQixFQUFFLElBQWE7SUFDeEUsSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNuQyxXQUFXLENBQUMsS0FBSyxFQUFFO1FBQ2YsR0FBRyxLQUFLLENBQUMsUUFBUTtRQUNqQixJQUFJO1FBQ0osV0FBVztLQUNkLENBQUMsQ0FBQztJQUNILHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQXNDLEtBQWlCLEVBQUUsT0FBVSxFQUFFLEVBQUU7SUFDN0YsS0FBSyxDQUFDLE9BQU8sR0FBRyxP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Q0FBQztBQUNuRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLElBQW9CO0lBQzdELElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7SUFDMUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLG1CQUFtQixDQUFFLEtBQWlDLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDOUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixnQkFBZ0I7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lQ29sb3JNb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90aGVtZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQnO1xuaW1wb3J0IHsgUGxhaXRQb2ludGVyVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnRlcic7XG5pbXBvcnQgeyB0b1BvaW50IH0gZnJvbSAnLi4vdXRpbHMvZG9tL2NvbW1vbic7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvZWxlbWVudCc7XG5pbXBvcnQgeyBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL21hdGgnO1xuaW1wb3J0IHtcbiAgICBjbGFtcFpvb21MZXZlbCxcbiAgICBjbGVhclZpZXdwb3J0T3JpZ2luYXRpb24sXG4gICAgZ2V0Vmlld0JveENlbnRlclBvaW50LFxuICAgIGdldFZpZXdwb3J0T3JpZ2luYXRpb24sXG4gICAgaW5pdGlhbGl6ZVZpZXdwb3J0Q29udGFpbmVyXG59IGZyb20gJy4uL3V0aWxzL3ZpZXdwb3J0JztcbmltcG9ydCB7IEJPQVJEX1RPX0NPTVBPTkVOVCB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBzZXRWaWV3cG9ydCB9IGZyb20gJy4vdmlld3BvcnQnO1xuaW1wb3J0IHsgZGVwdGhGaXJzdFJlY3Vyc2lvbiwgZ2V0UmVhbFNjcm9sbEJhcldpZHRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IHNldFRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5pbXBvcnQgeyBGaXRWaWV3cG9ydE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcblxuZnVuY3Rpb24gdXBkYXRlVmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9yaWdpbmF0aW9uOiBQb2ludCwgem9vbT86IG51bWJlcikge1xuICAgIHpvb20gPSB6b29tID8/IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgc2V0Vmlld3BvcnQoYm9hcmQsIHtcbiAgICAgICAgLi4uYm9hcmQudmlld3BvcnQsXG4gICAgICAgIHpvb20sXG4gICAgICAgIG9yaWdpbmF0aW9uXG4gICAgfSk7XG4gICAgY2xlYXJWaWV3cG9ydE9yaWdpbmF0aW9uKGJvYXJkKTtcbn1cblxuY29uc3QgdXBkYXRlUG9pbnRlclR5cGUgPSA8VCBleHRlbmRzIHN0cmluZyA9IFBsYWl0UG9pbnRlclR5cGU+KGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludGVyOiBUKSA9PiB7XG4gICAgYm9hcmQucG9pbnRlciA9IHBvaW50ZXI7XG4gICAgY29uc3QgYm9hcmRDb21wb25lbnQgPSBCT0FSRF9UT19DT01QT05FTlQuZ2V0KGJvYXJkKTtcbiAgICBib2FyZENvbXBvbmVudD8ubWFya0ZvckNoZWNrKCk7XG59O1xuXG5mdW5jdGlvbiB1cGRhdGVab29tKGJvYXJkOiBQbGFpdEJvYXJkLCBuZXdab29tOiBudW1iZXIsIGlzQ2VudGVyID0gdHJ1ZSkge1xuICAgIG5ld1pvb20gPSBjbGFtcFpvb21MZXZlbChuZXdab29tKTtcblxuICAgIGNvbnN0IG1vdXNlUG9pbnQgPSBQbGFpdEJvYXJkLmdldE1vdmluZ1BvaW50SW5Cb2FyZChib2FyZCk7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBib2FyZENvbnRhaW5lclJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBsZXQgZm9jdXNQb2ludCA9IFtib2FyZENvbnRhaW5lclJlY3Qud2lkdGggLyAyLCBib2FyZENvbnRhaW5lclJlY3QuaGVpZ2h0IC8gMl07XG5cbiAgICBpZiAoIWlzQ2VudGVyICYmIG1vdXNlUG9pbnQgJiYgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRSZWN0YW5nbGUobW91c2VQb2ludFswXSwgbW91c2VQb2ludFsxXSwgbmF0aXZlRWxlbWVudFJlY3QpID09PSAwKSB7XG4gICAgICAgIGZvY3VzUG9pbnQgPSB0b1BvaW50KG1vdXNlUG9pbnRbMF0sIG1vdXNlUG9pbnRbMV0sIChuYXRpdmVFbGVtZW50IGFzIHVua25vd24pIGFzIFNWR0VsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHpvb20gPSBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIGNvbnN0IG9yaWdpbmF0aW9uID0gZ2V0Vmlld3BvcnRPcmlnaW5hdGlvbihib2FyZCk7XG4gICAgY29uc3QgY2VudGVyWCA9IG9yaWdpbmF0aW9uIVswXSArIGZvY3VzUG9pbnRbMF0gLyB6b29tO1xuICAgIGNvbnN0IGNlbnRlclkgPSBvcmlnaW5hdGlvbiFbMV0gKyBmb2N1c1BvaW50WzFdIC8gem9vbTtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtjZW50ZXJYIC0gZm9jdXNQb2ludFswXSAvIG5ld1pvb20sIGNlbnRlclkgLSBmb2N1c1BvaW50WzFdIC8gbmV3Wm9vbV0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuZnVuY3Rpb24gZml0Vmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgc2Nyb2xsQmFyV2lkdGggPSBnZXRSZWFsU2Nyb2xsQmFyV2lkdGgoYm9hcmQpO1xuXG4gICAgY29uc3QgYm9hcmRDb250YWluZXJSZWN0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgZWxlbWVudEhvc3RCb3ggPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBib2FyZC5jaGlsZHJlbiwgdHJ1ZSk7XG4gICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgY29uc3QgYXV0b0ZpdFBhZGRpbmcgPSAxNjtcbiAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC0gMiAqIGF1dG9GaXRQYWRkaW5nO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gYm9hcmRDb250YWluZXJSZWN0LmhlaWdodCAtIDIgKiBhdXRvRml0UGFkZGluZztcblxuICAgIGxldCBuZXdab29tID0gem9vbTtcbiAgICBpZiAodmlld3BvcnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoIHx8IHZpZXdwb3J0SGVpZ2h0IDwgZWxlbWVudEhvc3RCb3guaGVpZ2h0KSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbih2aWV3cG9ydFdpZHRoIC8gZWxlbWVudEhvc3RCb3gud2lkdGgsIHZpZXdwb3J0SGVpZ2h0IC8gZWxlbWVudEhvc3RCb3guaGVpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBuZXdab29tID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCBjZW50ZXJQb2ludCA9IGdldFZpZXdCb3hDZW50ZXJQb2ludChib2FyZCk7XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbXG4gICAgICAgIGNlbnRlclBvaW50WzBdIC0gYm9hcmRDb250YWluZXJSZWN0LndpZHRoIC8gMiAvIG5ld1pvb20gKyBzY3JvbGxCYXJXaWR0aCAvIDIgLyB6b29tLFxuICAgICAgICBjZW50ZXJQb2ludFsxXSAtIGJvYXJkQ29udGFpbmVyUmVjdC5oZWlnaHQgLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIHpvb21cbiAgICBdIGFzIFBvaW50O1xuICAgIHVwZGF0ZVZpZXdwb3J0KGJvYXJkLCBuZXdPcmlnaW5hdGlvbiwgbmV3Wm9vbSk7XG59XG5cbmZ1bmN0aW9uIGZpdFZpZXdwb3J0V2lkdGgoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IEZpdFZpZXdwb3J0T3B0aW9ucykge1xuICAgIGxldCBzY3JvbGxCYXJXaWR0aCA9IGdldFJlYWxTY3JvbGxCYXJXaWR0aChib2FyZCk7XG5cbiAgICBjb25zdCBib2FyZENvbnRhaW5lciA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpO1xuICAgIGNvbnN0IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlID0gYm9hcmRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBsZXQgZmluYWxXaWR0aCA9IDA7XG4gICAgaWYgKG9wdGlvbnMubWF4V2lkdGgpIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IG9wdGlvbnMubWF4V2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxXaWR0aCA9IGJvYXJkQ29udGFpbmVyUmVjdGFuZ2xlLndpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRIb3N0Qm94ID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9IGZpbmFsV2lkdGggLSAyICogb3B0aW9ucy5hdXRvRml0UGFkZGluZztcbiAgICBsZXQgbmV3Wm9vbSA9IDA7XG4gICAgaWYgKGNvbnRlbnRXaWR0aCA8IGVsZW1lbnRIb3N0Qm94LndpZHRoKSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBlbGVtZW50SG9zdEJveC53aWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Wm9vbSA9IDE7XG4gICAgfVxuXG4gICAgbGV0IGZpbmFsSGVpZ2h0ID0gZWxlbWVudEhvc3RCb3guaGVpZ2h0ICogbmV3Wm9vbSArIDIgKiBvcHRpb25zLmF1dG9GaXRQYWRkaW5nO1xuICAgIGlmIChmaW5hbEhlaWdodCA+IG9wdGlvbnMubGltaXRIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBib2FyZENvbnRhaW5lci5jbG9zZXN0KGAuJHtvcHRpb25zLmNvbnRhaW5lckNsYXNzfWApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb250YWluZXJFbC5zdHlsZS5oZWlnaHQgPSBgJHtmaW5hbEhlaWdodH1weGA7XG4gICAgICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcihib2FyZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZmluYWxIZWlnaHQgPSBvcHRpb25zLmxpbWl0SGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0IGNlbnRlclggPSBlbGVtZW50SG9zdEJveC54ICsgZWxlbWVudEhvc3RCb3gud2lkdGggLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSBlbGVtZW50SG9zdEJveC55ICsgZWxlbWVudEhvc3RCb3guaGVpZ2h0IC8gMjtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtcbiAgICAgICAgY2VudGVyWCAtIGZpbmFsV2lkdGggLyAyIC8gbmV3Wm9vbSArIHNjcm9sbEJhcldpZHRoIC8gMiAvIG5ld1pvb20sXG4gICAgICAgIGNlbnRlclkgLSBmaW5hbEhlaWdodCAvIDIgLyBuZXdab29tICsgc2Nyb2xsQmFyV2lkdGggLyAyIC8gbmV3Wm9vbVxuICAgIF0gYXMgUG9pbnQ7XG4gICAgdXBkYXRlVmlld3BvcnQoYm9hcmQsIG5ld09yaWdpbmF0aW9uLCBuZXdab29tKTtcbn1cblxuLyoqXG4gKiBhcHBseSB0aGVtZSB0byBldmVyeSBlbGVtZW50IChyZW1vdmUgZWxlbWVudCBjdXN0b20gcHJvcGVydGllcylcbiAqIGludm9rZSBhcHBseVRoZW1lQ29sb3JcbiAqL1xuZnVuY3Rpb24gdXBkYXRlVGhlbWVDb2xvcihib2FyZDogUGxhaXRCb2FyZCwgbW9kZTogVGhlbWVDb2xvck1vZGUpIHtcbiAgICBtb2RlID0gbW9kZSA/PyBib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZTtcbiAgICBzZXRUaGVtZShib2FyZCwgeyB0aGVtZUNvbG9yTW9kZTogbW9kZSB9KTtcblxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb24oKGJvYXJkIGFzIHVua25vd24pIGFzIFBsYWl0RWxlbWVudCwgZWxlbWVudCA9PiB7XG4gICAgICAgIGJvYXJkLmFwcGx5VGhlbWUoZWxlbWVudCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBCb2FyZFRyYW5zZm9ybXMgPSB7XG4gICAgdXBkYXRlUG9pbnRlclR5cGUsXG4gICAgdXBkYXRlVmlld3BvcnQsXG4gICAgZml0Vmlld3BvcnQsXG4gICAgdXBkYXRlWm9vbSxcbiAgICB1cGRhdGVUaGVtZUNvbG9yLFxuICAgIGZpdFZpZXdwb3J0V2lkdGhcbn07XG4iXX0=
|
|
@@ -21,4 +21,23 @@ export function drawLinearPath(points, options) {
|
|
|
21
21
|
g.appendChild(path);
|
|
22
22
|
return g;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
export function drawBezierPath(points, options) {
|
|
25
|
+
const g = createG();
|
|
26
|
+
const path = createPath();
|
|
27
|
+
let polylinePath = '';
|
|
28
|
+
for (let i = 0; i < points.length - 3; i += 3) {
|
|
29
|
+
if (i === 0) {
|
|
30
|
+
polylinePath += `M ${points[0][0]} ${points[0][1]} `;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
polylinePath += `C ${points[i + 1][0]} ${points[i + 1][1]}, ${points[i + 2][0]} ${points[i + 2][1]}, ${points[i + 3][0]} ${points[i + 3][1]}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
path.setAttribute('d', polylinePath);
|
|
37
|
+
path.setAttribute('stroke', `${options?.stroke}`);
|
|
38
|
+
path.setAttribute('stroke-width', `${options?.strokeWidth}`);
|
|
39
|
+
path.setAttribute('fill', `none`);
|
|
40
|
+
g.appendChild(path);
|
|
41
|
+
return g;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy91dGlscy9kcmF3L2xpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFZLEVBQUUsS0FBWSxFQUFFLEdBQVUsRUFBRSxPQUFnQjtJQUM3RSxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBZSxFQUFFLE9BQWlCO0lBQzdELE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLE1BQU0sSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBRTFCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN0QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzVCLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNiLFlBQVksSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUNoRDthQUFNO1lBQ0gsWUFBWSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwQixPQUFPLENBQUMsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWUsRUFBRSxPQUFpQjtJQUM3RCxNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUNwQixNQUFNLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUUxQixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1QsWUFBWSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQ3hEO2FBQU07WUFDSCxZQUFZLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQ25ILE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQixFQUFFLENBQUM7U0FDTjtLQUNKO0lBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEIsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BvaW50JztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUcsIGNyZWF0ZVBhdGggfSBmcm9tICcuLi9kb20vY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdMaW5lKHJzOiBSb3VnaFNWRywgc3RhcnQ6IFBvaW50LCBlbmQ6IFBvaW50LCBvcHRpb25zOiBPcHRpb25zKTogU1ZHR0VsZW1lbnQge1xuICAgIHJldHVybiBycy5saW5lYXJQYXRoKFtzdGFydCwgZW5kXSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TGluZWFyUGF0aChwb2ludHM6IFBvaW50W10sIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICBjb25zdCBwYXRoID0gY3JlYXRlUGF0aCgpO1xuXG4gICAgbGV0IHBvbHlsaW5lUGF0aCA9ICcnO1xuICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICBwb2x5bGluZVBhdGggKz0gYE0gJHtwb2ludFswXX0gJHtwb2ludFsxXX0gYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvbHlsaW5lUGF0aCArPSBgTCAke3BvaW50WzBdfSAke3BvaW50WzFdfSBgO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHBvbHlsaW5lUGF0aCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIGAke29wdGlvbnM/LnN0cm9rZX1gKTtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywgYCR7b3B0aW9ucz8uc3Ryb2tlV2lkdGh9YCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBgbm9uZWApO1xuICAgIGcuYXBwZW5kQ2hpbGQocGF0aCk7XG5cbiAgICByZXR1cm4gZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdCZXppZXJQYXRoKHBvaW50czogUG9pbnRbXSwgb3B0aW9ucz86IE9wdGlvbnMpIHtcbiAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgIGNvbnN0IHBhdGggPSBjcmVhdGVQYXRoKCk7XG5cbiAgICBsZXQgcG9seWxpbmVQYXRoID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC0gMzsgaSArPSAzKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICBwb2x5bGluZVBhdGggKz0gYE0gJHtwb2ludHNbMF1bMF19ICR7cG9pbnRzWzBdWzFdfSBgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9seWxpbmVQYXRoICs9IGBDICR7cG9pbnRzW2kgKyAxXVswXX0gJHtwb2ludHNbaSArIDFdWzFdfSwgJHtwb2ludHNbaSArIDJdWzBdfSAke3BvaW50c1tpICsgMl1bMV19LCAke3BvaW50c1tpICsgM11bMF19ICR7XG4gICAgICAgICAgICAgICAgcG9pbnRzW2kgKyAzXVsxXVxuICAgICAgICAgICAgfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnZCcsIHBvbHlsaW5lUGF0aCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsIGAke29wdGlvbnM/LnN0cm9rZX1gKTtcbiAgICBwYXRoLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywgYCR7b3B0aW9ucz8uc3Ryb2tlV2lkdGh9YCk7XG4gICAgcGF0aC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCBgbm9uZWApO1xuICAgIGcuYXBwZW5kQ2hpbGQocGF0aCk7XG5cbiAgICByZXR1cm4gZztcbn1cbiJdfQ==
|
|
@@ -10,6 +10,7 @@ export const BOARD_TO_ROUGH_SVG = new WeakMap();
|
|
|
10
10
|
export const BOARD_TO_HOST = new WeakMap();
|
|
11
11
|
export const BOARD_TO_ELEMENT_HOST = new WeakMap();
|
|
12
12
|
export const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
|
|
13
|
+
export const BOARD_TO_MOVING_POINT_IN_BOARD = new WeakMap();
|
|
13
14
|
export const BOARD_TO_MOVING_POINT = new WeakMap();
|
|
14
15
|
export const BOARD_TO_VIEWPORT_ORIGINATION = new WeakMap();
|
|
15
16
|
export const BOARD_TO_IS_SELECTION_MOVING = new WeakMap();
|
|
@@ -17,4 +18,4 @@ export const BOARD_TO_IS_SELECTION_MOVING = new WeakMap();
|
|
|
17
18
|
export const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
|
|
18
19
|
export const BOARD_TO_MOVING_ELEMENT = new WeakMap();
|
|
19
20
|
export const PATH_REFS = new WeakMap();
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL3dlYWstbWFwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF1QyxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUvRSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFzQyxJQUFJLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgQm9hcmRDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuLi9ib2FyZC9ib2FyZC5jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQnO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoUmVmIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoLXJlZic7XG5cbi8vIHJlY29yZCByaWNodGV4dCB0eXBlIHN0YXR1c1xuZXhwb3J0IGNvbnN0IElTX0JPQVJEX0NBQ0hFID0gbmV3IFdlYWtNYXA8T2JqZWN0LCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgRkxVU0hJTkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgTk9ERV9UT19JTkRFWCA9IG5ldyBXZWFrTWFwPFBsYWl0Tm9kZSwgbnVtYmVyPigpO1xuXG5leHBvcnQgY29uc3QgTk9ERV9UT19QQVJFTlQgPSBuZXcgV2Vha01hcDxQbGFpdE5vZGUsIEFuY2VzdG9yPigpO1xuXG5leHBvcnQgY29uc3QgSVNfVEVYVF9FRElUQUJMRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19PTl9DSEFOR0UgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCAoKSA9PiB2b2lkPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fQ09NUE9ORU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgQm9hcmRDb21wb25lbnRJbnRlcmZhY2U+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19ST1VHSF9TVkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBSb3VnaFNWRz4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0hPU1QgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBTVkdTVkdFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fRUxFTUVOVF9IT1NUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgU1ZHR0VsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19TRUxFQ1RFRF9FTEVNRU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50W10+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQb2ludD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX01PVklOR19QT0lOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBvaW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fVklFV1BPUlRfT1JJR0lOQVRJT04gPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQb2ludD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0lTX1NFTEVDVElPTl9NT1ZJTkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG4vLyBzYXZlIG5vIHN0YW5kYXJkIHNlbGVjdGVkIGVsZW1lbnRzXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50W10+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19NT1ZJTkdfRUxFTUVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudFtdPigpO1xuXG5leHBvcnQgY29uc3QgUEFUSF9SRUZTOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIFNldDxQYXRoUmVmPj4gPSBuZXcgV2Vha01hcCgpO1xuIl19
|
package/fesm2015/plait-core.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import rough from 'roughjs/bin/rough';
|
|
|
4
4
|
import { timer, Subject, fromEvent } from 'rxjs';
|
|
5
5
|
import { takeUntil, filter, tap } from 'rxjs/operators';
|
|
6
6
|
import produce, { createDraft, finishDraft, isDraft } from 'immer';
|
|
7
|
-
import { isKeyHotkey, isHotkey } from 'is-hotkey';
|
|
7
|
+
import isHotkey$1, { isKeyHotkey, isHotkey } from 'is-hotkey';
|
|
8
8
|
import { __awaiter } from 'tslib';
|
|
9
9
|
import * as i1 from '@angular/common';
|
|
10
10
|
import { CommonModule } from '@angular/common';
|
|
@@ -21,6 +21,7 @@ const BOARD_TO_ROUGH_SVG = new WeakMap();
|
|
|
21
21
|
const BOARD_TO_HOST = new WeakMap();
|
|
22
22
|
const BOARD_TO_ELEMENT_HOST = new WeakMap();
|
|
23
23
|
const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
|
|
24
|
+
const BOARD_TO_MOVING_POINT_IN_BOARD = new WeakMap();
|
|
24
25
|
const BOARD_TO_MOVING_POINT = new WeakMap();
|
|
25
26
|
const BOARD_TO_VIEWPORT_ORIGINATION = new WeakMap();
|
|
26
27
|
const BOARD_TO_IS_SELECTION_MOVING = new WeakMap();
|
|
@@ -134,6 +135,54 @@ const ThemeColors = [
|
|
|
134
135
|
StarryThemeColor
|
|
135
136
|
];
|
|
136
137
|
|
|
138
|
+
// https://stackoverflow.com/a/6853926/232122
|
|
139
|
+
function distanceBetweenPointAndSegment(x, y, x1, y1, x2, y2) {
|
|
140
|
+
const A = x - x1;
|
|
141
|
+
const B = y - y1;
|
|
142
|
+
const C = x2 - x1;
|
|
143
|
+
const D = y2 - y1;
|
|
144
|
+
const dot = A * C + B * D;
|
|
145
|
+
const lenSquare = C * C + D * D;
|
|
146
|
+
let param = -1;
|
|
147
|
+
if (lenSquare !== 0) {
|
|
148
|
+
// in case of 0 length line
|
|
149
|
+
param = dot / lenSquare;
|
|
150
|
+
}
|
|
151
|
+
let xx, yy;
|
|
152
|
+
if (param < 0) {
|
|
153
|
+
xx = x1;
|
|
154
|
+
yy = y1;
|
|
155
|
+
}
|
|
156
|
+
else if (param > 1) {
|
|
157
|
+
xx = x2;
|
|
158
|
+
yy = y2;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
xx = x1 + param * C;
|
|
162
|
+
yy = y1 + param * D;
|
|
163
|
+
}
|
|
164
|
+
const dx = x - xx;
|
|
165
|
+
const dy = y - yy;
|
|
166
|
+
return Math.hypot(dx, dy);
|
|
167
|
+
}
|
|
168
|
+
function rotate(x1, y1, x2, y2, angle) {
|
|
169
|
+
// 𝑎′𝑥=(𝑎𝑥−𝑐𝑥)cos𝜃−(𝑎𝑦−𝑐𝑦)sin𝜃+𝑐𝑥
|
|
170
|
+
// 𝑎′𝑦=(𝑎𝑥−𝑐𝑥)sin𝜃+(𝑎𝑦−𝑐𝑦)cos𝜃+𝑐𝑦.
|
|
171
|
+
// https://math.stackexchange.com/questions/2204520/how-do-i-rotate-a-line-segment-in-a-specific-point-on-the-line
|
|
172
|
+
return [(x1 - x2) * Math.cos(angle) - (y1 - y2) * Math.sin(angle) + x2, (x1 - x2) * Math.sin(angle) + (y1 - y2) * Math.cos(angle) + y2];
|
|
173
|
+
}
|
|
174
|
+
function distanceBetweenPointAndPoint(x1, y1, x2, y2) {
|
|
175
|
+
const dx = x1 - x2;
|
|
176
|
+
const dy = y1 - y2;
|
|
177
|
+
return Math.hypot(dx, dy);
|
|
178
|
+
}
|
|
179
|
+
// https://stackoverflow.com/questions/5254838/calculating-distance-between-a-point-and-a-rectangular-box-nearest-point
|
|
180
|
+
function distanceBetweenPointAndRectangle(x, y, rect) {
|
|
181
|
+
var dx = Math.max(rect.x - x, 0, x - (rect.x + rect.width));
|
|
182
|
+
var dy = Math.max(rect.y - y, 0, y - (rect.y + rect.height));
|
|
183
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
184
|
+
}
|
|
185
|
+
|
|
137
186
|
const PlaitBoard = {
|
|
138
187
|
isBoard(value) {
|
|
139
188
|
const cachedIsBoard = IS_BOARD_CACHE.get(value);
|
|
@@ -202,8 +251,16 @@ const PlaitBoard = {
|
|
|
202
251
|
isPointer(board, pointer) {
|
|
203
252
|
return board.pointer === pointer;
|
|
204
253
|
},
|
|
205
|
-
|
|
206
|
-
return
|
|
254
|
+
getMovingPointInBoard(board) {
|
|
255
|
+
return BOARD_TO_MOVING_POINT_IN_BOARD.get(board);
|
|
256
|
+
},
|
|
257
|
+
isMovingPointInBoard(board) {
|
|
258
|
+
const point = BOARD_TO_MOVING_POINT.get(board);
|
|
259
|
+
const rect = PlaitBoard.getBoardContainer(board).getBoundingClientRect();
|
|
260
|
+
if (point && distanceBetweenPointAndRectangle(point[0], point[1], rect) === 0) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
return false;
|
|
207
264
|
},
|
|
208
265
|
getThemeColors(board) {
|
|
209
266
|
return (board.options.themeColors || ThemeColors);
|
|
@@ -788,6 +845,7 @@ const SINGLE_QUOTE = 222;
|
|
|
788
845
|
const MAC_META = 224;
|
|
789
846
|
|
|
790
847
|
const CLIP_BOARD_FORMAT_KEY = 'x-plait-fragment';
|
|
848
|
+
const HOST_CLASS_NAME = 'plait-board-container';
|
|
791
849
|
const SCROLL_BAR_WIDTH = 20;
|
|
792
850
|
const MAX_RADIUS = 16;
|
|
793
851
|
const POINTER_BUTTON = {
|
|
@@ -849,54 +907,6 @@ const isMainPointer = (event) => {
|
|
|
849
907
|
return event.button === POINTER_BUTTON.MAIN;
|
|
850
908
|
};
|
|
851
909
|
|
|
852
|
-
// https://stackoverflow.com/a/6853926/232122
|
|
853
|
-
function distanceBetweenPointAndSegment(x, y, x1, y1, x2, y2) {
|
|
854
|
-
const A = x - x1;
|
|
855
|
-
const B = y - y1;
|
|
856
|
-
const C = x2 - x1;
|
|
857
|
-
const D = y2 - y1;
|
|
858
|
-
const dot = A * C + B * D;
|
|
859
|
-
const lenSquare = C * C + D * D;
|
|
860
|
-
let param = -1;
|
|
861
|
-
if (lenSquare !== 0) {
|
|
862
|
-
// in case of 0 length line
|
|
863
|
-
param = dot / lenSquare;
|
|
864
|
-
}
|
|
865
|
-
let xx, yy;
|
|
866
|
-
if (param < 0) {
|
|
867
|
-
xx = x1;
|
|
868
|
-
yy = y1;
|
|
869
|
-
}
|
|
870
|
-
else if (param > 1) {
|
|
871
|
-
xx = x2;
|
|
872
|
-
yy = y2;
|
|
873
|
-
}
|
|
874
|
-
else {
|
|
875
|
-
xx = x1 + param * C;
|
|
876
|
-
yy = y1 + param * D;
|
|
877
|
-
}
|
|
878
|
-
const dx = x - xx;
|
|
879
|
-
const dy = y - yy;
|
|
880
|
-
return Math.hypot(dx, dy);
|
|
881
|
-
}
|
|
882
|
-
function rotate(x1, y1, x2, y2, angle) {
|
|
883
|
-
// 𝑎′𝑥=(𝑎𝑥−𝑐𝑥)cos𝜃−(𝑎𝑦−𝑐𝑦)sin𝜃+𝑐𝑥
|
|
884
|
-
// 𝑎′𝑦=(𝑎𝑥−𝑐𝑥)sin𝜃+(𝑎𝑦−𝑐𝑦)cos𝜃+𝑐𝑦.
|
|
885
|
-
// https://math.stackexchange.com/questions/2204520/how-do-i-rotate-a-line-segment-in-a-specific-point-on-the-line
|
|
886
|
-
return [(x1 - x2) * Math.cos(angle) - (y1 - y2) * Math.sin(angle) + x2, (x1 - x2) * Math.sin(angle) + (y1 - y2) * Math.cos(angle) + y2];
|
|
887
|
-
}
|
|
888
|
-
function distanceBetweenPointAndPoint(x1, y1, x2, y2) {
|
|
889
|
-
const dx = x1 - x2;
|
|
890
|
-
const dy = y1 - y2;
|
|
891
|
-
return Math.hypot(dx, dy);
|
|
892
|
-
}
|
|
893
|
-
// https://stackoverflow.com/questions/5254838/calculating-distance-between-a-point-and-a-rectangular-box-nearest-point
|
|
894
|
-
function distanceBetweenPointAndRectangle(x, y, rect) {
|
|
895
|
-
var dx = Math.max(rect.x - x, 0, x - (rect.x + rect.width));
|
|
896
|
-
var dy = Math.max(rect.y - y, 0, y - (rect.y + rect.height));
|
|
897
|
-
return Math.sqrt(dx * dx + dy * dy);
|
|
898
|
-
}
|
|
899
|
-
|
|
900
910
|
const SELECTION_BORDER_COLOR = '#6698FF';
|
|
901
911
|
const SELECTION_FILL_COLOR = '#6698FF19'; // 主色 0.1 透明度
|
|
902
912
|
const Selection = {
|
|
@@ -1403,6 +1413,25 @@ function drawLinearPath(points, options) {
|
|
|
1403
1413
|
g.appendChild(path);
|
|
1404
1414
|
return g;
|
|
1405
1415
|
}
|
|
1416
|
+
function drawBezierPath(points, options) {
|
|
1417
|
+
const g = createG();
|
|
1418
|
+
const path = createPath();
|
|
1419
|
+
let polylinePath = '';
|
|
1420
|
+
for (let i = 0; i < points.length - 3; i += 3) {
|
|
1421
|
+
if (i === 0) {
|
|
1422
|
+
polylinePath += `M ${points[0][0]} ${points[0][1]} `;
|
|
1423
|
+
}
|
|
1424
|
+
else {
|
|
1425
|
+
polylinePath += `C ${points[i + 1][0]} ${points[i + 1][1]}, ${points[i + 2][0]} ${points[i + 2][1]}, ${points[i + 3][0]} ${points[i + 3][1]}`;
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
path.setAttribute('d', polylinePath);
|
|
1429
|
+
path.setAttribute('stroke', `${options === null || options === void 0 ? void 0 : options.stroke}`);
|
|
1430
|
+
path.setAttribute('stroke-width', `${options === null || options === void 0 ? void 0 : options.strokeWidth}`);
|
|
1431
|
+
path.setAttribute('fill', `none`);
|
|
1432
|
+
g.appendChild(path);
|
|
1433
|
+
return g;
|
|
1434
|
+
}
|
|
1406
1435
|
|
|
1407
1436
|
let timerId = null;
|
|
1408
1437
|
const throttleRAF = (fn) => {
|
|
@@ -1875,7 +1904,7 @@ const updatePointerType = (board, pointer) => {
|
|
|
1875
1904
|
};
|
|
1876
1905
|
function updateZoom(board, newZoom, isCenter = true) {
|
|
1877
1906
|
newZoom = clampZoomLevel(newZoom);
|
|
1878
|
-
const mousePoint = PlaitBoard.
|
|
1907
|
+
const mousePoint = PlaitBoard.getMovingPointInBoard(board);
|
|
1879
1908
|
const nativeElement = PlaitBoard.getBoardContainer(board);
|
|
1880
1909
|
const nativeElementRect = nativeElement.getBoundingClientRect();
|
|
1881
1910
|
const boardContainerRect = PlaitBoard.getBoardContainer(board).getBoundingClientRect();
|
|
@@ -2054,6 +2083,7 @@ function createBoard(children, options) {
|
|
|
2054
2083
|
mouseup: (event) => { },
|
|
2055
2084
|
globalMouseup: (event) => { },
|
|
2056
2085
|
keydown: (event) => { },
|
|
2086
|
+
globalKeydown: (event) => { },
|
|
2057
2087
|
keyup: (event) => { },
|
|
2058
2088
|
dblclick: (event) => { },
|
|
2059
2089
|
setFragment: (data) => { },
|
|
@@ -2531,6 +2561,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
2531
2561
|
}
|
|
2532
2562
|
}]
|
|
2533
2563
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
2564
|
+
class PlaitIslandPopoverBaseComponent {
|
|
2565
|
+
initialize(board) {
|
|
2566
|
+
this.board = board;
|
|
2567
|
+
const onChange = board.onChange;
|
|
2568
|
+
board.onChange = () => {
|
|
2569
|
+
onChange();
|
|
2570
|
+
if (hasOnBoardChange(this)) {
|
|
2571
|
+
this.onBoardChange();
|
|
2572
|
+
}
|
|
2573
|
+
};
|
|
2574
|
+
this.onChange = onChange;
|
|
2575
|
+
}
|
|
2576
|
+
ngOnInit() {
|
|
2577
|
+
if (!this.board) {
|
|
2578
|
+
throw new Error('can not find board instance');
|
|
2579
|
+
}
|
|
2580
|
+
this.initialize(this.board);
|
|
2581
|
+
this.islandOnInit();
|
|
2582
|
+
}
|
|
2583
|
+
ngOnDestroy() {
|
|
2584
|
+
this.board.onChange = this.onChange;
|
|
2585
|
+
this.islandOnDestroy();
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
PlaitIslandPopoverBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PlaitIslandPopoverBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2589
|
+
PlaitIslandPopoverBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: PlaitIslandPopoverBaseComponent, inputs: { board: "board" }, host: { classAttribute: "plait-island-popover-container" }, ngImport: i0 });
|
|
2590
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PlaitIslandPopoverBaseComponent, decorators: [{
|
|
2591
|
+
type: Directive,
|
|
2592
|
+
args: [{
|
|
2593
|
+
host: {
|
|
2594
|
+
class: 'plait-island-popover-container'
|
|
2595
|
+
}
|
|
2596
|
+
}]
|
|
2597
|
+
}], propDecorators: { board: [{
|
|
2598
|
+
type: Input
|
|
2599
|
+
}] } });
|
|
2534
2600
|
const hasOnBoardChange = (value) => {
|
|
2535
2601
|
if (value.onBoardChange) {
|
|
2536
2602
|
return true;
|
|
@@ -2540,6 +2606,56 @@ const hasOnBoardChange = (value) => {
|
|
|
2540
2606
|
}
|
|
2541
2607
|
};
|
|
2542
2608
|
|
|
2609
|
+
const withHotkey = (board) => {
|
|
2610
|
+
const { keydown, globalKeydown } = board;
|
|
2611
|
+
board.keydown = (event) => {
|
|
2612
|
+
const options = board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
2613
|
+
if (!PlaitBoard.isReadonly(board) && options.isMultiple && isHotkey$1('mod+a', event)) {
|
|
2614
|
+
event.preventDefault();
|
|
2615
|
+
let elements = [];
|
|
2616
|
+
depthFirstRecursion(board, node => {
|
|
2617
|
+
elements.push(node);
|
|
2618
|
+
}, node => {
|
|
2619
|
+
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
2620
|
+
return true;
|
|
2621
|
+
}
|
|
2622
|
+
else {
|
|
2623
|
+
return false;
|
|
2624
|
+
}
|
|
2625
|
+
}, true);
|
|
2626
|
+
Transforms.setSelectionWithTemporaryElements(board, elements);
|
|
2627
|
+
return;
|
|
2628
|
+
}
|
|
2629
|
+
keydown(event);
|
|
2630
|
+
};
|
|
2631
|
+
board.globalKeydown = (event) => {
|
|
2632
|
+
if (PlaitBoard.getMovingPointInBoard(board) || PlaitBoard.isMovingPointInBoard(board)) {
|
|
2633
|
+
if (isHotkey$1(['mod+=', 'mod++'], { byKey: true })(event)) {
|
|
2634
|
+
event.preventDefault();
|
|
2635
|
+
BoardTransforms.updateZoom(board, board.viewport.zoom + 0.1, false);
|
|
2636
|
+
return;
|
|
2637
|
+
}
|
|
2638
|
+
if (isHotkey$1(['mod+shift+=', 'mod+shift++'], { byKey: true })(event)) {
|
|
2639
|
+
event.preventDefault();
|
|
2640
|
+
BoardTransforms.fitViewport(board);
|
|
2641
|
+
return;
|
|
2642
|
+
}
|
|
2643
|
+
if (isHotkey$1(['mod+-', 'mod+shift+-'])(event)) {
|
|
2644
|
+
event.preventDefault();
|
|
2645
|
+
BoardTransforms.updateZoom(board, board.viewport.zoom - 0.1);
|
|
2646
|
+
return;
|
|
2647
|
+
}
|
|
2648
|
+
if (isHotkey$1(['mod+0', 'mod+shift+0'], { byKey: true })(event)) {
|
|
2649
|
+
event.preventDefault();
|
|
2650
|
+
BoardTransforms.updateZoom(board, 1);
|
|
2651
|
+
return;
|
|
2652
|
+
}
|
|
2653
|
+
}
|
|
2654
|
+
globalKeydown(event);
|
|
2655
|
+
};
|
|
2656
|
+
return board;
|
|
2657
|
+
};
|
|
2658
|
+
|
|
2543
2659
|
class PlaitElementComponent {
|
|
2544
2660
|
constructor(renderer2, viewContainerRef) {
|
|
2545
2661
|
this.renderer2 = renderer2;
|
|
@@ -2696,7 +2812,7 @@ class PlaitBoardComponent {
|
|
|
2696
2812
|
return this.svg.nativeElement;
|
|
2697
2813
|
}
|
|
2698
2814
|
get hostClass() {
|
|
2699
|
-
return
|
|
2815
|
+
return `${HOST_CLASS_NAME} pointer-${this.board.pointer} theme-${this.board.theme.themeColorMode}`;
|
|
2700
2816
|
}
|
|
2701
2817
|
get readonly() {
|
|
2702
2818
|
return this.board.options.readonly;
|
|
@@ -2737,6 +2853,11 @@ class PlaitBoardComponent {
|
|
|
2737
2853
|
this.initializeHookListener();
|
|
2738
2854
|
this.viewportScrollListener();
|
|
2739
2855
|
this.elementResizeListener();
|
|
2856
|
+
fromEvent(document, 'mouseleave')
|
|
2857
|
+
.pipe(takeUntil(this.destroy$))
|
|
2858
|
+
.subscribe((event) => {
|
|
2859
|
+
BOARD_TO_MOVING_POINT.delete(this.board);
|
|
2860
|
+
});
|
|
2740
2861
|
});
|
|
2741
2862
|
BOARD_TO_COMPONENT.set(this.board, this);
|
|
2742
2863
|
BOARD_TO_ROUGH_SVG.set(this.board, roughSVG);
|
|
@@ -2783,7 +2904,7 @@ class PlaitBoardComponent {
|
|
|
2783
2904
|
initializeViewportOffset(this.board);
|
|
2784
2905
|
}
|
|
2785
2906
|
initializePlugins() {
|
|
2786
|
-
let board = withHandPointer(withHistory(withSelection(withMoving(withBoard(withViewport(withOptions(createBoard(this.plaitValue, this.plaitOptions))))))));
|
|
2907
|
+
let board = withHotkey(withHandPointer(withHistory(withSelection(withMoving(withBoard(withViewport(withOptions(createBoard(this.plaitValue, this.plaitOptions)))))))));
|
|
2787
2908
|
this.plaitPlugins.forEach(plugin => {
|
|
2788
2909
|
board = plugin(board);
|
|
2789
2910
|
});
|
|
@@ -2804,18 +2925,19 @@ class PlaitBoardComponent {
|
|
|
2804
2925
|
fromEvent(this.host, 'mousemove')
|
|
2805
2926
|
.pipe(takeUntil(this.destroy$))
|
|
2806
2927
|
.subscribe((event) => {
|
|
2807
|
-
|
|
2928
|
+
BOARD_TO_MOVING_POINT_IN_BOARD.set(this.board, [event.x, event.y]);
|
|
2808
2929
|
this.board.mousemove(event);
|
|
2809
2930
|
});
|
|
2810
2931
|
fromEvent(this.host, 'mouseleave')
|
|
2811
2932
|
.pipe(takeUntil(this.destroy$))
|
|
2812
2933
|
.subscribe((event) => {
|
|
2813
|
-
|
|
2934
|
+
BOARD_TO_MOVING_POINT_IN_BOARD.delete(this.board);
|
|
2814
2935
|
this.board.mouseleave(event);
|
|
2815
2936
|
});
|
|
2816
2937
|
fromEvent(document, 'mousemove')
|
|
2817
2938
|
.pipe(takeUntil(this.destroy$))
|
|
2818
2939
|
.subscribe((event) => {
|
|
2940
|
+
BOARD_TO_MOVING_POINT.set(this.board, [event.x, event.y]);
|
|
2819
2941
|
this.board.globalMousemove(event);
|
|
2820
2942
|
});
|
|
2821
2943
|
fromEvent(this.host, 'mouseup')
|
|
@@ -2834,27 +2956,8 @@ class PlaitBoardComponent {
|
|
|
2834
2956
|
this.board.dblclick(event);
|
|
2835
2957
|
});
|
|
2836
2958
|
fromEvent(document, 'keydown')
|
|
2837
|
-
.pipe(takeUntil(this.destroy$), tap(
|
|
2838
|
-
|
|
2839
|
-
if (isHotkey(['mod+=', 'mod++'], { byKey: true })(event)) {
|
|
2840
|
-
event.preventDefault();
|
|
2841
|
-
BoardTransforms.updateZoom(this.board, this.board.viewport.zoom + 0.1, false);
|
|
2842
|
-
}
|
|
2843
|
-
if (isHotkey('mod+-', { byKey: true })(event)) {
|
|
2844
|
-
event.preventDefault();
|
|
2845
|
-
BoardTransforms.updateZoom(this.board, this.board.viewport.zoom - 0.1);
|
|
2846
|
-
}
|
|
2847
|
-
if (isHotkey('mod+0', { byKey: true })(event)) {
|
|
2848
|
-
event.preventDefault();
|
|
2849
|
-
BoardTransforms.updateZoom(this.board, 1);
|
|
2850
|
-
return;
|
|
2851
|
-
}
|
|
2852
|
-
if (isHotkey('mod+shift+=', { byKey: true })(event)) {
|
|
2853
|
-
event.preventDefault();
|
|
2854
|
-
BoardTransforms.fitViewport(this.board);
|
|
2855
|
-
return;
|
|
2856
|
-
}
|
|
2857
|
-
}
|
|
2959
|
+
.pipe(takeUntil(this.destroy$), tap(event => {
|
|
2960
|
+
this.board.globalKeydown(event);
|
|
2858
2961
|
}), filter(event => this.isFocused && !PlaitBoard.hasBeenTextEditing(this.board) && !hasInputOrTextareaTarget(event.target)))
|
|
2859
2962
|
.subscribe((event) => {
|
|
2860
2963
|
var _a;
|
|
@@ -2876,7 +2979,7 @@ class PlaitBoardComponent {
|
|
|
2876
2979
|
fromEvent(document, 'paste')
|
|
2877
2980
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.isReadonly(this.board) && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
2878
2981
|
.subscribe((clipboardEvent) => {
|
|
2879
|
-
const mousePoint = PlaitBoard.
|
|
2982
|
+
const mousePoint = PlaitBoard.getMovingPointInBoard(this.board);
|
|
2880
2983
|
if (mousePoint) {
|
|
2881
2984
|
const targetPoint = transformPoint(this.board, toPoint(mousePoint[0], mousePoint[1], this.host));
|
|
2882
2985
|
this.board.insertFragment(clipboardEvent.clipboardData, targetPoint);
|
|
@@ -3190,5 +3293,5 @@ function createModModifierKeys() {
|
|
|
3190
3293
|
* Generated bundle index. Do not edit.
|
|
3191
3294
|
*/
|
|
3192
3295
|
|
|
3193
|
-
export { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawAbstractRoundRectangle, drawArrow, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
3296
|
+
export { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawAbstractRoundRectangle, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
3194
3297
|
//# sourceMappingURL=plait-core.mjs.map
|