@plait/draw 0.56.0 → 0.56.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.
@@ -47,8 +47,21 @@ export const memorizeLatestText = (element, operations) => {
47
47
  let textMemory = getMemorizedLatest(memorizeKey)?.text || {};
48
48
  const setNodeOperation = operations.find(operation => operation.type === 'set_node');
49
49
  if (setNodeOperation) {
50
- const newProperties = setNodeOperation.newProperties;
51
- textMemory = { ...textMemory, ...newProperties };
50
+ const { properties, newProperties } = setNodeOperation;
51
+ for (const key in newProperties) {
52
+ const value = newProperties[key];
53
+ if (value == null) {
54
+ delete textMemory[key];
55
+ }
56
+ else {
57
+ textMemory[key] = value;
58
+ }
59
+ }
60
+ for (const key in properties) {
61
+ if (!newProperties.hasOwnProperty(key)) {
62
+ delete textMemory[key];
63
+ }
64
+ }
52
65
  memorizeLatest(memorizeKey, 'text', textMemory);
53
66
  }
54
67
  };
@@ -72,4 +85,4 @@ export const memorizeLatestShape = (board, shape) => {
72
85
  export const getMemorizedLatestShape = (board) => {
73
86
  return memorizedShape.get(board);
74
87
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3JpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9tZW1vcml6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBMEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUM3QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtJQUN2QyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsT0FBTyxVQUFVLEVBQUUsSUFBSSxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxHQUFHLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtJQUNwRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BELFdBQVcsR0FBRyxPQUFPLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUMzRixDQUFDO1NBQU0sQ0FBQztRQUNKLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsTUFBTSxjQUFjLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDcEQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDOUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUF5QixFQUFFLFVBQTJCLEVBQUUsRUFBRTtJQUN6RixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3RCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQ3JGLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixNQUFNLGFBQWEsR0FBSSxnQkFBeUMsQ0FBQyxhQUFhLENBQUM7UUFDL0UsVUFBVSxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUNqRCxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQXFCLEVBQUUsRUFBRTtJQUM1RSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxJQUFJLEtBQUssS0FBSyxXQUFXLENBQUMsSUFBSSxJQUFJLFVBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxPQUFPO0lBQ1gsQ0FBQztJQUNELElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3pELE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBCYXNpY1NoYXBlcywgR2VvbWV0cnlTaGFwZXMsIE1lbW9yaXplS2V5LCBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRNZW1vcml6ZWRMYXRlc3QsIG1lbW9yaXplTGF0ZXN0IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBEcmF3UG9pbnRlclR5cGUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZU9wZXJhdGlvbiwgQmFzZVNldE5vZGVPcGVyYXRpb24gfSBmcm9tICdzbGF0ZSc7XG5cbmNvbnN0IFNIQVBFX01BWF9MRU5HVEggPSA2O1xuY29uc3QgbWVtb3JpemVkU2hhcGU6IFdlYWtNYXA8UGxhaXRCb2FyZCwgR2VvbWV0cnlTaGFwZXNbXT4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVLZXkgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgbGV0IGtleSA9ICcnO1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNUZXh0KGVsZW1lbnQpOiB7XG4gICAgICAgICAgICBrZXkgPSBNZW1vcml6ZUtleS50ZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzQmFzaWNTaGFwZShlbGVtZW50KToge1xuICAgICAgICAgICAga2V5ID0gTWVtb3JpemVLZXkuYmFzaWNTaGFwZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0Zsb3djaGFydChlbGVtZW50KToge1xuICAgICAgICAgICAga2V5ID0gTWVtb3JpemVLZXkuZmxvd2NoYXJ0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzTGluZShlbGVtZW50KToge1xuICAgICAgICAgICAga2V5ID0gTWVtb3JpemVLZXkubGluZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGluZU1lbW9yaXplZExhdGVzdCA9ICgpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gZ2V0TWVtb3JpemVkTGF0ZXN0KE1lbW9yaXplS2V5LmxpbmUpO1xuICAgIGRlbGV0ZSBwcm9wZXJ0aWVzPy50ZXh0O1xuICAgIHJldHVybiB7IC4uLnByb3BlcnRpZXMgfSB8fCB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIgPSAocG9pbnRlcjogRHJhd1BvaW50ZXJUeXBlKSA9PiB7XG4gICAgbGV0IG1lbW9yaXplS2V5ID0gJyc7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNCYXNpY1NoYXBlKHsgc2hhcGU6IHBvaW50ZXIgfSkpIHtcbiAgICAgICAgbWVtb3JpemVLZXkgPSBwb2ludGVyID09PSBCYXNpY1NoYXBlcy50ZXh0ID8gTWVtb3JpemVLZXkudGV4dCA6IE1lbW9yaXplS2V5LmJhc2ljU2hhcGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVtb3JpemVLZXkgPSBNZW1vcml6ZUtleS5mbG93Y2hhcnQ7XG4gICAgfVxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7IC4uLmdldE1lbW9yaXplZExhdGVzdChtZW1vcml6ZUtleSkgfSB8fCB7fTtcbiAgICBjb25zdCB0ZXh0UHJvcGVydGllcyA9IHsgLi4ucHJvcGVydGllcy50ZXh0IH0gfHwge307XG4gICAgZGVsZXRlIHByb3BlcnRpZXMudGV4dDtcbiAgICByZXR1cm4geyB0ZXh0UHJvcGVydGllcywgZ2VvbWV0cnlQcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIH07XG59O1xuXG5leHBvcnQgY29uc3QgbWVtb3JpemVMYXRlc3RUZXh0ID0gKGVsZW1lbnQ6IFBsYWl0RHJhd0VsZW1lbnQsIG9wZXJhdGlvbnM6IEJhc2VPcGVyYXRpb25bXSkgPT4ge1xuICAgIGNvbnN0IG1lbW9yaXplS2V5ID0gZ2V0TWVtb3JpemVLZXkoZWxlbWVudCk7XG4gICAgbGV0IHRleHRNZW1vcnkgPSBnZXRNZW1vcml6ZWRMYXRlc3QobWVtb3JpemVLZXkpPy50ZXh0IHx8IHt9O1xuICAgIGNvbnN0IHNldE5vZGVPcGVyYXRpb24gPSBvcGVyYXRpb25zLmZpbmQob3BlcmF0aW9uID0+IG9wZXJhdGlvbi50eXBlID09PSAnc2V0X25vZGUnKTtcbiAgICBpZiAoc2V0Tm9kZU9wZXJhdGlvbikge1xuICAgICAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0gKHNldE5vZGVPcGVyYXRpb24gYXMgQmFzZVNldE5vZGVPcGVyYXRpb24pLm5ld1Byb3BlcnRpZXM7XG4gICAgICAgIHRleHRNZW1vcnkgPSB7IC4uLnRleHRNZW1vcnksIC4uLm5ld1Byb3BlcnRpZXMgfTtcbiAgICAgICAgbWVtb3JpemVMYXRlc3QobWVtb3JpemVLZXksICd0ZXh0JywgdGV4dE1lbW9yeSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yaXplTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIGNvbnN0IHNoYXBlcyA9IG1lbW9yaXplZFNoYXBlLmhhcyhib2FyZCkgPyBtZW1vcml6ZWRTaGFwZS5nZXQoYm9hcmQpISA6IFtdO1xuICAgIGNvbnN0IHNoYXBlSW5kZXggPSBzaGFwZXMuaW5kZXhPZihzaGFwZSk7XG4gICAgaWYgKHNoYXBlID09PSBCYXNpY1NoYXBlcy50ZXh0IHx8IHNoYXBlSW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2hhcGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgc2hhcGVzLnNwbGljZShzaGFwZUluZGV4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2hhcGVzLmxlbmd0aCA9PT0gU0hBUEVfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgc2hhcGVzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNoYXBlcy51bnNoaWZ0KHNoYXBlKTtcbiAgICBtZW1vcml6ZWRTaGFwZS5zZXQoYm9hcmQsIHNoYXBlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVkTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gbWVtb3JpemVkU2hhcGUuZ2V0KGJvYXJkKTtcbn07XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3JpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9tZW1vcml6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBMEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUM3QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7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QUMsRUFBRSxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsSUFBSSxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTztJQUNYLENBQUM7SUFDRCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxDQUFDO1FBQ0osSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQmFzaWNTaGFwZXMsIEdlb21ldHJ5U2hhcGVzLCBNZW1vcml6ZUtleSwgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0TWVtb3JpemVkTGF0ZXN0LCBtZW1vcml6ZUxhdGVzdCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgRHJhd1BvaW50ZXJUeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJhc2VPcGVyYXRpb24sIEJhc2VTZXROb2RlT3BlcmF0aW9uLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuXG5jb25zdCBTSEFQRV9NQVhfTEVOR1RIID0gNjtcbmNvbnN0IG1lbW9yaXplZFNoYXBlOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIEdlb21ldHJ5U2hhcGVzW10+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IGdldE1lbW9yaXplS2V5ID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGxldCBrZXkgPSAnJztcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzVGV4dChlbGVtZW50KToge1xuICAgICAgICAgICAga2V5ID0gTWVtb3JpemVLZXkudGV4dDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0Jhc2ljU2hhcGUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmJhc2ljU2hhcGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNGbG93Y2hhcnQoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmZsb3djaGFydDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmxpbmU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ga2V5O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVNZW1vcml6ZWRMYXRlc3QgPSAoKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGdldE1lbW9yaXplZExhdGVzdChNZW1vcml6ZUtleS5saW5lKTtcbiAgICBkZWxldGUgcHJvcGVydGllcz8udGV4dDtcbiAgICByZXR1cm4geyAuLi5wcm9wZXJ0aWVzIH0gfHwge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyID0gKHBvaW50ZXI6IERyYXdQb2ludGVyVHlwZSkgPT4ge1xuICAgIGxldCBtZW1vcml6ZUtleSA9ICcnO1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzQmFzaWNTaGFwZSh7IHNoYXBlOiBwb2ludGVyIH0pKSB7XG4gICAgICAgIG1lbW9yaXplS2V5ID0gcG9pbnRlciA9PT0gQmFzaWNTaGFwZXMudGV4dCA/IE1lbW9yaXplS2V5LnRleHQgOiBNZW1vcml6ZUtleS5iYXNpY1NoYXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lbW9yaXplS2V5ID0gTWVtb3JpemVLZXkuZmxvd2NoYXJ0O1xuICAgIH1cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0geyAuLi5nZXRNZW1vcml6ZWRMYXRlc3QobWVtb3JpemVLZXkpIH0gfHwge307XG4gICAgY29uc3QgdGV4dFByb3BlcnRpZXMgPSB7IC4uLnByb3BlcnRpZXMudGV4dCB9IHx8IHt9O1xuICAgIGRlbGV0ZSBwcm9wZXJ0aWVzLnRleHQ7XG4gICAgcmV0dXJuIHsgdGV4dFByb3BlcnRpZXMsIGdlb21ldHJ5UHJvcGVydGllczogcHJvcGVydGllcyB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yaXplTGF0ZXN0VGV4dCA9IChlbGVtZW50OiBQbGFpdERyYXdFbGVtZW50LCBvcGVyYXRpb25zOiBCYXNlT3BlcmF0aW9uW10pID0+IHtcbiAgICBjb25zdCBtZW1vcml6ZUtleSA9IGdldE1lbW9yaXplS2V5KGVsZW1lbnQpO1xuICAgIGxldCB0ZXh0TWVtb3J5ID0gZ2V0TWVtb3JpemVkTGF0ZXN0KG1lbW9yaXplS2V5KT8udGV4dCB8fCB7fTtcbiAgICBjb25zdCBzZXROb2RlT3BlcmF0aW9uID0gb3BlcmF0aW9ucy5maW5kKG9wZXJhdGlvbiA9PiBvcGVyYXRpb24udHlwZSA9PT0gJ3NldF9ub2RlJyk7XG4gICAgaWYgKHNldE5vZGVPcGVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzIH0gPSBzZXROb2RlT3BlcmF0aW9uIGFzIEJhc2VTZXROb2RlT3BlcmF0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5ld1Byb3BlcnRpZXNba2V5IGFzIGtleW9mIFBhcnRpYWw8Tm9kZT5dO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGV4dE1lbW9yeVtrZXldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0TWVtb3J5W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBpZiAoIW5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0ZXh0TWVtb3J5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbWVtb3JpemVMYXRlc3QobWVtb3JpemVLZXksICd0ZXh0JywgdGV4dE1lbW9yeSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yaXplTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIGNvbnN0IHNoYXBlcyA9IG1lbW9yaXplZFNoYXBlLmhhcyhib2FyZCkgPyBtZW1vcml6ZWRTaGFwZS5nZXQoYm9hcmQpISA6IFtdO1xuICAgIGNvbnN0IHNoYXBlSW5kZXggPSBzaGFwZXMuaW5kZXhPZihzaGFwZSk7XG4gICAgaWYgKHNoYXBlID09PSBCYXNpY1NoYXBlcy50ZXh0IHx8IHNoYXBlSW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2hhcGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgc2hhcGVzLnNwbGljZShzaGFwZUluZGV4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2hhcGVzLmxlbmd0aCA9PT0gU0hBUEVfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgc2hhcGVzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNoYXBlcy51bnNoaWZ0KHNoYXBlKTtcbiAgICBtZW1vcml6ZWRTaGFwZS5zZXQoYm9hcmQsIHNoYXBlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVkTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gbWVtb3JpemVkU2hhcGUuZ2V0KGJvYXJkKTtcbn07XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { ACTIVE_STROKE_WIDTH, ThemeColorMode, createDebugGenerator, Point, RectangleClient, getElementById, rotatePointsByElement, createG, arrowPoints, createPath, distanceBetweenPointAndPoint, drawLinearPath, rotate, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPolylineHitRectangle, rotateAntiPointsByElement, rotatePoints, depthFirstRecursion, PlaitBoard, getIsRecursionFunc, idCreator, catmullRomFitting, setStrokeLinecap, findElements, createMask, createRect, getSelectedElements, isPointInPolygon, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRectangle, drawRoundRectangle, isPointInRoundRectangle, setPathStrokeLinecap, getCrossingPointsBetweenEllipseAndSegment, Direction, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, hasValidAngle, Path, PlaitNode, toViewBoxPoint, toHostPoint, isSelectionMoving, RgbaToHEX, getHitElementByPoint, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, preventTouchMove, createClipboardContext, WritableClipboardType, addClipboardContext, setAngleForG, CursorClass, PlaitElement, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, SELECTION_RECTANGLE_CLASS_NAME } from '@plait/core';
1
+ import { ACTIVE_STROKE_WIDTH, ThemeColorMode, createDebugGenerator, Point, RectangleClient, getElementById, rotatePointsByElement, createG, arrowPoints, createPath, distanceBetweenPointAndPoint, drawLinearPath, rotate, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPolylineHitRectangle, rotateAntiPointsByElement, rotatePoints, depthFirstRecursion, PlaitBoard, getIsRecursionFunc, idCreator, catmullRomFitting, setStrokeLinecap, findElements, createMask, createRect, getSelectedElements, isPointInPolygon, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRectangle, drawRoundRectangle, isPointInRoundRectangle, setPathStrokeLinecap, getCrossingPointsBetweenEllipseAndSegment, Direction, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, hasValidAngle, Path, PlaitNode, toViewBoxPoint, toHostPoint, isSelectionMoving, RgbaToHEX, getHitElementByPoint, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, preventTouchMove, WritableClipboardOperationType, createClipboardContext, WritableClipboardType, addClipboardContext, setAngleForG, CursorClass, PlaitElement, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, SELECTION_RECTANGLE_CLASS_NAME } from '@plait/core';
2
2
  import { removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, isSourceAndTargetIntersect, getPoints, DEFAULT_ROUTE_MARGIN, getPointByVectorComponent, getExtendPoint, getUnitVectorByPointAndPoint, Generator, RESIZE_HANDLE_DIAMETER, getPointOnPolyline, TRANSPARENT, getRectangleResizeHandleRefs, getRotatedResizeCursorClassByAngle, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, getMemorizedLatest, memorizeLatest, getCrossingPointsBetweenPointAndSegment, isPointOnSegment, getDirectionByPointOfRectangle, getDirectionFactor, getFirstTextManage, getDirectionByVector, getOppositeDirection, rotateVector, rotateVectorAnti90, getSourceAndTargetOuterRectangle, getNextPoint, normalizeShapePoints, getFirstTextEditor, PRIMARY_COLOR, CommonPluginElement, ActiveGenerator, canResize, WithTextPluginKey, drawPrimaryHandle, drawFillPrimaryHandle, isVirtualKey, isDelete, isSpaceHotkey, isCornerHandle, getIndexByResizeHandle, resetPointsAfterResize, withResize, drawHandle, getSymmetricHandleIndex, getResizeHandlePointByIndex, getDirectionFactorByDirectionComponent, isDndMode, isDrawingMode, getElementsText, acceptImageTypes, getElementOfFocusedImage, buildImage, isResizingByCondition, getRatioByPoint, getTextManages, ImageGenerator, ResizeHandle, addRotating, removeRotating, drawRotateHandle } from '@plait/common';
3
3
  import { Alignment, buildText, DEFAULT_FONT_SIZE, getTextSize, AlignEditor, TextManage } from '@plait/text';
4
4
  import { pointsOnBezierCurves } from 'points-on-curve';
@@ -79,11 +79,21 @@ const DefaultBasicShapeProperty = {
79
79
  strokeColor: '#333',
80
80
  strokeWidth: 2
81
81
  };
82
- const DefaultCloudShapeProperty = {
82
+ const DefaultPentagonArrowProperty = {
83
83
  width: 120,
84
- height: 100,
85
- strokeColor: '#333',
86
- strokeWidth: 2
84
+ height: 50
85
+ };
86
+ const DefaultTwoWayArrowProperty = {
87
+ width: 138,
88
+ height: 80
89
+ };
90
+ const DefaultArrowProperty = {
91
+ width: 100,
92
+ height: 80
93
+ };
94
+ const DefaultCloudProperty = {
95
+ width: 120,
96
+ height: 100
87
97
  };
88
98
  const DefaultTextProperty = {
89
99
  width: 36,
@@ -137,6 +147,14 @@ const DefaultMergeProperty = {
137
147
  width: 47,
138
148
  height: 33
139
149
  };
150
+ const DefaultBasicShapePropertyMap = {
151
+ [BasicShapes.pentagonArrow]: DefaultPentagonArrowProperty,
152
+ [BasicShapes.processArrow]: DefaultPentagonArrowProperty,
153
+ [BasicShapes.cloud]: DefaultCloudProperty,
154
+ [BasicShapes.twoWayArrow]: DefaultTwoWayArrowProperty,
155
+ [BasicShapes.leftArrow]: DefaultArrowProperty,
156
+ [BasicShapes.rightArrow]: DefaultArrowProperty
157
+ };
140
158
  const DefaultFlowchartPropertyMap = {
141
159
  [FlowchartSymbols.connector]: DefaultConnectorProperty,
142
160
  [FlowchartSymbols.process]: DefaultFlowchartProperty,
@@ -1057,8 +1075,21 @@ const memorizeLatestText = (element, operations) => {
1057
1075
  let textMemory = getMemorizedLatest(memorizeKey)?.text || {};
1058
1076
  const setNodeOperation = operations.find(operation => operation.type === 'set_node');
1059
1077
  if (setNodeOperation) {
1060
- const newProperties = setNodeOperation.newProperties;
1061
- textMemory = { ...textMemory, ...newProperties };
1078
+ const { properties, newProperties } = setNodeOperation;
1079
+ for (const key in newProperties) {
1080
+ const value = newProperties[key];
1081
+ if (value == null) {
1082
+ delete textMemory[key];
1083
+ }
1084
+ else {
1085
+ textMemory[key] = value;
1086
+ }
1087
+ }
1088
+ for (const key in properties) {
1089
+ if (!newProperties.hasOwnProperty(key)) {
1090
+ delete textMemory[key];
1091
+ }
1092
+ }
1062
1093
  memorizeLatest(memorizeKey, 'text', textMemory);
1063
1094
  }
1064
1095
  };
@@ -1696,11 +1727,12 @@ const PentagonEngine = createPolygonEngine({
1696
1727
  });
1697
1728
 
1698
1729
  const getPentagonArrowPoints = (rectangle) => {
1730
+ const wider = rectangle.width > rectangle.height / 2;
1699
1731
  return [
1700
1732
  [rectangle.x, rectangle.y],
1701
- [rectangle.x + (rectangle.width * 3) / 5, rectangle.y],
1733
+ [rectangle.x + (wider ? rectangle.width - rectangle.height / 2 : 0), rectangle.y],
1702
1734
  [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
1703
- [rectangle.x + (rectangle.width * 3) / 5, rectangle.y + rectangle.height],
1735
+ [rectangle.x + (wider ? rectangle.width - rectangle.height / 2 : 0), rectangle.y + rectangle.height],
1704
1736
  [rectangle.x, rectangle.y + rectangle.height]
1705
1737
  ];
1706
1738
  };
@@ -1710,8 +1742,10 @@ const PentagonArrowEngine = createPolygonEngine({
1710
1742
  return RectangleClient.getEdgeCenterPoints(rectangle);
1711
1743
  },
1712
1744
  getTextRectangle(element) {
1745
+ const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
1713
1746
  const rectangle = getTextRectangle(element);
1714
- rectangle.width = (rectangle.width * 3) / 5;
1747
+ const wider = elementRectangle.width > elementRectangle.height / 2 + 20;
1748
+ rectangle.width = wider ? elementRectangle.width - elementRectangle.height / 2 : rectangle.width;
1715
1749
  return rectangle;
1716
1750
  }
1717
1751
  });
@@ -1730,11 +1764,11 @@ const getProcessArrowPoints = (rectangle) => {
1730
1764
  const ProcessArrowEngine = createPolygonEngine({
1731
1765
  getPolygonPoints: getProcessArrowPoints,
1732
1766
  getTextRectangle(element) {
1733
- const rectangle = getTextRectangle(element);
1734
1767
  const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
1735
- const width = rectangle.width;
1736
- rectangle.width = elementRectangle.height / 2;
1737
- rectangle.x += elementRectangle.height / 2;
1768
+ const rectangle = getTextRectangle(element);
1769
+ const wider = elementRectangle.width > elementRectangle.height + 20;
1770
+ rectangle.width = wider ? elementRectangle.width - elementRectangle.height : rectangle.width;
1771
+ rectangle.x = wider ? elementRectangle.x + elementRectangle.height / 2 : rectangle.x;
1738
1772
  return rectangle;
1739
1773
  }
1740
1774
  });
@@ -3174,6 +3208,9 @@ const getCenterPointsOnPolygon = (points) => {
3174
3208
  const getDefaultFlowchartProperty = (symbol) => {
3175
3209
  return DefaultFlowchartPropertyMap[symbol];
3176
3210
  };
3211
+ const getDefaultBasicShapeProperty = (shape) => {
3212
+ return DefaultBasicShapePropertyMap[shape] || DefaultBasicShapeProperty;
3213
+ };
3177
3214
  const createDefaultFlowchart = (point) => {
3178
3215
  const decisionProperty = getDefaultFlowchartProperty(FlowchartSymbols.decision);
3179
3216
  const processProperty = getDefaultFlowchartProperty(FlowchartSymbols.process);
@@ -3267,10 +3304,7 @@ const getDefaultGeometryProperty = (pointer) => {
3267
3304
  return getDefaultFlowchartProperty(pointer);
3268
3305
  }
3269
3306
  else {
3270
- if (pointer === BasicShapes.cloud) {
3271
- return DefaultCloudShapeProperty;
3272
- }
3273
- return DefaultBasicShapeProperty;
3307
+ return getDefaultBasicShapeProperty(pointer);
3274
3308
  }
3275
3309
  };
3276
3310
  const getDefaultTextPoints = (board, centerPoint, fontSize) => {
@@ -3692,7 +3726,9 @@ const insertGeometry = (board, points, shape) => {
3692
3726
  return newElement;
3693
3727
  };
3694
3728
  const insertGeometryByVector = (board, point, shape, vector) => {
3695
- const shapeProperty = DefaultFlowchartPropertyMap[shape] || DefaultBasicShapeProperty;
3729
+ const shapeProperty = DefaultFlowchartPropertyMap[shape] ||
3730
+ DefaultBasicShapePropertyMap[shape] ||
3731
+ DefaultBasicShapeProperty;
3696
3732
  const direction = getDirectionByVector(vector);
3697
3733
  if (direction) {
3698
3734
  let offset = 0;
@@ -4954,11 +4990,11 @@ const withDrawFragment = (baseBoard) => {
4954
4990
  }
4955
4991
  return getDeletedFragment(data);
4956
4992
  };
4957
- board.buildFragment = (clipboardContext, rectangle, type, originData) => {
4993
+ board.buildFragment = (clipboardContext, rectangle, operationType, originData) => {
4958
4994
  const targetDrawElements = getSelectedDrawElements(board, originData);
4959
4995
  let boundLineElements = [];
4960
4996
  if (targetDrawElements.length) {
4961
- if (type === 'cut') {
4997
+ if (operationType === WritableClipboardOperationType.cut) {
4962
4998
  const geometryElements = targetDrawElements.filter(value => PlaitDrawElement.isGeometry(value));
4963
4999
  const lineElements = targetDrawElements.filter(value => PlaitDrawElement.isLine(value));
4964
5000
  boundLineElements = getBoundedLineElements(board, geometryElements).filter(line => !lineElements.includes(line));
@@ -4977,9 +5013,9 @@ const withDrawFragment = (baseBoard) => {
4977
5013
  });
4978
5014
  }
4979
5015
  }
4980
- return buildFragment(clipboardContext, rectangle, type, originData);
5016
+ return buildFragment(clipboardContext, rectangle, operationType, originData);
4981
5017
  };
4982
- board.insertFragment = (clipboardData, targetPoint) => {
5018
+ board.insertFragment = (clipboardData, targetPoint, operationType) => {
4983
5019
  const selectedElements = getSelectedElements(board);
4984
5020
  if (clipboardData?.files?.length) {
4985
5021
  const acceptImageArray = acceptImageTypes.map(type => 'image/' + type);
@@ -5009,7 +5045,7 @@ const withDrawFragment = (baseBoard) => {
5009
5045
  }
5010
5046
  }
5011
5047
  }
5012
- insertFragment(clipboardData, targetPoint);
5048
+ insertFragment(clipboardData, targetPoint, operationType);
5013
5049
  };
5014
5050
  return board;
5015
5051
  };
@@ -5826,5 +5862,5 @@ const withDraw = (board) => {
5826
5862
  * Generated bundle index. Do not edit.
5827
5863
  */
5828
5864
 
5829
- export { BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultBasicShapeProperty, DefaultCloudShapeProperty, DefaultConnectorProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDocumentProperty, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultGeometryActiveStyle, DefaultGeometryStyle, DefaultInternalStorageProperty, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultTextProperty, DrawThemeColors, DrawTransforms, FlowchartSymbols, GeometryComponent, GeometryThreshold, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LineComponent, LineHandleKey, LineMarkerType, LineShape, MemorizeKey, PlaitDrawElement, PlaitGeometry, PlaitLine, Q2C, ShapeDefaultSpace, StrokeStyle, WithLineAutoCompletePluginKey, alignElbowSegment, alignPoints, createDefaultFlowchart, createDefaultGeometry, createGeometryElement, createLineElement, createTextElement, drawBoundReaction, drawGeometry, drawLine, drawLineArrow, editText, getAutoCompletePoints, getBasicPointers, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultTextPoints, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryPointers, getHitConnection, getHitConnectorPoint, getHitIndexOfAutoCompletePoint, getIndexAndDeleteCountByKeyPoint, getLineDashByElement, getLineHandleRefPair, getLineMemorizedLatest, getLinePointers, getLinePoints, getLineTextRectangle, getLines, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedLineElements, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getTextRectangle, getTextShapeProperty, getVectorByConnection, handleLineCreating, hasIllegalElbowPoint, insertElement, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitLine, isHitLineText, isHitPolyLine, isInsideOfShape, isRectangleHitDrawElement, isSelfLoop, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, withDraw, withLineAutoComplete };
5865
+ export { BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultArrowProperty, DefaultBasicShapeProperty, DefaultBasicShapePropertyMap, DefaultCloudProperty, DefaultConnectorProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDocumentProperty, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultGeometryActiveStyle, DefaultGeometryStyle, DefaultInternalStorageProperty, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultPentagonArrowProperty, DefaultTextProperty, DefaultTwoWayArrowProperty, DrawThemeColors, DrawTransforms, FlowchartSymbols, GeometryComponent, GeometryThreshold, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LineComponent, LineHandleKey, LineMarkerType, LineShape, MemorizeKey, PlaitDrawElement, PlaitGeometry, PlaitLine, Q2C, ShapeDefaultSpace, StrokeStyle, WithLineAutoCompletePluginKey, alignElbowSegment, alignPoints, createDefaultFlowchart, createDefaultGeometry, createGeometryElement, createLineElement, createTextElement, drawBoundReaction, drawGeometry, drawLine, drawLineArrow, editText, getAutoCompletePoints, getBasicPointers, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultTextPoints, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryPointers, getHitConnection, getHitConnectorPoint, getHitIndexOfAutoCompletePoint, getIndexAndDeleteCountByKeyPoint, getLineDashByElement, getLineHandleRefPair, getLineMemorizedLatest, getLinePointers, getLinePoints, getLineTextRectangle, getLines, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedLineElements, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getTextRectangle, getTextShapeProperty, getVectorByConnection, handleLineCreating, hasIllegalElbowPoint, insertElement, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitLine, isHitLineText, isHitPolyLine, isInsideOfShape, isRectangleHitDrawElement, isSelfLoop, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, withDraw, withLineAutoComplete };
5830
5866
  //# sourceMappingURL=plait-draw.mjs.map