@plait/draw 0.59.0 → 0.62.0-next.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/geometry.d.ts +115 -7
- package/constants/index.d.ts +2 -1
- package/constants/line.d.ts +1 -0
- package/constants/pointer.d.ts +2 -2
- package/constants/swimlane.d.ts +21 -0
- package/constants/text.d.ts +1 -0
- package/engines/uml/activity-class.d.ts +2 -0
- package/engines/uml/assembly.d.ts +2 -0
- package/engines/uml/component-box.d.ts +2 -0
- package/engines/uml/component.d.ts +2 -0
- package/engines/uml/deletion.d.ts +2 -0
- package/engines/uml/note.d.ts +2 -0
- package/engines/uml/provided-interface.d.ts +2 -0
- package/engines/uml/required-interface.d.ts +2 -0
- package/engines/uml/template.d.ts +2 -0
- package/esm2022/constants/geometry.mjs +87 -15
- package/esm2022/constants/index.mjs +3 -2
- package/esm2022/constants/line.mjs +2 -1
- package/esm2022/constants/pointer.mjs +3 -3
- package/esm2022/constants/swimlane.mjs +25 -0
- package/esm2022/constants/text.mjs +2 -0
- package/esm2022/engines/index.mjs +27 -2
- package/esm2022/engines/table/table.mjs +10 -3
- package/esm2022/engines/uml/activity-class.mjs +47 -0
- package/esm2022/engines/uml/assembly.mjs +56 -0
- package/esm2022/engines/uml/component-box.mjs +61 -0
- package/esm2022/engines/uml/component.mjs +72 -0
- package/esm2022/engines/uml/deletion.mjs +31 -0
- package/esm2022/engines/uml/note.mjs +58 -0
- package/esm2022/engines/uml/provided-interface.mjs +47 -0
- package/esm2022/engines/uml/required-interface.mjs +36 -0
- package/esm2022/engines/uml/template.mjs +47 -0
- package/esm2022/generators/single-text.generator.mjs +3 -3
- package/esm2022/generators/table.generator.mjs +1 -1
- package/esm2022/generators/text.generator.mjs +10 -13
- package/esm2022/geometry.component.mjs +12 -14
- package/esm2022/image.component.mjs +6 -8
- package/esm2022/interfaces/geometry.mjs +17 -10
- package/esm2022/interfaces/index.mjs +19 -9
- package/esm2022/interfaces/swimlane.mjs +13 -0
- package/esm2022/interfaces/table.mjs +5 -1
- package/esm2022/line.component.mjs +12 -13
- package/esm2022/plugins/with-draw-fragment.mjs +6 -2
- package/esm2022/plugins/with-geometry-create.mjs +16 -13
- package/esm2022/plugins/with-line-text.mjs +7 -8
- package/esm2022/plugins/with-swimlane-create.mjs +4 -4
- package/esm2022/plugins/with-swimlane.mjs +21 -2
- package/esm2022/plugins/with-table-resize.mjs +6 -5
- package/esm2022/plugins/with-table.mjs +28 -10
- package/esm2022/table.component.mjs +31 -12
- package/esm2022/transforms/geometry-text.mjs +8 -6
- package/esm2022/transforms/image.mjs +3 -3
- package/esm2022/transforms/index.mjs +5 -3
- package/esm2022/transforms/line.mjs +1 -1
- package/esm2022/transforms/multi-text-geometry-text.mjs +1 -1
- package/esm2022/transforms/swimlane.mjs +142 -47
- package/esm2022/utils/clipboard.mjs +27 -21
- package/esm2022/utils/common.mjs +6 -7
- package/esm2022/utils/geometry.mjs +16 -10
- package/esm2022/utils/hit.mjs +2 -2
- package/esm2022/utils/index.mjs +5 -1
- package/esm2022/utils/multi-text-geometry.mjs +4 -4
- package/esm2022/utils/selected.mjs +3 -8
- package/esm2022/utils/swimlane.mjs +73 -78
- package/esm2022/utils/table-selected.mjs +26 -0
- package/esm2022/utils/table.mjs +26 -1
- package/esm2022/utils/uml.mjs +88 -0
- package/fesm2022/plait-draw.mjs +1215 -367
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/single-text.generator.d.ts +3 -4
- package/generators/table.generator.d.ts +2 -2
- package/generators/text.generator.d.ts +3 -6
- package/image.component.d.ts +0 -1
- package/interfaces/geometry.d.ts +25 -24
- package/interfaces/index.d.ts +11 -6
- package/interfaces/swimlane.d.ts +22 -0
- package/interfaces/table.d.ts +13 -4
- package/line.component.d.ts +1 -2
- package/package.json +1 -3
- package/plugins/with-geometry-create.d.ts +1 -1
- package/plugins/with-swimlane-create.d.ts +1 -1
- package/plugins/with-swimlane.d.ts +3 -2
- package/plugins/with-table-resize.d.ts +1 -1
- package/plugins/with-table.d.ts +1 -4
- package/transforms/geometry.d.ts +2 -2
- package/transforms/index.d.ts +9 -7
- package/transforms/swimlane.d.ts +8 -5
- package/utils/clipboard.d.ts +4 -3
- package/utils/common.d.ts +5 -5
- package/utils/geometry.d.ts +43 -2
- package/utils/index.d.ts +4 -0
- package/utils/multi-text-geometry.d.ts +1 -1
- package/utils/selected.d.ts +2 -4
- package/utils/shape.d.ts +1 -1
- package/utils/swimlane.d.ts +11 -26
- package/utils/table-selected.d.ts +9 -0
- package/utils/table.d.ts +10 -9
- package/utils/uml.d.ts +3 -0
- package/constants/draw.d.ts +0 -1
- package/esm2022/constants/draw.mjs +0 -2
|
@@ -44,6 +44,15 @@ import { ActorEngine } from './uml/actor';
|
|
|
44
44
|
import { ContainerEngine } from './uml/container';
|
|
45
45
|
import { PackageEngine } from './uml/package';
|
|
46
46
|
import { CombinedFragmentEngine } from './uml/combined-fragment';
|
|
47
|
+
import { DeletionEngine } from './uml/deletion';
|
|
48
|
+
import { ActiveClassEngine } from './uml/activity-class';
|
|
49
|
+
import { NoteEngine } from './uml/note';
|
|
50
|
+
import { AssemblyEngine } from './uml/assembly';
|
|
51
|
+
import { RequiredInterfaceEngine } from './uml/required-interface';
|
|
52
|
+
import { ProvidedInterfaceEngine } from './uml/provided-interface';
|
|
53
|
+
import { ComponentEngine } from './uml/component';
|
|
54
|
+
import { ComponentBoxEngine } from './uml/component-box';
|
|
55
|
+
import { TemplateEngine } from './uml/template';
|
|
47
56
|
const ShapeEngineMap = {
|
|
48
57
|
[BasicShapes.rectangle]: RectangleEngine,
|
|
49
58
|
[BasicShapes.diamond]: DiamondEngine,
|
|
@@ -96,10 +105,26 @@ const ShapeEngineMap = {
|
|
|
96
105
|
[UMLSymbols.actor]: ActorEngine,
|
|
97
106
|
[UMLSymbols.useCase]: EllipseEngine,
|
|
98
107
|
[UMLSymbols.container]: ContainerEngine,
|
|
108
|
+
[UMLSymbols.note]: NoteEngine,
|
|
99
109
|
[UMLSymbols.package]: PackageEngine,
|
|
100
|
-
[UMLSymbols.combinedFragment]: CombinedFragmentEngine
|
|
110
|
+
[UMLSymbols.combinedFragment]: CombinedFragmentEngine,
|
|
111
|
+
[UMLSymbols.class]: TableEngine,
|
|
112
|
+
[UMLSymbols.interface]: TableEngine,
|
|
113
|
+
[UMLSymbols.activation]: RectangleEngine,
|
|
114
|
+
[UMLSymbols.object]: RectangleEngine,
|
|
115
|
+
[UMLSymbols.deletion]: DeletionEngine,
|
|
116
|
+
[UMLSymbols.activityClass]: ActiveClassEngine,
|
|
117
|
+
[UMLSymbols.simpleClass]: RectangleEngine,
|
|
118
|
+
[UMLSymbols.component]: ComponentEngine,
|
|
119
|
+
[UMLSymbols.componentBox]: ComponentBoxEngine,
|
|
120
|
+
[UMLSymbols.template]: TemplateEngine,
|
|
121
|
+
[UMLSymbols.port]: RectangleEngine,
|
|
122
|
+
[UMLSymbols.branchMerge]: DiamondEngine,
|
|
123
|
+
[UMLSymbols.assembly]: AssemblyEngine,
|
|
124
|
+
[UMLSymbols.requiredInterface]: RequiredInterfaceEngine,
|
|
125
|
+
[UMLSymbols.providedInterface]: ProvidedInterfaceEngine
|
|
101
126
|
};
|
|
102
127
|
export const getEngine = (shape) => {
|
|
103
128
|
return ShapeEngineMap[shape];
|
|
104
129
|
};
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBR1gsZ0JBQWdCLEVBR2hCLGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFB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QU0sU0FBUyxHQUFHLENBS3JCLEtBQWlCLEVBQ0csRUFBRTtJQUN0QixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJhc2ljU2hhcGVzLFxuICAgIERyYXdTaGFwZXMsXG4gICAgRW5naW5lRXh0cmFEYXRhLFxuICAgIEZsb3djaGFydFN5bWJvbHMsXG4gICAgUGxhaXRHZW9tZXRyeSxcbiAgICBTaGFwZUVuZ2luZSxcbiAgICBTd2ltbGFuZVN5bWJvbHMsXG4gICAgVGFibGVTeW1ib2xzLFxuICAgIFVNTFN5bWJvbHNcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY29tbWVudCc7XG5pbXBvcnQgeyBDcm9zc0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nyb3NzJztcbmltcG9ydCB7IERpYW1vbmRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9kaWFtb25kJztcbmltcG9ydCB7IEVsbGlwc2VFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcbmltcG9ydCB7IEhleGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9oZXhhZ29uJztcbmltcG9ydCB7IExlZnRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2xlZnQtYXJyb3cnO1xuaW1wb3J0IHsgT2N0YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL29jdGFnb24nO1xuaW1wb3J0IHsgUGFyYWxsZWxvZ3JhbUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BhcmFsbGVsb2dyYW0nO1xuaW1wb3J0IHsgUGVudGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wZW50YWdvbic7XG5pbXBvcnQgeyBQZW50YWdvbkFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24tYXJyb3cnO1xuaW1wb3J0IHsgUHJvY2Vzc0Fycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcHJvY2Vzcy1hcnJvdyc7XG5pbXBvcnQgeyBSaWdodEFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcmlnaHQtYXJyb3cnO1xuaW1wb3J0IHsgUm91bmRDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcm91bmQtY29tbWVudCc7XG5pbXBvcnQgeyBSb3VuZFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLXJlY3RhbmdsZSc7XG5pbXBvcnQgeyBUcmFwZXpvaWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90cmFwZXpvaWQnO1xuaW1wb3J0IHsgVHJpYW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90cmlhbmdsZSc7XG5pbXBvcnQgeyBUd29XYXlBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3R3by13YXktYXJyb3cnO1xuaW1wb3J0IHsgU3RhckVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3N0YXInO1xuaW1wb3J0IHsgVGVybWluYWxFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC90ZXJtaW5hbCc7XG5pbXBvcnQgeyBNYW51YWxJbnB1dEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L21hbnVhbC1pbnB1dCc7XG5pbXBvcnQgeyBQcmVwYXJhdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZXBhcmF0aW9uJztcbmltcG9ydCB7IE1hbnVhbExvb3BFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtbG9vcCc7XG5pbXBvcnQgeyBNZXJnZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L21lcmdlJztcbmltcG9ydCB7IERlbGF5RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZGVsYXknO1xuaW1wb3J0IHsgU3RvcmVkRGF0YUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N0b3JlZC1kYXRhJztcbmltcG9ydCB7IFByZWRlZmluZWRQcm9jZXNzRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvcHJlZGVmaW5lZC1wcm9jZXNzJztcbmltcG9ydCB7IE9mZlBhZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9vZmYtcGFnZSc7XG5pbXBvcnQgeyBDbG91ZEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nsb3VkJztcbmltcG9ydCB7IE9yRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb3InO1xuaW1wb3J0IHsgU3VtbWluZ0p1bmN0aW9uRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvc3VtbWluZy1qdW5jdGlvbic7XG5pbXBvcnQgeyBEb2N1bWVudEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RvY3VtZW50JztcbmltcG9ydCB7IE11bHRpRG9jdW1lbnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tdWx0aS1kb2N1bWVudCc7XG5pbXBvcnQgeyBEYXRhYmFzZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RhdGFiYXNlJztcbmltcG9ydCB7IEhhcmREaXNrRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvaGFyZC1kaXNrJztcbmltcG9ydCB7IEludGVybmFsU3RvcmFnZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2ludGVybmFsLXN0b3JhZ2UnO1xuaW1wb3J0IHsgTm90ZUN1cmx5TGVmdEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtY3VybHktbGVmdCc7XG5pbXBvcnQgeyBOb3RlQ3VybHlSaWdodEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtY3VybHktcmlnaHQnO1xuaW1wb3J0IHsgTm90ZVNxdWFyZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L25vdGUtc3F1YXJlJztcbmltcG9ydCB7IERpc3BsYXlFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kaXNwbGF5JztcbmltcG9ydCB7IFRhYmxlRW5naW5lIH0gZnJvbSAnLi90YWJsZS90YWJsZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWN0b3JFbmdpbmUgfSBmcm9tICcuL3VtbC9hY3Rvcic7XG5pbXBvcnQgeyBDb250YWluZXJFbmdpbmUgfSBmcm9tICcuL3VtbC9jb250YWluZXInO1xuaW1wb3J0IHsgUGFja2FnZUVuZ2luZSB9IGZyb20gJy4vdW1sL3BhY2thZ2UnO1xuaW1wb3J0IHsgQ29tYmluZWRGcmFnbWVudEVuZ2luZSB9IGZyb20gJy4vdW1sL2NvbWJpbmVkLWZyYWdtZW50JztcblxuY29uc3QgU2hhcGVFbmdpbmVNYXA6IFJlY29yZDxEcmF3U2hhcGVzLCBTaGFwZUVuZ2luZTxhbnksIGFueSwgYW55Pj4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnJlY3RhbmdsZV06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuZGlhbW9uZF06IERpYW1vbmRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmVsbGlwc2VdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wYXJhbGxlbG9ncmFtXTogUGFyYWxsZWxvZ3JhbUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRSZWN0YW5nbGVdOiBSb3VuZFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudGV4dF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJpYW5nbGVdOiBUcmlhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogTGVmdEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50cmFwZXpvaWRdOiBUcmFwZXpvaWRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBSaWdodEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jcm9zc106IENyb3NzRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5zdGFyXTogU3RhckVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25dOiBQZW50YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuaGV4YWdvbl06IEhleGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLm9jdGFnb25dOiBPY3RhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogUGVudGFnb25BcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogUHJvY2Vzc0Fycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IFR3b1dheUFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jb21tZW50XTogQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRDb21tZW50XTogUm91bmRDb21tZW50RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IENsb3VkRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEaWFtb25kRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IEVsbGlwc2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBUZXJtaW5hbEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERhdGFiYXNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogSGFyZERpc2tFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogSW50ZXJuYWxTdG9yYWdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogTWFudWFsSW5wdXRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBQcmVwYXJhdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogTWFudWFsTG9vcEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IE1lcmdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVsYXlFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IFN0b3JlZERhdGFFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBPckVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBTdW1taW5nSnVuY3Rpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogT2ZmUGFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBNdWx0aURvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBOb3RlQ3VybHlMZWZ0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogTm90ZUN1cmx5UmlnaHRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IE5vdGVTcXVhcmVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGlzcGxheV06IERpc3BsYXlFbmdpbmUsXG4gICAgW1N3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbVGFibGVTeW1ib2xzLnRhYmxlXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYWN0b3JdOiBBY3RvckVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy51c2VDYXNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb250YWluZXJdOiBDb250YWluZXJFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucGFja2FnZV06IFBhY2thZ2VFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF06IENvbWJpbmVkRnJhZ21lbnRFbmdpbmVcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmdpbmUgPSA8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnksXG4gICAgUCBleHRlbmRzIEVuZ2luZUV4dHJhRGF0YSA9IEVuZ2luZUV4dHJhRGF0YSxcbiAgICBLIGV4dGVuZHMgRW5naW5lRXh0cmFEYXRhID0gRW5naW5lRXh0cmFEYXRhXG4+KFxuICAgIHNoYXBlOiBEcmF3U2hhcGVzXG4pOiBTaGFwZUVuZ2luZTxULCBQLCBLPiA9PiB7XG4gICAgcmV0dXJuIFNoYXBlRW5naW5lTWFwW3NoYXBlXTtcbn07XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBR1gsZ0JBQWdCLEVBR2hCLGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsTUFBTSxjQUFjLEdBQW1EO0lBQ25FLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDeEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUNwQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ3BDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxvQkFBb0I7SUFDbEQsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZTtJQUNuQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3RDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDeEMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZTtJQUN4QyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7SUFDMUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUNoQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVO0lBQzlCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWM7SUFDdEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUNwQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ3BDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxrQkFBa0I7SUFDOUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsaUJBQWlCO0lBQzVDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7SUFDcEMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsa0JBQWtCO0lBQzlDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDaEMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYTtJQUMxQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDM0MsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUI7SUFDNUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYztJQUMzQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWM7SUFDM0MsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7SUFDL0MsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXO0lBQ3JDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUNyQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQjtJQUMvQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVE7SUFDL0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHVCQUF1QjtJQUM3RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7SUFDekMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsbUJBQW1CO0lBQ3JELENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsbUJBQW1CO0lBQ3JELENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsb0JBQW9CO0lBQ3ZELENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCO0lBQy9DLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUN6QyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFdBQVc7SUFDakQsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXO0lBQy9DLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDakMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUMvQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDdkMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsc0JBQXNCO0lBQ3JELENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVztJQUNuQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxlQUFlO0lBQ3hDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWU7SUFDcEMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYztJQUNyQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxpQkFBaUI7SUFDN0MsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUN6QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlO0lBQ3ZDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLGtCQUFrQjtJQUM3QyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3JDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWU7SUFDbEMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsYUFBYTtJQUN2QyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3JDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0lBQ3ZELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0NBQzFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FLckIsS0FBaUIsRUFDRyxFQUFFO0lBQ3RCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQmFzaWNTaGFwZXMsXG4gICAgRHJhd1NoYXBlcyxcbiAgICBFbmdpbmVFeHRyYURhdGEsXG4gICAgRmxvd2NoYXJ0U3ltYm9scyxcbiAgICBQbGFpdEdlb21ldHJ5LFxuICAgIFNoYXBlRW5naW5lLFxuICAgIFN3aW1sYW5lU3ltYm9scyxcbiAgICBUYWJsZVN5bWJvbHMsXG4gICAgVU1MU3ltYm9sc1xufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbW1lbnRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jb21tZW50JztcbmltcG9ydCB7IENyb3NzRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY3Jvc3MnO1xuaW1wb3J0IHsgRGlhbW9uZEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2RpYW1vbmQnO1xuaW1wb3J0IHsgRWxsaXBzZUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2VsbGlwc2UnO1xuaW1wb3J0IHsgSGV4YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2hleGFnb24nO1xuaW1wb3J0IHsgTGVmdEFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvbGVmdC1hcnJvdyc7XG5pbXBvcnQgeyBPY3RhZ29uRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvb2N0YWdvbic7XG5pbXBvcnQgeyBQYXJhbGxlbG9ncmFtRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGFyYWxsZWxvZ3JhbSc7XG5pbXBvcnQgeyBQZW50YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BlbnRhZ29uJztcbmltcG9ydCB7IFBlbnRhZ29uQXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wZW50YWdvbi1hcnJvdyc7XG5pbXBvcnQgeyBQcm9jZXNzQXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wcm9jZXNzLWFycm93JztcbmltcG9ydCB7IFJpZ2h0QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yaWdodC1hcnJvdyc7XG5pbXBvcnQgeyBSb3VuZENvbW1lbnRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yb3VuZC1jb21tZW50JztcbmltcG9ydCB7IFJvdW5kUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcm91bmQtcmVjdGFuZ2xlJztcbmltcG9ydCB7IFRyYXBlem9pZEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3RyYXBlem9pZCc7XG5pbXBvcnQgeyBUcmlhbmdsZUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3RyaWFuZ2xlJztcbmltcG9ydCB7IFR3b1dheUFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHdvLXdheS1hcnJvdyc7XG5pbXBvcnQgeyBTdGFyRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvc3Rhcic7XG5pbXBvcnQgeyBUZXJtaW5hbEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3Rlcm1pbmFsJztcbmltcG9ydCB7IE1hbnVhbElucHV0RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWFudWFsLWlucHV0JztcbmltcG9ydCB7IFByZXBhcmF0aW9uRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvcHJlcGFyYXRpb24nO1xuaW1wb3J0IHsgTWFudWFsTG9vcEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L21hbnVhbC1sb29wJztcbmltcG9ydCB7IE1lcmdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWVyZ2UnO1xuaW1wb3J0IHsgRGVsYXlFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kZWxheSc7XG5pbXBvcnQgeyBTdG9yZWREYXRhRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvc3RvcmVkLWRhdGEnO1xuaW1wb3J0IHsgUHJlZGVmaW5lZFByb2Nlc3NFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9wcmVkZWZpbmVkLXByb2Nlc3MnO1xuaW1wb3J0IHsgT2ZmUGFnZUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L29mZi1wYWdlJztcbmltcG9ydCB7IENsb3VkRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY2xvdWQnO1xuaW1wb3J0IHsgT3JFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9vcic7XG5pbXBvcnQgeyBTdW1taW5nSnVuY3Rpb25FbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9zdW1taW5nLWp1bmN0aW9uJztcbmltcG9ydCB7IERvY3VtZW50RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZG9jdW1lbnQnO1xuaW1wb3J0IHsgTXVsdGlEb2N1bWVudEVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L211bHRpLWRvY3VtZW50JztcbmltcG9ydCB7IERhdGFiYXNlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZGF0YWJhc2UnO1xuaW1wb3J0IHsgSGFyZERpc2tFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9oYXJkLWRpc2snO1xuaW1wb3J0IHsgSW50ZXJuYWxTdG9yYWdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvaW50ZXJuYWwtc3RvcmFnZSc7XG5pbXBvcnQgeyBOb3RlQ3VybHlMZWZ0RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbm90ZS1jdXJseS1sZWZ0JztcbmltcG9ydCB7IE5vdGVDdXJseVJpZ2h0RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbm90ZS1jdXJseS1yaWdodCc7XG5pbXBvcnQgeyBOb3RlU3F1YXJlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbm90ZS1zcXVhcmUnO1xuaW1wb3J0IHsgRGlzcGxheUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2Rpc3BsYXknO1xuaW1wb3J0IHsgVGFibGVFbmdpbmUgfSBmcm9tICcuL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBY3RvckVuZ2luZSB9IGZyb20gJy4vdW1sL2FjdG9yJztcbmltcG9ydCB7IENvbnRhaW5lckVuZ2luZSB9IGZyb20gJy4vdW1sL2NvbnRhaW5lcic7XG5pbXBvcnQgeyBQYWNrYWdlRW5naW5lIH0gZnJvbSAnLi91bWwvcGFja2FnZSc7XG5pbXBvcnQgeyBDb21iaW5lZEZyYWdtZW50RW5naW5lIH0gZnJvbSAnLi91bWwvY29tYmluZWQtZnJhZ21lbnQnO1xuaW1wb3J0IHsgRGVsZXRpb25FbmdpbmUgfSBmcm9tICcuL3VtbC9kZWxldGlvbic7XG5pbXBvcnQgeyBBY3RpdmVDbGFzc0VuZ2luZSB9IGZyb20gJy4vdW1sL2FjdGl2aXR5LWNsYXNzJztcbmltcG9ydCB7IE5vdGVFbmdpbmUgfSBmcm9tICcuL3VtbC9ub3RlJztcbmltcG9ydCB7IEFzc2VtYmx5RW5naW5lIH0gZnJvbSAnLi91bWwvYXNzZW1ibHknO1xuaW1wb3J0IHsgUmVxdWlyZWRJbnRlcmZhY2VFbmdpbmUgfSBmcm9tICcuL3VtbC9yZXF1aXJlZC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJvdmlkZWRJbnRlcmZhY2VFbmdpbmUgfSBmcm9tICcuL3VtbC9wcm92aWRlZC1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50RW5naW5lIH0gZnJvbSAnLi91bWwvY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudEJveEVuZ2luZSB9IGZyb20gJy4vdW1sL2NvbXBvbmVudC1ib3gnO1xuaW1wb3J0IHsgVGVtcGxhdGVFbmdpbmUgfSBmcm9tICcuL3VtbC90ZW1wbGF0ZSc7XG5cbmNvbnN0IFNoYXBlRW5naW5lTWFwOiBSZWNvcmQ8RHJhd1NoYXBlcywgU2hhcGVFbmdpbmU8YW55LCBhbnksIGFueT4+ID0ge1xuICAgIFtCYXNpY1NoYXBlcy5yZWN0YW5nbGVdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmRpYW1vbmRdOiBEaWFtb25kRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5lbGxpcHNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGFyYWxsZWxvZ3JhbV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJvdW5kUmVjdGFuZ2xlXTogUm91bmRSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnRleHRdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnRyaWFuZ2xlXTogVHJpYW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmxlZnRBcnJvd106IExlZnRBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJhcGV6b2lkXTogVHJhcGV6b2lkRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5yaWdodEFycm93XTogUmlnaHRBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY3Jvc3NdOiBDcm9zc0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuc3Rhcl06IFN0YXJFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnBlbnRhZ29uXTogUGVudGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmhleGFnb25dOiBIZXhhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5vY3RhZ29uXTogT2N0YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25BcnJvd106IFBlbnRhZ29uQXJyb3dFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnByb2Nlc3NBcnJvd106IFByb2Nlc3NBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHdvV2F5QXJyb3ddOiBUd29XYXlBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY29tbWVudF06IENvbW1lbnRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJvdW5kQ29tbWVudF06IFJvdW5kQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY2xvdWRdOiBDbG91ZEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcm9jZXNzXTogUmVjdGFuZ2xlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlY2lzaW9uXTogRGlhbW9uZEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5jb25uZWN0b3JdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRhdGFdOiBQYXJhbGxlbG9ncmFtRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnRlcm1pbmFsXTogVGVybWluYWxFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YWJhc2VdOiBEYXRhYmFzZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5oYXJkRGlza106IEhhcmREaXNrRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmludGVybmFsU3RvcmFnZV06IEludGVybmFsU3RvcmFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxJbnB1dF06IE1hbnVhbElucHV0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByZXBhcmF0aW9uXTogUHJlcGFyYXRpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWFudWFsTG9vcF06IE1hbnVhbExvb3BFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWVyZ2VdOiBNZXJnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kZWxheV06IERlbGF5RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnN0b3JlZERhdGFdOiBTdG9yZWREYXRhRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm9yXTogT3JFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3VtbWluZ0p1bmN0aW9uXTogU3VtbWluZ0p1bmN0aW9uRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByZWRlZmluZWRQcm9jZXNzXTogUHJlZGVmaW5lZFByb2Nlc3NFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub2ZmUGFnZV06IE9mZlBhZ2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZG9jdW1lbnRdOiBEb2N1bWVudEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tdWx0aURvY3VtZW50XTogTXVsdGlEb2N1bWVudEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5ub3RlQ3VybHlMZWZ0XTogTm90ZUN1cmx5TGVmdEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5ub3RlQ3VybHlSaWdodF06IE5vdGVDdXJseVJpZ2h0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVTcXVhcmVdOiBOb3RlU3F1YXJlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRpc3BsYXldOiBEaXNwbGF5RW5naW5lLFxuICAgIFtTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsXTogVGFibGVFbmdpbmUsXG4gICAgW1N3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsXTogVGFibGVFbmdpbmUsXG4gICAgW1RhYmxlU3ltYm9scy50YWJsZV06IFRhYmxlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmFjdG9yXTogQWN0b3JFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMudXNlQ2FzZV06IEVsbGlwc2VFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29udGFpbmVyXTogQ29udGFpbmVyRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLm5vdGVdOiBOb3RlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnBhY2thZ2VdOiBQYWNrYWdlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmNvbWJpbmVkRnJhZ21lbnRdOiBDb21iaW5lZEZyYWdtZW50RW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmNsYXNzXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuaW50ZXJmYWNlXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYWN0aXZhdGlvbl06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5vYmplY3RdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuZGVsZXRpb25dOiBEZWxldGlvbkVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5hY3Rpdml0eUNsYXNzXTogQWN0aXZlQ2xhc3NFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuc2ltcGxlQ2xhc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tcG9uZW50XTogQ29tcG9uZW50RW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmNvbXBvbmVudEJveF06IENvbXBvbmVudEJveEVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy50ZW1wbGF0ZV06IFRlbXBsYXRlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnBvcnRdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYnJhbmNoTWVyZ2VdOiBEaWFtb25kRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmFzc2VtYmx5XTogQXNzZW1ibHlFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucmVxdWlyZWRJbnRlcmZhY2VdOiBSZXF1aXJlZEludGVyZmFjZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5wcm92aWRlZEludGVyZmFjZV06IFByb3ZpZGVkSW50ZXJmYWNlRW5naW5lXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RW5naW5lID0gPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEdlb21ldHJ5LFxuICAgIFAgZXh0ZW5kcyBFbmdpbmVFeHRyYURhdGEgPSBFbmdpbmVFeHRyYURhdGEsXG4gICAgSyBleHRlbmRzIEVuZ2luZUV4dHJhRGF0YSA9IEVuZ2luZUV4dHJhRGF0YVxuPihcbiAgICBzaGFwZTogRHJhd1NoYXBlc1xuKTogU2hhcGVFbmdpbmU8VCwgUCwgSz4gPT4ge1xuICAgIHJldHVybiBTaGFwZUVuZ2luZU1hcFtzaGFwZV07XG59O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, createG, drawLine } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, RectangleClient, createG, drawLine, setStrokeLinecap, drawRectangle, ACTIVE_STROKE_WIDTH } from '@plait/core';
|
|
2
2
|
import { getCellsWithPoints, getCellWithPoints } from '../../utils/table';
|
|
3
3
|
import { PlaitTableElement } from '../../interfaces/table';
|
|
4
4
|
import { getStrokeWidthByElement } from '../../utils';
|
|
@@ -16,10 +16,17 @@ export const TableEngine = {
|
|
|
16
16
|
pointCells.forEach(cell => {
|
|
17
17
|
const rectangle = RectangleClient.getRectangleByPoints(cell.points);
|
|
18
18
|
const { x, y, width, height } = rectangle;
|
|
19
|
+
const cellRectangle = drawRectangle(board, {
|
|
20
|
+
x: x + ACTIVE_STROKE_WIDTH,
|
|
21
|
+
y: y + ACTIVE_STROKE_WIDTH,
|
|
22
|
+
width: width - ACTIVE_STROKE_WIDTH * 2,
|
|
23
|
+
height: height - ACTIVE_STROKE_WIDTH * 2
|
|
24
|
+
}, { fill: cell.fill, fillStyle: 'solid', strokeWidth: 0 });
|
|
19
25
|
const cellRightBorder = drawLine(rs, [x + width, y], [x + width, y + height], roughOptions);
|
|
20
26
|
const cellBottomBorder = drawLine(rs, [x, y + height], [x + width, y + height], roughOptions);
|
|
21
|
-
g.append(cellRightBorder, cellBottomBorder);
|
|
27
|
+
g.append(cellRectangle, cellRightBorder, cellBottomBorder);
|
|
22
28
|
});
|
|
29
|
+
setStrokeLinecap(g, 'round');
|
|
23
30
|
return g;
|
|
24
31
|
},
|
|
25
32
|
isInsidePoint(rectangle, point) {
|
|
@@ -69,4 +76,4 @@ export function getHorizontalTextRectangle(cell) {
|
|
|
69
76
|
y: cellRectangle.y + (cellRectangle.height - height) / 2
|
|
70
77
|
};
|
|
71
78
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUUsT0FBTyxFQUErRCxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNENBQTRDLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV4SCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQXVFO0lBQzNGLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsWUFBcUIsRUFBRSxPQUErQjtRQUN0RyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFDMUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDMUUsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMs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Q2xpZW50LCBQb2ludCwgY3JlYXRlRywgZHJhd0xpbmUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRDZWxsc1dpdGhQb2ludHMsIGdldENlbGxXaXRoUG9pbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFibGUnO1xuaW1wb3J0IHsgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUYWJsZSwgUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIFBsYWl0VGFibGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFJvdW5kUmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuXG5leHBvcnQgY29uc3QgVGFibGVFbmdpbmU6IFNoYXBlRW5naW5lPFBsYWl0VGFibGUsIFBsYWl0VGFibGVEcmF3T3B0aW9ucywgUGxhaXREcmF3U2hhcGVUZXh0PiA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcm91Z2hPcHRpb25zOiBPcHRpb25zLCBvcHRpb25zPzogUGxhaXRUYWJsZURyYXdPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gcmVjdGFuZ2xlO1xuICAgICAgICBjb25zdCB0YWJsZVRvcEJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeV0sIFt4ICsgd2lkdGgsIHldLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgIGcuYXBwZW5kKHRhYmxlVG9wQm9yZGVyLCB0YWJsZUxlZnRCb3JkZXIpO1xuICAgICAgICBjb25zdCBwb2ludENlbGxzID0gZ2V0Q2VsbHNXaXRoUG9pbnRzKGJvYXJkLCB7IC4uLm9wdGlvbnM/LmVsZW1lbnQgfSBhcyBQbGFpdFRhYmxlKTtcbiAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzISk7XG4gICAgICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IHJlY3RhbmdsZTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxSaWdodEJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCArIHdpZHRoLCB5XSwgW3ggKyB3aWR0aCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICBjb25zdCBjZWxsQm90dG9tQm9yZGVyID0gZHJhd0xpbmUocnMsIFt4LCB5ICsgaGVpZ2h0XSwgW3ggKyB3aWR0aCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICBnLmFwcGVuZChjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGc7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kUm91bmRSZWN0YW5nbGUocG9pbnQsIHJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0VGFibGUsIG9wdGlvbnM/OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdldENlbGxXaXRoUG9pbnRzKG9wdGlvbnM/LmJvYXJkISwgZWxlbWVudCwgb3B0aW9ucyEua2V5KTtcbiAgICAgICAgaWYgKFBsYWl0VGFibGVFbGVtZW50LmlzVmVydGljYWxUZXh0KGNlbGwpKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmVydGljYWxUZXh0UmVjdGFuZ2xlKGNlbGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdldEhvcml6b250YWxUZXh0UmVjdGFuZ2xlKGNlbGwpO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCAtIHdpZHRoIC8gMiArIGNlbGxSZWN0YW5nbGUud2lkdGggLyAyLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS53aWR0aCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgeDogY2VsbFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG4iXX0=
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBK0QsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUF1RTtJQUMzRixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLFlBQXFCLEVBQUUsT0FBK0I7UUFDdEcsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsQ0FBQyxDQUFDO1FBQ3BGLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsQ0FBQztZQUNyRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO1lBQzFDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FDL0IsS0FBSyxFQUNMO2dCQUNJLENBQUMsRUFBRSxDQUFDLEdBQUcsbUJBQW1CO2dCQUMxQixDQUFDLEVBQUUsQ0FBQyxHQUFHLG1CQUFtQjtnQkFDMUIsS0FBSyxFQUFFLEtBQUssR0FBRyxtQkFBbUIsR0FBRyxDQUFDO2dCQUN0QyxNQUFNLEVBQUUsTUFBTSxHQUFHLG1CQUFtQixHQUFHLENBQUM7YUFDM0MsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUMxRCxDQUFDO1lBQ0YsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1RixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDOUYsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sNENBQTRDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBbUIsRUFBRSxPQUE0QjtRQUM5RCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBTSxFQUFFLE9BQU8sRUFBRSxPQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkUsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBOEI7SUFDbkUsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQzlGLE9BQU87UUFDSCxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU07UUFDTixDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUN4RCxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxJQUE4QjtJQUNyRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDN0YsT0FBTztRQUNILE1BQU07UUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixHQUFHLFdBQVc7UUFDckUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7S0FDM0QsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBSZWN0YW5nbGVDbGllbnQsIFBvaW50LCBjcmVhdGVHLCBkcmF3TGluZSwgc2V0U3Ryb2tlTGluZWNhcCwgZHJhd1JlY3RhbmdsZSwgQUNUSVZFX1NUUk9LRV9XSURUSCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldENlbGxzV2l0aFBvaW50cywgZ2V0Q2VsbFdpdGhQb2ludHMgfSBmcm9tICcuLi8uLi91dGlscy90YWJsZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXREcmF3U2hhcGVUZXh0IH0gZnJvbSAnLi4vLi4vZ2VuZXJhdG9ycy90ZXh0LmdlbmVyYXRvcic7XG5pbXBvcnQgeyBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMsIFBsYWl0VGFibGVEcmF3T3B0aW9ucywgUGxhaXRUYWJsZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgU2hhcGVEZWZhdWx0U3BhY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kUm91bmRSZWN0YW5nbGUsIGdldFJvdW5kUmVjdGFuZ2xlUmFkaXVzIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JvdW5kLXJlY3RhbmdsZSc7XG5cbmV4cG9ydCBjb25zdCBUYWJsZUVuZ2luZTogU2hhcGVFbmdpbmU8UGxhaXRUYWJsZSwgUGxhaXRUYWJsZURyYXdPcHRpb25zLCBQbGFpdERyYXdTaGFwZVRleHQ+ID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByb3VnaE9wdGlvbnM6IE9wdGlvbnMsIG9wdGlvbnM/OiBQbGFpdFRhYmxlRHJhd09wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgIGNvbnN0IHRhYmxlVG9wQm9yZGVyID0gZHJhd0xpbmUocnMsIFt4LCB5XSwgW3ggKyB3aWR0aCwgeV0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHRhYmxlTGVmdEJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeV0sIFt4LCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgZy5hcHBlbmQodGFibGVUb3BCb3JkZXIsIHRhYmxlTGVmdEJvcmRlcik7XG4gICAgICAgIGNvbnN0IHBvaW50Q2VsbHMgPSBnZXRDZWxsc1dpdGhQb2ludHMoYm9hcmQsIHsgLi4ub3B0aW9ucz8uZWxlbWVudCB9IGFzIFBsYWl0VGFibGUpO1xuICAgICAgICBwb2ludENlbGxzLmZvckVhY2goY2VsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMhKTtcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gcmVjdGFuZ2xlO1xuICAgICAgICAgICAgY29uc3QgY2VsbFJlY3RhbmdsZSA9IGRyYXdSZWN0YW5nbGUoXG4gICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB4OiB4ICsgQUNUSVZFX1NUUk9LRV9XSURUSCxcbiAgICAgICAgICAgICAgICAgICAgeTogeSArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCAtIEFDVElWRV9TVFJPS0VfV0lEVEggKiAyLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCAtIEFDVElWRV9TVFJPS0VfV0lEVEggKiAyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGZpbGw6IGNlbGwuZmlsbCwgZmlsbFN0eWxlOiAnc29saWQnLCBzdHJva2VXaWR0aDogMCB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY2VsbFJpZ2h0Qm9yZGVyID0gZHJhd0xpbmUocnMsIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxCb3R0b21Cb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHkgKyBoZWlnaHRdLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgIGcuYXBwZW5kKGNlbGxSZWN0YW5nbGUsIGNlbGxSaWdodEJvcmRlciwgY2VsbEJvdHRvbUJvcmRlcik7XG4gICAgICAgIH0pO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKGcsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRUYWJsZSwgb3B0aW9ucz86IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICBjb25zdCBjZWxsID0gZ2V0Q2VsbFdpdGhQb2ludHMob3B0aW9ucz8uYm9hcmQhLCBlbGVtZW50LCBvcHRpb25zIS5rZXkpO1xuICAgICAgICBpZiAoUGxhaXRUYWJsZUVsZW1lbnQuaXNWZXJ0aWNhbFRleHQoY2VsbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRWZXJ0aWNhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0SG9yaXpvbnRhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVydGljYWxUZXh0UmVjdGFuZ2xlKGNlbGw6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cykge1xuICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoY2VsbCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gY2VsbC50ZXh0SGVpZ2h0IHx8IDA7XG4gICAgY29uc3Qgd2lkdGggPSBjZWxsUmVjdGFuZ2xlLmhlaWdodCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgeDogY2VsbFJlY3RhbmdsZS54IC0gd2lkdGggLyAyICsgY2VsbFJlY3RhbmdsZS53aWR0aCAvIDIsXG4gICAgICAgIHk6IGNlbGxSZWN0YW5nbGUueSArIChjZWxsUmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhvcml6b250YWxUZXh0UmVjdGFuZ2xlKGNlbGw6IFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cykge1xuICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMpO1xuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoY2VsbCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gY2VsbC50ZXh0SGVpZ2h0IHx8IDA7XG4gICAgY29uc3Qgd2lkdGggPSBjZWxsUmVjdGFuZ2xlLndpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICB4OiBjZWxsUmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgIHk6IGNlbGxSZWN0YW5nbGUueSArIChjZWxsUmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
4
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
5
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
+
export const ActiveClassEngine = {
|
|
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 + rectangle.width * 0.125} ${rectangle.y} L${rectangle.x + rectangle.width * 0.125} ${rectangle.y +
|
|
10
|
+
rectangle.height} M${rectangle.x + rectangle.width - rectangle.width * 0.125} ${rectangle.y} L${rectangle.x +
|
|
11
|
+
rectangle.width -
|
|
12
|
+
rectangle.width * 0.125} ${rectangle.y + rectangle.height}`, { ...options, fillStyle: 'solid' });
|
|
13
|
+
setStrokeLinecap(shape, 'round');
|
|
14
|
+
return shape;
|
|
15
|
+
},
|
|
16
|
+
isInsidePoint(rectangle, point) {
|
|
17
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
18
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
19
|
+
},
|
|
20
|
+
getCornerPoints(rectangle) {
|
|
21
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
22
|
+
},
|
|
23
|
+
getNearestPoint(rectangle, point) {
|
|
24
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
25
|
+
},
|
|
26
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
27
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
28
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
29
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
30
|
+
},
|
|
31
|
+
getConnectorPoints(rectangle) {
|
|
32
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
33
|
+
},
|
|
34
|
+
getTextRectangle: (element) => {
|
|
35
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
36
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
37
|
+
const height = element.textHeight;
|
|
38
|
+
const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2 - elementRectangle.width * 0.125 * 2;
|
|
39
|
+
return {
|
|
40
|
+
height,
|
|
41
|
+
width: width > 0 ? width : 0,
|
|
42
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth + elementRectangle.width * 0.125,
|
|
43
|
+
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9hY3Rpdml0eS1jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixzQ0FBc0MsRUFDdEMsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWdCO0lBQzFDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNqQixJQUFJLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxLQUMvRixTQUFTLENBQUMsQ0FDZCxPQUFPLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1lBQ2hILFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDM0csU0FBUyxDQUFDLEtBQUs7WUFDZixTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFDL0QsRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQ3JDLENBQUM7UUFDRixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFakMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNwRCxPQUFPLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQ25GLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sK0JBQStCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFzQixFQUFFLEVBQUU7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDO1FBQy9FLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFXLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQ1AsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzNILE9BQU87WUFDSCxNQUFNO1lBQ04sS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsS0FBSztZQUN6RyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDakUsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBBY3RpdmVDbGFzc0VuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55fSBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gViR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0fSBIJHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUueFxuICAgICAgICAgICAgfSBaIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC4xMjV9ICR7cmVjdGFuZ2xlLnl9IEwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC4xMjV9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHR9IE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC0gcmVjdGFuZ2xlLndpZHRoICogMC4xMjV9ICR7cmVjdGFuZ2xlLnl9IEwke3JlY3RhbmdsZS54ICtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUud2lkdGggLVxuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAqIDAuMTI1fSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1gLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpOiBbUG9pbnQsIFBvaW50XSB8IG51bGwge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG5cbiAgICBnZXRUZXh0UmVjdGFuZ2xlOiAoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQudGV4dEhlaWdodCE7XG4gICAgICAgIGNvbnN0IHdpZHRoID1cbiAgICAgICAgICAgIGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMiAtIGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjEyNSAqIDI7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoICsgZWxlbWVudFJlY3RhbmdsZS53aWR0aCAqIDAuMTI1LFxuICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICAgICAgfTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
+
import { getUnitVectorByPointAndPoint, rotateVector } from '@plait/common';
|
|
4
|
+
export const AssemblyEngine = {
|
|
5
|
+
draw(board, rectangle, options) {
|
|
6
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
+
const shape = rs.path(`
|
|
8
|
+
M${rectangle.x} ${rectangle.y + rectangle.height / 2}
|
|
9
|
+
H${rectangle.x + rectangle.width * 0.3}
|
|
10
|
+
A${rectangle.width * 0.13} ${rectangle.height * 0.285}, 0, 1, 1 ${rectangle.x +
|
|
11
|
+
rectangle.width * 0.3 +
|
|
12
|
+
rectangle.width * 0.26} ${rectangle.y + rectangle.height / 2}
|
|
13
|
+
A${rectangle.width * 0.13} ${rectangle.height * 0.285}, 0, 1, 1 ${rectangle.x + rectangle.width * 0.3} ${rectangle.y +
|
|
14
|
+
rectangle.height / 2}
|
|
15
|
+
M${rectangle.x + rectangle.width * 0.3 + rectangle.width * 0.13} ${rectangle.y}
|
|
16
|
+
A${rectangle.width * 0.233} ${rectangle.height / 2}, 0, 0, 1 ${rectangle.x +
|
|
17
|
+
rectangle.width * 0.3 +
|
|
18
|
+
rectangle.width * 0.13} ${rectangle.y + rectangle.height}
|
|
19
|
+
M${rectangle.x + rectangle.width * 0.3 + rectangle.width * 0.13 + rectangle.width * 0.233} ${rectangle.y +
|
|
20
|
+
rectangle.height / 2} H${rectangle.x + rectangle.width}
|
|
21
|
+
`, {
|
|
22
|
+
...options,
|
|
23
|
+
fillStyle: 'solid'
|
|
24
|
+
});
|
|
25
|
+
setStrokeLinecap(shape, 'round');
|
|
26
|
+
return shape;
|
|
27
|
+
},
|
|
28
|
+
isInsidePoint(rectangle, point) {
|
|
29
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
30
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
31
|
+
},
|
|
32
|
+
getCornerPoints(rectangle) {
|
|
33
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
34
|
+
},
|
|
35
|
+
getConnectorPoints(rectangle) {
|
|
36
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
37
|
+
},
|
|
38
|
+
getNearestPoint(rectangle, point) {
|
|
39
|
+
const nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
40
|
+
if (nearestPoint[0] === rectangle.x + rectangle.width / 2) {
|
|
41
|
+
return getNearestPointBetweenPointAndEllipse(point, [rectangle.x + rectangle.width * 0.43, rectangle.y + rectangle.height / 2], rectangle.width * 0.223, rectangle.height / 2);
|
|
42
|
+
}
|
|
43
|
+
return nearestPoint;
|
|
44
|
+
},
|
|
45
|
+
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
46
|
+
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
47
|
+
if (connectionPoint[0] > rectangle.x + rectangle.width * 0.43 && connectionPoint[1] < rectangle.y + rectangle.height / 2) {
|
|
48
|
+
return rotateVector(getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x, rectangle.y + rectangle.height / 2]), -Math.PI);
|
|
49
|
+
}
|
|
50
|
+
if (connectionPoint[0] > rectangle.x + rectangle.width * 0.43 && connectionPoint[1] > rectangle.y + rectangle.height / 2) {
|
|
51
|
+
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x, rectangle.y + rectangle.height / 2]);
|
|
52
|
+
}
|
|
53
|
+
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x, rectangle.y + rectangle.height / 2]);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWdCO0lBQ3ZDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNqQjtXQUNELFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7V0FDakQsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEdBQUc7V0FDbkMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLGFBQWEsU0FBUyxDQUFDLENBQUM7WUFDckUsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO1lBQ3JCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO1dBQ2pFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxhQUFhLFNBQVMsQ0FBQyxDQUFDLEdB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QUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BJLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkgsT0FBTyw0QkFBNEIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFDRCxPQUFPLDRCQUE0QixDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcmVjdGFuZ2xlJztcbmltcG9ydCB7IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQsIHJvdGF0ZVZlY3RvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgQXNzZW1ibHlFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBcbiAgICAgICAgTSR7cmVjdGFuZ2xlLnh9ICR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMn0gXG4gICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC4zfVxuICAgICAgICBBJHtyZWN0YW5nbGUud2lkdGggKiAwLjEzfSAke3JlY3RhbmdsZS5oZWlnaHQgKiAwLjI4NX0sIDAsIDEsIDEgJHtyZWN0YW5nbGUueCArXG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoICogMC4zICtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUud2lkdGggKiAwLjI2fSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJ9XG4gICAgICAgIEEke3JlY3RhbmdsZS53aWR0aCAqIDAuMTN9ICR7cmVjdGFuZ2xlLmhlaWdodCAqIDAuMjg1fSwgMCwgMSwgMSAke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC4zfSAke3JlY3RhbmdsZS55ICtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUuaGVpZ2h0IC8gMn1cbiAgICAgICAgTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjMgKyByZWN0YW5nbGUud2lkdGggKiAwLjEzfSAke3JlY3RhbmdsZS55fVxuICAgICAgICBBJHtyZWN0YW5nbGUud2lkdGggKiAwLjIzM30gJHtyZWN0YW5nbGUuaGVpZ2h0IC8gMn0sIDAsIDAsIDEgJHtyZWN0YW5nbGUueCArXG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoICogMC4zICtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUud2lkdGggKiAwLjEzfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjMgKyByZWN0YW5nbGUud2lkdGggKiAwLjEzICsgcmVjdGFuZ2xlLndpZHRoICogMC4yMzN9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHQgLyAyfSBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH1cbiAgICAgICAgYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA9PT0gcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZShcbiAgICAgICAgICAgICAgICBwb2ludCxcbiAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjQzLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSxcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUud2lkdGggKiAwLjIyMyxcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUuaGVpZ2h0IC8gMlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb25Qb2ludFswXSA+IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC40MyAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyKSB7XG4gICAgICAgICAgICByZXR1cm4gcm90YXRlVmVjdG9yKGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQoY29ubmVjdGlvblBvaW50LCBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdKSwgLU1hdGguUEkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNDMgJiYgY29ubmVjdGlvblBvaW50WzFdID4gcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMikge1xuICAgICAgICAgICAgcmV0dXJuIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQoY29ubmVjdGlvblBvaW50LCBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChjb25uZWN0aW9uUG9pbnQsIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0pO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
import { ComponentEngine } from './component';
|
|
7
|
+
export const ComponentBoxEngine = {
|
|
8
|
+
draw(board, rectangle, options) {
|
|
9
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
10
|
+
const componentWidth = rectangle.width - 45 * 2 - 18 > 1 ? 45 : rectangle.width * 0.25;
|
|
11
|
+
const componentHeight = rectangle.height - 30 - 8 * 2 > 1 ? 30 : rectangle.height * 0.2;
|
|
12
|
+
const componentRectangle = {
|
|
13
|
+
x: rectangle.x + rectangle.width - 18 - componentWidth,
|
|
14
|
+
y: rectangle.y + 8,
|
|
15
|
+
width: componentWidth,
|
|
16
|
+
height: componentHeight
|
|
17
|
+
};
|
|
18
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y}
|
|
19
|
+
H${rectangle.x + rectangle.width}
|
|
20
|
+
V${rectangle.y + rectangle.height}
|
|
21
|
+
H${rectangle.x} Z
|
|
22
|
+
|
|
23
|
+
`, { ...options, fillStyle: 'solid' });
|
|
24
|
+
const componentShape = ComponentEngine.draw(board, componentRectangle, options);
|
|
25
|
+
shape.append(componentShape);
|
|
26
|
+
setStrokeLinecap(shape, 'round');
|
|
27
|
+
return shape;
|
|
28
|
+
},
|
|
29
|
+
isInsidePoint(rectangle, point) {
|
|
30
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
31
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
32
|
+
},
|
|
33
|
+
getCornerPoints(rectangle) {
|
|
34
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
35
|
+
},
|
|
36
|
+
getNearestPoint(rectangle, point) {
|
|
37
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
38
|
+
},
|
|
39
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
40
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
41
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
42
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
43
|
+
},
|
|
44
|
+
getConnectorPoints(rectangle) {
|
|
45
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
46
|
+
},
|
|
47
|
+
getTextRectangle(element) {
|
|
48
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
49
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
50
|
+
const height = element.textHeight;
|
|
51
|
+
const componentWidth = elementRectangle.width - 45 * 2 - 18 > 1 ? 45 : elementRectangle.width * 0.25;
|
|
52
|
+
const width = elementRectangle.width - 18 - componentWidth - ShapeDefaultSpace.rectangleAndText - strokeWidth * 2;
|
|
53
|
+
return {
|
|
54
|
+
height,
|
|
55
|
+
width: width > 0 ? width : 0,
|
|
56
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
57
|
+
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL2NvbXBvbmVudC1ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWdCO0lBQzNDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN2RixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUV4RixNQUFNLGtCQUFrQixHQUFHO1lBQ3ZCLENBQUMsRUFB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RSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztZQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDakUsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQgfSBmcm9tICcuLi8uLi91dGlscy9wb2x5Z29uJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFbmdpbmUgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRCb3hFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFdpZHRoID0gcmVjdGFuZ2xlLndpZHRoIC0gNDUgKiAyIC0gMTggPiAxID8gNDUgOiByZWN0YW5nbGUud2lkdGggKiAwLjI1O1xuICAgICAgICBjb25zdCBjb21wb25lbnRIZWlnaHQgPSByZWN0YW5nbGUuaGVpZ2h0IC0gMzAgLSA4ICogMiA+IDEgPyAzMCA6IHJlY3RhbmdsZS5oZWlnaHQgKiAwLjI7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVjdGFuZ2xlID0ge1xuICAgICAgICAgICAgeDogcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLSAxOCAtIGNvbXBvbmVudFdpZHRoLFxuICAgICAgICAgICAgeTogcmVjdGFuZ2xlLnkgKyA4LFxuICAgICAgICAgICAgd2lkdGg6IGNvbXBvbmVudFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBjb21wb25lbnRIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55fSBcbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH0gXG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueH0gWlxuXG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFNoYXBlID0gQ29tcG9uZW50RW5naW5lLmRyYXcoYm9hcmQsIGNvbXBvbmVudFJlY3RhbmdsZSwgb3B0aW9ucyk7XG4gICAgICAgIHNoYXBlLmFwcGVuZChjb21wb25lbnRTaGFwZSk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuXG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludChjb3JuZXJzLCBwb2ludCk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQhO1xuICAgICAgICBjb25zdCBjb21wb25lbnRXaWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSA0NSAqIDIgLSAxOCA+IDEgPyA0NSA6IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjI1O1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSAxOCAtIGNvbXBvbmVudFdpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAoZWxlbWVudFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgICAgICB9O1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
4
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
5
|
+
import { getUnitVectorByPointAndPoint } from '@plait/common';
|
|
6
|
+
export const ComponentEngine = {
|
|
7
|
+
draw(board, rectangle, options) {
|
|
8
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
9
|
+
const boxSize = {
|
|
10
|
+
with: rectangle.width > 70 ? 24 : rectangle.width * 0.2,
|
|
11
|
+
height: rectangle.height - 28 - rectangle.height * 0.35 > 1 ? 14 : rectangle.height * 0.175
|
|
12
|
+
};
|
|
13
|
+
const shape = rs.path(`M${rectangle.x + 12} ${rectangle.y}
|
|
14
|
+
v${rectangle.height * 0.175}
|
|
15
|
+
h${boxSize.with / 2} v${boxSize.height} h${-boxSize.with} v${-boxSize.height} h${boxSize.with / 2}
|
|
16
|
+
|
|
17
|
+
M${rectangle.x + 12} ${rectangle.y + rectangle.height * 0.175 + boxSize.height}
|
|
18
|
+
|
|
19
|
+
v${rectangle.height - rectangle.height * 0.35 - boxSize.height * 2}
|
|
20
|
+
h${boxSize.with / 2} v${boxSize.height} h${-boxSize.with} v${-boxSize.height} h${boxSize.with / 2}
|
|
21
|
+
M${rectangle.x + 12} ${rectangle.y + rectangle.height - rectangle.height * 0.175}
|
|
22
|
+
V${rectangle.y + rectangle.height}
|
|
23
|
+
H${rectangle.x + rectangle.width}
|
|
24
|
+
v${-rectangle.height}
|
|
25
|
+
h${-(rectangle.width - 12)}
|
|
26
|
+
`, { ...options, fillStyle: 'solid' });
|
|
27
|
+
setStrokeLinecap(shape, 'round');
|
|
28
|
+
return shape;
|
|
29
|
+
},
|
|
30
|
+
isInsidePoint(rectangle, point) {
|
|
31
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
32
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
33
|
+
},
|
|
34
|
+
getCornerPoints(rectangle) {
|
|
35
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
36
|
+
},
|
|
37
|
+
getNearestPoint(rectangle, point) {
|
|
38
|
+
let nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
39
|
+
if (nearestPoint[1] === rectangle.y + rectangle.height / 2) {
|
|
40
|
+
nearestPoint = getNearestPointBetweenPointAndSegments(point, [
|
|
41
|
+
[rectangle.x + 12, rectangle.y + rectangle.height * 0.175 + 14],
|
|
42
|
+
[rectangle.x + 12, rectangle.y + rectangle.height - rectangle.height * 0.175 - 14]
|
|
43
|
+
], false);
|
|
44
|
+
}
|
|
45
|
+
return nearestPoint;
|
|
46
|
+
},
|
|
47
|
+
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
48
|
+
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
49
|
+
return getUnitVectorByPointAndPoint([rectangle.x + 12, rectangle.y + rectangle.height - rectangle.height * 0.175 - 14], connectionPoint);
|
|
50
|
+
},
|
|
51
|
+
getConnectorPoints(rectangle) {
|
|
52
|
+
return [
|
|
53
|
+
[rectangle.x + rectangle.width / 2, rectangle.y],
|
|
54
|
+
[rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
|
|
55
|
+
[rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
|
|
56
|
+
[rectangle.x + 12, rectangle.y + rectangle.height / 2]
|
|
57
|
+
];
|
|
58
|
+
},
|
|
59
|
+
getTextRectangle(element) {
|
|
60
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
61
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
62
|
+
const height = element.textHeight;
|
|
63
|
+
const width = elementRectangle.width - 24 - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
64
|
+
return {
|
|
65
|
+
height,
|
|
66
|
+
width: width > 0 ? width : 0,
|
|
67
|
+
x: elementRectangle.x + 24 + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
68
|
+
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFnQjtJQUN4QyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUc7WUFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO1lBQ3ZELE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLO1NBQzlGLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNqQixJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDO2VBQ2hDLFNB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QUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztZQUM3RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDakUsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBDb21wb25lbnRFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IGJveFNpemUgPSB7XG4gICAgICAgICAgICB3aXRoOiByZWN0YW5nbGUud2lkdGggPiA3MCA/IDI0IDogcmVjdGFuZ2xlLndpZHRoICogMC4yLFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0YW5nbGUuaGVpZ2h0IC0gMjggLSByZWN0YW5nbGUuaGVpZ2h0ICogMC4zNSA+IDEgPyAxNCA6IHJlY3RhbmdsZS5oZWlnaHQgKiAwLjE3NVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7cmVjdGFuZ2xlLnggKyAxMn0gJHtyZWN0YW5nbGUueX0gXG4gICAgICAgICAgICB2JHtyZWN0YW5nbGUuaGVpZ2h0ICogMC4xNzV9IFxuICAgICAgICAgICAgaCR7Ym94U2l6ZS53aXRoIC8gMn0gdiR7Ym94U2l6ZS5oZWlnaHR9IGgkey1ib3hTaXplLndpdGh9IHYkey1ib3hTaXplLmhlaWdodH0gaCR7Ym94U2l6ZS53aXRoIC8gMn1cblxuICAgICAgICAgICAgTSR7cmVjdGFuZ2xlLnggKyAxMn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgKiAwLjE3NSArIGJveFNpemUuaGVpZ2h0fSBcblxuICAgICAgICAgICAgdiR7cmVjdGFuZ2xlLmhlaWdodCAtIHJlY3RhbmdsZS5oZWlnaHQgKiAwLjM1IC0gYm94U2l6ZS5oZWlnaHQgKiAyfVxuICAgICAgICAgICAgaCR7Ym94U2l6ZS53aXRoIC8gMn0gdiR7Ym94U2l6ZS5oZWlnaHR9IGgkey1ib3hTaXplLndpdGh9IHYkey1ib3hTaXplLmhlaWdodH0gaCR7Ym94U2l6ZS53aXRoIC8gMn1cbiAgICAgICAgICAgIE0ke3JlY3RhbmdsZS54ICsgMTJ9ICR7cmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC0gcmVjdGFuZ2xlLmhlaWdodCAqIDAuMTc1fSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgICAgIEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofVxuICAgICAgICAgICAgdiR7LXJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBoJHstKHJlY3RhbmdsZS53aWR0aCAtIDEyKX1cbiAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBsZXQgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgICAgIGlmIChuZWFyZXN0UG9pbnRbMV0gPT09IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDIpIHtcbiAgICAgICAgICAgIG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKFxuICAgICAgICAgICAgICAgIHBvaW50LFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgMTIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAqIDAuMTc1ICsgMTRdLFxuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAxMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC0gcmVjdGFuZ2xlLmhlaWdodCAqIDAuMTc1IC0gMTRdXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG5cbiAgICBnZXRUYW5nZW50VmVjdG9yQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvblBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIDEyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLSByZWN0YW5nbGUuaGVpZ2h0ICogMC4xNzUgLSAxNF0sXG4gICAgICAgICAgICBjb25uZWN0aW9uUG9pbnRcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAxMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl1cbiAgICAgICAgXSBhcyBbUG9pbnQsIFBvaW50LCBQb2ludCwgUG9pbnRdO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC50ZXh0SGVpZ2h0ITtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoIC0gMjQgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyAyNCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments } from '@plait/core';
|
|
2
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
3
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
4
|
+
export const DeletionEngine = {
|
|
5
|
+
draw(board, rectangle, options) {
|
|
6
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y} L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height}
|
|
8
|
+
M${rectangle.x + rectangle.width} ${rectangle.y} L${rectangle.x} ${rectangle.y + rectangle.height}
|
|
9
|
+
`, { ...options, fillStyle: 'solid', strokeWidth: 4 });
|
|
10
|
+
return shape;
|
|
11
|
+
},
|
|
12
|
+
isInsidePoint(rectangle, point) {
|
|
13
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
14
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
15
|
+
},
|
|
16
|
+
getCornerPoints(rectangle) {
|
|
17
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
18
|
+
},
|
|
19
|
+
getNearestPoint(rectangle, point) {
|
|
20
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
21
|
+
},
|
|
22
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
23
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
24
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
25
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
26
|
+
},
|
|
27
|
+
getConnectorPoints(rectangle) {
|
|
28
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9kZWxldGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEyQixlQUFlLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHM0gsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBZ0I7SUFDdkMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO2VBQy9GLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTthQUNoRyxFQUNELEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQ3JELENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIFBvaW50T2ZSZWN0YW5nbGUsIFJlY3RhbmdsZUNsaWVudCwgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5cbmV4cG9ydCBjb25zdCBEZWxldGlvbkVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9IFxuICAgICAgICAgICAgTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGh9ICR7cmVjdGFuZ2xlLnl9IEwke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH0gXG4gICAgICAgICAgICBgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiA0IH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9XG59O1xuIl19
|