@plait/mind 0.64.2 → 0.64.4

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,5 +1,5 @@
1
1
  import { isIndentedLayout } from '@plait/layouts';
2
- import { NODE_TO_PARENT, Path, PlaitBoard, PlaitNode } from '@plait/core';
2
+ import { isNullOrUndefined, NODE_TO_PARENT, Path, PlaitBoard, PlaitNode } from '@plait/core';
3
3
  import { MindQueries } from '../queries';
4
4
  import { ELEMENT_TO_NODE } from '../utils';
5
5
  export const PlaitMind = {
@@ -17,7 +17,10 @@ export const MindElement = {
17
17
  return isIndentedLayout(_layout);
18
18
  },
19
19
  isMindElement(board, element) {
20
- if (element.data && element.data.topic && element.width && element.height) {
20
+ // Design error: The type of the element should be identified based on type.
21
+ // Now it is very awkward whether it is dynamically calculated(query root node) or using other characteristic attributes(current).
22
+ // Using dynamically calculated will cause more issue like pasting from clipboard, finding elements by id(isRecursion)
23
+ if (element.data && element.data.topic && !isNullOrUndefined(element.width) && !isNullOrUndefined(element.height)) {
21
24
  return true;
22
25
  }
23
26
  else {
@@ -97,4 +100,4 @@ export var BranchShape;
97
100
  BranchShape["bight"] = "bight";
98
101
  BranchShape["polyline"] = "polyline";
99
102
  })(BranchShape || (BranchShape = {}));
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFnQixTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBcUMzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsU0FBUyxDQUFDLEtBQWtCLEVBQUUsTUFBc0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBa0I7UUFDL0IsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBbUIsQ0FBQztRQUN4RSxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtRQUNsRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7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O1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBK0I7UUFDckMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDeEIsc0RBQWtDLENBQUE7SUFDbEMsMkNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLDhCQUFlLENBQUE7SUFDZixvQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0luZGVudGVkTGF5b3V0LCBNaW5kTGF5b3V0VHlwZSB9IGZyb20gJ0BwbGFpdC9sYXlvdXRzJztcbmltcG9ydCB7IE5PREVfVE9fUEFSRU5ULCBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0Tm9kZSwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZURhdGEsIEVtb2ppRGF0YSwgSW1hZ2VEYXRhIH0gZnJvbSAnLi9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9taW5kLW5vZGUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBNaW5kRWxlbWVudDxUID0gQmFzZURhdGE+IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBkYXRhOiBUO1xuICAgIGNoaWxkcmVuOiBNaW5kRWxlbWVudFtdO1xuICAgIHJpZ2h0Tm9kZUNvdW50PzogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgbWFudWFsV2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgaXNSb290PzogYm9vbGVhbjtcblxuICAgIC8vIG5vZGUgc3R5bGUgYXR0cmlidXRlc1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuXG4gICAgLy8gbGluayBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgYnJhbmNoV2lkdGg/OiBudW1iZXI7XG4gICAgYnJhbmNoU2hhcGU/OiBCcmFuY2hTaGFwZTtcblxuICAgIC8vIGxheW91dFxuICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcblxuICAgIHN0YXJ0PzogbnVtYmVyO1xuICAgIGVuZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdE1pbmQgZXh0ZW5kcyBNaW5kRWxlbWVudCB7XG4gICAgdHlwZTogJ21pbmRtYXAnO1xuICAgIHBvaW50czogUG9pbnRbXTtcbn1cblxuZXhwb3J0IGNvbnN0IFBsYWl0TWluZCA9IHtcbiAgICBpc01pbmQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRNaW5kID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdtaW5kbWFwJztcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTWluZEVsZW1lbnQgPSB7XG4gICAgaGFzTGF5b3V0KHZhbHVlOiBNaW5kRWxlbWVudCwgbGF5b3V0OiBNaW5kTGF5b3V0VHlwZSkge1xuICAgICAgICBjb25zdCBfbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIF9sYXlvdXQgPT09IGxheW91dDtcbiAgICB9LFxuICAgIGlzSW5kZW50ZWRMYXlvdXQodmFsdWU6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IF9sYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQodmFsdWUpIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgICAgICByZXR1cm4gaXNJbmRlbnRlZExheW91dChfbGF5b3V0KTtcbiAgICB9LFxuICAgIGlzTWluZEVsZW1lbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCk6IGVsZW1lbnQgaXMgTWluZEVsZW1lbnQge1xuICAgICAgICBpZiAoZWxlbWVudC5kYXRhICYmIGVsZW1lbnQuZGF0YS50b3BpYyAmJiBlbGVtZW50LndpZHRoICYmIGVsZW1lbnQuaGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZ2V0UGFyZW50KG5vZGU6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKG5vZGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbmQgcm9vdCBub2RlIGNhbiBub3QgZ2V0IHBhcmVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE5PREVfVE9fUEFSRU5ULmdldChub2RlKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9LFxuICAgIGZpbmRQYXJlbnQobm9kZTogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQobm9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTk9ERV9UT19QQVJFTlQuZ2V0KG5vZGUpIGFzIE1pbmRFbGVtZW50O1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgIH0sXG4gICAgZ2V0Um9vdChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aC5zbGljZSgwLCAxKSkgYXMgUGxhaXRNaW5kO1xuICAgIH0sXG4gICAgZ2V0QW5jZXN0b3JzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBQYXRoLmFuY2VzdG9ycyhwYXRoLCB7IHJldmVyc2U6IHRydWUgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG4gPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwKTtcbiAgICAgICAgICAgIGlmIChuICYmICFQbGFpdEJvYXJkLmlzQm9hcmQobikpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRzLnB1c2gobik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcmVudHM7XG4gICAgfSxcbiAgICBnZXROb2RlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBFTEVNRU5UX1RPX05PREUuZ2V0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBnZXQgbm9kZSBmcm9tICR7SlNPTi5zdHJpbmdpZnkoZWxlbWVudCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBmaW5kUGFyZW50Tm9kZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnQgPSBNaW5kRWxlbWVudC5nZXRQYXJlbnQoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBNaW5kRWxlbWVudC5nZXROb2RlKHBhcmVudCk7XG4gICAgfSxcbiAgICBoYXNFbW9qaXMoZWxlbWVudDogTWluZEVsZW1lbnQpOiBlbGVtZW50IGlzIE1pbmRFbGVtZW50PEVtb2ppRGF0YT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5kYXRhLmVtb2ppcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhhc0ltYWdlKGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogZWxlbWVudCBpcyBNaW5kRWxlbWVudDxJbWFnZURhdGE+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZGF0YS5pbWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldEVtb2ppcyhlbGVtZW50OiBNaW5kRWxlbWVudDxFbW9qaURhdGE+KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmRhdGEuZW1vamlzO1xuICAgIH1cbn07XG5cbmV4cG9ydCBlbnVtIE1pbmRFbGVtZW50U2hhcGUge1xuICAgIHJvdW5kUmVjdGFuZ2xlID0gJ3JvdW5kLXJlY3RhbmdsZScsXG4gICAgdW5kZXJsaW5lID0gJ3VuZGVybGluZSdcbn1cblxuZXhwb3J0IGVudW0gQnJhbmNoU2hhcGUge1xuICAgIGJpZ2h0ID0gJ2JpZ2h0JyxcbiAgICBwb2x5bGluZSA9ICdwb2x5bGluZSdcbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21pbmQvc3JjL2ludGVyZmFjZXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFnQixTQUFTLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBcUMzQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDckIsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFzQixFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsU0FBUyxDQUFDLEtBQWtCLEVBQUUsTUFBc0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsS0FBa0I7UUFDL0IsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBbUIsQ0FBQztRQUN4RSxPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxPQUFxQjtRQUNsRCw0RUFBNEU7UUFDNUUsa0lBQWtJO1FBQ2xJLHNIQUFzSDtRQUN0SCxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFL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QUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUFvQjtRQUN6QixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUErQjtRQUNyQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUN4QixzREFBa0MsQ0FBQTtJQUNsQywyQ0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDbkIsOEJBQWUsQ0FBQTtJQUNmLG9DQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSW5kZW50ZWRMYXlvdXQsIE1pbmRMYXlvdXRUeXBlIH0gZnJvbSAnQHBsYWl0L2xheW91dHMnO1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIE5PREVfVE9fUEFSRU5ULCBQYXRoLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0Tm9kZSwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBNaW5kUXVlcmllcyB9IGZyb20gJy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19OT0RFIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmFzZURhdGEsIEVtb2ppRGF0YSwgSW1hZ2VEYXRhIH0gZnJvbSAnLi9lbGVtZW50LWRhdGEnO1xuaW1wb3J0IHsgTWluZE5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9taW5kLW5vZGUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBNaW5kRWxlbWVudDxUID0gQmFzZURhdGE+IGV4dGVuZHMgUGxhaXRFbGVtZW50IHtcbiAgICBkYXRhOiBUO1xuICAgIGNoaWxkcmVuOiBNaW5kRWxlbWVudFtdO1xuICAgIHJpZ2h0Tm9kZUNvdW50PzogbnVtYmVyO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgbWFudWFsV2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgaXNSb290PzogYm9vbGVhbjtcblxuICAgIC8vIG5vZGUgc3R5bGUgYXR0cmlidXRlc1xuICAgIGZpbGw/OiBzdHJpbmc7XG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7XG4gICAgc2hhcGU/OiBNaW5kRWxlbWVudFNoYXBlO1xuXG4gICAgLy8gbGluayBzdHlsZSBhdHRyaWJ1dGVzXG4gICAgYnJhbmNoQ29sb3I/OiBzdHJpbmc7XG4gICAgYnJhbmNoV2lkdGg/OiBudW1iZXI7XG4gICAgYnJhbmNoU2hhcGU/OiBCcmFuY2hTaGFwZTtcblxuICAgIC8vIGxheW91dFxuICAgIGxheW91dD86IE1pbmRMYXlvdXRUeXBlO1xuICAgIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcblxuICAgIHN0YXJ0PzogbnVtYmVyO1xuICAgIGVuZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdE1pbmQgZXh0ZW5kcyBNaW5kRWxlbWVudCB7XG4gICAgdHlwZTogJ21pbmRtYXAnO1xuICAgIHBvaW50czogUG9pbnRbXTtcbn1cblxuZXhwb3J0IGNvbnN0IFBsYWl0TWluZCA9IHtcbiAgICBpc01pbmQ6ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgUGxhaXRNaW5kID0+IHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgPT09ICdtaW5kbWFwJztcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgTWluZEVsZW1lbnQgPSB7XG4gICAgaGFzTGF5b3V0KHZhbHVlOiBNaW5kRWxlbWVudCwgbGF5b3V0OiBNaW5kTGF5b3V0VHlwZSkge1xuICAgICAgICBjb25zdCBfbGF5b3V0ID0gTWluZFF1ZXJpZXMuZ2V0TGF5b3V0QnlFbGVtZW50KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIF9sYXlvdXQgPT09IGxheW91dDtcbiAgICB9LFxuICAgIGlzSW5kZW50ZWRMYXlvdXQodmFsdWU6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IF9sYXlvdXQgPSBNaW5kUXVlcmllcy5nZXRMYXlvdXRCeUVsZW1lbnQodmFsdWUpIGFzIE1pbmRMYXlvdXRUeXBlO1xuICAgICAgICByZXR1cm4gaXNJbmRlbnRlZExheW91dChfbGF5b3V0KTtcbiAgICB9LFxuICAgIGlzTWluZEVsZW1lbnQoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCk6IGVsZW1lbnQgaXMgTWluZEVsZW1lbnQge1xuICAgICAgICAvLyBEZXNpZ24gZXJyb3I6IFRoZSB0eXBlIG9mIHRoZSBlbGVtZW50IHNob3VsZCBiZSBpZGVudGlmaWVkIGJhc2VkIG9uIHR5cGUuXG4gICAgICAgIC8vIE5vdyBpdCBpcyB2ZXJ5IGF3a3dhcmQgd2hldGhlciBpdCBpcyBkeW5hbWljYWxseSBjYWxjdWxhdGVkKHF1ZXJ5IHJvb3Qgbm9kZSkgb3IgdXNpbmcgb3RoZXIgY2hhcmFjdGVyaXN0aWMgYXR0cmlidXRlcyhjdXJyZW50KS5cbiAgICAgICAgLy8gVXNpbmcgZHluYW1pY2FsbHkgY2FsY3VsYXRlZCB3aWxsIGNhdXNlIG1vcmUgaXNzdWUgbGlrZSBwYXN0aW5nIGZyb20gY2xpcGJvYXJkLCBmaW5kaW5nIGVsZW1lbnRzIGJ5IGlkKGlzUmVjdXJzaW9uKVxuICAgICAgICBpZiAoZWxlbWVudC5kYXRhICYmIGVsZW1lbnQuZGF0YS50b3BpYyAmJiAhaXNOdWxsT3JVbmRlZmluZWQoZWxlbWVudC53aWR0aCkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKGVsZW1lbnQuaGVpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFBhcmVudChub2RlOiBNaW5kRWxlbWVudCkge1xuICAgICAgICBpZiAoUGxhaXRNaW5kLmlzTWluZChub2RlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaW5kIHJvb3Qgbm9kZSBjYW4gbm90IGdldCBwYXJlbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnQgPSBOT0RFX1RPX1BBUkVOVC5nZXQobm9kZSkgYXMgTWluZEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfSxcbiAgICBmaW5kUGFyZW50KG5vZGU6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGlmIChQbGFpdE1pbmQuaXNNaW5kKG5vZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IE5PREVfVE9fUEFSRU5ULmdldChub2RlKSBhcyBNaW5kRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9LFxuICAgIGdldFJvb3QoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IE1pbmRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGguc2xpY2UoMCwgMSkpIGFzIFBsYWl0TWluZDtcbiAgICB9LFxuICAgIGdldEFuY2VzdG9ycyhib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBwYXJlbnRzOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgUGF0aC5hbmNlc3RvcnMocGF0aCwgeyByZXZlcnNlOiB0cnVlIH0pKSB7XG4gICAgICAgICAgICBjb25zdCBuID0gUGxhaXROb2RlLmdldChib2FyZCwgcCk7XG4gICAgICAgICAgICBpZiAobiAmJiAhUGxhaXRCb2FyZC5pc0JvYXJkKG4pKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50cy5wdXNoKG4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJlbnRzO1xuICAgIH0sXG4gICAgZ2V0Tm9kZShlbGVtZW50OiBNaW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBub2RlID0gRUxFTUVOVF9UT19OT0RFLmdldChlbGVtZW50KTtcbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZ2V0IG5vZGUgZnJvbSAke0pTT04uc3RyaW5naWZ5KGVsZW1lbnQpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH0sXG4gICAgZmluZFBhcmVudE5vZGUoZWxlbWVudDogTWluZEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFBsYWl0TWluZC5pc01pbmQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gTWluZEVsZW1lbnQuZ2V0UGFyZW50KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gTWluZEVsZW1lbnQuZ2V0Tm9kZShwYXJlbnQpO1xuICAgIH0sXG4gICAgaGFzRW1vamlzKGVsZW1lbnQ6IE1pbmRFbGVtZW50KTogZWxlbWVudCBpcyBNaW5kRWxlbWVudDxFbW9qaURhdGE+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZGF0YS5lbW9qaXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBoYXNJbWFnZShlbGVtZW50OiBNaW5kRWxlbWVudCk6IGVsZW1lbnQgaXMgTWluZEVsZW1lbnQ8SW1hZ2VEYXRhPiB7XG4gICAgICAgIGlmIChlbGVtZW50LmRhdGEuaW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRFbW9qaXMoZWxlbWVudDogTWluZEVsZW1lbnQ8RW1vamlEYXRhPikge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5kYXRhLmVtb2ppcztcbiAgICB9XG59O1xuXG5leHBvcnQgZW51bSBNaW5kRWxlbWVudFNoYXBlIHtcbiAgICByb3VuZFJlY3RhbmdsZSA9ICdyb3VuZC1yZWN0YW5nbGUnLFxuICAgIHVuZGVybGluZSA9ICd1bmRlcmxpbmUnXG59XG5cbmV4cG9ydCBlbnVtIEJyYW5jaFNoYXBlIHtcbiAgICBiaWdodCA9ICdiaWdodCcsXG4gICAgcG9seWxpbmUgPSAncG9seWxpbmUnXG59XG4iXX0=
@@ -2301,7 +2301,10 @@ const MindElement = {
2301
2301
  return isIndentedLayout(_layout);
2302
2302
  },
2303
2303
  isMindElement(board, element) {
2304
- if (element.data && element.data.topic && element.width && element.height) {
2304
+ // Design error: The type of the element should be identified based on type.
2305
+ // Now it is very awkward whether it is dynamically calculated(query root node) or using other characteristic attributes(current).
2306
+ // Using dynamically calculated will cause more issue like pasting from clipboard, finding elements by id(isRecursion)
2307
+ if (element.data && element.data.topic && !isNullOrUndefined(element.width) && !isNullOrUndefined(element.height)) {
2305
2308
  return true;
2306
2309
  }
2307
2310
  else {