@plait/draw 0.62.0-next.0 → 0.62.0-next.10

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 (152) hide show
  1. package/arrow-line.component.d.ts +26 -0
  2. package/constants/geometry.d.ts +1 -0
  3. package/constants/pointer.d.ts +3 -3
  4. package/esm2022/arrow-line.component.mjs +157 -0
  5. package/esm2022/constants/geometry.mjs +10 -3
  6. package/esm2022/constants/pointer.mjs +4 -4
  7. package/esm2022/engines/basic-shapes/ellipse.mjs +5 -3
  8. package/esm2022/engines/basic-shapes/round-comment.mjs +5 -3
  9. package/esm2022/engines/flowchart/note-curly-left.mjs +2 -2
  10. package/esm2022/engines/flowchart/note-curly-right.mjs +7 -7
  11. package/esm2022/engines/flowchart/note-square.mjs +2 -2
  12. package/esm2022/engines/flowchart/or.mjs +5 -3
  13. package/esm2022/engines/flowchart/summing-junction.mjs +5 -3
  14. package/esm2022/engines/table/table.mjs +48 -26
  15. package/esm2022/engines/uml/deletion.mjs +3 -2
  16. package/esm2022/engines/uml/required-interface.mjs +3 -2
  17. package/esm2022/generators/arrow-line-active.generator.mjs +81 -0
  18. package/esm2022/generators/arrow-line-auto-complete.generator.mjs +46 -0
  19. package/esm2022/generators/arrow-line.generator.mjs +13 -0
  20. package/esm2022/generators/index.mjs +3 -3
  21. package/esm2022/generators/table.generator.mjs +8 -4
  22. package/esm2022/geometry.component.mjs +4 -4
  23. package/esm2022/image.component.mjs +4 -4
  24. package/esm2022/interfaces/arrow-line.mjs +70 -0
  25. package/esm2022/interfaces/element.mjs +2 -2
  26. package/esm2022/interfaces/index.mjs +14 -7
  27. package/esm2022/interfaces/vector-line.mjs +6 -0
  28. package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +41 -0
  29. package/esm2022/plugins/with-arrow-line-auto-complete.mjs +74 -0
  30. package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +53 -0
  31. package/esm2022/plugins/with-arrow-line-create.mjs +53 -0
  32. package/esm2022/plugins/with-arrow-line-resize.mjs +158 -0
  33. package/esm2022/plugins/with-arrow-line-text-move.mjs +53 -0
  34. package/esm2022/plugins/with-arrow-line-text.mjs +63 -0
  35. package/esm2022/plugins/with-draw-fragment.mjs +13 -13
  36. package/esm2022/plugins/with-draw-resize.mjs +12 -5
  37. package/esm2022/plugins/with-draw.mjs +27 -20
  38. package/esm2022/plugins/with-geometry-resize.mjs +1 -1
  39. package/esm2022/plugins/with-swimlane-create.mjs +4 -7
  40. package/esm2022/plugins/with-swimlane.mjs +1 -20
  41. package/esm2022/plugins/with-table.mjs +34 -7
  42. package/esm2022/public-api.mjs +3 -3
  43. package/esm2022/table.component.mjs +6 -6
  44. package/esm2022/transforms/arrow-line.mjs +66 -0
  45. package/esm2022/transforms/common.mjs +36 -0
  46. package/esm2022/transforms/geometry.mjs +6 -28
  47. package/esm2022/transforms/index.mjs +15 -13
  48. package/esm2022/transforms/swimlane.mjs +1 -29
  49. package/esm2022/transforms/table-text.mjs +5 -5
  50. package/esm2022/transforms/table.mjs +30 -0
  51. package/esm2022/utils/arrow-line/arrow-line-arrow.mjs +123 -0
  52. package/esm2022/utils/arrow-line/arrow-line-basic.mjs +257 -0
  53. package/esm2022/utils/arrow-line/arrow-line-common.mjs +162 -0
  54. package/esm2022/utils/arrow-line/arrow-line-resize.mjs +309 -0
  55. package/esm2022/utils/arrow-line/elbow.mjs +114 -0
  56. package/esm2022/utils/arrow-line/index.mjs +6 -0
  57. package/esm2022/utils/clipboard.mjs +10 -10
  58. package/esm2022/utils/common.mjs +14 -5
  59. package/esm2022/utils/geometry.mjs +17 -14
  60. package/esm2022/utils/hit.mjs +67 -44
  61. package/esm2022/utils/index.mjs +2 -2
  62. package/esm2022/utils/memorize.mjs +4 -5
  63. package/esm2022/utils/position/arrow-line.mjs +67 -0
  64. package/esm2022/utils/position/geometry.mjs +1 -1
  65. package/esm2022/utils/selected.mjs +3 -3
  66. package/esm2022/utils/style/stroke.mjs +4 -4
  67. package/esm2022/utils/swimlane.mjs +17 -8
  68. package/esm2022/utils/table-selected.mjs +3 -4
  69. package/esm2022/utils/table.mjs +28 -5
  70. package/fesm2022/plait-draw.mjs +673 -514
  71. package/fesm2022/plait-draw.mjs.map +1 -1
  72. package/generators/arrow-line-active.generator.d.ts +13 -0
  73. package/generators/{line-auto-complete.generator.d.ts → arrow-line-auto-complete.generator.d.ts} +1 -1
  74. package/generators/arrow-line.generator.d.ts +8 -0
  75. package/generators/index.d.ts +2 -2
  76. package/geometry.component.d.ts +2 -2
  77. package/image.component.d.ts +2 -2
  78. package/interfaces/arrow-line.d.ts +75 -0
  79. package/interfaces/element.d.ts +1 -1
  80. package/interfaces/index.d.ts +6 -4
  81. package/interfaces/vector-line.d.ts +16 -0
  82. package/package.json +12 -4
  83. package/plugins/with-arrow-line-auto-complete-reaction.d.ts +2 -0
  84. package/plugins/with-arrow-line-auto-complete.d.ts +7 -0
  85. package/plugins/with-arrow-line-bound-reaction.d.ts +2 -0
  86. package/plugins/with-arrow-line-create.d.ts +2 -0
  87. package/plugins/with-arrow-line-resize.d.ts +2 -0
  88. package/plugins/with-arrow-line-text-move.d.ts +2 -0
  89. package/plugins/with-arrow-line-text.d.ts +2 -0
  90. package/plugins/with-draw-fragment.d.ts +2 -2
  91. package/plugins/with-swimlane.d.ts +1 -2
  92. package/public-api.d.ts +2 -2
  93. package/table.component.d.ts +2 -2
  94. package/transforms/arrow-line.d.ts +8 -0
  95. package/transforms/common.d.ts +3 -0
  96. package/transforms/geometry.d.ts +1 -2
  97. package/transforms/index.d.ts +9 -9
  98. package/transforms/swimlane.d.ts +1 -3
  99. package/transforms/table-text.d.ts +2 -3
  100. package/transforms/table.d.ts +3 -0
  101. package/utils/arrow-line/arrow-line-arrow.d.ts +4 -0
  102. package/utils/arrow-line/arrow-line-basic.d.ts +13 -0
  103. package/utils/{line/line-common.d.ts → arrow-line/arrow-line-common.d.ts} +8 -4
  104. package/utils/{line/line-resize.d.ts → arrow-line/arrow-line-resize.d.ts} +3 -3
  105. package/utils/{line → arrow-line}/elbow.d.ts +7 -7
  106. package/utils/arrow-line/index.d.ts +5 -0
  107. package/utils/clipboard.d.ts +4 -4
  108. package/utils/common.d.ts +1 -0
  109. package/utils/geometry.d.ts +2 -1
  110. package/utils/hit.d.ts +7 -4
  111. package/utils/index.d.ts +1 -1
  112. package/utils/position/arrow-line.d.ts +16 -0
  113. package/utils/selected.d.ts +2 -2
  114. package/utils/style/stroke.d.ts +3 -4
  115. package/utils/swimlane.d.ts +3 -2
  116. package/utils/table.d.ts +2 -0
  117. package/esm2022/generators/line-active.generator.mjs +0 -81
  118. package/esm2022/generators/line-auto-complete.generator.mjs +0 -46
  119. package/esm2022/generators/line.generator.mjs +0 -13
  120. package/esm2022/interfaces/line.mjs +0 -70
  121. package/esm2022/line.component.mjs +0 -155
  122. package/esm2022/plugins/with-line-auto-complete-reaction.mjs +0 -41
  123. package/esm2022/plugins/with-line-auto-complete.mjs +0 -75
  124. package/esm2022/plugins/with-line-bound-reaction.mjs +0 -53
  125. package/esm2022/plugins/with-line-create.mjs +0 -53
  126. package/esm2022/plugins/with-line-resize.mjs +0 -158
  127. package/esm2022/plugins/with-line-text-move.mjs +0 -53
  128. package/esm2022/plugins/with-line-text.mjs +0 -62
  129. package/esm2022/transforms/line.mjs +0 -100
  130. package/esm2022/utils/line/elbow.mjs +0 -114
  131. package/esm2022/utils/line/index.mjs +0 -6
  132. package/esm2022/utils/line/line-arrow.mjs +0 -123
  133. package/esm2022/utils/line/line-basic.mjs +0 -257
  134. package/esm2022/utils/line/line-common.mjs +0 -123
  135. package/esm2022/utils/line/line-resize.mjs +0 -309
  136. package/esm2022/utils/position/line.mjs +0 -67
  137. package/generators/line-active.generator.d.ts +0 -13
  138. package/generators/line.generator.d.ts +0 -8
  139. package/interfaces/line.d.ts +0 -75
  140. package/line.component.d.ts +0 -26
  141. package/plugins/with-line-auto-complete-reaction.d.ts +0 -2
  142. package/plugins/with-line-auto-complete.d.ts +0 -7
  143. package/plugins/with-line-bound-reaction.d.ts +0 -2
  144. package/plugins/with-line-create.d.ts +0 -2
  145. package/plugins/with-line-resize.d.ts +0 -2
  146. package/plugins/with-line-text-move.d.ts +0 -2
  147. package/plugins/with-line-text.d.ts +0 -2
  148. package/transforms/line.d.ts +0 -12
  149. package/utils/line/index.d.ts +0 -5
  150. package/utils/line/line-arrow.d.ts +0 -4
  151. package/utils/line/line-basic.d.ts +0 -13
  152. package/utils/position/line.d.ts +0 -16
@@ -2,19 +2,23 @@ import { TableSymbols } from '../interfaces';
2
2
  import { Generator } from '@plait/common';
3
3
  import { RectangleClient } from '@plait/core';
4
4
  import { getEngine } from '../engines';
