@plait/draw 0.77.3 → 0.78.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 (154) hide show
  1. package/fesm2022/plait-draw.mjs +2 -2
  2. package/fesm2022/plait-draw.mjs.map +1 -1
  3. package/package.json +1 -3
  4. package/esm2022/arrow-line.component.mjs +0 -165
  5. package/esm2022/constants/default.mjs +0 -7
  6. package/esm2022/constants/geometry.mjs +0 -272
  7. package/esm2022/constants/image.mjs +0 -2
  8. package/esm2022/constants/index.mjs +0 -9
  9. package/esm2022/constants/line.mjs +0 -12
  10. package/esm2022/constants/pointer.mjs +0 -23
  11. package/esm2022/constants/swimlane.mjs +0 -25
  12. package/esm2022/constants/text.mjs +0 -2
  13. package/esm2022/constants/theme.mjs +0 -28
  14. package/esm2022/engines/basic-shapes/cloud.mjs +0 -146
  15. package/esm2022/engines/basic-shapes/comment.mjs +0 -56
  16. package/esm2022/engines/basic-shapes/cross.mjs +0 -33
  17. package/esm2022/engines/basic-shapes/diamond.mjs +0 -16
  18. package/esm2022/engines/basic-shapes/ellipse.mjs +0 -53
  19. package/esm2022/engines/basic-shapes/hexagon.mjs +0 -27
  20. package/esm2022/engines/basic-shapes/left-arrow.mjs +0 -30
  21. package/esm2022/engines/basic-shapes/octagon.mjs +0 -29
  22. package/esm2022/engines/basic-shapes/parallelogram.mjs +0 -26
  23. package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +0 -27
  24. package/esm2022/engines/basic-shapes/pentagon.mjs +0 -30
  25. package/esm2022/engines/basic-shapes/polygon.mjs +0 -56
  26. package/esm2022/engines/basic-shapes/process-arrow.mjs +0 -26
  27. package/esm2022/engines/basic-shapes/rectangle.mjs +0 -26
  28. package/esm2022/engines/basic-shapes/right-arrow.mjs +0 -28
  29. package/esm2022/engines/basic-shapes/round-comment.mjs +0 -82
  30. package/esm2022/engines/basic-shapes/round-rectangle.mjs +0 -58
  31. package/esm2022/engines/basic-shapes/star.mjs +0 -39
  32. package/esm2022/engines/basic-shapes/trapezoid.mjs +0 -26
  33. package/esm2022/engines/basic-shapes/triangle.mjs +0 -34
  34. package/esm2022/engines/basic-shapes/two-way-arrow.mjs +0 -25
  35. package/esm2022/engines/flowchart/database.mjs +0 -84
  36. package/esm2022/engines/flowchart/delay.mjs +0 -44
  37. package/esm2022/engines/flowchart/display.mjs +0 -74
  38. package/esm2022/engines/flowchart/document.mjs +0 -81
  39. package/esm2022/engines/flowchart/hard-disk.mjs +0 -84
  40. package/esm2022/engines/flowchart/internal-storage.mjs +0 -47
  41. package/esm2022/engines/flowchart/manual-input.mjs +0 -33
  42. package/esm2022/engines/flowchart/manual-loop.mjs +0 -26
  43. package/esm2022/engines/flowchart/merge.mjs +0 -34
  44. package/esm2022/engines/flowchart/multi-document.mjs +0 -143
  45. package/esm2022/engines/flowchart/note-curly-left.mjs +0 -86
  46. package/esm2022/engines/flowchart/note-curly-right.mjs +0 -89
  47. package/esm2022/engines/flowchart/note-square.mjs +0 -46
  48. package/esm2022/engines/flowchart/off-page.mjs +0 -32
  49. package/esm2022/engines/flowchart/or.mjs +0 -20
  50. package/esm2022/engines/flowchart/predefined-process.mjs +0 -47
  51. package/esm2022/engines/flowchart/preparation.mjs +0 -27
  52. package/esm2022/engines/flowchart/stored-data.mjs +0 -79
  53. package/esm2022/engines/flowchart/summing-junction.mjs +0 -23
  54. package/esm2022/engines/flowchart/terminal.mjs +0 -68
  55. package/esm2022/engines/index.mjs +0 -130
  56. package/esm2022/engines/table/table.mjs +0 -101
  57. package/esm2022/engines/uml/activity-class.mjs +0 -47
  58. package/esm2022/engines/uml/actor.mjs +0 -119
  59. package/esm2022/engines/uml/assembly.mjs +0 -105
  60. package/esm2022/engines/uml/combined-fragment.mjs +0 -66
  61. package/esm2022/engines/uml/component-box.mjs +0 -61
  62. package/esm2022/engines/uml/component.mjs +0 -117
  63. package/esm2022/engines/uml/container.mjs +0 -44
  64. package/esm2022/engines/uml/deletion.mjs +0 -54
  65. package/esm2022/engines/uml/note.mjs +0 -58
  66. package/esm2022/engines/uml/package.mjs +0 -105
  67. package/esm2022/engines/uml/provided-interface.mjs +0 -92
  68. package/esm2022/engines/uml/required-interface.mjs +0 -81
  69. package/esm2022/engines/uml/template.mjs +0 -47
  70. package/esm2022/generators/arrow-line-auto-complete.generator.mjs +0 -46
  71. package/esm2022/generators/arrow-line.generator.mjs +0 -13
  72. package/esm2022/generators/geometry-shape.generator.mjs +0 -29
  73. package/esm2022/generators/index.mjs +0 -7
  74. package/esm2022/generators/line-active.generator.mjs +0 -84
  75. package/esm2022/generators/single-text.generator.mjs +0 -16
  76. package/esm2022/generators/table.generator.mjs +0 -25
  77. package/esm2022/generators/text.generator.mjs +0 -131
  78. package/esm2022/generators/vector-line-generator.mjs +0 -13
  79. package/esm2022/geometry.component.mjs +0 -145
  80. package/esm2022/image.component.mjs +0 -67
  81. package/esm2022/interfaces/arrow-line.mjs +0 -70
  82. package/esm2022/interfaces/element.mjs +0 -9
  83. package/esm2022/interfaces/engine.mjs +0 -2
  84. package/esm2022/interfaces/geometry.mjs +0 -82
  85. package/esm2022/interfaces/image.mjs +0 -2
  86. package/esm2022/interfaces/index.mjs +0 -92
  87. package/esm2022/interfaces/line.mjs +0 -2
  88. package/esm2022/interfaces/options.mjs +0 -2
  89. package/esm2022/interfaces/swimlane.mjs +0 -13
  90. package/esm2022/interfaces/table.mjs +0 -13
  91. package/esm2022/interfaces/text.mjs +0 -2
  92. package/esm2022/interfaces/vector-line.mjs +0 -10
  93. package/esm2022/plait-draw.mjs +0 -5
  94. package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +0 -43
  95. package/esm2022/plugins/with-arrow-line-auto-complete.mjs +0 -76
  96. package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +0 -53
  97. package/esm2022/plugins/with-arrow-line-create.mjs +0 -51
  98. package/esm2022/plugins/with-arrow-line-resize.mjs +0 -158
  99. package/esm2022/plugins/with-arrow-line-text-move.mjs +0 -53
  100. package/esm2022/plugins/with-arrow-line-text.mjs +0 -73
  101. package/esm2022/plugins/with-draw-fragment.mjs +0 -98
  102. package/esm2022/plugins/with-draw-hotkey.mjs +0 -45
  103. package/esm2022/plugins/with-draw-resize.mjs +0 -269
  104. package/esm2022/plugins/with-draw-rotate.mjs +0 -132
  105. package/esm2022/plugins/with-draw.mjs +0 -144
  106. package/esm2022/plugins/with-geometry-create.mjs +0 -182
  107. package/esm2022/plugins/with-swimlane-create.mjs +0 -127
  108. package/esm2022/plugins/with-swimlane.mjs +0 -21
  109. package/esm2022/plugins/with-table-resize.mjs +0 -135
  110. package/esm2022/plugins/with-table.mjs +0 -109
  111. package/esm2022/plugins/with-vector-line-create.mjs +0 -85
  112. package/esm2022/plugins/with-vector-line-resize.mjs +0 -61
  113. package/esm2022/public-api.mjs +0 -11
  114. package/esm2022/table.component.mjs +0 -162
  115. package/esm2022/transforms/arrow-line.mjs +0 -66
  116. package/esm2022/transforms/common.mjs +0 -36
  117. package/esm2022/transforms/geometry-text.mjs +0 -59
  118. package/esm2022/transforms/geometry.mjs +0 -43
  119. package/esm2022/transforms/image.mjs +0 -33
  120. package/esm2022/transforms/index.mjs +0 -36
  121. package/esm2022/transforms/multi-text-geometry-text.mjs +0 -15
  122. package/esm2022/transforms/swimlane.mjs +0 -164
  123. package/esm2022/transforms/table-text.mjs +0 -44
  124. package/esm2022/transforms/table.mjs +0 -36
  125. package/esm2022/transforms/vector-line.mjs +0 -13
  126. package/esm2022/utils/arrow-line/arrow-line-arrow.mjs +0 -123
  127. package/esm2022/utils/arrow-line/arrow-line-basic.mjs +0 -205
  128. package/esm2022/utils/arrow-line/arrow-line-common.mjs +0 -162
  129. package/esm2022/utils/arrow-line/arrow-line-resize.mjs +0 -309
  130. package/esm2022/utils/arrow-line/elbow.mjs +0 -114
  131. package/esm2022/utils/arrow-line/index.mjs +0 -6
  132. package/esm2022/utils/clipboard.mjs +0 -55
  133. package/esm2022/utils/common.mjs +0 -184
  134. package/esm2022/utils/geometry.mjs +0 -178
  135. package/esm2022/utils/hit.mjs +0 -238
  136. package/esm2022/utils/index.mjs +0 -17
  137. package/esm2022/utils/line.mjs +0 -64
  138. package/esm2022/utils/memorize.mjs +0 -93
  139. package/esm2022/utils/multi-text-geometry.mjs +0 -61
  140. package/esm2022/utils/polygon.mjs +0 -30
  141. package/esm2022/utils/position/arrow-line.mjs +0 -20
  142. package/esm2022/utils/position/geometry.mjs +0 -30
  143. package/esm2022/utils/position/line.mjs +0 -51
  144. package/esm2022/utils/selected.mjs +0 -39
  145. package/esm2022/utils/shape.mjs +0 -11
  146. package/esm2022/utils/snap-resizing.mjs +0 -185
  147. package/esm2022/utils/style/index.mjs +0 -2
  148. package/esm2022/utils/style/stroke.mjs +0 -21
  149. package/esm2022/utils/swimlane.mjs +0 -124
  150. package/esm2022/utils/table-selected.mjs +0 -21
  151. package/esm2022/utils/table.mjs +0 -172
  152. package/esm2022/utils/uml.mjs +0 -90
  153. package/esm2022/utils/vector-line.mjs +0 -71
  154. package/esm2022/vector-line.component.mjs +0 -55
