@plait/mind 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/base/image-base.component.d.ts +16 -0
  2. package/base/index.d.ts +1 -0
  3. package/drawer/node-image.drawer.d.ts +16 -0
  4. package/esm2020/base/image-base.component.mjs +28 -0
  5. package/esm2020/base/index.mjs +2 -1
  6. package/esm2020/drawer/node-image.drawer.mjs +61 -0
  7. package/esm2020/interfaces/element-data.mjs +1 -1
  8. package/esm2020/interfaces/element.mjs +9 -1
  9. package/esm2020/interfaces/options.mjs +1 -1
  10. package/esm2020/node.component.mjs +12 -1
  11. package/esm2020/plugins/with-mind-image.mjs +49 -0
  12. package/esm2020/plugins/with-mind.mjs +3 -2
  13. package/esm2020/transforms/emoji.mjs +2 -2
  14. package/esm2020/transforms/image.mjs +10 -0
  15. package/esm2020/transforms/index.mjs +4 -2
  16. package/esm2020/transforms/node.mjs +2 -6
  17. package/esm2020/utils/draw/node-dnd.mjs +8 -1
  18. package/esm2020/utils/mind.mjs +2 -2
  19. package/esm2020/utils/position/emoji.mjs +8 -8
  20. package/esm2020/utils/position/image.mjs +21 -0
  21. package/esm2020/utils/position/index.mjs +2 -1
  22. package/esm2020/utils/space/node-space.mjs +23 -5
  23. package/fesm2015/plait-mind.mjs +213 -16
  24. package/fesm2015/plait-mind.mjs.map +1 -1
  25. package/fesm2020/plait-mind.mjs +210 -16
  26. package/fesm2020/plait-mind.mjs.map +1 -1
  27. package/interfaces/element-data.d.ts +9 -0
  28. package/interfaces/element.d.ts +2 -1
  29. package/interfaces/options.d.ts +3 -1
  30. package/node.component.d.ts +3 -0
  31. package/package.json +1 -1
  32. package/plugins/with-mind-image.d.ts +2 -0
  33. package/transforms/image.d.ts +3 -0
  34. package/transforms/index.d.ts +1 -0
  35. package/utils/position/emoji.d.ts +4 -4
  36. package/utils/position/image.d.ts +6 -0
  37. package/utils/position/index.d.ts +1 -0
  38. package/utils/space/node-space.d.ts +1 -0
