@plait/draw 0.77.2 → 0.78.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.
Files changed (156) hide show
  1. package/fesm2022/plait-draw.mjs +21 -14
  2. package/fesm2022/plait-draw.mjs.map +1 -1
  3. package/package.json +1 -3
  4. package/transforms/image.d.ts +6 -0
  5. package/utils/hit.d.ts +1 -1
  6. package/esm2022/arrow-line.component.mjs +0 -165
  7. package/esm2022/constants/default.mjs +0 -7
  8. package/esm2022/constants/geometry.mjs +0 -272
  9. package/esm2022/constants/image.mjs +0 -2
  10. package/esm2022/constants/index.mjs +0 -9
  11. package/esm2022/constants/line.mjs +0 -12
  12. package/esm2022/constants/pointer.mjs +0 -23
  13. package/esm2022/constants/swimlane.mjs +0 -25
  14. package/esm2022/constants/text.mjs +0 -2
  15. package/esm2022/constants/theme.mjs +0 -28
  16. package/esm2022/engines/basic-shapes/cloud.mjs +0 -146
  17. package/esm2022/engines/basic-shapes/comment.mjs +0 -56
  18. package/esm2022/engines/basic-shapes/cross.mjs +0 -33
  19. package/esm2022/engines/basic-shapes/diamond.mjs +0 -16
  20. package/esm2022/engines/basic-shapes/ellipse.mjs +0 -53
  21. package/esm2022/engines/basic-shapes/hexagon.mjs +0 -27
  22. package/esm2022/engines/basic-shapes/left-arrow.mjs +0 -30
  23. package/esm2022/engines/basic-shapes/octagon.mjs +0 -29
  24. package/esm2022/engines/basic-shapes/parallelogram.mjs +0 -26
  25. package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +0 -27
  26. package/esm2022/engines/basic-shapes/pentagon.mjs +0 -30
  27. package/esm2022/engines/basic-shapes/polygon.mjs +0 -56
  28. package/esm2022/engines/basic-shapes/process-arrow.mjs +0 -26
  29. package/esm2022/engines/basic-shapes/rectangle.mjs +0 -26
  30. package/esm2022/engines/basic-shapes/right-arrow.mjs +0 -28
  31. package/esm2022/engines/basic-shapes/round-comment.mjs +0 -82
  32. package/esm2022/engines/basic-shapes/round-rectangle.mjs +0 -58
  33. package/esm2022/engines/basic-shapes/star.mjs +0 -39
  34. package/esm2022/engines/basic-shapes/trapezoid.mjs +0 -26
  35. package/esm2022/engines/basic-shapes/triangle.mjs +0 -34
  36. package/esm2022/engines/basic-shapes/two-way-arrow.mjs +0 -25
  37. package/esm2022/engines/flowchart/database.mjs +0 -84
  38. package/esm2022/engines/flowchart/delay.mjs +0 -44
  39. package/esm2022/engines/flowchart/display.mjs +0 -74
  40. package/esm2022/engines/flowchart/document.mjs +0 -81
  41. package/esm2022/engines/flowchart/hard-disk.mjs +0 -84
  42. package/esm2022/engines/flowchart/internal-storage.mjs +0 -47
  43. package/esm2022/engines/flowchart/manual-input.mjs +0 -33
  44. package/esm2022/engines/flowchart/manual-loop.mjs +0 -26
  45. package/esm2022/engines/flowchart/merge.mjs +0 -34
  46. package/esm2022/engines/flowchart/multi-document.mjs +0 -143
  47. package/esm2022/engines/flowchart/note-curly-left.mjs +0 -86
  48. package/esm2022/engines/flowchart/note-curly-right.mjs +0 -89
  49. package/esm2022/engines/flowchart/note-square.mjs +0 -46
  50. package/esm2022/engines/flowchart/off-page.mjs +0 -32
  51. package/esm2022/engines/flowchart/or.mjs +0 -20
  52. package/esm2022/engines/flowchart/predefined-process.mjs +0 -47
  53. package/esm2022/engines/flowchart/preparation.mjs +0 -27
  54. package/esm2022/engines/flowchart/stored-data.mjs +0 -79
  55. package/esm2022/engines/flowchart/summing-junction.mjs +0 -23
  56. package/esm2022/engines/flowchart/terminal.mjs +0 -68
  57. package/esm2022/engines/index.mjs +0 -130
  58. package/esm2022/engines/table/table.mjs +0 -101
  59. package/esm2022/engines/uml/activity-class.mjs +0 -47
  60. package/esm2022/engines/uml/actor.mjs +0 -119
  61. package/esm2022/engines/uml/assembly.mjs +0 -105
  62. package/esm2022/engines/uml/combined-fragment.mjs +0 -66
  63. package/esm2022/engines/uml/component-box.mjs +0 -61
  64. package/esm2022/engines/uml/component.mjs +0 -117
  65. package/esm2022/engines/uml/container.mjs +0 -44
  66. package/esm2022/engines/uml/deletion.mjs +0 -54
  67. package/esm2022/engines/uml/note.mjs +0 -58
  68. package/esm2022/engines/uml/package.mjs +0 -105
  69. package/esm2022/engines/uml/provided-interface.mjs +0 -92
  70. package/esm2022/engines/uml/required-interface.mjs +0 -81
  71. package/esm2022/engines/uml/template.mjs +0 -47
  72. package/esm2022/generators/arrow-line-auto-complete.generator.mjs +0 -46
  73. package/esm2022/generators/arrow-line.generator.mjs +0 -13
  74. package/esm2022/generators/geometry-shape.generator.mjs +0 -29
  75. package/esm2022/generators/index.mjs +0 -7
  76. package/esm2022/generators/line-active.generator.mjs +0 -84
  77. package/esm2022/generators/single-text.generator.mjs +0 -16
  78. package/esm2022/generators/table.generator.mjs +0 -25
  79. package/esm2022/generators/text.generator.mjs +0 -131
  80. package/esm2022/generators/vector-line-generator.mjs +0 -13
  81. package/esm2022/geometry.component.mjs +0 -145
  82. package/esm2022/image.component.mjs +0 -67
  83. package/esm2022/interfaces/arrow-line.mjs +0 -70
  84. package/esm2022/interfaces/element.mjs +0 -9
  85. package/esm2022/interfaces/engine.mjs +0 -2
  86. package/esm2022/interfaces/geometry.mjs +0 -82
  87. package/esm2022/interfaces/image.mjs +0 -2
  88. package/esm2022/interfaces/index.mjs +0 -92
  89. package/esm2022/interfaces/line.mjs +0 -2
  90. package/esm2022/interfaces/options.mjs +0 -2
  91. package/esm2022/interfaces/swimlane.mjs +0 -13
  92. package/esm2022/interfaces/table.mjs +0 -13
  93. package/esm2022/interfaces/text.mjs +0 -2
  94. package/esm2022/interfaces/vector-line.mjs +0 -10
  95. package/esm2022/plait-draw.mjs +0 -5
  96. package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +0 -43
  97. package/esm2022/plugins/with-arrow-line-auto-complete.mjs +0 -76
  98. package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +0 -53
  99. package/esm2022/plugins/with-arrow-line-create.mjs +0 -51
  100. package/esm2022/plugins/with-arrow-line-resize.mjs +0 -158
  101. package/esm2022/plugins/with-arrow-line-text-move.mjs +0 -53
  102. package/esm2022/plugins/with-arrow-line-text.mjs +0 -73
  103. package/esm2022/plugins/with-draw-fragment.mjs +0 -98
  104. package/esm2022/plugins/with-draw-hotkey.mjs +0 -45
  105. package/esm2022/plugins/with-draw-resize.mjs +0 -269
  106. package/esm2022/plugins/with-draw-rotate.mjs +0 -132
  107. package/esm2022/plugins/with-draw.mjs +0 -144
  108. package/esm2022/plugins/with-geometry-create.mjs +0 -182
  109. package/esm2022/plugins/with-swimlane-create.mjs +0 -127
  110. package/esm2022/plugins/with-swimlane.mjs +0 -21
  111. package/esm2022/plugins/with-table-resize.mjs +0 -135
  112. package/esm2022/plugins/with-table.mjs +0 -109
  113. package/esm2022/plugins/with-vector-line-create.mjs +0 -85
  114. package/esm2022/plugins/with-vector-line-resize.mjs +0 -61
  115. package/esm2022/public-api.mjs +0 -11
  116. package/esm2022/table.component.mjs +0 -162
  117. package/esm2022/transforms/arrow-line.mjs +0 -66
  118. package/esm2022/transforms/common.mjs +0 -36
  119. package/esm2022/transforms/geometry-text.mjs +0 -59
  120. package/esm2022/transforms/geometry.mjs +0 -43
  121. package/esm2022/transforms/image.mjs +0 -22
  122. package/esm2022/transforms/index.mjs +0 -36
  123. package/esm2022/transforms/multi-text-geometry-text.mjs +0 -15
  124. package/esm2022/transforms/swimlane.mjs +0 -164
  125. package/esm2022/transforms/table-text.mjs +0 -44
  126. package/esm2022/transforms/table.mjs +0 -36
  127. package/esm2022/transforms/vector-line.mjs +0 -13
  128. package/esm2022/utils/arrow-line/arrow-line-arrow.mjs +0 -123
  129. package/esm2022/utils/arrow-line/arrow-line-basic.mjs +0 -205
  130. package/esm2022/utils/arrow-line/arrow-line-common.mjs +0 -162
  131. package/esm2022/utils/arrow-line/arrow-line-resize.mjs +0 -309
  132. package/esm2022/utils/arrow-line/elbow.mjs +0 -114
  133. package/esm2022/utils/arrow-line/index.mjs +0 -6
  134. package/esm2022/utils/clipboard.mjs +0 -55
  135. package/esm2022/utils/common.mjs +0 -184
  136. package/esm2022/utils/geometry.mjs +0 -178
  137. package/esm2022/utils/hit.mjs +0 -242
  138. package/esm2022/utils/index.mjs +0 -17
  139. package/esm2022/utils/line.mjs +0 -64
  140. package/esm2022/utils/memorize.mjs +0 -93
  141. package/esm2022/utils/multi-text-geometry.mjs +0 -61
  142. package/esm2022/utils/polygon.mjs +0 -30
  143. package/esm2022/utils/position/arrow-line.mjs +0 -20
  144. package/esm2022/utils/position/geometry.mjs +0 -30
  145. package/esm2022/utils/position/line.mjs +0 -51
  146. package/esm2022/utils/selected.mjs +0 -39
  147. package/esm2022/utils/shape.mjs +0 -11
  148. package/esm2022/utils/snap-resizing.mjs +0 -185
  149. package/esm2022/utils/style/index.mjs +0 -2
  150. package/esm2022/utils/style/stroke.mjs +0 -21
  151. package/esm2022/utils/swimlane.mjs +0 -124
  152. package/esm2022/utils/table-selected.mjs +0 -21
  153. package/esm2022/utils/table.mjs +0 -172
  154. package/esm2022/utils/uml.mjs +0 -90
  155. package/esm2022/utils/vector-line.mjs +0 -71
  156. package/esm2022/vector-line.component.mjs +0 -55