@@ -1,131 +0,0 @@
1
- import { TextManage, WithTextPluginKey } from '@plait/common';
2
- import { PlaitElement, RectangleClient } from '@plait/core';
3
- import { getEngine } from '../engines';
4
- import { getTextKey, getTextRectangle } from '../utils';
5
- // TODO: 是否可以完全基于位置定位 TextManager,实现 line 和 多文本 geometry 统一
6
- // 一个元素有多个文本时,单纯通过位置无法获取 TextManage,因此这里单独通过 Map 保存关键字 key 和 TextManage 的对应关系
7
- // 1. 单文本元素 key 就是元素的 id
8
- // 2. 表格元素 key 是单元格的 id
9
- // 3. 符合 isMultipleTextGeometry 的元素,key 是元素 id + text.id (通常不是 id 而是文本位置的常量)
10
- // 4. arrow-line 和 vector-line 文本不依赖于 text.generator,基于 text 可以直接找到 TextManage
11
- export const KEY_TO_TEXT_MANAGE = new WeakMap();
12
- export const setTextManage = (board, element, text, textManage) => {
13
- const textManages = KEY_TO_TEXT_MANAGE.get(board);
14
- return KEY_TO_TEXT_MANAGE.set(board, { ...textManages, [getTextKey(element, text)]: textManage });
15
- };
16
- export const getTextManage = (board, element, text) => {
17
- const textManages = KEY_TO_TEXT_MANAGE.get(board);
18
- return textManages[getTextKey(element, text)];
19
- };
20
- export const deleteTextManage = (board, key) => {
21
- const textManages = KEY_TO_TEXT_MANAGE.get(board);
22
- delete textManages[key];
23
- KEY_TO_TEXT_MANAGE.set(board, textManages);
24
- };
25
- export class TextGenerator {
26
- get shape() {
27
- return this.element.shape || this.element.type;
28
- }
29
- constructor(board, element, texts, options) {
30
- this.board = board;
31
- this.texts = texts;
32
- this.element = element;
33
- this.options = options;
34
- }
35
- initialize() {
36
- const textPlugins = (this.board.getPluginOptions(WithTextPluginKey) || {})
37
- .textPlugins;
38
- this.textManages = this.texts.map(text => {
39
- const textManage = this.createTextManage(text, textPlugins);
40
- setTextManage(this.board, this.element, text, textManage);
41
- return textManage;
42
- });
43
- const ref = PlaitElement.getElementRef(this.element);
44
- ref.initializeTextManage(this.textManages);
45
- }
46
- draw(elementG) {
47
- const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
48
- this.texts.forEach(drawShapeText => {
49
- const textManage = getTextManage(this.board, this.element, drawShapeText);
50
- if (drawShapeText.text && textManage) {
51
- textManage.draw(drawShapeText.text);
52
- elementG.append(textManage.g);
53
- (this.element.angle || this.element.angle === 0) && textManage.updateAngle(centerPoint, this.element.angle);
54
- }
55
- });
56
- }
57
- update(element, previousDrawShapeTexts, currentDrawShapeTexts, elementG) {
58
- this.element = element;
59
- const centerPoint = RectangleClient.getCenterPoint(this.board.getRectangle(this.element));
60
- const textPlugins = (this.board.getPluginOptions(WithTextPluginKey) || {})
61
- .textPlugins;
62
- const removedTexts = previousDrawShapeTexts.filter(value => {
63
- return !currentDrawShapeTexts.find(item => item.id === value.id);
64
- });
65
- if (removedTexts.length) {
66
- removedTexts.forEach(item => {
67
- const textManage = getTextManage(this.board, element, item);
68
- const index = this.textManages.findIndex(value => value === textManage);
69
- if (index > -1 && item.text && item.textHeight) {
70
- this.textManages.splice(index, 1);
71
- }
72
- textManage?.destroy();
73
- deleteTextManage(this.board, item.id);
74
- });
75
- }
76
- currentDrawShapeTexts.forEach(drawShapeText => {
77
- if (drawShapeText.text) {
78
- let textManage = getTextManage(this.board, this.element, drawShapeText);
79
- if (!textManage) {
80
- textManage = this.createTextManage(drawShapeText, textPlugins);
81
- setTextManage(this.board, element, drawShapeText, textManage);
82
- textManage.draw(drawShapeText.text);
83
- elementG.append(textManage.g);
84
- this.textManages.push(textManage);
85
- }
86
- else {
87
- textManage.updateText(drawShapeText.text);
88
- textManage.updateRectangle();
89
- }
90
- (this.element.angle || this.element.angle === 0) && textManage.updateAngle(centerPoint, this.element.angle);
91
- }
92
- });
93
- }
94
- createTextManage(text, textPlugins) {
95
- const textManage = new TextManage(this.board, {
96
- getRectangle: () => {
97
- return this.getRectangle(text);
98
- },
99
- onChange: (data) => {
100
- return this.options.onChange(this.element, data, text);
101
- },
102
- getMaxWidth: () => {
103
- return this.getMaxWidth(text);
104
- },
105
- getRenderRectangle: () => {
106
- return this.options.getRenderRectangle ? this.options.getRenderRectangle(this.element, text) : this.getRectangle(text);
107
- },
108
- textPlugins
109
- });
110
- return textManage;
111
- }
112
- getRectangle(text) {
113
- const getRectangle = getEngine(this.shape).getTextRectangle;
114
- if (getRectangle) {
115
- return getRectangle(this.element, text);
116
- }
117
- return getTextRectangle(this.element);
118
- }
119
- getMaxWidth(text) {
120
- return this.options.getMaxWidth ? this.options.getMaxWidth() : this.getRectangle(text).width;
121
- }
122
- destroy() {
123
- const ref = PlaitElement.getElementRef(this.element);
124
- ref.destroyTextManage();
125
- this.textManages = [];
126
- this.texts.forEach(item => {
127
- deleteTextManage(this.board, item.id);
128
- });
129
- }
130
- }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBR1YsaUJBQWlCLEVBRXBCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxZQUFZLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFheEQsMkRBQTJEO0FBQzNELDZFQUE2RTtBQUM3RSx3QkFBd0I7QUFDeEIsdUJBQXVCO0FBQ3ZCLDRFQUE0RTtBQUM1RSw4RUFBOEU7QUFDOUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXVELElBQUksT0FBTyxFQUFFLENBQUM7QUFFcEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLElBQWtCLEVBQUUsVUFBc0IsRUFBRSxFQUFFO0lBQ2xILE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztJQUNuRCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBaUMsRUFBRSxJQUE4QixFQUFjLEVBQUU7SUFDOUgsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDO0lBQ25ELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDL0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDO0lBQ25ELE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFPLGFBQWE7SUFXdEIsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxLQUFpQixFQUFFLE9BQVUsRUFBRSxLQUFxQixFQUFFLE9BQWdDO1FBQzlGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxXQUFXLEdBQUcsQ0FBRSxJQUFJLENBQUMsS0FBMkIsQ0FBQyxnQkFBZ0IsQ0FBd0IsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbkgsV0FBVyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUM1RCxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRCxPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQXdCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBb0I7UUFDckIsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMvQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzFFLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEgsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFVLEVBQUUsc0JBQXNDLEVBQUUscUJBQXFDLEVBQUUsUUFBb0I7UUFDbEgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBQztRQUMzRixNQUFNLFdBQVcsR0FBRyxDQUFFLElBQUksQ0FBQyxLQUEyQixDQUFDLGdCQUFnQixDQUF3QixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNuSCxXQUFXLENBQUM7UUFDakIsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7Z0JBQ0QsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksVUFBVSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDZCxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDL0QsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDOUQsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLFVBQVUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQ0QsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hILENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFrQixFQUFFLFdBQTBCO1FBQ25FLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDMUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLElBQTBCLEVBQUUsRUFBRTtnQkFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsV0FBVyxFQUFFLEdBQUcsRUFBRTtnQkFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQztZQUNELGtCQUFrQixFQUFFLEdBQUcsRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0gsQ0FBQztZQUNELFdBQVc7U0FDZCxDQUFDLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWtCO1FBQzNCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDL0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNmLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBa0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDakcsQ0FBQztJQUVELE9BQU87UUFDSCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBhcmFncmFwaEVsZW1lbnQsXG4gICAgUGxhaXRDb21tb25FbGVtZW50UmVmLFxuICAgIFRleHRNYW5hZ2UsXG4gICAgVGV4dE1hbmFnZUNoYW5nZURhdGEsXG4gICAgVGV4dFBsdWdpbixcbiAgICBXaXRoVGV4dFBsdWdpbktleSxcbiAgICBXaXRoVGV4dFBsdWdpbk9wdGlvbnNcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0T3B0aW9uc0JvYXJkLCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IERyYXdTaGFwZXMsIFBsYWl0R2VvbWV0cnksIFRleHRSZWN0YW5nbGVPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRUZXh0S2V5LCBnZXRUZXh0UmVjdGFuZ2xlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYXdUZXh0SW5mbyBleHRlbmRzIFRleHRSZWN0YW5nbGVPcHRpb25zIHtcbiAgICB0ZXh0OiBQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHRleHRIZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0R2VuZXJhdG9yT3B0aW9uczxUPiB7XG4gICAgb25DaGFuZ2U6IChlbGVtZW50OiBULCB0ZXh0Q2hhbmdlUmVmOiBUZXh0TWFuYWdlQ2hhbmdlRGF0YSwgdGV4dDogRHJhd1RleHRJbmZvKSA9PiB2b2lkO1xuICAgIGdldFJlbmRlclJlY3RhbmdsZT86IChlbGVtZW50OiBULCB0ZXh0OiBEcmF3VGV4dEluZm8pID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRNYXhXaWR0aD86ICgpID0+IG51bWJlcjtcbn1cblxuLy8gVE9ETzog5piv5ZCm5Y+v5Lul5a6M5YWo5Z+65LqO5L2N572u5a6a5L2NIFRleHRNYW5hZ2Vy77yM5a6e546wIGxpbmUg5ZKMIOWkmuaWh+acrCBnZW9tZXRyeSDnu5/kuIBcbi8vIOS4gOS4quWFg+e0oOacieWkmuS4quaWh+acrOaXtu+8jOWNlee6r+mAmui/h+S9jee9ruaXoOazleiOt+WPliBUZXh0TWFuYWdl77yM5Zug5q2k6L+Z6YeM5Y2V54us6YCa6L+HIE1hcCDkv53lrZjlhbPplK7lrZcga2V5IOWSjCBUZXh0TWFuYWdlIOeahOWvueW6lOWFs+ezu1xuLy8gMS4g5Y2V5paH5pys5YWD57SgIGtleSDlsLHmmK/lhYPntKDnmoQgaWRcbi8vIDIuIOihqOagvOWFg+e0oCBrZXkg5piv5Y2V5YWD5qC855qEIGlkXG4vLyAzLiDnrKblkIggaXNNdWx0aXBsZVRleHRHZW9tZXRyeSDnmoTlhYPntKDvvIxrZXkg5piv5YWD57SgIGlkICsgdGV4dC5pZCDvvIjpgJrluLjkuI3mmK8gaWQg6ICM5piv5paH5pys5L2N572u55qE5bi46YeP77yJXG4vLyA0LiBhcnJvdy1saW5lIOWSjCB2ZWN0b3ItbGluZSDmlofmnKzkuI3kvp3otZbkuo4gdGV4dC5nZW5lcmF0b3LvvIzln7rkuo4gdGV4dCDlj6/ku6Xnm7TmjqXmib7liLAgVGV4dE1hbmFnZVxuZXhwb3J0IGNvbnN0IEtFWV9UT19URVhUX01BTkFHRTogV2Vha01hcDxQbGFpdEJvYXJkLCB7IFtrZXk6IHN0cmluZ106IFRleHRNYW5hZ2UgfT4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgY29uc3Qgc2V0VGV4dE1hbmFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCB0ZXh0OiBEcmF3VGV4dEluZm8sIHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IEtFWV9UT19URVhUX01BTkFHRS5nZXQoYm9hcmQpITtcbiAgICByZXR1cm4gS0VZX1RPX1RFWFRfTUFOQUdFLnNldChib2FyZCwgeyAuLi50ZXh0TWFuYWdlcywgW2dldFRleHRLZXkoZWxlbWVudCwgdGV4dCldOiB0ZXh0TWFuYWdlIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCB8IHVuZGVmaW5lZCwgdGV4dDogUGljazxEcmF3VGV4dEluZm8sICdpZCc+KTogVGV4dE1hbmFnZSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZXMgPSBLRVlfVE9fVEVYVF9NQU5BR0UuZ2V0KGJvYXJkKSE7XG4gICAgcmV0dXJuIHRleHRNYW5hZ2VzW2dldFRleHRLZXkoZWxlbWVudCwgdGV4dCldO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRleHRNYW5hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZXMgPSBLRVlfVE9fVEVYVF9NQU5BR0UuZ2V0KGJvYXJkKSE7XG4gICAgZGVsZXRlIHRleHRNYW5hZ2VzW2tleV07XG4gICAgS0VZX1RPX1RFWFRfTUFOQUdFLnNldChib2FyZCwgdGV4dE1hbmFnZXMpO1xufTtcblxuZXhwb3J0IGNsYXNzIFRleHRHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnk+IHtcbiAgICBwcm90ZWN0ZWQgYm9hcmQ6IFBsYWl0Qm9hcmQ7XG5cbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogVDtcblxuICAgIHByb3RlY3RlZCB0ZXh0czogRHJhd1RleHRJbmZvW107XG5cbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD47XG5cbiAgICBwdWJsaWMgdGV4dE1hbmFnZXMhOiBUZXh0TWFuYWdlW107XG5cbiAgICBnZXQgc2hhcGUoKTogRHJhd1NoYXBlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2hhcGUgfHwgdGhpcy5lbGVtZW50LnR5cGU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFQsIHRleHRzOiBEcmF3VGV4dEluZm9bXSwgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgdGhpcy5ib2FyZCA9IGJvYXJkO1xuICAgICAgICB0aGlzLnRleHRzID0gdGV4dHM7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgY29uc3QgdGV4dFBsdWdpbnMgPSAoKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aFRleHRQbHVnaW5PcHRpb25zPihXaXRoVGV4dFBsdWdpbktleSkgfHwge30pXG4gICAgICAgICAgICAudGV4dFBsdWdpbnM7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMgPSB0aGlzLnRleHRzLm1hcCh0ZXh0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2UgPSB0aGlzLmNyZWF0ZVRleHRNYW5hZ2UodGV4dCwgdGV4dFBsdWdpbnMpO1xuICAgICAgICAgICAgc2V0VGV4dE1hbmFnZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIHRleHQsIHRleHRNYW5hZ2UpO1xuICAgICAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZWYgPSBQbGFpdEVsZW1lbnQuZ2V0RWxlbWVudFJlZjxQbGFpdENvbW1vbkVsZW1lbnRSZWY+KHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHJlZi5pbml0aWFsaXplVGV4dE1hbmFnZSh0aGlzLnRleHRNYW5hZ2VzKTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnRHOiBTVkdFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHRoaXMuYm9hcmQuZ2V0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCkhKTtcbiAgICAgICAgdGhpcy50ZXh0cy5mb3JFYWNoKGRyYXdTaGFwZVRleHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KTtcbiAgICAgICAgICAgIGlmIChkcmF3U2hhcGVUZXh0LnRleHQgJiYgdGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UuZHJhdyhkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRHLmFwcGVuZCh0ZXh0TWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgICh0aGlzLmVsZW1lbnQuYW5nbGUgfHwgdGhpcy5lbGVtZW50LmFuZ2xlID09PSAwKSAmJiB0ZXh0TWFuYWdlLnVwZGF0ZUFuZ2xlKGNlbnRlclBvaW50LCB0aGlzLmVsZW1lbnQuYW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGUoZWxlbWVudDogVCwgcHJldmlvdXNEcmF3U2hhcGVUZXh0czogRHJhd1RleHRJbmZvW10sIGN1cnJlbnREcmF3U2hhcGVUZXh0czogRHJhd1RleHRJbmZvW10sIGVsZW1lbnRHOiBTVkdFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQodGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50KSEpO1xuICAgICAgICBjb25zdCB0ZXh0UGx1Z2lucyA9ICgodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoVGV4dFBsdWdpbk9wdGlvbnM+KFdpdGhUZXh0UGx1Z2luS2V5KSB8fCB7fSlcbiAgICAgICAgICAgIC50ZXh0UGx1Z2lucztcbiAgICAgICAgY29uc3QgcmVtb3ZlZFRleHRzID0gcHJldmlvdXNEcmF3U2hhcGVUZXh0cy5maWx0ZXIodmFsdWUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFjdXJyZW50RHJhd1NoYXBlVGV4dHMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHZhbHVlLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZW1vdmVkVGV4dHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZSh0aGlzLmJvYXJkLCBlbGVtZW50LCBpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGV4dE1hbmFnZXMuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlID09PSB0ZXh0TWFuYWdlKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSAmJiBpdGVtLnRleHQgJiYgaXRlbS50ZXh0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dE1hbmFnZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZT8uZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZVRleHRNYW5hZ2UodGhpcy5ib2FyZCwgaXRlbS5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50RHJhd1NoYXBlVGV4dHMuZm9yRWFjaChkcmF3U2hhcGVUZXh0ID0+IHtcbiAgICAgICAgICAgIGlmIChkcmF3U2hhcGVUZXh0LnRleHQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50LCBkcmF3U2hhcGVUZXh0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZSA9IHRoaXMuY3JlYXRlVGV4dE1hbmFnZShkcmF3U2hhcGVUZXh0LCB0ZXh0UGx1Z2lucyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRleHRNYW5hZ2UodGhpcy5ib2FyZCwgZWxlbWVudCwgZHJhd1NoYXBlVGV4dCwgdGV4dE1hbmFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UuZHJhdyhkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Ry5hcHBlbmQodGV4dE1hbmFnZS5nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5wdXNoKHRleHRNYW5hZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2UudXBkYXRlVGV4dChkcmF3U2hhcGVUZXh0LnRleHQpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAodGhpcy5lbGVtZW50LmFuZ2xlIHx8IHRoaXMuZWxlbWVudC5hbmdsZSA9PT0gMCkgJiYgdGV4dE1hbmFnZS51cGRhdGVBbmdsZShjZW50ZXJQb2ludCwgdGhpcy5lbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVUZXh0TWFuYWdlKHRleHQ6IERyYXdUZXh0SW5mbywgdGV4dFBsdWdpbnM/OiBUZXh0UGx1Z2luW10pIHtcbiAgICAgICAgY29uc3QgdGV4dE1hbmFnZSA9IG5ldyBUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJlY3RhbmdsZSh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGRhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5vbkNoYW5nZSh0aGlzLmVsZW1lbnQsIGRhdGEsIHRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWF4V2lkdGgodGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVuZGVyUmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUgPyB0aGlzLm9wdGlvbnMuZ2V0UmVuZGVyUmVjdGFuZ2xlKHRoaXMuZWxlbWVudCwgdGV4dCkgOiB0aGlzLmdldFJlY3RhbmdsZSh0ZXh0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZXh0UGx1Z2luc1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRleHRNYW5hZ2U7XG4gICAgfVxuXG4gICAgZ2V0UmVjdGFuZ2xlKHRleHQ6IERyYXdUZXh0SW5mbykge1xuICAgICAgICBjb25zdCBnZXRSZWN0YW5nbGUgPSBnZXRFbmdpbmU8VD4odGhpcy5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQsIHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRUZXh0UmVjdGFuZ2xlKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZ2V0TWF4V2lkdGgodGV4dDogRHJhd1RleHRJbmZvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGggPyB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGgoKSA6IHRoaXMuZ2V0UmVjdGFuZ2xlKHRleHQpLndpZHRoO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50UmVmPFBsYWl0Q29tbW9uRWxlbWVudFJlZj4odGhpcy5lbGVtZW50KTtcbiAgICAgICAgcmVmLmRlc3Ryb3lUZXh0TWFuYWdlKCk7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy50ZXh0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgZGVsZXRlVGV4dE1hbmFnZSh0aGlzLmJvYXJkLCBpdGVtLmlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,13 +0,0 @@
1
- import { Generator } from '@plait/common';
2
- import { drawVectorLine } from '../utils';
3
- export class VectorLineShapeGenerator extends Generator {
4
- canDraw(element) {
5
- return true;
6
- }
7
- draw(element) {
8
- let lineG;
9
- lineG = drawVectorLine(this.board, element);
10
- return lineG;
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxpbmUtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy92ZWN0b3ItbGluZS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxTQUEwQjtJQUNwRSxPQUFPLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUF3QjtRQUN6QixJQUFJLEtBQThCLENBQUM7UUFDbkMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0VmVjdG9yTGluZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBkcmF3VmVjdG9yTGluZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIFZlY3RvckxpbmVTaGFwZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxQbGFpdFZlY3RvckxpbmU+IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFBsYWl0VmVjdG9yTGluZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFBsYWl0VmVjdG9yTGluZSkge1xuICAgICAgICBsZXQgbGluZUc6IFNWR0dFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBsaW5lRyA9IGRyYXdWZWN0b3JMaW5lKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbGluZUc7XG4gICAgfVxufVxuIl19
@@ -1,145 +0,0 @@
1
- import { PlaitBoard, isSelectionMoving, getSelectedElements, ACTIVE_STROKE_WIDTH, RectangleClient } from '@plait/core';
2
- import { GeometryShapeGenerator } from './generators/geometry-shape.generator';
3
- import { DrawTransforms } from './transforms';
4
- import { ActiveGenerator, CommonElementFlavour, createActiveGenerator, hasResizeHandle } from '@plait/common';
5
- import { ArrowLineAutoCompleteGenerator } from './generators/arrow-line-auto-complete.generator';
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 {
12
- constructor() {
13
- super();
14
- }
15
- initializeGenerator() {
16
- this.activeGenerator = createActiveGenerator(this.board, {
17
- getStrokeWidth: () => {
18
- const selectedElements = getSelectedElements(this.board);
19
- if (selectedElements.length === 1 && !isSelectionMoving(this.board)) {
20
- return ACTIVE_STROKE_WIDTH;
21
- }
22
- else {
23
- return ACTIVE_STROKE_WIDTH;
24
- }
25
- },
26
- getStrokeOpacity: () => {
27
- const selectedElements = getSelectedElements(this.board);
28
- if (selectedElements.length === 1 && !isSelectionMoving(this.board)) {
29
- return 1;
30
- }
31
- else {
32
- return 0.5;
33
- }
34
- },
35
- getRectangle: (element) => {
36
- return RectangleClient.getRectangleByPoints(element.points);
37
- },
38
- hasResizeHandle: () => {
39
- return hasResizeHandle(this.board, this.element);
40
- }
41
- });
42
- this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
43
- this.shapeGenerator = new GeometryShapeGenerator(this.board);
44
- if (isGeometryIncludeText(this.element)) {
45
- this.initializeTextManage();
46
- }
47
- this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
48
- this.getRef().addGenerator(ActiveGenerator.key, this.activeGenerator);
49
- this.getRef().updateActiveSection = () => {
50
- this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
51
- selected: this.selected
52
- });
53
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
54
- selected: this.selected
55
- });
56
- };
57
- }
58
- initialize() {
59
- super.initialize();
60
- this.initializeGenerator();
61
- this.shapeGenerator.processDrawing(this.element, this.getElementG());
62
- this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
63
- selected: this.selected
64
- });
65
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementTopHost(this.board), {
66
- selected: this.selected
67
- });
68
- this.textGenerator && this.textGenerator.draw(this.getElementG());
69
- }
70
- onContextChanged(value, previous) {
71
- if (value.element !== previous.element || value.hasThemeChanged) {
72
- this.shapeGenerator.processDrawing(this.element, this.getElementG());
73
- this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), { selected: this.selected });
74
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
75
- selected: this.selected
76
- });
77
- this.textGenerator && this.updateText(previous.element, value.element);
78
- }
79
- else {
80
- const hasSameSelected = value.selected === previous.selected;
81
- if (!hasSameSelected || value.selected) {
82
- this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
83
- selected: this.selected
84
- });
85
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
86
- selected: this.selected
87
- });
88
- }
89
- }
90
- }
91
- updateText(previousElement, currentElement) {
92
- if (isMultipleTextGeometry(this.element)) {
93
- this.textGenerator.update(this.element, previousElement.texts, currentElement.texts, this.getElementG());
94
- }
95
- else {
96
- this.textGenerator.update(this.element, previousElement.text, currentElement.text, this.getElementG());
97
- }
98
- }
99
- initializeTextManage() {
100
- const onTextChange = (element, textManageChangeData, text) => {
101
- if (textManageChangeData.newText) {
102
- if (isMultipleTextGeometry(element)) {
103
- DrawTransforms.setDrawTexts(this.board, element, {
104
- id: text.id,
105
- text: textManageChangeData.newText,
106
- textHeight: textManageChangeData.height
107
- });
108
- }
109
- else {
110
- DrawTransforms.setText(this.board, element, textManageChangeData.newText, textManageChangeData.width, textManageChangeData.height);
111
- }
112
- }
113
- else {
114
- DrawTransforms.setTextSize(this.board, element, textManageChangeData.width, textManageChangeData.height);
115
- }
116
- textManageChangeData.operations && memorizeLatestText(element, textManageChangeData.operations);
117
- };
118
- if (isMultipleTextGeometry(this.element)) {
119
- this.textGenerator = new TextGenerator(this.board, this.element, this.element.texts, {
120
- onChange: onTextChange
121
- });
122
- }
123
- else {
124
- this.textGenerator = new SingleTextGenerator(this.board, this.element, this.element.text, {
125
- onChange: onTextChange,
126
- getMaxWidth: () => {
127
- let width = getTextRectangle(this.element).width;
128
- const getRectangle = getEngine(this.element.shape).getTextRectangle;
129
- if (getRectangle) {
130
- width = getRectangle(this.element).width;
131
- }
132
- return this.element?.autoSize ? GeometryThreshold.defaultTextMaxWidth : width;
133
- }
134
- });
135
- }
136
- this.textGenerator.initialize();
137
- }
138
- destroy() {
139
- super.destroy();
140
- this.activeGenerator.destroy();
141
- this.lineAutoCompleteGenerator.destroy();
142
- this.textGenerator?.destroy();
143
- }
144
- }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VvbWV0cnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQXdCLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUcsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxNQUFNLE9BQU8saUJBQ1QsU0FBUSxvQkFBcUQ7SUFXN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckQsY0FBYyxFQUFFLEdBQUcsRUFBRTtnQkFDakIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJ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T0FBd0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDdkcsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDakQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7b0JBQ3BFLElBQUksWUFBWSxFQUFFLENBQUM7d0JBQ2YsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDOUQsQ0FBQztvQkFDRCxPQUFRLElBQUksQ0FBQyxPQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDakcsQ0FBQzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgUmVjdGFuZ2xlQ2xpZW50XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0R2VvbWV0cnksIFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuL2ludGVyZmFjZXMvZ2VvbWV0cnknO1xuaW1wb3J0IHsgR2VvbWV0cnlTaGFwZUdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9ycy9nZW9tZXRyeS1zaGFwZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgRHJhd1RyYW5zZm9ybXMgfSBmcm9tICcuL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yLCBDb21tb25FbGVtZW50Rmxhdm91ciwgVGV4dE1hbmFnZUNoYW5nZURhdGEsIGNyZWF0ZUFjdGl2ZUdlbmVyYXRvciwgaGFzUmVzaXplSGFuZGxlIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlLCBpc0dlb21ldHJ5SW5jbHVkZVRleHQsIGlzTXVsdGlwbGVUZXh0R2VvbWV0cnksIG1lbW9yaXplTGF0ZXN0VGV4dCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgRHJhd1RleHRJbmZvLCBUZXh0R2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFNpbmdsZVRleHRHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvc2luZ2xlLXRleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGV4dCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHZW9tZXRyeVRocmVzaG9sZCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4vZW5naW5lcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbntcbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8UGxhaXRDb21tb25HZW9tZXRyeT47XG5cbiAgICBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yITogQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yO1xuXG4gICAgc2hhcGVHZW5lcmF0b3IhOiBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yO1xuXG4gICAgdGV4dEdlbmVyYXRvciE6IFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4gfCBTaW5nbGVUZXh0R2VuZXJhdG9yO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBjcmVhdGVBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhc1Jlc2l6ZUhhbmRsZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yID0gbmV3IEFycm93TGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICBpZiAoaXNHZW9tZXRyeUluY2x1ZGVUZXh0KHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBY3RpdmVHZW5lcmF0b3Iua2V5LCB0aGlzLmFjdGl2ZUdlbmVyYXRvcik7XG4gICAgICAgIHRoaXMuZ2V0UmVmKCkudXBkYXRlQWN0aXZlU2VjdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudFRvcEhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgJiYgdGhpcy50ZXh0R2VuZXJhdG9yLmRyYXcodGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdENvbW1vbkdlb21ldHJ5LCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRDb21tb25HZW9tZXRyeSwgUGxhaXRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgaWYgKHZhbHVlLmVsZW1lbnQgIT09IHByZXZpb3VzLmVsZW1lbnQgfHwgdmFsdWUuaGFzVGhlbWVDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCB0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHsgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQgfSk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIFBsYWl0Qm9hcmQuZ2V0QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudGV4dEdlbmVyYXRvciAmJiB0aGlzLnVwZGF0ZVRleHQocHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCB2YWx1ZS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVRleHQocHJldmlvdXNFbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBjdXJyZW50RWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSkge1xuICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeSh0aGlzLmVsZW1lbnQpKSB7XG4gICAgICAgICAgICAodGhpcy50ZXh0R2VuZXJhdG9yIGFzIFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4pLnVwZGF0ZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHRzLFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICh0aGlzLnRleHRHZW5lcmF0b3IgYXMgU2luZ2xlVGV4dEdlbmVyYXRvcikudXBkYXRlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRWxlbWVudC50ZXh0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50LnRleHQsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRFbGVtZW50RygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2UoKSB7XG4gICAgICAgIGNvbnN0IG9uVGV4dENoYW5nZSA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YTogVGV4dE1hbmFnZUNoYW5nZURhdGEsIHRleHQ6IERyYXdUZXh0SW5mbykgPT4ge1xuICAgICAgICAgICAgaWYgKHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNNdWx0aXBsZVRleHRHZW9tZXRyeShlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXREcmF3VGV4dHModGhpcy5ib2FyZCwgZWxlbWVudCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRleHQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEhlaWdodDogdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnNldFRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXRUZXh0U2l6ZSh0aGlzLmJvYXJkLCBlbGVtZW50IGFzIFBsYWl0R2VvbWV0cnksIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoLCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQoZWxlbWVudCwgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkodGhpcy5lbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0R2VuZXJhdG9yID0gbmV3IFRleHRHZW5lcmF0b3I8UGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeT4oXG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgYXMgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSxcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudGV4dHMhLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uVGV4dENoYW5nZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRHZW5lcmF0b3IgPSBuZXcgU2luZ2xlVGV4dEdlbmVyYXRvcih0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeSwgdGhpcy5lbGVtZW50LnRleHQsIHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25UZXh0Q2hhbmdlLFxuICAgICAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IGdldFRleHRSZWN0YW5nbGUodGhpcy5lbGVtZW50KS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2V0UmVjdGFuZ2xlID0gZ2V0RW5naW5lKHRoaXMuZWxlbWVudC5zaGFwZSkuZ2V0VGV4dFJlY3RhbmdsZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBnZXRSZWN0YW5nbGUodGhpcy5lbGVtZW50IGFzIFBsYWl0R2VvbWV0cnkpLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5lbGVtZW50IGFzIFBsYWl0VGV4dCk/LmF1dG9TaXplID8gR2VvbWV0cnlUaHJlc2hvbGQuZGVmYXVsdFRleHRNYXhXaWR0aCA6IHdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvci5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudGV4dEdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,67 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- import { CommonElementFlavour, ImageGenerator } from '@plait/common';
3
- import { ArrowLineAutoCompleteGenerator } from './generators/arrow-line-auto-complete.generator';
4
- export class ImageComponent extends CommonElementFlavour {
5
- constructor() {
6
- super();
7
- }
8
- initializeGenerator() {
9
- this.imageGenerator = new ImageGenerator(this.board, {
10
- getRectangle: (element) => {
11
- return {
12
- x: element.points[0][0],
13
- y: element.points[0][1],
14
- width: element.points[1][0] - element.points[0][0],
15
- height: element.points[1][1] - element.points[0][1]
16
- };
17
- },
18
- getImageItem: (element) => {
19
- return {
20
- url: element.url,
21
- width: element.points[1][0] - element.points[0][0],
22
- height: element.points[1][1] - element.points[0][1]
23
- };
24
- }
25
- });
26
- this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
27
- this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
28
- this.getRef().updateActiveSection = () => {
29
- this.imageGenerator.setFocus(this.element, this.selected);
30
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
31
- selected: this.selected
32
- });
33
- };
34
- }
35
- initialize() {
36
- super.initialize();
37
- this.initializeGenerator();
38
- this.imageGenerator.processDrawing(this.element, this.getElementG());
39
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
40
- selected: this.selected
41
- });
42
- }
43
- onContextChanged(value, previous) {
44
- if (value.element !== previous.element) {
45
- this.imageGenerator.updateImage(this.getElementG(), previous.element, value.element);
46
- this.imageGenerator.setFocus(this.element, this.selected);
47
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
48
- selected: this.selected
49
- });
50
- }
51
- else {
52
- const hasSameSelected = value.selected === previous.selected;
53
- if (!hasSameSelected || value.selected) {
54
- this.imageGenerator.setFocus(this.element, this.selected);
55
- this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
56
- selected: this.selected
57
- });
58
- }
59
- }
60
- }
61
- destroy() {
62
- super.destroy();
63
- this.imageGenerator.destroy();
64
- this.lineAutoCompleteGenerator.destroy();
65
- }
66
- }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQStDLE1BQU0sYUFBYSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFakcsTUFBTSxPQUFPLGNBQWUsU0FBUSxvQkFBNEM7SUFLNUU7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFhLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDN0QsWUFBWSxFQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNsQyxPQUFPO29CQUNILENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RELENBQUM7WUFDTixDQUFDO1lBQ0QsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RCLE9BQU87b0JBQ0gsR0FBRyxFQUFF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LENBQUMsRUFBRTtvQkFDOUYsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUMxQixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsIE9uQ29udGV4dENoYW5nZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBDb21tb25FbGVtZW50Rmxhdm91ciwgSW1hZ2VHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0SW1hZ2UgfSBmcm9tICcuL2ludGVyZmFjZXMvaW1hZ2UnO1xuaW1wb3J0IHsgQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2Fycm93LWxpbmUtYXV0by1jb21wbGV0ZS5nZW5lcmF0b3InO1xuXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQgZXh0ZW5kcyBDb21tb25FbGVtZW50Rmxhdm91cjxQbGFpdEltYWdlLCBQbGFpdEJvYXJkPiBpbXBsZW1lbnRzIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4ge1xuICAgIGltYWdlR2VuZXJhdG9yITogSW1hZ2VHZW5lcmF0b3I8UGxhaXRJbWFnZT47XG5cbiAgICBsaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yITogQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yPFBsYWl0SW1hZ2U+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvciA9IG5ldyBJbWFnZUdlbmVyYXRvcjxQbGFpdEltYWdlPih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdEltYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgeDogZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIHk6IGVsZW1lbnQucG9pbnRzWzBdWzFdLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogZWxlbWVudC5wb2ludHNbMV1bMF0gLSBlbGVtZW50LnBvaW50c1swXVswXSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBlbGVtZW50LnBvaW50c1sxXVsxXSAtIGVsZW1lbnQucG9pbnRzWzBdWzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJbWFnZUl0ZW06IChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBlbGVtZW50LnVybCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGVsZW1lbnQucG9pbnRzWzFdWzBdIC0gZWxlbWVudC5wb2ludHNbMF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogZWxlbWVudC5wb2ludHNbMV1bMV0gLSBlbGVtZW50LnBvaW50c1swXVsxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IgPSBuZXcgQXJyb3dMaW5lQXV0b0NvbXBsZXRlR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmdldFJlZigpLmFkZEdlbmVyYXRvcihBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3Iua2V5LCB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IpO1xuICAgICAgICB0aGlzLmdldFJlZigpLnVwZGF0ZUFjdGl2ZVNlY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnNldEZvY3VzKHRoaXMuZWxlbWVudCwgdGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRJbWFnZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0SW1hZ2UsIFBsYWl0Qm9hcmQ+XG4gICAgKSB7XG4gICAgICAgIGlmICh2YWx1ZS5lbGVtZW50ICE9PSBwcmV2aW91cy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnVwZGF0ZUltYWdlKHRoaXMuZ2V0RWxlbWVudEcoKSwgcHJldmlvdXMuZWxlbWVudCwgdmFsdWUuZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmltYWdlR2VuZXJhdG9yLnNldEZvY3VzKHRoaXMuZWxlbWVudCwgdGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBoYXNTYW1lU2VsZWN0ZWQgPSB2YWx1ZS5zZWxlY3RlZCA9PT0gcHJldmlvdXMuc2VsZWN0ZWQ7XG4gICAgICAgICAgICBpZiAoIWhhc1NhbWVTZWxlY3RlZCB8fCB2YWx1ZS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VHZW5lcmF0b3Iuc2V0Rm9jdXModGhpcy5lbGVtZW50LCB0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubGluZUF1dG9Db21wbGV0ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -1,70 +0,0 @@
1
- import { getElementById, rotatePointsByElement } from '@plait/core';
2
- import { getConnectionPoint } from '../utils/arrow-line/arrow-line-common';
3
- export var ArrowLineMarkerType;
4
- (function (ArrowLineMarkerType) {
5
- ArrowLineMarkerType["arrow"] = "arrow";
6
- ArrowLineMarkerType["none"] = "none";
7
- ArrowLineMarkerType["openTriangle"] = "open-triangle";
8
- ArrowLineMarkerType["solidTriangle"] = "solid-triangle";
9
- ArrowLineMarkerType["sharpArrow"] = "sharp-arrow";
10
- ArrowLineMarkerType["oneSideUp"] = "one-side-up";
11
- ArrowLineMarkerType["oneSideDown"] = "one-side-down";
12
- ArrowLineMarkerType["hollowTriangle"] = "hollow-triangle";
13
- ArrowLineMarkerType["singleSlash"] = "single-slash";
14
- })(ArrowLineMarkerType || (ArrowLineMarkerType = {}));
15
- export var ArrowLineShape;
16
- (function (ArrowLineShape) {
17
- ArrowLineShape["straight"] = "straight";
18
- ArrowLineShape["curve"] = "curve";
19
- ArrowLineShape["elbow"] = "elbow";
20
- })(ArrowLineShape || (ArrowLineShape = {}));
21
- export var ArrowLineHandleKey;
22
- (function (ArrowLineHandleKey) {
23
- ArrowLineHandleKey["source"] = "source";
24
- ArrowLineHandleKey["target"] = "target";
25
- })(ArrowLineHandleKey || (ArrowLineHandleKey = {}));
26
- export const PlaitArrowLine = {
27
- isSourceMarkOrTargetMark(line, markType, handleKey) {
28
- if (handleKey === ArrowLineHandleKey.source) {
29
- return line.source.marker === markType;
30
- }
31
- else {
32
- return line.target.marker === markType;
33
- }
34
- },
35
- isSourceMark(line, markType) {
36
- return PlaitArrowLine.isSourceMarkOrTargetMark(line, markType, ArrowLineHandleKey.source);
37
- },
38
- isTargetMark(line, markType) {
39
- return PlaitArrowLine.isSourceMarkOrTargetMark(line, markType, ArrowLineHandleKey.target);
40
- },
41
- isBoundElementOfSource(line, element) {
42
- return line.source.boundId === element.id;
43
- },
44
- isBoundElementOfTarget(line, element) {
45
- return line.target.boundId === element.id;
46
- },
47
- getPoints(board, line) {
48
- let sourcePoint;
49
- if (line.source.boundId) {
50
- const sourceElement = getElementById(board, line.source.boundId);
51
- const sourceConnectionPoint = getConnectionPoint(sourceElement, line.source.connection);
52
- sourcePoint = rotatePointsByElement(sourceConnectionPoint, sourceElement) || sourceConnectionPoint;
53
- }
54
- else {
55
- sourcePoint = line.points[0];
56
- }
57
- let targetPoint;
58
- if (line.target.boundId) {
59
- const targetElement = getElementById(board, line.target.boundId);
60
- const targetConnectionPoint = getConnectionPoint(targetElement, line.target.connection);
61
- targetPoint = rotatePointsByElement(targetConnectionPoint, targetElement) || targetConnectionPoint;
62
- }
63
- else {
64
- targetPoint = line.points[line.points.length - 1];
65
- }
66
- const restPoints = line.points.length > 2 ? line.points.slice(1, line.points.length - 1) : [];
67
- return [sourcePoint, ...restPoints, targetPoint];
68
- }
69
- };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2ludGVyZmFjZXMvYXJyb3ctbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUkzRSxNQUFNLENBQU4sSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzNCLHNDQUFlLENBQUE7SUFDZixvQ0FBYSxDQUFBO0lBQ2IscURBQThCLENBQUE7SUFDOUIsdURBQWdDLENBQUE7SUFDaEMsaURBQTBCLENBQUE7SUFDMUIsZ0RBQXlCLENBQUE7SUFDekIsb0RBQTZCLENBQUE7SUFDN0IseURBQWtDLENBQUE7SUFDbEMsbURBQTRCLENBQUE7QUFDaEMsQ0FBQyxFQVZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFVOUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUlYO0FBSkQsV0FBWSxjQUFjO0lBQ3RCLHVDQUFxQixDQUFBO0lBQ3JCLGlDQUFlLENBQUE7SUFDZixpQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDMUIsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0I7QUE0REQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLHdCQUF3QixDQUFDLElBQW9CLEVBQUUsUUFBNkIsRUFBRSxTQUE2QjtRQUN2RyxJQUFJLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQW9CLEVBQUUsUUFBNkI7UUFDNUQsT0FBTyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQW9CLEVBQUUsUUFBNkI7UUFDNUQsT0FBTyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0Qsc0JBQXNCLENBQUMsSUFBb0IsRUFBRSxPQUEwQjtRQUNuRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELHNCQUFzQixDQUFDLElBQW9CLEVBQUUsT0FBMEI7UUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBaUIsRUFBRSxJQUFvQjtRQUM3QyxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQztZQUNyRixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQ3pGLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFvQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUUsQ0FBQztZQUNyRixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO1lBQ3pGLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsSUFBSSxxQkFBcUIsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNKLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlGLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24sIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUG9pbnQsIFBvaW50T2ZSZWN0YW5nbGUsIFZlY3RvciwgZ2V0RWxlbWVudEJ5SWQsIHJvdGF0ZVBvaW50c0J5RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBnZXRDb25uZWN0aW9uUG9pbnQgfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lL2Fycm93LWxpbmUtY29tbW9uJztcbmltcG9ydCB7IFBsYWl0U2hhcGVFbGVtZW50IH0gZnJvbSAnLic7XG5pbXBvcnQgeyBTdHJva2VTdHlsZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuXG5leHBvcnQgZW51bSBBcnJvd0xpbmVNYXJrZXJUeXBlIHtcbiAgICBhcnJvdyA9ICdhcnJvdycsXG4gICAgbm9uZSA9ICdub25lJyxcbiAgICBvcGVuVHJpYW5nbGUgPSAnb3Blbi10cmlhbmdsZScsXG4gICAgc29saWRUcmlhbmdsZSA9ICdzb2xpZC10cmlhbmdsZScsXG4gICAgc2hhcnBBcnJvdyA9ICdzaGFycC1hcnJvdycsXG4gICAgb25lU2lkZVVwID0gJ29uZS1zaWRlLXVwJyxcbiAgICBvbmVTaWRlRG93biA9ICdvbmUtc2lkZS1kb3duJyxcbiAgICBob2xsb3dUcmlhbmdsZSA9ICdob2xsb3ctdHJpYW5nbGUnLFxuICAgIHNpbmdsZVNsYXNoID0gJ3NpbmdsZS1zbGFzaCdcbn1cblxuZXhwb3J0IGVudW0gQXJyb3dMaW5lU2hhcGUge1xuICAgIHN0cmFpZ2h0ID0gJ3N0cmFpZ2h0JyxcbiAgICBjdXJ2ZSA9ICdjdXJ2ZScsXG4gICAgZWxib3cgPSAnZWxib3cnXG59XG5cbmV4cG9ydCBlbnVtIEFycm93TGluZUhhbmRsZUtleSB7XG4gICAgc291cmNlID0gJ3NvdXJjZScsXG4gICAgdGFyZ2V0ID0gJ3RhcmdldCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnJvd0xpbmVUZXh0IHtcbiAgICB0ZXh0OiBFbGVtZW50O1xuICAgIC8vIFBlcmNlbnRhZ2Ugb2YgcG9zaXRpb25pbmcgYmFzZWQgb24gbGluZSBsZW5ndGhcbiAgICBwb3NpdGlvbjogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyb3dMaW5lSGFuZGxlIHtcbiAgICAvLyBUaGUgaWQgb2YgdGhlIGJvdW5kZWQgZWxlbWVudFxuICAgIGJvdW5kSWQ/OiBzdHJpbmc7XG4gICAgY29ubmVjdGlvbj86IFBvaW50T2ZSZWN0YW5nbGU7XG4gICAgbWFya2VyOiBBcnJvd0xpbmVNYXJrZXJUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFycm93TGluZUhhbmRsZVJlZiB7XG4gICAga2V5OiBBcnJvd0xpbmVIYW5kbGVLZXk7XG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG4gICAgcG9pbnQ6IFBvaW50T2ZSZWN0YW5nbGU7XG4gICAgdmVjdG9yOiBWZWN0b3I7XG4gICAgYm91bmRFbGVtZW50PzogUGxhaXRTaGFwZUVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJyb3dMaW5lSGFuZGxlUmVmUGFpciB7XG4gICAgc291cmNlOiBBcnJvd0xpbmVIYW5kbGVSZWY7XG4gICAgdGFyZ2V0OiBBcnJvd0xpbmVIYW5kbGVSZWY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaXRBcnJvd0xpbmUgZXh0ZW5kcyBQbGFpdEVsZW1lbnQge1xuICAgIHR5cGU6ICdhcnJvdy1saW5lJztcbiAgICBzaGFwZTogQXJyb3dMaW5lU2hhcGU7XG4gICAgcG9pbnRzOiBQb2ludFtdO1xuXG4gICAgc291cmNlOiBBcnJvd0xpbmVIYW5kbGU7XG4gICAgdGFyZ2V0OiBBcnJvd0xpbmVIYW5kbGU7XG5cbiAgICB0ZXh0czogQXJyb3dMaW5lVGV4dFtdO1xuXG4gICAgLy8gbm9kZSBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc3Ryb2tlU3R5bGU/OiBTdHJva2VTdHlsZTtcblxuICAgIG9wYWNpdHk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdFN0cmFpZ2h0QXJyb3dMaW5lIGV4dGVuZHMgUGxhaXRBcnJvd0xpbmUge1xuICAgIHNoYXBlOiBBcnJvd0xpbmVTaGFwZS5zdHJhaWdodDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEN1cnZlQXJyb3dMaW5lIGV4dGVuZHMgUGxhaXRBcnJvd0xpbmUge1xuICAgIHNoYXBlOiBBcnJvd0xpbmVTaGFwZS5jdXJ2ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEVsYm93QXJyb3dMaW5lIGV4dGVuZHMgUGxhaXRBcnJvd0xpbmUge1xuICAgIHNoYXBlOiBBcnJvd0xpbmVTaGFwZS5lbGJvdztcbn1cblxuZXhwb3J0IGNvbnN0IFBsYWl0QXJyb3dMaW5lID0ge1xuICAgIGlzU291cmNlTWFya09yVGFyZ2V0TWFyayhsaW5lOiBQbGFpdEFycm93TGluZSwgbWFya1R5cGU6IEFycm93TGluZU1hcmtlclR5cGUsIGhhbmRsZUtleTogQXJyb3dMaW5lSGFuZGxlS2V5KSB7XG4gICAgICAgIGlmIChoYW5kbGVLZXkgPT09IEFycm93TGluZUhhbmRsZUtleS5zb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBsaW5lLnNvdXJjZS5tYXJrZXIgPT09IG1hcmtUeXBlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmUudGFyZ2V0Lm1hcmtlciA9PT0gbWFya1R5cGU7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlzU291cmNlTWFyayhsaW5lOiBQbGFpdEFycm93TGluZSwgbWFya1R5cGU6IEFycm93TGluZU1hcmtlclR5cGUpIHtcbiAgICAgICAgcmV0dXJuIFBsYWl0QXJyb3dMaW5lLmlzU291cmNlTWFya09yVGFyZ2V0TWFyayhsaW5lLCBtYXJrVHlwZSwgQXJyb3dMaW5lSGFuZGxlS2V5LnNvdXJjZSk7XG4gICAgfSxcbiAgICBpc1RhcmdldE1hcmsobGluZTogUGxhaXRBcnJvd0xpbmUsIG1hcmtUeXBlOiBBcnJvd0xpbmVNYXJrZXJUeXBlKSB7XG4gICAgICAgIHJldHVybiBQbGFpdEFycm93TGluZS5pc1NvdXJjZU1hcmtPclRhcmdldE1hcmsobGluZSwgbWFya1R5cGUsIEFycm93TGluZUhhbmRsZUtleS50YXJnZXQpO1xuICAgIH0sXG4gICAgaXNCb3VuZEVsZW1lbnRPZlNvdXJjZShsaW5lOiBQbGFpdEFycm93TGluZSwgZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGxpbmUuc291cmNlLmJvdW5kSWQgPT09IGVsZW1lbnQuaWQ7XG4gICAgfSxcbiAgICBpc0JvdW5kRWxlbWVudE9mVGFyZ2V0KGxpbmU6IFBsYWl0QXJyb3dMaW5lLCBlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbGluZS50YXJnZXQuYm91bmRJZCA9PT0gZWxlbWVudC5pZDtcbiAgICB9LFxuICAgIGdldFBvaW50cyhib2FyZDogUGxhaXRCb2FyZCwgbGluZTogUGxhaXRBcnJvd0xpbmUpIHtcbiAgICAgICAgbGV0IHNvdXJjZVBvaW50O1xuICAgICAgICBpZiAobGluZS5zb3VyY2UuYm91bmRJZCkge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlRWxlbWVudCA9IGdldEVsZW1lbnRCeUlkPFBsYWl0U2hhcGVFbGVtZW50Pihib2FyZCwgbGluZS5zb3VyY2UuYm91bmRJZCkhO1xuICAgICAgICAgICAgY29uc3Qgc291cmNlQ29ubmVjdGlvblBvaW50ID0gZ2V0Q29ubmVjdGlvblBvaW50KHNvdXJjZUVsZW1lbnQsIGxpbmUuc291cmNlLmNvbm5lY3Rpb24hKTtcbiAgICAgICAgICAgIHNvdXJjZVBvaW50ID0gcm90YXRlUG9pbnRzQnlFbGVtZW50KHNvdXJjZUNvbm5lY3Rpb25Qb2ludCwgc291cmNlRWxlbWVudCkgfHwgc291cmNlQ29ubmVjdGlvblBvaW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc291cmNlUG9pbnQgPSBsaW5lLnBvaW50c1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0YXJnZXRQb2ludDtcbiAgICAgICAgaWYgKGxpbmUudGFyZ2V0LmJvdW5kSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBnZXRFbGVtZW50QnlJZDxQbGFpdFNoYXBlRWxlbWVudD4oYm9hcmQsIGxpbmUudGFyZ2V0LmJvdW5kSWQpITtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbm5lY3Rpb25Qb2ludCA9IGdldENvbm5lY3Rpb25Qb2ludCh0YXJnZXRFbGVtZW50LCBsaW5lLnRhcmdldC5jb25uZWN0aW9uISk7XG4gICAgICAgICAgICB0YXJnZXRQb2ludCA9IHJvdGF0ZVBvaW50c0J5RWxlbWVudCh0YXJnZXRDb25uZWN0aW9uUG9pbnQsIHRhcmdldEVsZW1lbnQpIHx8IHRhcmdldENvbm5lY3Rpb25Qb2ludDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldFBvaW50ID0gbGluZS5wb2ludHNbbGluZS5wb2ludHMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdFBvaW50cyA9IGxpbmUucG9pbnRzLmxlbmd0aCA+IDIgPyBsaW5lLnBvaW50cy5zbGljZSgxLCBsaW5lLnBvaW50cy5sZW5ndGggLSAxKSA6IFtdO1xuICAgICAgICByZXR1cm4gW3NvdXJjZVBvaW50LCAuLi5yZXN0UG9pbnRzLCB0YXJnZXRQb2ludF07XG4gICAgfVxufTtcbiJdfQ==
@@ -1,9 +0,0 @@
1
- export var MemorizeKey;
2
- (function (MemorizeKey) {
3
- MemorizeKey["basicShape"] = "basicShape";
4
- MemorizeKey["flowchart"] = "flowchart";
5
- MemorizeKey["text"] = "text";
6
- MemorizeKey["arrowLine"] = "arrow-line";
7
- MemorizeKey["UML"] = "UML";
8
- })(MemorizeKey || (MemorizeKey = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ25CLHdDQUF5QixDQUFBO0lBQ3pCLHNDQUF1QixDQUFBO0lBQ3ZCLDRCQUFhLENBQUE7SUFDYix1Q0FBd0IsQ0FBQTtJQUN4QiwwQkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWVtb3JpemVLZXkge1xuICAgIGJhc2ljU2hhcGUgPSAnYmFzaWNTaGFwZScsXG4gICAgZmxvd2NoYXJ0ID0gJ2Zsb3djaGFydCcsXG4gICAgdGV4dCA9ICd0ZXh0JyxcbiAgICBhcnJvd0xpbmUgPSAnYXJyb3ctbGluZScsXG4gICAgVU1MID0gJ1VNTCdcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvaW50ZXJmYWNlcy9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY3RhbmdsZUNsaWVudCwgUG9pbnRPZlJlY3RhbmdsZSwgVmVjdG9yLCBQbGFpdEJvYXJkLCBQb2ludCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4vZ2VvbWV0cnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYXdPcHRpb25zIHtcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFJlY3RhbmdsZU9wdGlvbnMge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYm9hcmQ/OiBQbGFpdEJvYXJkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXBlRW5naW5lPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEdlb21ldHJ5LFxuICAgIFAgZXh0ZW5kcyBEcmF3T3B0aW9ucyA9IERyYXdPcHRpb25zLFxuICAgIEsgZXh0ZW5kcyBUZXh0UmVjdGFuZ2xlT3B0aW9ucyA9IFRleHRSZWN0YW5nbGVPcHRpb25zXG4+IHtcbiAgICBpc0luc2lkZVBvaW50OiAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkgPT4gYm9vbGVhbjtcbiAgICBnZXROZWFyZXN0UG9pbnQ6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSA9PiBQb2ludDtcbiAgICBnZXROZWFyZXN0Q3Jvc3NpbmdQb2ludD86IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSA9PiBQb2ludDtcbiAgICBnZXRDb25uZWN0b3JQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4gUG9pbnRbXTtcbiAgICBnZXRDb3JuZXJQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4gUG9pbnRbXTtcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQ/OiAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludE9mUmVjdGFuZ2xlKSA9PiBbUG9pbnQsIFBvaW50XSB8IG51bGw7XG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50PzogKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnRPZlJlY3RhbmdsZSkgPT4gVmVjdG9yIHwgbnVsbDtcbiAgICBkcmF3OiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByb3VnaE9wdGlvbnM6IE9wdGlvbnMsIG9wdGlvbnM/OiBQKSA9PiBTVkdHRWxlbWVudDtcbiAgICBnZXRUZXh0UmVjdGFuZ2xlPzogKGVsZW1lbnQ6IFQsIG9wdGlvbnM/OiBLKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG59XG4iXX0=