@plait/draw 0.56.2 → 0.58.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/draw.d.ts +1 -0
- package/constants/geometry.d.ts +82 -2
- package/constants/index.d.ts +1 -0
- package/constants/pointer.d.ts +4 -2
- package/engines/flowchart/display.d.ts +4 -0
- package/engines/index.d.ts +3 -3
- package/engines/table/table.d.ts +16 -0
- package/engines/uml/actor.d.ts +2 -0
- package/engines/uml/combined-fragment.d.ts +3 -0
- package/engines/uml/container.d.ts +2 -0
- package/engines/uml/package.d.ts +3 -0
- package/esm2022/constants/draw.mjs +2 -0
- package/esm2022/constants/geometry.mjs +71 -5
- package/esm2022/constants/index.mjs +2 -1
- package/esm2022/constants/pointer.mjs +9 -3
- package/esm2022/engines/basic-shapes/cloud.mjs +1 -1
- package/esm2022/engines/basic-shapes/comment.mjs +1 -1
- package/esm2022/engines/basic-shapes/diamond.mjs +2 -2
- package/esm2022/engines/basic-shapes/parallelogram.mjs +2 -2
- package/esm2022/engines/basic-shapes/pentagon.mjs +1 -1
- package/esm2022/engines/basic-shapes/round-comment.mjs +2 -2
- package/esm2022/engines/basic-shapes/star.mjs +1 -1
- package/esm2022/engines/basic-shapes/trapezoid.mjs +2 -2
- package/esm2022/engines/basic-shapes/triangle.mjs +2 -2
- package/esm2022/engines/flowchart/database.mjs +2 -2
- package/esm2022/engines/flowchart/display.mjs +74 -0
- package/esm2022/engines/flowchart/document.mjs +1 -1
- package/esm2022/engines/flowchart/hard-disk.mjs +2 -2
- package/esm2022/engines/flowchart/internal-storage.mjs +2 -2
- package/esm2022/engines/flowchart/manual-input.mjs +2 -2
- package/esm2022/engines/flowchart/manual-loop.mjs +2 -2
- package/esm2022/engines/flowchart/merge.mjs +1 -1
- package/esm2022/engines/flowchart/multi-document.mjs +1 -1
- package/esm2022/engines/flowchart/note-curly-left.mjs +2 -2
- package/esm2022/engines/flowchart/note-curly-right.mjs +2 -2
- package/esm2022/engines/flowchart/note-square.mjs +1 -1
- package/esm2022/engines/flowchart/off-page.mjs +2 -2
- package/esm2022/engines/flowchart/or.mjs +1 -8
- package/esm2022/engines/flowchart/predefined-process.mjs +1 -1
- package/esm2022/engines/flowchart/summing-junction.mjs +1 -8
- package/esm2022/engines/index.mjs +20 -5
- package/esm2022/engines/table/table.mjs +72 -0
- package/esm2022/engines/uml/actor.mjs +102 -0
- package/esm2022/engines/uml/combined-fragment.mjs +66 -0
- package/esm2022/engines/uml/container.mjs +44 -0
- package/esm2022/engines/uml/package.mjs +75 -0
- package/esm2022/generators/geometry-shape.generator.mjs +3 -3
- package/esm2022/generators/index.mjs +7 -0
- package/esm2022/generators/line-active.generator.mjs +3 -3
- package/esm2022/generators/line-auto-complete.generator.mjs +1 -1
- package/esm2022/generators/single-text.generator.mjs +16 -0
- package/esm2022/generators/table.generator.mjs +20 -0
- package/esm2022/generators/text.generator.mjs +134 -0
- package/esm2022/geometry.component.mjs +64 -77
- package/esm2022/image.component.mjs +11 -28
- package/esm2022/interfaces/element.mjs +2 -1
- package/esm2022/interfaces/engine.mjs +2 -0
- package/esm2022/interfaces/geometry.mjs +24 -1
- package/esm2022/interfaces/image.mjs +1 -1
- package/esm2022/interfaces/index.mjs +27 -4
- package/esm2022/interfaces/line.mjs +1 -1
- package/esm2022/interfaces/table.mjs +9 -0
- package/esm2022/line.component.mjs +9 -26
- package/esm2022/plugins/with-draw-fragment.mjs +3 -1
- package/esm2022/plugins/with-draw-hotkey.mjs +12 -3
- package/esm2022/plugins/with-draw-resize.mjs +1 -1
- package/esm2022/plugins/with-draw.mjs +7 -2
- package/esm2022/plugins/with-geometry-create.mjs +2 -1
- package/esm2022/plugins/with-geometry-resize.mjs +1 -1
- package/esm2022/plugins/with-line-auto-complete-reaction.mjs +2 -2
- package/esm2022/plugins/with-line-bound-reaction.mjs +3 -4
- package/esm2022/plugins/with-line-create.mjs +3 -3
- package/esm2022/plugins/with-line-resize.mjs +3 -3
- package/esm2022/plugins/with-swimlane-create.mjs +132 -0
- package/esm2022/plugins/with-swimlane.mjs +21 -0
- package/esm2022/plugins/with-table-resize.mjs +130 -0
- package/esm2022/plugins/with-table.mjs +60 -0
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/table.component.mjs +136 -0
- package/esm2022/transforms/geometry-text.mjs +6 -3
- package/esm2022/transforms/geometry.mjs +3 -2
- package/esm2022/transforms/index.mjs +11 -2
- package/esm2022/transforms/multi-text-geometry-text.mjs +15 -0
- package/esm2022/transforms/swimlane.mjs +97 -0
- package/esm2022/transforms/table-text.mjs +44 -0
- package/esm2022/utils/clipboard.mjs +15 -2
- package/esm2022/utils/common.mjs +130 -0
- package/esm2022/utils/geometry.mjs +49 -63
- package/esm2022/utils/hit.mjs +47 -18
- package/esm2022/utils/index.mjs +4 -1
- package/esm2022/utils/line/elbow.mjs +2 -2
- package/esm2022/utils/line/line-arrow.mjs +2 -2
- package/esm2022/utils/line/line-basic.mjs +4 -4
- package/esm2022/utils/line/line-common.mjs +2 -2
- package/esm2022/utils/memorize.mjs +7 -1
- package/esm2022/utils/multi-text-geometry.mjs +61 -0
- package/esm2022/utils/position/geometry.mjs +2 -40
- package/esm2022/utils/selected.mjs +14 -1
- package/esm2022/utils/shape.mjs +5 -2
- package/esm2022/utils/snap-resizing.mjs +7 -7
- package/esm2022/utils/style/stroke.mjs +4 -10
- package/esm2022/utils/swimlane.mjs +120 -0
- package/esm2022/utils/table.mjs +124 -0
- package/fesm2022/plait-draw.mjs +4556 -2877
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/index.d.ts +6 -0
- package/generators/line-auto-complete.generator.d.ts +2 -2
- package/generators/single-text.generator.d.ts +11 -0
- package/generators/table.generator.d.ts +9 -0
- package/generators/text.generator.d.ts +43 -0
- package/geometry.component.d.ts +12 -17
- package/image.component.d.ts +6 -11
- package/interfaces/element.d.ts +2 -1
- package/interfaces/engine.d.ts +16 -0
- package/interfaces/geometry.d.ts +42 -18
- package/interfaces/image.d.ts +4 -2
- package/interfaces/index.d.ts +12 -3
- package/interfaces/line.d.ts +4 -5
- package/interfaces/table.d.ts +40 -0
- package/line.component.d.ts +5 -10
- package/package.json +1 -1
- package/plugins/with-swimlane-create.d.ts +8 -0
- package/plugins/with-swimlane.d.ts +2 -0
- package/plugins/with-table-resize.d.ts +2 -0
- package/plugins/with-table.d.ts +6 -0
- package/public-api.d.ts +1 -0
- package/table.component.d.ts +21 -0
- package/transforms/geometry.d.ts +2 -2
- package/transforms/index.d.ts +8 -2
- package/transforms/multi-text-geometry-text.d.ts +4 -0
- package/transforms/swimlane.d.ts +6 -0
- package/transforms/table-text.d.ts +4 -0
- package/utils/clipboard.d.ts +2 -0
- package/utils/common.d.ts +27 -0
- package/utils/geometry.d.ts +34 -15
- package/utils/hit.d.ts +4 -2
- package/utils/index.d.ts +3 -0
- package/utils/line/line-common.d.ts +3 -3
- package/utils/memorize.d.ts +3 -1
- package/utils/multi-text-geometry.d.ts +14 -0
- package/utils/position/geometry.d.ts +8 -21
- package/utils/selected.d.ts +4 -0
- package/utils/shape.d.ts +2 -2
- package/utils/style/stroke.d.ts +4 -5
- package/utils/swimlane.d.ts +52 -0
- package/utils/table.d.ts +26 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BasicShapes, FlowchartSymbols } from '../interfaces';
|
|
1
|
+
import { BasicShapes, FlowchartSymbols, SwimlaneSymbols, TableSymbols, UMLSymbols } from '../interfaces';
|
|
2
2
|
import { CommentEngine } from './basic-shapes/comment';
|
|
3
3
|
import { CrossEngine } from './basic-shapes/cross';
|
|
4
4
|
import { DiamondEngine } from './basic-shapes/diamond';
|
|
@@ -10,7 +10,6 @@ import { ParallelogramEngine } from './basic-shapes/parallelogram';
|
|
|
10
10
|
import { PentagonEngine } from './basic-shapes/pentagon';
|
|
11
11
|
import { PentagonArrowEngine } from './basic-shapes/pentagon-arrow';
|
|
12
12
|
import { ProcessArrowEngine } from './basic-shapes/process-arrow';
|
|
13
|
-
import { RectangleEngine } from './basic-shapes/rectangle';
|
|
14
13
|
import { RightArrowEngine } from './basic-shapes/right-arrow';
|
|
15
14
|
import { RoundCommentEngine } from './basic-shapes/round-comment';
|
|
16
15
|
import { RoundRectangleEngine } from './basic-shapes/round-rectangle';
|
|
@@ -38,7 +37,14 @@ import { InternalStorageEngine } from './flowchart/internal-storage';
|
|
|
38
37
|
import { NoteCurlyLeftEngine } from './flowchart/note-curly-left';
|
|
39
38
|
import { NoteCurlyRightEngine } from './flowchart/note-curly-right';
|
|
40
39
|
import { NoteSquareEngine } from './flowchart/note-square';
|
|
41
|
-
|
|
40
|
+
import { DisplayEngine } from './flowchart/display';
|
|
41
|
+
import { TableEngine } from './table/table';
|
|
42
|
+
import { RectangleEngine } from './basic-shapes/rectangle';
|
|
43
|
+
import { ActorEngine } from './uml/actor';
|
|
44
|
+
import { ContainerEngine } from './uml/container';
|
|
45
|
+
import { PackageEngine } from './uml/package';
|
|
46
|
+
import { CombinedFragmentEngine } from './uml/combined-fragment';
|
|
47
|
+
const ShapeEngineMap = {
|
|
42
48
|
[BasicShapes.rectangle]: RectangleEngine,
|
|
43
49
|
[BasicShapes.diamond]: DiamondEngine,
|
|
44
50
|
[BasicShapes.ellipse]: EllipseEngine,
|
|
@@ -82,9 +88,18 @@ export const ShapeEngineMap = {
|
|
|
82
88
|
[FlowchartSymbols.multiDocument]: MultiDocumentEngine,
|
|
83
89
|
[FlowchartSymbols.noteCurlyLeft]: NoteCurlyLeftEngine,
|
|
84
90
|
[FlowchartSymbols.noteCurlyRight]: NoteCurlyRightEngine,
|
|
85
|
-
[FlowchartSymbols.noteSquare]: NoteSquareEngine
|
|
91
|
+
[FlowchartSymbols.noteSquare]: NoteSquareEngine,
|
|
92
|
+
[FlowchartSymbols.display]: DisplayEngine,
|
|
93
|
+
[SwimlaneSymbols.swimlaneHorizontal]: TableEngine,
|
|
94
|
+
[SwimlaneSymbols.swimlaneVertical]: TableEngine,
|
|
95
|
+
[TableSymbols.table]: TableEngine,
|
|
96
|
+
[UMLSymbols.actor]: ActorEngine,
|
|
97
|
+
[UMLSymbols.useCase]: EllipseEngine,
|
|
98
|
+
[UMLSymbols.container]: ContainerEngine,
|
|
99
|
+
[UMLSymbols.package]: PackageEngine,
|
|
100
|
+
[UMLSymbols.combinedFragment]: CombinedFragmentEngine
|
|
86
101
|
};
|
|
87
102
|
export const getEngine = (shape) => {
|
|
88
103
|
return ShapeEngineMap[shape];
|
|
89
104
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUs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QyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWM7SUFDM0MsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDckQsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDckQsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxvQkFBb0I7SUFDdkQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7Q0FDbEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtJQUMvQyxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY1NoYXBlcywgRmxvd2NoYXJ0U3ltYm9scywgR2VvbWV0cnlTaGFwZXMsIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY29tbWVudCc7XG5pbXBvcnQgeyBDcm9zc0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nyb3NzJztcbmltcG9ydCB7IERpYW1vbmRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9kaWFtb25kJztcbmltcG9ydCB7IEVsbGlwc2VFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcbmltcG9ydCB7IEhleGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9oZXhhZ29uJztcbmltcG9ydCB7IExlZnRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2xlZnQtYXJyb3cnO1xuaW1wb3J0IHsgT2N0YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL29jdGFnb24nO1xuaW1wb3J0IHsgUGFyYWxsZWxvZ3JhbUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BhcmFsbGVsb2dyYW0nO1xuaW1wb3J0IHsgUGVudGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wZW50YWdvbic7XG5pbXBvcnQgeyBQZW50YWdvbkFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24tYXJyb3cnO1xuaW1wb3J0IHsgUHJvY2Vzc0Fycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcHJvY2Vzcy1hcnJvdyc7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgUmlnaHRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JpZ2h0LWFycm93JztcbmltcG9ydCB7IFJvdW5kQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLWNvbW1lbnQnO1xuaW1wb3J0IHsgUm91bmRSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuaW1wb3J0IHsgVHJhcGV6b2lkRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJhcGV6b2lkJztcbmltcG9ydCB7IFRyaWFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJpYW5nbGUnO1xuaW1wb3J0IHsgVHdvV2F5QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90d28td2F5LWFycm93JztcbmltcG9ydCB7IFN0YXJFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9zdGFyJztcbmltcG9ydCB7IFRlcm1pbmFsRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvdGVybWluYWwnO1xuaW1wb3J0IHsgTWFudWFsSW5wdXRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtaW5wdXQnO1xuaW1wb3J0IHsgUHJlcGFyYXRpb25FbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9wcmVwYXJhdGlvbic7XG5pbXBvcnQgeyBNYW51YWxMb29wRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWFudWFsLWxvb3AnO1xuaW1wb3J0IHsgTWVyZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tZXJnZSc7XG5pbXBvcnQgeyBEZWxheUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RlbGF5JztcbmltcG9ydCB7IFN0b3JlZERhdGFFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9zdG9yZWQtZGF0YSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZWRlZmluZWQtcHJvY2Vzcyc7XG5pbXBvcnQgeyBPZmZQYWdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb2ZmLXBhZ2UnO1xuaW1wb3J0IHsgQ2xvdWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jbG91ZCc7XG5pbXBvcnQgeyBPckVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L29yJztcbmltcG9ydCB7IFN1bW1pbmdKdW5jdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24nO1xuaW1wb3J0IHsgRG9jdW1lbnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kb2N1bWVudCc7XG5pbXBvcnQgeyBNdWx0aURvY3VtZW50RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbXVsdGktZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGF0YWJhc2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kYXRhYmFzZSc7XG5pbXBvcnQgeyBIYXJkRGlza0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2hhcmQtZGlzayc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JhZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9pbnRlcm5hbC1zdG9yYWdlJztcbmltcG9ydCB7IE5vdGVDdXJseUxlZnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LWxlZnQnO1xuaW1wb3J0IHsgTm90ZUN1cmx5UmlnaHRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LXJpZ2h0JztcbmltcG9ydCB7IE5vdGVTcXVhcmVFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLXNxdWFyZSc7XG5cbmV4cG9ydCBjb25zdCBTaGFwZUVuZ2luZU1hcDogUmVjb3JkPEdlb21ldHJ5U2hhcGVzLCBTaGFwZUVuZ2luZT4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnJlY3RhbmdsZV06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuZGlhbW9uZF06IERpYW1vbmRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmVsbGlwc2VdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wYXJhbGxlbG9ncmFtXTogUGFyYWxsZWxvZ3JhbUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRSZWN0YW5nbGVdOiBSb3VuZFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudGV4dF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJpYW5nbGVdOiBUcmlhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogTGVmdEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50cmFwZXpvaWRdOiBUcmFwZXpvaWRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBSaWdodEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jcm9zc106IENyb3NzRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5zdGFyXTogU3RhckVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25dOiBQZW50YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuaGV4YWdvbl06IEhleGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLm9jdGFnb25dOiBPY3RhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogUGVudGFnb25BcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogUHJvY2Vzc0Fycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IFR3b1dheUFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jb21tZW50XTogQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRDb21tZW50XTogUm91bmRDb21tZW50RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IENsb3VkRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEaWFtb25kRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IEVsbGlwc2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBUZXJtaW5hbEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERhdGFiYXNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogSGFyZERpc2tFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogSW50ZXJuYWxTdG9yYWdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogTWFudWFsSW5wdXRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBQcmVwYXJhdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogTWFudWFsTG9vcEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IE1lcmdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVsYXlFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IFN0b3JlZERhdGFFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBPckVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBTdW1taW5nSnVuY3Rpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogT2ZmUGFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBNdWx0aURvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBOb3RlQ3VybHlMZWZ0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogTm90ZUN1cmx5UmlnaHRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IE5vdGVTcXVhcmVFbmdpbmVcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmdpbmUgPSAoc2hhcGU6IEdlb21ldHJ5U2hhcGVzKSA9PiB7XG4gICAgcmV0dXJuIFNoYXBlRW5naW5lTWFwW3NoYXBlXTtcbn07XG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBR1gsZ0JBQWdCLEVBR2hCLGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFB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QU0sU0FBUyxHQUFHLENBS3JCLEtBQWlCLEVBQ0csRUFBRTtJQUN0QixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJhc2ljU2hhcGVzLFxuICAgIERyYXdTaGFwZXMsXG4gICAgRW5naW5lRXh0cmFEYXRhLFxuICAgIEZsb3djaGFydFN5bWJvbHMsXG4gICAgUGxhaXRHZW9tZXRyeSxcbiAgICBTaGFwZUVuZ2luZSxcbiAgICBTd2ltbGFuZVN5bWJvbHMsXG4gICAgVGFibGVTeW1ib2xzLFxuICAgIFVNTFN5bWJvbHNcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY29tbWVudCc7XG5pbXBvcnQgeyBDcm9zc0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nyb3NzJztcbmltcG9ydCB7IERpYW1vbmRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9kaWFtb25kJztcbmltcG9ydCB7IEVsbGlwc2VFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcbmltcG9ydCB7IEhleGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9oZXhhZ29uJztcbmltcG9ydCB7IExlZnRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2xlZnQtYXJyb3cnO1xuaW1wb3J0IHsgT2N0YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL29jdGFnb24nO1xuaW1wb3J0IHsgUGFyYWxsZWxvZ3JhbUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BhcmFsbGVsb2dyYW0nO1xuaW1wb3J0IHsgUGVudGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wZW50YWdvbic7XG5pbXBvcnQgeyBQZW50YWdvbkFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24tYXJyb3cnO1xuaW1wb3J0IHsgUHJvY2Vzc0Fycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcHJvY2Vzcy1hcnJvdyc7XG5pbXBvcnQgeyBSaWdodEFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcmlnaHQtYXJyb3cnO1xuaW1wb3J0IHsgUm91bmRDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcm91bmQtY29tbWVudCc7XG5pbXBvcnQgeyBSb3VuZFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLXJlY3RhbmdsZSc7XG5pbXBvcnQgeyBUcmFwZXpvaWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90cmFwZXpvaWQnO1xuaW1wb3J0IHsgVHJpYW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90cmlhbmdsZSc7XG5pbXBvcnQgeyBUd29XYXlBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3R3by13YXktYXJyb3cnO1xuaW1wb3J0IHsgU3RhckVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3N0YXInO1xuaW1wb3J0IHsgVGVybWluYWxFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC90ZXJtaW5hbCc7XG5pbXBvcnQgeyBNYW51YWxJbnB1dEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L21hbnVhbC1pbnB1dCc7XG5pbXBvcnQgeyBQcmVwYXJhdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZXBhcmF0aW9uJztcbmltcG9ydCB7IE1hbnVhbExvb3BFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtbG9vcCc7XG5pbXBvcnQgeyBNZXJnZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L21lcmdlJztcbmltcG9ydCB7IERlbGF5RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZGVsYXknO1xuaW1wb3J0IHsgU3RvcmVkRGF0YUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N0b3JlZC1kYXRhJztcbmltcG9ydCB7IFByZWRlZmluZWRQcm9jZXNzRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvcHJlZGVmaW5lZC1wcm9jZXNzJztcbmltcG9ydCB7IE9mZlBhZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9vZmYtcGFnZSc7XG5pbXBvcnQgeyBDbG91ZEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nsb3VkJztcbmltcG9ydCB7IE9yRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb3InO1xuaW1wb3J0IHsgU3VtbWluZ0p1bmN0aW9uRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvc3VtbWluZy1qdW5jdGlvbic7XG5pbXBvcnQgeyBEb2N1bWVudEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RvY3VtZW50JztcbmltcG9ydCB7IE11bHRpRG9jdW1lbnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tdWx0aS1kb2N1bWVudCc7XG5pbXBvcnQgeyBEYXRhYmFzZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RhdGFiYXNlJztcbmltcG9ydCB7IEhhcmREaXNrRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvaGFyZC1kaXNrJztcbmltcG9ydCB7IEludGVybmFsU3RvcmFnZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2ludGVybmFsLXN0b3JhZ2UnO1xuaW1wb3J0IHsgTm90ZUN1cmx5TGVmdEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtY3VybHktbGVmdCc7XG5pbXBvcnQgeyBOb3RlQ3VybHlSaWdodEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtY3VybHktcmlnaHQnO1xuaW1wb3J0IHsgTm90ZVNxdWFyZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtc3F1YXJlJztcbmltcG9ydCB7IERpc3BsYXlFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kaXNwbGF5JztcbmltcG9ydCB7IFRhYmxlRW5naW5lIH0gZnJvbSAnLi90YWJsZS90YWJsZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWN0b3JFbmdpbmUgfSBmcm9tICcuL3VtbC9hY3Rvcic7XG5pbXBvcnQgeyBDb250YWluZXJFbmdpbmUgfSBmcm9tICcuL3VtbC9jb250YWluZXInO1xuaW1wb3J0IHsgUGFja2FnZUVuZ2luZSB9IGZyb20gJy4vdW1sL3BhY2thZ2UnO1xuaW1wb3J0IHsgQ29tYmluZWRGcmFnbWVudEVuZ2luZSB9IGZyb20gJy4vdW1sL2NvbWJpbmVkLWZyYWdtZW50JztcblxuY29uc3QgU2hhcGVFbmdpbmVNYXA6IFJlY29yZDxEcmF3U2hhcGVzLCBTaGFwZUVuZ2luZTxhbnksIGFueSwgYW55Pj4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnJlY3RhbmdsZV06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuZGlhbW9uZF06IERpYW1vbmRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmVsbGlwc2VdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wYXJhbGxlbG9ncmFtXTogUGFyYWxsZWxvZ3JhbUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRSZWN0YW5nbGVdOiBSb3VuZFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudGV4dF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJpYW5nbGVdOiBUcmlhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogTGVmdEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50cmFwZXpvaWRdOiBUcmFwZXpvaWRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBSaWdodEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jcm9zc106IENyb3NzRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5zdGFyXTogU3RhckVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25dOiBQZW50YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuaGV4YWdvbl06IEhleGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLm9jdGFnb25dOiBPY3RhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogUGVudGFnb25BcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogUHJvY2Vzc0Fycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IFR3b1dheUFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jb21tZW50XTogQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRDb21tZW50XTogUm91bmRDb21tZW50RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IENsb3VkRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEaWFtb25kRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IEVsbGlwc2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBUZXJtaW5hbEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERhdGFiYXNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogSGFyZERpc2tFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogSW50ZXJuYWxTdG9yYWdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogTWFudWFsSW5wdXRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBQcmVwYXJhdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogTWFudWFsTG9vcEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IE1lcmdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVsYXlFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IFN0b3JlZERhdGFFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBPckVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBTdW1taW5nSnVuY3Rpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogT2ZmUGFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBNdWx0aURvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBOb3RlQ3VybHlMZWZ0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogTm90ZUN1cmx5UmlnaHRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IE5vdGVTcXVhcmVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGlzcGxheV06IERpc3BsYXlFbmdpbmUsXG4gICAgW1N3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbVGFibGVTeW1ib2xzLnRhYmxlXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYWN0b3JdOiBBY3RvckVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy51c2VDYXNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb250YWluZXJdOiBDb250YWluZXJFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucGFja2FnZV06IFBhY2thZ2VFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF06IENvbWJpbmVkRnJhZ21lbnRFbmdpbmVcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmdpbmUgPSA8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnksXG4gICAgUCBleHRlbmRzIEVuZ2luZUV4dHJhRGF0YSA9IEVuZ2luZUV4dHJhRGF0YSxcbiAgICBLIGV4dGVuZHMgRW5naW5lRXh0cmFEYXRhID0gRW5naW5lRXh0cmFEYXRhXG4+KFxuICAgIHNoYXBlOiBEcmF3U2hhcGVzXG4pOiBTaGFwZUVuZ2luZTxULCBQLCBLPiA9PiB7XG4gICAgcmV0dXJuIFNoYXBlRW5naW5lTWFwW3NoYXBlXTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, createG, drawLine } from '@plait/core';
|
|
2
|
+
import { getCellsWithPoints, getCellWithPoints } from '../../utils/table';
|
|
3
|
+
import { PlaitTableElement } from '../../interfaces/table';
|
|
4
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
5
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
+
import { getNearestPointBetweenPointAndRoundRectangle, getRoundRectangleRadius } from '../basic-shapes/round-rectangle';
|
|
7
|
+
export const TableEngine = {
|
|
8
|
+
draw(board, rectangle, roughOptions, options) {
|
|
9
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
10
|
+
const g = createG();
|
|
11
|
+
const { x, y, width, height } = rectangle;
|
|
12
|
+
const tableTopBorder = drawLine(rs, [x, y], [x + width, y], roughOptions);
|
|
13
|
+
const tableLeftBorder = drawLine(rs, [x, y], [x, y + height], roughOptions);
|
|
14
|
+
g.append(tableTopBorder, tableLeftBorder);
|
|
15
|
+
const pointCells = getCellsWithPoints(board, { ...options?.element });
|
|
16
|
+
pointCells.forEach(cell => {
|
|
17
|
+
const rectangle = RectangleClient.getRectangleByPoints(cell.points);
|
|
18
|
+
const { x, y, width, height } = rectangle;
|
|
19
|
+
const cellRightBorder = drawLine(rs, [x + width, y], [x + width, y + height], roughOptions);
|
|
20
|
+
const cellBottomBorder = drawLine(rs, [x, y + height], [x + width, y + height], roughOptions);
|
|
21
|
+
g.append(cellRightBorder, cellBottomBorder);
|
|
22
|
+
});
|
|
23
|
+
return g;
|
|
24
|
+
},
|
|
25
|
+
isInsidePoint(rectangle, point) {
|
|
26
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
27
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
28
|
+
},
|
|
29
|
+
getCornerPoints(rectangle) {
|
|
30
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
31
|
+
},
|
|
32
|
+
getNearestPoint(rectangle, point) {
|
|
33
|
+
return getNearestPointBetweenPointAndRoundRectangle(point, rectangle, getRoundRectangleRadius(rectangle));
|
|
34
|
+
},
|
|
35
|
+
getConnectorPoints(rectangle) {
|
|
36
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
37
|
+
},
|
|
38
|
+
getTextRectangle(element, options) {
|
|
39
|
+
const cell = getCellWithPoints(options?.board, element, options.key);
|
|
40
|
+
if (PlaitTableElement.isVerticalText(cell)) {
|
|
41
|
+
return getVerticalTextRectangle(cell);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return getHorizontalTextRectangle(cell);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export function getVerticalTextRectangle(cell) {
|
|
49
|
+
const cellRectangle = RectangleClient.getRectangleByPoints(cell.points);
|
|
50
|
+
const strokeWidth = getStrokeWidthByElement(cell);
|
|
51
|
+
const height = cell.textHeight || 0;
|
|
52
|
+
const width = cellRectangle.height - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
53
|
+
return {
|
|
54
|
+
width: width > 0 ? width : 0,
|
|
55
|
+
height,
|
|
56
|
+
x: cellRectangle.x - width / 2 + cellRectangle.width / 2,
|
|
57
|
+
y: cellRectangle.y + (cellRectangle.height - height) / 2
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function getHorizontalTextRectangle(cell) {
|
|
61
|
+
const cellRectangle = RectangleClient.getRectangleByPoints(cell.points);
|
|
62
|
+
const strokeWidth = getStrokeWidthByElement(cell);
|
|
63
|
+
const height = cell.textHeight || 0;
|
|
64
|
+
const width = cellRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
65
|
+
return {
|
|
66
|
+
height,
|
|
67
|
+
width: width > 0 ? width : 0,
|
|
68
|
+
x: cellRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
69
|
+
y: cellRectangle.y + (cellRectangle.height - height) / 2
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUUsT0FBTyxFQUErRCxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNENBQTRDLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4SCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQXVFO0lBQzNGLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsWUFBcUIsRUFBRSxPQUErQjtRQUN0RyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFDMUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMs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Q2xpZW50LCBQb2ludCwgY3JlYXRlRywgZHJhd0xpbmUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRDZWxsc1dpdGhQb2ludHMsIGdldENlbGxXaXRoUG9pbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFibGUnO1xuaW1wb3J0IHsgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUYWJsZSwgUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIFBsYWl0VGFibGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFJvdW5kUmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuXG5leHBvcnQgY29uc3QgVGFibGVFbmdpbmU6IFNoYXBlRW5naW5lPFBsYWl0VGFibGUsIFBsYWl0VGFibGVEcmF3T3B0aW9ucywgUGxhaXREcmF3U2hhcGVUZXh0PiA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcm91Z2hPcHRpb25zOiBPcHRpb25zLCBvcHRpb25zPzogUGxhaXRUYWJsZURyYXdPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gcmVjdGFuZ2xlO1xuICAgICAgICBjb25zdCB0YWJsZVRvcEJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeV0sIFt4ICsgd2lkdGgsIHldLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgIGcuYXBwZW5kKHRhYmxlVG9wQm9yZGVyLCB0YWJsZUxlZnRCb3JkZXIpO1xuICAgICAgICBjb25zdCBwb2ludENlbGxzID0gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkLCB7IC4uLm9wdGlvbnM/LmVsZW1lbnQgfSBhcyBQbGFpdFRhYmxlKTtcbiAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzISk7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IHJlY3RhbmdsZTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxSaWdodEJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCArIHdpZHRoLCB5XSwgW3ggKyB3aWR0aCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBjZWxsQm90dG9tQm9yZGVyID0gZHJhd0xpbmUocnMsIFt4LCB5ICsgaGVpZ2h0XSwgW3ggKyB3aWR0aCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICBnLmFwcGVuZChjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGc7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kUm91bmRSZWN0YW5nbGUocG9pbnQsIHJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0VGFibGUsIG9wdGlvbnM/OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdldENlbGxXaXRoUG9pbnRzKG9wdGlvbnM/LmJvYXJkISwgZWxlbWVudCwgb3B0aW9ucyEua2V5KTtcbiAgICAgICAgaWYgKFBsYWl0VGFibGVFbGVtZW50LmlzVmVydGljYWxUZXh0KGNlbGwpKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmVydGljYWxUZXh0UmVjdGFuZ2xlKGNlbGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdldEhvcml6b250YWxUZXh0UmVjdGFuZ2xlKGNlbGwpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCAtIHdpZHRoIC8gMiArIGNlbGxSZWN0YW5nbGUud2lkdGggLyAyLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS53aWR0aCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgeDogY2VsbFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getEllipseTangentSlope, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
+
import { getUnitVectorByPointAndPoint, rotateVector } from '@plait/common';
|
|
4
|
+
export const ActorEngine = {
|
|
5
|
+
draw(board, rectangle, options) {
|
|
6
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
+
const shape = rs.path(`M${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height / 4}
|
|
8
|
+
A${rectangle.width / 3 / 2} ${rectangle.height / 4 / 2}, 0, 0, 1, ${rectangle.x + rectangle.width / 2} ${rectangle.y}
|
|
9
|
+
A${rectangle.width / 3 / 2} ${rectangle.height / 4 / 2}, 0, 0, 1, ${rectangle.x + rectangle.width / 2} ${rectangle.y +
|
|
10
|
+
rectangle.height / 4}
|
|
11
|
+
V${rectangle.y + (rectangle.height / 4) * 3}
|
|
12
|
+
M${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height / 2} H${rectangle.x}
|
|
13
|
+
M${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height / 2} H${rectangle.x + rectangle.width}
|
|
14
|
+
M${rectangle.x + rectangle.width / 2} ${rectangle.y + (rectangle.height / 4) * 3}
|
|
15
|
+
L${rectangle.x + rectangle.width / 12} ${rectangle.y + rectangle.height}
|
|
16
|
+
M${rectangle.x + rectangle.width / 2} ${rectangle.y + (rectangle.height / 4) * 3}
|
|
17
|
+
L${rectangle.x + (rectangle.width / 12) * 11} ${rectangle.y + rectangle.height}
|
|
18
|
+
`, { ...options, fillStyle: 'solid' });
|
|
19
|
+
setStrokeLinecap(shape, 'round');
|
|
20
|
+
return shape;
|
|
21
|
+
},
|
|
22
|
+
isInsidePoint(rectangle, point) {
|
|
23
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
24
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
25
|
+
},
|
|
26
|
+
getCornerPoints(rectangle) {
|
|
27
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
28
|
+
},
|
|
29
|
+
getNearestPoint(rectangle, point) {
|
|
30
|
+
let nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
31
|
+
if (nearestPoint[1] >= rectangle.y && nearestPoint[1] <= rectangle.y + rectangle.height / 4) {
|
|
32
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 4 / 2];
|
|
33
|
+
nearestPoint = getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 3 / 2, rectangle.height / 4 / 2);
|
|
34
|
+
return nearestPoint;
|
|
35
|
+
}
|
|
36
|
+
if (nearestPoint[1] >= rectangle.y + rectangle.height / 4 && nearestPoint[1] < rectangle.y + (rectangle.height / 4) * 3) {
|
|
37
|
+
if (nearestPoint[1] === rectangle.x + rectangle.width / 2) {
|
|
38
|
+
nearestPoint = getNearestPointBetweenPointAndSegments(point, [
|
|
39
|
+
[rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 4],
|
|
40
|
+
[rectangle.x + rectangle.width / 2, rectangle.y + (rectangle.height / 4) * 3]
|
|
41
|
+
]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
nearestPoint = getNearestPointBetweenPointAndSegments(point, [
|
|
45
|
+
[rectangle.x, rectangle.y + rectangle.height / 2],
|
|
46
|
+
[rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2]
|
|
47
|
+
]);
|
|
48
|
+
}
|
|
49
|
+
return nearestPoint;
|
|
50
|
+
}
|
|
51
|
+
nearestPoint = getNearestPointBetweenPointAndSegments(point, [
|
|
52
|
+
[rectangle.x + rectangle.width / 12, rectangle.y + rectangle.height],
|
|
53
|
+
[rectangle.x + rectangle.width / 2, rectangle.y + (rectangle.height / 4) * 3],
|
|
54
|
+
[rectangle.x + (rectangle.width / 12) * 11, rectangle.y + rectangle.height]
|
|
55
|
+
]);
|
|
56
|
+
return nearestPoint;
|
|
57
|
+
},
|
|
58
|
+
getConnectorPoints(rectangle) {
|
|
59
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
60
|
+
},
|
|
61
|
+
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
62
|
+
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
63
|
+
if (connectionPoint[1] >= rectangle.y && connectionPoint[1] <= rectangle.y + rectangle.height / 4) {
|
|
64
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 4 / 2];
|
|
65
|
+
const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
|
|
66
|
+
const a = rectangle.width / 2;
|
|
67
|
+
const b = rectangle.height / 2;
|
|
68
|
+
const slope = getEllipseTangentSlope(point[0], point[1], a, b);
|
|
69
|
+
const vector = getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
70
|
+
return vector;
|
|
71
|
+
}
|
|
72
|
+
if (connectionPoint[1] >= rectangle.y + rectangle.height / 4 && connectionPoint[1] < rectangle.y + (rectangle.height / 4) * 3) {
|
|
73
|
+
if (connectionPoint[0] < rectangle.x + rectangle.width / 2) {
|
|
74
|
+
return rotateVector(getUnitVectorByPointAndPoint([rectangle.x, rectangle.y + rectangle.height / 2], connectionPoint), -(Math.PI / 2));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return rotateVector(getUnitVectorByPointAndPoint([rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2], connectionPoint), -(Math.PI / 2));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (connectionPoint[1] >= rectangle.y + (rectangle.height / 4) * 3) {
|
|
81
|
+
if (connectionPoint[0] < rectangle.x + rectangle.width / 2) {
|
|
82
|
+
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x + rectangle.width / 12, rectangle.y + rectangle.height]);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return getUnitVectorByPointAndPoint([rectangle.x + (rectangle.width / 12) * 11, rectangle.y + rectangle.height], connectionPoint);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x + rectangle.width / 4, rectangle.y + rectangle.height]);
|
|
89
|
+
},
|
|
90
|
+
getTextRectangle: (element) => {
|
|
91
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
92
|
+
const height = element.textHeight;
|
|
93
|
+
const width = elementRectangle.width + 40;
|
|
94
|
+
return {
|
|
95
|
+
height,
|
|
96
|
+
width: width > 0 ? width : 0,
|
|
97
|
+
x: elementRectangle.x - 20,
|
|
98
|
+
y: elementRectangle.y + elementRectangle.height + 4
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9hY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBZ0I7SUFDcEMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztlQUN4RSxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFjLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7ZUFDakgsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1lBQ2hILFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztlQUNyQixTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO2VBQ3hDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztlQUN2RixTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSztlQUN6RyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7ZUFDN0UsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO2VBQ3BFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztlQUM3RSxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTthQUM3RSxFQUNELEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUNyQyxDQUFDO1FBQ0Ys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LE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFPLENBQUMsQ0FBQztRQUMvRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVyxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDMUMsT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBRTtZQUMxQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDO1NBQ3RELENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBXLFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBnZXRWZWN0b3JGcm9tUG9pbnRBbmRTbG9wZSxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcmVjdGFuZ2xlJztcbmltcG9ydCB7IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQsIHJvdGF0ZVZlY3RvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgQWN0b3JFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDJ9ICR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gNH0gIFxuICAgICAgICAgICAgQSR7cmVjdGFuZ2xlLndpZHRoIC8gMyAvIDJ9ICR7cmVjdGFuZ2xlLmhlaWdodCAvIDQgLyAyfSwgMCwgMCwgMSwgJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDJ9ICR7cmVjdGFuZ2xlLnl9IFxuICAgICAgICAgICAgQSR7cmVjdGFuZ2xlLndpZHRoIC8gMyAvIDJ9ICR7cmVjdGFuZ2xlLmhlaWdodCAvIDQgLyAyfSwgMCwgMCwgMSwgJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDJ9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHQgLyA0fVxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnkgKyAocmVjdGFuZ2xlLmhlaWdodCAvIDQpICogM31cbiAgICAgICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyfSBIJHtyZWN0YW5nbGUueH1cbiAgICAgICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyfSBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH1cbiAgICAgICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueSArIChyZWN0YW5nbGUuaGVpZ2h0IC8gNCkgKiAzfVxuICAgICAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBNJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDJ9ICR7cmVjdGFuZ2xlLnkgKyAocmVjdGFuZ2xlLmhlaWdodCAvIDQpICogM31cbiAgICAgICAgICAgIEwke3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAvIDEyKSAqIDExfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgICAgIGAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBsZXQgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG5cbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFsxXSA+PSByZWN0YW5nbGUueSAmJiBuZWFyZXN0UG9pbnRbMV0gPD0gcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gNCkge1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gNCAvIDJdO1xuICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZShwb2ludCwgY2VudGVyUG9pbnQsIHJlY3RhbmdsZS53aWR0aCAvIDMgLyAyLCByZWN0YW5nbGUuaGVpZ2h0IC8gNCAvIDIpO1xuICAgICAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmVhcmVzdFBvaW50WzFdID49IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDQgJiYgbmVhcmVzdFBvaW50WzFdIDwgcmVjdGFuZ2xlLnkgKyAocmVjdGFuZ2xlLmhlaWdodCAvIDQpICogMykge1xuICAgICAgICAgICAgaWYgKG5lYXJlc3RQb2ludFsxXSA9PT0gcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyKSB7XG4gICAgICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFtcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gNF0sXG4gICAgICAgICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgKHJlY3RhbmdsZS5oZWlnaHQgLyA0KSAqIDNdXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBbXG4gICAgICAgICAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl1cbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICAgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFtcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDEyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyAocmVjdGFuZ2xlLmhlaWdodCAvIDQpICogM10sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoIC8gMTIpICogMTEsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF1cbiAgICAgICAgXSk7XG4gICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcblxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMV0gPj0gcmVjdGFuZ2xlLnkgJiYgY29ubmVjdGlvblBvaW50WzFdIDw9IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50OiBQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDQgLyAyXTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gW2Nvbm5lY3Rpb25Qb2ludFswXSAtIGNlbnRlclBvaW50WzBdLCAtKGNvbm5lY3Rpb25Qb2ludFsxXSAtIGNlbnRlclBvaW50WzFdKV07XG4gICAgICAgICAgICBjb25zdCBhID0gcmVjdGFuZ2xlLndpZHRoIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGIgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNvbnN0IHNsb3BlID0gZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZShwb2ludFswXSwgcG9pbnRbMV0sIGEsIGIpIGFzIGFueTtcbiAgICAgICAgICAgIGNvbnN0IHZlY3RvciA9IGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgc2xvcGUpO1xuICAgICAgICAgICAgcmV0dXJuIHZlY3RvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMV0gPj0gcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gNCAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPCByZWN0YW5nbGUueSArIChyZWN0YW5nbGUuaGVpZ2h0IC8gNCkgKiAzKSB7XG4gICAgICAgICAgICBpZiAoY29ubmVjdGlvblBvaW50WzBdIDwgcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdGF0ZVZlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLCBjb25uZWN0aW9uUG9pbnQpLFxuICAgICAgICAgICAgICAgICAgICAtKE1hdGguUEkgLyAyKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByb3RhdGVWZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQoW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSwgY29ubmVjdGlvblBvaW50KSxcbiAgICAgICAgICAgICAgICAgICAgLShNYXRoLlBJIC8gMilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbm5lY3Rpb25Qb2ludFsxXSA+PSByZWN0YW5nbGUueSArIChyZWN0YW5nbGUuaGVpZ2h0IC8gNCkgKiAzKSB7XG4gICAgICAgICAgICBpZiAoY29ubmVjdGlvblBvaW50WzBdIDwgcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQoY29ubmVjdGlvblBvaW50LCBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoIC8gMTIpICogMTEsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25Qb2ludFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChjb25uZWN0aW9uUG9pbnQsIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDQsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0pO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQhO1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKyA0MDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggLSAyMCxcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0ICsgNFxuICAgICAgICB9O1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { MultipleTextGeometryCommonTextKeys } from '../../interfaces';
|
|
3
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
4
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
5
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
6
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
7
|
+
export const CombinedFragmentEngine = {
|
|
8
|
+
draw(board, rectangle, options) {
|
|
9
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
10
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y + 25}
|
|
11
|
+
V${rectangle.y}
|
|
12
|
+
H${rectangle.x + rectangle.width}
|
|
13
|
+
V${rectangle.y + rectangle.height}
|
|
14
|
+
H${rectangle.x}
|
|
15
|
+
V${rectangle.y + 25}
|
|
16
|
+
H${rectangle.x + rectangle.width / 3 - 8}
|
|
17
|
+
L${rectangle.x + rectangle.width / 3} ${rectangle.y + 16}
|
|
18
|
+
V${rectangle.y}
|
|
19
|
+
`, { ...options, fillStyle: 'solid' });
|
|
20
|
+
setStrokeLinecap(shape, 'round');
|
|
21
|
+
return shape;
|
|
22
|
+
},
|
|
23
|
+
isInsidePoint(rectangle, point) {
|
|
24
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
25
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
26
|
+
},
|
|
27
|
+
getCornerPoints(rectangle) {
|
|
28
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
29
|
+
},
|
|
30
|
+
getNearestPoint(rectangle, point) {
|
|
31
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
32
|
+
},
|
|
33
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
34
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
35
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
36
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
37
|
+
},
|
|
38
|
+
getConnectorPoints(rectangle) {
|
|
39
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
40
|
+
},
|
|
41
|
+
getTextRectangle(element, options) {
|
|
42
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
43
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
44
|
+
const textHeight = element.texts?.find(item => item.key === options?.key)?.textHeight;
|
|
45
|
+
if (options?.key === MultipleTextGeometryCommonTextKeys.name) {
|
|
46
|
+
const width = elementRectangle.width / 3 - 8 - ShapeDefaultSpace.rectangleAndText - strokeWidth;
|
|
47
|
+
return {
|
|
48
|
+
height: textHeight,
|
|
49
|
+
width: width > 0 ? width : 0,
|
|
50
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
51
|
+
y: elementRectangle.y + (25 - textHeight) / 2
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (options?.key === MultipleTextGeometryCommonTextKeys.content) {
|
|
55
|
+
const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
56
|
+
return {
|
|
57
|
+
height: textHeight,
|
|
58
|
+
width: width > 0 ? width : 0,
|
|
59
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
60
|
+
y: elementRectangle.y + 25 + ShapeDefaultSpace.rectangleAndText + strokeWidth
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return elementRectangle;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZWQtZnJhZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9jb21iaW5lZC1mcmFnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixzQ0FBc0MsRUFDdEMsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQ0FBa0MsRUFBMEMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3BELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtRTtJQUNsRyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5QixTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQixTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7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LEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztnQkFDeEUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVzthQUNoRixDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgQ29tYmluZWRGcmFnbWVudEVuZ2luZTogU2hhcGVFbmdpbmU8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwge30sIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgMjV9IFxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnl9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gXG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueH1cbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgMjV9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDMgLSA4fVxuICAgICAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAzfSAke3JlY3RhbmdsZS55ICsgMTZ9XG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueX1cbiAgICAgICAgICAgIGAsXG5cbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG5cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgb3B0aW9ucz86IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHRleHRIZWlnaHQgPSBlbGVtZW50LnRleHRzPy5maW5kKGl0ZW0gPT4gaXRlbS5rZXkgPT09IG9wdGlvbnM/LmtleSk/LnRleHRIZWlnaHQhO1xuICAgICAgICBpZiAob3B0aW9ucz8ua2V5ID09PSBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudFJlY3RhbmdsZS53aWR0aCAvIDMgLSA4IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKDI1IC0gdGV4dEhlaWdodCkgLyAyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy5rZXkgPT09IE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMuY29udGVudCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dEhlaWdodCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAyNSArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudFJlY3RhbmdsZTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
3
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
4
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
5
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
+
export const ContainerEngine = {
|
|
7
|
+
draw(board, rectangle, options) {
|
|
8
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
9
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y} H${rectangle.x + rectangle.width} V${rectangle.y + rectangle.height} H${rectangle.x} Z M${rectangle.x + 40} ${rectangle.y} L${rectangle.x + 40} ${rectangle.y + rectangle.height} `, { ...options, fillStyle: 'solid' });
|
|
10
|
+
setStrokeLinecap(shape, 'round');
|
|
11
|
+
return shape;
|
|
12
|
+
},
|
|
13
|
+
isInsidePoint(rectangle, point) {
|
|
14
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
15
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
16
|
+
},
|
|
17
|
+
getCornerPoints(rectangle) {
|
|
18
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
19
|
+
},
|
|
20
|
+
getNearestPoint(rectangle, point) {
|
|
21
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
22
|
+
},
|
|
23
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
24
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
25
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
26
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
27
|
+
},
|
|
28
|
+
getConnectorPoints(rectangle) {
|
|
29
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
30
|
+
},
|
|
31
|
+
getTextRectangle(element) {
|
|
32
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
33
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
34
|
+
const height = element.textHeight;
|
|
35
|
+
const width = 40 - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
36
|
+
return {
|
|
37
|
+
height,
|
|
38
|
+
width: width > 0 ? width : 0,
|
|
39
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
40
|
+
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWdCO0lBQ3hDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNqQixJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxLQUMvRixTQUFTLENBQUMsQ0FDZCxPQUFPLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQ2hHLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUNyQyxDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ2xELE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsT0FBTyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFDRCx3QkFBd0IsQ0FBQyxTQUEwQixFQUFFLGdCQUFrQztRQUNuRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxPQUFPLCtCQUErQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBMEI7UUFDekMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGdCQUFnQixDQUFDLE9BQXNCO1FBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFPLENBQUMsQ0FBQztRQUMvRSxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVyxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUM1RSxPQUFPO1lBQ0gsTUFBTTtZQUNOLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO1lBQ3hFLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNqRSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IENvbnRhaW5lckVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55fSBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gViR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0fSBIJHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUueFxuICAgICAgICAgICAgfSBaIE0ke3JlY3RhbmdsZS54ICsgNDB9ICR7cmVjdGFuZ2xlLnl9IEwke3JlY3RhbmdsZS54ICsgNDB9ICR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0fSBgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpOiBbUG9pbnQsIFBvaW50XSB8IG51bGwge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC50ZXh0SGVpZ2h0ITtcbiAgICAgICAgY29uc3Qgd2lkdGggPSA0MCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { getUnitVectorByPointAndPoint } from '@plait/common';
|
|
3
|
+
import { MultipleTextGeometryCommonTextKeys } from '../../interfaces';
|
|
4
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
5
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
6
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
7
|
+
export const PackageEngine = {
|
|
8
|
+
draw(board, rectangle, options) {
|
|
9
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
10
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y + 25}
|
|
11
|
+
V${rectangle.y}
|
|
12
|
+
H${rectangle.x + rectangle.width * 0.7}
|
|
13
|
+
L${rectangle.x + rectangle.width * 0.8} ${rectangle.y + 25}
|
|
14
|
+
H${rectangle.x + rectangle.width}
|
|
15
|
+
V${rectangle.y + rectangle.height}
|
|
16
|
+
H${rectangle.x}
|
|
17
|
+
V${rectangle.y + 25}
|
|
18
|
+
H${rectangle.x + rectangle.width * 0.8}`, { ...options, fillStyle: 'solid' });
|
|
19
|
+
setStrokeLinecap(shape, 'round');
|
|
20
|
+
return shape;
|
|
21
|
+
},
|
|
22
|
+
isInsidePoint(rectangle, point) {
|
|
23
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
24
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
25
|
+
},
|
|
26
|
+
getCornerPoints(rectangle) {
|
|
27
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
28
|
+
},
|
|
29
|
+
getNearestPoint(rectangle, point) {
|
|
30
|
+
let nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
31
|
+
if (nearestPoint[0] > rectangle.x + rectangle.width * 0.7 && nearestPoint[1] <= rectangle.y + 25) {
|
|
32
|
+
nearestPoint = getNearestPointBetweenPointAndSegments(point, [
|
|
33
|
+
[rectangle.x + rectangle.width * 0.7, rectangle.y],
|
|
34
|
+
[rectangle.x + rectangle.width * 0.8, rectangle.y + 25],
|
|
35
|
+
[rectangle.x + rectangle.width, rectangle.y + 25]
|
|
36
|
+
], false);
|
|
37
|
+
}
|
|
38
|
+
return nearestPoint;
|
|
39
|
+
},
|
|
40
|
+
getConnectorPoints(rectangle) {
|
|
41
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
42
|
+
},
|
|
43
|
+
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
44
|
+
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
45
|
+
if (connectionPoint[0] > rectangle.x + rectangle.width * 0.7 && connectionPoint[1] < rectangle.y + 25) {
|
|
46
|
+
return getUnitVectorByPointAndPoint([rectangle.x + rectangle.width * 0.7, rectangle.y], connectionPoint);
|
|
47
|
+
}
|
|
48
|
+
return getUnitVectorByPointAndPoint([rectangle.x + rectangle.width * 0.8, rectangle.y + 25], connectionPoint);
|
|
49
|
+
},
|
|
50
|
+
getTextRectangle(element, options) {
|
|
51
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
52
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
53
|
+
const textHeight = element.texts?.find(item => item.key === options?.key)?.textHeight;
|
|
54
|
+
if (options?.key === MultipleTextGeometryCommonTextKeys.name) {
|
|
55
|
+
const width = elementRectangle.width * 0.7 - ShapeDefaultSpace.rectangleAndText - strokeWidth;
|
|
56
|
+
return {
|
|
57
|
+
height: textHeight,
|
|
58
|
+
width: width > 0 ? width : 0,
|
|
59
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
60
|
+
y: elementRectangle.y + (25 - textHeight) / 2
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (options?.key === MultipleTextGeometryCommonTextKeys.content) {
|
|
64
|
+
const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
65
|
+
return {
|
|
66
|
+
height: textHeight,
|
|
67
|
+
width: width > 0 ? width : 0,
|
|
68
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
69
|
+
y: elementRectangle.y + 25 + (elementRectangle.height - 25 - textHeight) / 2
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return elementRectangle;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtDQUFrQyxFQUEwQyxNQUFNLGtCQUFrQixDQUFDO0FBRTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFtRTtJQUN6RixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO2VBQ25DLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFO2VBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5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aUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO2dCQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQzthQUMvRSxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgUGFja2FnZUVuZ2luZTogU2hhcGVFbmdpbmU8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwge30sIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgMjV9IFxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnl9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuN30gXG4gICAgICAgICAgICBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOH0gJHtyZWN0YW5nbGUueSArIDI1fSBcbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54fVxuICAgICAgICAgICAgViR7cmVjdGFuZ2xlLnkgKyAyNX1cbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC44fWAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuXG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGxldCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC43ICYmIG5lYXJlc3RQb2ludFsxXSA8PSByZWN0YW5nbGUueSArIDI1KSB7XG4gICAgICAgICAgICBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhcbiAgICAgICAgICAgICAgICBwb2ludCxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNywgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjgsIHJlY3RhbmdsZS55ICsgMjVdLFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgMjVdXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb25Qb2ludFswXSA+IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC43ICYmIGNvbm5lY3Rpb25Qb2ludFsxXSA8IHJlY3RhbmdsZS55ICsgMjUpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNywgcmVjdGFuZ2xlLnldLCBjb25uZWN0aW9uUG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOCwgcmVjdGFuZ2xlLnkgKyAyNV0sIGNvbm5lY3Rpb25Qb2ludCk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIG9wdGlvbnM/OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB0ZXh0SGVpZ2h0ID0gZWxlbWVudC50ZXh0cz8uZmluZChpdGVtID0+IGl0ZW0ua2V5ID09PSBvcHRpb25zPy5rZXkpPy50ZXh0SGVpZ2h0ITtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmtleSA9PT0gTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjcgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0IC0gc3Ryb2tlV2lkdGg7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dEhlaWdodCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAoMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnM/LmtleSA9PT0gTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIDI1ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BasicShapes } from '../interfaces';
|
|
2
2
|
import { Generator } from '@plait/common';
|
|
3
|
-
import { getFillByElement, getLineDashByElement, getStrokeColorByElement
|
|
4
|
-
import { drawGeometry } from '../utils';
|
|
3
|
+
import { getFillByElement, getLineDashByElement, getStrokeColorByElement } from '../utils/style/stroke';
|
|
4
|
+
import { drawGeometry, getStrokeWidthByElement } from '../utils';
|
|
5
5
|
import { RectangleClient } from '@plait/core';
|
|
6
6
|
export class GeometryShapeGenerator extends Generator {
|
|
7
7
|
canDraw(element, data) {
|
|
@@ -25,4 +25,4 @@ export class GeometryShapeGenerator extends Generator {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9nZW9tZXRyeS1zaGFwZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RyxPQUFPLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQW1DO0lBQzNFLE9BQU8sQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDeEMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksS0FBSyxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFO1lBQ3JGLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFdBQVc7WUFDWCxJQUFJO1lBQ0osY0FBYztTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY1NoYXBlcywgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRGaWxsQnlFbGVtZW50LCBnZXRMaW5lRGFzaEJ5RWxlbWVudCwgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9zdHlsZS9zdHJva2UnO1xuaW1wb3J0IHsgZHJhd0dlb21ldHJ5LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge31cblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8UGxhaXRHZW9tZXRyeSwgU2hhcGVEYXRhPiB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBQbGFpdEdlb21ldHJ5LCBkYXRhOiBTaGFwZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBQbGFpdEdlb21ldHJ5LCBkYXRhOiBTaGFwZURhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBlbGVtZW50LnNoYXBlO1xuICAgICAgICBpZiAoc2hhcGUgPT09IEJhc2ljU2hhcGVzLnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBzdHJva2VDb2xvciA9IGdldFN0cm9rZUNvbG9yQnlFbGVtZW50KHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBmaWxsID0gZ2V0RmlsbEJ5RWxlbWVudCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlTGluZURhc2ggPSBnZXRMaW5lRGFzaEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGRyYXdHZW9tZXRyeSh0aGlzLmJvYXJkLCBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShyZWN0YW5nbGUsIC1zdHJva2VXaWR0aCksIHNoYXBlLCB7XG4gICAgICAgICAgICBzdHJva2U6IHN0cm9rZUNvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICBmaWxsLFxuICAgICAgICAgICAgc3Ryb2tlTGluZURhc2hcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|