@plait/mind 0.13.0 → 0.14.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.
@@ -1,13 +1,13 @@
1
1
  import { idCreator, isNullOrUndefined } from '@plait/core';
2
- import { TEXT_DEFAULT_HEIGHT } from '@plait/text';
2
+ import { TEXT_DEFAULT_HEIGHT, buildText } from '@plait/text';
3
3
  import { MindLayoutType } from '@plait/layouts';
4
- import { adjustNodeToRoot } from './adjust-node';
5
4
  import { ROOT_TOPIC_HEIGHT } from '../../constants/node-topic-style';
6
- export const createEmptyMind = (board, point) => {
7
- const element = createMindElement('', 0, 0, { layout: MindLayoutType.right });
8
- const rootElement = adjustNodeToRoot(board, element);
9
- rootElement.points = [point];
10
- return rootElement;
5
+ export const createEmptyMind = (point) => {
6
+ const element = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout: MindLayoutType.right });
7
+ element.isRoot = true;
8
+ element.points = [point];
9
+ element.type = 'mindmap';
10
+ return element;
11
11
  };
12
12
  export const createDefaultMind = (point, rightNodeCount, layout) => {
13
13
  const root = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout });
@@ -25,7 +25,7 @@ export const createMindElement = (text, width, height, options) => {
25
25
  const newElement = {
26
26
  id: idCreator(),
27
27
  data: {
28
- topic: { children: [{ text }] }
28
+ topic: buildText(text)
29
29
  },
30
30
  children: [],
31
31
  width,
@@ -49,4 +49,4 @@ export const INHERIT_ATTRIBUTE_KEYS = [
49
49
  'branchWidth',
50
50
  'branchShape'
51
51
  ];
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDL0QsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVksRUFBRSxjQUFzQixFQUFFLE1BQXNCLEVBQUUsRUFBRTtJQUM5RixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUF5QixFQUFFLEVBQUU7SUFDeEcsTUFBTSxVQUFVLEdBQWdCO1FBQzVCLEVBQUUsRUFBRSxTQUFTLEVBQUU7UUFDZixJQUFJLEVBQUU7WUFDRixLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7U0FDbEM7UUFDRCxRQUFRLEVBQUUsRUFBRTtRQUNaLEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUVGLElBQUksR0FBeUIsQ0FBQztJQUM5QixLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLFVBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO0tBQ0o7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFhRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxNQUFNO0lBQ04sYUFBYTtJQUNiLGFBQWE7SUFDYixPQUFPO0lBQ1AsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGlkQ3JlYXRvciwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBURVhUX0RFRkFVTFRfSEVJR0hUIH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBCcmFuY2hTaGFwZSwgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgYWRqdXN0Tm9kZVRvUm9vdCB9IGZyb20gJy4vYWRqdXN0LW5vZGUnO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19IRUlHSFQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFbXB0eU1pbmQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgnJywgMCwgMCwgeyBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlLnJpZ2h0IH0pO1xuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gYWRqdXN0Tm9kZVRvUm9vdChib2FyZCwgZWxlbWVudCk7XG4gICAgcm9vdEVsZW1lbnQucG9pbnRzID0gW3BvaW50XTtcbiAgICByZXR1cm4gcm9vdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdE1pbmQgPSAocG9pbnQ6IFBvaW50LCByaWdodE5vZGVDb3VudDogbnVtYmVyLCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCA3MiwgUk9PVF9UT1BJQ19IRUlHSFQsIHsgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7fSk7XG4gICAgfSk7XG4gICAgcm9vdC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHJldHVybiByb290O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pbmRFbGVtZW50ID0gKHRleHQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG9wdGlvbnM6IEluaGVyaXRBdHRyaWJ1dGUpID0+IHtcbiAgICBjb25zdCBuZXdFbGVtZW50OiBNaW5kRWxlbWVudCA9IHtcbiAgICAgICAgaWQ6IGlkQ3JlYXRvcigpLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0b3BpYzogeyBjaGlsZHJlbjogW3sgdGV4dCB9XSB9XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG5cbiAgICBsZXQga2V5OiBrZXlvZiB0eXBlb2Ygb3B0aW9ucztcbiAgICBmb3IgKGtleSBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQob3B0aW9uc1trZXldKSkge1xuICAgICAgICAgICAgKG5ld0VsZW1lbnQgYXMgYW55KVtrZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaGVyaXRBdHRyaWJ1dGUge1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgIGJyYW5jaENvbG9yPzogc3RyaW5nO1xuICAgIGJyYW5jaFdpZHRoPzogbnVtYmVyO1xuICAgIGJyYW5jaFNoYXBlPzogQnJhbmNoU2hhcGU7XG59XG5cbmV4cG9ydCBjb25zdCBJTkhFUklUX0FUVFJJQlVURV9LRVlTID0gW1xuICAgICdmaWxsJyxcbiAgICAnc3Ryb2tlQ29sb3InLFxuICAgICdzdHJva2VXaWR0aCcsXG4gICAgJ3NoYXBlJyxcbiAgICAnbGF5b3V0JyxcbiAgICAnYnJhbmNoQ29sb3InLFxuICAgICdicmFuY2hXaWR0aCcsXG4gICAgJ2JyYW5jaFNoYXBlJ1xuXTtcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9taW5kL3NyYy91dGlscy9ub2RlL2NyZWF0ZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN0QixPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDekIsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsY0FBc0IsRUFBRSxNQUFzQixFQUFFLEVBQUU7SUFDOUYsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ2hDLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBc0IsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE9BQXlCLEVBQUUsRUFBRTtJQUNsSCxNQUFNLFVBQVUsR0FBZ0I7UUFDNUIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRTtZQUNGLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ3pCO1FBQ0QsUUFBUSxFQUFFLEVBQUU7UUFDWixLQUFLO1FBQ0wsTUFBTTtLQUNULENBQUM7SUFFRixJQUFJLEdBQXlCLENBQUM7SUFDOUIsS0FBSyxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqQyxVQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQztLQUNKO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBYUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDbEMsTUFBTTtJQUNOLGFBQWE7SUFDYixhQUFhO0lBQ2IsT0FBTztJQUNQLFFBQVE7SUFDUixhQUFhO0lBQ2IsYUFBYTtJQUNiLGFBQWE7Q0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50LCBpZENyZWF0b3IsIGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgVEVYVF9ERUZBVUxUX0hFSUdIVCwgYnVpbGRUZXh0IH0gZnJvbSAnQHBsYWl0L3RleHQnO1xuaW1wb3J0IHsgTWluZExheW91dFR5cGUgfSBmcm9tICdAcGxhaXQvbGF5b3V0cyc7XG5pbXBvcnQgeyBCcmFuY2hTaGFwZSwgTWluZEVsZW1lbnQsIE1pbmRFbGVtZW50U2hhcGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUk9PVF9UT1BJQ19IRUlHSFQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10b3BpYy1zdHlsZSc7XG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRW1wdHlNaW5kID0gKHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVNaW5kRWxlbWVudCgn5oCd57u05a+85Zu+JywgNzIsIFJPT1RfVE9QSUNfSEVJR0hULCB7IGxheW91dDogTWluZExheW91dFR5cGUucmlnaHQgfSk7XG4gICAgZWxlbWVudC5pc1Jvb3QgPSB0cnVlO1xuICAgIGVsZW1lbnQucG9pbnRzID0gW3BvaW50XTtcbiAgICBlbGVtZW50LnR5cGUgPSAnbWluZG1hcCc7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdE1pbmQgPSAocG9pbnQ6IFBvaW50LCByaWdodE5vZGVDb3VudDogbnVtYmVyLCBsYXlvdXQ6IE1pbmRMYXlvdXRUeXBlKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IGNyZWF0ZU1pbmRFbGVtZW50KCfmgJ3nu7Tlr7zlm74nLCA3MiwgUk9PVF9UT1BJQ19IRUlHSFQsIHsgbGF5b3V0IH0pO1xuICAgIHJvb3QucmlnaHROb2RlQ291bnQgPSByaWdodE5vZGVDb3VudDtcbiAgICByb290LmlzUm9vdCA9IHRydWU7XG4gICAgcm9vdC50eXBlID0gJ21pbmRtYXAnO1xuICAgIHJvb3QucG9pbnRzID0gW3BvaW50XTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFsxLCAxLCAxXS5tYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWluZEVsZW1lbnQoJ+aWsOW7uuiKgueCuScsIDU2LCBURVhUX0RFRkFVTFRfSEVJR0hULCB7fSk7XG4gICAgfSk7XG4gICAgcm9vdC5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHJldHVybiByb290O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pbmRFbGVtZW50ID0gKHRleHQ6IHN0cmluZyB8IEVsZW1lbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBvcHRpb25zOiBJbmhlcml0QXR0cmlidXRlKSA9PiB7XG4gICAgY29uc3QgbmV3RWxlbWVudDogTWluZEVsZW1lbnQgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdG9waWM6IGJ1aWxkVGV4dCh0ZXh0KVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xuXG4gICAgbGV0IGtleToga2V5b2YgdHlwZW9mIG9wdGlvbnM7XG4gICAgZm9yIChrZXkgaW4gb3B0aW9ucykge1xuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG9wdGlvbnNba2V5XSkpIHtcbiAgICAgICAgICAgIChuZXdFbGVtZW50IGFzIGFueSlba2V5XSA9IG9wdGlvbnNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXdFbGVtZW50O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJbmhlcml0QXR0cmlidXRlIHtcbiAgICBmaWxsPzogc3RyaW5nO1xuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyO1xuICAgIHNoYXBlPzogTWluZEVsZW1lbnRTaGFwZTtcbiAgICBsYXlvdXQ/OiBNaW5kTGF5b3V0VHlwZTtcbiAgICBicmFuY2hDb2xvcj86IHN0cmluZztcbiAgICBicmFuY2hXaWR0aD86IG51bWJlcjtcbiAgICBicmFuY2hTaGFwZT86IEJyYW5jaFNoYXBlO1xufVxuXG5leHBvcnQgY29uc3QgSU5IRVJJVF9BVFRSSUJVVEVfS0VZUyA9IFtcbiAgICAnZmlsbCcsXG4gICAgJ3N0cm9rZUNvbG9yJyxcbiAgICAnc3Ryb2tlV2lkdGgnLFxuICAgICdzaGFwZScsXG4gICAgJ2xheW91dCcsXG4gICAgJ2JyYW5jaENvbG9yJyxcbiAgICAnYnJhbmNoV2lkdGgnLFxuICAgICdicmFuY2hTaGFwZSdcbl07XG4iXX0=
@@ -3,7 +3,7 @@ import { Component, ChangeDetectionStrategy, NgModule, NgZone, Directive, Input,
3
3
  import * as i2 from '@plait/core';
4
4
  import { DefaultThemeColor, ColorfulThemeColor, SoftThemeColor, RetroThemeColor, DarkThemeColor, StarryThemeColor, RectangleClient, PlaitElement, idCreator, isNullOrUndefined, Transforms, clearSelectedElement, addSelectedElement, PlaitBoard, depthFirstRecursion, Path, drawLinearPath, createG, updateForeignObject, PlaitNode, drawRoundRectangle, getRectangleByElements, getSelectedElements, NODE_TO_PARENT, distanceBetweenPointAndRectangle, createForeignObject, drawAbstractRoundRectangle, createText, PlaitPointerType, PlaitPluginElementComponent, NODE_TO_INDEX, PlaitModule, transformPoint, toPoint, getHitElements, distanceBetweenPointAndPoint, CLIP_BOARD_FORMAT_KEY, isMainPointer, BOARD_TO_HOST, PlaitPluginKey, throttleRAF, BoardTransforms, removeSelectedElement, PlaitHistoryBoard, hotkeys } from '@plait/core';
5
5
  import { MindLayoutType, isIndentedLayout, getNonAbstractChildren, isStandardLayout, AbstractNode, isLeftLayout, isRightLayout, isVerticalLogicLayout, isHorizontalLogicLayout, isTopLayout, isBottomLayout, isHorizontalLayout, getCorrectStartEnd, getAbstractLayout, ConnectingPosition, GlobalLayout } from '@plait/layouts';
6
- import { getTextSize, TEXT_DEFAULT_HEIGHT, TextManage, TextModule } from '@plait/text';
6
+ import { TEXT_DEFAULT_HEIGHT, buildText, getTextSize, TextManage, TextModule, getTextFromClipboard } from '@plait/text';
7
7
  import { fromEvent, Subject } from 'rxjs';
8
8
  import { Node, Path as Path$1 } from 'slate';
9
9
  import { isKeyHotkey } from 'is-hotkey';
@@ -306,49 +306,12 @@ const ROOT_TOPIC_FONT_SIZE = 18;
306
306
  const ROOT_TOPIC_HEIGHT = 25;
307
307
  const TOPIC_DEFAULT_MAX_WORD_COUNT = 34;
308
308
 
309
- const adjustRootToNode = (board, node) => {
310
- const newNode = Object.assign({}, node);
311
- delete newNode.isRoot;
312
- delete newNode.rightNodeCount;
313
- delete newNode.type;
314
- const text = Node.string(node.data.topic.children[0]) || ' ';
315
- const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT);
316
- newNode.width = Math.max(width, NODE_MIN_WIDTH);
317
- newNode.height = height;
318
- if (newNode.layout === MindLayoutType.standard) {
319
- delete newNode.layout;
320
- }
321
- return newNode;
322
- };
323
- const adjustAbstractToNode = (node) => {
324
- const newNode = Object.assign({}, node);
325
- delete newNode.start;
326
- delete newNode.end;
327
- return newNode;
328
- };
329
- const adjustNodeToRoot = (board, node) => {
330
- var _a;
331
- const newElement = Object.assign({}, node);
332
- let text = Node.string(newElement.data.topic);
333
- if (!text) {
334
- text = '思维导图';
335
- newElement.data.topic = { children: [{ text }] };
336
- }
337
- newElement === null || newElement === void 0 ? true : delete newElement.strokeColor;
338
- newElement === null || newElement === void 0 ? true : delete newElement.fill;
339
- newElement === null || newElement === void 0 ? true : delete newElement.shape;
340
- newElement === null || newElement === void 0 ? true : delete newElement.strokeWidth;
341
- const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT, ROOT_TOPIC_FONT_SIZE);
342
- newElement.width = Math.max(width, NODE_MIN_WIDTH);
343
- newElement.height = height;
344
- return Object.assign(Object.assign({}, newElement), { layout: (_a = newElement.layout) !== null && _a !== void 0 ? _a : MindLayoutType.right, isCollapsed: false, isRoot: true, type: 'mindmap' });
345
- };
346
-
347
- const createEmptyMind = (board, point) => {
348
- const element = createMindElement('', 0, 0, { layout: MindLayoutType.right });
349
- const rootElement = adjustNodeToRoot(board, element);
350
- rootElement.points = [point];
351
- return rootElement;
309
+ const createEmptyMind = (point) => {
310
+ const element = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout: MindLayoutType.right });
311
+ element.isRoot = true;
312
+ element.points = [point];
313
+ element.type = 'mindmap';
314
+ return element;
352
315
  };
