@plait/mind 0.23.0 → 0.23.1

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.
@@ -691,7 +691,8 @@ const adjustNodeToRoot = (board, node) => {
691
691
  delete newElement?.isCollapsed;
692
692
  const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, {
693
693
  fontSize: ROOT_TOPIC_FONT_SIZE,
694
- fontFamily: BRANCH_FONT_FAMILY
694
+ fontFamily: BRANCH_FONT_FAMILY,
695
+ width: node.manualWidth ? node.manualWidth : undefined
695
696
  });
696
697
  newElement.width = Math.max(width, getNodeDefaultFontSize(true));
697
698
  newElement.height = height;
@@ -2409,7 +2410,7 @@ const addEmoji = (board, element, emojiItem) => {
2409
2410
  const newEmojis = [...emojis];
2410
2411
  newEmojis.push(emojiItem);
2411
2412
  const newElement = {
2412
- data: { topic: element.data.topic, emojis: newEmojis }
2413
+ data: { ...element.data, emojis: newEmojis }
2413
2414
  };
2414
2415
  const path = PlaitBoard.findPath(board, element);
2415
2416
  Transforms.setNode(board, newElement, path);
@@ -2417,7 +2418,7 @@ const addEmoji = (board, element, emojiItem) => {
2417
2418
  const removeEmoji = (board, element, emojiItem) => {
2418
2419
  const emojis = element.data.emojis.filter(value => value !== emojiItem);
2419
2420
  const newElement = {
2420
- data: { topic: element.data.topic }
2421
+ data: { ...element.data }
2421
2422
  };
2422
2423
  if (emojis.length > 0) {
2423
2424
  newElement.data.emojis = emojis;
@@ -2441,6 +2442,7 @@ const replaceEmoji = (board, element, oldEmoji, newEmoji) => {
2441
2442
  };
2442
2443
 
2443
2444
  const removeImage = (board, element) => {
2445
+ setImageFocus(board, element, false);
2444
2446
  const newElement = {
2445
2447
  data: { ...element.data }
2446
2448
  };
@@ -2951,7 +2953,7 @@ class MindNodeComponent extends PlaitPluginElementComponent {
2951
2953
  this.parentG = PlaitElement.getComponent(MindElement.getRoot(this.board, this.element)).rootG;
2952
2954
  this.drawShape();
2953
2955
  this.drawLink();
2954
- this.drawText();
2956
+ this.drawTopic();
2955
2957
  this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: this.textManage.isEditing });
2956
2958
  this.drawEmojis();
2957
2959
  this.drawExtend();
@@ -2960,18 +2962,6 @@ class MindNodeComponent extends PlaitPluginElementComponent {
2960
2962
  this.g.classList.add('branch');
2961
2963
  }
2962
2964
  }
2963
- editTopic() {
2964
- this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: true });
2965
- if (this.element.manualWidth) {
2966
- const width = NodeSpace.getNodeResizableWidth(this.board, this.element);
2967
- this.textManage.updateWidth(width);
2968
- }
2969
- this.textManage.edit((origin) => {
2970
- if (origin === ExitOrigin.default) {
2971
- this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: false });
2972
- }
2973
- });
2974
- }
2975
2965
  onContextChanged(value, previous) {
2976
2966
  const newNode = MindElement.getNode(value.element);
2977
2967
  const isEqualNode = RectangleClient.isEqual(this.node, newNode);
@@ -2984,8 +2974,7 @@ class MindNodeComponent extends PlaitPluginElementComponent {
2984
2974
  this.drawEmojis();
2985
2975
  this.drawExtend();
2986
2976
  this.imageDrawer.updateImage(this.g, previous.element, value.element);
2987
- this.textManage.updateText(this.element.data.topic);
2988
- this.textManage.updateRectangle();
2977
+ this.updateTopic();
2989
2978
  }
2990
2979
  else {
2991
2980
  const hasSameSelected = value.selected === previous.selected;
@@ -3064,9 +3053,25 @@ class MindNodeComponent extends PlaitPluginElementComponent {
3064
3053
  this.extendG.remove();
3065
3054
  }
3066
3055
  }
3067
- drawText() {
3056
+ drawTopic() {
3068
3057
  this.textManage.draw(this.element.data.topic);
3069
3058
  this.g.append(this.textManage.g);
3059
+ if (this.element.manualWidth) {
3060
+ const width = NodeSpace.getNodeResizableWidth(this.board, this.element);
3061
+ this.textManage.updateWidth(width);
3062
+ }
3063
+ }
3064
+ updateTopic() {
3065
+ this.textManage.updateText(this.element.data.topic);
3066
+ this.textManage.updateRectangle();
3067
+ }
3068
+ editTopic() {
3069
+ this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: true });
3070
+ this.textManage.edit((origin) => {
3071
+ if (origin === ExitOrigin.default) {
3072
+ this.activeDrawer.draw(this.element, this.g, { selected: this.selected, isEditing: false });
3073
+ }
3074
+ });
3070
3075
  }
3071
3076
  ngOnDestroy() {
3072
3077
  super.ngOnDestroy();
@@ -3476,7 +3481,10 @@ const insertClipboardData = (board, elements, targetPoint) => {
3476
3481
  if (item.isRoot) {
3477
3482
  newElement = adjustRootToNode(board, newElement);
3478
3483
  const styles = PlaitMind.isMind(targetParent) ? { fontFamily: BRANCH_FONT_FAMILY } : { fontFamily: DEFAULT_FONT_FAMILY };
3479
- const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, styles);
3484
+ const { width, height } = getTextSize(board, newElement.data.topic, TOPIC_DEFAULT_MAX_WORD_COUNT, {
3485
+ ...styles,
3486
+ width: newElement.manualWidth ? newElement.manualWidth : undefined
3487
+ });
3480
3488
  newElement.width = Math.max(width, getNodeDefaultFontSize());
3481
3489
  newElement.height = height;
3482
3490
  }
@@ -3940,7 +3948,6 @@ const withNodeImage = (board) => {
3940
3948
  const selectedImageElement = getSelectedImageElement(board);
3941
3949
  if (!PlaitBoard.isReadonly(board) && selectedImageElement && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
3942
3950
  addSelectedElement(board, selectedImageElement);
3943
- setImageFocus(board, selectedImageElement, false);
3944
3951
  MindTransforms.removeImage(board, selectedImageElement);
3945
3952
  return;
3946
3953
  }