5
- import { getDrawDefaultStrokeColor } from '../utils';
5
+ import { getLineDashByElement, getStrokeColorByElement, getStrokeWidthByElement } from '../utils';
6
6
  export class TableGenerator extends Generator {
7
7
  canDraw(element, data) {
8
8
  return true;
9
9
  }
10
10
  draw(element, data) {
11
11
  const rectangle = RectangleClient.getRectangleByPoints(element.points);
12
+ const strokeLineDash = getLineDashByElement(element);
13
+ const strokeWidth = getStrokeWidthByElement(element);
14
+ const strokeColor = getStrokeColorByElement(this.board, element);
12
15
  return getEngine(TableSymbols.table).draw(this.board, rectangle, {
13
- strokeWidth: 2,
14
- stroke: getDrawDefaultStrokeColor(this.board.theme.themeColorMode),
16
+ strokeWidth,
17
+ stroke: strokeColor,
18
+ strokeLineDash,
15
19
  }, {
16
20
  element: element
17
21
  });
18
22
  }
19
23
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy90YWJsZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXJELE1BQU0sT0FBTyxjQUF3RCxTQUFRLFNBQXVCO0lBQ2hHLE9BQU8sQ0FBQyxPQUFVLEVBQUUsSUFBZTtRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVUsRUFBRSxJQUFlO1FBQzVCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckMsSUFBSSxDQUFDLEtBQUssRUFDVixTQUFTLEVBQ1Q7WUFDSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDckUsRUFDRDtZQUNJLE9BQU8sRUFBRSxPQUFPO1NBQ25CLENBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlU3ltYm9scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0QmFzZVRhYmxlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWJsZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IGdldERyYXdEZWZhdWx0U3Ryb2tlQ29sb3IgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVEYXRhIHt9XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUdlbmVyYXRvcjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRCYXNlVGFibGU+IGV4dGVuZHMgR2VuZXJhdG9yPFQsIFRhYmxlRGF0YT4ge1xuICAgIGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YTogVGFibGVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgZGF0YTogVGFibGVEYXRhKSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICByZXR1cm4gZ2V0RW5naW5lKFRhYmxlU3ltYm9scy50YWJsZSkuZHJhdyhcbiAgICAgICAgICAgIHRoaXMuYm9hcmQsXG4gICAgICAgICAgICByZWN0YW5nbGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBnZXREcmF3RGVmYXVsdFN0cm9rZUNvbG9yKHRoaXMuYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGUpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy90YWJsZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUErQyxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUkvSSxNQUFNLE9BQU8sY0FBd0QsU0FBUSxTQUF1QjtJQUNoRyxPQUFPLENBQUMsT0FBVSxFQUFFLElBQWU7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFVLEVBQUUsSUFBZTtRQUM1QixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakUsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckMsSUFBSSxDQUFDLEtBQUssRUFDVixTQUFTLEVBQ1Q7WUFDSSxXQUFXO1lBQ1gsTUFBTSxFQUFFLFdBQVc7WUFDbkIsY0FBYztTQUNqQixFQUNEO1lBQ0ksT0FBTyxFQUFFLE9BQU87U0FDbkIsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVTeW1ib2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvciwgZ2V0RmlsbEJ5RWxlbWVudCwgZ2V0TGluZURhc2hCeUVsZW1lbnQsIGdldFN0cm9rZUNvbG9yQnlFbGVtZW50LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGEge31cblxuZXhwb3J0IGNsYXNzIFRhYmxlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEJhc2VUYWJsZT4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgVGFibGVEYXRhPiB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhOiBUYWJsZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCBkYXRhOiBUYWJsZURhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUxpbmVEYXNoID0gZ2V0TGluZURhc2hCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUNvbG9yID0gZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBnZXRFbmdpbmUoVGFibGVTeW1ib2xzLnRhYmxlKS5kcmF3KFxuICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIHJlY3RhbmdsZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgICAgICBzdHJva2U6IHN0cm9rZUNvbG9yLFxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVEYXNoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { PlaitBoard, isSelectionMoving, getSelectedElements, ACTIVE_STROKE_WIDTH
2
2
  import { GeometryShapeGenerator } from './generators/geometry-shape.generator';
3
3
  import { DrawTransforms } from './transforms';
4
4
  import { ActiveGenerator, CommonElementFlavour, canResize } from '@plait/common';
5
- import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
5
+ import { ArrowLineAutoCompleteGenerator } from './generators/arrow-line-auto-complete.generator';
6
6
  import { getTextRectangle, isGeometryIncludeText, isMultipleTextGeometry, memorizeLatestText } from './utils';
7
7
  import { TextGenerator } from './generators/text.generator';
8
8
  import { SingleTextGenerator } from './generators/single-text.generator';
@@ -39,12 +39,12 @@ export class GeometryComponent extends CommonElementFlavour {
39
39
  return canResize(this.board, this.element);
40
40
  }
41
41
  });
42
- this.lineAutoCompleteGenerator = new LineAutoCompleteGenerator(this.board);
42
+ this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
43
43
  this.shapeGenerator = new GeometryShapeGenerator(this.board);
44
44
  if (isGeometryIncludeText(this.element)) {
45
45
  this.initializeTextManage();
46
46
  }
47
- this.getRef().addGenerator(LineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
47
+ this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
48
48
  this.getRef().addGenerator(ActiveGenerator.key, this.activeGenerator);
49
49
  }
50
50
  initialize() {
@@ -134,4 +134,4 @@ export class GeometryComponent extends CommonElementFlavour {
134
134
  this.textGenerator?.destroy();
135
135
  }
136
136
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUcsT0FBTyxFQUFzQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQXFEO0lBVXhGO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4RSxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2xFLE9BQU8sbUJBQW1CLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPLG1CQUFtQixDQUFDO2dCQUMvQixDQUFDO1lBQ0wsQ0FBQztZQUNELGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNsRSxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsQ0FBQyxPQUE0QixFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQ0QsZUFBZSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFVBQVU7UUFDTixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUF3QixFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGdCQUFnQixDQUNaLEtBQWlFLEVBQ2pFLFFBQW9FO1FBRXBFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDaEYsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ25ILElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUMxQixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsZUFBb0MsRUFBRSxjQUFtQztRQUNoRixJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUEwRCxDQUFDLE1BQU0sQ0FDbkUsSUFBSSxDQUFDLE9BQU8sRUFDWixlQUFlLENBQUMsS0FBSyxFQUNyQixjQUFjLENBQUMsS0FBSyxFQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQ3JCLENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNILElBQUksQ0FBQyxhQUFxQyxDQUFDLE1BQU0sQ0FDOUMsSUFBSSxDQUFDLE9BQXdCLEVBQzdCLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDckIsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBNEIsRUFBRSxvQkFBMEMsRUFBRSxJQUF3QixFQUFFLEVBQUU7WUFDeEgsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNsQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7d0JBQ2pELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRzt3QkFDYixJQUFJLEVBQUUsb0JBQW9CLENBQUMsT0FBTzt3QkFDbEMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLE1BQU07cUJBQzFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osY0FBYyxDQUFDLE9BQU8sQ0FDbEIsSUFBSSxDQUFDLEtBQUssRUFDVixPQUF3QixFQUN4QixvQkFBb0IsQ0FBQyxPQUFPLEVBQzVCLG9CQUFvQixDQUFDLEtBQUssRUFDMUIsb0JBQW9CLENBQUMsTUFBTSxDQUM5QixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQXdCLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlILENBQUM7WUFDRCxvQkFBb0IsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQztRQUVGLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FDbEMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsT0FBb0MsRUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFNLEVBQ25CO2dCQUNJLFFBQVEsRUFBRSxZQUFZO2FBQ3pCLENBQ0osQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZHLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNkLElBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ2pELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDO29CQUNwRSxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNmLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUM7b0JBQ0QsT0FBUSxJQUFJLENBQUMsT0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pHLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFJlY3RhbmdsZUNsaWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEdlb21ldHJ5LCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2dlb21ldHJ5JztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciwgQ29tbW9uRWxlbWVudEZsYXZvdXIsIFRleHRNYW5hZ2VDaGFuZ2VEYXRhLCBjYW5SZXNpemUgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlLCBpc0dlb21ldHJ5SW5jbHVkZVRleHQsIGlzTXVsdGlwbGVUZXh0R2VvbWV0cnksIG1lbW9yaXplTGF0ZXN0VGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGxhaXREcmF3U2hhcGVUZXh0LCBUZXh0R2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFNpbmdsZVRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvc2luZ2xlLXRleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGV4dCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHZW9tZXRyeVRocmVzaG9sZCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4vZW5naW5lcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUNvbXBvbmVudCBleHRlbmRzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkNvbnRleHRDaGFuZ2VkPFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+IHtcbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8UGxhaXRDb21tb25HZW9tZXRyeT47XG5cbiAgICBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yITogTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcjtcblxuICAgIHNoYXBlR2VuZXJhdG9yITogR2VvbWV0cnlTaGFwZUdlbmVyYXRvcjtcblxuICAgIHRleHRHZW5lcmF0b3IhOiBUZXh0R2VuZXJhdG9yPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnk+IHwgU2luZ2xlVGV4dEdlbmVyYXRvcjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVHZW5lcmF0b3IoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gbmV3IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdENvbW1vbkdlb21ldHJ5Pih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuUmVzaXplKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgPSBuZXcgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoaXNHZW9tZXRyeUluY2x1ZGVUZXh0KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLmtleSwgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yKTtcbiAgICAgICAgdGhpcy5nZXRSZWYoKS5hZGRHZW5lcmF0b3IoQWN0aXZlR2VuZXJhdG9yLmtleSwgdGhpcy5hY3RpdmVHZW5lcmF0b3IpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplR2VuZXJhdG9yKCk7XG4gICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvciAmJiB0aGlzLnRleHRHZW5lcmF0b3IuZHJhdyh0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICBjb25zdCBpc0NoYW5nZVRoZW1lID0gdGhpcy5ib2FyZC5vcGVyYXRpb25zLmZpbmQob3AgPT4gb3AudHlwZSA9PT0gJ3NldF90aGVtZScpO1xuICAgICAgICBpZiAodmFsdWUuZWxlbWVudCAhPT0gcHJldmlvdXMuZWxlbWVudCB8fCBpc0NoYW5nZVRoZW1lKSB7XG4gICAgICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCB0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yICYmIHRoaXMudXBkYXRlVGV4dChwcmV2aW91cy5lbGVtZW50LCB2YWx1ZS5lbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVTZWxlY3RlZCA9IHZhbHVlLnNlbGVjdGVkID09PSBwcmV2aW91cy5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVIYW5kbGVTdGF0ZSA9IHRoaXMuYWN0aXZlR2VuZXJhdG9yLm9wdGlvbnMuaGFzUmVzaXplSGFuZGxlKCkgPT09IHRoaXMuYWN0aXZlR2VuZXJhdG9yLmhhc1Jlc2l6ZUhhbmRsZTtcbiAgICAgICAgICAgIGlmICghaGFzU2FtZVNlbGVjdGVkIHx8ICFoYXNTYW1lSGFuZGxlU3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KHByZXZpb3VzRWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgY3VycmVudEVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnkpIHtcbiAgICAgICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgKHRoaXMudGV4dEdlbmVyYXRvciBhcyBUZXh0R2VuZXJhdG9yPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnk+KS51cGRhdGUoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudC50ZXh0cyxcbiAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudC50ZXh0cyxcbiAgICAgICAgICAgICAgICB0aGlzLmdldEVsZW1lbnRHKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAodGhpcy50ZXh0R2VuZXJhdG9yIGFzIFNpbmdsZVRleHRHZW5lcmF0b3IpLnVwZGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c0VsZW1lbnQudGV4dCxcbiAgICAgICAgICAgICAgICBjdXJyZW50RWxlbWVudC50ZXh0LFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVUZXh0TWFuYWdlKCkge1xuICAgICAgICBjb25zdCBvblRleHRDaGFuZ2UgPSAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgdGV4dE1hbmFnZUNoYW5nZURhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhLCB0ZXh0OiBQbGFpdERyYXdTaGFwZVRleHQpID0+IHtcbiAgICAgICAgICAgIGlmICh0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0RHJhd1NoYXBlVGV4dCh0aGlzLmJvYXJkLCBlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRleHQua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRIZWlnaHQ6IHRleHRNYW5hZ2VDaGFuZ2VEYXRhLmhlaWdodFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXRUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS53aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLmhlaWdodFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0VGV4dFNpemUodGhpcy5ib2FyZCwgZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS53aWR0aCwgdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm9wZXJhdGlvbnMgJiYgbWVtb3JpemVMYXRlc3RUZXh0KGVsZW1lbnQsIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm9wZXJhdGlvbnMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dEdlbmVyYXRvciA9IG5ldyBUZXh0R2VuZXJhdG9yPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnk+KFxuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQsXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50IGFzIFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRleHRzISxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBvblRleHRDaGFuZ2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yID0gbmV3IFNpbmdsZVRleHRHZW5lcmF0b3IodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRoaXMuZWxlbWVudC50ZXh0LCB7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uVGV4dENoYW5nZSxcbiAgICAgICAgICAgICAgICBnZXRNYXhXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSBnZXRUZXh0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCkud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdldFJlY3RhbmdsZSA9IGdldEVuZ2luZSh0aGlzLmVsZW1lbnQuc2hhcGUpLmdldFRleHRSZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChnZXRSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5KS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuZWxlbWVudCBhcyBQbGFpdFRleHQpPy5hdXRvU2l6ZSA/IEdlb21ldHJ5VGhyZXNob2xkLmRlZmF1bHRUZXh0TWF4V2lkdGggOiB3aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3I/LmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUcsT0FBTyxFQUFzQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQXFEO0lBVXhGO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4RSxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2xFLE9BQU8sbUJBQW1CLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPLG1CQUFtQixDQUFDO2dCQUMvQixDQUFDO1lBQ0wsQ0FBQztZQUNELGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNsRSxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsQ0FBQyxPQUE0QixFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQ0QsZUFBZSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9GLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFVBQVU7UUFDTixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUF3QixFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGdCQUFnQixDQUNaLEtBQWlFLEVBQ2pFLFFBQW9FO1FBRXBFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDaEYsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ25ILElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzVILElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDdEgsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUMxQixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsZUFBb0MsRUFBRSxjQUFtQztRQUNoRixJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUEwRCxDQUFDLE1BQU0sQ0FDbkUsSUFBSSxDQUFDLE9BQU8sRUFDWixlQUFlLENBQUMsS0FBSyxFQUNyQixjQUFjLENBQUMsS0FBSyxFQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQ3JCLENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNILElBQUksQ0FBQyxhQUFxQyxDQUFDLE1BQU0sQ0FDOUMsSUFBSSxDQUFDLE9BQXdCLEVBQzdCLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDckIsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBNEIsRUFBRSxvQkFBMEMsRUFBRSxJQUF3QixFQUFFLEVBQUU7WUFDeEgsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNsQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7d0JBQ2pELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRzt3QkFDYixJQUFJLEVBQUUsb0JBQW9CLENBQUMsT0FBTzt3QkFDbEMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLE1BQU07cUJBQzFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osY0FBYyxDQUFDLE9BQU8sQ0FDbEIsSUFBSSxDQUFDLEtBQUssRUFDVixPQUF3QixFQUN4QixvQkFBb0IsQ0FBQyxPQUFPLEVBQzVCLG9CQUFvQixDQUFDLEtBQUssRUFDMUIsb0JBQW9CLENBQUMsTUFBTSxDQUM5QixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQXdCLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlILENBQUM7WUFDRCxvQkFBb0IsQ0FBQyxVQUFVLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQztRQUVGLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FDbEMsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsT0FBb0MsRUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFNLEVBQ25CO2dCQUNJLFFBQVEsRUFBRSxZQUFZO2FBQ3pCLENBQ0osQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQXdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZHLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNkLElBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ2pELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDO29CQUNwRSxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNmLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUM7b0JBQ0QsT0FBUSxJQUFJLENBQUMsT0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2pHLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFJlY3RhbmdsZUNsaWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEdlb21ldHJ5LCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2dlb21ldHJ5JztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciwgQ29tbW9uRWxlbWVudEZsYXZvdXIsIFRleHRNYW5hZ2VDaGFuZ2VEYXRhLCBjYW5SZXNpemUgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9hcnJvdy1saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzR2VvbWV0cnlJbmNsdWRlVGV4dCwgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSwgbWVtb3JpemVMYXRlc3RUZXh0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQsIFRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2luZ2xlVGV4dEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUZXh0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlb21ldHJ5VGhyZXNob2xkIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi9lbmdpbmVzJztcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5Q29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4ge1xuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdENvbW1vbkdlb21ldHJ5PjtcblxuICAgIGxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IhOiBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I7XG5cbiAgICBzaGFwZUdlbmVyYXRvciE6IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3I7XG5cbiAgICB0ZXh0R2VuZXJhdG9yITogVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PiB8IFNpbmdsZVRleHRHZW5lcmF0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8UGxhaXRDb21tb25HZW9tZXRyeT4odGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhblJlc2l6ZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoaXNHZW9tZXRyeUluY2x1ZGVUZXh0KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yICYmIHRoaXMudGV4dEdlbmVyYXRvci5kcmF3KHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IGlzQ2hhbmdlVGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgJiYgdGhpcy51cGRhdGVUZXh0KHByZXZpb3VzLmVsZW1lbnQsIHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZUhhbmRsZVN0YXRlID0gdGhpcy5hY3RpdmVHZW5lcmF0b3Iub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSA9PT0gdGhpcy5hY3RpdmVHZW5lcmF0b3IuaGFzUmVzaXplSGFuZGxlO1xuICAgICAgICAgICAgaWYgKCFoYXNTYW1lU2VsZWN0ZWQgfHwgIWhhc1NhbWVIYW5kbGVTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRleHQocHJldmlvdXNFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBjdXJyZW50RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSkge1xuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAodGhpcy50ZXh0R2VuZXJhdG9yIGFzIFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4pLnVwZGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICh0aGlzLnRleHRHZW5lcmF0b3IgYXMgU2luZ2xlVGV4dEdlbmVyYXRvcikudXBkYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudC50ZXh0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHQsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50RygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKSB7XG4gICAgICAgIGNvbnN0IG9uVGV4dENoYW5nZSA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YTogVGV4dE1hbmFnZUNoYW5nZURhdGEsIHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeShlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXREcmF3U2hhcGVUZXh0KHRoaXMuYm9hcmQsIGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGV4dC5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEhlaWdodDogdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldFRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXRUZXh0U2l6ZSh0aGlzLmJvYXJkLCBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQoZWxlbWVudCwgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yID0gbmV3IFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4oXG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgYXMgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGV4dHMhLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uVGV4dENoYW5nZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgPSBuZXcgU2luZ2xlVGV4dEdlbmVyYXRvcih0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5lbGVtZW50LnRleHQsIHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25UZXh0Q2hhbmdlLFxuICAgICAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGdldFRleHRSZWN0YW5nbGUodGhpcy5lbGVtZW50KS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0UmVjdGFuZ2xlID0gZ2V0RW5naW5lKHRoaXMuZWxlbWVudC5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBnZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnkpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5lbGVtZW50IGFzIFBsYWl0VGV4dCk/LmF1dG9TaXplID8gR2VvbWV0cnlUaHJlc2hvbGQuZGVmYXVsdFRleHRNYXhXaWR0aCA6IHdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvci5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { PlaitBoard } from '@plait/core';
2
2
  import { CommonElementFlavour, ImageGenerator } from '@plait/common';
3
- import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
3
+ import { ArrowLineAutoCompleteGenerator } from './generators/arrow-line-auto-complete.generator';
4
4
  export class ImageComponent extends CommonElementFlavour {
5
5
  constructor() {
6
6
  super();
@@ -23,8 +23,8 @@ export class ImageComponent extends CommonElementFlavour {
23
23
  };
24
24
  }
25
25
  });
