@univerjs/docs-drawing 1.0.0-rc.0 → 1.0.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.
package/lib/cjs/facade.js CHANGED
@@ -491,7 +491,8 @@ var FDocumentImageMixin = class extends _univerjs_docs_facade.FDocument {
491
491
  return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
492
492
  }
493
493
  getImages() {
494
- const { drawings, drawingsOrder: drawingIds } = (0, _univerjs_docs_drawing.collectDocDrawings)(this.getDocumentDataModel().getSnapshot());
494
+ const documentDataModel = this.getDocumentDataModel();
495
+ const { drawings, drawingsOrder: drawingIds } = (0, _univerjs_docs_drawing.collectDocDrawings)(documentDataModel.getSnapshot());
495
496
  return drawingIds.filter((drawingId) => {
496
497
  var _drawings$drawingId;
497
498
  return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_IMAGE;
package/lib/cjs/index.js CHANGED
@@ -68,7 +68,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
68
68
  }
69
69
 
70
70
  //#endregion
71
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
71
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
72
72
  function _typeof(o) {
73
73
  "@babel/helpers - typeof";
74
74
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -79,7 +79,7 @@ function _typeof(o) {
79
79
  }
80
80
 
81
81
  //#endregion
82
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
82
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
83
83
  function toPrimitive(t, r) {
84
84
  if ("object" != _typeof(t) || !t) return t;
85
85
  var e = t[Symbol.toPrimitive];
@@ -92,14 +92,14 @@ function toPrimitive(t, r) {
92
92
  }
93
93
 
94
94
  //#endregion
95
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
95
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
96
96
  function toPropertyKey(t) {
97
97
  var i = toPrimitive(t, "string");
98
98
  return "symbol" == _typeof(i) ? i : i + "";
99
99
  }
100
100
 
101
101
  //#endregion
102
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
102
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
103
103
  function _defineProperty(e, r, t) {
104
104
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
105
105
  value: t,
@@ -229,12 +229,17 @@ const RemoveDocDrawingCommand = {
229
229
  if (removeCustomBlocks.length === 0) return false;
230
230
  const drawings = source.drawings ?? {};
231
231
  const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
232
- const removeDrawingSnapshots = removeCustomBlocks.map((block) => drawings[block.blockId]).filter((drawing) => drawing != null);
232
+ const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
233
+ let previousSize = -1;
234
+ while (previousSize !== removeIds.size) {
235
+ previousSize = removeIds.size;
236
+ for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
237
+ }
238
+ const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
233
239
  const resourceRedoMutations = [];
234
240
  const resourceUndoMutations = [];
235
241
  const resourceMutationGroups = [];
236
- for (const block of removeCustomBlocks) {
237
- const { blockId } = block;
242
+ for (const blockId of removeIds) {
238
243
  const drawing = drawings[blockId];
239
244
  if (drawing == null) continue;
240
245
  const removeDrawingParam = removeDrawingParamById.get(blockId);
@@ -293,9 +298,8 @@ const RemoveDocDrawingCommand = {
293
298
  }
294
299
  rawActions.push(jsonX.editOp(textX.serialize(), (0, _univerjs_core.getRichTextEditPath)(documentDataModel, segmentId)));
295
300
  const drawingOrder = source.drawingsOrder ?? [];
296
- const resourceBlocks = [...removeCustomBlocks].sort((left, right) => drawingOrder.indexOf(right.blockId) - drawingOrder.indexOf(left.blockId));
297
- for (const block of resourceBlocks) {
298
- const { blockId } = block;
301
+ const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
302
+ for (const blockId of resourceIds) {
299
303
  const drawingIndex = drawingOrder.indexOf(blockId);
300
304
  if (drawings[blockId]) rawActions.push(jsonX.removeOp([
301
305
  ...prefix,
@@ -448,14 +452,16 @@ const UpdateDrawingDocTransformCommand = {
448
452
  const source = findDocDrawing(snapshot, drawingId);
449
453
  if (!source) return false;
450
454
  const oldDrawing = source.drawing;
451
- const oldValue = key === "srcRect" ? oldDrawing === null || oldDrawing === void 0 ? void 0 : oldDrawing.srcRect : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
455
+ const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
456
+ const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
452
457
  if (!_univerjs_core.Tools.diffValue(oldValue, value)) {
453
- const path = key === "srcRect" ? [...source.path, key] : [
458
+ const path = isImageProperty ? [...source.path, key] : [
454
459
  ...source.path,
455
460
  "docTransform",
456
461
  key
457
462
  ];
458
- actions.push(oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value));
463
+ const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
464
+ actions.push(action);
459
465
  }
460
466
  }
461
467
  return Boolean(commandService.syncExecuteCommand(_univerjs_docs.RichTextEditingMutation.id, {
@@ -580,7 +586,7 @@ var DocDrawingService = class extends _univerjs_drawing.UnitDrawingService {};
580
586
  const IDocDrawingService = (0, _univerjs_core.createIdentifier)("univer.doc.plugin.doc-drawing.service");
581
587
 
582
588
  //#endregion
583
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
589
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
584
590
  function __decorateParam(paramIndex, decorator) {
585
591
  return function(target, key) {
586
592
  decorator(target, key, paramIndex);
@@ -588,7 +594,7 @@ function __decorateParam(paramIndex, decorator) {
588
594
  }
589
595
 
590
596
  //#endregion
591
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
597
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
592
598
  function __decorate(decorators, target, key, desc) {
593
599
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
594
600
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -734,7 +740,7 @@ DocDrawingController = __decorate([
734
740
  //#endregion
735
741
  //#region package.json
736
742
  var name = "@univerjs/docs-drawing";
737
- var version = "1.0.0-rc.0";
743
+ var version = "1.0.1";
738
744
 
739
745
  //#endregion
740
746
  //#region src/config/config.ts
package/lib/es/facade.js CHANGED
@@ -490,7 +490,8 @@ var FDocumentImageMixin = class extends FDocument {
490
490
  return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
491
491
  }
492
492
  getImages() {
493
- const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(this.getDocumentDataModel().getSnapshot());
493
+ const documentDataModel = this.getDocumentDataModel();
494
+ const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(documentDataModel.getSnapshot());
494
495
  return drawingIds.filter((drawingId) => {
495
496
  var _drawings$drawingId;
496
497
  return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === DrawingTypeEnum.DRAWING_IMAGE;
package/lib/es/index.js CHANGED
@@ -67,7 +67,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
67
67
  }
68
68
 
69
69
  //#endregion
70
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
70
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
71
71
  function _typeof(o) {
72
72
  "@babel/helpers - typeof";
73
73
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -78,7 +78,7 @@ function _typeof(o) {
78
78
  }
79
79
 
80
80
  //#endregion
81
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
81
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
82
82
  function toPrimitive(t, r) {
83
83
  if ("object" != _typeof(t) || !t) return t;
84
84
  var e = t[Symbol.toPrimitive];
@@ -91,14 +91,14 @@ function toPrimitive(t, r) {
91
91
  }
92
92
 
93
93
  //#endregion
94
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
94
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
95
95
  function toPropertyKey(t) {
96
96
  var i = toPrimitive(t, "string");
97
97
  return "symbol" == _typeof(i) ? i : i + "";
98
98
  }
99
99
 
100
100
  //#endregion
101
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
101
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
102
102
  function _defineProperty(e, r, t) {
103
103
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
104
104
  value: t,
@@ -228,12 +228,17 @@ const RemoveDocDrawingCommand = {
228
228
  if (removeCustomBlocks.length === 0) return false;
229
229
  const drawings = source.drawings ?? {};
230
230
  const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
231
- const removeDrawingSnapshots = removeCustomBlocks.map((block) => drawings[block.blockId]).filter((drawing) => drawing != null);
231
+ const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
232
+ let previousSize = -1;
233
+ while (previousSize !== removeIds.size) {
234
+ previousSize = removeIds.size;
235
+ for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
236
+ }
237
+ const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
232
238
  const resourceRedoMutations = [];
233
239
  const resourceUndoMutations = [];
234
240
  const resourceMutationGroups = [];
235
- for (const block of removeCustomBlocks) {
236
- const { blockId } = block;
241
+ for (const blockId of removeIds) {
237
242
  const drawing = drawings[blockId];
238
243
  if (drawing == null) continue;
239
244
  const removeDrawingParam = removeDrawingParamById.get(blockId);
@@ -292,9 +297,8 @@ const RemoveDocDrawingCommand = {
292
297
  }
293
298
  rawActions.push(jsonX.editOp(textX.serialize(), getRichTextEditPath(documentDataModel, segmentId)));
294
299
  const drawingOrder = source.drawingsOrder ?? [];
295
- const resourceBlocks = [...removeCustomBlocks].sort((left, right) => drawingOrder.indexOf(right.blockId) - drawingOrder.indexOf(left.blockId));
296
- for (const block of resourceBlocks) {
297
- const { blockId } = block;
300
+ const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
301
+ for (const blockId of resourceIds) {
298
302
  const drawingIndex = drawingOrder.indexOf(blockId);
299
303
  if (drawings[blockId]) rawActions.push(jsonX.removeOp([
300
304
  ...prefix,
@@ -447,14 +451,16 @@ const UpdateDrawingDocTransformCommand = {
447
451
  const source = findDocDrawing(snapshot, drawingId);
448
452
  if (!source) return false;
449
453
  const oldDrawing = source.drawing;
450
- const oldValue = key === "srcRect" ? oldDrawing === null || oldDrawing === void 0 ? void 0 : oldDrawing.srcRect : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
454
+ const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
455
+ const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
451
456
  if (!Tools.diffValue(oldValue, value)) {
452
- const path = key === "srcRect" ? [...source.path, key] : [
457
+ const path = isImageProperty ? [...source.path, key] : [
453
458
  ...source.path,
454
459
  "docTransform",
455
460
  key
456
461
  ];
457
- actions.push(oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value));
462
+ const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
463
+ actions.push(action);
458
464
  }
459
465
  }
460
466
  return Boolean(commandService.syncExecuteCommand(RichTextEditingMutation.id, {
@@ -579,7 +585,7 @@ var DocDrawingService = class extends UnitDrawingService {};
579
585
  const IDocDrawingService = createIdentifier("univer.doc.plugin.doc-drawing.service");
580
586
 
581
587
  //#endregion
582
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
588
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
583
589
  function __decorateParam(paramIndex, decorator) {
584
590
  return function(target, key) {
585
591
  decorator(target, key, paramIndex);
@@ -587,7 +593,7 @@ function __decorateParam(paramIndex, decorator) {
587
593
  }
588
594
 
589
595
  //#endregion
590
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
596
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
591
597
  function __decorate(decorators, target, key, desc) {
592
598
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
593
599
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -733,7 +739,7 @@ DocDrawingController = __decorate([
733
739
  //#endregion
734
740
  //#region package.json
735
741
  var name = "@univerjs/docs-drawing";
736
- var version = "1.0.0-rc.0";
742
+ var version = "1.0.1";
737
743
 
738
744
  //#endregion
739
745
  //#region src/config/config.ts
package/lib/facade.js CHANGED
@@ -490,7 +490,8 @@ var FDocumentImageMixin = class extends FDocument {
490
490
  return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
491
491
  }
492
492
  getImages() {
493
- const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(this.getDocumentDataModel().getSnapshot());
493
+ const documentDataModel = this.getDocumentDataModel();
494
+ const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(documentDataModel.getSnapshot());
494
495
  return drawingIds.filter((drawingId) => {
495
496
  var _drawings$drawingId;
496
497
  return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === DrawingTypeEnum.DRAWING_IMAGE;
package/lib/index.js CHANGED
@@ -67,7 +67,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
67
67
  }
68
68
 
69
69
  //#endregion
70
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
70
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
71
71
  function _typeof(o) {
72
72
  "@babel/helpers - typeof";
73
73
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -78,7 +78,7 @@ function _typeof(o) {
78
78
  }
79
79
 
80
80
  //#endregion
81
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
81
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
82
82
  function toPrimitive(t, r) {
83
83
  if ("object" != _typeof(t) || !t) return t;
84
84
  var e = t[Symbol.toPrimitive];
@@ -91,14 +91,14 @@ function toPrimitive(t, r) {
91
91
  }
92
92
 
93
93
  //#endregion
94
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
94
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
95
95
  function toPropertyKey(t) {
96
96
  var i = toPrimitive(t, "string");
97
97
  return "symbol" == _typeof(i) ? i : i + "";
98
98
  }
99
99
 
100
100
  //#endregion
101
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
101
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
102
102
  function _defineProperty(e, r, t) {
103
103
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
104
104
  value: t,
@@ -228,12 +228,17 @@ const RemoveDocDrawingCommand = {
228
228
  if (removeCustomBlocks.length === 0) return false;
229
229
  const drawings = source.drawings ?? {};
230
230
  const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
231
- const removeDrawingSnapshots = removeCustomBlocks.map((block) => drawings[block.blockId]).filter((drawing) => drawing != null);
231
+ const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
232
+ let previousSize = -1;
233
+ while (previousSize !== removeIds.size) {
234
+ previousSize = removeIds.size;
235
+ for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
236
+ }
237
+ const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
232
238
  const resourceRedoMutations = [];
233
239
  const resourceUndoMutations = [];
234
240
  const resourceMutationGroups = [];
235
- for (const block of removeCustomBlocks) {
236
- const { blockId } = block;
241
+ for (const blockId of removeIds) {
237
242
  const drawing = drawings[blockId];
238
243
  if (drawing == null) continue;
239
244
  const removeDrawingParam = removeDrawingParamById.get(blockId);
@@ -292,9 +297,8 @@ const RemoveDocDrawingCommand = {
292
297
  }
293
298
  rawActions.push(jsonX.editOp(textX.serialize(), getRichTextEditPath(documentDataModel, segmentId)));
294
299
  const drawingOrder = source.drawingsOrder ?? [];
295
- const resourceBlocks = [...removeCustomBlocks].sort((left, right) => drawingOrder.indexOf(right.blockId) - drawingOrder.indexOf(left.blockId));
296
- for (const block of resourceBlocks) {
297
- const { blockId } = block;
300
+ const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
301
+ for (const blockId of resourceIds) {
298
302
  const drawingIndex = drawingOrder.indexOf(blockId);
299
303
  if (drawings[blockId]) rawActions.push(jsonX.removeOp([
300
304
  ...prefix,
@@ -447,14 +451,16 @@ const UpdateDrawingDocTransformCommand = {
447
451
  const source = findDocDrawing(snapshot, drawingId);
448
452
  if (!source) return false;
449
453
  const oldDrawing = source.drawing;
450
- const oldValue = key === "srcRect" ? oldDrawing === null || oldDrawing === void 0 ? void 0 : oldDrawing.srcRect : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
454
+ const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
455
+ const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
451
456
  if (!Tools.diffValue(oldValue, value)) {
452
- const path = key === "srcRect" ? [...source.path, key] : [
457
+ const path = isImageProperty ? [...source.path, key] : [
453
458
  ...source.path,
454
459
  "docTransform",
455
460
  key
456
461
  ];
457
- actions.push(oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value));
462
+ const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
463
+ actions.push(action);
458
464
  }
459
465
  }
460
466
  return Boolean(commandService.syncExecuteCommand(RichTextEditingMutation.id, {
@@ -579,7 +585,7 @@ var DocDrawingService = class extends UnitDrawingService {};
579
585
  const IDocDrawingService = createIdentifier("univer.doc.plugin.doc-drawing.service");
580
586
 
581
587
  //#endregion
582
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
588
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
583
589
  function __decorateParam(paramIndex, decorator) {
584
590
  return function(target, key) {
585
591
  decorator(target, key, paramIndex);
@@ -587,7 +593,7 @@ function __decorateParam(paramIndex, decorator) {
587
593
  }
588
594
 
589
595
  //#endregion
590
- //#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
596
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
591
597
  function __decorate(decorators, target, key, desc) {
592
598
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
593
599
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -733,7 +739,7 @@ DocDrawingController = __decorate([
733
739
  //#endregion
734
740
  //#region package.json
735
741
  var name = "@univerjs/docs-drawing";
736
- var version = "1.0.0-rc.0";
742
+ var version = "1.0.1";
737
743
 
738
744
  //#endregion
739
745
  //#region src/config/config.ts
@@ -14,10 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { ICommand, IObjectPositionH, IObjectPositionV, ISize, ISrcRect, Nullable } from '@univerjs/core';
17
+ import type { IDocImage } from '../../services/doc-drawing.service';
17
18
  export interface IDrawingDocTransform {
18
19
  drawingId: string;
19
- key: 'size' | 'angle' | 'positionH' | 'positionV' | 'flipX' | 'flipY' | 'srcRect';
20
- value: ISize | number | boolean | IObjectPositionH | IObjectPositionV | Nullable<ISrcRect>;
20
+ key: 'size' | 'angle' | 'positionH' | 'positionV' | 'flipX' | 'flipY' | 'srcRect' | 'prstGeom' | 'adjustValues';
21
+ value: ISize | number | boolean | IObjectPositionH | IObjectPositionV | Nullable<ISrcRect> | IDocImage['prstGeom'] | IDocImage['adjustValues'];
21
22
  }
22
23
  export interface IUpdateDrawingDocTransformCommandParams {
23
24
  unitId: string;
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class extends o.FBase{constructor(e,t,n){super(),this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.size)??null}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionH)??null}getPositionV(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionV)??null}getImageData(){var e;let n=(e=(0,r.findDocDrawing)(this._document.getDocumentDataModel().getSnapshot(),this._imageId))==null?void 0:e.drawing;return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={},notes:r={}}=this._document.getDocumentDataModel().getSnapshot(),i=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(r).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of i){var a;let n=t==null||(a=t.customBlocks)==null?void 0:a.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){let i=this.getId(),a=(0,t.generateRandomId)(6),o=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),c=(0,n.buildDocTransform)(o.width,o.height),u=e.wrappingStyle??r.TextWrappingStyle.INLINE,d={...c,angle:e.angle??c.angle,positionH:e.positionH??c.positionH,positionV:e.positionV??c.positionV},f=(0,n.docDrawingPositionToTransform)(d),p={unitId:i,subUnitId:i,drawingId:a,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:f,docTransform:d,behindDoc:u===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[u],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:i,drawings:[p],textRange:e.textRange})?this._injector.createInstance(s,this,a,this._injector):null}getImage(e){var n;let i=(n=(0,r.findDocDrawing)(this.getDocumentDataModel().getSnapshot(),e))==null?void 0:n.drawing;return!i||i.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){let{drawings:e,drawingsOrder:n}=(0,r.collectDocDrawings)(this.getDocumentDataModel().getSnapshot());return n.filter(n=>{var r;return((r=e[n])==null?void 0:r.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE}).map(e=>this._injector.createInstance(s,this,e,this._injector))}async _getIntrinsicSize(e,n){let r=this._injector.has(t.IImageIoService)?this._injector.get(t.IImageIoService):null,i=e;if(n===t.ImageSourceType.UUID&&r)i=await r.getImage(e);else if(n===t.ImageSourceType.URL&&this._injector.has(t.IURLImageService))try{i=await this._injector.get(t.IURLImageService).getImage(e)}catch{i=e}let{width:o,height:s,image:c}=await(0,a.getImageSize)(i);return r==null||r.addImageSourceCache(e,n,c),{width:o,height:s}}};function l(e,t){let{width:n,height:r}=e;if(t.width!=null&&t.height!=null)return{width:t.width,height:t.height};if(t.width!=null)return{width:t.width,height:r*t.width/n};if(t.height!=null)return{width:n*t.height/r,height:t.height};let i=Math.min(1,a.DRAWING_IMAGE_WIDTH_LIMIT/n,a.DRAWING_IMAGE_HEIGHT_LIMIT/r);return{width:n*i,height:r*i}}i.FDocument.extend(c);var u=class extends o.FEnum{get TextWrappingStyle(){return r.TextWrappingStyle}get DocsImageRelativeFromH(){return t.ObjectRelativeFromH}get DocsImageRelativeFromV(){return t.ObjectRelativeFromV}};o.FEnum.extend(u),e.FDocumentImage=s});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class extends o.FBase{constructor(e,t,n){super(),this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.size)??null}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionH)??null}getPositionV(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionV)??null}getImageData(){var e;let n=(e=(0,r.findDocDrawing)(this._document.getDocumentDataModel().getSnapshot(),this._imageId))==null?void 0:e.drawing;return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={},notes:r={}}=this._document.getDocumentDataModel().getSnapshot(),i=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(r).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of i){var a;let n=t==null||(a=t.customBlocks)==null?void 0:a.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){let i=this.getId(),a=(0,t.generateRandomId)(6),o=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),c=(0,n.buildDocTransform)(o.width,o.height),u=e.wrappingStyle??r.TextWrappingStyle.INLINE,d={...c,angle:e.angle??c.angle,positionH:e.positionH??c.positionH,positionV:e.positionV??c.positionV},f=(0,n.docDrawingPositionToTransform)(d),p={unitId:i,subUnitId:i,drawingId:a,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:f,docTransform:d,behindDoc:u===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[u],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:i,drawings:[p],textRange:e.textRange})?this._injector.createInstance(s,this,a,this._injector):null}getImage(e){var n;let i=(n=(0,r.findDocDrawing)(this.getDocumentDataModel().getSnapshot(),e))==null?void 0:n.drawing;return!i||i.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){let e=this.getDocumentDataModel(),{drawings:n,drawingsOrder:i}=(0,r.collectDocDrawings)(e.getSnapshot());return i.filter(e=>{var r;return((r=n[e])==null?void 0:r.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE}).map(e=>this._injector.createInstance(s,this,e,this._injector))}async _getIntrinsicSize(e,n){let r=this._injector.has(t.IImageIoService)?this._injector.get(t.IImageIoService):null,i=e;if(n===t.ImageSourceType.UUID&&r)i=await r.getImage(e);else if(n===t.ImageSourceType.URL&&this._injector.has(t.IURLImageService))try{i=await this._injector.get(t.IURLImageService).getImage(e)}catch{i=e}let{width:o,height:s,image:c}=await(0,a.getImageSize)(i);return r==null||r.addImageSourceCache(e,n,c),{width:o,height:s}}};function l(e,t){let{width:n,height:r}=e;if(t.width!=null&&t.height!=null)return{width:t.width,height:t.height};if(t.width!=null)return{width:t.width,height:r*t.width/n};if(t.height!=null)return{width:n*t.height/r,height:t.height};let i=Math.min(1,a.DRAWING_IMAGE_WIDTH_LIMIT/n,a.DRAWING_IMAGE_HEIGHT_LIMIT/r);return{width:n*i,height:r*i}}i.FDocument.extend(c);var u=class extends o.FEnum{get TextWrappingStyle(){return r.TextWrappingStyle}get DocsImageRelativeFromH(){return t.ObjectRelativeFromH}get DocsImageRelativeFromV(){return t.ObjectRelativeFromV}};o.FEnum.extend(u),e.FDocumentImage=s});
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))!i.drawings||Object.keys(i.drawings).length===0||(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=A.map(e=>j[e.blockId]).filter(e=>e!=null),P=[],F=[],I=[];for(let e of A){let{blockId:t}=e,n=j[t];if(n==null)continue;let r=M.get(t),i=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(r==null?void 0:r.subUnitId)??p,drawing:n,removeDrawings:N});(i.redoMutations.length!==0||i.undoMutations.length!==0)&&(P.push(...i.redoMutations),F.push(...i.undoMutations),I.push(i))}if(!g(I,o))return!1;let L=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,R=null;(P.length>0||F.length>0)&&(R=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:P,undoMutations:F,id:L}));let z=new t.MemoryCursor,B=A[0].startIndex,V=[{startOffset:B,endOffset:B}],H=h(m),U={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:V,historyActions:H}},W=[];for(let e of A){let{startIndex:n}=e;n>z.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-z.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),z.moveCursorTo(n+1)}W.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let G=T.drawingsOrder??[],K=[...A].sort((e,t)=>G.indexOf(t.blockId)-G.indexOf(e.blockId));for(let e of K){let{blockId:t}=e,n=G.indexOf(t);j[t]&&W.push(O.removeOp([...E,`drawings`,t],j[t])),n>=0&&W.push(O.removeOp([...E,`drawingsOrder`,n],t))}U.params.actions=W.reduce((e,n)=>t.JSONX.compose(e,n),null);let q=o.syncExecuteCommand(U.id,U.params);return!q&&R!=null?(R.dispose(),s.rollback(L,p),!1):(R==null||R.dispose(),!!q)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`?a==null?void 0:a.srcRect:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(o,r)){let e=n===`srcRect`?[...i.path,n]:[...i.path,`docTransform`,n];p.push(o===void 0?d.insertOp(e,r):d.replaceOp(e,o,r))}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.0-rc.0`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))i.drawings&&Object.keys(i.drawings).length!==0&&(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=new Set(A.map(e=>e.blockId)),P=-1;for(;P!==N.size;){P=N.size;for(let e of Object.values(j))e.groupId&&N.has(e.groupId)&&N.add(e.drawingId)}let F=[...N].map(e=>j[e]).filter(e=>e!=null),I=[],L=[],R=[];for(let e of N){let t=j[e];if(t==null)continue;let n=M.get(e),r=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(n==null?void 0:n.subUnitId)??p,drawing:t,removeDrawings:F});(r.redoMutations.length!==0||r.undoMutations.length!==0)&&(I.push(...r.redoMutations),L.push(...r.undoMutations),R.push(r))}if(!g(R,o))return!1;let z=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,B=null;(I.length>0||L.length>0)&&(B=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:I,undoMutations:L,id:z}));let V=new t.MemoryCursor,H=A[0].startIndex,U=[{startOffset:H,endOffset:H}],W=h(m),G={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:U,historyActions:W}},K=[];for(let e of A){let{startIndex:n}=e;n>V.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-V.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),V.moveCursorTo(n+1)}K.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let q=T.drawingsOrder??[],J=[...N].sort((e,t)=>q.indexOf(t)-q.indexOf(e));for(let e of J){let t=q.indexOf(e);j[e]&&K.push(O.removeOp([...E,`drawings`,e],j[e])),t>=0&&K.push(O.removeOp([...E,`drawingsOrder`,t],e))}G.params.actions=K.reduce((e,n)=>t.JSONX.compose(e,n),null);let Y=o.syncExecuteCommand(G.id,G.params);return!Y&&B!=null?(B.dispose(),s.rollback(z,p),!1):(B==null||B.dispose(),!!Y)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`||n===`prstGeom`||n===`adjustValues`,s=o?n in a?Reflect.get(a,n):void 0:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(s,r)){let e=o?[...i.path,n]:[...i.path,`docTransform`,n],t=s===void 0?d.insertOp(e,r):d.replaceOp(e,s,r);p.push(t)}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.1`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/docs-drawing",
3
- "version": "1.0.0-rc.0",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "description": "Drawing model integration for Univer Docs.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -59,15 +59,15 @@
59
59
  "lib"
60
60
  ],
61
61
  "dependencies": {
62
- "@univerjs/docs": "1.0.0-rc.0",
63
- "@univerjs/core": "1.0.0-rc.0",
64
- "@univerjs/drawing": "1.0.0-rc.0"
62
+ "@univerjs/core": "1.0.1",
63
+ "@univerjs/docs": "1.0.1",
64
+ "@univerjs/drawing": "1.0.1"
65
65
  },
66
66
  "devDependencies": {
67
+ "@univerjs-infra/shared": "1.0.1",
68
+ "@univerjs/engine-render": "1.0.1",
67
69
  "typescript": "^6.0.3",
68
- "vitest": "^5.0.0",
69
- "@univerjs-infra/shared": "1.0.0-rc.0",
70
- "@univerjs/engine-render": "1.0.0-rc.0"
70
+ "vitest": "^5.0.0"
71
71
  },
72
72
  "scripts": {
73
73
  "test": "vitest run",