@plait/mind 0.2.0-next.7 → 0.2.0-next.9

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 (98) hide show
  1. package/constants/abstract-node.d.ts +4 -0
  2. package/constants/default.d.ts +1 -2
  3. package/constants/index.d.ts +4 -1
  4. package/constants/node-rule.d.ts +1 -0
  5. package/constants/node-style.d.ts +17 -0
  6. package/constants/node-topic-style.d.ts +4 -0
  7. package/draw/richtext.d.ts +4 -3
  8. package/esm2020/constants/abstract-node.mjs +5 -0
  9. package/esm2020/constants/default.mjs +2 -3
  10. package/esm2020/constants/index.mjs +5 -2
  11. package/esm2020/constants/node-rule.mjs +2 -0
  12. package/esm2020/constants/node-style.mjs +19 -0
  13. package/esm2020/constants/node-topic-style.mjs +5 -0
  14. package/esm2020/draw/abstract.mjs +4 -3
  15. package/esm2020/draw/indented-link.mjs +14 -14
  16. package/esm2020/draw/link/abstract-link.mjs +6 -4
  17. package/esm2020/draw/link/logic-link.mjs +7 -7
  18. package/esm2020/draw/link.mjs +6 -5
  19. package/esm2020/draw/richtext.mjs +7 -7
  20. package/esm2020/draw/shape.mjs +4 -4
  21. package/esm2020/drawer/quick-insert.drawer.mjs +11 -12
  22. package/esm2020/interfaces/abstract.mjs +1 -1
  23. package/esm2020/interfaces/element.mjs +6 -1
  24. package/esm2020/interfaces/node.mjs +1 -1
  25. package/esm2020/interfaces/options.mjs +2 -0
  26. package/esm2020/layout-option.mjs +5 -5
  27. package/esm2020/mind.component.mjs +2 -2
  28. package/esm2020/node.component.mjs +15 -13
  29. package/esm2020/plugins/emoji/emoji.drawer.mjs +3 -4
  30. package/esm2020/plugins/emoji/emoji.mjs +7 -3
  31. package/esm2020/plugins/emoji/index.mjs +1 -2
  32. package/esm2020/plugins/with-abstract.mjs +2 -2
  33. package/esm2020/plugins/with-dnd.mjs +12 -117
  34. package/esm2020/plugins/with-extend-mind.mjs +11 -0
  35. package/esm2020/plugins/with-mind.mjs +9 -7
  36. package/esm2020/public-api.mjs +2 -1
  37. package/esm2020/queries/get-available-sublayouts-by-element.mjs +4 -9
  38. package/esm2020/queries/get-branch-layouts.mjs +4 -4
  39. package/esm2020/queries/get-correct-layout-by-element.mjs +28 -31
  40. package/esm2020/queries/get-layout-by-element.mjs +10 -8
  41. package/esm2020/queries/index.mjs +1 -3
  42. package/esm2020/transforms/abstract-node.mjs +68 -0
  43. package/esm2020/transforms/index.mjs +6 -2
  44. package/esm2020/transforms/layout.mjs +3 -3
  45. package/esm2020/transforms/node.mjs +2 -2
  46. package/esm2020/utils/abstract/common.mjs +90 -70
  47. package/esm2020/utils/abstract/resize.mjs +3 -3
  48. package/esm2020/utils/clipboard.mjs +54 -14
  49. package/esm2020/utils/direction-corrector.mjs +11 -11
  50. package/esm2020/utils/dnd.mjs +118 -0
  51. package/esm2020/utils/draw-placeholder.mjs +5 -5
  52. package/esm2020/utils/drop-target-corrector.mjs +11 -10
  53. package/esm2020/utils/layout.mjs +1 -1
  54. package/esm2020/utils/mind.mjs +23 -58
  55. package/esm2020/utils/node-space.mjs +5 -5
  56. package/esm2020/utils/node-style/branch.mjs +33 -6
  57. package/esm2020/utils/node-style/node.mjs +6 -5
  58. package/esm2020/utils/path.mjs +4 -3
  59. package/esm2020/utils/shape.mjs +3 -3
  60. package/fesm2015/plait-mind.mjs +724 -602
  61. package/fesm2015/plait-mind.mjs.map +1 -1
  62. package/fesm2020/plait-mind.mjs +726 -600
  63. package/fesm2020/plait-mind.mjs.map +1 -1
  64. package/interfaces/abstract.d.ts +3 -0
  65. package/interfaces/element.d.ts +5 -2
  66. package/interfaces/options.d.ts +4 -0
  67. package/layout-option.d.ts +2 -1
  68. package/mind.component.d.ts +2 -2
  69. package/node.component.d.ts +5 -4
  70. package/package.json +1 -1
  71. package/plugins/emoji/emoji.d.ts +2 -1
  72. package/plugins/emoji/emoji.drawer.d.ts +3 -3
  73. package/plugins/emoji/index.d.ts +0 -1
  74. package/plugins/with-dnd.d.ts +0 -9
  75. package/plugins/with-extend-mind.d.ts +10 -0
  76. package/plugins/with-mind.d.ts +1 -1
  77. package/public-api.d.ts +1 -0
  78. package/queries/get-available-sublayouts-by-element.d.ts +2 -6
  79. package/queries/get-branch-layouts.d.ts +2 -1
  80. package/queries/get-correct-layout-by-element.d.ts +2 -1
  81. package/queries/index.d.ts +3 -4
  82. package/styles/styles.scss +0 -3
  83. package/transforms/abstract-node.d.ts +6 -0
  84. package/transforms/index.d.ts +3 -0
  85. package/utils/abstract/common.d.ts +6 -8
  86. package/utils/direction-corrector.d.ts +2 -1
  87. package/utils/dnd.d.ts +16 -0
  88. package/utils/drop-target-corrector.d.ts +2 -1
  89. package/utils/mind.d.ts +3 -3
  90. package/utils/node-space.d.ts +3 -2
  91. package/utils/node-style/branch.d.ts +3 -0
  92. package/utils/shape.d.ts +2 -3
  93. package/constants/node.d.ts +0 -17
  94. package/esm2020/constants/node.mjs +0 -19
  95. package/esm2020/plugins/emoji/with-mind-emoji.mjs +0 -8
  96. package/esm2020/queries/get-layout-parent-by-element.mjs +0 -17
  97. package/plugins/emoji/with-mind-emoji.d.ts +0 -8
  98. package/queries/get-layout-parent-by-element.d.ts +0 -8
@@ -1,13 +1,15 @@
1
1
  import { MindLayoutType } from '@plait/layouts';
2
2
  import { addSelectedElement, clearSelectedElement, idCreator, isNullOrUndefined, PlaitBoard, PlaitElement, Transforms } from '@plait/core';
3
3
  import { Node } from 'slate';
4
- import { MindNodeShape, NODE_MIN_WIDTH, ROOT_TOPIC_FONT_SIZE, TOPIC_DEFAULT_MAX_WORD_COUNT } from '../constants/node';
5
- import { PlaitMind } from '../interfaces';
4
+ import { NODE_MIN_WIDTH } from '../constants/node-rule';
5
+ import { MindElementShape } from '../interfaces';
6
6
  import { MindElement } from '../interfaces/element';
7
7
  import { getRootLayout } from './layout';
8
8
  import { TEXT_DEFAULT_HEIGHT, getSizeByText, ROOT_DEFAULT_HEIGHT } from '@plait/richtext';
9
9
  import { enterNodeEditing } from './node';