353
316
  const createDefaultMind = (point, rightNodeCount, layout) => {
354
317
  const root = createMindElement('思维导图', 72, ROOT_TOPIC_HEIGHT, { layout });
@@ -366,7 +329,7 @@ const createMindElement = (text, width, height, options) => {
366
329
  const newElement = {
367
330
  id: idCreator(),
368
331
  data: {
369
- topic: { children: [{ text }] }
332
+ topic: buildText(text)
370
333
  },
371
334
  children: [],
372
335
  width,
@@ -587,6 +550,46 @@ const getRootLayout = (root) => {
587
550
  return root.layout || getDefaultLayout();
588
551
  };
589
552
 
553
+ const adjustRootToNode = (board, node) => {
554
+ const newNode = Object.assign({}, node);
555
+ delete newNode.isRoot;
556
+ delete newNode.rightNodeCount;
557
+ delete newNode.type;
558
+ const text = Node.string(node.data.topic.children[0]) || ' ';
559
+ const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT);
560
+ newNode.width = Math.max(width, NODE_MIN_WIDTH);
561
+ newNode.height = height;
562
+ if (newNode.layout === MindLayoutType.standard) {
563
+ delete newNode.layout;
564
+ }
565
+ return newNode;
566
+ };
567
+ const adjustAbstractToNode = (node) => {
568
+ const newNode = Object.assign({}, node);
569
+ delete newNode.start;
570
+ delete newNode.end;
571
+ return newNode;
572
+ };
573
+ const adjustNodeToRoot = (board, node) => {
574
+ var _a;
575
+ const newElement = Object.assign({}, node);
576
+ if (!Node.string(newElement.data.topic)) {
577
+ newElement.data.topic = { children: [{ text: '思维导图' }] };
578
+ }
579
+ newElement === null || newElement === void 0 ? true : delete newElement.strokeColor;
580
+ newElement === null || newElement === void 0 ? true : delete newElement.fill;
581
+ newElement === null || newElement === void 0 ? true : delete newElement.shape;
582
+ newElement === null || newElement === void 0 ? true : delete newElement.strokeWidth;
583
+ newElement === null || newElement === void 0 ? true : delete newElement.isCollapsed;
584
+ const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, {
585
+ fontSize: ROOT_TOPIC_FONT_SIZE,
586
+ fontFamily: 'PingFangSC-Medium, "PingFang SC"'
587
+ });
588
+ newElement.width = Math.max(width, NODE_MIN_WIDTH);
589
+ newElement.height = height;
590
+ return Object.assign(Object.assign({}, newElement), { layout: (_a = newElement.layout) !== null && _a !== void 0 ? _a : MindLayoutType.right, isRoot: true, type: 'mindmap' });
591
+ };
592
+
590
593
  const DefaultAbstractNodeStyle = {
591
594
  strokeColor: GRAY_COLOR,
592
595
  strokeWidth: 2,
@@ -1866,8 +1869,16 @@ const MindElement = {
1866
1869
  getEmojis(element) {
1867
1870
  return element.data.emojis;
1868
1871
  },
1869
- getEditor(element) {
1870
- return PlaitElement.getComponent(element).textManage.componentRef.instance.editor;
1872
+ hasMounted(element) {
1873
+ const component = PlaitElement.getComponent(element);
1874
+ return !!component;
1875
+ },
1876
+ getTextEditor(element) {
1877
+ const component = PlaitElement.getComponent(element);
1878
+ if (component) {
1879
+ return component.textManage.componentRef.instance.editor;
1880
+ }
1881
+ throw new Error('can not get correctly component in get text editor');
1871
1882
  }
1872
1883
  };
1873
1884
  var MindElementShape;
@@ -2976,9 +2987,6 @@ const withNodeDnd = (board) => {
2976
2987
  if (AbstractNode.isAbstract(element)) {
2977
2988
  return adjustAbstractToNode(element);
2978
2989
  }
2979
- if (PlaitMind.isMind(element)) {
2980
- return adjustRootToNode(board, element);
2981
- }
2982
2990
  return element;
2983
2991
  });
2984
2992
  const hasPreviousNode = targetPath[targetPath.length - 1] !== 0;
@@ -3288,7 +3296,7 @@ const withCreateMind = (board) => {
3288
3296
  const movingPoint = PlaitBoard.getMovingPoint(board);
3289
3297
  if (movingPoint) {
3290
3298
  const targetPoint = transformPoint(board, toPoint(movingPoint[0], movingPoint[1], PlaitBoard.getHost(board)));
3291
- const emptyMind = createEmptyMind(board, targetPoint);
3299
+ const emptyMind = createEmptyMind(targetPoint);
3292
3300
  const nodeRectangle = getRectangleByElement(newBoard, targetPoint, emptyMind);
3293
3301
  const nodeG = drawRoundRectangleByElement(board, nodeRectangle, emptyMind);
3294
3302
  const topicRectangle = getTopicRectangleByElement(newBoard, nodeRectangle, emptyMind);
@@ -3307,6 +3315,7 @@ const withCreateMind = (board) => {
3307
3315
  textManage
3308
3316
  };
3309
3317
  fakeCreateNodeRef.g.classList.add('root');
3318
+ fakeCreateNodeRef.g.setAttribute('plait-mind-temporary', 'true');
3310
3319
  PlaitBoard.getHost(board).append(fakeCreateNodeRef.g);
3311
3320
  fakeCreateNodeRef.g.append(...[fakeCreateNodeRef.nodeG, textManage.g]);
3312
3321
  }
@@ -3329,7 +3338,7 @@ const withCreateMind = (board) => {
3329
3338
  const movingPoint = PlaitBoard.getMovingPoint(board);
3330
3339
  if (movingPoint && fakeCreateNodeRef && PlaitBoard.isPointer(board, MindPointerType.mind)) {
3331
3340
  const targetPoint = transformPoint(board, toPoint(movingPoint[0], movingPoint[1], PlaitBoard.getHost(board)));
3332
- const emptyMind = createEmptyMind(board, targetPoint);
3341
+ const emptyMind = createEmptyMind(targetPoint);
3333
3342
  Transforms.insertNode(board, emptyMind, [board.children.length]);
3334
3343
  clearSelectedElement(board);
3335
3344
  addSelectedElement(board, emptyMind);
@@ -3621,11 +3630,13 @@ const withMind = (board) => {
3621
3630
  insertClipboardData(board, elements, targetPoint || [0, 0]);
3622
3631
  }
3623
3632
  else {
3624
- const text = data === null || data === void 0 ? void 0 : data.getData(`text/plain`);
3625
- const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT);
3633
+ const text = getTextFromClipboard(data);
3634
+ const { width, height } = getTextSize(board, text, TOPIC_DEFAULT_MAX_WORD_COUNT, {
3635
+ fontFamily: 'PingFangSC-Regular, "PingFang SC"'
3636
+ });
3626
3637
  const selectedElements = getSelectedElements(board);
3627
3638
  if (text && selectedElements.length === 1) {
3628
- insertClipboardText(board, selectedElements[0], text, width, height);
3639
+ insertClipboardText(board, selectedElements[0], buildText(text), width, height);
3629
3640
  }
3630
3641
  }
3631
3642
  insertFragment(data, targetPoint);