26
- this.lineAutoCompleteGenerator = new LineAutoCompleteGenerator(this.board);
27
- this.getRef().addGenerator(LineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
26
+ this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
27
+ this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
28
28
  }
29
29
  initialize() {
30
30
  super.initialize();
@@ -60,4 +60,4 @@ export class ImageComponent extends CommonElementFlavour {
60
60
  this.lineAutoCompleteGenerator.destroy();
61
61
  }
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQStDLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsTUFBTSxPQUFPLGNBQWUsU0FBUSxvQkFBNEM7SUFLNUU7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFhLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0QsWUFBWSxFQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNsQyxPQUFPO29CQUNILENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RELENBQUM7WUFDTixDQUFDO1lBQ0QsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNwQixPQUFPO29CQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztvQkFDaEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xELE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0RCxDQUFDO1lBQ04sQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsVUFBVTtRQUNOLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JHLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQ1osS0FBd0QsRUFDeEQsUUFBMkQ7UUFFM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JHLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWU7Z0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7WUFDMUgsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDckcsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUMxQixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsIE9uQ29udGV4dENoYW5nZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBDb21tb25FbGVtZW50Rmxhdm91ciwgSW1hZ2VHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuL2ludGVyZmFjZXMvaW1hZ2UnO1xuaW1wb3J0IHsgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4gaW1wbGVtZW50cyBPbkNvbnRleHRDaGFuZ2VkPFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+IHtcbiAgICBpbWFnZUdlbmVyYXRvciE6IEltYWdlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+O1xuXG4gICAgbGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciE6IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I8UGxhaXRJbWFnZT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yID0gbmV3IEltYWdlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0SW1hZ2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB4OiBlbGVtZW50LnBvaW50c1swXVswXSxcbiAgICAgICAgICAgICAgICAgICAgeTogZWxlbWVudC5wb2ludHNbMF1bMV0sXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBlbGVtZW50LnBvaW50c1sxXVswXSAtIGVsZW1lbnQucG9pbnRzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnQucG9pbnRzWzFdWzFdIC0gZWxlbWVudC5wb2ludHNbMF1bMV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldEltYWdlSXRlbTogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBlbGVtZW50LnVybCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGVsZW1lbnQucG9pbnRzWzFdWzBdIC0gZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogZWxlbWVudC5wb2ludHNbMV1bMV0gLSBlbGVtZW50LnBvaW50c1swXVsxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgPSBuZXcgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5nZXRSZWYoKS5hZGRHZW5lcmF0b3IoTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5rZXksIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEltYWdlLCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICBpZiAodmFsdWUuZWxlbWVudCAhPT0gcHJldmlvdXMuZWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci51cGRhdGVJbWFnZSh0aGlzLmdldEVsZW1lbnRHKCksIHByZXZpb3VzLmVsZW1lbnQsIHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5zZXRGb2N1cyh0aGlzLmVsZW1lbnQsIHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVTZWxlY3RlZCA9IHZhbHVlLnNlbGVjdGVkID09PSBwcmV2aW91cy5zZWxlY3RlZDtcbiAgICAgICAgICAgIGNvbnN0IGhhc1NhbWVIYW5kbGVTdGF0ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5hY3RpdmVHZW5lcmF0b3IgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmFjdGl2ZUdlbmVyYXRvci5vcHRpb25zLmhhc1Jlc2l6ZUhhbmRsZSgpID09PSB0aGlzLmltYWdlR2VuZXJhdG9yLmFjdGl2ZUdlbmVyYXRvci5oYXNSZXNpemVIYW5kbGU7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCAhaGFzU2FtZUhhbmRsZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5zZXRGb2N1cyh0aGlzLmVsZW1lbnQsIHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQStDLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFakcsTUFBTSxPQUFPLGNBQWUsU0FBUSxvQkFBNEM7SUFLNUU7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFhLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0QsWUFBWSxFQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNsQyxPQUFPO29CQUNILENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RELENBQUM7WUFDTixDQUFDO1lBQ0QsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNwQixPQUFPO29CQUNILEdBQUcsRUFBRSxPQUFP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LENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsIE9uQ29udGV4dENoYW5nZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBDb21tb25FbGVtZW50Rmxhdm91ciwgSW1hZ2VHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuL2ludGVyZmFjZXMvaW1hZ2UnO1xuaW1wb3J0IHsgQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2Fycm93LWxpbmUtYXV0by1jb21wbGV0ZS5nZW5lcmF0b3InO1xuXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQgZXh0ZW5kcyBDb21tb25FbGVtZW50Rmxhdm91cjxQbGFpdEltYWdlLCBQbGFpdEJvYXJkPiBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4ge1xuICAgIGltYWdlR2VuZXJhdG9yITogSW1hZ2VHZW5lcmF0b3I8UGxhaXRJbWFnZT47XG5cbiAgICBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yITogQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvciA9IG5ldyBJbWFnZUdlbmVyYXRvcjxQbGFpdEltYWdlPih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdEltYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgeDogZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIHk6IGVsZW1lbnQucG9pbnRzWzBdWzFdLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZWxlbWVudC5wb2ludHNbMV1bMF0gLSBlbGVtZW50LnBvaW50c1swXVswXSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBlbGVtZW50LnBvaW50c1sxXVsxXSAtIGVsZW1lbnQucG9pbnRzWzBdWzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJbWFnZUl0ZW06IGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHVybDogZWxlbWVudC51cmwsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBlbGVtZW50LnBvaW50c1sxXVswXSAtIGVsZW1lbnQucG9pbnRzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnQucG9pbnRzWzFdWzFdIC0gZWxlbWVudC5wb2ludHNbMF1bMV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5nZXRSZWYoKS5hZGRHZW5lcmF0b3IoQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLmtleSwgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUdlbmVyYXRvcigpO1xuICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnVwZGF0ZUltYWdlKHRoaXMuZ2V0RWxlbWVudEcoKSwgcHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnNldEZvY3VzKHRoaXMuZWxlbWVudCwgdGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZUhhbmRsZVN0YXRlID1cbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmFjdGl2ZUdlbmVyYXRvciAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VHZW5lcmF0b3IuYWN0aXZlR2VuZXJhdG9yLm9wdGlvbnMuaGFzUmVzaXplSGFuZGxlKCkgPT09IHRoaXMuaW1hZ2VHZW5lcmF0b3IuYWN0aXZlR2VuZXJhdG9yLmhhc1Jlc2l6ZUhhbmRsZTtcbiAgICAgICAgICAgIGlmICghaGFzU2FtZVNlbGVjdGVkIHx8ICFoYXNTYW1lSGFuZGxlU3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnNldEZvY3VzKHRoaXMuZWxlbWVudCwgdGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { getElementById, rotatePointsByElement } from '@plait/core';
2
+ import { getConnectionPoint } from '../utils/arrow-line/arrow-line-common';
3
+ export var ArrowLineMarkerType;
4
+ (function (ArrowLineMarkerType) {
5
+ ArrowLineMarkerType["arrow"] = "arrow";
6
+ ArrowLineMarkerType["none"] = "none";
7
+ ArrowLineMarkerType["openTriangle"] = "open-triangle";
8
+ ArrowLineMarkerType["solidTriangle"] = "solid-triangle";
9
+ ArrowLineMarkerType["sharpArrow"] = "sharp-arrow";
10
+ ArrowLineMarkerType["oneSideUp"] = "one-side-up";
11
+ ArrowLineMarkerType["oneSideDown"] = "one-side-down";
12
+ ArrowLineMarkerType["hollowTriangle"] = "hollow-triangle";
13
+ ArrowLineMarkerType["singleSlash"] = "single-slash";
14
+ })(ArrowLineMarkerType || (ArrowLineMarkerType = {}));
15
+ export var ArrowLineShape;
16
+ (function (ArrowLineShape) {
17
+ ArrowLineShape["straight"] = "straight";
18
+ ArrowLineShape["curve"] = "curve";
19
+ ArrowLineShape["elbow"] = "elbow";
20
+ })(ArrowLineShape || (ArrowLineShape = {}));
21
+ export var ArrowLineHandleKey;
22
+ (function (ArrowLineHandleKey) {
23
+ ArrowLineHandleKey["source"] = "source";
24
+ ArrowLineHandleKey["target"] = "target";
25
+ })(ArrowLineHandleKey || (ArrowLineHandleKey = {}));
26
+ export const PlaitArrowLine = {
27
+ isSourceMarkOrTargetMark(line, markType, handleKey) {
28
+ if (handleKey === ArrowLineHandleKey.source) {
29
+ return line.source.marker === markType;
30
+ }
31
+ else {
32
+ return line.target.marker === markType;
33
+ }
34
+ },
35
+ isSourceMark(line, markType) {
36
+ return PlaitArrowLine.isSourceMarkOrTargetMark(line, markType, ArrowLineHandleKey.source);
37
+ },
38
+ isTargetMark(line, markType) {
39
+ return PlaitArrowLine.isSourceMarkOrTargetMark(line, markType, ArrowLineHandleKey.target);
40
+ },
41
+ isBoundElementOfSource(line, element) {
42
+ return line.source.boundId === element.id;
43
+ },
44
+ isBoundElementOfTarget(line, element) {
45
+ return line.target.boundId === element.id;
46
+ },
47
+ getPoints(board, line) {
48
+ let sourcePoint;
49
+ if (line.source.boundId) {
50
+ const sourceElement = getElementById(board, line.source.boundId);
51
+ const sourceConnectionPoint = getConnectionPoint(sourceElement, line.source.connection);
52
+ sourcePoint = rotatePointsByElement(sourceConnectionPoint, sourceElement) || sourceConnectionPoint;
53
+ }
54
+ else {
55
+ sourcePoint = line.points[0];
56
+ }
57
+ let targetPoint;
58
+ if (line.target.boundId) {
59
+ const targetElement = getElementById(board, line.target.boundId);
60
+ const targetConnectionPoint = getConnectionPoint(targetElement, line.target.connection);
61
+ targetPoint = rotatePointsByElement(targetConnectionPoint, targetElement) || targetConnectionPoint;
62
+ }
63
+ else {
64
+ targetPoint = line.points[line.points.length - 1];
65
+ }
66
+ const restPoints = line.points.length > 2 ? line.points.slice(1, line.points.length - 1) : [];
67
+ return [sourcePoint, ...restPoints, targetPoint];
68
+ }
69
+ };
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2ludGVyZmFjZXMvYXJyb3ctbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUcxSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUczRSxNQUFNLENBQU4sSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzNCLHNDQUFlLENBQUE7SUFDZixvQ0FBYSxDQUFBO0lBQ2IscURBQThCLENBQUE7SUFDOUIsdURBQWdDLENBQUE7SUFDaEMsaURBQTBCLENBQUE7SUFDMUIsZ0RBQXlCLENBQUE7SUFDekIsb0RBQTZCLENBQUE7SUFDN0IseURBQWtDLENBQUE7SUFDbEMsbURBQTRCLENBQUE7QUFDaEMsQ0FBQyxFQVZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFVOUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3RCLHVDQUFxQixDQUFBO0lBQ3JCLGlDQUFlLENBQUE7SUFDZixpQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDMUIsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUE0REQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLHdCQUF3QixDQUFDLElBQW9CLEVBQUUsUUFBNkIsRUFBRSxTQUE2QjtRQUN2RyxJQUFJLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQW9CLEVBQUUsUUFBNkI7UUFDNUQsT0FBTyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQW9CLEVBQUUsUUFBNkI7UUFDNUQsT0FBTyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsSUFBb0IsRUFBRSxPQUEwQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELHNCQUFzQixDQUFDLElBQW9CLEVBQUUsT0FBMEI7UUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBaUIsRUFBRSxJQUFvQjtRQUM3QyxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQztZQUNyRixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQ3pGLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQztZQUNyRixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQ3pGLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlGLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24sIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUG9pbnQsIFBvaW50T2ZSZWN0YW5nbGUsIFZlY3RvciwgZ2V0RWxlbWVudEJ5SWQsIHJvdGF0ZVBvaW50c0J5RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTdHJva2VTdHlsZSB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRDb25uZWN0aW9uUG9pbnQgfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lL2Fycm93LWxpbmUtY29tbW9uJztcbmltcG9ydCB7IFBsYWl0U2hhcGVFbGVtZW50IH0gZnJvbSAnLic7XG5cbmV4cG9ydCBlbnVtIEFycm93TGluZU1hcmtlclR5cGUge1xuICAgIGFycm93ID0gJ2Fycm93JyxcbiAgICBub25lID0gJ25vbmUnLFxuICAgIG9wZW5UcmlhbmdsZSA9ICdvcGVuLXRyaWFuZ2xlJyxcbiAgICBzb2xpZFRyaWFuZ2xlID0gJ3NvbGlkLXRyaWFuZ2xlJyxcbiAgICBzaGFycEFycm93ID0gJ3NoYXJwLWFycm93JyxcbiAgICBvbmVTaWRlVXAgPSAnb25lLXNpZGUtdXAnLFxuICAgIG9uZVNpZGVEb3duID0gJ29uZS1zaWRlLWRvd24nLFxuICAgIGhvbGxvd1RyaWFuZ2xlID0gJ2hvbGxvdy10cmlhbmdsZScsXG4gICAgc2luZ2xlU2xhc2ggPSAnc2luZ2xlLXNsYXNoJ1xufVxuXG5leHBvcnQgZW51bSBBcnJvd0xpbmVTaGFwZSB7XG4gICAgc3RyYWlnaHQgPSAnc3RyYWlnaHQnLFxuICAgIGN1cnZlID0gJ2N1cnZlJyxcbiAgICBlbGJvdyA9ICdlbGJvdydcbn1cblxuZXhwb3J0IGVudW0gQXJyb3dMaW5lSGFuZGxlS2V5IHtcbiAgICBzb3VyY2UgPSAnc291cmNlJyxcbiAgICB0YXJnZXQgPSAndGFyZ2V0J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFycm93TGluZVRleHQge1xuICAgIHRleHQ6IEVsZW1lbnQ7XG4gICAgLy8gUGVyY2VudGFnZSBvZiBwb3NpdGlvbmluZyBiYXNlZCBvbiBsaW5lIGxlbmd0aFxuICAgIHBvc2l0aW9uOiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnJvd0xpbmVIYW5kbGUge1xuICAgIC8vIFRoZSBpZCBvZiB0aGUgYm91bmRlZCBlbGVtZW50XG4gICAgYm91bmRJZD86IHN0cmluZztcbiAgICBjb25uZWN0aW9uPzogUG9pbnRPZlJlY3RhbmdsZTtcbiAgICBtYXJrZXI6IEFycm93TGluZU1hcmtlclR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyb3dMaW5lSGFuZGxlUmVmIHtcbiAgICBrZXk6IEFycm93TGluZUhhbmRsZUtleTtcbiAgICBkaXJlY3Rpb246IERpcmVjdGlvbjtcbiAgICBwb2ludDogUG9pbnRPZlJlY3RhbmdsZTtcbiAgICB2ZWN0b3I6IFZlY3RvcjtcbiAgICBib3VuZEVsZW1lbnQ/OiBQbGFpdFNoYXBlRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnJvd0xpbmVIYW5kbGVSZWZQYWlyIHtcbiAgICBzb3VyY2U6IEFycm93TGluZUhhbmRsZVJlZjtcbiAgICB0YXJnZXQ6IEFycm93TGluZUhhbmRsZVJlZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEFycm93TGluZSBleHRlbmRzIFBsYWl0RWxlbWVudCB7XG4gICAgdHlwZTogJ2Fycm93LWxpbmUnO1xuICAgIHNoYXBlOiBBcnJvd0xpbmVTaGFwZTtcbiAgICBwb2ludHM6IFBvaW50W107XG5cbiAgICBzb3VyY2U6IEFycm93TGluZUhhbmRsZTtcbiAgICB0YXJnZXQ6IEFycm93TGluZUhhbmRsZTtcblxuICAgIHRleHRzOiBBcnJvd0xpbmVUZXh0W107XG5cbiAgICAvLyBub2RlIHN0eWxlIGF0dHJpYnV0ZXNcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICBzdHJva2VTdHlsZT86IFN0cm9rZVN0eWxlO1xuXG4gICAgb3BhY2l0eTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0U3RyYWlnaHRBcnJvd0xpbmUgZXh0ZW5kcyBQbGFpdEFycm93TGluZSB7XG4gICAgc2hhcGU6IEFycm93TGluZVNoYXBlLnN0cmFpZ2h0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0Q3VydmVBcnJvd0xpbmUgZXh0ZW5kcyBQbGFpdEFycm93TGluZSB7XG4gICAgc2hhcGU6IEFycm93TGluZVNoYXBlLmN1cnZlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0RWxib3dBcnJvd0xpbmUgZXh0ZW5kcyBQbGFpdEFycm93TGluZSB7XG4gICAgc2hhcGU6IEFycm93TGluZVNoYXBlLmVsYm93O1xufVxuXG5leHBvcnQgY29uc3QgUGxhaXRBcnJvd0xpbmUgPSB7XG4gICAgaXNTb3VyY2VNYXJrT3JUYXJnZXRNYXJrKGxpbmU6IFBsYWl0QXJyb3dMaW5lLCBtYXJrVHlwZTogQXJyb3dMaW5lTWFya2VyVHlwZSwgaGFuZGxlS2V5OiBBcnJvd0xpbmVIYW5kbGVLZXkpIHtcbiAgICAgICAgaWYgKGhhbmRsZUtleSA9PT0gQXJyb3dMaW5lSGFuZGxlS2V5LnNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmUuc291cmNlLm1hcmtlciA9PT0gbWFya1R5cGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbGluZS50YXJnZXQubWFya2VyID09PSBtYXJrVHlwZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNTb3VyY2VNYXJrKGxpbmU6IFBsYWl0QXJyb3dMaW5lLCBtYXJrVHlwZTogQXJyb3dMaW5lTWFya2VyVHlwZSkge1xuICAgICAgICByZXR1cm4gUGxhaXRBcnJvd0xpbmUuaXNTb3VyY2VNYXJrT3JUYXJnZXRNYXJrKGxpbmUsIG1hcmtUeXBlLCBBcnJvd0xpbmVIYW5kbGVLZXkuc291cmNlKTtcbiAgICB9LFxuICAgIGlzVGFyZ2V0TWFyayhsaW5lOiBQbGFpdEFycm93TGluZSwgbWFya1R5cGU6IEFycm93TGluZU1hcmtlclR5cGUpIHtcbiAgICAgICAgcmV0dXJuIFBsYWl0QXJyb3dMaW5lLmlzU291cmNlTWFya09yVGFyZ2V0TWFyayhsaW5lLCBtYXJrVHlwZSwgQXJyb3dMaW5lSGFuZGxlS2V5LnRhcmdldCk7XG4gICAgfSxcbiAgICBpc0JvdW5kRWxlbWVudE9mU291cmNlKGxpbmU6IFBsYWl0QXJyb3dMaW5lLCBlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbGluZS5zb3VyY2UuYm91bmRJZCA9PT0gZWxlbWVudC5pZDtcbiAgICB9LFxuICAgIGlzQm91bmRFbGVtZW50T2ZUYXJnZXQobGluZTogUGxhaXRBcnJvd0xpbmUsIGVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBsaW5lLnRhcmdldC5ib3VuZElkID09PSBlbGVtZW50LmlkO1xuICAgIH0sXG4gICAgZ2V0UG9pbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBsaW5lOiBQbGFpdEFycm93TGluZSkge1xuICAgICAgICBsZXQgc291cmNlUG9pbnQ7XG4gICAgICAgIGlmIChsaW5lLnNvdXJjZS5ib3VuZElkKSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VFbGVtZW50ID0gZ2V0RWxlbWVudEJ5SWQ8UGxhaXRTaGFwZUVsZW1lbnQ+KGJvYXJkLCBsaW5lLnNvdXJjZS5ib3VuZElkKSE7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VDb25uZWN0aW9uUG9pbnQgPSBnZXRDb25uZWN0aW9uUG9pbnQoc291cmNlRWxlbWVudCwgbGluZS5zb3VyY2UuY29ubmVjdGlvbiEpO1xuICAgICAgICAgICAgc291cmNlUG9pbnQgPSByb3RhdGVQb2ludHNCeUVsZW1lbnQoc291cmNlQ29ubmVjdGlvblBvaW50LCBzb3VyY2VFbGVtZW50KSB8fCBzb3VyY2VDb25uZWN0aW9uUG9pbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzb3VyY2VQb2ludCA9IGxpbmUucG9pbnRzWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRhcmdldFBvaW50O1xuICAgICAgICBpZiAobGluZS50YXJnZXQuYm91bmRJZCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGdldEVsZW1lbnRCeUlkPFBsYWl0U2hhcGVFbGVtZW50Pihib2FyZCwgbGluZS50YXJnZXQuYm91bmRJZCkhO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29ubmVjdGlvblBvaW50ID0gZ2V0Q29ubmVjdGlvblBvaW50KHRhcmdldEVsZW1lbnQsIGxpbmUudGFyZ2V0LmNvbm5lY3Rpb24hKTtcbiAgICAgICAgICAgIHRhcmdldFBvaW50ID0gcm90YXRlUG9pbnRzQnlFbGVtZW50KHRhcmdldENvbm5lY3Rpb25Qb2ludCwgdGFyZ2V0RWxlbWVudCkgfHwgdGFyZ2V0Q29ubmVjdGlvblBvaW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0UG9pbnQgPSBsaW5lLnBvaW50c1tsaW5lLnBvaW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN0UG9pbnRzID0gbGluZS5wb2ludHMubGVuZ3RoID4gMiA/IGxpbmUucG9pbnRzLnNsaWNlKDEsIGxpbmUucG9pbnRzLmxlbmd0aCAtIDEpIDogW107XG4gICAgICAgIHJldHVybiBbc291cmNlUG9pbnQsIC4uLnJlc3RQb2ludHMsIHRhcmdldFBvaW50XTtcbiAgICB9XG59O1xuIl19
@@ -9,7 +9,7 @@ export var MemorizeKey;
9
9
  MemorizeKey["basicShape"] = "basicShape";
10
10
  MemorizeKey["flowchart"] = "flowchart";
11
11
  MemorizeKey["text"] = "text";
12
- MemorizeKey["line"] = "line";
12
+ MemorizeKey["arrowLine"] = "arrow-line";
13
13
  MemorizeKey["UML"] = "UML";
14
14
  })(MemorizeKey || (MemorizeKey = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ25CLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ25CLHdDQUF5QixDQUFBO0lBQ3pCLHNDQUF1QixDQUFBO0lBQ3ZCLDRCQUFhLENBQUE7SUFDYiw0QkFBYSxDQUFBO0lBQ2IsMEJBQVcsQ0FBQTtBQUNmLENBQUMsRUFOVyxXQUFXLEtBQVgsV0FBVyxRQU10QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFN0cm9rZVN0eWxlIHtcbiAgICBzb2xpZCA9ICdzb2xpZCcsXG4gICAgZGFzaGVkID0gJ2Rhc2hlZCcsXG4gICAgZG90dGVkID0gJ2RvdHRlZCdcbn1cblxuZXhwb3J0IGVudW0gTWVtb3JpemVLZXkge1xuICAgIGJhc2ljU2hhcGUgPSAnYmFzaWNTaGFwZScsXG4gICAgZmxvd2NoYXJ0ID0gJ2Zsb3djaGFydCcsXG4gICAgdGV4dCA9ICd0ZXh0JyxcbiAgICBsaW5lID0gJ2xpbmUnLFxuICAgIFVNTCA9ICdVTUwnXG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ25CLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ25CLHdDQUF5QixDQUFBO0lBQ3pCLHNDQUF1QixDQUFBO0lBQ3ZCLDRCQUFhLENBQUE7SUFDYix1Q0FBd0IsQ0FBQTtJQUN4QiwwQkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU3Ryb2tlU3R5bGUge1xuICAgIHNvbGlkID0gJ3NvbGlkJyxcbiAgICBkYXNoZWQgPSAnZGFzaGVkJyxcbiAgICBkb3R0ZWQgPSAnZG90dGVkJ1xufVxuXG5leHBvcnQgZW51bSBNZW1vcml6ZUtleSB7XG4gICAgYmFzaWNTaGFwZSA9ICdiYXNpY1NoYXBlJyxcbiAgICBmbG93Y2hhcnQgPSAnZmxvd2NoYXJ0JyxcbiAgICB0ZXh0ID0gJ3RleHQnLFxuICAgIGFycm93TGluZSA9ICdhcnJvdy1saW5lJyxcbiAgICBVTUwgPSAnVU1MJ1xufVxuIl19
@@ -1,19 +1,23 @@
1
1
  import { BasicShapes, FlowchartSymbols, UMLSymbols } from './geometry';
2
2
  import { SwimlaneSymbols } from './swimlane';
3
3
  import { PlaitTableElement } from './table';
4
- export * from './line';
4
+ export * from './arrow-line';
5
5
  export * from './geometry';
6
6
  export * from './text';
7
7
  export * from './element';
8
8
  export * from './engine';
9
9
  export * from './swimlane';
10
10
  export * from './table';
11
+ export * from './vector-line';
11
12
  export const PlaitDrawElement = {
12
13
  isGeometry: (value) => {
13
14
  return value.type === 'geometry';
14
15
  },
15
- isLine: (value) => {
16
- return value.type === 'line';
16
+ // isLine: (value: any): value is PlaitArrowLine => {
17
+ // return value.type === 'arrow-line' || value.type === 'line' || value.type === 'vector-line';
18
+ // },
19
+ isArrowLine: (value) => {
20
+ return value.type === 'arrow-line' || value.type === 'line';
17
21
  },
18
22
  isText: (value) => {
19
23
  return value.type === 'geometry' && value.shape === BasicShapes.text;
@@ -26,7 +30,7 @@ export const PlaitDrawElement = {
26
30
  },
27
31
  isDrawElement: (value) => {
28
32
  if (PlaitDrawElement.isGeometry(value) ||
29
- PlaitDrawElement.isLine(value) ||
33
+ PlaitDrawElement.isArrowLine(value) ||
30
34
  PlaitDrawElement.isImage(value) ||
31
35
  PlaitDrawElement.isTable(value) ||
32
36
  PlaitDrawElement.isSwimlane(value)) {
@@ -37,7 +41,10 @@ export const PlaitDrawElement = {
37
41
  }
38
42
  },
39
43
  isShapeElement: (value) => {
40
- return PlaitDrawElement.isImage(value) || PlaitDrawElement.isGeometry(value) || PlaitDrawElement.isTable(value) || PlaitDrawElement.isSwimlane(value);
44
+ return (PlaitDrawElement.isImage(value) ||
45
+ PlaitDrawElement.isGeometry(value) ||
46
+ PlaitDrawElement.isTable(value) ||
47
+ PlaitDrawElement.isSwimlane(value));
41
48
  },
42
49
  isBasicShape: (value) => {
43
50
  return Object.keys(BasicShapes).includes(value.shape);
@@ -65,6 +72,6 @@ export const PlaitDrawElement = {
65
72
  },
66
73
  isElementByTable: (value) => {
67
74
  return PlaitDrawElement.isTable(value) || PlaitDrawElement.isSwimlane(value) || PlaitDrawElement.isGeometryByTable(value);
68
- },
75
+ }
69
76
  };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQW9ELFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd6SCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQThCLGlCQUFpQixFQUFnQixNQUFNLFNBQVMsQ0FBQztBQUd0RixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQVF4QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixVQUFVLEVBQUUsQ0FBQyxLQUFVLEVBQTBCLEVBQUU7UUFDL0MsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBc0IsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUF1QixFQUFFO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBdUIsRUFBRTtRQUN6QyxP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QUFDO0lBQzlILENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzaWNTaGFwZXMsIEZsb3djaGFydFN5bWJvbHMsIEdlb21ldHJ5U2hhcGVzLCBQbGFpdEJhc2VHZW9tZXRyeSwgUGxhaXRHZW9tZXRyeSwgVU1MU3ltYm9scyB9IGZyb20gJy4vZ2VvbWV0cnknO1xuaW1wb3J0IHsgUGxhaXRJbWFnZSB9IGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IHsgUGxhaXRMaW5lIH0gZnJvbSAnLi9saW5lJztcbmltcG9ydCB7IFBsYWl0U3dpbWxhbmUsIFN3aW1sYW5lU3ltYm9scyB9IGZyb20gJy4vc3dpbWxhbmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGUsIFBsYWl0VGFibGVFbGVtZW50LCBUYWJsZVN5bWJvbHMgfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IFBsYWl0VGV4dCB9IGZyb20gJy4vdGV4dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zd2ltbGFuZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlJztcblxuZXhwb3J0IHR5cGUgUGxhaXREcmF3RWxlbWVudCA9IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUgfCBQbGFpdEltYWdlIHwgUGxhaXRCYXNlVGFibGUgfCBQbGFpdFN3aW1sYW5lO1xuXG5leHBvcnQgdHlwZSBQbGFpdFNoYXBlRWxlbWVudCA9IFBsYWl0R2VvbWV0cnkgfCBQbGFpdEltYWdlIHwgUGxhaXRUYWJsZSB8IFBsYWl0U3dpbWxhbmU7XG5cbmV4cG9ydCB0eXBlIERyYXdTaGFwZXMgPSBHZW9tZXRyeVNoYXBlcyB8IFRhYmxlU3ltYm9scyB8IFN3aW1sYW5lU3ltYm9scztcblxuZXhwb3J0IGNvbnN0IFBsYWl0RHJhd0VsZW1lbnQgPSB7XG4gICAgaXNHZW9tZXRyeTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdEdlb21ldHJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdnZW9tZXRyeSc7XG4gICAgfSxcbiAgICBpc0xpbmU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRMaW5lID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdsaW5lJztcbiAgICB9LFxuICAgIGlzVGV4dDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdFRleHQgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2dlb21ldHJ5JyAmJiB2YWx1ZS5zaGFwZSA9PT0gQmFzaWNTaGFwZXMudGV4dDtcbiAgICB9LFxuICAgIGlzSW1hZ2U6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRJbWFnZSA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnaW1hZ2UnO1xuICAgIH0sXG4gICAgaXNUYWJsZTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdFRhYmxlID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0VGFibGVFbGVtZW50LmlzVGFibGUodmFsdWUpO1xuICAgIH0sXG4gICAgaXNEcmF3RWxlbWVudDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdERyYXdFbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0xpbmUodmFsdWUpIHx8XG4gICAgICAgICAgICBQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UodmFsdWUpIHx8XG4gICAgICAgICAgICBQbGFpdERyYXdFbGVtZW50LmlzVGFibGUodmFsdWUpIHx8XG4gICAgICAgICAgICBQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUodmFsdWUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlzU2hhcGVFbGVtZW50OiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0U2hhcGVFbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSkgfHwgUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzVGFibGUodmFsdWUpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZSh2YWx1ZSk7XG4gICAgfSxcbiAgICBpc0Jhc2ljU2hhcGU6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhCYXNpY1NoYXBlcykuaW5jbHVkZXModmFsdWUuc2hhcGUpO1xuICAgIH0sXG4gICAgaXNGbG93Y2hhcnQ6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSk7XG4gICAgfSxcbiAgICBpc1VNTDogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFVNTFN5bWJvbHMpLmluY2x1ZGVzKHZhbHVlLnNoYXBlKTtcbiAgICB9LFxuICAgIGlzU3dpbWxhbmU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRTd2ltbGFuZSA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnc3dpbWxhbmUnO1xuICAgIH0sXG4gICAgaXNWZXJ0aWNhbFN3aW1sYW5lOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHZhbHVlKSAmJiB2YWx1ZS5zaGFwZSA9PT0gU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWw7XG4gICAgfSxcbiAgICBpc0hvcml6b250YWxTd2ltbGFuZTogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZSh2YWx1ZSkgJiYgdmFsdWUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWw7XG4gICAgfSxcbiAgICBpc1VNTENsYXNzT3JJbnRlcmZhY2U6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhVTUxTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSkgJiYgW1VNTFN5bWJvbHMuY2xhc3MsIFVNTFN5bWJvbHMuaW50ZXJmYWNlXS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSk7XG4gICAgfSxcbiAgICBpc0dlb21ldHJ5QnlUYWJsZTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdEJhc2VUYWJsZSA9PiB7XG4gICAgICAgIHJldHVybiBQbGFpdERyYXdFbGVtZW50LmlzVU1MQ2xhc3NPckludGVyZmFjZSh2YWx1ZSk7XG4gICAgfSxcbiAgICBpc0VsZW1lbnRCeVRhYmxlOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0QmFzZVRhYmxlID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0RHJhd0VsZW1lbnQuaXNUYWJsZSh2YWx1ZSkgfHwgUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHZhbHVlKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnlCeVRhYmxlKHZhbHVlKTtcbiAgICB9LFxufTtcbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQW9ELFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd6SCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1RCxPQUFPLEVBQThCLGlCQUFpQixFQUFnQixNQUFNLFNBQVMsQ0FBQztBQUl0RixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQztBQVE5QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixVQUFVLEVBQUUsQ0FBQyxLQUFVLEVBQTBCLEVBQUU7UUFDL0MsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QscURBQXFEO0lBQ3JELG1HQUFtRztJQUNuRyxLQUFLO0lBQ0wsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUEyQixFQUFFO1FBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7SUFDaEUsQ0FBQztJQUNELE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBc0IsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUF1QixFQUFFO1FBQ3pDLE9B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QUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5SCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2ljU2hhcGVzLCBGbG93Y2hhcnRTeW1ib2xzLCBHZW9tZXRyeVNoYXBlcywgUGxhaXRCYXNlR2VvbWV0cnksIFBsYWl0R2VvbWV0cnksIFVNTFN5bWJvbHMgfSBmcm9tICcuL2dlb21ldHJ5JztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuL2ltYWdlJztcbmltcG9ydCB7IFBsYWl0QXJyb3dMaW5lIH0gZnJvbSAnLi9hcnJvdy1saW5lJztcbmltcG9ydCB7IFBsYWl0U3dpbWxhbmUsIFN3aW1sYW5lU3ltYm9scyB9IGZyb20gJy4vc3dpbWxhbmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUsIFBsYWl0VGFibGUsIFBsYWl0VGFibGVFbGVtZW50LCBUYWJsZVN5bWJvbHMgfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IFBsYWl0VGV4dCB9IGZyb20gJy4vdGV4dCc7XG5pbXBvcnQgeyBQbGFpdFZlY3RvckxpbmUgfSBmcm9tICcuL3ZlY3Rvci1saW5lJztcblxuZXhwb3J0ICogZnJvbSAnLi9hcnJvdy1saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VvbWV0cnknO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZSc7XG5leHBvcnQgKiBmcm9tICcuL3N3aW1sYW5lJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi92ZWN0b3ItbGluZSc7XG5cbmV4cG9ydCB0eXBlIFBsYWl0RHJhd0VsZW1lbnQgPSBQbGFpdEdlb21ldHJ5IHwgUGxhaXRBcnJvd0xpbmUgfCBQbGFpdFZlY3RvckxpbmUgfCBQbGFpdEltYWdlIHwgUGxhaXRCYXNlVGFibGUgfCBQbGFpdFN3aW1sYW5lO1xuXG5leHBvcnQgdHlwZSBQbGFpdFNoYXBlRWxlbWVudCA9IFBsYWl0R2VvbWV0cnkgfCBQbGFpdEltYWdlIHwgUGxhaXRUYWJsZSB8IFBsYWl0U3dpbWxhbmU7XG5cbmV4cG9ydCB0eXBlIERyYXdTaGFwZXMgPSBHZW9tZXRyeVNoYXBlcyB8IFRhYmxlU3ltYm9scyB8IFN3aW1sYW5lU3ltYm9scztcblxuZXhwb3J0IGNvbnN0IFBsYWl0RHJhd0VsZW1lbnQgPSB7XG4gICAgaXNHZW9tZXRyeTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdEdlb21ldHJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdnZW9tZXRyeSc7XG4gICAgfSxcbiAgICAvLyBpc0xpbmU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRBcnJvd0xpbmUgPT4ge1xuICAgIC8vICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2Fycm93LWxpbmUnIHx8IHZhbHVlLnR5cGUgPT09ICdsaW5lJyB8fCB2YWx1ZS50eXBlID09PSAndmVjdG9yLWxpbmUnO1xuICAgIC8vIH0sXG4gICAgaXNBcnJvd0xpbmU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRBcnJvd0xpbmUgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2Fycm93LWxpbmUnIHx8IHZhbHVlLnR5cGUgPT09ICdsaW5lJztcbiAgICB9LFxuICAgIGlzVGV4dDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdFRleHQgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ2dlb21ldHJ5JyAmJiB2YWx1ZS5zaGFwZSA9PT0gQmFzaWNTaGFwZXMudGV4dDtcbiAgICB9LFxuICAgIGlzSW1hZ2U6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRJbWFnZSA9PiB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50eXBlID09PSAnaW1hZ2UnO1xuICAgIH0sXG4gICAgaXNUYWJsZTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdFRhYmxlID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0VGFibGVFbGVtZW50LmlzVGFibGUodmFsdWUpO1xuICAgIH0sXG4gICAgaXNEcmF3RWxlbWVudDogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdERyYXdFbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZSh2YWx1ZSkgfHxcbiAgICAgICAgICAgIFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSkgfHxcbiAgICAgICAgICAgIFBsYWl0RHJhd0VsZW1lbnQuaXNUYWJsZSh2YWx1ZSkgfHxcbiAgICAgICAgICAgIFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZSh2YWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaXNTaGFwZUVsZW1lbnQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRTaGFwZUVsZW1lbnQgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc1RhYmxlKHZhbHVlKSB8fFxuICAgICAgICAgICAgUGxhaXREcmF3RWxlbWVudC5pc1N3aW1sYW5lKHZhbHVlKVxuICAgICAgICApO1xuICAgIH0sXG4gICAgaXNCYXNpY1NoYXBlOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQmFzaWNTaGFwZXMpLmluY2x1ZGVzKHZhbHVlLnNoYXBlKTtcbiAgICB9LFxuICAgIGlzRmxvd2NoYXJ0OiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRmxvd2NoYXJ0U3ltYm9scykuaW5jbHVkZXModmFsdWUuc2hhcGUpO1xuICAgIH0sXG4gICAgaXNVTUw6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhVTUxTeW1ib2xzKS5pbmNsdWRlcyh2YWx1ZS5zaGFwZSk7XG4gICAgfSxcbiAgICBpc1N3aW1sYW5lOiAodmFsdWU6IGFueSk6IHZhbHVlIGlzIFBsYWl0U3dpbWxhbmUgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudHlwZSA9PT0gJ3N3aW1sYW5lJztcbiAgICB9LFxuICAgIGlzVmVydGljYWxTd2ltbGFuZTogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZSh2YWx1ZSkgJiYgdmFsdWUuc2hhcGUgPT09IFN3aW1sYW5lU3ltYm9scy5zd2ltbGFuZVZlcnRpY2FsO1xuICAgIH0sXG4gICAgaXNIb3Jpem9udGFsU3dpbWxhbmU6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBQbGFpdERyYXdFbGVtZW50LmlzU3dpbWxhbmUodmFsdWUpICYmIHZhbHVlLnNoYXBlID09PSBTd2ltbGFuZVN5bWJvbHMuc3dpbWxhbmVIb3Jpem9udGFsO1xuICAgIH0sXG4gICAgaXNVTUxDbGFzc09ySW50ZXJmYWNlOiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoVU1MU3ltYm9scykuaW5jbHVkZXModmFsdWUuc2hhcGUpICYmIFtVTUxTeW1ib2xzLmNsYXNzLCBVTUxTeW1ib2xzLmludGVyZmFjZV0uaW5jbHVkZXModmFsdWUuc2hhcGUpO1xuICAgIH0sXG4gICAgaXNHZW9tZXRyeUJ5VGFibGU6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRCYXNlVGFibGUgPT4ge1xuICAgICAgICByZXR1cm4gUGxhaXREcmF3RWxlbWVudC5pc1VNTENsYXNzT3JJbnRlcmZhY2UodmFsdWUpO1xuICAgIH0sXG4gICAgaXNFbGVtZW50QnlUYWJsZTogKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBQbGFpdEJhc2VUYWJsZSA9PiB7XG4gICAgICAgIHJldHVybiBQbGFpdERyYXdFbGVtZW50LmlzVGFibGUodmFsdWUpIHx8IFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZSh2YWx1ZSkgfHwgUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5QnlUYWJsZSh2YWx1ZSk7XG4gICAgfVxufTtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export var VectorLineShape;
2
+ (function (VectorLineShape) {
3
+ VectorLineShape["straight"] = "straight";
4
+ VectorLineShape["curve"] = "curve";
5
+ })(VectorLineShape || (VectorLineShape = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9pbnRlcmZhY2VzL3ZlY3Rvci1saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsd0NBQWtDLENBQUE7SUFDbEMsa0NBQTRCLENBQUE7QUFDaEMsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50LCBQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFN0cm9rZVN0eWxlIH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IEFycm93TGluZVNoYXBlIH0gZnJvbSAnLi9hcnJvdy1saW5lJztcblxuZXhwb3J0IGVudW0gVmVjdG9yTGluZVNoYXBlIHtcbiAgICBzdHJhaWdodCA9IEFycm93TGluZVNoYXBlLnN0cmFpZ2h0LFxuICAgIGN1cnZlID0gQXJyb3dMaW5lU2hhcGUuY3VydmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdFZlY3RvckxpbmUgZXh0ZW5kcyBQbGFpdEVsZW1lbnQge1xuICAgIHR5cGU6ICd2ZWN0b3ItbGluZSc7XG4gICAgc2hhcGU6IFZlY3RvckxpbmVTaGFwZTtcbiAgICBwb2ludHM6IFBvaW50W107XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc3Ryb2tlU3R5bGU/OiBTdHJva2VTdHlsZTtcbiAgICBmaWxsPzogc3RyaW5nO1xuICAgIG9wYWNpdHk6IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { CursorClass, PlaitBoard, PlaitElement, RectangleClient, RgbaToHEX, drawCircle, hasValidAngle, isSelectionMoving, rotateAntiPointsByElement, setAngleForG, toHostPoint, toViewBoxPoint } from '@plait/core';
2
+ import { PlaitDrawElement } from '../interfaces';
3
+ import { getAutoCompletePoints, getHitIndexOfAutoCompletePoint, getSelectedDrawElements } from '../utils';
4
+ import { PRIMARY_COLOR } from '@plait/common';
5
+ import { LINE_AUTO_COMPLETE_HOVERED_DIAMETER, LINE_AUTO_COMPLETE_HOVERED_OPACITY } from '../constants/line';
6
+ import { ArrowLineAutoCompleteGenerator } from '../generators/arrow-line-auto-complete.generator';
7
+ export const withArrowLineAutoCompleteReaction = (board) => {
8
+ const { pointerMove } = board;
9
+ let reactionG = null;
10
+ board.pointerMove = (event) => {
11
+ reactionG?.remove();
12
+ PlaitBoard.getBoardContainer(board).classList.remove(CursorClass.crosshair);
13
+ const selectedElements = getSelectedDrawElements(board);
14
+ const targetElement = selectedElements.length === 1 && selectedElements[0];
15
+ const movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
16
+ if (!PlaitBoard.isReadonly(board) && !isSelectionMoving(board) && targetElement && PlaitDrawElement.isShapeElement(targetElement)) {
17
+ const points = getAutoCompletePoints(targetElement);
18
+ const hitIndex = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(movingPoint, targetElement) || movingPoint, points);
19
+ const hitPoint = points[hitIndex];
20
+ const ref = PlaitElement.getElementRef(targetElement);
21
+ const lineAutoCompleteGenerator = ref.getGenerator(ArrowLineAutoCompleteGenerator.key);
22
+ lineAutoCompleteGenerator.recoverAutoCompleteG();
23
+ if (hitPoint) {
24
+ lineAutoCompleteGenerator?.removeAutoCompleteG(hitIndex);
25
+ reactionG = drawCircle(PlaitBoard.getRoughSVG(board), hitPoint, LINE_AUTO_COMPLETE_HOVERED_DIAMETER, {
26
+ stroke: 'none',
27
+ fill: RgbaToHEX(PRIMARY_COLOR, LINE_AUTO_COMPLETE_HOVERED_OPACITY),
28
+ fillStyle: 'solid'
29
+ });
30
+ PlaitBoard.getElementActiveHost(board).append(reactionG);
31
+ PlaitBoard.getBoardContainer(board).classList.add(CursorClass.crosshair);
32
+ if (hasValidAngle(targetElement)) {
33
+ setAngleForG(reactionG, RectangleClient.getCenterPoint(board.getRectangle(targetElement)), targetElement.angle);
34
+ }
35
+ }
36
+ }
37
+ pointerMove(event);
38
+ };
39
+ return board;
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hcnJvdy1saW5lLWF1dG8tY29tcGxldGUtcmVhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9wbHVnaW5zL3dpdGgtYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLXJlYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osV0FBVyxFQUNYLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzlCLElBQUksU0FBUyxHQUF1QixJQUFJLENBQUM7SUFDekMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUN4QyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDcEIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNoSSxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLElBQUksV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlILE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUF3QixhQUFhLENBQUMsQ0FBQztZQUM3RSxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQWlDLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZILHlCQUF5QixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDakQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCx5QkFBeUIsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekQsU0FBUyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxtQ0FBbUMsRUFBRTtvQkFDakcsTUFBTSxFQUFFLE1BQU07b0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxhQUFhLEVBQUUsa0NBQWtDLENBQUM7b0JBQ2xFLFNBQVMsRUFBRSxPQUFPO2lCQUNyQixDQUFDLENBQUM7Z0JBQ0gsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDekQsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUMvQixZQUFZLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFNLENBQUMsQ0FBQztnQkFDdEgsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ3Vyc29yQ2xhc3MsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFJnYmFUb0hFWCxcbiAgICBkcmF3Q2lyY2xlLFxuICAgIGhhc1ZhbGlkQW5nbGUsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgcm90YXRlQW50aVBvaW50c0J5RWxlbWVudCxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0QXV0b0NvbXBsZXRlUG9pbnRzLCBnZXRIaXRJbmRleE9mQXV0b0NvbXBsZXRlUG9pbnQsIGdldFNlbGVjdGVkRHJhd0VsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiwgUGxhaXRDb21tb25FbGVtZW50UmVmIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBMSU5FX0FVVE9fQ09NUExFVEVfSE9WRVJFRF9ESUFNRVRFUiwgTElORV9BVVRPX0NPTVBMRVRFX0hPVkVSRURfT1BBQ0lUWSB9IGZyb20gJy4uL2NvbnN0YW50cy9saW5lJztcbmltcG9ydCB7IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMvYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvcic7XG5cbmV4cG9ydCBjb25zdCB3aXRoQXJyb3dMaW5lQXV0b0NvbXBsZXRlUmVhY3Rpb24gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7IHBvaW50ZXJNb3ZlIH0gPSBib2FyZDtcbiAgICBsZXQgcmVhY3Rpb25HOiBTVkdHRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgcmVhY3Rpb25HPy5yZW1vdmUoKTtcbiAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShDdXJzb3JDbGFzcy5jcm9zc2hhaXIpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgc2VsZWN0ZWRFbGVtZW50c1swXTtcbiAgICAgICAgY29uc3QgbW92aW5nUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmICFpc1NlbGVjdGlvbk1vdmluZyhib2FyZCkgJiYgdGFyZ2V0RWxlbWVudCAmJiBQbGFpdERyYXdFbGVtZW50LmlzU2hhcGVFbGVtZW50KHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRBdXRvQ29tcGxldGVQb2ludHModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBoaXRJbmRleCA9IGdldEhpdEluZGV4T2ZBdXRvQ29tcGxldGVQb2ludChyb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KG1vdmluZ1BvaW50LCB0YXJnZXRFbGVtZW50KSB8fCBtb3ZpbmdQb2ludCwgcG9pbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IGhpdFBvaW50ID0gcG9pbnRzW2hpdEluZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IHJlZiA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50UmVmPFBsYWl0Q29tbW9uRWxlbWVudFJlZj4odGFyZ2V0RWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gcmVmLmdldEdlbmVyYXRvcjxBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I+KEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5rZXkpO1xuICAgICAgICAgICAgbGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5yZWNvdmVyQXV0b0NvbXBsZXRlRygpO1xuICAgICAgICAgICAgaWYgKGhpdFBvaW50KSB7XG4gICAgICAgICAgICAgICAgbGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcj8ucmVtb3ZlQXV0b0NvbXBsZXRlRyhoaXRJbmRleCk7XG4gICAgICAgICAgICAgICAgcmVhY3Rpb25HID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSwgaGl0UG9pbnQsIExJTkVfQVVUT19DT01QTEVURV9IT1ZFUkVEX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBSZ2JhVG9IRVgoUFJJTUFSWV9DT0xPUiwgTElORV9BVVRPX0NPTVBMRVRFX0hPVkVSRURfT1BBQ0lUWSksXG4gICAgICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmFwcGVuZChyZWFjdGlvbkcpO1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoQ3Vyc29yQ2xhc3MuY3Jvc3NoYWlyKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzVmFsaWRBbmdsZSh0YXJnZXRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRBbmdsZUZvckcocmVhY3Rpb25HLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYm9hcmQuZ2V0UmVjdGFuZ2xlKHRhcmdldEVsZW1lbnQpISksIHRhcmdldEVsZW1lbnQuYW5nbGUhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
@@ -0,0 +1,74 @@
1
+ import { BoardTransforms, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, RectangleClient, Transforms, addSelectedElement, clearSelectedElement, createG, distanceBetweenPointAndPoint, rotateAntiPointsByElement, rotatePointsByElement, temporaryDisableSelection, toHostPoint, toViewBoxPoint } from '@plait/core';
2
+ import { ArrowLineShape, PlaitDrawElement } from '../interfaces';
3
+ import { getElementShape } from '../utils/shape';
4
+ import { getEngine } from '../engines';
5
+ import { handleArrowLineCreating } from '../utils/arrow-line/arrow-line-basic';
6
+ import { getSelectedDrawElements } from '../utils/selected';
7
+ import { getAutoCompletePoints, getHitIndexOfAutoCompletePoint } from '../utils/geometry';
8
+ export const WithArrowLineAutoCompletePluginKey = 'plait-arrow-line-auto-complete-plugin-key';
9
+ export const withArrowLineAutoComplete = (board) => {
10
+ const { pointerDown, pointerMove, globalPointerUp } = board;
11
+ let autoCompletePoint = null;
12
+ let lineShapeG = null;
13
+ let sourceElement;
14
+ let temporaryElement;
15
+ board.pointerDown = (event) => {
16
+ const selectedElements = getSelectedDrawElements(board);
17
+ const targetElement = selectedElements.length === 1 && selectedElements[0];
18
+ const clickPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
19
+ if (!PlaitBoard.isReadonly(board) && targetElement && PlaitDrawElement.isShapeElement(targetElement)) {
20
+ const points = getAutoCompletePoints(targetElement);
21
+ const index = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(clickPoint, targetElement) || clickPoint, points);
22
+ const hitPoint = points[index];
23
+ if (hitPoint) {
24
+ temporaryDisableSelection(board);
25
+ autoCompletePoint = hitPoint;
26
+ sourceElement = targetElement;
27
+ BoardTransforms.updatePointerType(board, ArrowLineShape.elbow);
28
+ }
29
+ }
30
+ pointerDown(event);
31
+ };
32
+ board.pointerMove = (event) => {
33
+ lineShapeG?.remove();
34
+ lineShapeG = createG();
35
+ let movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
36
+ if (autoCompletePoint && sourceElement) {
37
+ const distance = distanceBetweenPointAndPoint(...(rotateAntiPointsByElement(movingPoint, sourceElement) || movingPoint), ...autoCompletePoint);
38
+ if (distance > PRESS_AND_MOVE_BUFFER) {
39
+ const rectangle = RectangleClient.getRectangleByPoints(sourceElement.points);
40
+ const shape = getElementShape(sourceElement);
41
+ const engine = getEngine(shape);
42
+ let sourcePoint = autoCompletePoint;
43
+ if (engine.getNearestCrossingPoint) {
44
+ const crossingPoint = engine.getNearestCrossingPoint(rectangle, autoCompletePoint);
45
+ sourcePoint = crossingPoint;
46
+ }
47
+ // source point must be click point
48
+ const rotatedSourcePoint = rotatePointsByElement(sourcePoint, sourceElement) || sourcePoint;
49
+ temporaryElement = handleArrowLineCreating(board, ArrowLineShape.elbow, rotatedSourcePoint, movingPoint, sourceElement, lineShapeG);
50
+ }
51
+ }
52
+ pointerMove(event);
53
+ };
54
+ board.globalPointerUp = event => {
55
+ if (temporaryElement) {
56
+ Transforms.insertNode(board, temporaryElement, [board.children.length]);
57
+ clearSelectedElement(board);
58
+ addSelectedElement(board, temporaryElement);
59
+ const afterComplete = board.getPluginOptions(WithArrowLineAutoCompletePluginKey)?.afterComplete;
60
+ afterComplete && afterComplete(temporaryElement);
61
+ }
62
+ if (autoCompletePoint) {
63
+ BoardTransforms.updatePointerType(board, PlaitPointerType.selection);
64
+ autoCompletePoint = null;
65
+ }
66
+ lineShapeG?.remove();
67
+ lineShapeG = null;
68
+ sourceElement = null;
69
+ temporaryElement = null;
70
+ globalPointerUp(event);
71
+ };
72
+ return board;
73
+ };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1hcnJvdy1saW5lLWF1dG8tY29tcGxldGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9wbHVnaW5zL3dpdGgtYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLFVBQVUsRUFFVixnQkFBZ0IsRUFFaEIsZUFBZSxFQUNmLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsV0FBVyxFQUNYLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBa0IsZ0JBQWdCLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFGLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLDJDQUEyQyxDQUFDO0FBTTlGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUU1RCxJQUFJLGlCQUFpQixHQUFpQixJQUFJLENBQUM7SUFDM0MsSUFBSSxVQUFVLEdBQXVCLElBQUksQ0FBQztJQUMx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QWEsRUFDYixVQUFVLENBQ2IsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBQ0QsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLEVBQUU7UUFDNUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3hFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sYUFBYSxHQUFJLEtBQTJCLENBQUMsZ0JBQWdCLENBQy9ELGtDQUFrQyxDQUNyQyxFQUFFLGFBQWEsQ0FBQztZQUNqQixhQUFhLElBQUksYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixlQUFlLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JFLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBQ0QsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQm9hcmRUcmFuc2Zvcm1zLFxuICAgIFBSRVNTX0FORF9NT1ZFX0JVRkZFUixcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0T3B0aW9uc0JvYXJkLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50LFxuICAgIGNyZWF0ZUcsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50LFxuICAgIHJvdGF0ZVBvaW50c0J5RWxlbWVudCxcbiAgICB0ZW1wb3JhcnlEaXNhYmxlU2VsZWN0aW9uLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFycm93TGluZVNoYXBlLCBQbGFpdEFycm93TGluZSwgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRTaGFwZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uL3V0aWxzL3NoYXBlJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgaGFuZGxlQXJyb3dMaW5lQ3JlYXRpbmcgfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lL2Fycm93LWxpbmUtYmFzaWMnO1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9zZWxlY3RlZCc7XG5pbXBvcnQgeyBnZXRBdXRvQ29tcGxldGVQb2ludHMsIGdldEhpdEluZGV4T2ZBdXRvQ29tcGxldGVQb2ludCB9IGZyb20gJy4uL3V0aWxzL2dlb21ldHJ5JztcblxuZXhwb3J0IGNvbnN0IFdpdGhBcnJvd0xpbmVBdXRvQ29tcGxldGVQbHVnaW5LZXkgPSAncGxhaXQtYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLXBsdWdpbi1rZXknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFycm93TGluZUF1dG9Db21wbGV0ZU9wdGlvbnMge1xuICAgIGFmdGVyQ29tcGxldGU6IChlbGVtZW50OiBQbGFpdEFycm93TGluZSkgPT4ge307XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoQXJyb3dMaW5lQXV0b0NvbXBsZXRlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCB9ID0gYm9hcmQ7XG5cbiAgICBsZXQgYXV0b0NvbXBsZXRlUG9pbnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxpbmVTaGFwZUc6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHNvdXJjZUVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgdGVtcG9yYXJ5RWxlbWVudDogUGxhaXRBcnJvd0xpbmUgfCBudWxsO1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMoYm9hcmQpO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgc2VsZWN0ZWRFbGVtZW50c1swXTtcbiAgICAgICAgY29uc3QgY2xpY2tQb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgJiYgdGFyZ2V0RWxlbWVudCAmJiBQbGFpdERyYXdFbGVtZW50LmlzU2hhcGVFbGVtZW50KHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRBdXRvQ29tcGxldGVQb2ludHModGFyZ2V0RWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGdldEhpdEluZGV4T2ZBdXRvQ29tcGxldGVQb2ludChyb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KGNsaWNrUG9pbnQsIHRhcmdldEVsZW1lbnQpIHx8IGNsaWNrUG9pbnQsIHBvaW50cyk7XG4gICAgICAgICAgICBjb25zdCBoaXRQb2ludCA9IHBvaW50c1tpbmRleF07XG4gICAgICAgICAgICBpZiAoaGl0UG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0ZW1wb3JhcnlEaXNhYmxlU2VsZWN0aW9uKGJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKTtcbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGVQb2ludCA9IGhpdFBvaW50O1xuICAgICAgICAgICAgICAgIHNvdXJjZUVsZW1lbnQgPSB0YXJnZXRFbGVtZW50O1xuICAgICAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy51cGRhdGVQb2ludGVyVHlwZShib2FyZCwgQXJyb3dMaW5lU2hhcGUuZWxib3cpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBsaW5lU2hhcGVHPy5yZW1vdmUoKTtcbiAgICAgICAgbGluZVNoYXBlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgbGV0IG1vdmluZ1BvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgIGlmIChhdXRvQ29tcGxldGVQb2ludCAmJiBzb3VyY2VFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoXG4gICAgICAgICAgICAgICAgLi4uKHJvdGF0ZUFudGlQb2ludHNCeUVsZW1lbnQobW92aW5nUG9pbnQsIHNvdXJjZUVsZW1lbnQpIHx8IG1vdmluZ1BvaW50KSxcbiAgICAgICAgICAgICAgICAuLi5hdXRvQ29tcGxldGVQb2ludFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IFBSRVNTX0FORF9NT1ZFX0JVRkZFUikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhzb3VyY2VFbGVtZW50LnBvaW50cyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hhcGUgPSBnZXRFbGVtZW50U2hhcGUoc291cmNlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lKHNoYXBlKTtcbiAgICAgICAgICAgICAgICBsZXQgc291cmNlUG9pbnQgPSBhdXRvQ29tcGxldGVQb2ludDtcbiAgICAgICAgICAgICAgICBpZiAoZW5naW5lLmdldE5lYXJlc3RDcm9zc2luZ1BvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyb3NzaW5nUG9pbnQgPSBlbmdpbmUuZ2V0TmVhcmVzdENyb3NzaW5nUG9pbnQocmVjdGFuZ2xlLCBhdXRvQ29tcGxldGVQb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZVBvaW50ID0gY3Jvc3NpbmdQb2ludDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gc291cmNlIHBvaW50IG11c3QgYmUgY2xpY2sgcG9pbnRcbiAgICAgICAgICAgICAgICBjb25zdCByb3RhdGVkU291cmNlUG9pbnQgPSByb3RhdGVQb2ludHNCeUVsZW1lbnQoc291cmNlUG9pbnQsIHNvdXJjZUVsZW1lbnQpIHx8IHNvdXJjZVBvaW50O1xuICAgICAgICAgICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBoYW5kbGVBcnJvd0xpbmVDcmVhdGluZyhcbiAgICAgICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgIEFycm93TGluZVNoYXBlLmVsYm93LFxuICAgICAgICAgICAgICAgICAgICByb3RhdGVkU291cmNlUG9pbnQsXG4gICAgICAgICAgICAgICAgICAgIG1vdmluZ1BvaW50LFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBsaW5lU2hhcGVHXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHRlbXBvcmFyeUVsZW1lbnQpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgdGVtcG9yYXJ5RWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgICAgICAgICAgY2xlYXJTZWxlY3RlZEVsZW1lbnQoYm9hcmQpO1xuICAgICAgICAgICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCB0ZW1wb3JhcnlFbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGFmdGVyQ29tcGxldGUgPSAoYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8QXJyb3dMaW5lQXV0b0NvbXBsZXRlT3B0aW9ucz4oXG4gICAgICAgICAgICAgICAgV2l0aEFycm93TGluZUF1dG9Db21wbGV0ZVBsdWdpbktleVxuICAgICAgICAgICAgKT8uYWZ0ZXJDb21wbGV0ZTtcbiAgICAgICAgICAgIGFmdGVyQ29tcGxldGUgJiYgYWZ0ZXJDb21wbGV0ZSh0ZW1wb3JhcnlFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXV0b0NvbXBsZXRlUG9pbnQpIHtcbiAgICAgICAgICAgIEJvYXJkVHJhbnNmb3Jtcy51cGRhdGVQb2ludGVyVHlwZShib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgYXV0b0NvbXBsZXRlUG9pbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGxpbmVTaGFwZUc/LnJlbW92ZSgpO1xuICAgICAgICBsaW5lU2hhcGVHID0gbnVsbDtcbiAgICAgICAgc291cmNlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRlbXBvcmFyeUVsZW1lbnQgPSBudWxsO1xuICAgICAgICBnbG9iYWxQb2ludGVyVXAoZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19