@plait/mind 0.8.0 → 0.10.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 (52) hide show
  1. package/README.md +132 -13
  2. package/base/base.drawer.d.ts +4 -3
  3. package/constants/default.d.ts +1 -1
  4. package/constants/node-topic-style.d.ts +1 -0
  5. package/drawer/node-active.drawer.d.ts +13 -0
  6. package/drawer/node-collapse.drawer.d.ts +8 -0
  7. package/drawer/{emojis.drawer.d.ts → node-emojis.drawer.d.ts} +1 -1
  8. package/drawer/{quick-insert.drawer.d.ts → node-insert.drawer.d.ts} +2 -2
  9. package/esm2020/base/base.drawer.mjs +13 -1
  10. package/esm2020/constants/default.mjs +2 -2
  11. package/esm2020/constants/node-rule.mjs +1 -1
  12. package/esm2020/constants/node-topic-style.mjs +2 -1
  13. package/esm2020/drawer/node-active.drawer.mjs +43 -0
  14. package/esm2020/drawer/node-collapse.drawer.mjs +108 -0
  15. package/esm2020/drawer/node-emojis.drawer.mjs +72 -0
  16. package/esm2020/drawer/node-insert.drawer.mjs +98 -0
  17. package/esm2020/interfaces/element.mjs +5 -2
  18. package/esm2020/mind.component.mjs +2 -1
  19. package/esm2020/mind.module.mjs +5 -5
  20. package/esm2020/node.component.mjs +57 -424
  21. package/esm2020/plugins/with-abstract-resize.mjs +3 -3
  22. package/esm2020/plugins/with-mind-create.mjs +23 -15
  23. package/esm2020/plugins/with-mind.mjs +9 -8
  24. package/esm2020/plugins/with-node-dnd.mjs +7 -4
  25. package/esm2020/plugins/with-node-hover.mjs +65 -0
  26. package/esm2020/transforms/node.mjs +10 -7
  27. package/esm2020/utils/abstract/resize.mjs +4 -6
  28. package/esm2020/utils/dnd/common.mjs +8 -2
  29. package/esm2020/utils/draw/node-dnd.mjs +3 -3
  30. package/esm2020/utils/mind.mjs +4 -4
  31. package/esm2020/utils/node/adjust-node.mjs +4 -5
  32. package/esm2020/utils/node/common.mjs +3 -3
  33. package/esm2020/utils/node/create-node.mjs +4 -3
  34. package/fesm2015/plait-mind.mjs +567 -857
  35. package/fesm2015/plait-mind.mjs.map +1 -1
  36. package/fesm2020/plait-mind.mjs +567 -845
  37. package/fesm2020/plait-mind.mjs.map +1 -1
  38. package/interfaces/element.d.ts +1 -0
  39. package/mind.module.d.ts +2 -2
  40. package/node.component.d.ts +15 -31
  41. package/package.json +1 -1
  42. package/plugins/with-mind-create.d.ts +3 -5
  43. package/plugins/with-node-dnd.d.ts +1 -1
  44. package/plugins/with-node-hover.d.ts +5 -0
  45. package/styles/mixins.scss +13 -15
  46. package/styles/styles.scss +12 -16
  47. package/utils/abstract/resize.d.ts +2 -2
  48. package/utils/node/common.d.ts +1 -1
  49. package/esm2020/drawer/emojis.drawer.mjs +0 -72
  50. package/esm2020/drawer/quick-insert.drawer.mjs +0 -211
  51. package/esm2020/utils/draw/node-topic.mjs +0 -32
  52. package/utils/draw/node-topic.d.ts +0 -16
@@ -1,6 +1,6 @@
1
1
  import { PlaitElement } from '@plait/core';
