@plait/draw 0.57.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/constants/draw.d.ts +1 -0
  2. package/constants/geometry.d.ts +79 -2
  3. package/constants/index.d.ts +1 -0
  4. package/constants/pointer.d.ts +4 -2
  5. package/engines/index.d.ts +3 -3
  6. package/engines/table/table.d.ts +15 -1
  7. package/engines/uml/actor.d.ts +2 -0
  8. package/engines/uml/combined-fragment.d.ts +3 -0
  9. package/engines/uml/container.d.ts +2 -0
  10. package/engines/uml/package.d.ts +3 -0
  11. package/esm2022/constants/draw.mjs +2 -0
  12. package/esm2022/constants/geometry.mjs +70 -4
  13. package/esm2022/constants/index.mjs +2 -1
  14. package/esm2022/constants/pointer.mjs +9 -3
  15. package/esm2022/engines/basic-shapes/cloud.mjs +1 -1
  16. package/esm2022/engines/basic-shapes/comment.mjs +1 -1
  17. package/esm2022/engines/basic-shapes/diamond.mjs +2 -2
  18. package/esm2022/engines/basic-shapes/parallelogram.mjs +2 -2
  19. package/esm2022/engines/basic-shapes/pentagon.mjs +1 -1
  20. package/esm2022/engines/basic-shapes/round-comment.mjs +2 -2
  21. package/esm2022/engines/basic-shapes/star.mjs +1 -1
  22. package/esm2022/engines/basic-shapes/trapezoid.mjs +2 -2
  23. package/esm2022/engines/basic-shapes/triangle.mjs +2 -2
  24. package/esm2022/engines/flowchart/database.mjs +2 -2
  25. package/esm2022/engines/flowchart/display.mjs +1 -1
  26. package/esm2022/engines/flowchart/document.mjs +1 -1
  27. package/esm2022/engines/flowchart/hard-disk.mjs +2 -2
  28. package/esm2022/engines/flowchart/internal-storage.mjs +2 -2
  29. package/esm2022/engines/flowchart/manual-input.mjs +2 -2
  30. package/esm2022/engines/flowchart/manual-loop.mjs +2 -2
  31. package/esm2022/engines/flowchart/merge.mjs +1 -1
  32. package/esm2022/engines/flowchart/multi-document.mjs +1 -1
  33. package/esm2022/engines/flowchart/note-curly-left.mjs +2 -2
  34. package/esm2022/engines/flowchart/note-curly-right.mjs +2 -2
  35. package/esm2022/engines/flowchart/note-square.mjs +1 -1
  36. package/esm2022/engines/flowchart/off-page.mjs +2 -2
  37. package/esm2022/engines/flowchart/or.mjs +1 -8
  38. package/esm2022/engines/flowchart/predefined-process.mjs +1 -1
  39. package/esm2022/engines/flowchart/summing-junction.mjs +1 -8
  40. package/esm2022/engines/index.mjs +14 -5
  41. package/esm2022/engines/table/table.mjs +58 -10
  42. package/esm2022/engines/uml/actor.mjs +102 -0
  43. package/esm2022/engines/uml/combined-fragment.mjs +66 -0
  44. package/esm2022/engines/uml/container.mjs +44 -0
  45. package/esm2022/engines/uml/package.mjs +75 -0
  46. package/esm2022/generators/geometry-shape.generator.mjs +3 -3
  47. package/esm2022/generators/index.mjs +7 -0
  48. package/esm2022/generators/line-active.generator.mjs +3 -3
  49. package/esm2022/generators/line-auto-complete.generator.mjs +1 -1
  50. package/esm2022/generators/single-text.generator.mjs +16 -0
  51. package/esm2022/generators/table.generator.mjs +20 -0
  52. package/esm2022/generators/text.generator.mjs +126 -0
  53. package/esm2022/geometry.component.mjs +63 -76
  54. package/esm2022/image.component.mjs +8 -25
  55. package/esm2022/interfaces/element.mjs +2 -1
  56. package/esm2022/interfaces/engine.mjs +2 -0
  57. package/esm2022/interfaces/geometry.mjs +14 -1
  58. package/esm2022/interfaces/image.mjs +1 -1
  59. package/esm2022/interfaces/index.mjs +27 -4
  60. package/esm2022/interfaces/line.mjs +1 -1
  61. package/esm2022/interfaces/table.mjs +9 -2
  62. package/esm2022/line.component.mjs +8 -25
  63. package/esm2022/plugins/with-draw-fragment.mjs +3 -1
  64. package/esm2022/plugins/with-draw-hotkey.mjs +12 -3
  65. package/esm2022/plugins/with-draw-resize.mjs +1 -1
  66. package/esm2022/plugins/with-draw.mjs +6 -2
  67. package/esm2022/plugins/with-geometry-create.mjs +2 -1
  68. package/esm2022/plugins/with-geometry-resize.mjs +3 -2
  69. package/esm2022/plugins/with-line-auto-complete-reaction.mjs +2 -2
  70. package/esm2022/plugins/with-line-bound-reaction.mjs +3 -4
  71. package/esm2022/plugins/with-line-create.mjs +3 -3
  72. package/esm2022/plugins/with-line-resize.mjs +3 -3
  73. package/esm2022/plugins/with-swimlane-create.mjs +132 -0
  74. package/esm2022/plugins/with-swimlane.mjs +21 -0
  75. package/esm2022/plugins/with-table-resize.mjs +130 -0
  76. package/esm2022/plugins/with-table.mjs +53 -7
  77. package/esm2022/public-api.mjs +2 -1
  78. package/esm2022/table.component.mjs +117 -24
  79. package/esm2022/transforms/geometry-text.mjs +6 -3
  80. package/esm2022/transforms/geometry.mjs +3 -2
  81. package/esm2022/transforms/index.mjs +11 -2
  82. package/esm2022/transforms/multi-text-geometry-text.mjs +15 -0
  83. package/esm2022/transforms/swimlane.mjs +97 -0
  84. package/esm2022/transforms/table-text.mjs +44 -0
  85. package/esm2022/utils/clipboard.mjs +15 -2
  86. package/esm2022/utils/common.mjs +159 -0
  87. package/esm2022/utils/geometry.mjs +55 -63
  88. package/esm2022/utils/hit.mjs +47 -18
  89. package/esm2022/utils/index.mjs +4 -1
  90. package/esm2022/utils/line/elbow.mjs +2 -2
  91. package/esm2022/utils/line/line-arrow.mjs +2 -2
  92. package/esm2022/utils/line/line-basic.mjs +4 -4
  93. package/esm2022/utils/line/line-common.mjs +2 -2
  94. package/esm2022/utils/memorize.mjs +7 -1
  95. package/esm2022/utils/multi-text-geometry.mjs +61 -0
  96. package/esm2022/utils/position/geometry.mjs +2 -40
  97. package/esm2022/utils/selected.mjs +14 -1
  98. package/esm2022/utils/shape.mjs +5 -2
  99. package/esm2022/utils/snap-resizing.mjs +7 -7
  100. package/esm2022/utils/style/stroke.mjs +4 -10
  101. package/esm2022/utils/swimlane.mjs +120 -0
  102. package/esm2022/utils/table.mjs +124 -0
  103. package/fesm2022/plait-draw.mjs +6376 -4834
  104. package/fesm2022/plait-draw.mjs.map +1 -1
  105. package/generators/index.d.ts +6 -0
  106. package/generators/line-auto-complete.generator.d.ts +2 -2
  107. package/generators/single-text.generator.d.ts +11 -0
  108. package/generators/table.generator.d.ts +9 -0
  109. package/generators/text.generator.d.ts +42 -0
  110. package/geometry.component.d.ts +11 -17
  111. package/image.component.d.ts +5 -11
  112. package/interfaces/element.d.ts +2 -1
  113. package/interfaces/engine.d.ts +16 -0
  114. package/interfaces/geometry.d.ts +23 -18
  115. package/interfaces/image.d.ts +4 -2
  116. package/interfaces/index.d.ts +12 -3
  117. package/interfaces/line.d.ts +4 -5
  118. package/interfaces/table.d.ts +14 -1
  119. package/line.component.d.ts +4 -10
  120. package/package.json +1 -1
  121. package/plugins/with-swimlane-create.d.ts +8 -0
  122. package/plugins/with-swimlane.d.ts +2 -0
  123. package/plugins/with-table-resize.d.ts +2 -0
  124. package/plugins/with-table.d.ts +5 -1
  125. package/public-api.d.ts +1 -0
  126. package/table.component.d.ts +17 -11
  127. package/transforms/geometry.d.ts +2 -2
  128. package/transforms/index.d.ts +8 -2
  129. package/transforms/multi-text-geometry-text.d.ts +4 -0
  130. package/transforms/swimlane.d.ts +6 -0
  131. package/transforms/table-text.d.ts +4 -0
  132. package/utils/clipboard.d.ts +2 -0
  133. package/utils/common.d.ts +32 -0
  134. package/utils/geometry.d.ts +36 -15
  135. package/utils/hit.d.ts +4 -2
  136. package/utils/index.d.ts +3 -0
  137. package/utils/line/line-common.d.ts +3 -3
  138. package/utils/memorize.d.ts +3 -1
  139. package/utils/multi-text-geometry.d.ts +14 -0
  140. package/utils/position/geometry.d.ts +8 -21
  141. package/utils/selected.d.ts +4 -0
  142. package/utils/shape.d.ts +2 -2
  143. package/utils/style/stroke.d.ts +4 -5
  144. package/utils/swimlane.d.ts +52 -0
  145. package/utils/table.d.ts +26 -0