@@ -0,0 +1,10 @@
1
+ import { PlaitBoard, Transforms } from '@plait/core';
2
+ export const removeImage = (board, element) => {
3
+ const newElement = {
4
+ data: { ...element.data }
5
+ };
6
+ delete newElement.data.image;
7
+ const path = PlaitBoard.findPath(board, element);
8
+ Transforms.setNode(board, newElement, path);
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxFQUFFO0lBQzlFLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFO0tBQ2IsQ0FBQztJQUNqQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzdCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBUcmFuc2Zvcm1zIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhLCBNaW5kRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlSW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEltYWdlRGF0YT4pID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IC4uLmVsZW1lbnQuZGF0YSB9XG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBkZWxldGUgbmV3RWxlbWVudC5kYXRhLmltYWdlO1xuICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIG5ld0VsZW1lbnQsIHBhdGgpO1xufTtcbiJdfQ==
@@ -2,6 +2,7 @@ import { insertAbstract, setAbstractsByRefs, setAbstractByStandardLayout } from
2
2
  import { setLayout } from './layout';
3
3
  import { setTopic, setTopicSize, removeElements, insertNodes, insertAbstractNodes, setRightNodeCountByRefs } from './node';
4
4
  import { addEmoji, removeEmoji, replaceEmoji } from './emoji';
5
+ import { removeImage } from './image';
5
6
  export const MindTransforms = {
6
7
  setLayout,
7
8
  setTopic,
@@ -15,6 +16,7 @@ export const MindTransforms = {
15
16
  removeElements,
16
17
  insertNodes,
17
18
  insertAbstractNodes,
18
- setRightNodeCountByRefs
19
+ setRightNodeCountByRefs,
20
+ removeImage
19
21
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixTQUFTO0lBQ1QsUUFBUTtJQUNSLFlBQVk7SUFDWixRQUFRO0lBQ1IsV0FBVztJQUNYLFlBQVk7SUFDWixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2QsV0FBVztJQUNYLG1CQUFtQjtJQUNuQix1QkFBdUI7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc2VydEFic3RyYWN0LCBzZXRBYnN0cmFjdHNCeVJlZnMsIHNldEFic3RyYWN0QnlTdGFuZGFyZExheW91dCB9IGZyb20gJy4vYWJzdHJhY3Qtbm9kZSc7XG5pbXBvcnQgeyBzZXRMYXlvdXQgfSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQgeyBzZXRUb3BpYywgc2V0VG9waWNTaXplLCByZW1vdmVFbGVtZW50cywgaW5zZXJ0Tm9kZXMsIGluc2VydEFic3RyYWN0Tm9kZXMsIHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IGFkZEVtb2ppLCByZW1vdmVFbW9qaSwgcmVwbGFjZUVtb2ppIH0gZnJvbSAnLi9lbW9qaSc7XG5cbmV4cG9ydCBjb25zdCBNaW5kVHJhbnNmb3JtcyA9IHtcbiAgICBzZXRMYXlvdXQsXG4gICAgc2V0VG9waWMsXG4gICAgc2V0VG9waWNTaXplLFxuICAgIGFkZEVtb2ppLFxuICAgIHJlbW92ZUVtb2ppLFxuICAgIHJlcGxhY2VFbW9qaSxcbiAgICBpbnNlcnRBYnN0cmFjdCxcbiAgICBzZXRBYnN0cmFjdHNCeVJlZnMsXG4gICAgc2V0QWJzdHJhY3RCeVN0YW5kYXJkTGF5b3V0LFxuICAgIHJlbW92ZUVsZW1lbnRzLFxuICAgIGluc2VydE5vZGVzLFxuICAgIGluc2VydEFic3RyYWN0Tm9kZXMsXG4gICAgc2V0UmlnaHROb2RlQ291bnRCeVJlZnNcbn07XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy90cmFuc2Zvcm1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLFNBQVM7SUFDVCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFFBQVE7SUFDUixXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixXQUFXO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc2VydEFic3RyYWN0LCBzZXRBYnN0cmFjdHNCeVJlZnMsIHNldEFic3RyYWN0QnlTdGFuZGFyZExheW91dCB9IGZyb20gJy4vYWJzdHJhY3Qtbm9kZSc7XG5pbXBvcnQgeyBzZXRMYXlvdXQgfSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQgeyBzZXRUb3BpYywgc2V0VG9waWNTaXplLCByZW1vdmVFbGVtZW50cywgaW5zZXJ0Tm9kZXMsIGluc2VydEFic3RyYWN0Tm9kZXMsIHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IGFkZEVtb2ppLCByZW1vdmVFbW9qaSwgcmVwbGFjZUVtb2ppIH0gZnJvbSAnLi9lbW9qaSc7XG5pbXBvcnQgeyByZW1vdmVJbWFnZSB9IGZyb20gJy4vaW1hZ2UnO1xuXG5leHBvcnQgY29uc3QgTWluZFRyYW5zZm9ybXMgPSB7XG4gICAgc2V0TGF5b3V0LFxuICAgIHNldFRvcGljLFxuICAgIHNldFRvcGljU2l6ZSxcbiAgICBhZGRFbW9qaSxcbiAgICByZW1vdmVFbW9qaSxcbiAgICByZXBsYWNlRW1vamksXG4gICAgaW5zZXJ0QWJzdHJhY3QsXG4gICAgc2V0QWJzdHJhY3RzQnlSZWZzLFxuICAgIHNldEFic3RyYWN0QnlTdGFuZGFyZExheW91dCxcbiAgICByZW1vdmVFbGVtZW50cyxcbiAgICBpbnNlcnROb2RlcyxcbiAgICBpbnNlcnRBYnN0cmFjdE5vZGVzLFxuICAgIHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzLFxuICAgIHJlbW92ZUltYWdlXG59O1xuIl19
@@ -1,5 +1,4 @@
1
1
  import { Path } from 'slate';
2
- import { MindElement } from '../interfaces/element';
3
2
  import { NODE_MIN_WIDTH } from '../constants/node-rule';
4
3
  import { PlaitBoard, PlaitNode, Transforms } from '@plait/core';
5
4
  import { getFirstLevelElement } from '../utils/mind';
@@ -11,12 +10,9 @@ const normalizeWidthAndHeight = (board, width, height) => {
11
10
  };
12
11
  export const setTopic = (board, element, topic, width, height) => {
13
12
  const newElement = {
14
- data: { topic },
13
+ data: { ...element.data, topic },
15
14
  ...normalizeWidthAndHeight(board, width, height)
16
15
  };
17
- if (MindElement.hasEmojis(element)) {
18
- newElement.data.emojis = element.data.emojis;
19
- }
20
16
  const path = PlaitBoard.findPath(board, element);
21
17
  Transforms.setNode(board, newElement, path);
22
18
  };
@@ -71,4 +67,4 @@ export const setRightNodeCountByRefs = (board, refs) => {
71
67
  Transforms.setNode(board, { rightNodeCount: ref.rightNodeCount }, ref.path);
72
68
  });
73
69
  };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWUsZ0NBQWdDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RixNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDakYsTUFBTSxRQUFRLEdBQUcsS0FBSyxHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDN0csTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBRS9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQW9CLEVBQUUsS0FBYyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUMvRyxNQUFNLFVBQVUsR0FBRztRQUNmLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRTtRQUNmLEdB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Q0FBQyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTyxDQUFDLENBQUM7SUFDdEUsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzNDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLE9BQU87WUFDSCxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ2hCLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ25DLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxJQUF5QixFQUFFLEVBQUU7SUFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNmLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTk9ERV9NSU5fV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS1ydWxlJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0Tm9kZSwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGdldEZpcnN0TGV2ZWxFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvbWluZCc7XG5pbXBvcnQgeyBBYnN0cmFjdFJlZiwgZ2V0UmVsYXRpdmVTdGFydEVuZEJ5QWJzdHJhY3RSZWYgfSBmcm9tICcuLi91dGlscy9hYnN0cmFjdC9jb21tb24nO1xuaW1wb3J0IHsgUmlnaHROb2RlQ291bnRSZWYgfSBmcm9tICcuLi91dGlscy9ub2RlL3JpZ2h0LW5vZGUtY291bnQnO1xuXG5jb25zdCBub3JtYWxpemVXaWR0aEFuZEhlaWdodCA9IChib2FyZDogUGxhaXRCb2FyZCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdXaWR0aCA9IHdpZHRoIDwgTk9ERV9NSU5fV0lEVEggKiBib2FyZC52aWV3cG9ydC56b29tID8gTk9ERV9NSU5fV0lEVEggOiB3aWR0aCAvIGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgY29uc3QgbmV3SGVpZ2h0ID0gaGVpZ2h0IC8gYm9hcmQudmlld3BvcnQuem9vbTtcblxuICAgIHJldHVybiB7IHdpZHRoOiBuZXdXaWR0aCwgaGVpZ2h0OiBuZXdIZWlnaHQgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRUb3BpYyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQsIHRvcGljOiBFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIGRhdGE6IHsgdG9waWMgfSxcbiAgICAgICAgLi4ubm9ybWFsaXplV2lkdGhBbmRIZWlnaHQoYm9hcmQsIHdpZHRoLCBoZWlnaHQpXG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgIG5ld0VsZW1lbnQuZGF0YS5lbW9qaXMgPSBlbGVtZW50LmRhdGEuZW1vamlzO1xuICAgIH1cbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRUb3BpY1NpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIC4uLm5vcm1hbGl6ZVdpZHRoQW5kSGVpZ2h0KGJvYXJkLCB3aWR0aCwgaGVpZ2h0KVxuICAgIH07XG4gICAgaWYgKGVsZW1lbnQud2lkdGggIT09IG5ld0VsZW1lbnQud2lkdGggfHwgZWxlbWVudC5oZWlnaHQgIT09IG5ld0VsZW1lbnQuaGVpZ2h0KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgZGVsZXRhYmxlRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudChlbGVtZW50cyk7XG5cbiAgICBkZWxldGFibGVFbGVtZW50c1xuICAgICAgICAubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgcmVmID0gYm9hcmQucGF0aFJlZihwYXRoKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCByZWYuY3VycmVudCEpO1xuICAgICAgICAgICAgICAgIHJlZi51bnJlZigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICAgIGFjdGlvbigpO1xuICAgICAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnROb2RlcyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IE1pbmRFbGVtZW50W10sIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBwYXRoUmVmID0gYm9hcmQucGF0aFJlZihwYXRoKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAocGF0aFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIGVsZW1lbnQsIHBhdGhSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBwYXRoUmVmLnVucmVmKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QWJzdHJhY3ROb2RlcyA9IChib2FyZDogUGxhaXRCb2FyZCwgdmFsaWRBYnN0cmFjdFJlZnM6IEFic3RyYWN0UmVmW10sIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wYXJlbnQocGF0aCkpO1xuICAgIGNvbnN0IGFic3RyYWN0UGF0aCA9IFsuLi5QYXRoLnBhcmVudChwYXRoKSwgcGFyZW50LmNoaWxkcmVuPy5sZW5ndGghXTtcbiAgICBjb25zdCBhYnN0cmFjdHMgPSB2YWxpZEFic3RyYWN0UmVmcy5tYXAocmVmcyA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gZ2V0UmVsYXRpdmVTdGFydEVuZEJ5QWJzdHJhY3RSZWYocmVmcywgZWxlbWVudHMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVmcy5hYnN0cmFjdCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCArIHBhdGhbcGF0aC5sZW5ndGggLSAxXSxcbiAgICAgICAgICAgIGVuZDogZW5kICsgcGF0aFtwYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBpbnNlcnROb2Rlcyhib2FyZCwgYWJzdHJhY3RzLCBhYnN0cmFjdFBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZWZzOiBSaWdodE5vZGVDb3VudFJlZltdKSA9PiB7XG4gICAgcmVmcy5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyByaWdodE5vZGVDb3VudDogcmVmLnJpZ2h0Tm9kZUNvdW50IH0sIHJlZi5wYXRoKTtcbiAgICB9KTtcbn07XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3RyYW5zZm9ybXMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBZSxnQ0FBZ0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3pGLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUNqRixNQUFNLFFBQVEsR0FBRyxLQUFLLEdBQUcsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM3RyxNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFFL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBb0IsRUFBRSxLQUFjLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxFQUFFO0lBQy9HLE1BQU0sVUFBVSxHQUFHO1FBQ2YsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUNoQyxHQUFHLHVCQUF1QixDQUFDLEtB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RUFBRSxHQUFHLGdDQUFnQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RSxPQUFPO1lBQ0gsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUNoQixLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNuQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsSUFBeUIsRUFBRSxFQUFFO0lBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDZixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudCwgUGF0aCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE5PREVfTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtcnVsZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdE5vZGUsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRGaXJzdExldmVsRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL21pbmQnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWYsIGdldFJlbGF0aXZlU3RhcnRFbmRCeUFic3RyYWN0UmVmIH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QvY29tbW9uJztcbmltcG9ydCB7IFJpZ2h0Tm9kZUNvdW50UmVmIH0gZnJvbSAnLi4vdXRpbHMvbm9kZS9yaWdodC1ub2RlLWNvdW50JztcblxuY29uc3Qgbm9ybWFsaXplV2lkdGhBbmRIZWlnaHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmV3V2lkdGggPSB3aWR0aCA8IE5PREVfTUlOX1dJRFRIICogYm9hcmQudmlld3BvcnQuem9vbSA/IE5PREVfTUlOX1dJRFRIIDogd2lkdGggLyBib2FyZC52aWV3cG9ydC56b29tO1xuICAgIGNvbnN0IG5ld0hlaWdodCA9IGhlaWdodCAvIGJvYXJkLnZpZXdwb3J0Lnpvb207XG5cbiAgICByZXR1cm4geyB3aWR0aDogbmV3V2lkdGgsIGhlaWdodDogbmV3SGVpZ2h0IH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0VG9waWMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCB0b3BpYzogRWxlbWVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0ge1xuICAgICAgICBkYXRhOiB7IC4uLmVsZW1lbnQuZGF0YSwgdG9waWMgfSxcbiAgICAgICAgLi4ubm9ybWFsaXplV2lkdGhBbmRIZWlnaHQoYm9hcmQsIHdpZHRoLCBoZWlnaHQpXG4gICAgfSBhcyBNaW5kRWxlbWVudDtcbiAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRUb3BpY1NpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSB7XG4gICAgICAgIC4uLm5vcm1hbGl6ZVdpZHRoQW5kSGVpZ2h0KGJvYXJkLCB3aWR0aCwgaGVpZ2h0KVxuICAgIH07XG4gICAgaWYgKGVsZW1lbnQud2lkdGggIT09IG5ld0VsZW1lbnQud2lkdGggfHwgZWxlbWVudC5oZWlnaHQgIT09IG5ld0VsZW1lbnQuaGVpZ2h0KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgZGVsZXRhYmxlRWxlbWVudHMgPSBnZXRGaXJzdExldmVsRWxlbWVudChlbGVtZW50cyk7XG5cbiAgICBkZWxldGFibGVFbGVtZW50c1xuICAgICAgICAubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgcmVmID0gYm9hcmQucGF0aFJlZihwYXRoKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5yZW1vdmVOb2RlKGJvYXJkLCByZWYuY3VycmVudCEpO1xuICAgICAgICAgICAgICAgIHJlZi51bnJlZigpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICAgIGFjdGlvbigpO1xuICAgICAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnROb2RlcyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IE1pbmRFbGVtZW50W10sIHBhdGg6IFBhdGgpID0+IHtcbiAgICBjb25zdCBwYXRoUmVmID0gYm9hcmQucGF0aFJlZihwYXRoKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAocGF0aFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGUoYm9hcmQsIGVsZW1lbnQsIHBhdGhSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBwYXRoUmVmLnVucmVmKCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0QWJzdHJhY3ROb2RlcyA9IChib2FyZDogUGxhaXRCb2FyZCwgdmFsaWRBYnN0cmFjdFJlZnM6IEFic3RyYWN0UmVmW10sIGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdLCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wYXJlbnQocGF0aCkpO1xuICAgIGNvbnN0IGFic3RyYWN0UGF0aCA9IFsuLi5QYXRoLnBhcmVudChwYXRoKSwgcGFyZW50LmNoaWxkcmVuPy5sZW5ndGghXTtcbiAgICBjb25zdCBhYnN0cmFjdHMgPSB2YWxpZEFic3RyYWN0UmVmcy5tYXAocmVmcyA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gZ2V0UmVsYXRpdmVTdGFydEVuZEJ5QWJzdHJhY3RSZWYocmVmcywgZWxlbWVudHMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVmcy5hYnN0cmFjdCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCArIHBhdGhbcGF0aC5sZW5ndGggLSAxXSxcbiAgICAgICAgICAgIGVuZDogZW5kICsgcGF0aFtwYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBpbnNlcnROb2Rlcyhib2FyZCwgYWJzdHJhY3RzLCBhYnN0cmFjdFBhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFJpZ2h0Tm9kZUNvdW50QnlSZWZzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZWZzOiBSaWdodE5vZGVDb3VudFJlZltdKSA9PiB7XG4gICAgcmVmcy5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyByaWdodE5vZGVDb3VudDogcmVmLnJpZ2h0Tm9kZUNvdW50IH0sIHJlZi5wYXRoKTtcbiAgICB9KTtcbn07XG4iXX0=
@@ -11,6 +11,7 @@ import { getLayoutDirection, getPointByPlacement, moveXOfPoint, moveYOfPoint, tr
11
11
  import { hasPreviousOrNextOfDropPath } from '../dnd/common';
12
12
  import { drawLink } from './node-link/draw-link';
13
13
  import { getEmojiForeignRectangle } from '../position/emoji';
14
+ import { getImageForeignRectangle } from '../position';
14
15
  export const drawFakeDragNode = (board, element, offsetX, offsetY) => {
15
16
  const activeComponent = PlaitElement.getComponent(element);
16
17
  const dragFakeNodeG = createG();
@@ -34,6 +35,12 @@ export const drawFakeDragNode = (board, element, offsetX, offsetY) => {
34
35
  updateForeignObject(fakeEmojisG, foreignRectangle.width, foreignRectangle.height, foreignRectangle.x + offsetX, foreignRectangle.y + offsetY);
35
36
  dragFakeNodeG?.append(fakeEmojisG);
36
37
  }
38
+ if (MindElement.hasImage(element)) {
39
+ const fakeImageG = activeComponent.imageDrawer.g.cloneNode(true);
40
+ const foreignRectangle = getImageForeignRectangle(board, element);
41
+ updateForeignObject(fakeImageG, foreignRectangle.width, foreignRectangle.height, foreignRectangle.x + offsetX, foreignRectangle.y + offsetY);
42
+ dragFakeNodeG?.append(fakeImageG);
43
+ }
37
44
  return dragFakeNodeG;
38
45
  };
39
46
  export const drawFakeDropNode = (board, dropTarget, path) => {
@@ -149,4 +156,4 @@ export const drawFakeDropNode = (board, dropTarget, path) => {
149
156
  fakeDropNodeG?.appendChild(fakeRectangleG);
150
157
  return fakeDropNodeG;
151
158
  };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9kcmF3L25vZGUtZG5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxXQUFXLEVBQVksU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBUyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1C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QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEQsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUNyQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUM3QixRQUFTLENBQUMsQ0FBQyxFQUNYLFFBQVMsQ0FBQyxDQUFDLEVBQ1gsUUFBUyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQ25CLFFBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUNwQjtRQUNJLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLGFBQWE7UUFDbkIsU0FBUyxFQUFFLE9BQU87S0FDckIsQ0FDSixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0SCxhQUFhLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFM0MsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZHJhd1JvdW5kUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi9ub2RlLXNoYXBlJztcbmltcG9ydCB7IEJBU0UsIFBSSU1BUllfQ09MT1IsIFNUUk9LRV9XSURUSCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEZXRlY3RSZXN1bHQsIExheW91dERpcmVjdGlvbiwgTWluZEVsZW1lbnQsIE1pbmROb2RlLCBQbGFpdE1pbmQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi4vcG9zaXRpb24vbm9kZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgZHJhd1JvdW5kUmVjdGFuZ2xlLCBjcmVhdGVHLCBQYXRoLCBQbGFpdE5vZGUsIFBsYWl0RWxlbWVudCwgdXBkYXRlRm9yZWlnbk9iamVjdCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBpc0hvcml6b250YWxMYXlvdXQsIGlzSW5kZW50ZWRMYXlvdXQsIGlzU3RhbmRhcmRMYXlvdXQsIGlzVG9wTGF5b3V0LCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlIH0gZnJvbSAnLi4vcG9zaXRpb24vdG9waWMnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbFBsYWNlbWVudCwgUG9pbnRQbGFjZW1lbnQsIFZlcnRpY2FsUGxhY2VtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90eXBlcyc7XG5pbXBvcnQgeyBnZXRMYXlvdXREaXJlY3Rpb24sIGdldFBvaW50QnlQbGFjZW1lbnQsIG1vdmVYT2ZQb2ludCwgbW92ZVlPZlBvaW50LCB0cmFuc2Zvcm1QbGFjZW1lbnQgfSBmcm9tICcuLi9wb2ludC1wbGFjZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5pbXBvcnQgeyBoYXNQcmV2aW91c09yTmV4dE9mRHJvcFBhdGggfSBmcm9tICcuLi9kbmQvY29tbW9uJztcbmltcG9ydCB7IGRyYXdMaW5rIH0gZnJvbSAnLi9ub2RlLWxpbmsvZHJhdy1saW5rJztcbmltcG9ydCB7IGdldEVtb2ppRm9yZWlnblJlY3RhbmdsZSB9IGZyb20gJy4uL3Bvc2l0aW9uL2Vtb2ppJztcblxuZXhwb3J0IGNvbnN0IGRyYXdGYWtlRHJhZ05vZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50LCBvZmZzZXRYOiBudW1iZXIsIG9mZnNldFk6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgY29uc3QgZHJhZ0Zha2VOb2RlRyA9IGNyZWF0ZUcoKTtcbiAgICBkcmFnRmFrZU5vZGVHLmNsYXNzTGlzdC5hZGQoJ2RyYWdnaW5nJywgJ2Zha2Utbm9kZScsICdwbGFpdC1ib2FyZC1hdHRhY2hlZCcpO1xuXG4gICAgY29uc3QgZmFrZURyYWdnaW5nTm9kZTogTWluZE5vZGUgPSB7XG4gICAgICAgIC4uLmFjdGl2ZUNvbXBvbmVudC5ub2RlLFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHg6IGFjdGl2ZUNvbXBvbmVudC5ub2RlLnggKyBvZmZzZXRYLFxuICAgICAgICB5OiBhY3RpdmVDb21wb25lbnQubm9kZS55ICsgb2Zmc2V0WVxuICAgIH07XG4gICAgY29uc3QgdGV4dFJlY3RhbmdsZSA9IGdldFRvcGljUmVjdGFuZ2xlQnlOb2RlKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBhY3RpdmVDb21wb25lbnQubm9kZSk7XG4gICAgY29uc3QgZmFrZU5vZGVHID0gZHJhd1JvdW5kUmVjdGFuZ2xlQnlOb2RlKGJvYXJkLCBmYWtlRHJhZ2dpbmdOb2RlKTtcblxuICAgIGNvbnN0IHJpY2h0ZXh0RyA9IGFjdGl2ZUNvbXBvbmVudC50ZXh0TWFuYWdlLmcuY2xvbmVOb2RlKHRydWUpIGFzIFNWR0dFbGVtZW50O1xuICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QocmljaHRleHRHLCB0ZXh0UmVjdGFuZ2xlLndpZHRoLCB0ZXh0UmVjdGFuZ2xlLmhlaWdodCwgdGV4dFJlY3RhbmdsZS54ICsgb2Zmc2V0WCwgdGV4dFJlY3RhbmdsZS55ICsgb2Zmc2V0WSk7XG5cbiAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQoZmFrZU5vZGVHKTtcbiAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQocmljaHRleHRHKTtcblxuICAgIC8vIGRyYXcgZW1vamlzXG4gICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBmYWtlRW1vamlzRyA9IChhY3RpdmVDb21wb25lbnQubm9kZUVtb2ppc0RyYXdlci5nIGFzIFNWR0dFbGVtZW50KS5jbG9uZU5vZGUodHJ1ZSkgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB1cGRhdGVGb3JlaWduT2JqZWN0KFxuICAgICAgICAgICAgZmFrZUVtb2ppc0csXG4gICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS5oZWlnaHQsXG4gICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLnggKyBvZmZzZXRYLFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS55ICsgb2Zmc2V0WVxuICAgICAgICApO1xuICAgICAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQoZmFrZUVtb2ppc0cpO1xuICAgIH1cbiAgICByZXR1cm4gZHJhZ0Zha2VOb2RlRztcbn07XG5cbmV4cG9ydCBjb25zdCBkcmF3RmFrZURyb3BOb2RlID0gKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGRyb3BUYXJnZXQ6IHtcbiAgICAgICAgdGFyZ2V0OiBNaW5kRWxlbWVudDtcbiAgICAgICAgZGV0ZWN0UmVzdWx0OiBEZXRlY3RSZXN1bHQ7XG4gICAgfSxcbiAgICBwYXRoOiBQYXRoXG4pID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBkcm9wVGFyZ2V0LnRhcmdldDtcbiAgICBjb25zdCBmYWtlRHJvcE5vZGVHID0gY3JlYXRlRygpO1xuICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIFBhdGgucGFyZW50KHBhdGgpKSBhcyBNaW5kRWxlbWVudDtcbiAgICBjb25zdCBsYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQocGFyZW50KSBhcyBNaW5kTGF5b3V0VHlwZTtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxMYXlvdXQobGF5b3V0KTtcbiAgICBjb25zdCB7IGhhc05leHROb2RlLCBoYXNQcmV2aW91c05vZGUgfSA9IGhhc1ByZXZpb3VzT3JOZXh0T2ZEcm9wUGF0aChwYXJlbnQsIGRyb3BUYXJnZXQsIHBhdGgpO1xuXG4gICAgY29uc3Qgd2lkdGggPSAzMDtcbiAgICBjb25zdCBoZWlnaHQgPSAxMjtcbiAgICBsZXQgZmFrZU5vZGU6IE1pbmROb2RlLCBjZW50ZXJQb2ludDogUG9pbnQsIGJhc2ljTm9kZTogTWluZE5vZGUsIGxpbmtEaXJlY3Rpb246IExheW91dERpcmVjdGlvbjtcblxuICAgIGlmICghaGFzUHJldmlvdXNOb2RlICYmICFoYXNOZXh0Tm9kZSkge1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShwYXJlbnQpO1xuICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKHBhcmVudE5vZGUpO1xuXG4gICAgICAgIGxpbmtEaXJlY3Rpb24gPSBnZXRMYXlvdXREaXJlY3Rpb24ocGFyZW50Tm9kZSwgaXNIb3Jpem9udGFsKTtcbiAgICAgICAgYmFzaWNOb2RlID0gcGFyZW50Tm9kZTtcblxuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZCh0YXJnZXQpICYmIGlzU3RhbmRhcmRMYXlvdXQobGF5b3V0KSkge1xuICAgICAgICAgICAgaWYgKGRyb3BUYXJnZXQuZGV0ZWN0UmVzdWx0ID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICBsaW5rRGlyZWN0aW9uID0gTGF5b3V0RGlyZWN0aW9uLmxlZnQ7XG4gICAgICAgICAgICAgICAgYmFzaWNOb2RlLmxlZnQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsaW5rRGlyZWN0aW9uID0gTGF5b3V0RGlyZWN0aW9uLnJpZ2h0O1xuICAgICAgICAgICAgICAgIGJhc2ljTm9kZS5sZWZ0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQucmlnaHQsIFZlcnRpY2FsUGxhY2VtZW50Lm1pZGRsZV07XG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChwbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCBwYXJlbnRDZW50ZXJQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQocGFyZW50UmVjdCwgcGxhY2VtZW50KTtcblxuICAgICAgICBpZiAoaXNJbmRlbnRlZExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW1xuICAgICAgICAgICAgICAgIEhvcml6b250YWxQbGFjZW1lbnQuY2VudGVyLFxuICAgICAgICAgICAgICAgIGlzVG9wTGF5b3V0KGxheW91dCkgPyBWZXJ0aWNhbFBsYWNlbWVudC50b3AgOiBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b21cbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRDZW50ZXJQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQocGFyZW50UmVjdCwgcGxhY2VtZW50KTtcblxuICAgICAgICAgICAgY2VudGVyUG9pbnQgPSBtb3ZlWE9mUG9pbnQocGFyZW50Q2VudGVyUG9pbnQsIGhlaWdodCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgICAgICBjZW50ZXJQb2ludFsxXSA9IGlzVG9wTGF5b3V0KGxheW91dCkgPyBjZW50ZXJQb2ludFsxXSAtIGhlaWdodCA6IGNlbnRlclBvaW50WzFdICsgaGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2VudGVyUG9pbnQgPSBtb3ZlWE9mUG9pbnQocGFyZW50Q2VudGVyUG9pbnQsIHdpZHRoLCBsaW5rRGlyZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWhhc1ByZXZpb3VzTm9kZSAmJiBoYXNOZXh0Tm9kZSkge1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBiYXNpY05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKG5leHRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmV4dFJlY3QgPSBnZXRSZWN0YW5nbGVCeU5vZGUoYmFzaWNOb2RlKTtcbiAgICAgICAgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihiYXNpY05vZGUsIGlzSG9yaXpvbnRhbCk7XG5cbiAgICAgICAgY29uc3QgcGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQsIFZlcnRpY2FsUGxhY2VtZW50LnRvcF07XG5cbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KHBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgbGV0IG9mZnNldCA9IC1oZWlnaHQ7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc0luZGVudGVkTGF5b3V0KHBhcmVudCkpIHtcbiAgICAgICAgICAgIG9mZnNldCA9IGlzVG9wTGF5b3V0KGxheW91dCkgPyBvZmZzZXQgLyAyICsgYmFzaWNOb2RlLmhlaWdodCAtIGJhc2ljTm9kZS52R2FwIDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChuZXh0UmVjdCwgcGxhY2VtZW50KTtcbiAgICAgICAgY2VudGVyUG9pbnQgPSBtb3ZlWU9mUG9pbnQoY2VudGVyUG9pbnQsIG9mZnNldCwgbGlua0RpcmVjdGlvbik7XG4gICAgfSBlbHNlIGlmIChoYXNQcmV2aW91c05vZGUgJiYgIWhhc05leHROb2RlKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIFBhdGgucHJldmlvdXMocGF0aCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBiYXNpY05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHByZXZpb3VzRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmVjdCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShiYXNpY05vZGUpO1xuICAgICAgICBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKGJhc2ljTm9kZSwgaXNIb3Jpem9udGFsKTtcblxuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQubGVmdCwgVmVydGljYWxQbGFjZW1lbnQuYm90dG9tXTtcblxuICAgICAgICB0cmFuc2Zvcm1QbGFjZW1lbnQocGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcblxuICAgICAgICBsZXQgb2Zmc2V0ID0gaGVpZ2h0O1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaXNJbmRlbnRlZExheW91dChwYXJlbnQpKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSBpc1RvcExheW91dChsYXlvdXQpID8gLW9mZnNldCAtIChiYXNpY05vZGUuaGVpZ2h0IC0gYmFzaWNOb2RlLnZHYXApIDogb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGNlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwcmV2aW91c1JlY3QsIHBsYWNlbWVudCk7XG4gICAgICAgIGNlbnRlclBvaW50ID0gbW92ZVlPZlBvaW50KGNlbnRlclBvaW50LCBvZmZzZXQsIGxpbmtEaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRWxlbWVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIFBhdGgucHJldmlvdXMocGF0aCkpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICBiYXNpY05vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHByZXZpb3VzRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmVjdCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShiYXNpY05vZGUpO1xuXG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IG5leHROb2RlID0gTWluZEVsZW1lbnQuZ2V0Tm9kZShuZXh0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG5leHRSZWN0ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKG5leHROb2RlKTtcblxuICAgICAgICBjb25zdCBiZWdpblBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b21dO1xuICAgICAgICBjb25zdCBlbmRQbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQubGVmdCwgVmVydGljYWxQbGFjZW1lbnQudG9wXTtcbiAgICAgICAgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihiYXNpY05vZGUsIGlzSG9yaXpvbnRhbCk7XG5cbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KGJlZ2luUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KGVuZFBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQocHJldmlvdXNSZWN0LCBiZWdpblBsYWNlbWVudCk7XG4gICAgICAgIGNvbnN0IG5leHRQb2ludCA9IGdldFBvaW50QnlQbGFjZW1lbnQobmV4dFJlY3QsIGVuZFBsYWNlbWVudCk7XG5cbiAgICAgICAgY2VudGVyUG9pbnQgPSBbKHByZXZpb3VzUG9pbnRbMF0gKyBuZXh0UG9pbnRbMF0pIC8gMiwgKHByZXZpb3VzUG9pbnRbMV0gKyBuZXh0UG9pbnRbMV0pIC8gMl07XG4gICAgfVxuXG4gICAgbGV0IGNvcm5lclBvaW50ID0gY2VudGVyUG9pbnQsXG4gICAgICAgIG9wcG9zaXRlUG9pbnQgPSBjZW50ZXJQb2ludDtcblxuICAgIGNvbnN0IG9mZnNldFkgPSBpc0hvcml6b250YWwgPyBoZWlnaHQgOiB3aWR0aDtcbiAgICBjb25zdCBvZmZzZXRYID0gaXNIb3Jpem9udGFsID8gd2lkdGggOiBoZWlnaHQ7XG5cbiAgICBjb3JuZXJQb2ludCA9IG1vdmVZT2ZQb2ludChjb3JuZXJQb2ludCwgLW9mZnNldFkgLyAyLCBsaW5rRGlyZWN0aW9uISk7XG5cbiAgICBvcHBvc2l0ZVBvaW50ID0gbW92ZVlPZlBvaW50KG9wcG9zaXRlUG9pbnQsIG9mZnNldFkgLyAyLCBsaW5rRGlyZWN0aW9uISk7XG4gICAgb3Bwb3NpdGVQb2ludCA9IG1vdmVYT2ZQb2ludChvcHBvc2l0ZVBvaW50LCBvZmZzZXRYLCBsaW5rRGlyZWN0aW9uISk7XG5cbiAgICBjb25zdCB4ID0gTWF0aC5taW4oY29ybmVyUG9pbnRbMF0sIG9wcG9zaXRlUG9pbnRbMF0pO1xuICAgIGNvbnN0IHkgPSBNYXRoLm1pbihjb3JuZXJQb2ludFsxXSwgb3Bwb3NpdGVQb2ludFsxXSk7XG5cbiAgICBmYWtlTm9kZSA9IHtcbiAgICAgICAgLi4uYmFzaWNOb2RlISxcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgaEdhcDogTWluZEVsZW1lbnQuaXNJbmRlbnRlZExheW91dChwYXJlbnQpID8gQkFTRSAqIDQgKyAoYmFzaWNOb2RlLm9yaWdpbi5zdHJva2VXaWR0aCB8fCBTVFJPS0VfV0lEVEgpIDogMCxcbiAgICAgICAgdkdhcDogTWluZEVsZW1lbnQuaXNJbmRlbnRlZExheW91dChwYXJlbnQpID8gQkFTRSA6IDBcbiAgICB9O1xuXG4gICAgY29uc3QgZmFrZVJlY3RhbmdsZUcgPSBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgIFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLFxuICAgICAgICBmYWtlTm9kZSEueCxcbiAgICAgICAgZmFrZU5vZGUhLnksXG4gICAgICAgIGZha2VOb2RlIS54ICsgd2lkdGgsXG4gICAgICAgIGZha2VOb2RlIS55ICsgaGVpZ2h0LFxuICAgICAgICB7XG4gICAgICAgICAgICBzdHJva2U6IFBSSU1BUllfQ09MT1IsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogMixcbiAgICAgICAgICAgIGZpbGw6IFBSSU1BUllfQ09MT1IsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBsaW5rID0gZHJhd0xpbmsoYm9hcmQsIE1pbmRFbGVtZW50LmdldE5vZGUocGFyZW50KSwgZmFrZU5vZGUsIGlzSG9yaXpvbnRhbCwgZmFsc2UsIFBSSU1BUllfQ09MT1IsIFNUUk9LRV9XSURUSCk7XG4gICAgZmFrZURyb3BOb2RlRz8uYXBwZW5kQ2hpbGQobGluayk7XG4gICAgZmFrZURyb3BOb2RlRz8uYXBwZW5kQ2hpbGQoZmFrZVJlY3RhbmdsZUcpO1xuXG4gICAgcmV0dXJuIGZha2VEcm9wTm9kZUc7XG59O1xuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9kcmF3L25vZGUtZG5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxXQUFXLEVBQVksU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBUyxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1C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LFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxhQUFhLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTNDLE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRyYXdSb3VuZFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vbm9kZS1zaGFwZSc7XG5pbXBvcnQgeyBCQVNFLCBQUklNQVJZX0NPTE9SLCBTVFJPS0VfV0lEVEggfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGV0ZWN0UmVzdWx0LCBMYXlvdXREaXJlY3Rpb24sIE1pbmRFbGVtZW50LCBNaW5kTm9kZSwgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNaW5kTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL25vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3Bvc2l0aW9uL25vZGUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGRyYXdSb3VuZFJlY3RhbmdsZSwgY3JlYXRlRywgUGF0aCwgUGxhaXROb2RlLCBQbGFpdEVsZW1lbnQsIHVwZGF0ZUZvcmVpZ25PYmplY3QgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgaXNIb3Jpem9udGFsTGF5b3V0LCBpc0luZGVudGVkTGF5b3V0LCBpc1N0YW5kYXJkTGF5b3V0LCBpc1RvcExheW91dCwgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4uL3Bvc2l0aW9uL3RvcGljJztcbmltcG9ydCB7IEhvcml6b250YWxQbGFjZW1lbnQsIFBvaW50UGxhY2VtZW50LCBWZXJ0aWNhbFBsYWNlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TGF5b3V0RGlyZWN0aW9uLCBnZXRQb2ludEJ5UGxhY2VtZW50LCBtb3ZlWE9mUG9pbnQsIG1vdmVZT2ZQb2ludCwgdHJhbnNmb3JtUGxhY2VtZW50IH0gZnJvbSAnLi4vcG9pbnQtcGxhY2VtZW50JztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuaW1wb3J0IHsgaGFzUHJldmlvdXNPck5leHRPZkRyb3BQYXRoIH0gZnJvbSAnLi4vZG5kL2NvbW1vbic7XG5pbXBvcnQgeyBkcmF3TGluayB9IGZyb20gJy4vbm9kZS1saW5rL2RyYXctbGluayc7XG5pbXBvcnQgeyBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUgfSBmcm9tICcuLi9wb3NpdGlvbi9lbW9qaSc7XG5pbXBvcnQgeyBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUgfSBmcm9tICcuLi9wb3NpdGlvbic7XG5cbmV4cG9ydCBjb25zdCBkcmF3RmFrZURyYWdOb2RlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCwgb2Zmc2V0WDogbnVtYmVyLCBvZmZzZXRZOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBhY3RpdmVDb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgIGNvbnN0IGRyYWdGYWtlTm9kZUcgPSBjcmVhdGVHKCk7XG4gICAgZHJhZ0Zha2VOb2RlRy5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZycsICdmYWtlLW5vZGUnLCAncGxhaXQtYm9hcmQtYXR0YWNoZWQnKTtcblxuICAgIGNvbnN0IGZha2VEcmFnZ2luZ05vZGU6IE1pbmROb2RlID0ge1xuICAgICAgICAuLi5hY3RpdmVDb21wb25lbnQubm9kZSxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB4OiBhY3RpdmVDb21wb25lbnQubm9kZS54ICsgb2Zmc2V0WCxcbiAgICAgICAgeTogYWN0aXZlQ29tcG9uZW50Lm5vZGUueSArIG9mZnNldFlcbiAgICB9O1xuICAgIGNvbnN0IHRleHRSZWN0YW5nbGUgPSBnZXRUb3BpY1JlY3RhbmdsZUJ5Tm9kZShib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgYWN0aXZlQ29tcG9uZW50Lm5vZGUpO1xuICAgIGNvbnN0IGZha2VOb2RlRyA9IGRyYXdSb3VuZFJlY3RhbmdsZUJ5Tm9kZShib2FyZCwgZmFrZURyYWdnaW5nTm9kZSk7XG5cbiAgICBjb25zdCByaWNodGV4dEcgPSBhY3RpdmVDb21wb25lbnQudGV4dE1hbmFnZS5nLmNsb25lTm9kZSh0cnVlKSBhcyBTVkdHRWxlbWVudDtcbiAgICB1cGRhdGVGb3JlaWduT2JqZWN0KHJpY2h0ZXh0RywgdGV4dFJlY3RhbmdsZS53aWR0aCwgdGV4dFJlY3RhbmdsZS5oZWlnaHQsIHRleHRSZWN0YW5nbGUueCArIG9mZnNldFgsIHRleHRSZWN0YW5nbGUueSArIG9mZnNldFkpO1xuXG4gICAgZHJhZ0Zha2VOb2RlRz8uYXBwZW5kKGZha2VOb2RlRyk7XG4gICAgZHJhZ0Zha2VOb2RlRz8uYXBwZW5kKHJpY2h0ZXh0Ryk7XG5cbiAgICAvLyBkcmF3IGVtb2ppc1xuICAgIGlmIChNaW5kRWxlbWVudC5oYXNFbW9qaXMoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZmFrZUVtb2ppc0cgPSAoYWN0aXZlQ29tcG9uZW50Lm5vZGVFbW9qaXNEcmF3ZXIuZyBhcyBTVkdHRWxlbWVudCkuY2xvbmVOb2RlKHRydWUpIGFzIFNWR0dFbGVtZW50O1xuICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gZ2V0RW1vamlGb3JlaWduUmVjdGFuZ2xlKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgdXBkYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgICAgIGZha2VFbW9qaXNHLFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUuaGVpZ2h0LFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS54ICsgb2Zmc2V0WCxcbiAgICAgICAgICAgIGZvcmVpZ25SZWN0YW5nbGUueSArIG9mZnNldFlcbiAgICAgICAgKTtcbiAgICAgICAgZHJhZ0Zha2VOb2RlRz8uYXBwZW5kKGZha2VFbW9qaXNHKTtcbiAgICB9XG5cbiAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZmFrZUltYWdlRyA9IChhY3RpdmVDb21wb25lbnQuaW1hZ2VEcmF3ZXIuZyBhcyBTVkdHRWxlbWVudCkuY2xvbmVOb2RlKHRydWUpIGFzIFNWR0dFbGVtZW50O1xuICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKGJvYXJkIGFzIFBsYWl0TWluZEJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgdXBkYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgICAgIGZha2VJbWFnZUcsXG4gICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS5oZWlnaHQsXG4gICAgICAgICAgICBmb3JlaWduUmVjdGFuZ2xlLnggKyBvZmZzZXRYLFxuICAgICAgICAgICAgZm9yZWlnblJlY3RhbmdsZS55ICsgb2Zmc2V0WVxuICAgICAgICApO1xuICAgICAgICBkcmFnRmFrZU5vZGVHPy5hcHBlbmQoZmFrZUltYWdlRyk7XG4gICAgfVxuICAgIHJldHVybiBkcmFnRmFrZU5vZGVHO1xufTtcblxuZXhwb3J0IGNvbnN0IGRyYXdGYWtlRHJvcE5vZGUgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZHJvcFRhcmdldDoge1xuICAgICAgICB0YXJnZXQ6IE1pbmRFbGVtZW50O1xuICAgICAgICBkZXRlY3RSZXN1bHQ6IERldGVjdFJlc3VsdDtcbiAgICB9LFxuICAgIHBhdGg6IFBhdGhcbikgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGRyb3BUYXJnZXQudGFyZ2V0O1xuICAgIGNvbnN0IGZha2VEcm9wTm9kZUcgPSBjcmVhdGVHKCk7XG4gICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wYXJlbnQocGF0aCkpIGFzIE1pbmRFbGVtZW50O1xuICAgIGNvbnN0IGxheW91dCA9IE1pbmRRdWVyaWVzLmdldExheW91dEJ5RWxlbWVudChwYXJlbnQpIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IGlzSG9yaXpvbnRhbExheW91dChsYXlvdXQpO1xuICAgIGNvbnN0IHsgaGFzTmV4dE5vZGUsIGhhc1ByZXZpb3VzTm9kZSB9ID0gaGFzUHJldmlvdXNPck5leHRPZkRyb3BQYXRoKHBhcmVudCwgZHJvcFRhcmdldCwgcGF0aCk7XG5cbiAgICBjb25zdCB3aWR0aCA9IDMwO1xuICAgIGNvbnN0IGhlaWdodCA9IDEyO1xuICAgIGxldCBmYWtlTm9kZTogTWluZE5vZGUsIGNlbnRlclBvaW50OiBQb2ludCwgYmFzaWNOb2RlOiBNaW5kTm9kZSwgbGlua0RpcmVjdGlvbjogTGF5b3V0RGlyZWN0aW9uO1xuXG4gICAgaWYgKCFoYXNQcmV2aW91c05vZGUgJiYgIWhhc05leHROb2RlKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudFJlY3QgPSBnZXRSZWN0YW5nbGVCeU5vZGUocGFyZW50Tm9kZSk7XG5cbiAgICAgICAgbGlua0RpcmVjdGlvbiA9IGdldExheW91dERpcmVjdGlvbihwYXJlbnROb2RlLCBpc0hvcml6b250YWwpO1xuICAgICAgICBiYXNpY05vZGUgPSBwYXJlbnROb2RlO1xuXG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKHRhcmdldCkgJiYgaXNTdGFuZGFyZExheW91dChsYXlvdXQpKSB7XG4gICAgICAgICAgICBpZiAoZHJvcFRhcmdldC5kZXRlY3RSZXN1bHQgPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIGxpbmtEaXJlY3Rpb24gPSBMYXlvdXREaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgICAgICAgICBiYXNpY05vZGUubGVmdCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpbmtEaXJlY3Rpb24gPSBMYXlvdXREaXJlY3Rpb24ucmlnaHQ7XG4gICAgICAgICAgICAgICAgYmFzaWNOb2RlLmxlZnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5yaWdodCwgVmVydGljYWxQbGFjZW1lbnQubWlkZGxlXTtcbiAgICAgICAgdHJhbnNmb3JtUGxhY2VtZW50KHBsYWNlbWVudCwgbGlua0RpcmVjdGlvbik7XG4gICAgICAgIGNvbnN0IHBhcmVudENlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwYXJlbnRSZWN0LCBwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChpc0luZGVudGVkTGF5b3V0KGxheW91dCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbXG4gICAgICAgICAgICAgICAgSG9yaXpvbnRhbFBsYWNlbWVudC5jZW50ZXIsXG4gICAgICAgICAgICAgICAgaXNUb3BMYXlvdXQobGF5b3V0KSA/IFZlcnRpY2FsUGxhY2VtZW50LnRvcCA6IFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudENlbnRlclBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwYXJlbnRSZWN0LCBwbGFjZW1lbnQpO1xuXG4gICAgICAgICAgICBjZW50ZXJQb2ludCA9IG1vdmVYT2ZQb2ludChwYXJlbnRDZW50ZXJQb2ludCwgaGVpZ2h0LCBsaW5rRGlyZWN0aW9uKTtcbiAgICAgICAgICAgIGNlbnRlclBvaW50WzFdID0gaXNUb3BMYXlvdXQobGF5b3V0KSA/IGNlbnRlclBvaW50WzFdIC0gaGVpZ2h0IDogY2VudGVyUG9pbnRbMV0gKyBoZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZW50ZXJQb2ludCA9IG1vdmVYT2ZQb2ludChwYXJlbnRDZW50ZXJQb2ludCwgd2lkdGgsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICghaGFzUHJldmlvdXNOb2RlICYmIGhhc05leHROb2RlKSB7XG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIGJhc2ljTm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUobmV4dEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZXh0UmVjdCA9IGdldFJlY3RhbmdsZUJ5Tm9kZShiYXNpY05vZGUpO1xuICAgICAgICBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKGJhc2ljTm9kZSwgaXNIb3Jpem9udGFsKTtcblxuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFBvaW50UGxhY2VtZW50ID0gW0hvcml6b250YWxQbGFjZW1lbnQubGVmdCwgVmVydGljYWxQbGFjZW1lbnQudG9wXTtcblxuICAgICAgICB0cmFuc2Zvcm1QbGFjZW1lbnQocGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcblxuICAgICAgICBsZXQgb2Zmc2V0ID0gLWhlaWdodDtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50LmlzSW5kZW50ZWRMYXlvdXQocGFyZW50KSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gaXNUb3BMYXlvdXQobGF5b3V0KSA/IG9mZnNldCAvIDIgKyBiYXNpY05vZGUuaGVpZ2h0IC0gYmFzaWNOb2RlLnZHYXAgOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KG5leHRSZWN0LCBwbGFjZW1lbnQpO1xuICAgICAgICBjZW50ZXJQb2ludCA9IG1vdmVZT2ZQb2ludChjZW50ZXJQb2ludCwgb2Zmc2V0LCBsaW5rRGlyZWN0aW9uKTtcbiAgICB9IGVsc2UgaWYgKGhhc1ByZXZpb3VzTm9kZSAmJiAhaGFzTmV4dE5vZGUpIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wcmV2aW91cyhwYXRoKSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIGJhc2ljTm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUocHJldmlvdXNFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSZWN0ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKGJhc2ljTm9kZSk7XG4gICAgICAgIGxpbmtEaXJlY3Rpb24gPSBnZXRMYXlvdXREaXJlY3Rpb24oYmFzaWNOb2RlLCBpc0hvcml6b250YWwpO1xuXG4gICAgICAgIGNvbnN0IHBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC5ib3R0b21dO1xuXG4gICAgICAgIHRyYW5zZm9ybVBsYWNlbWVudChwbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuXG4gICAgICAgIGxldCBvZmZzZXQgPSBoZWlnaHQ7XG4gICAgICAgIGlmIChNaW5kRWxlbWVudC5pc0luZGVudGVkTGF5b3V0KHBhcmVudCkpIHtcbiAgICAgICAgICAgIG9mZnNldCA9IGlzVG9wTGF5b3V0KGxheW91dCkgPyAtb2Zmc2V0IC0gKGJhc2ljTm9kZS5oZWlnaHQgLSBiYXNpY05vZGUudkdhcCkgOiBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgY2VudGVyUG9pbnQgPSBnZXRQb2ludEJ5UGxhY2VtZW50KHByZXZpb3VzUmVjdCwgcGxhY2VtZW50KTtcbiAgICAgICAgY2VudGVyUG9pbnQgPSBtb3ZlWU9mUG9pbnQoY2VudGVyUG9pbnQsIG9mZnNldCwgbGlua0RpcmVjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNFbGVtZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wcmV2aW91cyhwYXRoKSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIGJhc2ljTm9kZSA9IE1pbmRFbGVtZW50LmdldE5vZGUocHJldmlvdXNFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNSZWN0ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKGJhc2ljTm9kZSk7XG5cbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgY29uc3QgbmV4dE5vZGUgPSBNaW5kRWxlbWVudC5nZXROb2RlKG5leHRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbmV4dFJlY3QgPSBnZXRSZWN0YW5nbGVCeU5vZGUobmV4dE5vZGUpO1xuXG4gICAgICAgIGNvbnN0IGJlZ2luUGxhY2VtZW50OiBQb2ludFBsYWNlbWVudCA9IFtIb3Jpem9udGFsUGxhY2VtZW50LmxlZnQsIFZlcnRpY2FsUGxhY2VtZW50LmJvdHRvbV07XG4gICAgICAgIGNvbnN0IGVuZFBsYWNlbWVudDogUG9pbnRQbGFjZW1lbnQgPSBbSG9yaXpvbnRhbFBsYWNlbWVudC5sZWZ0LCBWZXJ0aWNhbFBsYWNlbWVudC50b3BdO1xuICAgICAgICBsaW5rRGlyZWN0aW9uID0gZ2V0TGF5b3V0RGlyZWN0aW9uKGJhc2ljTm9kZSwgaXNIb3Jpem9udGFsKTtcblxuICAgICAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoYmVnaW5QbGFjZW1lbnQsIGxpbmtEaXJlY3Rpb24pO1xuICAgICAgICB0cmFuc2Zvcm1QbGFjZW1lbnQoZW5kUGxhY2VtZW50LCBsaW5rRGlyZWN0aW9uKTtcblxuICAgICAgICBjb25zdCBwcmV2aW91c1BvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChwcmV2aW91c1JlY3QsIGJlZ2luUGxhY2VtZW50KTtcbiAgICAgICAgY29uc3QgbmV4dFBvaW50ID0gZ2V0UG9pbnRCeVBsYWNlbWVudChuZXh0UmVjdCwgZW5kUGxhY2VtZW50KTtcblxuICAgICAgICBjZW50ZXJQb2ludCA9IFsocHJldmlvdXNQb2ludFswXSArIG5leHRQb2ludFswXSkgLyAyLCAocHJldmlvdXNQb2ludFsxXSArIG5leHRQb2ludFsxXSkgLyAyXTtcbiAgICB9XG5cbiAgICBsZXQgY29ybmVyUG9pbnQgPSBjZW50ZXJQb2ludCxcbiAgICAgICAgb3Bwb3NpdGVQb2ludCA9IGNlbnRlclBvaW50O1xuXG4gICAgY29uc3Qgb2Zmc2V0WSA9IGlzSG9yaXpvbnRhbCA/IGhlaWdodCA6IHdpZHRoO1xuICAgIGNvbnN0IG9mZnNldFggPSBpc0hvcml6b250YWwgPyB3aWR0aCA6IGhlaWdodDtcblxuICAgIGNvcm5lclBvaW50ID0gbW92ZVlPZlBvaW50KGNvcm5lclBvaW50LCAtb2Zmc2V0WSAvIDIsIGxpbmtEaXJlY3Rpb24hKTtcblxuICAgIG9wcG9zaXRlUG9pbnQgPSBtb3ZlWU9mUG9pbnQob3Bwb3NpdGVQb2ludCwgb2Zmc2V0WSAvIDIsIGxpbmtEaXJlY3Rpb24hKTtcbiAgICBvcHBvc2l0ZVBvaW50ID0gbW92ZVhPZlBvaW50KG9wcG9zaXRlUG9pbnQsIG9mZnNldFgsIGxpbmtEaXJlY3Rpb24hKTtcblxuICAgIGNvbnN0IHggPSBNYXRoLm1pbihjb3JuZXJQb2ludFswXSwgb3Bwb3NpdGVQb2ludFswXSk7XG4gICAgY29uc3QgeSA9IE1hdGgubWluKGNvcm5lclBvaW50WzFdLCBvcHBvc2l0ZVBvaW50WzFdKTtcblxuICAgIGZha2VOb2RlID0ge1xuICAgICAgICAuLi5iYXNpY05vZGUhLFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBoR2FwOiBNaW5kRWxlbWVudC5pc0luZGVudGVkTGF5b3V0KHBhcmVudCkgPyBCQVNFICogNCArIChiYXNpY05vZGUub3JpZ2luLnN0cm9rZVdpZHRoIHx8IFNUUk9LRV9XSURUSCkgOiAwLFxuICAgICAgICB2R2FwOiBNaW5kRWxlbWVudC5pc0luZGVudGVkTGF5b3V0KHBhcmVudCkgPyBCQVNFIDogMFxuICAgIH07XG5cbiAgICBjb25zdCBmYWtlUmVjdGFuZ2xlRyA9IGRyYXdSb3VuZFJlY3RhbmdsZShcbiAgICAgICAgUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCksXG4gICAgICAgIGZha2VOb2RlIS54LFxuICAgICAgICBmYWtlTm9kZSEueSxcbiAgICAgICAgZmFrZU5vZGUhLnggKyB3aWR0aCxcbiAgICAgICAgZmFrZU5vZGUhLnkgKyBoZWlnaHQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHN0cm9rZTogUFJJTUFSWV9DT0xPUixcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgICAgICAgICAgZmlsbDogUFJJTUFSWV9DT0xPUixcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IGxpbmsgPSBkcmF3TGluayhib2FyZCwgTWluZEVsZW1lbnQuZ2V0Tm9kZShwYXJlbnQpLCBmYWtlTm9kZSwgaXNIb3Jpem9udGFsLCBmYWxzZSwgUFJJTUFSWV9DT0xPUiwgU1RST0tFX1dJRFRIKTtcbiAgICBmYWtlRHJvcE5vZGVHPy5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBmYWtlRHJvcE5vZGVHPy5hcHBlbmRDaGlsZChmYWtlUmVjdGFuZ2xlRyk7XG5cbiAgICByZXR1cm4gZmFrZURyb3BOb2RlRztcbn07XG4iXX0=
@@ -51,7 +51,7 @@ export const copyNewNode = (node) => {
51
51
  export const extractNodesText = (node) => {
52
52
  let str = '';
53
53
  if (node) {
54
- str += Node.string(node.data.topic.children[0]) + ' ';
54
+ str += Node.string(node.data.topic) + ' ';
55
55
  for (const childNode of node.children) {
56
56
  str += extractNodesText(childNode);
57
57
  }
@@ -97,4 +97,4 @@ export const divideElementByParent = (elements) => {
97
97
  }
98
98
  return { parentElements, abstractIncludedGroups };
99
99
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBb0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFHakcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDckQsTUFBTSxLQUFLLEdBQVcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFTLEVBQUUsQ0FBYyxFQUFFLEVBQUU7UUFDeEUsT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ04sT0FBTyxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBbUIsRUFBRSxLQUFrQixFQUFFLEVBQUU7SUFDdEUsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtJQUM1RCxJQUFJLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQy9CLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQyxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBYyxFQUFFLEtBQWUsRUFBRSxFQUFFO0lBQzVELE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFlLEVBQUUsRUFBRTtJQUN6RCxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFpQixFQUFFLEVBQUU7SUFDN0MsTUFBTSxPQUFPLEdBQWdCLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXRCLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNqRDtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBaUIsRUFBRSxFQUFFO0lBQ2xELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNiLElBQUksSUFBSSxFQUFFO1FBQ04sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3RELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQyxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7S0FDSjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQXdCLEVBQUUsSUFBVSxFQUFFLEVBQUU7SUFDekYsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztJQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNyQixzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsT0FBZSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUN6QjtJQUVELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdkYsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ1osU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUU7SUFDN0MsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxRQUF1QixFQUFFLEVBQUU7SUFDN0QsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7SUFDbEMsTUFBTSxjQUFjLEdBQWtCLEVBQUUsQ0FBQztJQUV6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDcEIsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO2FBQU07WUFDSCxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7S0FDSjtJQUNELE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRTZWxlY3RlZEVsZW1lbnQsIGNsZWFyU2VsZWN0ZWRFbGVtZW50LCBpZENyZWF0b3IsIFBhdGgsIFBsYWl0Qm9hcmQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgTk9ERV9NSU5fV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMvbm9kZS1ydWxlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFRFWFRfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBlZGl0VG9waWMgfSBmcm9tICcuL25vZGUvY29tbW9uJztcbmltcG9ydCB7IGNyZWF0ZU1pbmRFbGVtZW50LCBJTkhFUklUX0FUVFJJQlVURV9LRVlTLCBJbmhlcml0QXR0cmlidXRlIH0gZnJvbSAnLi9ub2RlL2NyZWF0ZS1ub2RlJztcbmltcG9ydCB7IE1pbmROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcblxuZXhwb3J0IGNvbnN0IGdldENoaWxkcmVuQ291bnQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gZWxlbWVudC5jaGlsZHJlbi5yZWR1Y2UoKHA6IG51bWJlciwgYzogTWluZEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHAgKyBnZXRDaGlsZHJlbkNvdW50KGMpO1xuICAgIH0sIDApO1xuICAgIHJldHVybiBjb3VudCArIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRFbGVtZW50ID0gKG9yaWdpbjogTWluZEVsZW1lbnQsIGNoaWxkOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGxldCBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KGNoaWxkKTtcbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG9yaWdpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gTWluZEVsZW1lbnQuZmluZFBhcmVudChwYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RMZXZlbEVsZW1lbnQgPSAoZWxlbWVudHM6IE1pbmRFbGVtZW50W10pID0+IHtcbiAgICBsZXQgcmVzdWx0OiBNaW5kRWxlbWVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgaXNDaGlsZCA9IGVsZW1lbnRzLnNvbWUobm9kZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNDaGlsZEVsZW1lbnQobm9kZSwgZWxlbWVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaXNDaGlsZCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzQ2hpbGRSaWdodCA9IChub2RlOiBNaW5kTm9kZSwgY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgcmV0dXJuIG5vZGUueCA8IGNoaWxkLng7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFVwID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS55ID4gY2hpbGQueTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5TmV3Tm9kZSA9IChub2RlOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IE1pbmRFbGVtZW50ID0geyAuLi5ub2RlIH07XG4gICAgbmV3Tm9kZS5pZCA9IGlkQ3JlYXRvcigpO1xuICAgIG5ld05vZGUuY2hpbGRyZW4gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbmV3Tm9kZS5jaGlsZHJlbi5wdXNoKGNvcHlOZXdOb2RlKGNoaWxkTm9kZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0Tm9kZXNUZXh0ID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHN0ciA9ICcnO1xuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHN0ciArPSBOb2RlLnN0cmluZyhub2RlLmRhdGEudG9waWMuY2hpbGRyZW5bMF0pICsgJyAnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBzdHIgKz0gZXh0cmFjdE5vZGVzVGV4dChjaGlsZE5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0TWluZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGluaGVyaXROb2RlOiBNaW5kRWxlbWVudCwgcGF0aDogUGF0aCkgPT4ge1xuICAgIGNvbnN0IG5ld05vZGU6IEluaGVyaXRBdHRyaWJ1dGUgPSB7fTtcbiAgICBpZiAoIWluaGVyaXROb2RlLmlzUm9vdCkge1xuICAgICAgICBJTkhFUklUX0FUVFJJQlVURV9LRVlTLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICAgICAgICAobmV3Tm9kZSBhcyBhbnkpW2F0dHJdID0gaW5oZXJpdE5vZGVbYXR0cl07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlbGV0ZSBuZXdOb2RlLmxheW91dDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdFbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQoJycsIE5PREVfTUlOX1dJRFRILCBURVhUX0RFRkFVTFRfSEVJR0hULCBuZXdOb2RlKTtcblxuICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgbmV3RWxlbWVudCwgcGF0aCk7XG4gICAgY2xlYXJTZWxlY3RlZEVsZW1lbnQoYm9hcmQpO1xuICAgIGFkZFNlbGVjdGVkRWxlbWVudChib2FyZCwgbmV3RWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRUb3BpYyhuZXdFbGVtZW50KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdENoaWxkID0gKGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIGxldCByZXN1bHQgPSBjaGlsZDtcbiAgICB3aGlsZSAocmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuY2hpbGRyZW5bcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRpdmlkZUVsZW1lbnRCeVBhcmVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0SW5jbHVkZWRHcm91cHMgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50czogTWluZEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudHNbaV0pO1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IHBhcmVudEVsZW1lbnRzLmluZGV4T2YocGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudHMucHVzaChwYXJlbnQpO1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwcy5wdXNoKFtlbGVtZW50c1tpXV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWJzdHJhY3RJbmNsdWRlZEdyb3Vwc1twYXJlbnRJbmRleF0ucHVzaChlbGVtZW50c1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgcGFyZW50RWxlbWVudHMsIGFic3RyYWN0SW5jbHVkZWRHcm91cHMgfTtcbn07XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL21pbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBb0IsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQW9CLE1BQU0sb0JBQW9CLENBQUM7QUFHakcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDckQsTUFBTSxLQUFLLEdBQVcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFTLEVBQUUsQ0FBYyxFQUFFLEVBQUU7UUFDeEUsT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ04sT0FBTyxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBbUIsRUFBRSxLQUFrQixFQUFFLEVBQUU7SUFDdEUsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxPQUFPLE1BQU0sRUFBRTtRQUNYLElBQUks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QUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNILHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtLQUNKO0lBQ0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFNlbGVjdGVkRWxlbWVudCwgY2xlYXJTZWxlY3RlZEVsZW1lbnQsIGlkQ3JlYXRvciwgUGF0aCwgUGxhaXRCb2FyZCwgVHJhbnNmb3JtcyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBOT0RFX01JTl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXJ1bGUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IGVkaXRUb3BpYyB9IGZyb20gJy4vbm9kZS9jb21tb24nO1xuaW1wb3J0IHsgY3JlYXRlTWluZEVsZW1lbnQsIElOSEVSSVRfQVRUUklCVVRFX0tFWVMsIEluaGVyaXRBdHRyaWJ1dGUgfSBmcm9tICcuL25vZGUvY3JlYXRlLW5vZGUnO1xuaW1wb3J0IHsgTWluZE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hpbGRyZW5Db3VudCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGNvdW50OiBudW1iZXIgPSBlbGVtZW50LmNoaWxkcmVuLnJlZHVjZSgocDogbnVtYmVyLCBjOiBNaW5kRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gcCArIGdldENoaWxkcmVuQ291bnQoYyk7XG4gICAgfSwgMCk7XG4gICAgcmV0dXJuIGNvdW50ICsgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZEVsZW1lbnQgPSAob3JpZ2luOiBNaW5kRWxlbWVudCwgY2hpbGQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgbGV0IHBhcmVudCA9IE1pbmRFbGVtZW50LmZpbmRQYXJlbnQoY2hpbGQpO1xuICAgIHdoaWxlIChwYXJlbnQpIHtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gb3JpZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnQgPSBNaW5kRWxlbWVudC5maW5kUGFyZW50KHBhcmVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdExldmVsRWxlbWVudCA9IChlbGVtZW50czogTWluZEVsZW1lbnRbXSkgPT4ge1xuICAgIGxldCByZXN1bHQ6IE1pbmRFbGVtZW50W10gPSBbXTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBpc0NoaWxkID0gZWxlbWVudHMuc29tZShub2RlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpc0NoaWxkRWxlbWVudChub2RlLCBlbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFpc0NoaWxkKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDaGlsZFJpZ2h0ID0gKG5vZGU6IE1pbmROb2RlLCBjaGlsZDogTWluZE5vZGUpID0+IHtcbiAgICByZXR1cm4gbm9kZS54IDwgY2hpbGQueDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NoaWxkVXAgPSAobm9kZTogTWluZE5vZGUsIGNoaWxkOiBNaW5kTm9kZSkgPT4ge1xuICAgIHJldHVybiBub2RlLnkgPiBjaGlsZC55O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlOZXdOb2RlID0gKG5vZGU6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgbmV3Tm9kZTogTWluZEVsZW1lbnQgPSB7IC4uLm5vZGUgfTtcbiAgICBuZXdOb2RlLmlkID0gaWRDcmVhdG9yKCk7XG4gICAgbmV3Tm9kZS5jaGlsZHJlbiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBuZXdOb2RlLmNoaWxkcmVuLnB1c2goY29weU5ld05vZGUoY2hpbGROb2RlKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdOb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3ROb2Rlc1RleHQgPSAobm9kZTogTWluZEVsZW1lbnQpID0+IHtcbiAgICBsZXQgc3RyID0gJyc7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgICAgc3RyICs9IE5vZGUuc3RyaW5nKG5vZGUuZGF0YS50b3BpYykgKyAnICc7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHN0ciArPSBleHRyYWN0Tm9kZXNUZXh0KGNoaWxkTm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRNaW5kRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgaW5oZXJpdE5vZGU6IE1pbmRFbGVtZW50LCBwYXRoOiBQYXRoKSA9PiB7XG4gICAgY29uc3QgbmV3Tm9kZTogSW5oZXJpdEF0dHJpYnV0ZSA9IHt9O1xuICAgIGlmICghaW5oZXJpdE5vZGUuaXNSb290KSB7XG4gICAgICAgIElOSEVSSVRfQVRUUklCVVRFX0tFWVMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgICAgIChuZXdOb2RlIGFzIGFueSlbYXR0cl0gPSBpbmhlcml0Tm9kZVthdHRyXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVsZXRlIG5ld05vZGUubGF5b3V0O1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgTk9ERV9NSU5fV0lEVEgsIFRFWFRfREVGQVVMVF9IRUlHSFQsIG5ld05vZGUpO1xuXG4gICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlKGJvYXJkLCBuZXdFbGVtZW50LCBwYXRoKTtcbiAgICBjbGVhclNlbGVjdGVkRWxlbWVudChib2FyZCk7XG4gICAgYWRkU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBuZXdFbGVtZW50KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWRpdFRvcGljKG5ld0VsZW1lbnQpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRMYXN0Q2hpbGQgPSAoY2hpbGQ6IE1pbmROb2RlKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IGNoaWxkO1xuICAgIHdoaWxlIChyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jaGlsZHJlbltyZXN1bHQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZGl2aWRlRWxlbWVudEJ5UGFyZW50ID0gKGVsZW1lbnRzOiBNaW5kRWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RJbmNsdWRlZEdyb3VwcyA9IFtdO1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnRzOiBNaW5kRWxlbWVudFtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE1pbmRFbGVtZW50LmdldFBhcmVudChlbGVtZW50c1tpXSk7XG4gICAgICAgIGNvbnN0IHBhcmVudEluZGV4ID0gcGFyZW50RWxlbWVudHMuaW5kZXhPZihwYXJlbnQpO1xuICAgICAgICBpZiAocGFyZW50SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBwYXJlbnRFbGVtZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgICAgICBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzLnB1c2goW2VsZW1lbnRzW2ldXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhYnN0cmFjdEluY2x1ZGVkR3JvdXBzW3BhcmVudEluZGV4XS5wdXNoKGVsZW1lbnRzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBwYXJlbnRFbGVtZW50cywgYWJzdHJhY3RJbmNsdWRlZEdyb3VwcyB9O1xufTtcbiJdfQ==
@@ -1,8 +1,8 @@
1
- import { RectangleClient } from "@plait/core";
2
- import { MindElement } from "../../interfaces/element";
3
- import { getRectangleByNode } from "./node";
4
- import { NodeSpace } from "../space/node-space";
5
- import { getEmojisWidthHeight } from "../space/emoji";
1
+ import { RectangleClient } from '@plait/core';
2
+ import { MindElement } from '../../interfaces/element';
3
+ import { getRectangleByNode } from './node';
4
+ import { NodeSpace } from '../space/node-space';
5
+ import { getEmojisWidthHeight } from '../space/emoji';
6
6
  export function getEmojiRectangle(board, element) {
7
7
  let { x, y } = getRectangleByNode(MindElement.getNode(element));
8
8
  x = x + NodeSpace.getEmojiLeftSpace(board, element);
@@ -17,15 +17,15 @@ export function getEmojiRectangle(board, element) {
17
17
  export function getEmojiForeignRectangle(board, element) {
18
18
  let { x, y } = getRectangleByNode(MindElement.getNode(element));
19
19
  x = x + NodeSpace.getEmojiLeftSpace(board, element);
20
- const { width, height } = getEmojisWidthHeight(board, element);
20
+ const { width } = getEmojisWidthHeight(board, element);
21
21
  return {
22
22
  x,
23
23
  y,
24
24
  width,
25
- height: height + NodeSpace.getEmojiTopSpace(element) * 2
25
+ height: NodeSpace.getNodeHeight(board, element)
26
26
  };
27
27
  }
28
28
  export const isHitEmojis = (board, element, point) => {
29
29
  return RectangleClient.isHit(RectangleClient.toRectangleClient([point, point]), getEmojiRectangle(board, element));
30
30
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9lbW9qaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtJQUNwRixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsT0FBTztRQUNILENBQUM7UUFDRCxDQUFDO1FBQ0QsS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLE9BQStCO0lBQzNGLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxPQUFPO1FBQ0gsQ0FBQztRQUNELENBQUM7UUFDRCxLQUFLO1FBQ0wsTUFBTSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBK0IsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUM1RixPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsS0FBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3pJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tIFwiQHBsYWl0L2NvcmVcIjtcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgRW1vamlEYXRhIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhXCI7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeU5vZGUgfSBmcm9tIFwiLi9ub2RlXCI7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tIFwiLi4vc3BhY2Uvbm9kZS1zcGFjZVwiO1xuaW1wb3J0IHsgZ2V0RW1vamlzV2lkdGhIZWlnaHQgfSBmcm9tIFwiLi4vc3BhY2UvZW1vamlcIjtcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSBcIi4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaVJlY3RhbmdsZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgIGxldCB7IHgsIHkgfSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpKTtcbiAgICB4ID0geCArIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgeCA9IHggKyBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0RW1vamlzV2lkdGhIZWlnaHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQ6IGhlaWdodCArIE5vZGVTcGFjZS5nZXRFbW9qaVRvcFNwYWNlKGVsZW1lbnQpICogMlxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0hpdEVtb2ppcyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPiwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQudG9SZWN0YW5nbGVDbGllbnQoW3BvaW50LCBwb2ludF0pLCBnZXRFbW9qaVJlY3RhbmdsZShib2FyZCBhcyBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudCkpO1xufTtcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9lbW9qaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtJQUNwRixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsT0FBTztRQUNILENBQUM7UUFDRCxDQUFDO1FBQ0QsS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLE9BQStCO0lBQzNGLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE9BQU87UUFDSCxDQUFDO1FBQ0QsQ0FBQztRQUNELEtBQUs7UUFDTCxNQUFNLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQ2xELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUErQixFQUFFLEtBQVksRUFBRSxFQUFFO0lBQzVGLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxLQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDekksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IGdldEVtb2ppc1dpZHRoSGVpZ2h0IH0gZnJvbSAnLi4vc3BhY2UvZW1vamknO1xuaW1wb3J0IHsgUGxhaXRNaW5kQm9hcmQgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3dpdGgtbWluZC5ib2FyZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaVJlY3RhbmdsZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgIGxldCB7IHgsIHkgfSA9IGdldFJlY3RhbmdsZUJ5Tm9kZShNaW5kRWxlbWVudC5nZXROb2RlKGVsZW1lbnQpKTtcbiAgICB4ID0geCArIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbW9qaUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBsZXQgeyB4LCB5IH0gPSBnZXRSZWN0YW5nbGVCeU5vZGUoTWluZEVsZW1lbnQuZ2V0Tm9kZShlbGVtZW50KSk7XG4gICAgeCA9IHggKyBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgd2lkdGggfSA9IGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBOb2RlU3BhY2UuZ2V0Tm9kZUhlaWdodChib2FyZCwgZWxlbWVudClcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNIaXRFbW9qaXMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4sIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtwb2ludCwgcG9pbnRdKSwgZ2V0RW1vamlSZWN0YW5nbGUoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQpKTtcbn07XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { RectangleClient } from '@plait/core';
2
+ import { MindElement } from '../../interfaces/element';
3
+ import { getRectangleByNode } from './node';
4
+ import { NodeSpace } from '../space/node-space';
5
+ export function getImageForeignRectangle(board, element) {
6
+ let { x, y } = getRectangleByNode(MindElement.getNode(element));
7
+ x = x + NodeSpace.getTextLeftSpace(board, element);
8
+ y = NodeSpace.getImageTopSpace(element) + y;
9
+ const { width, height } = element.data.image;
10
+ return {
11
+ x,
12
+ y,
13
+ width,
14
+ height
15
+ };
16
+ }
17
+ export const isHitImage = (board, element, range) => {
18
+ const client = getImageForeignRectangle(board, element);
19
+ return RectangleClient.isHit(RectangleClient.toRectangleClient([range.anchor, range.focus]), client);
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdoRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBcUIsRUFBRSxPQUErQjtJQUMzRixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQztJQUU5QyxPQUFPO1FBQ0gsQ0FBQztRQUNELENBQUM7UUFDRCxLQUFLO1FBQ0wsTUFBTTtLQUNULENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUErQixFQUFFLEtBQVksRUFBRSxFQUFFO0lBQzNGLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLEtBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmFuZ2UsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEltYWdlRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IGdldFJlY3RhbmdsZUJ5Tm9kZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBOb2RlU3BhY2UgfSBmcm9tICcuLi9zcGFjZS9ub2RlLXNwYWNlJztcbmltcG9ydCB7IFBsYWl0TWluZEJvYXJkIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy93aXRoLW1pbmQuYm9hcmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VGb3JlaWduUmVjdGFuZ2xlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPik6IFJlY3RhbmdsZUNsaWVudCB7XG4gICAgbGV0IHsgeCwgeSB9ID0gZ2V0UmVjdGFuZ2xlQnlOb2RlKE1pbmRFbGVtZW50LmdldE5vZGUoZWxlbWVudCkpO1xuICAgIHggPSB4ICsgTm9kZVNwYWNlLmdldFRleHRMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHkgPSBOb2RlU3BhY2UuZ2V0SW1hZ2VUb3BTcGFjZShlbGVtZW50KSArIHk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBlbGVtZW50LmRhdGEuaW1hZ2UhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0hpdEltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxJbWFnZURhdGE+LCByYW5nZTogUmFuZ2UpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBnZXRJbWFnZUZvcmVpZ25SZWN0YW5nbGUoYm9hcmQgYXMgUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtyYW5nZS5hbmNob3IsIHJhbmdlLmZvY3VzXSksIGNsaWVudCk7XG59O1xuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './node';
2
2
  export * from './emoji';
3
3
  export * from './topic';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcbmV4cG9ydCAqIGZyb20gJy4vdG9waWMnOyJdfQ==
4
+ export * from './image';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9wb3NpdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcbmV4cG9ydCAqIGZyb20gJy4vdG9waWMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZSc7XG4iXX0=
@@ -9,7 +9,9 @@ const NodeDefaultSpace = {
9
9
  emojiAndText: BASE * 1.5
10
10
  },
11
11
  vertical: {
12
- nodeAndText: BASE * 1.5
12
+ nodeAndText: BASE * 1.5,
13
+ nodeAndImage: BASE,
14
+ imageAndText: BASE * 1.5
13
15
  }
14
16
  };
15
17
  const RootDefaultSpace = {
@@ -39,17 +41,25 @@ const getSpaceEmojiAndText = (element) => {
39
41
  export const NodeSpace = {
40
42
  getNodeWidth(board, element) {
41
43
  const nodeAndText = getHorizontalSpaceBetweenNodeAndText(board, element);
44
+ const imageWidth = MindElement.hasImage(element) ? element.data.image?.width : 0;
42
45
  if (MindElement.hasEmojis(element)) {
43
46
  return (NodeSpace.getEmojiLeftSpace(board, element) +
44
47
  getEmojisWidthHeight(board, element).width +
45
48
  getSpaceEmojiAndText(element) +
46
- element.width +
49
+ Math.max(element.width, imageWidth) +
47
50
  nodeAndText);
48
51
  }
49
- return nodeAndText + element.width + nodeAndText;
52
+ return nodeAndText + Math.max(element.width, imageWidth) + nodeAndText;
50
53
  },
51
54
  getNodeHeight(board, element) {
52
55
  const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
56
+ if (MindElement.hasImage(element)) {
57
+ return (NodeDefaultSpace.vertical.nodeAndImage +
58
+ element.data.image.height +
59
+ NodeDefaultSpace.vertical.imageAndText +
60
+ element.height +
61
+ nodeAndText);
62
+ }
53
63
  return nodeAndText + element.height + nodeAndText;
54
64
  },
55
65
  getTextLeftSpace(board, element) {
@@ -63,7 +73,15 @@ export const NodeSpace = {
63
73
  },
64
74
  getTextTopSpace(element) {
65
75
  const nodeAndText = getVerticalSpaceBetweenNodeAndText(element);
66
- return nodeAndText;
76
+ if (MindElement.hasImage(element)) {
77
+ return element.data.image.height + NodeDefaultSpace.vertical.nodeAndImage + NodeDefaultSpace.vertical.imageAndText;
78
+ }
79
+ else {
80
+ return nodeAndText;
81
+ }
82
+ },
83
+ getImageTopSpace(element) {
84
+ return NodeDefaultSpace.vertical.nodeAndImage;
67
85
  },
68
86
  getEmojiLeftSpace(board, element) {
69
87
  const options = board.getPluginOptions(WithMindPluginKey);
@@ -75,4 +93,4 @@ export const NodeSpace = {
75
93
  return nodeAndText;
76
94
  }
77
95
  };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMxQjtDQUNKLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHO0lBQ3JCLFVBQVUsRUFBRTtRQUNSLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUNyQixZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDTixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7S0FDeEI7Q0FDSixDQUFDO0FBRUYsTUFBTSxvQ0FBb0MsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBb0IsRUFBRSxFQUFFO0lBQ3pGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FB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QUFDLENBQUM7UUFDaEUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBnZXRFbW9qaXNXaWR0aEhlaWdodCB9IGZyb20gJy4vZW1vamknO1xuXG5jb25zdCBOb2RlRGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAzLFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMS41XG4gICAgfVxufTtcblxuY29uc3QgUm9vdERlZmF1bHRTcGFjZSA9IHtcbiAgICBob3Jpem9udGFsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogNCxcbiAgICAgICAgZW1vamlBbmRUZXh0OiBCQVNFICogMlxuICAgIH0sXG4gICAgdmVydGljYWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAyXG4gICAgfVxufTtcblxuY29uc3QgZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS5ob3Jpem9udGFsLm5vZGVBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLm5vZGVBbmRUZXh0O1xuICAgIHJldHVybiBub2RlQW5kVGV4dDtcbn07XG5cbmNvbnN0IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gaXNNaW5kID8gUm9vdERlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQ7XG4gICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xufTtcblxuY29uc3QgZ2V0U3BhY2VFbW9qaUFuZFRleHQgPSAoZWxlbWVudDogTWluZEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBpc01pbmQgPSBQbGFpdE1pbmQuaXNNaW5kKGVsZW1lbnQpO1xuICAgIGNvbnN0IGVtb2ppQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5lbW9qaUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0O1xuICAgIHJldHVybiBlbW9qaUFuZFRleHQ7XG59O1xuXG5leHBvcnQgY29uc3QgTm9kZVNwYWNlID0ge1xuICAgIGdldE5vZGVXaWR0aChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBOb2RlU3BhY2UuZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQsIGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCkud2lkdGggK1xuICAgICAgICAgICAgICAgIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpICtcbiAgICAgICAgICAgICAgICBlbGVtZW50LndpZHRoICtcbiAgICAgICAgICAgICAgICBub2RlQW5kVGV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LndpZHRoICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXROb2RlSGVpZ2h0KGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBlbGVtZW50LmhlaWdodCArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0VGV4dExlZnRTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0Vtb2ppcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCkgKyBnZXRFbW9qaXNXaWR0aEhlaWdodChib2FyZCwgZWxlbWVudCkud2lkdGggKyBnZXRTcGFjZUVtb2ppQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0VGV4dFRvcFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0RW1vamlMZWZ0U3BhY2UoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBib2FyZC5nZXRQbHVnaW5PcHRpb25zPFdpdGhNaW5kT3B0aW9ucz4oV2l0aE1pbmRQbHVnaW5LZXkpO1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCAtIG9wdGlvbnMuZW1vamlQYWRkaW5nO1xuICAgIH0sXG4gICAgZ2V0RW1vamlUb3BTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldFZlcnRpY2FsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICB9XG59O1xuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL3V0aWxzL3NwYWNlL25vZGUtc3BhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsVUFBVSxFQUFFO1FBQ1IsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3JCLFlBQVksRUFBRSxJQUFJLEdBQUcsR0FBRztLQUMzQjtJQUNELFFBQVEsRUFBRTtRQUNOLFdBQVcsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUN2QixZQUFZLEVBQUUsSUFBSTtRQUNsQixZQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUc7S0FDM0I7Q0FDSixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUU7UUFDUixXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDckIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3pCO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDO0tBQ3hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sb0NBQW9DLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQW9CLEVBQUUsRUFBRTtJQUN6RixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMvRyxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLGtDQUFrQyxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQzNHLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUU7SUFDbEQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDbEgsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3JCLFlBQVksQ0FBQyxLQUFxQixFQUFFLE9BQW9CO1FBQ3BELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxDQUNILFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO2dCQUMzQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSztnQkFDMUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDO2dCQUNuQyxXQUFXLENBQ2QsQ0FBQztTQUNMO1FBQ0QsT0FBTyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQXFCLEVBQUUsT0FBb0I7UUFDckQsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLE9BQU8sQ0FDSCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsWUFBWTtnQkFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDekIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3RDLE9BQU8sQ0FBQyxNQUFNO2dCQUNkLFdBQVcsQ0FDZCxDQUFDO1NBQ0w7UUFDRCxPQUFPLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBcUIsRUFBRSxPQUFvQjtRQUN4RCxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25JO2FBQU07WUFDSCxPQUFPLFdBQVcsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFDRCxlQUFlLENBQUMsT0FBb0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztTQUN0SDthQUFNO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBb0I7UUFDakMsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFxQixFQUFFLE9BQStCO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBa0IsaUJBQWlCLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxvQ0FBb0MsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsT0FBTyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUM5QyxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBb0I7UUFDakMsTUFBTSxXQUFXLEdBQUcsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCQVNFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuaW1wb3J0IHsgUGxhaXRNaW5kIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IEVtb2ppRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxlbWVudC1kYXRhJztcbmltcG9ydCB7IFdpdGhNaW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb3B0aW9ucyc7XG5pbXBvcnQgeyBQbGFpdE1pbmRCb2FyZCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvd2l0aC1taW5kLmJvYXJkJztcbmltcG9ydCB7IFdpdGhNaW5kUGx1Z2luS2V5IH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBnZXRFbW9qaXNXaWR0aEhlaWdodCB9IGZyb20gJy4vZW1vamknO1xuXG5jb25zdCBOb2RlRGVmYXVsdFNwYWNlID0ge1xuICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgbm9kZUFuZFRleHQ6IEJBU0UgKiAzLFxuICAgICAgICBlbW9qaUFuZFRleHQ6IEJBU0UgKiAxLjVcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMS41LFxuICAgICAgICBub2RlQW5kSW1hZ2U6IEJBU0UsXG4gICAgICAgIGltYWdlQW5kVGV4dDogQkFTRSAqIDEuNVxuICAgIH1cbn07XG5cbmNvbnN0IFJvb3REZWZhdWx0U3BhY2UgPSB7XG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgICBub2RlQW5kVGV4dDogQkFTRSAqIDQsXG4gICAgICAgIGVtb2ppQW5kVGV4dDogQkFTRSAqIDJcbiAgICB9LFxuICAgIHZlcnRpY2FsOiB7XG4gICAgICAgIG5vZGVBbmRUZXh0OiBCQVNFICogMlxuICAgIH1cbn07XG5cbmNvbnN0IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dCA9IChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dCA6IE5vZGVEZWZhdWx0U3BhY2UuaG9yaXpvbnRhbC5ub2RlQW5kVGV4dDtcbiAgICByZXR1cm4gbm9kZUFuZFRleHQ7XG59O1xuXG5jb25zdCBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBub2RlQW5kVGV4dCA9IGlzTWluZCA/IFJvb3REZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZFRleHQgOiBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLm5vZGVBbmRUZXh0O1xuICAgIHJldHVybiBub2RlQW5kVGV4dDtcbn07XG5cbmNvbnN0IGdldFNwYWNlRW1vamlBbmRUZXh0ID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgaXNNaW5kID0gUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KTtcbiAgICBjb25zdCBlbW9qaUFuZFRleHQgPSBpc01pbmQgPyBSb290RGVmYXVsdFNwYWNlLmhvcml6b250YWwuZW1vamlBbmRUZXh0IDogTm9kZURlZmF1bHRTcGFjZS5ob3Jpem9udGFsLmVtb2ppQW5kVGV4dDtcbiAgICByZXR1cm4gZW1vamlBbmRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IE5vZGVTcGFjZSA9IHtcbiAgICBnZXROb2RlV2lkdGgoYm9hcmQ6IFBsYWl0TWluZEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlQW5kVGV4dCA9IGdldEhvcml6b250YWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGltYWdlV2lkdGggPSBNaW5kRWxlbWVudC5oYXNJbWFnZShlbGVtZW50KSA/IGVsZW1lbnQuZGF0YS5pbWFnZT8ud2lkdGggOiAwO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE5vZGVTcGFjZS5nZXRFbW9qaUxlZnRTcGFjZShib2FyZCwgZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArXG4gICAgICAgICAgICAgICAgZ2V0U3BhY2VFbW9qaUFuZFRleHQoZWxlbWVudCkgK1xuICAgICAgICAgICAgICAgIE1hdGgubWF4KGVsZW1lbnQud2lkdGgsIGltYWdlV2lkdGgpICtcbiAgICAgICAgICAgICAgICBub2RlQW5kVGV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZUFuZFRleHQgKyBNYXRoLm1heChlbGVtZW50LndpZHRoLCBpbWFnZVdpZHRoKSArIG5vZGVBbmRUZXh0O1xuICAgIH0sXG4gICAgZ2V0Tm9kZUhlaWdodChib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgaWYgKE1pbmRFbGVtZW50Lmhhc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIE5vZGVEZWZhdWx0U3BhY2UudmVydGljYWwubm9kZUFuZEltYWdlICtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmRhdGEuaW1hZ2UuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dCArXG4gICAgICAgICAgICAgICAgZWxlbWVudC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgIG5vZGVBbmRUZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQW5kVGV4dCArIGVsZW1lbnQuaGVpZ2h0ICsgbm9kZUFuZFRleHQ7XG4gICAgfSxcbiAgICBnZXRUZXh0TGVmdFNwYWNlKGJvYXJkOiBQbGFpdE1pbmRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRIb3Jpem9udGFsU3BhY2VCZXR3ZWVuTm9kZUFuZFRleHQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzRW1vamlzKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTm9kZVNwYWNlLmdldEVtb2ppTGVmdFNwYWNlKGJvYXJkLCBlbGVtZW50KSArIGdldEVtb2ppc1dpZHRoSGVpZ2h0KGJvYXJkLCBlbGVtZW50KS53aWR0aCArIGdldFNwYWNlRW1vamlBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRUZXh0VG9wU3BhY2UoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgbm9kZUFuZFRleHQgPSBnZXRWZXJ0aWNhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoTWluZEVsZW1lbnQuaGFzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuaW1hZ2UuaGVpZ2h0ICsgTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2UgKyBOb2RlRGVmYXVsdFNwYWNlLnZlcnRpY2FsLmltYWdlQW5kVGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlQW5kVGV4dDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0SW1hZ2VUb3BTcGFjZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gTm9kZURlZmF1bHRTcGFjZS52ZXJ0aWNhbC5ub2RlQW5kSW1hZ2U7XG4gICAgfSxcbiAgICBnZXRFbW9qaUxlZnRTcGFjZShib2FyZDogUGxhaXRNaW5kQm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50PEVtb2ppRGF0YT4pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGJvYXJkLmdldFBsdWdpbk9wdGlvbnM8V2l0aE1pbmRPcHRpb25zPihXaXRoTWluZFBsdWdpbktleSk7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0SG9yaXpvbnRhbFNwYWNlQmV0d2Vlbk5vZGVBbmRUZXh0KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0IC0gb3B0aW9ucy5lbW9qaVBhZGRpbmc7XG4gICAgfSxcbiAgICBnZXRFbW9qaVRvcFNwYWNlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGVBbmRUZXh0ID0gZ2V0VmVydGljYWxTcGFjZUJldHdlZW5Ob2RlQW5kVGV4dChlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGVBbmRUZXh0O1xuICAgIH1cbn07XG4iXX0=