10
- import { getBehindAbstracts, getCorrespondingAbstract } from './abstract/common';
10
+ import { deleteElementHandleAbstract } from './abstract/common';
11
+ import { ROOT_TOPIC_FONT_SIZE, TOPIC_DEFAULT_MAX_WORD_COUNT } from '../constants/node-topic-style';
12
+ import { MindTransforms } from '../transforms';
11
13
  export function findParentElement(element) {
12
14
  const component = PlaitElement.getComponent(element);
13
15
  if (component && component.parent) {
@@ -145,13 +147,13 @@ export const shouldChangeRightNodeCount = (selectedElement) => {
145
147
  return false;
146
148
  };
147
149
  export const createDefaultMindMapElement = (point, rightNodeCount, layout) => {
148
- const root = createMindElement('思维导图', 72, ROOT_DEFAULT_HEIGHT, { shape: MindNodeShape.roundRectangle, layout });
150
+ const root = createMindElement('思维导图', 72, ROOT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle, layout });
149
151
  root.rightNodeCount = rightNodeCount;
150
152
  root.isRoot = true;
151
153
  root.type = 'mindmap';
152
154
  root.points = [point];
153
155
  const children = [1, 1, 1].map(() => {
154
- return createMindElement('新建节点', 56, TEXT_DEFAULT_HEIGHT, { shape: MindNodeShape.roundRectangle });
156
+ return createMindElement('新建节点', 56, TEXT_DEFAULT_HEIGHT, { shape: MindElementShape.roundRectangle });
155
157
  });
156
158
  root.children = children;
157
159
  return root;
@@ -188,11 +190,14 @@ export const createMindElement = (text, width, height, options) => {
188
190
  if (options.branchColor) {
189
191
  newElement.branchColor = options.branchColor;
190
192
  }
193
+ if (!isNullOrUndefined(options.branchWidth)) {
194
+ newElement.branchWidth = options.branchWidth;
195
+ }
191
196
  return newElement;
192
197
  };
193
198
  // layoutLevel 用来表示插入兄弟节点还是子节点
194
199
  export const insertMindElement = (board, inheritNode, path) => {
195
- let fill, strokeColor, strokeWidth, shape = MindNodeShape.roundRectangle;
200
+ let fill, strokeColor, strokeWidth, shape = MindElementShape.roundRectangle;
196
201
  if (!inheritNode.isRoot) {
197
202
  fill = inheritNode.fill;
198
203
  strokeColor = inheritNode.strokeColor;
@@ -215,63 +220,23 @@ export const findLastChild = (child) => {
215
220
  return result;
216
221
  };
217
222
  export const deleteSelectedELements = (board, selectedElements) => {
218
- //翻转,从下到上修改,防止找不到 path
219
223
  const deletableElements = filterChildElement(selectedElements).reverse();
220
- const relativeAbstracts = [];
221
- const accumulativeProperties = new WeakMap();
222
- deletableElements.forEach(node => {
223
- if (!PlaitMind.isMind(node)) {
224
- const behindAbstracts = getBehindAbstracts(node).filter(abstract => !deletableElements.includes(abstract));
225
- if (behindAbstracts.length) {
226
- behindAbstracts.forEach(abstract => {
227
- let newProperties = accumulativeProperties.get(abstract);
228
- if (!newProperties) {
229
- newProperties = { start: abstract.start, end: abstract.end };
230
- accumulativeProperties.set(abstract, newProperties);
231
- relativeAbstracts.push(abstract);
232
- }
233
- newProperties.start = newProperties.start - 1;
234
- newProperties.end = newProperties.end - 1;
235
- });
236
- }
237
- const correspondingAbstract = getCorrespondingAbstract(node);
238
- if (correspondingAbstract && !deletableElements.includes(correspondingAbstract)) {
239
- let newProperties = accumulativeProperties.get(correspondingAbstract);
240
- if (!newProperties) {
241
- newProperties = { start: correspondingAbstract.start, end: correspondingAbstract.end };
242
- accumulativeProperties.set(correspondingAbstract, newProperties);
243
- relativeAbstracts.push(correspondingAbstract);
244
- }
245
- newProperties.end = newProperties.end - 1;
246
- }
247
- }
248
- });
249
- const abstractHandles = relativeAbstracts.map(value => {
250
- const newProperties = accumulativeProperties.get(value);
251
- if (newProperties) {
252
- const path = PlaitBoard.findPath(board, value);
253
- return () => {
254
- if (newProperties.start > newProperties.end) {
255
- Transforms.removeNode(board, path);
256
- }
257
- else {
258
- Transforms.setNode(board, newProperties, path);
259
- }
260
- };
261
- }
262
- return () => { };
263
- });
264
- const deletableHandles = deletableElements.map(node => {
265
- const path = PlaitBoard.findPath(board, node);
224
+ const abstractRefs = deleteElementHandleAbstract(board, deletableElements);
225
+ MindTransforms.setAbstractsByRefs(board, abstractRefs);
226
+ //翻转,从下到上修改,防止找不到 path
227
+ deletableElements
228
+ .map(element => {
229
+ const path = PlaitBoard.findPath(board, element);
266
230
  return () => {
267
- if (shouldChangeRightNodeCount(node)) {
268
- changeRightNodeCount(board, path.slice(0, path.length - 1), -1);
231
+ if (shouldChangeRightNodeCount(element)) {
232
+ changeRightNodeCount(board, path.slice(0, 1), -1);
269
233
  }
270
234
  Transforms.removeNode(board, path);
271
235
  };
236
+ })
237
+ .forEach(action => {
238
+ action();
272
239
  });
273
- abstractHandles.forEach(action => action());
274
- deletableHandles.forEach(action => action());
275
240
  };
276
241
  export const divideElementByParent = (elements) => {
277
242
  const abstractIncludedGroups = [];
@@ -289,4 +254,4 @@ export const divideElementByParent = (elements) => {
289
254
  }
290
255
  return { parentElements, abstractIncludedGroups };
291
256
  };
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixZQUFZLEVBRVosVUFBVSxFQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0SCxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQW9CO0lBQ2xELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFzQixDQUFDO0lBQzFFLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDL0IsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNsQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQW9CO0lBQzlDLElBQUksTUFBTSxDQUFDO0lBQ1gsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDO0lBQ25CLElBQUksTUFBTSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sTUFBTSxFQUFFO1FBQ1gsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNkLElBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNyRCxNQUFNLEtBQUssR0FBVyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFjLEVBQUUsRUFBRTtRQUN4RSxPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDTixPQUFPLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFtQixFQUFFLEtBQWtCLEVBQUUsRUFBRTtJQUN0RSxJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUF1QixFQUFFLEVBQUU7SUFDMUQsSUFBSSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUMvQixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFlLEVBQUUsRUFBRTtJQUM1RCxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBZSxFQUFFLEVBQUU7SUFDekQsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBaUIsRUFBRSxFQUFFO0lBQzdDLE1BQU0sT0FBTyxHQUFnQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDekMsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6QixPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUV0QixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDbkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDakQ7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBaUIsRUFBRSxFQUFFO0lBQ3hFLE1BQU0sT0FBTyxHQUFnQixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDekMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3RCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUM5QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFFcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDN0QsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBILE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFeEIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLGNBQWMsQ0FBQyxRQUFRLEVBQUU7UUFDNUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUU7SUFDekQsTUFBTSxPQUFPLEdBQWdCLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDckIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBRW5CLE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxJQUFpQixFQUFlLEVBQUU7SUFDckYsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5QyxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1AsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDcEQ7SUFFRCxPQUFPLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFDL0IsT0FBTyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ3hCLE9BQU8sVUFBVSxFQUFFLEtBQUssQ0FBQztJQUN6QixPQUFPLFVBQVUsRUFBRSxXQUFXLENBQUM7SUFFL0IsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQ25DLElBQUksRUFDSixVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQ3RDLDRCQUE0QixFQUM1QixvQkFBb0IsQ0FDdkIsQ0FBQztJQUNGLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbkQsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFM0IsT0FBTztRQUNILEdBQUcsVUFBVTtRQUNiLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxLQUFLO1FBQ2pELFdBQVcsRUFBRSxLQUFLO1FBQ2xCLE1BQU0sRUFBRSxJQUFJO1FBQ1osSUFBSSxFQUFFLFNBQVM7S0FDbEIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBaUIsRUFBRSxFQUFFO0lBQ2xELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNiLElBQUksSUFBSSxFQUFFO1FBQ04sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3RELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQyxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFVBQWdCLEVBQUUsWUFBb0IsRUFBRSxFQUFFO0lBQzlGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ3JFLFVBQVUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxFQUNMO1FBQ0ksY0FBYyxFQUNWLFlBQVksSUFBSSxDQUFDO1lBQ2IsQ0FBQyxDQUFDLGVBQWdCLEdBQUcsWUFBWTtZQUNqQyxDQUFDLENBQUMsZUFBZ0IsR0FBRyxZQUFZLEdBQUcsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLGVBQWdCLEdBQUcsWUFBWTtLQUM1QyxFQUNELFVBQVUsQ0FDYixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxlQUE0QixFQUFFLEVBQUU7SUFDdkUsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekQsSUFBSSxhQUFhLEVBQUU7UUFDZixNQUFNLFNBQVMsR0FBVyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLElBQ0ksYUFBYSxDQUFDLE1BQU07WUFDcEIsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQ3hELGFBQWEsQ0FBQyxjQUFjO1lBQzVCLFNBQVMsSUFBSSxhQUFhLENBQUMsY0FBYyxHQUFHLENBQUMsRUFDL0M7WUFDRSxPQUFPLElBQUksQ0FBQztTQUNmO0tBQ0o7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQVksRUFBRSxjQUFzQixFQUFFLE1BQXNCLEVBQUUsRUFBRTtJQUN4RyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNqSCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDN0IsSUFBWSxFQUNaLEtBQWEsRUFDYixNQUFjLEVBQ2QsT0FPQyxFQUNILEVBQUU7SUFDQSxNQUFNLFVBQVUsR0FBZ0I7UUFDNUIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtTQUNsQztRQUNELFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSztRQUNMLE1BQU07UUFDTixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7S0FDdkIsQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtRQUNkLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztLQUNsQztJQUNELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtRQUNyQixVQUFVLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDaEQ7SUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQ3pDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUNoRDtJQUNELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNmLFVBQVUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNwQztJQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNoQixVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDdEM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUU7UUFDckIsVUFBVSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsOEJBQThCO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxXQUF3QixFQUFFLElBQVUsRUFBRSxFQUFFO0lBQ3pGLElBQUksSUFBSSxFQUNKLFdBQVcsRUFDWCxXQUFXLEVBQ1gsS0FBSyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUM7SUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7UUFDckIsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFDdEMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7S0FDekM7SUFFRCxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQXNCLENBQUM7SUFFM0MsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFekgsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ1osZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRTtJQUM3QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDeEQ7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsZ0JBQStCLEVBQUUsRUFBRTtJQUN6RixzQkFBc0I7SUFDdEIsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pFLE1BQU0saUJBQWlCLEdBQWtCLEVBQUUsQ0FBQztJQUM1QyxNQUFNLHNCQUFzQixHQUFHLElBQUksT0FBTyxFQUErQyxDQUFDO0lBRTFGLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzNHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDL0IsSUFBSSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsYUFBYSxFQUFFO3dCQUNoQixhQUFhLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUksRUFBRSxDQUFDO3dCQUMvRCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO3dCQUNwRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3BDO29CQUNELGFBQWEsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7b0JBQzlDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFFRCxNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUkscUJBQXFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtnQkFDN0UsSUFBSSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ2hCLGFBQWEsR0FBRyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxLQUFNLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixDQUFDLEdBQUksRUFBRSxDQUFDO29CQUN6RixzQkFBc0IsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQ2pFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxhQUFhLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQzdDO1NBQ0o7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNsRCxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxhQUFhLEVBQUU7WUFDZixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFvQixDQUFDLENBQUM7WUFDOUQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxhQUFhLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUU7b0JBQ3pDLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN0QztxQkFBTTtvQkFDSCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ2xEO1lBQ0wsQ0FBQyxDQUFDO1NBQ0w7UUFDRCxPQUFPLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2xELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLE9BQU8sR0FBRyxFQUFFO1lBQ1IsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRTtZQUNELFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0lBRUgsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztJQUNsQyxNQUFNLGNBQWMsR0FBa0IsRUFBRSxDQUFDO0lBRXpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNwQixjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNILHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtLQUNKO0lBQ0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Tm9kZSwgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQge1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudCxcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudCxcbiAgICBpZENyZWF0b3IsXG4gICAgaXNOdWxsT3JVbmRlZmluZWQsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQb2ludCxcbiAgICBUcmFuc2Zvcm1zXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBNaW5kTm9kZVNoYXBlLCBOT0RFX01JTl9XSURUSCwgUk9PVF9UT1BJQ19GT05UX1NJWkUsIFRPUElDX0RFRkFVTFRfTUFYX1dPUkRfQ09VTlQgfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZSc7XG5pbXBvcnQgeyBNaW5kTm9kZSwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRSb290TGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQnO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCwgZ2V0U2l6ZUJ5VGV4dCwgUk9PVF9ERUZBVUxUX0hFSUdIVCB9IGZyb20gJ0BwbGFpdC9yaWNodGV4dCc7XG5pbXBvcnQgeyBlbnRlck5vZGVFZGl0aW5nIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0QmVoaW5kQWJzdHJhY3RzLCBnZXRDb3JyZXNwb25kaW5nQWJzdHJhY3QgfSBmcm9tICcuL2Fic3RyYWN0L2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUGFyZW50RWxlbWVudChlbGVtZW50OiBNaW5kRWxlbWVudCk6IE1pbmRFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50LnBhcmVudCkge1xuICAgICAgICByZXR1cm4gY29tcG9uZW50LnBhcmVudC5vcmlnaW47XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kVXBFbGVtZW50KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogeyByb290OiBNaW5kRWxlbWVudDsgYnJhbmNoPzogTWluZEVsZW1lbnQgfSB7XG4gICAgbGV0IGJyYW5jaDtcbiAgICBsZXQgcm9vdCA9IGVsZW1lbnQ7XG4gICAgbGV0IHBhcmVudCA9IGZpbmRQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgYnJhbmNoID0gcm9vdDtcbiAgICAgICAgcm9vdCA9IHBhcmVudDtcbiAgICAgICAgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHsgcm9vdCwgYnJhbmNoIH07XG59XG5cbmV4cG9ydCBjb25zdCBnZXRDaGlsZHJlbkNvdW50ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgY291bnQ6IG51bWJlciA9IGVsZW1lbnQuY2hpbGRyZW4ucmVkdWNlKChwOiBudW1iZXIsIGM6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBwICsgZ2V0Q2hpbGRyZW5Db3VudChjKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gY291bnQgKyBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkRWxlbWVudCA9IChvcmlnaW46IE1pbmRFbGVtZW50LCBjaGlsZDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBsZXQgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQoY2hpbGQpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gb3JpZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyQ2hpbGRFbGVtZW50ID0gKGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgbGV0IHJlc3VsdDogTWluZEVsZW1lbnRbXSA9IFtdO1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGlzQ2hpbGQgPSBlbGVtZW50cy5zb21lKG5vZGUgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGlzQ2hpbGRFbGVtZW50KG5vZGUsIGVsZW1lbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWlzQ2hpbGQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkUmlnaHQgPSAobm9kZTogTWluZE5vZGUsIGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIHJldHVybiBub2RlLnggPCBjaGlsZC54O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRVcCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueSA+IGNoaWxkLnk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weU5ld05vZGUgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBNaW5kRWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIG5ld05vZGUuaWQgPSBpZENyZWF0b3IoKTtcbiAgICBuZXdOb2RlLmNoaWxkcmVuID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIG5ld05vZGUuY2hpbGRyZW4ucHVzaChjb3B5TmV3Tm9kZShjaGlsZE5vZGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld05vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtUm9vdFRvTm9kZSA9IChib2FyZDogUGxhaXRCb2FyZCwgbm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBNaW5kRWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIGRlbGV0ZSBuZXdOb2RlLmlzUm9vdDtcbiAgICBkZWxldGUgbmV3Tm9kZS5yaWdodE5vZGVDb3VudDtcbiAgICBkZWxldGUgbmV3Tm9kZS50eXBlO1xuXG4gICAgY29uc3QgdGV4dCA9IE5vZGUuc3RyaW5nKG5vZGUuZGF0YS50b3BpYy5jaGlsZHJlblswXSkgfHwgJyAnO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0U2l6ZUJ5VGV4dCh0ZXh0LCBQbGFpdEJvYXJkLmdldFZpZXdwb3J0Q29udGFpbmVyKGJvYXJkKSwgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCk7XG5cbiAgICBuZXdOb2RlLndpZHRoID0gTWF0aC5tYXgod2lkdGgsIE5PREVfTUlOX1dJRFRIKTtcbiAgICBuZXdOb2RlLmhlaWdodCA9IGhlaWdodDtcblxuICAgIGlmIChuZXdOb2RlLmxheW91dCA9PT0gTWluZExheW91dFR5cGUuc3RhbmRhcmQpIHtcbiAgICAgICAgZGVsZXRlIG5ld05vZGUubGF5b3V0O1xuICAgIH1cblxuICAgIHJldHVybiBuZXdOb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUFic3RyYWN0VG9Ob2RlID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbmV3Tm9kZTogTWluZEVsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBkZWxldGUgbmV3Tm9kZS5zdGFydDtcbiAgICBkZWxldGUgbmV3Tm9kZS5lbmQ7XG5cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ob2RlVG9Sb290ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlOiBNaW5kRWxlbWVudCk6IE1pbmRFbGVtZW50ID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgbGV0IHRleHQgPSBOb2RlLnN0cmluZyhuZXdFbGVtZW50LmRhdGEudG9waWMpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgIHRleHQgPSAn5oCd57u05a+85Zu+JztcbiAgICAgICAgbmV3RWxlbWVudC5kYXRhLnRvcGljID0geyBjaGlsZHJlbjogW3sgdGV4dCB9XSB9O1xuICAgIH1cblxuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5zdHJva2VDb2xvcjtcbiAgICBkZWxldGUgbmV3RWxlbWVudD8uZmlsbDtcbiAgICBkZWxldGUgbmV3RWxlbWVudD8uc2hhcGU7XG4gICAgZGVsZXRlIG5ld0VsZW1lbnQ/LnN0cm9rZVdpZHRoO1xuXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRTaXplQnlUZXh0KFxuICAgICAgICB0ZXh0LFxuICAgICAgICBQbGFpdEJvYXJkLmdldFZpZXdwb3J0Q29udGFpbmVyKGJvYXJkKSxcbiAgICAgICAgVE9QSUNfREVGQVVMVF9NQVhfV09SRF9DT1VOVCxcbiAgICAgICAgUk9PVF9UT1BJQ19GT05UX1NJWkVcbiAgICApO1xuICAgIG5ld0VsZW1lbnQud2lkdGggPSBNYXRoLm1heCh3aWR0aCwgTk9ERV9NSU5fV0lEVEgpO1xuICAgIG5ld0VsZW1lbnQuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV3RWxlbWVudCxcbiAgICAgICAgbGF5b3V0OiBuZXdFbGVtZW50LmxheW91dCA/PyBNaW5kTGF5b3V0VHlwZS5yaWdodCxcbiAgICAgICAgaXNDb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgICBpc1Jvb3Q6IHRydWUsXG4gICAgICAgIHR5cGU6ICdtaW5kbWFwJ1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXh0cmFjdE5vZGVzVGV4dCA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBpZiAobm9kZSkge1xuICAgICAgICBzdHIgKz0gTm9kZS5zdHJpbmcobm9kZS5kYXRhLnRvcGljLmNoaWxkcmVuWzBdKSArICcgJztcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgc3RyICs9IGV4dHJhY3ROb2Rlc1RleHQoY2hpbGROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZVJpZ2h0Tm9kZUNvdW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBwYXJlbnRQYXRoOiBQYXRoLCBjaGFuZ2VOdW1iZXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IF9yaWdodE5vZGVDb3VudCA9IGJvYXJkLmNoaWxkcmVuW3BhcmVudFBhdGhbMF1dLnJpZ2h0Tm9kZUNvdW50O1xuICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHJpZ2h0Tm9kZUNvdW50OlxuICAgICAgICAgICAgICAgIGNoYW5nZU51bWJlciA+PSAwXG4gICAgICAgICAgICAgICAgICAgID8gX3JpZ2h0Tm9kZUNvdW50ISArIGNoYW5nZU51bWJlclxuICAgICAgICAgICAgICAgICAgICA6IF9yaWdodE5vZGVDb3VudCEgKyBjaGFuZ2VOdW1iZXIgPCAwXG4gICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICA6IF9yaWdodE5vZGVDb3VudCEgKyBjaGFuZ2VOdW1iZXJcbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50UGF0aFxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkQ2hhbmdlUmlnaHROb2RlQ291bnQgPSAoc2VsZWN0ZWRFbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBmaW5kUGFyZW50RWxlbWVudChzZWxlY3RlZEVsZW1lbnQpO1xuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVJbmRleDogbnVtYmVyID0gcGFyZW50RWxlbWVudC5jaGlsZHJlbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBzZWxlY3RlZEVsZW1lbnQuaWQpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50LmlzUm9vdCAmJlxuICAgICAgICAgICAgZ2V0Um9vdExheW91dChwYXJlbnRFbGVtZW50KSA9PT0gTWluZExheW91dFR5cGUuc3RhbmRhcmQgJiZcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnQucmlnaHROb2RlQ291bnQgJiZcbiAgICAgICAgICAgIG5vZGVJbmRleCA8PSBwYXJlbnRFbGVtZW50LnJpZ2h0Tm9kZUNvdW50IC0gMVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0TWluZE1hcEVsZW1lbnQgPSAocG9pbnQ6IFBvaW50LCByaWdodE5vZGVDb3VudDogbnVtYmVyLCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCA3MiwgUk9PVF9ERUZBVUxUX0hFSUdIVCwgeyBzaGFwZTogTWluZE5vZGVTaGFwZS5yb3VuZFJlY3RhbmdsZSwgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7IHNoYXBlOiBNaW5kTm9kZVNoYXBlLnJvdW5kUmVjdGFuZ2xlIH0pO1xuICAgIH0pO1xuICAgIHJvb3QuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICByZXR1cm4gcm9vdDtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNaW5kRWxlbWVudCA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgICAgICBzdHJva2VXaWR0aD86IG51bWJlcjtcbiAgICAgICAgc2hhcGU/OiBNaW5kTm9kZVNoYXBlO1xuICAgICAgICBsYXlvdXQ/OiBNaW5kTGF5b3V0VHlwZTtcbiAgICAgICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgfVxuKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudDogTWluZEVsZW1lbnQgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdG9waWM6IHsgY2hpbGRyZW46IFt7IHRleHQgfV0gfVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIGZpbGw6IG9wdGlvbnMuZmlsbCxcbiAgICAgICAgc3Ryb2tlQ29sb3I6IG9wdGlvbnMuc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBvcHRpb25zLnN0cm9rZVdpZHRoLFxuICAgICAgICBzaGFwZTogb3B0aW9ucy5zaGFwZVxuICAgIH07XG4gICAgaWYgKG9wdGlvbnMuZmlsbCkge1xuICAgICAgICBuZXdFbGVtZW50LmZpbGwgPSBvcHRpb25zLmZpbGw7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnN0cm9rZUNvbG9yKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuc3Ryb2tlQ29sb3IgPSBvcHRpb25zLnN0cm9rZUNvbG9yO1xuICAgIH1cbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG9wdGlvbnMuc3Ryb2tlV2lkdGgpKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuc3Ryb2tlV2lkdGggPSBvcHRpb25zLnN0cm9rZVdpZHRoO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaGFwZSkge1xuICAgICAgICBuZXdFbGVtZW50LnNoYXBlID0gb3B0aW9ucy5zaGFwZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubGF5b3V0KSB7XG4gICAgICAgIG5ld0VsZW1lbnQubGF5b3V0ID0gb3B0aW9ucy5sYXlvdXQ7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmJyYW5jaENvbG9yKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuYnJhbmNoQ29sb3IgPSBvcHRpb25zLmJyYW5jaENvbG9yO1xuICAgIH1cbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn07XG5cbi8vIGxheW91dExldmVsIOeUqOadpeihqOekuuaPkuWFpeWFhOW8n+iKgueCuei/mOaYr+WtkOiKgueCuVxuZXhwb3J0IGNvbnN0IGluc2VydE1pbmRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBpbmhlcml0Tm9kZTogTWluZEVsZW1lbnQsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBsZXQgZmlsbCxcbiAgICAgICAgc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgICBzaGFwZSA9IE1pbmROb2RlU2hhcGUucm91bmRSZWN0YW5nbGU7XG4gICAgaWYgKCFpbmhlcml0Tm9kZS5pc1Jvb3QpIHtcbiAgICAgICAgZmlsbCA9IGluaGVyaXROb2RlLmZpbGw7XG4gICAgICAgIHN0cm9rZUNvbG9yID0gaW5oZXJpdE5vZGUuc3Ryb2tlQ29sb3I7XG4gICAgICAgIHN0cm9rZVdpZHRoID0gaW5oZXJpdE5vZGUuc3Ryb2tlV2lkdGg7XG4gICAgfVxuXG4gICAgc2hhcGUgPSBpbmhlcml0Tm9kZS5zaGFwZSBhcyBNaW5kTm9kZVNoYXBlO1xuXG4gICAgY29uc3QgbmV3RWxlbWVudCA9IGNyZWF0ZU1pbmRFbGVtZW50KCcnLCBOT0RFX01JTl9XSURUSCwgVEVYVF9ERUZBVUxUX0hFSUdIVCwgeyBmaWxsLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHNoYXBlIH0pO1xuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudChib2FyZCk7XG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBuZXdFbGVtZW50KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZW50ZXJOb2RlRWRpdGluZyhuZXdFbGVtZW50KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdENoaWxkID0gKGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIGxldCByZXN1bHQgPSBjaGlsZDtcbiAgICB3aGlsZSAocmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY2hpbGRyZW5bcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVNlbGVjdGVkRUxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICAvL+e/u+i9rO+8jOS7juS4i+WIsOS4iuS/ruaUue+8jOmYsuatouaJvuS4jeWIsCBwYXRoXG4gICAgY29uc3QgZGVsZXRhYmxlRWxlbWVudHMgPSBmaWx0ZXJDaGlsZEVsZW1lbnQoc2VsZWN0ZWRFbGVtZW50cykucmV2ZXJzZSgpO1xuICAgIGNvbnN0IHJlbGF0aXZlQWJzdHJhY3RzOiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgY29uc3QgYWNjdW11bGF0aXZlUHJvcGVydGllcyA9IG5ldyBXZWFrTWFwPE1pbmRFbGVtZW50LCB7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH0+KCk7XG5cbiAgICBkZWxldGFibGVFbGVtZW50cy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICBpZiAoIVBsYWl0TWluZC5pc01pbmQobm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlaGluZEFic3RyYWN0cyA9IGdldEJlaGluZEFic3RyYWN0cyhub2RlKS5maWx0ZXIoYWJzdHJhY3QgPT4gIWRlbGV0YWJsZUVsZW1lbnRzLmluY2x1ZGVzKGFic3RyYWN0KSk7XG4gICAgICAgICAgICBpZiAoYmVoaW5kQWJzdHJhY3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJlaGluZEFic3RyYWN0cy5mb3JFYWNoKGFic3RyYWN0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Byb3BlcnRpZXMgPSBhY2N1bXVsYXRpdmVQcm9wZXJ0aWVzLmdldChhYnN0cmFjdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllcyA9IHsgc3RhcnQ6IGFic3RyYWN0LnN0YXJ0ISwgZW5kOiBhYnN0cmFjdC5lbmQhIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVQcm9wZXJ0aWVzLnNldChhYnN0cmFjdCwgbmV3UHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZUFic3RyYWN0cy5wdXNoKGFic3RyYWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzLnN0YXJ0ID0gbmV3UHJvcGVydGllcy5zdGFydCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXMuZW5kID0gbmV3UHJvcGVydGllcy5lbmQgLSAxO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nQWJzdHJhY3QgPSBnZXRDb3JyZXNwb25kaW5nQWJzdHJhY3Qobm9kZSk7XG4gICAgICAgICAgICBpZiAoY29ycmVzcG9uZGluZ0Fic3RyYWN0ICYmICFkZWxldGFibGVFbGVtZW50cy5pbmNsdWRlcyhjb3JyZXNwb25kaW5nQWJzdHJhY3QpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1Byb3BlcnRpZXMgPSBhY2N1bXVsYXRpdmVQcm9wZXJ0aWVzLmdldChjb3JyZXNwb25kaW5nQWJzdHJhY3QpO1xuICAgICAgICAgICAgICAgIGlmICghbmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzID0geyBzdGFydDogY29ycmVzcG9uZGluZ0Fic3RyYWN0LnN0YXJ0ISwgZW5kOiBjb3JyZXNwb25kaW5nQWJzdHJhY3QuZW5kISB9O1xuICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVQcm9wZXJ0aWVzLnNldChjb3JyZXNwb25kaW5nQWJzdHJhY3QsIG5ld1Byb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZUFic3RyYWN0cy5wdXNoKGNvcnJlc3BvbmRpbmdBYnN0cmFjdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXMuZW5kID0gbmV3UHJvcGVydGllcy5lbmQgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBhYnN0cmFjdEhhbmRsZXMgPSByZWxhdGl2ZUFic3RyYWN0cy5tYXAodmFsdWUgPT4ge1xuICAgICAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0gYWNjdW11bGF0aXZlUHJvcGVydGllcy5nZXQodmFsdWUpO1xuICAgICAgICBpZiAobmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHZhbHVlIGFzIE1pbmRFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld1Byb3BlcnRpZXMuc3RhcnQgPiBuZXdQcm9wZXJ0aWVzLmVuZCkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgbmV3UHJvcGVydGllcywgcGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWxldGFibGVIYW5kbGVzID0gZGVsZXRhYmxlRWxlbWVudHMubWFwKG5vZGUgPT4ge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgbm9kZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2hvdWxkQ2hhbmdlUmlnaHROb2RlQ291bnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VSaWdodE5vZGVDb3VudChib2FyZCwgcGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCAtIDEpLCAtMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHBhdGgpO1xuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgYWJzdHJhY3RIYW5kbGVzLmZvckVhY2goYWN0aW9uID0+IGFjdGlvbigpKTtcbiAgICBkZWxldGFibGVIYW5kbGVzLmZvckVhY2goYWN0aW9uID0+IGFjdGlvbigpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkaXZpZGVFbGVtZW50QnlQYXJlbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzID0gW107XG4gICAgY29uc3QgcGFyZW50RWxlbWVudHM6IE1pbmRFbGVtZW50W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnRzW2ldKTtcbiAgICAgICAgY29uc3QgcGFyZW50SW5kZXggPSBwYXJlbnRFbGVtZW50cy5pbmRleE9mKHBhcmVudCk7XG4gICAgICAgIGlmIChwYXJlbnRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnRzLnB1c2gocGFyZW50KTtcbiAgICAgICAgICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHMucHVzaChbZWxlbWVudHNbaV1dKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFic3RyYWN0SW5jbHVkZWRHcm91cHNbcGFyZW50SW5kZXhdLnB1c2goZWxlbWVudHNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHBhcmVudEVsZW1lbnRzLCBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzIH07XG59O1xuIl19
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsVUFBVSxFQUNWLFlBQVksRUFFWixVQUFVLEVBQ2IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDbEQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQXNCLENBQUM7SUFDMUUsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUMvQixPQUFPLFNBQVMsQ0FBQyxNQUFN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QUFFLEVBQUU7SUFDN0QsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7SUFDbEMsTUFBTSxjQUFjLEdBQWtCLEVBQUUsQ0FBQztJQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDcEIsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO2FBQU07WUFDSCxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7S0FDSjtJQUNELE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7XG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50LFxuICAgIGNsZWFyU2VsZWN0ZWRFbGVtZW50LFxuICAgIGlkQ3JlYXRvcixcbiAgICBpc051bGxPclVuZGVmaW5lZCxcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBvaW50LFxuICAgIFRyYW5zZm9ybXNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtcnVsZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudFNoYXBlLCBNaW5kTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgZ2V0Um9vdExheW91dCB9IGZyb20gJy4vbGF5b3V0JztcbmltcG9ydCB7IFRFWFRfREVGQVVMVF9IRUlHSFQsIGdldFNpemVCeVRleHQsIFJPT1RfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvcmljaHRleHQnO1xuaW1wb3J0IHsgZW50ZXJOb2RlRWRpdGluZyB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL25vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IGRlbGV0ZUVsZW1lbnRIYW5kbGVBYnN0cmFjdCB9IGZyb20gJy4vYWJzdHJhY3QvY29tbW9uJztcbmltcG9ydCB7IFJPT1RfVE9QSUNfRk9OVF9TSVpFLCBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5UIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdG9waWMtc3R5bGUnO1xuaW1wb3J0IHsgTWluZFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYXJlbnRFbGVtZW50KGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogTWluZEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQucGFyZW50KSB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnQucGFyZW50Lm9yaWdpbjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRVcEVsZW1lbnQoZWxlbWVudDogTWluZEVsZW1lbnQpOiB7IHJvb3Q6IE1pbmRFbGVtZW50OyBicmFuY2g/OiBNaW5kRWxlbWVudCB9IHtcbiAgICBsZXQgYnJhbmNoO1xuICAgIGxldCByb290ID0gZWxlbWVudDtcbiAgICBsZXQgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgICBicmFuY2ggPSByb290O1xuICAgICAgICByb290ID0gcGFyZW50O1xuICAgICAgICBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4geyByb290LCBicmFuY2ggfTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuQ291bnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gZWxlbWVudC5jaGlsZHJlbi5yZWR1Y2UoKHA6IG51bWJlciwgYzogTWluZEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHAgKyBnZXRDaGlsZHJlbkNvdW50KGMpO1xuICAgIH0sIDApO1xuICAgIHJldHVybiBjb3VudCArIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRFbGVtZW50ID0gKG9yaWdpbjogTWluZEVsZW1lbnQsIGNoaWxkOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChjaGlsZCk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgICBpZiAocGFyZW50ID09PSBvcmlnaW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHBhcmVudCA9IGZpbmRQYXJlbnRFbGVtZW50KHBhcmVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJDaGlsZEVsZW1lbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgcmVzdWx0OiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgaXNDaGlsZCA9IGVsZW1lbnRzLnNvbWUobm9kZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNDaGlsZEVsZW1lbnQobm9kZSwgZWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaXNDaGlsZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRSaWdodCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueCA8IGNoaWxkLng7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFVwID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS55ID4gY2hpbGQueTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5TmV3Tm9kZSA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgbmV3Tm9kZS5pZCA9IGlkQ3JlYXRvcigpO1xuICAgIG5ld05vZGUuY2hpbGRyZW4gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbmV3Tm9kZS5jaGlsZHJlbi5wdXNoKGNvcHlOZXdOb2RlKGNoaWxkTm9kZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Sb290VG9Ob2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgZGVsZXRlIG5ld05vZGUuaXNSb290O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnJpZ2h0Tm9kZUNvdW50O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnR5cGU7XG5cbiAgICBjb25zdCB0ZXh0ID0gTm9kZS5zdHJpbmcobm9kZS5kYXRhLnRvcGljLmNoaWxkcmVuWzBdKSB8fCAnICc7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRTaXplQnlUZXh0KHRleHQsIFBsYWl0Qm9hcmQuZ2V0Vmlld3BvcnRDb250YWluZXIoYm9hcmQpLCBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5UKTtcblxuICAgIG5ld05vZGUud2lkdGggPSBNYXRoLm1heCh3aWR0aCwgTk9ERV9NSU5fV0lEVEgpO1xuICAgIG5ld05vZGUuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgaWYgKG5ld05vZGUubGF5b3V0ID09PSBNaW5kTGF5b3V0VHlwZS5zdGFuZGFyZCkge1xuICAgICAgICBkZWxldGUgbmV3Tm9kZS5sYXlvdXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld05vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQWJzdHJhY3RUb05vZGUgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBuZXdOb2RlOiBNaW5kRWxlbWVudCA9IHsgLi4ubm9kZSB9O1xuICAgIGRlbGV0ZSBuZXdOb2RlLnN0YXJ0O1xuICAgIGRlbGV0ZSBuZXdOb2RlLmVuZDtcblxuICAgIHJldHVybiBuZXdOb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU5vZGVUb1Jvb3QgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG5vZGU6IE1pbmRFbGVtZW50KTogTWluZEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBsZXQgdGV4dCA9IE5vZGUuc3RyaW5nKG5ld0VsZW1lbnQuZGF0YS50b3BpYyk7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgdGV4dCA9ICfmgJ3nu7Tlr7zlm74nO1xuICAgICAgICBuZXdFbGVtZW50LmRhdGEudG9waWMgPSB7IGNoaWxkcmVuOiBbeyB0ZXh0IH1dIH07XG4gICAgfVxuXG4gICAgZGVsZXRlIG5ld0VsZW1lbnQ/LnN0cm9rZUNvbG9yO1xuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5maWxsO1xuICAgIGRlbGV0ZSBuZXdFbGVtZW50Py5zaGFwZTtcbiAgICBkZWxldGUgbmV3RWxlbWVudD8uc3Ryb2tlV2lkdGg7XG5cbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldFNpemVCeVRleHQoXG4gICAgICAgIHRleHQsXG4gICAgICAgIFBsYWl0Qm9hcmQuZ2V0Vmlld3BvcnRDb250YWluZXIoYm9hcmQpLFxuICAgICAgICBUT1BJQ19ERUZBVUxUX01BWF9XT1JEX0NPVU5ULFxuICAgICAgICBST09UX1RPUElDX0ZPTlRfU0laRVxuICAgICk7XG4gICAgbmV3RWxlbWVudC53aWR0aCA9IE1hdGgubWF4KHdpZHRoLCBOT0RFX01JTl9XSURUSCk7XG4gICAgbmV3RWxlbWVudC5oZWlnaHQgPSBoZWlnaHQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXdFbGVtZW50LFxuICAgICAgICBsYXlvdXQ6IG5ld0VsZW1lbnQubGF5b3V0ID8/IE1pbmRMYXlvdXRUeXBlLnJpZ2h0LFxuICAgICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgIGlzUm9vdDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ21pbmRtYXAnXG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0Tm9kZXNUZXh0ID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHN0ciA9ICcnO1xuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHN0ciArPSBOb2RlLnN0cmluZyhub2RlLmRhdGEudG9waWMuY2hpbGRyZW5bMF0pICsgJyAnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gZXh0cmFjdE5vZGVzVGV4dChjaGlsZE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnQgY29uc3QgY2hhbmdlUmlnaHROb2RlQ291bnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBhcmVudFBhdGg6IFBhdGgsIGNoYW5nZU51bWJlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgX3JpZ2h0Tm9kZUNvdW50ID0gYm9hcmQuY2hpbGRyZW5bcGFyZW50UGF0aFswXV0ucmlnaHROb2RlQ291bnQ7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKFxuICAgICAgICBib2FyZCxcbiAgICAgICAge1xuICAgICAgICAgICAgcmlnaHROb2RlQ291bnQ6XG4gICAgICAgICAgICAgICAgY2hhbmdlTnVtYmVyID49IDBcbiAgICAgICAgICAgICAgICAgICAgPyBfcmlnaHROb2RlQ291bnQhICsgY2hhbmdlTnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIDogX3JpZ2h0Tm9kZUNvdW50ISArIGNoYW5nZU51bWJlciA8IDBcbiAgICAgICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgICAgIDogX3JpZ2h0Tm9kZUNvdW50ISArIGNoYW5nZU51bWJlclxuICAgICAgICB9LFxuICAgICAgICBwYXJlbnRQYXRoXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91bGRDaGFuZ2VSaWdodE5vZGVDb3VudCA9IChzZWxlY3RlZEVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGZpbmRQYXJlbnRFbGVtZW50KHNlbGVjdGVkRWxlbWVudCk7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUluZGV4OiBudW1iZXIgPSBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IHNlbGVjdGVkRWxlbWVudC5pZCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuaXNSb290ICYmXG4gICAgICAgICAgICBnZXRSb290TGF5b3V0KHBhcmVudEVsZW1lbnQpID09PSBNaW5kTGF5b3V0VHlwZS5zdGFuZGFyZCAmJlxuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5yaWdodE5vZGVDb3VudCAmJlxuICAgICAgICAgICAgbm9kZUluZGV4IDw9IHBhcmVudEVsZW1lbnQucmlnaHROb2RlQ291bnQgLSAxXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmF1bHRNaW5kTWFwRWxlbWVudCA9IChwb2ludDogUG9pbnQsIHJpZ2h0Tm9kZUNvdW50OiBudW1iZXIsIGxheW91dDogTWluZExheW91dFR5cGUpID0+IHtcbiAgICBjb25zdCByb290ID0gY3JlYXRlTWluZEVsZW1lbnQoJ+aAnee7tOWvvOWbvicsIDcyLCBST09UX0RFRkFVTFRfSEVJR0hULCB7IHNoYXBlOiBNaW5kRWxlbWVudFNoYXBlLnJvdW5kUmVjdGFuZ2xlLCBsYXlvdXQgfSk7XG4gICAgcm9vdC5yaWdodE5vZGVDb3VudCA9IHJpZ2h0Tm9kZUNvdW50O1xuICAgIHJvb3QuaXNSb290ID0gdHJ1ZTtcbiAgICByb290LnR5cGUgPSAnbWluZG1hcCc7XG4gICAgcm9vdC5wb2ludHMgPSBbcG9pbnRdO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gWzEsIDEsIDFdLm1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBjcmVhdGVNaW5kRWxlbWVudCgn5paw5bu66IqC54K5JywgNTYsIFRFWFRfREVGQVVMVF9IRUlHSFQsIHsgc2hhcGU6IE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGUgfSk7XG4gICAgfSk7XG4gICAgcm9vdC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHJldHVybiByb290O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pbmRFbGVtZW50ID0gKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIGhlaWdodDogbnVtYmVyLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZmlsbD86IHN0cmluZztcbiAgICAgICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyO1xuICAgICAgICBzaGFwZT86IE1pbmRFbGVtZW50U2hhcGU7XG4gICAgICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgICAgICBicmFuY2hDb2xvcj86IHN0cmluZztcbiAgICAgICAgYnJhbmNoV2lkdGg/OiBudW1iZXI7XG4gICAgfVxuKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudDogTWluZEVsZW1lbnQgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdG9waWM6IHsgY2hpbGRyZW46IFt7IHRleHQgfV0gfVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIGZpbGw6IG9wdGlvbnMuZmlsbCxcbiAgICAgICAgc3Ryb2tlQ29sb3I6IG9wdGlvbnMuc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoOiBvcHRpb25zLnN0cm9rZVdpZHRoLFxuICAgICAgICBzaGFwZTogb3B0aW9ucy5zaGFwZVxuICAgIH07XG4gICAgaWYgKG9wdGlvbnMuZmlsbCkge1xuICAgICAgICBuZXdFbGVtZW50LmZpbGwgPSBvcHRpb25zLmZpbGw7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnN0cm9rZUNvbG9yKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuc3Ryb2tlQ29sb3IgPSBvcHRpb25zLnN0cm9rZUNvbG9yO1xuICAgIH1cbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG9wdGlvbnMuc3Ryb2tlV2lkdGgpKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuc3Ryb2tlV2lkdGggPSBvcHRpb25zLnN0cm9rZVdpZHRoO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaGFwZSkge1xuICAgICAgICBuZXdFbGVtZW50LnNoYXBlID0gb3B0aW9ucy5zaGFwZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubGF5b3V0KSB7XG4gICAgICAgIG5ld0VsZW1lbnQubGF5b3V0ID0gb3B0aW9ucy5sYXlvdXQ7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmJyYW5jaENvbG9yKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuYnJhbmNoQ29sb3IgPSBvcHRpb25zLmJyYW5jaENvbG9yO1xuICAgIH1cbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG9wdGlvbnMuYnJhbmNoV2lkdGgpKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuYnJhbmNoV2lkdGggPSBvcHRpb25zLmJyYW5jaFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn07XG5cbi8vIGxheW91dExldmVsIOeUqOadpeihqOekuuaPkuWFpeWFhOW8n+iKgueCuei/mOaYr+WtkOiKgueCuVxuZXhwb3J0IGNvbnN0IGluc2VydE1pbmRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBpbmhlcml0Tm9kZTogTWluZEVsZW1lbnQsIHBhdGg6IFBhdGgpID0+IHtcbiAgICBsZXQgZmlsbCxcbiAgICAgICAgc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgICBzaGFwZSA9IE1pbmRFbGVtZW50U2hhcGUucm91bmRSZWN0YW5nbGU7XG4gICAgaWYgKCFpbmhlcml0Tm9kZS5pc1Jvb3QpIHtcbiAgICAgICAgZmlsbCA9IGluaGVyaXROb2RlLmZpbGw7XG4gICAgICAgIHN0cm9rZUNvbG9yID0gaW5oZXJpdE5vZGUuc3Ryb2tlQ29sb3I7XG4gICAgICAgIHN0cm9rZVdpZHRoID0gaW5oZXJpdE5vZGUuc3Ryb2tlV2lkdGg7XG4gICAgfVxuXG4gICAgc2hhcGUgPSBpbmhlcml0Tm9kZS5zaGFwZSBhcyBNaW5kRWxlbWVudFNoYXBlO1xuXG4gICAgY29uc3QgbmV3RWxlbWVudCA9IGNyZWF0ZU1pbmRFbGVtZW50KCcnLCBOT0RFX01JTl9XSURUSCwgVEVYVF9ERUZBVUxUX0hFSUdIVCwgeyBmaWxsLCBzdHJva2VDb2xvciwgc3Ryb2tlV2lkdGgsIHNoYXBlIH0pO1xuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudChib2FyZCk7XG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBuZXdFbGVtZW50KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZW50ZXJOb2RlRWRpdGluZyhuZXdFbGVtZW50KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdENoaWxkID0gKGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIGxldCByZXN1bHQgPSBjaGlsZDtcbiAgICB3aGlsZSAocmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY2hpbGRyZW5bcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVNlbGVjdGVkRUxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBkZWxldGFibGVFbGVtZW50cyA9IGZpbHRlckNoaWxkRWxlbWVudChzZWxlY3RlZEVsZW1lbnRzKS5yZXZlcnNlKCk7XG5cbiAgICBjb25zdCBhYnN0cmFjdFJlZnMgPSBkZWxldGVFbGVtZW50SGFuZGxlQWJzdHJhY3QoYm9hcmQsIGRlbGV0YWJsZUVsZW1lbnRzKTtcbiAgICBNaW5kVHJhbnNmb3Jtcy5zZXRBYnN0cmFjdHNCeVJlZnMoYm9hcmQsIGFic3RyYWN0UmVmcyk7XG5cbiAgICAvL+e/u+i9rO+8jOS7juS4i+WIsOS4iuS/ruaUue+8jOmYsuatouaJvuS4jeWIsCBwYXRoXG4gICAgZGVsZXRhYmxlRWxlbWVudHNcbiAgICAgICAgLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZENoYW5nZVJpZ2h0Tm9kZUNvdW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZVJpZ2h0Tm9kZUNvdW50KGJvYXJkLCBwYXRoLnNsaWNlKDAsIDEpLCAtMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZShib2FyZCwgcGF0aCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgICAuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICAgICAgYWN0aW9uKCk7XG4gICAgICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRpdmlkZUVsZW1lbnRCeVBhcmVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0SW5jbHVkZWRHcm91cHMgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50czogTWluZEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudHNbaV0pO1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IHBhcmVudEVsZW1lbnRzLmluZGV4T2YocGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudHMucHVzaChwYXJlbnQpO1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwcy5wdXNoKFtlbGVtZW50c1tpXV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwc1twYXJlbnRJbmRleF0ucHVzaChlbGVtZW50c1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgcGFyZW50RWxlbWVudHMsIGFic3RyYWN0SW5jbHVkZWRHcm91cHMgfTtcbn07XG4iXX0=
@@ -36,10 +36,10 @@ const getVerticalSpaceBetweenNodeAndText = (element) => {
36
36
  return nodeAndText;
37
37
  };
38
38
  export const NodeSpace = {
39
- getNodeWidth(element) {
39
+ getNodeWidth(board, element) {
40
40
  const nodeAndText = getHorizontalSpaceBetweenNodeAndText(element);
41
41
  if (MindElement.hasEmojis(element)) {
42
- return nodeAndText + getEmojisRectangle(element).width + getHorizontalSpaceEmojiAndText(element) + element.width + nodeAndText;
42
+ return nodeAndText + getEmojisRectangle(board, element).width + getHorizontalSpaceEmojiAndText(element) + element.width + nodeAndText;
43
43
  }
44
44
  return nodeAndText + element.width + nodeAndText;
45
45
  },
@@ -47,10 +47,10 @@ export const NodeSpace = {
47
47
  const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
48
48
  return nodeAndText + element.height + nodeAndText;
49
49
  },
50
- getTextHorizontalSpace(element) {
50
+ getTextHorizontalSpace(board, element) {
51
51
  const nodeAndText = getHorizontalSpaceBetweenNodeAndText(element);
52
52
  if (MindElement.hasEmojis(element)) {
53
- return nodeAndText + getEmojisRectangle(element).width + getHorizontalSpaceEmojiAndText(element);
53
+ return nodeAndText + getEmojisRectangle(board, element).width + getHorizontalSpaceEmojiAndText(element);
54
54
  }
55
55
  else {
56
56
  return nodeAndText;
@@ -69,4 +69,4 @@ export const NodeSpace = {
69
69
  return nodeAndText;
70
70
  }
71
71
  };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzNCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzFCO0NBQ0osQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN6QjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN4QjtDQUNKLENBQUM7QUFFRixNQUFNLG9DQUFvQyxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQy9HLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDbEgsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNoRSxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzRyxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsWUFBWSxDQUFDLE9BQW9CO1FBQzdCLE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQyxPQUFPLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsOEJBQThCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7U0FDbEk7UUFDRCxPQUFPLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQW9CO1FBQzlCLE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBQ3RELENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxPQUFvQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxXQUFXLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BHO2FBQU07WUFDSCxPQUFPLFdBQVcsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsT0FBb0I7UUFDeEMsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUNELHFCQUFxQixDQUFDLE9BQW9CO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRSB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRFbW9qaXNSZWN0YW5nbGUgfSBmcm9tICcuLi9wbHVnaW5zL2Vtb2ppL2Vtb2ppJztcblxuY29uc3QgTm9kZURlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMyxcbiAgICAgICAgZW1vamlBbmRUZXh0OiBCQVNFICogMS41XG4gICAgfSxcbiAgICB2ZXJ0aWNhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQ7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xufTtcblxuY29uc3QgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuY29uc3QgZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG59O1xuXG5leHBvcnQgY29uc3QgTm9kZVNwYWNlID0ge1xuICAgIGdldE5vZGVXaWR0aChlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgZ2V0RW1vamlzUmVjdGFuZ2xlKGVsZW1lbnQpLndpZHRoICsgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpICsgZWxlbWVudC53aWR0aCArIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIGVsZW1lbnQud2lkdGggKyBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldE5vZGVIZWlnaHQoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0VGV4dEhvcml6b250YWxTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0ICsgZ2V0RW1vamlzUmVjdGFuZ2xlKGVsZW1lbnQpLndpZHRoICsgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRUZXh0VmVydGljYWxTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldEVtb2ppSG9yaXpvbnRhbFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXRFbW9qaVZlcnRpY2FsU3BhY2UoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfVxufTtcbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHNUQsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzNCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxHQUFHO0tBQzFCO0NBQ0osQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN6QjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztLQUN4QjtDQUNKLENBQUM7QUFFRixNQUFNLG9DQUFvQyxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQy9HLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDbEgsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNoRSxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzRyxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsWUFBWSxDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDcEQsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sV0FBVyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsOEJBQThCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7U0FDekk7UUFDRCxPQUFPLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQW9CO1FBQzlCLE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBQ3RELENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxLQUFxQixFQUFFLE9BQW9CO1FBQzlELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xFLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQyxPQUFPLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNHO2FBQU07WUFDSCxPQUFPLFdBQVcsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsT0FBb0I7UUFDeEMsTUFBTSxXQUFXLEdBQUcsb0NBQW9DLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUNELHFCQUFxQixDQUFDLE9BQW9CO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRSB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IFBsYWl0TWluZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRFbW9qaXNSZWN0YW5nbGUgfSBmcm9tICcuLi9wbHVnaW5zL2Vtb2ppL2Vtb2ppJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWV4dGVuZC1taW5kJztcblxuY29uc3QgTm9kZURlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMyxcbiAgICAgICAgZW1vamlBbmRUZXh0OiBCQVNFICogMS41XG4gICAgfSxcbiAgICB2ZXJ0aWNhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwubm9kZUFuZFRleHQ7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xufTtcblxuY29uc3QgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuY29uc3QgZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGlzTWluZCA9IFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCk7XG4gICAgY29uc3Qgbm9kZUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG59O1xuXG5leHBvcnQgY29uc3QgTm9kZVNwYWNlID0ge1xuICAgIGdldE5vZGVXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBnZXRFbW9qaXNSZWN0YW5nbGUoYm9hcmQsIGVsZW1lbnQpLndpZHRoICsgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpICsgZWxlbWVudC53aWR0aCArIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIGVsZW1lbnQud2lkdGggKyBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldE5vZGVIZWlnaHQoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0VGV4dEhvcml6b250YWxTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBnZXRFbW9qaXNSZWN0YW5nbGUoYm9hcmQsIGVsZW1lbnQpLndpZHRoICsgZ2V0SG9yaXpvbnRhbFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRUZXh0VmVydGljYWxTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICB9LFxuICAgIGdldEVtb2ppSG9yaXpvbnRhbFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXRFbW9qaVZlcnRpY2FsU3BhY2UoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG4gICAgfVxufTtcbiJdfQ==
@@ -1,5 +1,11 @@
1
+ /**
2
+ * Processing of branch color, width, style, etc. of the mind node
3
+ */
4
+ import { isNullOrUndefined } from '@plait/core';
1
5
  import { MindElement } from '../../interfaces/element';
2
- import { COLORS } from '../../constants/node';
6
+ import { BRANCH_COLORS } from '../../constants/node-style';
7
+ import { BRANCH_WIDTH } from '../../constants/default';
8
+ import { DefaultAbstractNodeStyle } from '../../constants/node-style';
3
9
  export const getBranchColorByMindElement = (board, element) => {
4
10
  const ancestors = MindElement.getAncestors(board, element);
5
11
  ancestors.unshift(element);
@@ -11,18 +17,39 @@ export const getBranchColorByMindElement = (board, element) => {
11
17
  const branch = ancestors[ancestors.length - 2];
12
18
  if (branch) {
13
19
  const index = root.children.indexOf(branch);
14
- const length = COLORS.length;
20
+ const length = BRANCH_COLORS.length;
15
21
  const remainder = index % length;
16
- return COLORS[remainder];
22
+ return BRANCH_COLORS[remainder];
17
23
  }
18
24
  else {
19
25
  throw new Error('root element should not have branch color');
20
26
  }
21
27
  };
28
+ export const getBranchWidthByMindElement = (board, element) => {
29
+ const ancestors = MindElement.getAncestors(board, element);
30
+ ancestors.unshift(element);
31
+ const ancestor = ancestors.find(value => value.branchColor);
32
+ if (ancestor && ancestor.branchWidth) {
33
+ return ancestor.branchWidth;
34
+ }
35
+ return BRANCH_WIDTH;
36
+ };
37
+ export const getAbstractBranchWidth = (board, element) => {
38
+ if (!isNullOrUndefined(element.branchWidth)) {
39
+ return element.branchWidth;
40
+ }
41
+ return DefaultAbstractNodeStyle.branchWidth;
42
+ };
43
+ export const getAbstractBranchColor = (board, element) => {
44
+ if (element.branchColor) {
45
+ return element.branchColor;
46
+ }
47
+ return DefaultAbstractNodeStyle.branchColor;
48
+ };
22
49
  export const getNextBranchColor = (root) => {
23
50
  const index = root.children.length;
24
- const length = COLORS.length;
51
+ const length = BRANCH_COLORS.length;
25
52
  const remainder = index % length;
26
- return COLORS[remainder];
53
+ return BRANCH_COLORS[remainder];
27
54
  };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ25GLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBa0IsQ0FBQztJQUM1RSxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtRQUNsQyxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7S0FDL0I7SUFFRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUFJLE1BQU0sRUFBRTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUM1QjtTQUFNO1FBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0tBQ2hFO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUU7SUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QixNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvY2Vzc2luZyBvZiBicmFuY2ggY29sb3IsIHdpZHRoLCBzdHlsZSwgZXRjLiBvZiB0aGUgbWluZCBub2RlXG4gKi9cbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0Tm9kZSB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IENPTE9SUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlJztcblxuZXhwb3J0IGNvbnN0IGdldEJyYW5jaENvbG9yQnlNaW5kRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBhbmNlc3RvcnMgPSBNaW5kRWxlbWVudC5nZXRBbmNlc3RvcnMoYm9hcmQsIGVsZW1lbnQpIGFzIE1pbmRFbGVtZW50W107XG4gICAgYW5jZXN0b3JzLnVuc2hpZnQoZWxlbWVudCk7XG4gICAgY29uc3QgYW5jZXN0b3IgPSBhbmNlc3RvcnMuZmluZCh2YWx1ZSA9PiB2YWx1ZS5icmFuY2hDb2xvcik7XG4gICAgaWYgKGFuY2VzdG9yICYmIGFuY2VzdG9yLmJyYW5jaENvbG9yKSB7XG4gICAgICAgIHJldHVybiBhbmNlc3Rvci5icmFuY2hDb2xvcjtcbiAgICB9XG5cbiAgICBjb25zdCByb290ID0gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBicmFuY2ggPSBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDJdO1xuICAgIGlmIChicmFuY2gpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSByb290LmNoaWxkcmVuLmluZGV4T2YoYnJhbmNoKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gQ09MT1JTLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyID0gaW5kZXggJSBsZW5ndGg7XG4gICAgICAgIHJldHVybiBDT0xPUlNbcmVtYWluZGVyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Jvb3QgZWxlbWVudCBzaG91bGQgbm90IGhhdmUgYnJhbmNoIGNvbG9yJyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldE5leHRCcmFuY2hDb2xvciA9IChyb290OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgY29uc3QgbGVuZ3RoID0gQ09MT1JTLmxlbmd0aDtcbiAgICBjb25zdCByZW1haW5kZXIgPSBpbmRleCAlIGxlbmd0aDtcbiAgICByZXR1cm4gQ09MT1JTW3JlbWFpbmRlcl07XG59O1xuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS1zdHlsZS9icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUNuRixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQWtCLENBQUM7SUFDNUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDbEMsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDO0tBQy9CO0lBRUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxNQUFNLEVBQUU7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDakMsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbkM7U0FBTTtRQUNILE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztLQUNoRTtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDbkYsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFrQixDQUFDO0lBQzVFLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO1FBQ2xDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUMvQjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUN6QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDOUI7SUFDRCxPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQzlFLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRTtRQUNyQixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7S0FDOUI7SUFDRCxPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQWlCLEVBQUUsRUFBRTtJQUNwRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDakMsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9jZXNzaW5nIG9mIGJyYW5jaCBjb2xvciwgd2lkdGgsIHN0eWxlLCBldGMuIG9mIHRoZSBtaW5kIG5vZGVcbiAqL1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBCUkFOQ0hfQ09MT1JTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuaW1wb3J0IHsgQlJBTkNIX1dJRFRIIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0QnJhbmNoQ29sb3JCeU1pbmRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGFuY2VzdG9ycyA9IE1pbmRFbGVtZW50LmdldEFuY2VzdG9ycyhib2FyZCwgZWxlbWVudCkgYXMgTWluZEVsZW1lbnRbXTtcbiAgICBhbmNlc3RvcnMudW5zaGlmdChlbGVtZW50KTtcbiAgICBjb25zdCBhbmNlc3RvciA9IGFuY2VzdG9ycy5maW5kKHZhbHVlID0+IHZhbHVlLmJyYW5jaENvbG9yKTtcbiAgICBpZiAoYW5jZXN0b3IgJiYgYW5jZXN0b3IuYnJhbmNoQ29sb3IpIHtcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9yLmJyYW5jaENvbG9yO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGJyYW5jaCA9IGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMl07XG4gICAgaWYgKGJyYW5jaCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHJvb3QuY2hpbGRyZW4uaW5kZXhPZihicmFuY2gpO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBCUkFOQ0hfQ09MT1JTLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyID0gaW5kZXggJSBsZW5ndGg7XG4gICAgICAgIHJldHVybiBCUkFOQ0hfQ09MT1JTW3JlbWFpbmRlcl07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyb290IGVsZW1lbnQgc2hvdWxkIG5vdCBoYXZlIGJyYW5jaCBjb2xvcicpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCcmFuY2hXaWR0aEJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gTWluZEVsZW1lbnQuZ2V0QW5jZXN0b3JzKGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGFuY2VzdG9ycy51bnNoaWZ0KGVsZW1lbnQpO1xuICAgIGNvbnN0IGFuY2VzdG9yID0gYW5jZXN0b3JzLmZpbmQodmFsdWUgPT4gdmFsdWUuYnJhbmNoQ29sb3IpO1xuICAgIGlmIChhbmNlc3RvciAmJiBhbmNlc3Rvci5icmFuY2hXaWR0aCkge1xuICAgICAgICByZXR1cm4gYW5jZXN0b3IuYnJhbmNoV2lkdGg7XG4gICAgfVxuICAgIHJldHVybiBCUkFOQ0hfV0lEVEg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWJzdHJhY3RCcmFuY2hXaWR0aCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGVsZW1lbnQuYnJhbmNoV2lkdGgpKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmJyYW5jaFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gRGVmYXVsdEFic3RyYWN0Tm9kZVN0eWxlLmJyYW5jaFdpZHRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFic3RyYWN0QnJhbmNoQ29sb3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgaWYgKGVsZW1lbnQuYnJhbmNoQ29sb3IpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuYnJhbmNoQ29sb3I7XG4gICAgfVxuICAgIHJldHVybiBEZWZhdWx0QWJzdHJhY3ROb2RlU3R5bGUuYnJhbmNoQ29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TmV4dEJyYW5jaENvbG9yID0gKHJvb3Q6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSByb290LmNoaWxkcmVuLmxlbmd0aDtcbiAgICBjb25zdCBsZW5ndGggPSBCUkFOQ0hfQ09MT1JTLmxlbmd0aDtcbiAgICBjb25zdCByZW1haW5kZXIgPSBpbmRleCAlIGxlbmd0aDtcbiAgICByZXR1cm4gQlJBTkNIX0NPTE9SU1tyZW1haW5kZXJdO1xufTtcbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { MindElement } from '../../interfaces/element';
2
- import { COLORS, ROOT_NODE_STROKE } from '../../constants/node';
2
+ import { BRANCH_COLORS } from '../../constants/node-style';
3
+ import { DefaultRootStyle } from '../../constants/node-style';
3
4
  export const getStrokeByMindElement = (board, element) => {
4
5
  const ancestors = MindElement.getAncestors(board, element);
5
6
  ancestors.unshift(element);
@@ -11,12 +12,12 @@ export const getStrokeByMindElement = (board, element) => {
11
12
  const branch = ancestors[ancestors.length - 2];
12
13
  if (branch) {
13
14
  const index = root.children.indexOf(branch);
14
- const length = COLORS.length;
15
+ const length = BRANCH_COLORS.length;
15
16
  const remainder = index % length;
16
- return COLORS[remainder];
17
+ return BRANCH_COLORS[remainder];
17
18
  }
18
19
  else {
19
- return ROOT_NODE_STROKE;
20
+ return DefaultRootStyle.strokeColor;
20
21
  }
21
22
  };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUtc3R5bGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFrQixDQUFDO0lBQzVFLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO1FBQ2xDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUMvQjtJQUVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzVCO1NBQU07UUFDSCxPQUFPLGdCQUFnQixDQUFDO0tBQzNCO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IENPTE9SUywgUk9PVF9OT0RFX1NUUk9LRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlJztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gTWluZEVsZW1lbnQuZ2V0QW5jZXN0b3JzKGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGFuY2VzdG9ycy51bnNoaWZ0KGVsZW1lbnQpO1xuICAgIGNvbnN0IGFuY2VzdG9yID0gYW5jZXN0b3JzLmZpbmQodmFsdWUgPT4gdmFsdWUuc3Ryb2tlQ29sb3IpO1xuICAgIGlmIChhbmNlc3RvciAmJiBhbmNlc3Rvci5zdHJva2VDb2xvcikge1xuICAgICAgICByZXR1cm4gYW5jZXN0b3Iuc3Ryb2tlQ29sb3I7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYnJhbmNoID0gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAyXTtcbiAgICBpZiAoYnJhbmNoKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5pbmRleE9mKGJyYW5jaCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IENPTE9SUy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHJlbWFpbmRlciA9IGluZGV4ICUgbGVuZ3RoO1xuICAgICAgICByZXR1cm4gQ09MT1JTW3JlbWFpbmRlcl07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfTk9ERV9TVFJPS0U7XG4gICAgfVxufTtcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL25vZGUtc3R5bGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFvQixFQUFFLEVBQUU7SUFDOUUsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFrQixDQUFDO0lBQzVFLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO1FBQ2xDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQztLQUMvQjtJQUVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ25DO1NBQU07UUFDSCxPQUFPLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztLQUN2QztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBCUkFOQ0hfQ09MT1JTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL25vZGUtc3R5bGUnO1xuaW1wb3J0IHsgRGVmYXVsdFJvb3RTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ub2RlLXN0eWxlJztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZUJ5TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgYW5jZXN0b3JzID0gTWluZEVsZW1lbnQuZ2V0QW5jZXN0b3JzKGJvYXJkLCBlbGVtZW50KSBhcyBNaW5kRWxlbWVudFtdO1xuICAgIGFuY2VzdG9ycy51bnNoaWZ0KGVsZW1lbnQpO1xuICAgIGNvbnN0IGFuY2VzdG9yID0gYW5jZXN0b3JzLmZpbmQodmFsdWUgPT4gdmFsdWUuc3Ryb2tlQ29sb3IpO1xuICAgIGlmIChhbmNlc3RvciAmJiBhbmNlc3Rvci5zdHJva2VDb2xvcikge1xuICAgICAgICByZXR1cm4gYW5jZXN0b3Iuc3Ryb2tlQ29sb3I7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYnJhbmNoID0gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAyXTtcbiAgICBpZiAoYnJhbmNoKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcm9vdC5jaGlsZHJlbi5pbmRleE9mKGJyYW5jaCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IEJSQU5DSF9DT0xPUlMubGVuZ3RoO1xuICAgICAgICBjb25zdCByZW1haW5kZXIgPSBpbmRleCAlIGxlbmd0aDtcbiAgICAgICAgcmV0dXJuIEJSQU5DSF9DT0xPUlNbcmVtYWluZGVyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGVmYXVsdFJvb3RTdHlsZS5zdHJva2VDb2xvcjtcbiAgICB9XG59O1xuIl19
@@ -1,11 +1,12 @@
1
1
  import { PlaitBoard } from '@plait/core';
2
- import { AbstractNode } from '@plait/layouts';
2
+ import { getNonAbstractChildren } from '@plait/layouts';
3
3
  import { Path } from 'slate';
4
4
  export function findNewChildNodePath(board, element) {
5
- return PlaitBoard.findPath(board, element).concat((element.children || []).filter(child => !AbstractNode.isAbstract(child)).length);
5
+ const children = getNonAbstractChildren(element);
6
+ return PlaitBoard.findPath(board, element).concat(children.length);
6
7
  }
7
8
  export function findNewSiblingNodePath(board, element) {
8
9
  const path = PlaitBoard.findPath(board, element);
9
10
  return Path.next(path);
10
11
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0IsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWlCLEVBQUUsT0FBcUI7SUFDekUsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hJLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtJQUMzRSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Tm9kZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmV3Q2hpbGROb2RlUGF0aChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSB7XG4gICAgcmV0dXJuIFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpLmNvbmNhdCgoZWxlbWVudC5jaGlsZHJlbiB8fCBbXSkuZmlsdGVyKGNoaWxkID0+ICFBYnN0cmFjdE5vZGUuaXNBYnN0cmFjdChjaGlsZCkpLmxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmV3U2libGluZ05vZGVQYXRoKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpIHtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIFBhdGgubmV4dChwYXRoKTtcbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU3QixNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtJQUN6RSxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxLQUFpQixFQUFFLE9BQXFCO0lBQzNFLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0Tm9uQWJzdHJhY3RDaGlsZHJlbiB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IFBhdGggfSBmcm9tICdzbGF0ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kTmV3Q2hpbGROb2RlUGF0aChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBnZXROb25BYnN0cmFjdENoaWxkcmVuKGVsZW1lbnQpO1xuICAgIHJldHVybiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KS5jb25jYXQoY2hpbGRyZW4ubGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmROZXdTaWJsaW5nTm9kZVBhdGgoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkge1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICByZXR1cm4gUGF0aC5uZXh0KHBhdGgpO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { MindNodeShape } from '../constants';
1
+ import { MindElementShape } from '../interfaces';
2
2
  import { findParentElement } from './mind';
3
3
  export const getNodeShapeByElement = (element) => {
4
4
  let nodeShape = element.shape;
@@ -12,6 +12,6 @@ export const getNodeShapeByElement = (element) => {
12
12
  }
13
13
  parent = findParentElement(parent);
14
14
  }
15
- return MindNodeShape.roundRectangle;
15
+ return MindElementShape.roundRectangle;
16
16
  };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQW9CLEVBQWlCLEVBQUU7SUFDekUsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixJQUFJLFNBQVMsRUFBRTtRQUNYLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0lBQ0QsSUFBSSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEMsT0FBTyxNQUFNLEVBQUU7UUFDWCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDdkI7UUFDRCxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUM7QUFDeEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluZE5vZGVTaGFwZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZmluZFBhcmVudEVsZW1lbnQgfSBmcm9tICcuL21pbmQnO1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZVNoYXBlQnlFbGVtZW50ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogTWluZE5vZGVTaGFwZSA9PiB7XG4gICAgbGV0IG5vZGVTaGFwZSA9IGVsZW1lbnQuc2hhcGU7XG4gICAgaWYgKG5vZGVTaGFwZSkge1xuICAgICAgICByZXR1cm4gbm9kZVNoYXBlO1xuICAgIH1cbiAgICBsZXQgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG5cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQuc2hhcGUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQuc2hhcGU7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gZmluZFBhcmVudEVsZW1lbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIE1pbmROb2RlU2hhcGUucm91bmRSZWN0YW5nbGU7XG59O1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBb0IsRUFBb0IsRUFBRTtJQUM1RSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlCLElBQUksU0FBUyxFQUFFO1FBQ1gsT0FBTyxTQUFTLENBQUM7S0FDcEI7SUFDRCxJQUFJLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV4QyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNkLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN2QjtRQUNELE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0FBQzNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmRFbGVtZW50LCBNaW5kRWxlbWVudFNoYXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmaW5kUGFyZW50RWxlbWVudCB9IGZyb20gJy4vbWluZCc7XG5cbmV4cG9ydCBjb25zdCBnZXROb2RlU2hhcGVCeUVsZW1lbnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpOiBNaW5kRWxlbWVudFNoYXBlID0+IHtcbiAgICBsZXQgbm9kZVNoYXBlID0gZWxlbWVudC5zaGFwZTtcbiAgICBpZiAobm9kZVNoYXBlKSB7XG4gICAgICAgIHJldHVybiBub2RlU2hhcGU7XG4gICAgfVxuICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChlbGVtZW50KTtcblxuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKHBhcmVudC5zaGFwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5zaGFwZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBmaW5kUGFyZW50RWxlbWVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gTWluZEVsZW1lbnRTaGFwZS5yb3VuZFJlY3RhbmdsZTtcbn07XG4iXX0=