@@ -43,4 +43,4 @@ export class LineAutoCompleteGenerator extends Generator {
43
43
  }
44
44
  }
45
45
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2dlbmVyYXRvcnMvbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpILE9BQU8sRUFBNEIsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFNBQXNEO2FBQzFGLFFBQUcsR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7SUFLNUMsWUFBbUIsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBREUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUZwQyxpQkFBWSxHQUF1QixJQUFJLENBQUM7SUFJeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUEwQixFQUFFLElBQThCO1FBQzlELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFzQixFQUFFLElBQThCO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFO2dCQUM5RixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBQztnQkFDMUQsU0FBUyxFQUFFLE9BQU87YUFDckIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ25ELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJnYmFUb0hFWCwgY3JlYXRlRywgZHJhd0NpcmNsZSwgZ2V0U2VsZWN0ZWRFbGVtZW50cywgaXNTZWxlY3Rpb25Nb3ZpbmcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBQbGFpdFNoYXBlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhLCBHZW5lcmF0b3IsIFBSSU1BUllfQ09MT1IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldEF1dG9Db21wbGV0ZVBvaW50cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExJTkVfQVVUT19DT01QTEVURV9ESUFNRVRFUiwgTElORV9BVVRPX0NPTVBMRVRFX09QQUNJVFkgfSBmcm9tICcuLi9jb25zdGFudHMvbGluZSc7XG5cbmV4cG9ydCBjbGFzcyBMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPFBsYWl0U2hhcGVFbGVtZW50LCBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGE+IHtcbiAgICBzdGF0aWMga2V5ID0gJ2xpbmUtYXV0by1jb21wbGV0ZS1nZW5lcmF0b3InO1xuXG4gICAgYXV0b0NvbXBsZXRlRyE6IFNWR0dFbGVtZW50O1xuICAgIGhvdmVyRWxlbWVudDogU1ZHR0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBib2FyZDogUGxhaXRCb2FyZCkge1xuICAgICAgICBzdXBlcihib2FyZCk7XG4gICAgfVxuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoZGF0YS5zZWxlY3RlZCAmJiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBQbGFpdEdlb21ldHJ5LCBkYXRhOiBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgY29uc3QgbWlkZGxlUG9pbnRzID0gZ2V0QXV0b0NvbXBsZXRlUG9pbnRzKGVsZW1lbnQpO1xuICAgICAgICBtaWRkbGVQb2ludHMuZm9yRWFjaCgocG9pbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaXJjbGUgPSBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcodGhpcy5ib2FyZCksIHBvaW50LCBMSU5FX0FVVE9fQ09NUExFVEVfRElBTUVURVIsIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICAgICAgICAgICBmaWxsOiBSZ2JhVG9IRVgoUFJJTUFSWV9DT0xPUiwgTElORV9BVVRPX0NPTVBMRVRFX09QQUNJVFkpLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjaXJjbGUuY2xhc3NMaXN0LmFkZChgbGluZS1hdXRvLWNvbXBsZXRlLSR7aW5kZXh9YCk7XG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUcuYXBwZW5kQ2hpbGQoY2lyY2xlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZUc7XG4gICAgfVxuXG4gICAgcmVtb3ZlQXV0b0NvbXBsZXRlRyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaG92ZXJFbGVtZW50ID0gdGhpcy5hdXRvQ29tcGxldGVHLnF1ZXJ5U2VsZWN0b3IoYC5saW5lLWF1dG8tY29tcGxldGUtJHtpbmRleH1gKTtcbiAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQhLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB9XG5cbiAgICByZWNvdmVyQXV0b0NvbXBsZXRlRygpIHtcbiAgICAgICAgaWYgKHRoaXMuaG92ZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmhvdmVyRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2dlbmVyYXRvcnMvbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpILE9BQU8sRUFBNEIsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUYsTUFBTSxPQUFPLHlCQUF1RSxTQUFRLFNBQXNDO2FBQ3ZILFFBQUcsR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7SUFLNUMsWUFBbUIsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBREUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUZwQyxpQkFBWSxHQUF1QixJQUFJLENBQUM7SUFJeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUEwQixFQUFFLElBQThCO1FBQzlELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFVLEVBQUUsSUFBOEI7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMvQixNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7Z0JBQzlGLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDO2dCQUMxRCxTQUFTLEVBQUUsT0FBTzthQUNyQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHVCQUF1QixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxZQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDbkQsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmdiYVRvSEVYLCBjcmVhdGVHLCBkcmF3Q2lyY2xlLCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NlbGVjdGlvbk1vdmluZyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFBsYWl0U2hhcGVFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEsIEdlbmVyYXRvciwgUFJJTUFSWV9DT0xPUiB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0QXV0b0NvbXBsZXRlUG9pbnRzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTElORV9BVVRPX0NPTVBMRVRFX0RJQU1FVEVSLCBMSU5FX0FVVE9fQ09NUExFVEVfT1BBQ0lUWSB9IGZyb20gJy4uL2NvbnN0YW50cy9saW5lJztcblxuZXhwb3J0IGNsYXNzIExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0U2hhcGVFbGVtZW50ID0gUGxhaXRHZW9tZXRyeT4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhPiB7XG4gICAgc3RhdGljIGtleSA9ICdsaW5lLWF1dG8tY29tcGxldGUtZ2VuZXJhdG9yJztcblxuICAgIGF1dG9Db21wbGV0ZUchOiBTVkdHRWxlbWVudDtcbiAgICBob3ZlckVsZW1lbnQ6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgc3VwZXIoYm9hcmQpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIGRhdGE6IEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQgJiYgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IG1pZGRsZVBvaW50cyA9IGdldEF1dG9Db21wbGV0ZVBvaW50cyhlbGVtZW50KTtcbiAgICAgICAgbWlkZGxlUG9pbnRzLmZvckVhY2goKHBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2lyY2xlID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBwb2ludCwgTElORV9BVVRPX0NPTVBMRVRFX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgZmlsbDogUmdiYVRvSEVYKFBSSU1BUllfQ09MT1IsIExJTkVfQVVUT19DT01QTEVURV9PUEFDSVRZKSxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2lyY2xlLmNsYXNzTGlzdC5hZGQoYGxpbmUtYXV0by1jb21wbGV0ZS0ke2luZGV4fWApO1xuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVHO1xuICAgIH1cblxuICAgIHJlbW92ZUF1dG9Db21wbGV0ZUcoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmhvdmVyRWxlbWVudCA9IHRoaXMuYXV0b0NvbXBsZXRlRy5xdWVyeVNlbGVjdG9yKGAubGluZS1hdXRvLWNvbXBsZXRlLSR7aW5kZXh9YCk7XG4gICAgICAgIHRoaXMuaG92ZXJFbGVtZW50IS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgfVxuXG4gICAgcmVjb3ZlckF1dG9Db21wbGV0ZUcoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuaG92ZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { TextGenerator } from './text.generator';
2
+ import { isMultipleTextGeometry } from '../utils';
3
+ export class SingleTextGenerator extends TextGenerator {
4
+ get textManage() {
5
+ return this.textManages[0];
6
+ }
7
+ constructor(board, element, text, viewContainerRef, options) {
8
+ super(board, element, [{ key: element.id, text: text, textHeight: element.textHeight }], viewContainerRef, options);
9
+ }
10
+ update(element, previousText, currentText, elementG) {
11
+ if (!isMultipleTextGeometry(element)) {
12
+ super.update(element, [{ text: previousText, key: element.id, textHeight: element.textHeight }], [{ text: currentText, key: element.id, textHeight: element.textHeight }], elementG);
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXRleHQuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFzQixhQUFhLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE1BQU0sT0FBTyxtQkFBNEQsU0FBUSxhQUFnQjtJQUM3RixJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQ0ksS0FBaUIsRUFDakIsT0FBVSxFQUNWLElBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxPQUFnQztRQUVoQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQVNELE1BQU0sQ0FDRixPQUFVLEVBQ1YsWUFBcUQsRUFDckQsV0FBb0QsRUFDcEQsUUFBb0I7UUFFcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFFLE9BQTBDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxNQUFNLENBQ1IsT0FBTyxFQUNQLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBZ0MsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzdGLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBK0IsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzVGLFFBQVEsQ0FDWCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBhcmFncmFwaEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEdlb21ldHJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQsIFRleHRHZW5lcmF0b3IsIFRleHRHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSAnLi90ZXh0LmdlbmVyYXRvcic7XG5pbXBvcnQgeyBpc011bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU2luZ2xlVGV4dEdlbmVyYXRvcjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRHZW9tZXRyeT4gZXh0ZW5kcyBUZXh0R2VuZXJhdG9yPFQ+IHtcbiAgICBnZXQgdGV4dE1hbmFnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dE1hbmFnZXNbMF07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgICAgICBlbGVtZW50OiBULFxuICAgICAgICB0ZXh0OiBQYXJhZ3JhcGhFbGVtZW50LFxuICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBvcHRpb25zOiBUZXh0R2VuZXJhdG9yT3B0aW9uczxUPlxuICAgICkge1xuICAgICAgICBzdXBlcihib2FyZCwgZWxlbWVudCwgW3sga2V5OiBlbGVtZW50LmlkLCB0ZXh0OiB0ZXh0LCB0ZXh0SGVpZ2h0OiBlbGVtZW50LnRleHRIZWlnaHQgfV0sIHZpZXdDb250YWluZXJSZWYsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHVwZGF0ZShcbiAgICAgICAgZWxlbWVudDogVCxcbiAgICAgICAgcHJldmlvdXNEcmF3U2hhcGVUZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W10sXG4gICAgICAgIGN1cnJlbnREcmF3U2hhcGVUZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W10sXG4gICAgICAgIGVsZW1lbnRHOiBTVkdFbGVtZW50XG4gICAgKTogdm9pZDtcbiAgICB1cGRhdGUoZWxlbWVudDogVCwgcHJldmlvdXNUZXh0OiBQYXJhZ3JhcGhFbGVtZW50LCBjdXJyZW50VGV4dDogUGFyYWdyYXBoRWxlbWVudCwgZWxlbWVudEc6IFNWR0VsZW1lbnQpOiB2b2lkO1xuICAgIHVwZGF0ZShcbiAgICAgICAgZWxlbWVudDogVCxcbiAgICAgICAgcHJldmlvdXNUZXh0OiBQYXJhZ3JhcGhFbGVtZW50IHwgUGxhaXREcmF3U2hhcGVUZXh0W10sXG4gICAgICAgIGN1cnJlbnRUZXh0OiBQYXJhZ3JhcGhFbGVtZW50IHwgUGxhaXREcmF3U2hhcGVUZXh0W10sXG4gICAgICAgIGVsZW1lbnRHOiBTVkdFbGVtZW50XG4gICAgKSB7XG4gICAgICAgIGlmICghaXNNdWx0aXBsZVRleHRHZW9tZXRyeSgoZWxlbWVudCBhcyB1bmtub3duKSBhcyBQbGFpdENvbW1vbkdlb21ldHJ5KSkge1xuICAgICAgICAgICAgc3VwZXIudXBkYXRlKFxuICAgICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgW3sgdGV4dDogcHJldmlvdXNUZXh0IGFzIFBhcmFncmFwaEVsZW1lbnQsIGtleTogZWxlbWVudC5pZCwgdGV4dEhlaWdodDogZWxlbWVudC50ZXh0SGVpZ2h0IH1dLFxuICAgICAgICAgICAgICAgIFt7IHRleHQ6IGN1cnJlbnRUZXh0IGFzIFBhcmFncmFwaEVsZW1lbnQsIGtleTogZWxlbWVudC5pZCwgdGV4dEhlaWdodDogZWxlbWVudC50ZXh0SGVpZ2h0IH1dLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRHXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { TableSymbols } from '../interfaces';
2
+ import { Generator } from '@plait/common';
3
+ import { RectangleClient } from '@plait/core';
4
+ import { getEngine } from '../engines';
5
+ import { getDrawDefaultStrokeColor } from '../utils';
6
+ export class TableGenerator extends Generator {
7
+ canDraw(element, data) {
8
+ return true;
9
+ }
10
+ draw(element, data) {
11
+ const rectangle = RectangleClient.getRectangleByPoints(element.points);
12
+ return getEngine(TableSymbols.table).draw(this.board, rectangle, {
13
+ strokeWidth: 2,
14
+ stroke: getDrawDefaultStrokeColor(this.board.theme.themeColorMode),
15
+ }, {
16
+ element: element
17
+ });
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy90YWJsZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXJELE1BQU0sT0FBTyxjQUFvRCxTQUFRLFNBQXVCO0lBQzVGLE9BQU8sQ0FBQyxPQUFVLEVBQUUsSUFBZTtRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVUsRUFBRSxJQUFlO1FBQzVCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDeEUsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckMsSUFBSSxDQUFDLEtBQUssRUFDVixTQUFTLEVBQ1Q7WUFDSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7U0FDckUsRUFDRDtZQUNJLE9BQU8sRUFBRSxPQUFPO1NBQ25CLENBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlU3ltYm9scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0VGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvciB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGEge31cblxuZXhwb3J0IGNsYXNzIFRhYmxlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdFRhYmxlPiBleHRlbmRzIEdlbmVyYXRvcjxULCBUYWJsZURhdGE+IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFQsIGRhdGE6IFRhYmxlRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQsIGRhdGE6IFRhYmxlRGF0YSkge1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgcmV0dXJuIGdldEVuZ2luZShUYWJsZVN5bWJvbHMudGFibGUpLmRyYXcoXG4gICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvcih0aGlzLmJvYXJkLnRoZW1lLnRoZW1lQ29sb3JNb2RlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,126 @@
1
+ import { ELEMENT_TO_TEXT_MANAGES, WithTextPluginKey } from '@plait/common';
2
+ import { RectangleClient } from '@plait/core';
3
+ import { TextManage } from '@plait/text';
4
+ import { getEngine } from '../engines';
5
+ import { getTextKey, getTextRectangle } from '../utils';
6
+ export const KEY_TO_TEXT_MANAGE = new Map();
7
+ export const setTextManage = (key, textManage) => {
8
+ return KEY_TO_TEXT_MANAGE.set(key, textManage);
9
+ };
10
+ export const getTextManage = (key) => {
11
+ return KEY_TO_TEXT_MANAGE.get(key);
12
+ };
13
+ export const deleteTextManage = (key) => {
14
+ return KEY_TO_TEXT_MANAGE.delete(key);
15
+ };
16
+ export class TextGenerator {
17
+ get shape() {
18
+ return this.element.shape || this.element.type;
19
+ }
20
+ constructor(board, element, texts, viewContainerRef, options) {
21
+ this.board = board;
22
+ this.texts = texts;
23
+ this.element = element;
24
+ this.viewContainerRef = viewContainerRef;
25
+ this.options = options;
26
+ }
27
+ initialize() {
28
+ const textPlugins = (this.board.getPluginOptions(WithTextPluginKey) || {}).textPlugins;
29
+ this.textManages = this.texts.map(text => {
30
+ const textManage = this.createTextManage(text, textPlugins);
31
+ setTextManage(getTextKey(this.element, text), textManage);
32
+ return textManage;
33
+ });
34
+ ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
35
+ }
36
+ draw(elementG) {
37
+ const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
38
+ this.texts.forEach(drawShapeText => {
39
+ const textManage = getTextManage(getTextKey(this.element, drawShapeText));
40
+ if (drawShapeText.text && textManage) {
41
+ textManage.draw(drawShapeText.text);
42
+ elementG.append(textManage.g);
43
+ (this.element.angle || this.element.angle === 0) && textManage.updateAngle(centerPoint, this.element.angle);
44
+ }
45
+ });
46
+ }
47
+ update(element, previousDrawShapeTexts, currentDrawShapeTexts, elementG) {
48
+ this.element = element;
49
+ ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
50
+ const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
51
+ const textPlugins = (this.board.getPluginOptions(WithTextPluginKey) || {}).textPlugins;
52
+ const removedTexts = previousDrawShapeTexts.filter(value => {
53
+ return !currentDrawShapeTexts.find(item => item.key === value.key);
54
+ });
55
+ if (removedTexts.length) {
56
+ removedTexts.forEach(item => {
57
+ const textManage = getTextManage(item.key);
58
+ const index = this.textManages.findIndex(value => value === textManage);
59
+ if (index > -1 && item.text && item.textHeight) {
60
+ this.textManages.splice(index, 1);
61
+ }
62
+ textManage?.destroy();
63
+ deleteTextManage(item.key);
64
+ });
65
+ }
66
+ currentDrawShapeTexts.forEach(drawShapeText => {
67
+ if (drawShapeText.text) {
68
+ let textManage = getTextManage(getTextKey(this.element, drawShapeText));
69
+ if (!textManage) {
70
+ textManage = this.createTextManage(drawShapeText, textPlugins);
71
+ setTextManage(drawShapeText.key, textManage);
72
+ textManage.draw(drawShapeText.text);
73
+ elementG.append(textManage.g);
74
+ this.textManages.push(textManage);
75
+ }
76
+ else {
77
+ textManage.updateText(drawShapeText.text);
78
+ textManage.updateRectangle();
79
+ }
80
+ (this.element.angle || this.element.angle === 0) && textManage.updateAngle(centerPoint, this.element.angle);
81
+ }
82
+ });
83
+ }
84
+ createTextManage(text, textPlugins) {
85
+ const textManage = new TextManage(this.board, this.viewContainerRef, {
86
+ getRectangle: () => {
87
+ return this.getRectangle(text);
88
+ },
89
+ onValueChangeHandle: (textManageRef) => {
90
+ return this.onValueChangeHandle(textManageRef, text);
91
+ },
92
+ getMaxWidth: () => {
93
+ return this.getMaxWidth(text);
94
+ },
95
+ getRenderRectangle: () => {
96
+ return this.options.getRenderRectangle ? this.options.getRenderRectangle(this.element, text) : this.getRectangle(text);
97
+ },
98
+ textPlugins
99
+ });
100
+ return textManage;
101
+ }
102
+ getRectangle(text) {
103
+ const getRectangle = getEngine(this.shape).getTextRectangle;
104
+ if (getRectangle) {
105
+ return getRectangle(this.element, text);
106
+ }
107
+ return getTextRectangle(this.element);
108
+ }
109
+ onValueChangeHandle(textManageRef, text) {
110
+ return this.options.onValueChangeHandle(this.element, textManageRef, text);
111
+ }
112
+ getMaxWidth(text) {
113
+ return this.options.getMaxWidth ? this.options.getMaxWidth() : this.getRectangle(text).width;
114
+ }
115
+ destroy() {
116
+ this.textManages.forEach(manage => {
117
+ manage.destroy();
118
+ });
119
+ this.textManages = [];
120
+ ELEMENT_TO_TEXT_MANAGES.delete(this.element);
121
+ this.texts.forEach(item => {
122
+ deleteTextManage(item.key);
123
+ });
124
+ }
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUErQyxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0YsT0FBTyxFQUE2QixVQUFVLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWdCeEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQTRCLElBQUksR0FBRyxFQUFFLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQXNCLEVBQUUsRUFBRTtJQUNqRSxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDekMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUM1QyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYTtJQWF0QixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENB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QUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTLCBXaXRoVGV4dE9wdGlvbnMsIFdpdGhUZXh0UGx1Z2luS2V5IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0T3B0aW9uc0JvYXJkLCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBUZXh0UGx1Z2luLCBUZXh0TWFuYWdlUmVmLCBUZXh0TWFuYWdlLCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBEcmF3U2hhcGVzLCBFbmdpbmVFeHRyYURhdGEsIFBsYWl0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFRleHRLZXksIGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXREcmF3U2hhcGVUZXh0IGV4dGVuZHMgRW5naW5lRXh0cmFEYXRhIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICB0ZXh0OiBQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHRleHRIZWlnaHQ6IG51bWJlcjtcbiAgICBib2FyZD86IFBsYWl0Qm9hcmQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEdlbmVyYXRvck9wdGlvbnM8VD4ge1xuICAgIG9uVmFsdWVDaGFuZ2VIYW5kbGU6IChlbGVtZW50OiBULCB0ZXh0Q2hhbmdlUmVmOiBUZXh0TWFuYWdlUmVmLCB0ZXh0OiBQbGFpdERyYXdTaGFwZVRleHQpID0+IHZvaWQ7XG4gICAgZ2V0UmVuZGVyUmVjdGFuZ2xlPzogKGVsZW1lbnQ6IFQsIHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgIGdldE1heFdpZHRoPzogKCkgPT4gbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgS0VZX1RPX1RFWFRfTUFOQUdFOiBNYXA8c3RyaW5nLCBUZXh0TWFuYWdlPiA9IG5ldyBNYXAoKTtcblxuZXhwb3J0IGNvbnN0IHNldFRleHRNYW5hZ2UgPSAoa2V5OiBzdHJpbmcsIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpID0+IHtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLnNldChrZXksIHRleHRNYW5hZ2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2UgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLmdldChrZXkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRleHRNYW5hZ2UgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLmRlbGV0ZShrZXkpO1xufTtcblxuZXhwb3J0IGNsYXNzIFRleHRHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnk+IHtcbiAgICBwcm90ZWN0ZWQgYm9hcmQ6IFBsYWl0Qm9hcmQ7XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogVDtcblxuICAgIHByb3RlY3RlZCB0ZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W107XG5cbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBUZXh0R2VuZXJhdG9yT3B0aW9uczxUPjtcblxuICAgIHB1YmxpYyB0ZXh0TWFuYWdlcyE6IFRleHRNYW5hZ2VbXTtcblxuICAgIGdldCBzaGFwZSgpOiBEcmF3U2hhcGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zaGFwZSB8fCB0aGlzLmVsZW1lbnQudHlwZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgICAgIGVsZW1lbnQ6IFQsXG4gICAgICAgIHRleHRzOiBQbGFpdERyYXdTaGFwZVRleHRbXSxcbiAgICAgICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD5cbiAgICApIHtcbiAgICAgICAgdGhpcy5ib2FyZCA9IGJvYXJkO1xuICAgICAgICB0aGlzLnRleHRzID0gdGV4dHM7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZiA9IHZpZXdDb250YWluZXJSZWY7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgY29uc3QgdGV4dFBsdWdpbnMgPSAoKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aFRleHRPcHRpb25zPihXaXRoVGV4dFBsdWdpbktleSkgfHwge30pLnRleHRQbHVnaW5zO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gdGhpcy50ZXh0cy5tYXAodGV4dCA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gdGhpcy5jcmVhdGVUZXh0TWFuYWdlKHRleHQsIHRleHRQbHVnaW5zKTtcbiAgICAgICAgICAgIHNldFRleHRNYW5hZ2UoZ2V0VGV4dEtleSh0aGlzLmVsZW1lbnQsIHRleHQpLCB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0TWFuYWdlO1xuICAgICAgICB9KTtcbiAgICAgICAgRUxFTUVOVF9UT19URVhUX01BTkFHRVMuc2V0KHRoaXMuZWxlbWVudCwgdGhpcy50ZXh0TWFuYWdlcyk7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50RzogU1ZHRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjZW50ZXJQb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludCh0aGlzLmJvYXJkLmdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpISk7XG4gICAgICAgIHRoaXMudGV4dHMuZm9yRWFjaChkcmF3U2hhcGVUZXh0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSBnZXRUZXh0TWFuYWdlKGdldFRleHRLZXkodGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KSk7XG4gICAgICAgICAgICBpZiAoZHJhd1NoYXBlVGV4dC50ZXh0ICYmIHRleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlLmRyYXcoZHJhd1NoYXBlVGV4dC50ZXh0KTtcbiAgICAgICAgICAgICAgICBlbGVtZW50Ry5hcHBlbmQodGV4dE1hbmFnZS5nKTtcbiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmFuZ2xlIHx8IHRoaXMuZWxlbWVudC5hbmdsZSA9PT0gMCkgJiYgdGV4dE1hbmFnZS51cGRhdGVBbmdsZShjZW50ZXJQb2ludCwgdGhpcy5lbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGVsZW1lbnQ6IFQsIHByZXZpb3VzRHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLCBjdXJyZW50RHJhd1NoYXBlVGV4dHM6IFBsYWl0RHJhd1NoYXBlVGV4dFtdLCBlbGVtZW50RzogU1ZHRWxlbWVudCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5zZXQodGhpcy5lbGVtZW50LCB0aGlzLnRleHRNYW5hZ2VzKTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQodGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50KSEpO1xuICAgICAgICBjb25zdCB0ZXh0UGx1Z2lucyA9ICgodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoVGV4dE9wdGlvbnM+KFdpdGhUZXh0UGx1Z2luS2V5KSB8fCB7fSkudGV4dFBsdWdpbnM7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRUZXh0cyA9IHByZXZpb3VzRHJhd1NoYXBlVGV4dHMuZmlsdGVyKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhY3VycmVudERyYXdTaGFwZVRleHRzLmZpbmQoaXRlbSA9PiBpdGVtLmtleSA9PT0gdmFsdWUua2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZW1vdmVkVGV4dHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZShpdGVtLmtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRleHRNYW5hZ2VzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZSA9PT0gdGV4dE1hbmFnZSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEgJiYgaXRlbS50ZXh0ICYmIGl0ZW0udGV4dEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2VzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRleHRNYW5hZ2U/LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICBkZWxldGVUZXh0TWFuYWdlKGl0ZW0ua2V5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnREcmF3U2hhcGVUZXh0cy5mb3JFYWNoKGRyYXdTaGFwZVRleHQgPT4ge1xuICAgICAgICAgICAgaWYgKGRyYXdTaGFwZVRleHQudGV4dCkge1xuICAgICAgICAgICAgICAgIGxldCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZShnZXRUZXh0S2V5KHRoaXMuZWxlbWVudCwgZHJhd1NoYXBlVGV4dCkpO1xuICAgICAgICAgICAgICAgIGlmICghdGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlID0gdGhpcy5jcmVhdGVUZXh0TWFuYWdlKGRyYXdTaGFwZVRleHQsIHRleHRQbHVnaW5zKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGV4dE1hbmFnZShkcmF3U2hhcGVUZXh0LmtleSwgdGV4dE1hbmFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UuZHJhdyhkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Ry5hcHBlbmQodGV4dE1hbmFnZS5nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5wdXNoKHRleHRNYW5hZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UudXBkYXRlVGV4dChkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmFuZ2xlIHx8IHRoaXMuZWxlbWVudC5hbmdsZSA9PT0gMCkgJiYgdGV4dE1hbmFnZS51cGRhdGVBbmdsZShjZW50ZXJQb2ludCwgdGhpcy5lbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVUZXh0TWFuYWdlKHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCwgdGV4dFBsdWdpbnM6IFRleHRQbHVnaW5bXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gbmV3IFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWN0YW5nbGUodGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25WYWx1ZUNoYW5nZUhhbmRsZTogKHRleHRNYW5hZ2VSZWY6IFRleHRNYW5hZ2VSZWYpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vblZhbHVlQ2hhbmdlSGFuZGxlKHRleHRNYW5hZ2VSZWYsIHRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWF4V2lkdGgodGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVuZGVyUmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUgPyB0aGlzLm9wdGlvbnMuZ2V0UmVuZGVyUmVjdGFuZ2xlKHRoaXMuZWxlbWVudCwgdGV4dCkgOiB0aGlzLmdldFJlY3RhbmdsZSh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luc1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U7XG4gICAgfVxuXG4gICAgZ2V0UmVjdGFuZ2xlKHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICBjb25zdCBnZXRSZWN0YW5nbGUgPSBnZXRFbmdpbmU8VD4odGhpcy5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQsIHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUZXh0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZUhhbmRsZSh0ZXh0TWFuYWdlUmVmOiBUZXh0TWFuYWdlUmVmLCB0ZXh0OiBQbGFpdERyYXdTaGFwZVRleHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5vblZhbHVlQ2hhbmdlSGFuZGxlKHRoaXMuZWxlbWVudCwgdGV4dE1hbmFnZVJlZiwgdGV4dCk7XG4gICAgfVxuXG4gICAgZ2V0TWF4V2lkdGgodGV4dDogUGxhaXREcmF3U2hhcGVUZXh0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGggPyB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGgoKSA6IHRoaXMuZ2V0UmVjdGFuZ2xlKHRleHQpLndpZHRoO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMuZm9yRWFjaChtYW5hZ2UgPT4ge1xuICAgICAgICAgICAgbWFuYWdlLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMgPSBbXTtcbiAgICAgICAgRUxFTUVOVF9UT19URVhUX01BTkFHRVMuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMudGV4dHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZVRleHRNYW5hZ2UoaXRlbS5rZXkpO1xuICAgICAgICB9KTtcbiAgICB9XG59Il19
@@ -1,23 +1,16 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
1
  import { PlaitBoard, isSelectionMoving, getSelectedElements, ACTIVE_STROKE_WIDTH, RectangleClient } from '@plait/core';
3
- import { Subject } from 'rxjs';
4
2
  import { GeometryShapeGenerator } from './generators/geometry-shape.generator';
5
- import { TextManage } from '@plait/text';
6
3
  import { DrawTransforms } from './transforms';
7
- import { getTextRectangle } from './utils/geometry';
8
- import { ActiveGenerator, WithTextPluginKey, CommonPluginElement, canResize } from '@plait/common';
9
- import { GeometryThreshold } from './constants/geometry';
10
- import { getEngine } from './engines';
4
+ import { ActiveGenerator, CommonElementFlavour, canResize } from '@plait/common';
11
5
  import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
12
- import { memorizeLatestText } from './utils';
13
- import * as i0 from "@angular/core";
14
- export class GeometryComponent extends CommonPluginElement {
15
- get textManage() {
16
- return this.getTextManages()[0];
17
- }
6
+ import { getTextRectangle, isGeometryIncludeText, isMultipleTextGeometry, memorizeLatestText } from './utils';
7
+ import { TextGenerator } from './generators/text.generator';
8
+ import { SingleTextGenerator } from './generators/single-text.generator';
9
+ import { GeometryThreshold } from './constants';
10
+ import { getEngine } from './engines';
11
+ export class GeometryComponent extends CommonElementFlavour {
18
12
  constructor() {
19
13
  super();
20
- this.destroy$ = new Subject();
21
14
  }
22
15
  initializeGenerator() {
23
16
  this.activeGenerator = new ActiveGenerator(this.board, {
@@ -48,22 +41,25 @@ export class GeometryComponent extends CommonPluginElement {
48
41
  });
49
42
  this.lineAutoCompleteGenerator = new LineAutoCompleteGenerator(this.board);
50
43
  this.shapeGenerator = new GeometryShapeGenerator(this.board);
51
- this.initializeTextManage();
44
+ if (isGeometryIncludeText(this.element)) {
45
+ this.initializeTextManage();
46
+ }
52
47
  this.getRef().addGenerator(LineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
53
48
  this.getRef().addGenerator(ActiveGenerator.key, this.activeGenerator);
54
49
  }
55
- ngOnInit() {
56
- super.ngOnInit();
50
+ initialize() {
51
+ super.initialize();
57
52
  this.initializeGenerator();
58
53
  this.shapeGenerator.processDrawing(this.element, this.getElementG());
59
- this.activeGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), { selected: this.selected });
54
+ this.activeGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
55
+ selected: this.selected
56
+ });
60
57
  this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
61
58
  selected: this.selected
62
59
  });
63
- this.drawText();
60
+ this.textGenerator && this.textGenerator.draw(this.getElementG());
64
61
  }
65
62
  onContextChanged(value, previous) {
66
- this.initializeWeakMap();
67
63
  const isChangeTheme = this.board.operations.find(op => op.type === 'set_theme');
68
64
  if (value.element !== previous.element || isChangeTheme) {
69
65
  this.shapeGenerator.processDrawing(this.element, this.getElementG());
@@ -71,7 +67,7 @@ export class GeometryComponent extends CommonPluginElement {
71
67
  this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
72
68
  selected: this.selected
73
69
  });
74
- this.updateText();
70
+ this.textGenerator && this.updateText(previous.element, value.element);
75
71
  }
76
72
  else {
77
73
  const hasSameSelected = value.selected === previous.selected;
@@ -84,69 +80,60 @@ export class GeometryComponent extends CommonPluginElement {
84
80
  }
85
81
  }
86
82
  }
87
- drawText() {
88
- this.textManage.draw(this.element.text);
89
- this.getElementG().append(this.textManage.g);
90
- const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
91
- this.textManage.updateAngle(centerPoint, this.element.angle);
92
- }
93
- updateText() {
94
- this.textManage.updateText(this.element.text);
95
- this.textManage.updateRectangle();
96
- const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
97
- this.textManage.updateAngle(centerPoint, this.element.angle);
83
+ updateText(previousElement, currentElement) {
84
+ if (isMultipleTextGeometry(this.element)) {
85
+ this.textGenerator.update(this.element, previousElement.texts, currentElement.texts, this.getElementG());
86
+ }
87
+ else {
88
+ this.textGenerator.update(this.element, previousElement.text, currentElement.text, this.getElementG());
89
+ }
98
90
  }
99
91
  initializeTextManage() {
100
- const plugins = (this.board.getPluginOptions(WithTextPluginKey) || {}).textPlugins;
101
- const manage = new TextManage(this.board, this.viewContainerRef, {
102
- getRectangle: () => {
103
- const getRectangle = getEngine(this.element.shape).getTextRectangle;
104
- if (getRectangle) {
105
- return getRectangle(this.element);
106
- }
107
- return getTextRectangle(this.element);
108
- },
109
- onValueChangeHandle: (textManageRef) => {
110
- const height = textManageRef.height / this.board.viewport.zoom;
111
- const width = textManageRef.width / this.board.viewport.zoom;
112
- if (textManageRef.newValue) {
113
- DrawTransforms.setText(this.board, this.element, textManageRef.newValue, width, height);
92
+ const onTextValueChangeHandle = (element, textManageRef, text) => {
93
+ const height = textManageRef.height / this.board.viewport.zoom;
94
+ const width = textManageRef.width / this.board.viewport.zoom;
95
+ if (textManageRef.newValue) {
96
+ if (isMultipleTextGeometry(element)) {
97
+ DrawTransforms.setDrawShapeText(this.board, element, {
98
+ key: text.key,
99
+ text: textManageRef.newValue,
100
+ textHeight: height
101
+ });
114
102
  }
115
103
  else {
116
- DrawTransforms.setTextSize(this.board, this.element, width, height);
104
+ DrawTransforms.setText(this.board, element, textManageRef.newValue, width, height);
117
105
  }
118
- textManageRef.operations && memorizeLatestText(this.element, textManageRef.operations);
119
- },
120
- getMaxWidth: () => {
121
- let width = getTextRectangle(this.element).width;
122
- const getRectangle = getEngine(this.element.shape).getTextRectangle;
123
- if (getRectangle) {
124
- width = getRectangle(this.element).width;
106
+ }
107
+ else {
108
+ DrawTransforms.setTextSize(this.board, element, width, height);
109
+ }
110
+ textManageRef.operations && memorizeLatestText(element, textManageRef.operations);
111
+ };
112
+ if (isMultipleTextGeometry(this.element)) {
113
+ this.textGenerator = new TextGenerator(this.board, this.element, this.element.texts, PlaitBoard.getViewContainerRef(this.board), {
114
+ onValueChangeHandle: onTextValueChangeHandle
115
+ });
116
+ }
117
+ else {
118
+ this.textGenerator = new SingleTextGenerator(this.board, this.element, this.element.text, PlaitBoard.getViewContainerRef(this.board), {
119
+ onValueChangeHandle: onTextValueChangeHandle,
120
+ getMaxWidth: () => {
121
+ let width = getTextRectangle(this.element).width;
122
+ const getRectangle = getEngine(this.element.shape).getTextRectangle;
123
+ if (getRectangle) {
124
+ width = getRectangle(this.element).width;
125
+ }
126
+ return this.element?.autoSize ? GeometryThreshold.defaultTextMaxWidth : width;
125
127
  }
126
- return this.element?.autoSize ? GeometryThreshold.defaultTextMaxWidth : width;
127
- },
128
- textPlugins: plugins
129
- });
130
- this.initializeTextManages([manage]);
128
+ });
129
+ }
130
+ this.textGenerator.initialize();
131
131
  }
132
- ngOnDestroy() {
133
- super.ngOnDestroy();
134
- this.destroy$.next();
135
- this.destroy$.complete();
132
+ destroy() {
133
+ super.destroy();
136
134
  this.activeGenerator.destroy();
137
135
  this.lineAutoCompleteGenerator.destroy();
138
- this.destroyTextManages();
136
+ this.textGenerator?.destroy();
139
137
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GeometryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: GeometryComponent, isStandalone: true, selector: "plait-draw-geometry", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
138
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GeometryComponent, decorators: [{
144
- type: Component,
145
- args: [{
146
- selector: 'plait-draw-geometry',
147
- template: ``,
148
- changeDetection: ChangeDetectionStrategy.OnPush,
149
- standalone: true
150
- }]
151
- }], ctorParameters: () => [] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUVuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQWlCLE1BQU0sYUFBYSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBbUIsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVE3QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQThDO0lBVWpGLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBYlosYUFB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QUlILGlCQUFpQjtrQkFON0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFJlY3RhbmdsZUNsaWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2dlb21ldHJ5JztcbmltcG9ydCB7IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFRleHRNYW5hZ2UsIFRleHRNYW5hZ2VSZWYgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBEcmF3VHJhbnNmb3JtcyB9IGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlIH0gZnJvbSAnLi91dGlscy9nZW9tZXRyeSc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IsIFdpdGhUZXh0UGx1Z2luS2V5LCBXaXRoVGV4dE9wdGlvbnMsIENvbW1vblBsdWdpbkVsZW1lbnQsIGNhblJlc2l6ZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgR2VvbWV0cnlUaHJlc2hvbGQgfSBmcm9tICcuL2NvbnN0YW50cy9nZW9tZXRyeSc7XG5pbXBvcnQgeyBQbGFpdFRleHQgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi9lbmdpbmVzJztcbmltcG9ydCB7IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBtZW1vcml6ZUxhdGVzdFRleHQgfSBmcm9tICcuL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC1kcmF3LWdlb21ldHJ5JyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUNvbXBvbmVudCBleHRlbmRzIENvbW1vblBsdWdpbkVsZW1lbnQ8UGxhaXRHZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNvbnRleHRDaGFuZ2VkPFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQ+IHtcbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8UGxhaXRHZW9tZXRyeT47XG5cbiAgICBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yITogTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcjtcblxuICAgIHNoYXBlR2VuZXJhdG9yITogR2VvbWV0cnlTaGFwZUdlbmVyYXRvcjtcblxuICAgIGdldCB0ZXh0TWFuYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUZXh0TWFuYWdlcygpWzBdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVHZW5lcmF0b3IoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gbmV3IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdEdlb21ldHJ5Pih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFDVElWRV9TVFJPS0VfV0lEVEg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FuUmVzaXplKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgPSBuZXcgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVUZXh0TWFuYWdlKCk7XG4gICAgICAgIHRoaXMuZ2V0UmVmKCkuYWRkR2VuZXJhdG9yKExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUdlbmVyYXRvcigpO1xuICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kcmF3VGV4dCgpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVXZWFrTWFwKCk7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IGlzQ2hhbmdlVGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCB0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7IHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZUhhbmRsZVN0YXRlID0gdGhpcy5hY3RpdmVHZW5lcmF0b3Iub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSA9PT0gdGhpcy5hY3RpdmVHZW5lcmF0b3IuaGFzUmVzaXplSGFuZGxlO1xuICAgICAgICAgICAgaWYgKCFoYXNTYW1lU2VsZWN0ZWQgfHwgIWhhc1NhbWVIYW5kbGVTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3VGV4dCgpIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLmRyYXcodGhpcy5lbGVtZW50LnRleHQpO1xuICAgICAgICB0aGlzLmdldEVsZW1lbnRHKCkuYXBwZW5kKHRoaXMudGV4dE1hbmFnZS5nKTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQodGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50KSEpO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UudXBkYXRlQW5nbGUoY2VudGVyUG9pbnQsIHRoaXMuZWxlbWVudC5hbmdsZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGV4dCgpIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLnVwZGF0ZVRleHQodGhpcy5lbGVtZW50LnRleHQpO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2UudXBkYXRlUmVjdGFuZ2xlKCk7XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHRoaXMuYm9hcmQuZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCkhKTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlLnVwZGF0ZUFuZ2xlKGNlbnRlclBvaW50LCB0aGlzLmVsZW1lbnQuYW5nbGUpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVUZXh0TWFuYWdlKCkge1xuICAgICAgICBjb25zdCBwbHVnaW5zID0gKCh0aGlzLmJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPFdpdGhUZXh0T3B0aW9ucz4oV2l0aFRleHRQbHVnaW5LZXkpIHx8IHt9KS50ZXh0UGx1Z2lucztcblxuICAgICAgICBjb25zdCBtYW5hZ2UgPSBuZXcgVGV4dE1hbmFnZSh0aGlzLmJvYXJkLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldFJlY3RhbmdsZSA9IGdldEVuZ2luZSh0aGlzLmVsZW1lbnQuc2hhcGUpLmdldFRleHRSZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRUZXh0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25WYWx1ZUNoYW5nZUhhbmRsZTogKHRleHRNYW5hZ2VSZWY6IFRleHRNYW5hZ2VSZWYpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0ZXh0TWFuYWdlUmVmLmhlaWdodCAvIHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IHRleHRNYW5hZ2VSZWYud2lkdGggLyB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgICAgICAgICAgaWYgKHRleHRNYW5hZ2VSZWYubmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0VGV4dCh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldFRleHRTaXplKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VSZWYub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQodGhpcy5lbGVtZW50LCB0ZXh0TWFuYWdlUmVmLm9wZXJhdGlvbnMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gZ2V0VGV4dFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpLndpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldFJlY3RhbmdsZSA9IGdldEVuZ2luZSh0aGlzLmVsZW1lbnQuc2hhcGUpLmdldFRleHRSZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpLndpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuZWxlbWVudCBhcyBQbGFpdFRleHQpPy5hdXRvU2l6ZSA/IEdlb21ldHJ5VGhyZXNob2xkLmRlZmF1bHRUZXh0TWF4V2lkdGggOiB3aWR0aDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luczogcGx1Z2luc1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dE1hbmFnZXMoW21hbmFnZV0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVRleHRNYW5hZ2VzKCk7XG4gICAgfVxufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5RyxPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxvQkFBcUQ7SUFVeEY7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFzQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3hFLGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtB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QUFPLENBQUMsSUFBSSxFQUNqQixVQUFVLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUMxQztnQkFDSSxtQkFBbUIsRUFBRSx1QkFBdUI7Z0JBQzVDLFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDakQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7b0JBQ3BFLElBQUksWUFBWSxFQUFFLENBQUM7d0JBQ2YsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDOUQsQ0FBQztvQkFDRCxPQUFRLElBQUksQ0FBQyxPQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDakcsQ0FBQzthQUNKLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgUmVjdGFuZ2xlQ2xpZW50XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0R2VvbWV0cnksIFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuL2ludGVyZmFjZXMvZ2VvbWV0cnknO1xuaW1wb3J0IHsgR2VvbWV0cnlTaGFwZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9nZW9tZXRyeS1zaGFwZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgVGV4dE1hbmFnZVJlZiB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciwgQ29tbW9uRWxlbWVudEZsYXZvdXIsIGNhblJlc2l6ZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzR2VvbWV0cnlJbmNsdWRlVGV4dCwgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSwgbWVtb3JpemVMYXRlc3RUZXh0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQsIFRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2luZ2xlVGV4dEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRUZXh0IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlb21ldHJ5VGhyZXNob2xkIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi9lbmdpbmVzJztcblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5Q29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4ge1xuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdENvbW1vbkdlb21ldHJ5PjtcblxuICAgIGxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IhOiBMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yO1xuXG4gICAgc2hhcGVHZW5lcmF0b3IhOiBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yO1xuXG4gICAgdGV4dEdlbmVyYXRvciE6IFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4gfCBTaW5nbGVUZXh0R2VuZXJhdG9yO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgQWN0aXZlR2VuZXJhdG9yPFBsYWl0Q29tbW9uR2VvbWV0cnk+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFN0cm9rZVdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U3Ryb2tlT3BhY2l0eTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5SZXNpemUodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciA9IG5ldyBMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yID0gbmV3IEdlb21ldHJ5U2hhcGVHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgICAgIGlmIChpc0dlb21ldHJ5SW5jbHVkZVRleHQodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dE1hbmFnZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0UmVmKCkuYWRkR2VuZXJhdG9yKExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yICYmIHRoaXMudGV4dEdlbmVyYXRvci5kcmF3KHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50IHx8IGlzQ2hhbmdlVGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgJiYgdGhpcy51cGRhdGVUZXh0KHByZXZpb3VzLmVsZW1lbnQsIHZhbHVlLmVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZVNlbGVjdGVkID0gdmFsdWUuc2VsZWN0ZWQgPT09IHByZXZpb3VzLnNlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaGFzU2FtZUhhbmRsZVN0YXRlID0gdGhpcy5hY3RpdmVHZW5lcmF0b3Iub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSA9PT0gdGhpcy5hY3RpdmVHZW5lcmF0b3IuaGFzUmVzaXplSGFuZGxlO1xuICAgICAgICAgICAgaWYgKCFoYXNTYW1lU2VsZWN0ZWQgfHwgIWhhc1NhbWVIYW5kbGVTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwgeyBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRleHQocHJldmlvdXNFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBjdXJyZW50RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSkge1xuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAodGhpcy50ZXh0R2VuZXJhdG9yIGFzIFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4pLnVwZGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICh0aGlzLnRleHRHZW5lcmF0b3IgYXMgU2luZ2xlVGV4dEdlbmVyYXRvcikudXBkYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudC50ZXh0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHQsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50RygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKSB7XG4gICAgICAgIGNvbnN0IG9uVGV4dFZhbHVlQ2hhbmdlSGFuZGxlID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnksIHRleHRNYW5hZ2VSZWY6IFRleHRNYW5hZ2VSZWYsIHRleHQ6IFBsYWl0RHJhd1NoYXBlVGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGV4dE1hbmFnZVJlZi5oZWlnaHQgLyB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHRleHRNYW5hZ2VSZWYud2lkdGggLyB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgICAgICBpZiAodGV4dE1hbmFnZVJlZi5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldERyYXdTaGFwZVRleHQodGhpcy5ib2FyZCwgZWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0ZXh0LmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRleHRNYW5hZ2VSZWYubmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0SGVpZ2h0OiBoZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0VGV4dCh0aGlzLmJvYXJkLCBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRleHRNYW5hZ2VSZWYubmV3VmFsdWUsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0VGV4dFNpemUodGhpcy5ib2FyZCwgZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRleHRNYW5hZ2VSZWYub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQoZWxlbWVudCwgdGV4dE1hbmFnZVJlZi5vcGVyYXRpb25zKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgPSBuZXcgVGV4dEdlbmVyYXRvcjxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PihcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC50ZXh0cyEsXG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRWaWV3Q29udGFpbmVyUmVmKHRoaXMuYm9hcmQpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb25WYWx1ZUNoYW5nZUhhbmRsZTogb25UZXh0VmFsdWVDaGFuZ2VIYW5kbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yID0gbmV3IFNpbmdsZVRleHRHZW5lcmF0b3IoXG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGV4dCxcbiAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldFZpZXdDb250YWluZXJSZWYodGhpcy5ib2FyZCksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlSGFuZGxlOiBvblRleHRWYWx1ZUNoYW5nZUhhbmRsZSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0TWF4V2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGdldFRleHRSZWN0YW5nbGUodGhpcy5lbGVtZW50KS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdldFJlY3RhbmdsZSA9IGdldEVuZ2luZSh0aGlzLmVsZW1lbnQuc2hhcGUpLmdldFRleHRSZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0UmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBnZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnkpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmVsZW1lbnQgYXMgUGxhaXRUZXh0KT8uYXV0b1NpemUgPyBHZW9tZXRyeVRocmVzaG9sZC5kZWZhdWx0VGV4dE1heFdpZHRoIDogd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvci5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +1,12 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
1
  import { PlaitBoard } from '@plait/core';
3
- import { Subject } from 'rxjs';
4
- import { CommonPluginElement, ImageGenerator } from '@plait/common';
2
+ import { CommonElementFlavour, ImageGenerator } from '@plait/common';
5
3
  import { LineAutoCompleteGenerator } from './generators/line-auto-complete.generator';
6
- import * as i0 from "@angular/core";
7
- export class ImageComponent extends CommonPluginElement {
4
+ export class ImageComponent extends CommonElementFlavour {
8
5
  get activeGenerator() {
9
6
  return this.imageGenerator.componentRef.instance.activeGenerator;
10
7
  }
11
8
  constructor() {
12
9
  super();
13
- this.destroy$ = new Subject();
14
10
  }
15
11
  initializeGenerator() {
16
12
  this.imageGenerator = new ImageGenerator(this.board, {
@@ -33,10 +29,10 @@ export class ImageComponent extends CommonPluginElement {
33
29
  this.lineAutoCompleteGenerator = new LineAutoCompleteGenerator(this.board);
34
30
  this.getRef().addGenerator(LineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
35
31
  }
36
- ngOnInit() {
37
- super.ngOnInit();
32
+ initialize() {
33
+ super.initialize();
38
34
  this.initializeGenerator();
39
- this.imageGenerator.processDrawing(this.element, this.getElementG(), this.viewContainerRef);
35
+ this.imageGenerator.processDrawing(this.element, this.getElementG(), PlaitBoard.getViewContainerRef(this.board));
40
36
  this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
41
37
  selected: this.selected
42
38
  });
@@ -60,23 +56,10 @@ export class ImageComponent extends CommonPluginElement {
60
56
  }
61
57
  }
62
58
  }
63
- ngOnDestroy() {
64
- super.ngOnDestroy();
65
- this.destroy$.next();
66
- this.destroy$.complete();
59
+ destroy() {
60
+ super.destroy();
67
61
  this.imageGenerator.destroy();
68
62
  this.lineAutoCompleteGenerator.destroy();
69
63
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ImageComponent, isStandalone: true, selector: "plait-draw-geometry", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
64
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ImageComponent, decorators: [{
74
- type: Component,
75
- args: [{
76
- selector: 'plait-draw-geometry',
77
- template: ``,
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- standalone: true
80
- }]
81
- }], ctorParameters: () => [] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsVUFBVSxFQUF1RixNQUFNLGFBQWEsQ0FBQztBQUM5SCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBUXRGLE1BQU0sT0FBTyxjQUFlLFNBQVEsbUJBQTJDO0lBSTNFLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUNyRSxDQUFDO0lBTUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVhaLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBWS9CLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFhLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0QsWUFBWSxFQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNsQyxPQUFPO29CQUNILENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENB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QyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3JHLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtpQkFDMUIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0EzRVEsY0FBYztrR0FBZCxjQUFjLHNHQUpiLEVBQUU7OzJGQUlILGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCwgT25Db250ZXh0Q2hhbmdlZCwgaXNTZWxlY3Rpb25Nb3ZpbmcsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25QbHVnaW5FbGVtZW50LCBJbWFnZUdlbmVyYXRvciB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgUGxhaXRJbWFnZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9pbWFnZSc7XG5pbXBvcnQgeyBMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2xpbmUtYXV0by1jb21wbGV0ZS5nZW5lcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LWRyYXctZ2VvbWV0cnknLFxuICAgIHRlbXBsYXRlOiBgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uUGx1Z2luRWxlbWVudDxQbGFpdEltYWdlLCBQbGFpdEJvYXJkPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4ge1xuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBhY3RpdmVHZW5lcmF0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmltYWdlR2VuZXJhdG9yLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5hY3RpdmVHZW5lcmF0b3I7XG4gICAgfVxuXG4gICAgaW1hZ2VHZW5lcmF0b3IhOiBJbWFnZUdlbmVyYXRvcjxQbGFpdEltYWdlPjtcblxuICAgIGxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IhOiBMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvciA9IG5ldyBJbWFnZUdlbmVyYXRvcjxQbGFpdEltYWdlPih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdEltYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgeDogZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIHk6IGVsZW1lbnQucG9pbnRzWzBdWzFdLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZWxlbWVudC5wb2ludHNbMV1bMF0gLSBlbGVtZW50LnBvaW50c1swXVswXSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBlbGVtZW50LnBvaW50c1sxXVsxXSAtIGVsZW1lbnQucG9pbnRzWzBdWzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJbWFnZUl0ZW06IGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHVybDogZWxlbWVudC51cmwsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBlbGVtZW50LnBvaW50c1sxXVswXSAtIGVsZW1lbnQucG9pbnRzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnQucG9pbnRzWzFdWzFdIC0gZWxlbWVudC5wb2ludHNbMF1bMV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuZ2V0UmVmKCkuYWRkR2VuZXJhdG9yKExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnVwZGF0ZUltYWdlKHRoaXMuZ2V0RWxlbWVudEcoKSwgcHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0ZvY3VzID0gdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lSGFuZGxlU3RhdGUgPSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5vcHRpb25zLmhhc1Jlc2l6ZUhhbmRsZSgpID09PSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5oYXNSZXNpemVIYW5kbGU7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCAhaGFzU2FtZUhhbmRsZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5jb21wb25lbnRSZWYuaW5zdGFuY2UuaXNGb2N1cyA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuaW1hZ2VHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQStDLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFdEYsTUFBTSxPQUFPLGNBQWUsU0FBUSxvQkFBNEM7SUFDNUUsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3JFLENBQUM7SUFNRDtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM3RCxZQUFZLEVBQUUsQ0FBQyxPQUFtQixFQUFFLEVBQUU7Z0JBQ2xDLE9BQU87b0JBQ0gsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LCBPbkNvbnRleHRDaGFuZ2VkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uRWxlbWVudEZsYXZvdXIsIEltYWdlR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEltYWdlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ltYWdlJztcbmltcG9ydCB7IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCBleHRlbmRzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+IGltcGxlbWVudHMgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEltYWdlLCBQbGFpdEJvYXJkPiB7XG4gICAgZ2V0IGFjdGl2ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VHZW5lcmF0b3IuY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGl2ZUdlbmVyYXRvcjtcbiAgICB9XG5cbiAgICBpbWFnZUdlbmVyYXRvciE6IEltYWdlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+O1xuXG4gICAgbGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvciE6IExpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I8UGxhaXRJbWFnZT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yID0gbmV3IEltYWdlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0SW1hZ2UpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB4OiBlbGVtZW50LnBvaW50c1swXVswXSxcbiAgICAgICAgICAgICAgICAgICAgeTogZWxlbWVudC5wb2ludHNbMF1bMV0sXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBlbGVtZW50LnBvaW50c1sxXVswXSAtIGVsZW1lbnQucG9pbnRzWzBdWzBdLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnQucG9pbnRzWzFdWzFdIC0gZWxlbWVudC5wb2ludHNbMF1bMV1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldEltYWdlSXRlbTogZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBlbGVtZW50LnVybCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGVsZW1lbnQucG9pbnRzWzFdWzBdIC0gZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogZWxlbWVudC5wb2ludHNbMV1bMV0gLSBlbGVtZW50LnBvaW50c1swXVsxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgPSBuZXcgTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5nZXRSZWYoKS5hZGRHZW5lcmF0b3IoTGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5rZXksIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSwgUGxhaXRCb2FyZC5nZXRWaWV3Q29udGFpbmVyUmVmKHRoaXMuYm9hcmQpKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnVwZGF0ZUltYWdlKHRoaXMuZ2V0RWxlbWVudEcoKSwgcHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0ZvY3VzID0gdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lSGFuZGxlU3RhdGUgPSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5vcHRpb25zLmhhc1Jlc2l6ZUhhbmRsZSgpID09PSB0aGlzLmFjdGl2ZUdlbmVyYXRvci5oYXNSZXNpemVIYW5kbGU7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCAhaGFzU2FtZUhhbmRsZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5jb21wb25lbnRSZWYuaW5zdGFuY2UuaXNGb2N1cyA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=