2
- export function enterNodeEditing(element) {
2
+ export function editTopic(element) {
3
3
  const component = PlaitElement.getComponent(element);
4
- component.startEditText(false, false);
4
+ component.editTopic();
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkzQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBb0I7SUFDakQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQXNCLENBQUM7SUFDMUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IE1pbmROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS5jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW50ZXJOb2RlRWRpdGluZyhlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCkgYXMgTWluZE5vZGVDb21wb25lbnQ7XG4gICAgY29tcG9uZW50LnN0YXJ0RWRpdFRleHQoZmFsc2UsIGZhbHNlKTtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvdXRpbHMvbm9kZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkzQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQW9CO0lBQzFDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFzQixDQUFDO0lBQzFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgTWluZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ub2RlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0VG9waWMoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBQbGFpdEVsZW1lbnQuZ2V0Q29tcG9uZW50KGVsZW1lbnQpIGFzIE1pbmROb2RlQ29tcG9uZW50O1xuICAgIGNvbXBvbmVudC5lZGl0VG9waWMoKTtcbn1cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  import { idCreator, isNullOrUndefined } from '@plait/core';
2
- import { ROOT_DEFAULT_HEIGHT, TEXT_DEFAULT_HEIGHT } from '@plait/richtext';
2
+ import { TEXT_DEFAULT_HEIGHT } from '@plait/text';
3
3
  import { MindLayoutType } from '@plait/layouts';
4
4
  import { adjustNodeToRoot } from './adjust-node';
5
+ import { ROOT_TOPIC_HEIGHT } from '../../constants/node-topic-style';
5
6
  export const createEmptyMind = (board, point) => {
6
7
  const element = createMindElement('', 0, 0, { layout: MindLayoutType.right });
7
8
  const rootElement = adjustNodeToRoot(board, element);
@@ -9,7 +10,7 @@ export const createEmptyMind = (board, point) => {
9
10
  return rootElement;
10
11
  };
11
12
  export const createDefaultMind = (point, rightNodeCount, layout) => {
12
- const root = createMindElement('思维导图', 72, ROOT_DEFAULT_HEIGHT, { layout });
13
+ const root = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout });
13
14
  root.rightNodeCount = rightNodeCount;
14
15
  root.isRoot = true;
15
16
  root.type = 'mindmap';
@@ -48,4 +49,4 @@ export const INHERIT_ATTRIBUTE_KEYS = [
48
49
  'branchWidth',
49
50
  'branchShape'
50
51
  ];
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBWSxFQUFFLGNBQXNCLEVBQUUsTUFBc0IsRUFBRSxFQUFFO0lBQzlGLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNoQyxPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN6QixPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE9BQXlCLEVBQUUsRUFBRTtJQUN4RyxNQUFNLFVBQVUsR0FBZ0I7UUFDNUIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtTQUNsQztRQUNELFFBQVEsRUFBRSxFQUFFO1FBQ1osS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0lBRUYsSUFBSSxHQUF5QixDQUFDO0lBQzlCLEtBQUssR0FBRyxJQUFJLE9BQU8sRUFBRTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDakMsVUFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0M7S0FDSjtJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQWFGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ2xDLE1BQU07SUFDTixhQUFhO0lBQ2IsYUFBYTtJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgaWRDcmVhdG9yLCBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFJPT1RfREVGQVVMVF9IRUlHSFQsIFRFWFRfREVGQVVMVF9IRUlHSFQgfSBmcm9tICdAcGxhaXQvcmljaHRleHQnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBCcmFuY2hTaGFwZSwgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgYWRqdXN0Tm9kZVRvUm9vdCB9IGZyb20gJy4vYWRqdXN0LW5vZGUnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRW1wdHlNaW5kID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gY3JlYXRlTWluZEVsZW1lbnQoJycsIDAsIDAsIHsgbGF5b3V0OiBNaW5kTGF5b3V0VHlwZS5yaWdodCB9KTtcbiAgICBjb25zdCByb290RWxlbWVudCA9IGFkanVzdE5vZGVUb1Jvb3QoYm9hcmQsIGVsZW1lbnQpO1xuICAgIHJvb3RFbGVtZW50LnBvaW50cyA9IFtwb2ludF07XG4gICAgcmV0dXJuIHJvb3RFbGVtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmF1bHRNaW5kID0gKHBvaW50OiBQb2ludCwgcmlnaHROb2RlQ291bnQ6IG51bWJlciwgbGF5b3V0OiBNaW5kTGF5b3V0VHlwZSkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBjcmVhdGVNaW5kRWxlbWVudCgn5oCd57u05a+85Zu+JywgNzIsIFJPT1RfREVGQVVMVF9IRUlHSFQsIHsgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7fSk7XG4gICAgfSk7XG4gICAgcm9vdC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHJldHVybiByb290O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pbmRFbGVtZW50ID0gKHRleHQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG9wdGlvbnM6IEluaGVyaXRBdHRyaWJ1dGUpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50OiBNaW5kRWxlbWVudCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0b3BpYzogeyBjaGlsZHJlbjogW3sgdGV4dCB9XSB9XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG5cbiAgICBsZXQga2V5OiBrZXlvZiB0eXBlb2Ygb3B0aW9ucztcbiAgICBmb3IgKGtleSBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQob3B0aW9uc1trZXldKSkge1xuICAgICAgICAgICAgKG5ld0VsZW1lbnQgYXMgYW55KVtrZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXRBdHRyaWJ1dGUge1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgIGJyYW5jaENvbG9yPzogc3RyaW5nO1xuICAgIGJyYW5jaFdpZHRoPzogbnVtYmVyO1xuICAgIGJyYW5jaFNoYXBlPzogQnJhbmNoU2hhcGU7XG59XG5cbmV4cG9ydCBjb25zdCBJTkhFUklUX0FUVFJJQlVURV9LRVlTID0gW1xuICAgICdmaWxsJyxcbiAgICAnc3Ryb2tlQ29sb3InLFxuICAgICdzdHJva2VXaWR0aCcsXG4gICAgJ3NoYXBlJyxcbiAgICAnbGF5b3V0JyxcbiAgICAnYnJhbmNoQ29sb3InLFxuICAgICdicmFuY2hXaWR0aCcsXG4gICAgJ2JyYW5jaFNoYXBlJ1xuXTtcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDL0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVksRUFBRSxjQUFzQixFQUFFLE1BQXNCLEVBQUUsRUFBRTtJQUM5RixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUF5QixFQUFFLEVBQUU7SUFDeEcsTUFBTSxVQUFVLEdBQWdCO1FBQzVCLEVBQUUsRUFBRSxTQUFTLEVBQUU7UUFDZixJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7U0FDbEM7UUFDRCxRQUFRLEVBQUUsRUFBRTtRQUNaLEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUVGLElBQUksR0FBeUIsQ0FBQztJQUM5QixLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLFVBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO0tBQ0o7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFhRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxNQUFNO0lBQ04sYUFBYTtJQUNiLGFBQWE7SUFDYixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGlkQ3JlYXRvciwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hUIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBCcmFuY2hTaGFwZSwgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgYWRqdXN0Tm9kZVRvUm9vdCB9IGZyb20gJy4vYWRqdXN0LW5vZGUnO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19IRUlHSFQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFbXB0eU1pbmQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgMCwgMCwgeyBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IH0pO1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gYWRqdXN0Tm9kZVRvUm9vdChib2FyZCwgZWxlbWVudCk7XG4gICAgcm9vdEVsZW1lbnQucG9pbnRzID0gW3BvaW50XTtcbiAgICByZXR1cm4gcm9vdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdE1pbmQgPSAocG9pbnQ6IFBvaW50LCByaWdodE5vZGVDb3VudDogbnVtYmVyLCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCA3MiwgUk9PVF9UT1BJQ19IRUlHSFQsIHsgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7fSk7XG4gICAgfSk7XG4gICAgcm9vdC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHJldHVybiByb290O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pbmRFbGVtZW50ID0gKHRleHQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG9wdGlvbnM6IEluaGVyaXRBdHRyaWJ1dGUpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50OiBNaW5kRWxlbWVudCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0b3BpYzogeyBjaGlsZHJlbjogW3sgdGV4dCB9XSB9XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG5cbiAgICBsZXQga2V5OiBrZXlvZiB0eXBlb2Ygb3B0aW9ucztcbiAgICBmb3IgKGtleSBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQob3B0aW9uc1trZXldKSkge1xuICAgICAgICAgICAgKG5ld0VsZW1lbnQgYXMgYW55KVtrZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXRBdHRyaWJ1dGUge1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgIGJyYW5jaENvbG9yPzogc3RyaW5nO1xuICAgIGJyYW5jaFdpZHRoPzogbnVtYmVyO1xuICAgIGJyYW5jaFNoYXBlPzogQnJhbmNoU2hhcGU7XG59XG5cbmV4cG9ydCBjb25zdCBJTkhFUklUX0FUVFJJQlVURV9LRVlTID0gW1xuICAgICdmaWxsJyxcbiAgICAnc3Ryb2tlQ29sb3InLFxuICAgICdzdHJva2VXaWR0aCcsXG4gICAgJ3NoYXBlJyxcbiAgICAnbGF5b3V0JyxcbiAgICAnYnJhbmNoQ29sb3InLFxuICAgICdicmFuY2hXaWR0aCcsXG4gICAgJ2JyYW5jaFNoYXBlJ1xuXTtcbiJdfQ==