@@ -1,20 +0,0 @@
1
- import { PlaitBoard, setStrokeLinecap } from '@plait/core';
2
- import { createEllipseEngine } from '../basic-shapes/ellipse';
3
- export const OrEngine = createEllipseEngine({
4
- draw(board, rectangle, options) {
5
- const rs = PlaitBoard.getRoughSVG(board);
6
- const rx = rectangle.width / 2;
7
- const ry = rectangle.height / 2;
8
- const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
9
- const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
10
- A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
11
- M${rectangle.x} ${rectangle.y + rectangle.height / 2}
12
- L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height / 2}
13
- M${rectangle.x + rectangle.width / 2} ${rectangle.y}
14
- L${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height}
15
- `, { ...options, fillStyle: 'solid' });
16
- setStrokeLinecap(shape, 'round');
17
- return shape;
18
- }
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9vci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWdCLG1CQUFtQixDQUFDO0lBQ3JELElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztXQUNuQyxFQUFFLElBQUksRUFBRSxVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtXQUN2RCxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO1dBQ2pELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztXQUNuRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1dBQ2hELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtTQUNyRSxFQUNHLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUNyQyxDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBSZWN0YW5nbGVDbGllbnQsIHNldFN0cm9rZUxpbmVjYXAgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlRWxsaXBzZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcblxuZXhwb3J0IGNvbnN0IE9yRW5naW5lOiBTaGFwZUVuZ2luZSA9IGNyZWF0ZUVsbGlwc2VFbmdpbmUoe1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHJ4ID0gcmVjdGFuZ2xlLndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV19XG4gICAgICAgIEEke3J4fSwke3J5fSAwIDEsMSAke3N0YXJ0UG9pbnRbMF19ICR7c3RhcnRQb2ludFsxXSAtIDAuMDF9XG4gICAgICAgIE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJ9XG4gICAgICAgIEwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJ9XG4gICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueX1cbiAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgYCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9XG59KTtcbiJdfQ==
@@ -1,47 +0,0 @@
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 PredefinedProcessEngine = {
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.06} ${rectangle.y} L${rectangle.x + rectangle.width * 0.06} ${rectangle.y +
10
- rectangle.height} M${rectangle.x + rectangle.width - rectangle.width * 0.06} ${rectangle.y} L${rectangle.x +
11
- rectangle.width -
12
- rectangle.width * 0.06} ${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.06 * 2;
39
- return {
40
- height,
41
- width: width > 0 ? width : 0,
42
- x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth + elementRectangle.width * 0.06,
43
- y: elementRectangle.y + (elementRectangle.height - height) / 2
44
- };
45
- }
46
- };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy9mbG93Y2hhcnQvcHJlZGVmaW5lZC1wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDaEQsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQy9GLFNBQVMsQ0FBQyxDQUNkLE9BQU8sU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7WUFDOUcsU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUMxRyxTQUFTLENBQUMsS0FBSztZQUNmLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUM5RCxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FDckMsQ0FBQztRQUNGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxnQkFBZ0IsRUFBRSxDQUFDLE9BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVcsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEksT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJO1lBQ3hHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNqRSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFByZWRlZmluZWRQcm9jZXNzRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7cmVjdGFuZ2xlLnh9ICR7cmVjdGFuZ2xlLnl9IEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9IEgke1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS54XG4gICAgICAgICAgICB9IFogTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjA2fSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuMDZ9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHR9IE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC0gcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueX0gTCR7cmVjdGFuZ2xlLnggK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAtXG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9YCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG5cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuXG4gICAgZ2V0VGV4dFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQhO1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMiAtIGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjA2ICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGggKyBlbGVtZW50UmVjdGFuZ2xlLndpZHRoICogMC4wNixcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { RectangleClient } from '@plait/core';
2
- import { createPolygonEngine } from '../basic-shapes/polygon';
3
- import { getTextRectangle } from '../../utils';
4
- export const getPreparationPoints = (rectangle) => {
5
- return [
6
- [rectangle.x, rectangle.y + rectangle.height / 2],
7
- [rectangle.x + rectangle.width / 6, rectangle.y],
8
- [rectangle.x + (rectangle.width * 5) / 6, rectangle.y],
9
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
10
- [rectangle.x + (rectangle.width * 5) / 6, rectangle.y + rectangle.height],
11
- [rectangle.x + rectangle.width / 6, rectangle.y + rectangle.height]
12
- ];
13
- };
14
- export const PreparationEngine = createPolygonEngine({
15
- getPolygonPoints: getPreparationPoints,
16
- getConnectorPoints: (rectangle) => {
17
- return RectangleClient.getEdgeCenterPoints(rectangle);
18
- },
19
- getTextRectangle(element) {
20
- const rectangle = getTextRectangle(element);
21
- const width = rectangle.width;
22
- rectangle.width = (rectangle.width * 2) / 3;
23
- rectangle.x += width / 6;
24
- return rectangle;
25
- }
26
- });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9wcmVwYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQTBCLEVBQVcsRUFBRTtJQUN4RSxPQUFPO1FBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN6RSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0tBQ3RFLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZ0IsbUJBQW1CLENBQUM7SUFDOUQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGtCQUFrQixFQUFFLENBQUMsU0FBMEIsRUFBRSxFQUFFO1FBQy9DLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlUG9seWdvbkVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9wb2x5Z29uJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBnZXRQcmVwYXJhdGlvblBvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBvaW50W10gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDYsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDUpIC8gNiwgcmVjdGFuZ2xlLnldLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogNSkgLyA2LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyA2LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdXG4gICAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcmVwYXJhdGlvbkVuZ2luZTogU2hhcGVFbmdpbmUgPSBjcmVhdGVQb2x5Z29uRW5naW5lKHtcbiAgICBnZXRQb2x5Z29uUG9pbnRzOiBnZXRQcmVwYXJhdGlvblBvaW50cyxcbiAgICBnZXRDb25uZWN0b3JQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB3aWR0aCA9IHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgcmVjdGFuZ2xlLndpZHRoID0gKHJlY3RhbmdsZS53aWR0aCAqIDIpIC8gMztcbiAgICAgICAgcmVjdGFuZ2xlLnggKz0gd2lkdGggLyA2O1xuICAgICAgICByZXR1cm4gcmVjdGFuZ2xlO1xuICAgIH1cbn0pO1xuIl19
@@ -1,79 +0,0 @@
1
- import { PlaitBoard, RectangleClient, getEllipseTangentSlope, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, isPointInEllipse, setStrokeLinecap, getNearestPointBetweenPointAndEllipse } from '@plait/core';
2
- import { RectangleEngine } from '../basic-shapes/rectangle';
3
- import { getTextRectangle } from '../../utils';
4
- export const StoredDataEngine = {
5
- draw(board, rectangle, options) {
6
- const rs = PlaitBoard.getRoughSVG(board);
7
- const shape = rs.path(`M${rectangle.x + rectangle.width / 10} ${rectangle.y} L${rectangle.x + rectangle.width} ${rectangle.y} A ${rectangle.width /
8
- 10} ${rectangle.height / 2}, 0, 0, 0,${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height} L${rectangle.x +
9
- rectangle.width / 10} ${rectangle.y + rectangle.height}A ${rectangle.width / 10} ${rectangle.height /
10
- 2}, 0, 0, 1,${rectangle.x + rectangle.width / 10} ${rectangle.y}`, { ...options, fillStyle: 'solid' });
11
- setStrokeLinecap(shape, 'round');
12
- return shape;
13
- },
14
- isInsidePoint(rectangle, point) {
15
- //split shape to rectangle and a half ellipse
16
- const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
17
- const isInRectangle = RectangleClient.isHit({
18
- ...rectangle,
19
- x: rectangle.x + rectangle.width / 10,
20
- width: (rectangle.width * 9) / 10
21
- }, rangeRectangle);
22
- const isInFrontEllipse = isPointInEllipse(point, [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2], rectangle.width / 10, rectangle.height / 2);
23
- const notInBackEllipse = !isPointInEllipse(point, [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2], rectangle.width / 10, rectangle.height / 2);
24
- return (isInRectangle && notInBackEllipse) || isInFrontEllipse;
25
- },
26
- getCornerPoints(rectangle) {
27
- return RectangleClient.getCornerPoints(rectangle);
28
- },
29
- getNearestPoint(rectangle, point) {
30
- const nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
31
- if (nearestPoint[0] < rectangle.x + rectangle.width / 10) {
32
- const centerPoint = [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2];
33
- const nearestPoint = getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 10, rectangle.height / 2);
34
- if (nearestPoint[0] > centerPoint[0]) {
35
- nearestPoint[0] = centerPoint[0] * 2 - nearestPoint[0];
36
- }
37
- return nearestPoint;
38
- }
39
- if (nearestPoint[0] > rectangle.x + (rectangle.width * 9) / 10) {
40
- const centerPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
41
- const nearestPoint = getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 10, rectangle.height / 2);
42
- if (nearestPoint[0] > centerPoint[0]) {
43
- nearestPoint[0] = centerPoint[0] * 2 - nearestPoint[0];
44
- }
45
- return nearestPoint;
46
- }
47
- return nearestPoint;
48
- },
49
- getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
50
- const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
51
- let centerPoint = [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2];
52
- let a = rectangle.width / 10;
53
- let b = rectangle.height / 2;
54
- const isBackEllipse = connectionPoint[0] > rectangle.x + (rectangle.width * 9) / 10 && connectionPoint[1] > rectangle.y;
55
- if (isBackEllipse) {
56
- centerPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
57
- }
58
- const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
59
- const slope = getEllipseTangentSlope(point[0], point[1], a, b);
60
- const vector = getVectorFromPointAndSlope(point[0], point[1], slope);
61
- return isBackEllipse ? vector.map(num => -num) : vector;
62
- },
63
- getConnectorPoints(rectangle) {
64
- return [
65
- [rectangle.x + rectangle.width / 2, rectangle.y],
66
- [rectangle.x + (rectangle.width * 9) / 10, rectangle.y + rectangle.height / 2],
67
- [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
68
- [rectangle.x, rectangle.y + rectangle.height / 2]
69
- ];
70
- },
71
- getTextRectangle(element) {
72
- const rectangle = getTextRectangle(element);
73
- const width = rectangle.width;
74
- rectangle.width = (rectangle.width * 3) / 4;
75
- rectangle.x += width / 8;
76
- return rectangle;
77
- }
78
- };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9zdG9yZWQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0NBQXNDLEVBQ3RDLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnQjtJQUN6QyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLEtBQUs7WUFDeEgsRUFBRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxhQUFhLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDdEgsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENB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QUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzlFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDbkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDcEQsQ0FBQztJQUNOLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgVmVjdG9yLFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUsXG4gICAgaXNQb2ludEluRWxsaXBzZSxcbiAgICBzZXRTdHJva2VMaW5lY2FwLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEVsbGlwc2Vcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0VGV4dFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFN0b3JlZERhdGFFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gJHtyZWN0YW5nbGUueX0gQSAgJHtyZWN0YW5nbGUud2lkdGggL1xuICAgICAgICAgICAgICAgIDEwfSAke3JlY3RhbmdsZS5oZWlnaHQgLyAyfSwgMCwgMCwgMCwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH0gTCR7cmVjdGFuZ2xlLnggK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1BICAke3JlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS5oZWlnaHQgL1xuICAgICAgICAgICAgICAgIDJ9LCAwLCAwLCAxLCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMH0gJHtyZWN0YW5nbGUueX1gLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIC8vc3BsaXQgc2hhcGUgdG8gcmVjdGFuZ2xlIGFuZCBhIGhhbGYgZWxsaXBzZVxuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIGNvbnN0IGlzSW5SZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHg6IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsXG4gICAgICAgICAgICAgICAgd2lkdGg6IChyZWN0YW5nbGUud2lkdGggKiA5KSAvIDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmFuZ2VSZWN0YW5nbGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpc0luRnJvbnRFbGxpcHNlID0gaXNQb2ludEluRWxsaXBzZShcbiAgICAgICAgICAgIHBvaW50LFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoIC8gMTAsXG4gICAgICAgICAgICByZWN0YW5nbGUuaGVpZ2h0IC8gMlxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG5vdEluQmFja0VsbGlwc2UgPSAhaXNQb2ludEluRWxsaXBzZShcbiAgICAgICAgICAgIHBvaW50LFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSxcbiAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAvIDEwLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLmhlaWdodCAvIDJcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIChpc0luUmVjdGFuZ2xlICYmIG5vdEluQmFja0VsbGlwc2UpIHx8IGlzSW5Gcm9udEVsbGlwc2U7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgICAgICBpZiAobmVhcmVzdFBvaW50WzBdIDwgcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMCkge1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0gYXMgUG9pbnQ7XG4gICAgICAgICAgICBjb25zdCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50LCBjZW50ZXJQb2ludCwgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS5oZWlnaHQgLyAyKTtcbiAgICAgICAgICAgIGlmIChuZWFyZXN0UG9pbnRbMF0gPiBjZW50ZXJQb2ludFswXSkge1xuICAgICAgICAgICAgICAgIG5lYXJlc3RQb2ludFswXSA9IGNlbnRlclBvaW50WzBdICogMiAtIG5lYXJlc3RQb2ludFswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IHJlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDkpIC8gMTApIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSBhcyBQb2ludDtcbiAgICAgICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEVsbGlwc2UocG9pbnQsIGNlbnRlclBvaW50LCByZWN0YW5nbGUud2lkdGggLyAxMCwgcmVjdGFuZ2xlLmhlaWdodCAvIDIpO1xuICAgICAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IGNlbnRlclBvaW50WzBdKSB7XG4gICAgICAgICAgICAgICAgbmVhcmVzdFBvaW50WzBdID0gY2VudGVyUG9pbnRbMF0gKiAyIC0gbmVhcmVzdFBvaW50WzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgbGV0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICBsZXQgYSA9IHJlY3RhbmdsZS53aWR0aCAvIDEwO1xuICAgICAgICBsZXQgYiA9IHJlY3RhbmdsZS5oZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBpc0JhY2tFbGxpcHNlID0gY29ubmVjdGlvblBvaW50WzBdID4gcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogOSkgLyAxMCAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPiByZWN0YW5nbGUueTtcbiAgICAgICAgaWYgKGlzQmFja0VsbGlwc2UpIHtcbiAgICAgICAgICAgIGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IFtjb25uZWN0aW9uUG9pbnRbMF0gLSBjZW50ZXJQb2ludFswXSwgLShjb25uZWN0aW9uUG9pbnRbMV0gLSBjZW50ZXJQb2ludFsxXSldO1xuICAgICAgICBjb25zdCBzbG9wZSA9IGdldEVsbGlwc2VUYW5nZW50U2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBhLCBiKSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHZlY3RvciA9IGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgc2xvcGUpO1xuICAgICAgICByZXR1cm4gaXNCYWNrRWxsaXBzZSA/ICh2ZWN0b3IubWFwKG51bSA9PiAtbnVtKSBhcyBWZWN0b3IpIDogdmVjdG9yO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueV0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogOSkgLyAxMCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXVxuICAgICAgICBdO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICByZWN0YW5nbGUud2lkdGggPSAocmVjdGFuZ2xlLndpZHRoICogMykgLyA0O1xuICAgICAgICByZWN0YW5nbGUueCArPSB3aWR0aCAvIDg7XG4gICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { PlaitBoard, getCrossingPointsBetweenEllipseAndSegment, setStrokeLinecap } from '@plait/core';
2
- import { createEllipseEngine } from '../basic-shapes/ellipse';
3
- export const SummingJunctionEngine = createEllipseEngine({
4
- draw(board, rectangle, options) {
5
- const rs = PlaitBoard.getRoughSVG(board);
6
- const rx = rectangle.width / 2;
7
- const ry = rectangle.height / 2;
8
- const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
9
- const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
10
- const line1Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x, rectangle.y], [rectangle.x + rectangle.width, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
11
- const line2Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x + rectangle.width, rectangle.y], [rectangle.x, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
12
- const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
13
- A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
14
- M${line1Points[0][0]} ${line1Points[0][1]}
15
- L${line1Points[1][0]} ${line1Points[1][1]}
16
- M${line2Points[0][0]} ${line2Points[0][1]}
17
- L${line2Points[1][0]} ${line2Points[1][1]}
18
- `, { ...options, fillStyle: 'solid' });
19
- setStrokeLinecap(shape, 'round');
20
- return shape;
21
- }
22
- });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWluZy1qdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIseUNBQXlDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWdCLG1CQUFtQixDQUFDO0lBQ2xFLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RixNQUFNLFdBQVcsR0FBRyx5Q0FBeUMsQ0FDekQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDMUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQy9ELFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsRUFBRSxFQUNGLEVBQUUsQ0FDTCxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcseUNBQXlDLENBQ3pELENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUM3QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLEVBQUUsRUFDRixFQUFFLENBQ0wsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7V0FDbkMsRUFBRSxJQUFJLEVBQUUsVUFBVSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7V0FDdkQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEMsRUFDRyxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FDckMsQ0FBQztRQUVGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRDcm9zc2luZ1BvaW50c0JldHdlZW5FbGxpcHNlQW5kU2VnbWVudCwgc2V0U3Ryb2tlTGluZWNhcCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL2VsbGlwc2UnO1xuXG5leHBvcnQgY29uc3QgU3VtbWluZ0p1bmN0aW9uRW5naW5lOiBTaGFwZUVuZ2luZSA9IGNyZWF0ZUVsbGlwc2VFbmdpbmUoe1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHJ4ID0gcmVjdGFuZ2xlLndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IGxpbmUxUG9pbnRzID0gZ2V0Q3Jvc3NpbmdQb2ludHNCZXR3ZWVuRWxsaXBzZUFuZFNlZ21lbnQoXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGNlbnRlclBvaW50WzBdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMV0sXG4gICAgICAgICAgICByeCxcbiAgICAgICAgICAgIHJ5XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGxpbmUyUG9pbnRzID0gZ2V0Q3Jvc3NpbmdQb2ludHNCZXR3ZWVuRWxsaXBzZUFuZFNlZ21lbnQoXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGNlbnRlclBvaW50WzBdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMV0sXG4gICAgICAgICAgICByeCxcbiAgICAgICAgICAgIHJ5XG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3N0YXJ0UG9pbnRbMF19ICR7c3RhcnRQb2ludFsxXX1cbiAgICAgICAgQSR7cnh9LCR7cnl9IDAgMSwxICR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdIC0gMC4wMX1cbiAgICAgICAgTSR7bGluZTFQb2ludHNbMF1bMF19ICR7bGluZTFQb2ludHNbMF1bMV19XG4gICAgICAgIEwke2xpbmUxUG9pbnRzWzFdWzBdfSAke2xpbmUxUG9pbnRzWzFdWzFdfVxuICAgICAgICBNJHtsaW5lMlBvaW50c1swXVswXX0gJHtsaW5lMlBvaW50c1swXVsxXX1cbiAgICAgICAgTCR7bGluZTJQb2ludHNbMV1bMF19ICR7bGluZTJQb2ludHNbMV1bMV19XG4gICAgICAgIGAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG5cbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9XG59KTtcbiJdfQ==
@@ -1,68 +0,0 @@
1
- import { PlaitBoard, RectangleClient, drawRoundRectangle, getEllipseTangentSlope, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, isPointInRoundRectangle, getNearestPointBetweenPointAndEllipse } from '@plait/core';
2
- export const TerminalEngine = {
3
- draw(board, rectangle, options) {
4
- return drawRoundRectangle(PlaitBoard.getRoughSVG(board), rectangle.x, rectangle.y, rectangle.x + rectangle.width, rectangle.y + rectangle.height, { ...options, fillStyle: 'solid' }, false, getStartEndRadius(rectangle));
5
- },
6
- isInsidePoint(rectangle, point) {
7
- return isPointInRoundRectangle(point, rectangle, getStartEndRadius(rectangle));
8
- },
9
- getCornerPoints(rectangle) {
10
- return RectangleClient.getCornerPoints(rectangle);
11
- },
12
- getNearestPoint(rectangle, point) {
13
- return getNearestPointBetweenPointAndRoundRectangle(point, rectangle, getStartEndRadius(rectangle));
14
- },
15
- getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
16
- const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
17
- const radius = getStartEndRadius(rectangle);
18
- const center = getBoundCenterOfRoundRectangle(rectangle, radius, connectionPoint);
19
- if (center) {
20
- const point = [connectionPoint[0] - center[0], -(connectionPoint[1] - center[1])];
21
- const a = radius;
22
- const b = radius;
23
- const slope = getEllipseTangentSlope(point[0], point[1], a, b);
24
- return getVectorFromPointAndSlope(point[0], point[1], slope);
25
- }
26
- return null;
27
- },
28
- getConnectorPoints(rectangle) {
29
- return RectangleClient.getEdgeCenterPoints(rectangle);
30
- }
31
- };
32
- export const getStartEndRadius = (rectangle) => {
33
- return Math.min(rectangle.width / 2, rectangle.height / 2);
34
- };
35
- export function getNearestPointBetweenPointAndRoundRectangle(point, rectangle, radius) {
36
- let result = null;
37
- let boundCenter = getBoundCenterOfRoundRectangle(rectangle, radius, point);
38
- if (boundCenter) {
39
- result = getNearestPointBetweenPointAndEllipse(point, boundCenter, radius, radius);
40
- }
41
- else {
42
- const cornerPoints = RectangleClient.getCornerPoints(rectangle);
43
- result = getNearestPointBetweenPointAndSegments(point, cornerPoints);
44
- }
45
- return result;
46
- }
47
- export function getBoundCenterOfRoundRectangle(rectangle, radius, point) {
48
- const { x, y, width, height } = rectangle;
49
- let center = null;
50
- const inLeftTop = point[0] >= x && point[0] <= x + radius && point[1] >= y && point[1] <= y + radius;
51
- if (inLeftTop) {
52
- center = [x + radius, y + radius];
53
- }
54
- const inLeftBottom = point[0] >= x && point[0] <= x + radius && point[1] >= y + height - radius && point[1] <= y + height;
55
- if (inLeftBottom) {
56
- center = [x + radius, y + height - radius];
57
- }
58
- const inRightTop = point[0] >= x + width - radius && point[0] <= x + width && point[1] >= y && point[1] <= y + radius;
59
- if (inRightTop) {
60
- center = [x + width - radius, y + radius];
61
- }
62
- const inRightBottom = point[0] >= x + width - radius && point[0] <= x + width && point[1] >= y + height - radius && point[1] <= y + height;
63
- if (inRightBottom) {
64
- center = [x + width - radius, y + height - radius];
65
- }
66
- return center;
67
- }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC90ZXJtaW5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUlyQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWdCO0lBQ3ZDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsT0FBTyxrQkFBa0IsQ0FDckIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFDN0IsU0FBUyxDQUFDLENBQUMsRUFDWCxTQUFTLENBQUMsQ0FBQyxFQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUM5QixFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFDbEMsS0FBSyxFQUNMLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsT0FBTyw0Q0FBNEMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxF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QyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDMUgsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDdEgsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQ2YsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN6SCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZHJhd1JvdW5kUmVjdGFuZ2xlLFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUsXG4gICAgaXNQb2ludEluUm91bmRSZWN0YW5nbGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZVxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVGVybWluYWxFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSxcbiAgICAgICAgICAgIHJlY3RhbmdsZS54LFxuICAgICAgICAgICAgcmVjdGFuZ2xlLnksXG4gICAgICAgICAgICByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH0sXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGdldFN0YXJ0RW5kUmFkaXVzKHJlY3RhbmdsZSlcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gaXNQb2ludEluUm91bmRSZWN0YW5nbGUocG9pbnQsIHJlY3RhbmdsZSwgZ2V0U3RhcnRFbmRSYWRpdXMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRTdGFydEVuZFJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IGdldFN0YXJ0RW5kUmFkaXVzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGNlbnRlciA9IGdldEJvdW5kQ2VudGVyT2ZSb3VuZFJlY3RhbmdsZShyZWN0YW5nbGUsIHJhZGl1cywgY29ubmVjdGlvblBvaW50KTtcbiAgICAgICAgaWYgKGNlbnRlcikge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBbY29ubmVjdGlvblBvaW50WzBdIC0gY2VudGVyWzBdLCAtKGNvbm5lY3Rpb25Qb2ludFsxXSAtIGNlbnRlclsxXSldO1xuICAgICAgICAgICAgY29uc3QgYSA9IHJhZGl1cztcbiAgICAgICAgICAgIGNvbnN0IGIgPSByYWRpdXM7XG4gICAgICAgICAgICBjb25zdCBzbG9wZSA9IGdldEVsbGlwc2VUYW5nZW50U2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBhLCBiKSBhcyBhbnk7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBzbG9wZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFN0YXJ0RW5kUmFkaXVzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIE1hdGgubWluKHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS5oZWlnaHQgLyAyKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludDogUG9pbnQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByYWRpdXM6IG51bWJlcikge1xuICAgIGxldCByZXN1bHQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGJvdW5kQ2VudGVyOiBQb2ludCB8IG51bGwgPSBnZXRCb3VuZENlbnRlck9mUm91bmRSZWN0YW5nbGUocmVjdGFuZ2xlLCByYWRpdXMsIHBvaW50KTtcbiAgICBpZiAoYm91bmRDZW50ZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZShwb2ludCwgYm91bmRDZW50ZXIsIHJhZGl1cywgcmFkaXVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb3JuZXJQb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJlc3VsdCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBjb3JuZXJQb2ludHMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRDZW50ZXJPZlJvdW5kUmVjdGFuZ2xlKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByYWRpdXM6IG51bWJlciwgcG9pbnQ6IFBvaW50KSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgbGV0IGNlbnRlcjogUG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBpbkxlZnRUb3AgPSBwb2ludFswXSA+PSB4ICYmIHBvaW50WzBdIDw9IHggKyByYWRpdXMgJiYgcG9pbnRbMV0gPj0geSAmJiBwb2ludFsxXSA8PSB5ICsgcmFkaXVzO1xuICAgIGlmIChpbkxlZnRUb3ApIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyByYWRpdXMsIHkgKyByYWRpdXNdO1xuICAgIH1cbiAgICBjb25zdCBpbkxlZnRCb3R0b20gPSBwb2ludFswXSA+PSB4ICYmIHBvaW50WzBdIDw9IHggKyByYWRpdXMgJiYgcG9pbnRbMV0gPj0geSArIGhlaWdodCAtIHJhZGl1cyAmJiBwb2ludFsxXSA8PSB5ICsgaGVpZ2h0O1xuICAgIGlmIChpbkxlZnRCb3R0b20pIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyByYWRpdXMsIHkgKyBoZWlnaHQgLSByYWRpdXNdO1xuICAgIH1cbiAgICBjb25zdCBpblJpZ2h0VG9wID0gcG9pbnRbMF0gPj0geCArIHdpZHRoIC0gcmFkaXVzICYmIHBvaW50WzBdIDw9IHggKyB3aWR0aCAmJiBwb2ludFsxXSA+PSB5ICYmIHBvaW50WzFdIDw9IHkgKyByYWRpdXM7XG4gICAgaWYgKGluUmlnaHRUb3ApIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyB3aWR0aCAtIHJhZGl1cywgeSArIHJhZGl1c107XG4gICAgfVxuICAgIGNvbnN0IGluUmlnaHRCb3R0b20gPVxuICAgICAgICBwb2ludFswXSA+PSB4ICsgd2lkdGggLSByYWRpdXMgJiYgcG9pbnRbMF0gPD0geCArIHdpZHRoICYmIHBvaW50WzFdID49IHkgKyBoZWlnaHQgLSByYWRpdXMgJiYgcG9pbnRbMV0gPD0geSArIGhlaWdodDtcbiAgICBpZiAoaW5SaWdodEJvdHRvbSkge1xuICAgICAgICBjZW50ZXIgPSBbeCArIHdpZHRoIC0gcmFkaXVzLCB5ICsgaGVpZ2h0IC0gcmFkaXVzXTtcbiAgICB9XG4gICAgcmV0dXJuIGNlbnRlcjtcbn1cbiJdfQ==
@@ -1,130 +0,0 @@
1
- import { BasicShapes, FlowchartSymbols, SwimlaneSymbols, TableSymbols, UMLSymbols } from '../interfaces';
2
- import { CommentEngine } from './basic-shapes/comment';
3
- import { CrossEngine } from './basic-shapes/cross';
4
- import { DiamondEngine } from './basic-shapes/diamond';
5
- import { EllipseEngine } from './basic-shapes/ellipse';
6
- import { HexagonEngine } from './basic-shapes/hexagon';
7
- import { LeftArrowEngine } from './basic-shapes/left-arrow';
8
- import { OctagonEngine } from './basic-shapes/octagon';
9
- import { ParallelogramEngine } from './basic-shapes/parallelogram';
10
- import { PentagonEngine } from './basic-shapes/pentagon';
11
- import { PentagonArrowEngine } from './basic-shapes/pentagon-arrow';
12
- import { ProcessArrowEngine } from './basic-shapes/process-arrow';
13
- import { RightArrowEngine } from './basic-shapes/right-arrow';
14
- import { RoundCommentEngine } from './basic-shapes/round-comment';
15
- import { RoundRectangleEngine } from './basic-shapes/round-rectangle';
16
- import { TrapezoidEngine } from './basic-shapes/trapezoid';
17
- import { TriangleEngine } from './basic-shapes/triangle';
18
- import { TwoWayArrowEngine } from './basic-shapes/two-way-arrow';
19
- import { StarEngine } from './basic-shapes/star';
20
- import { TerminalEngine } from './flowchart/terminal';
21
- import { ManualInputEngine } from './flowchart/manual-input';
22
- import { PreparationEngine } from './flowchart/preparation';
23
- import { ManualLoopEngine } from './flowchart/manual-loop';
24
- import { MergeEngine } from './flowchart/merge';
25
- import { DelayEngine } from './flowchart/delay';
26
- import { StoredDataEngine } from './flowchart/stored-data';
27
- import { PredefinedProcessEngine } from './flowchart/predefined-process';
28
- import { OffPageEngine } from './flowchart/off-page';
29
- import { CloudEngine } from './basic-shapes/cloud';
30
- import { OrEngine } from './flowchart/or';
31
- import { SummingJunctionEngine } from './flowchart/summing-junction';
32
- import { DocumentEngine } from './flowchart/document';
33
- import { MultiDocumentEngine } from './flowchart/multi-document';
34
- import { DatabaseEngine } from './flowchart/database';
35
- import { HardDiskEngine } from './flowchart/hard-disk';
36
- import { InternalStorageEngine } from './flowchart/internal-storage';
37
- import { NoteCurlyLeftEngine } from './flowchart/note-curly-left';
38
- import { NoteCurlyRightEngine } from './flowchart/note-curly-right';
39
- import { NoteSquareEngine } from './flowchart/note-square';
40
- import { DisplayEngine } from './flowchart/display';
41
- import { TableEngine } from './table/table';
42
- import { RectangleEngine } from './basic-shapes/rectangle';
43
- import { ActorEngine } from './uml/actor';
44
- import { ContainerEngine } from './uml/container';
45
- import { PackageEngine } from './uml/package';
46
- import { CombinedFragmentEngine } from './uml/combined-fragment';
47
- 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';
56
- const ShapeEngineMap = {
57
- [BasicShapes.rectangle]: RectangleEngine,
58
- [BasicShapes.diamond]: DiamondEngine,
59
- [BasicShapes.ellipse]: EllipseEngine,
60
- [BasicShapes.parallelogram]: ParallelogramEngine,
61
- [BasicShapes.roundRectangle]: RoundRectangleEngine,
62
- [BasicShapes.text]: RectangleEngine,
63
- [BasicShapes.triangle]: TriangleEngine,
64
- [BasicShapes.leftArrow]: LeftArrowEngine,
65
- [BasicShapes.trapezoid]: TrapezoidEngine,
66
- [BasicShapes.rightArrow]: RightArrowEngine,
67
- [BasicShapes.cross]: CrossEngine,
68
- [BasicShapes.star]: StarEngine,
69
- [BasicShapes.pentagon]: PentagonEngine,
70
- [BasicShapes.hexagon]: HexagonEngine,
71
- [BasicShapes.octagon]: OctagonEngine,
72
- [BasicShapes.pentagonArrow]: PentagonArrowEngine,
73
- [BasicShapes.processArrow]: ProcessArrowEngine,
74
- [BasicShapes.twoWayArrow]: TwoWayArrowEngine,
75
- [BasicShapes.comment]: CommentEngine,
76
- [BasicShapes.roundComment]: RoundCommentEngine,
77
- [BasicShapes.cloud]: CloudEngine,
78
- [FlowchartSymbols.process]: RectangleEngine,
79
- [FlowchartSymbols.decision]: DiamondEngine,
80
- [FlowchartSymbols.connector]: EllipseEngine,
81
- [FlowchartSymbols.data]: ParallelogramEngine,
82
- [FlowchartSymbols.terminal]: TerminalEngine,
83
- [FlowchartSymbols.database]: DatabaseEngine,
84
- [FlowchartSymbols.hardDisk]: HardDiskEngine,
85
- [FlowchartSymbols.internalStorage]: InternalStorageEngine,
86
- [FlowchartSymbols.manualInput]: ManualInputEngine,
87
- [FlowchartSymbols.preparation]: PreparationEngine,
88
- [FlowchartSymbols.manualLoop]: ManualLoopEngine,
89
- [FlowchartSymbols.merge]: MergeEngine,
90
- [FlowchartSymbols.delay]: DelayEngine,
91
- [FlowchartSymbols.storedData]: StoredDataEngine,
92
- [FlowchartSymbols.or]: OrEngine,
93
- [FlowchartSymbols.summingJunction]: SummingJunctionEngine,
94
- [FlowchartSymbols.predefinedProcess]: PredefinedProcessEngine,
95
- [FlowchartSymbols.offPage]: OffPageEngine,
96
- [FlowchartSymbols.document]: DocumentEngine,
97
- [FlowchartSymbols.multiDocument]: MultiDocumentEngine,
98
- [FlowchartSymbols.noteCurlyLeft]: NoteCurlyLeftEngine,
99
- [FlowchartSymbols.noteCurlyRight]: NoteCurlyRightEngine,
100
- [FlowchartSymbols.noteSquare]: NoteSquareEngine,
101
- [FlowchartSymbols.display]: DisplayEngine,
102
- [SwimlaneSymbols.swimlaneHorizontal]: TableEngine,
103
- [SwimlaneSymbols.swimlaneVertical]: TableEngine,
104
- [TableSymbols.table]: TableEngine,
105
- [UMLSymbols.actor]: ActorEngine,
106
- [UMLSymbols.useCase]: EllipseEngine,
107
- [UMLSymbols.container]: ContainerEngine,
108
- [UMLSymbols.note]: NoteEngine,
109
- [UMLSymbols.package]: PackageEngine,
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
126
- };
127
- export const getEngine = (shape) => {
128
- return ShapeEngineMap[shape];
129
- };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBR1gsZ0JBQWdCLEVBR2hCLGVBQWUsRUFDZixZQUFZLEVBRVosVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsTUFBTSxjQUFjLEdBQW1EO0lBQ25FLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDeEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUNwQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ3BDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxvQkFBb0I7SUFDbEQsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZTtJQUNuQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3RDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDeEMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZTtJQUN4QyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7SUFDMUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUNoQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVO0lBQzlCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWM7SUFDdEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUNwQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ3BDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxrQkFBa0I7SUFDOUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsaUJBQWlCO0lBQzVDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7SUFDcEMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsa0JBQWtCO0lBQzlDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDaEMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsYUFBYTtJQUMxQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWE7SUFDM0MsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUI7SUFDNUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYztJQUMzQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLGNBQWM7SUFDM0MsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7SUFDL0MsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXO0lBQ3JDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUNyQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQjtJQUMvQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVE7SUFDL0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHVCQUF1QjtJQUM3RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7SUFDekMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQzNDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsbUJBQW1CO0lBQ3JELENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsbUJBQW1CO0lBQ3JELENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsb0JBQW9CO0lBQ3ZELENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCO0lBQy9DLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYTtJQUN6QyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFdBQVc7SUFDakQsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXO0lBQy9DLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDakMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUMvQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWU7SUFDdkMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVTtJQUM3QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO0lBQ25DLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsc0JBQXNCO0lBQ3JELENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVc7SUFDL0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVztJQUNuQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxlQUFlO0lBQ3hDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWU7SUFDcEMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsY0FBYztJQUNyQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxpQkFBaUI7SUFDN0MsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUN6QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlO0lBQ3ZDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLGtCQUFrQjtJQUM3QyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3JDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWU7SUFDbEMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsYUFBYTtJQUN2QyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3JDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0lBQ3ZELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0NBQzFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FLckIsS0FBaUIsRUFDRyxFQUFFO0lBQ3RCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQmFzaWNTaGFwZXMsXG4gICAgRHJhd09wdGlvbnMsXG4gICAgRHJhd1NoYXBlcyxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLFxuICAgIFBsYWl0R2VvbWV0cnksXG4gICAgU2hhcGVFbmdpbmUsXG4gICAgU3dpbWxhbmVTeW1ib2xzLFxuICAgIFRhYmxlU3ltYm9scyxcbiAgICBUZXh0UmVjdGFuZ2xlT3B0aW9ucyxcbiAgICBVTUxTeW1ib2xzXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2NvbW1lbnQnO1xuaW1wb3J0IHsgQ3Jvc3NFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jcm9zcyc7XG5pbXBvcnQgeyBEaWFtb25kRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvZGlhbW9uZCc7XG5pbXBvcnQgeyBFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvZWxsaXBzZSc7XG5pbXBvcnQgeyBIZXhhZ29uRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvaGV4YWdvbic7XG5pbXBvcnQgeyBMZWZ0QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9sZWZ0LWFycm93JztcbmltcG9ydCB7IE9jdGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9vY3RhZ29uJztcbmltcG9ydCB7IFBhcmFsbGVsb2dyYW1FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wYXJhbGxlbG9ncmFtJztcbmltcG9ydCB7IFBlbnRhZ29uRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24nO1xuaW1wb3J0IHsgUGVudGFnb25BcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BlbnRhZ29uLWFycm93JztcbmltcG9ydCB7IFByb2Nlc3NBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3Byb2Nlc3MtYXJyb3cnO1xuaW1wb3J0IHsgUmlnaHRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JpZ2h0LWFycm93JztcbmltcG9ydCB7IFJvdW5kQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLWNvbW1lbnQnO1xuaW1wb3J0IHsgUm91bmRSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuaW1wb3J0IHsgVHJhcGV6b2lkRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJhcGV6b2lkJztcbmltcG9ydCB7IFRyaWFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJpYW5nbGUnO1xuaW1wb3J0IHsgVHdvV2F5QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90d28td2F5LWFycm93JztcbmltcG9ydCB7IFN0YXJFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9zdGFyJztcbmltcG9ydCB7IFRlcm1pbmFsRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvdGVybWluYWwnO1xuaW1wb3J0IHsgTWFudWFsSW5wdXRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtaW5wdXQnO1xuaW1wb3J0IHsgUHJlcGFyYXRpb25FbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9wcmVwYXJhdGlvbic7XG5pbXBvcnQgeyBNYW51YWxMb29wRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWFudWFsLWxvb3AnO1xuaW1wb3J0IHsgTWVyZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tZXJnZSc7XG5pbXBvcnQgeyBEZWxheUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RlbGF5JztcbmltcG9ydCB7IFN0b3JlZERhdGFFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9zdG9yZWQtZGF0YSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZWRlZmluZWQtcHJvY2Vzcyc7XG5pbXBvcnQgeyBPZmZQYWdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb2ZmLXBhZ2UnO1xuaW1wb3J0IHsgQ2xvdWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jbG91ZCc7XG5pbXBvcnQgeyBPckVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L29yJztcbmltcG9ydCB7IFN1bW1pbmdKdW5jdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24nO1xuaW1wb3J0IHsgRG9jdW1lbnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kb2N1bWVudCc7XG5pbXBvcnQgeyBNdWx0aURvY3VtZW50RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbXVsdGktZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGF0YWJhc2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kYXRhYmFzZSc7XG5pbXBvcnQgeyBIYXJkRGlza0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2hhcmQtZGlzayc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JhZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9pbnRlcm5hbC1zdG9yYWdlJztcbmltcG9ydCB7IE5vdGVDdXJseUxlZnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LWxlZnQnO1xuaW1wb3J0IHsgTm90ZUN1cmx5UmlnaHRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LXJpZ2h0JztcbmltcG9ydCB7IE5vdGVTcXVhcmVFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLXNxdWFyZSc7XG5pbXBvcnQgeyBEaXNwbGF5RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZGlzcGxheSc7XG5pbXBvcnQgeyBUYWJsZUVuZ2luZSB9IGZyb20gJy4vdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcmVjdGFuZ2xlJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFjdG9yRW5naW5lIH0gZnJvbSAnLi91bWwvYWN0b3InO1xuaW1wb3J0IHsgQ29udGFpbmVyRW5naW5lIH0gZnJvbSAnLi91bWwvY29udGFpbmVyJztcbmltcG9ydCB7IFBhY2thZ2VFbmdpbmUgfSBmcm9tICcuL3VtbC9wYWNrYWdlJztcbmltcG9ydCB7IENvbWJpbmVkRnJhZ21lbnRFbmdpbmUgfSBmcm9tICcuL3VtbC9jb21iaW5lZC1mcmFnbWVudCc7XG5pbXBvcnQgeyBEZWxldGlvbkVuZ2luZSB9IGZyb20gJy4vdW1sL2RlbGV0aW9uJztcbmltcG9ydCB7IEFjdGl2ZUNsYXNzRW5naW5lIH0gZnJvbSAnLi91bWwvYWN0aXZpdHktY2xhc3MnO1xuaW1wb3J0IHsgTm90ZUVuZ2luZSB9IGZyb20gJy4vdW1sL25vdGUnO1xuaW1wb3J0IHsgQXNzZW1ibHlFbmdpbmUgfSBmcm9tICcuL3VtbC9hc3NlbWJseSc7XG5pbXBvcnQgeyBSZXF1aXJlZEludGVyZmFjZUVuZ2luZSB9IGZyb20gJy4vdW1sL3JlcXVpcmVkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBQcm92aWRlZEludGVyZmFjZUVuZ2luZSB9IGZyb20gJy4vdW1sL3Byb3ZpZGVkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnRFbmdpbmUgfSBmcm9tICcuL3VtbC9jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50Qm94RW5naW5lIH0gZnJvbSAnLi91bWwvY29tcG9uZW50LWJveCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUVuZ2luZSB9IGZyb20gJy4vdW1sL3RlbXBsYXRlJztcblxuY29uc3QgU2hhcGVFbmdpbmVNYXA6IFJlY29yZDxEcmF3U2hhcGVzLCBTaGFwZUVuZ2luZTxhbnksIGFueSwgYW55Pj4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnJlY3RhbmdsZV06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuZGlhbW9uZF06IERpYW1vbmRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmVsbGlwc2VdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wYXJhbGxlbG9ncmFtXTogUGFyYWxsZWxvZ3JhbUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRSZWN0YW5nbGVdOiBSb3VuZFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudGV4dF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJpYW5nbGVdOiBUcmlhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogTGVmdEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50cmFwZXpvaWRdOiBUcmFwZXpvaWRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBSaWdodEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jcm9zc106IENyb3NzRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5zdGFyXTogU3RhckVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25dOiBQZW50YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuaGV4YWdvbl06IEhleGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLm9jdGFnb25dOiBPY3RhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogUGVudGFnb25BcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogUHJvY2Vzc0Fycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IFR3b1dheUFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jb21tZW50XTogQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRDb21tZW50XTogUm91bmRDb21tZW50RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IENsb3VkRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEaWFtb25kRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IEVsbGlwc2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBUZXJtaW5hbEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERhdGFiYXNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogSGFyZERpc2tFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogSW50ZXJuYWxTdG9yYWdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogTWFudWFsSW5wdXRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBQcmVwYXJhdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogTWFudWFsTG9vcEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IE1lcmdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVsYXlFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IFN0b3JlZERhdGFFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBPckVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBTdW1taW5nSnVuY3Rpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogT2ZmUGFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBNdWx0aURvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBOb3RlQ3VybHlMZWZ0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogTm90ZUN1cmx5UmlnaHRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IE5vdGVTcXVhcmVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGlzcGxheV06IERpc3BsYXlFbmdpbmUsXG4gICAgW1N3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbVGFibGVTeW1ib2xzLnRhYmxlXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYWN0b3JdOiBBY3RvckVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy51c2VDYXNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb250YWluZXJdOiBDb250YWluZXJFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMubm90ZV06IE5vdGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucGFja2FnZV06IFBhY2thZ2VFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF06IENvbWJpbmVkRnJhZ21lbnRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY2xhc3NdOiBUYWJsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5pbnRlcmZhY2VdOiBUYWJsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5hY3RpdmF0aW9uXTogUmVjdGFuZ2xlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLm9iamVjdF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5kZWxldGlvbl06IERlbGV0aW9uRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmFjdGl2aXR5Q2xhc3NdOiBBY3RpdmVDbGFzc0VuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5zaW1wbGVDbGFzc106IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb21wb25lbnRdOiBDb21wb25lbnRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tcG9uZW50Qm94XTogQ29tcG9uZW50Qm94RW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnRlbXBsYXRlXTogVGVtcGxhdGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucG9ydF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5icmFuY2hNZXJnZV06IERpYW1vbmRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYXNzZW1ibHldOiBBc3NlbWJseUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5yZXF1aXJlZEludGVyZmFjZV06IFJlcXVpcmVkSW50ZXJmYWNlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnByb3ZpZGVkSW50ZXJmYWNlXTogUHJvdmlkZWRJbnRlcmZhY2VFbmdpbmVcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmdpbmUgPSA8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnksXG4gICAgUCBleHRlbmRzIERyYXdPcHRpb25zID0gRHJhd09wdGlvbnMsXG4gICAgSyBleHRlbmRzIFRleHRSZWN0YW5nbGVPcHRpb25zID0gVGV4dFJlY3RhbmdsZU9wdGlvbnNcbj4oXG4gICAgc2hhcGU6IERyYXdTaGFwZXNcbik6IFNoYXBlRW5naW5lPFQsIFAsIEs+ID0+IHtcbiAgICByZXR1cm4gU2hhcGVFbmdpbmVNYXBbc2hhcGVdO1xufTtcbiJdfQ==