@univerjs/sheets-drawing 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/facade.js CHANGED
@@ -268,6 +268,23 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
268
268
  return this._image.imageSourceType;
269
269
  }
270
270
  /**
271
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
272
+ * @param {number} opacity The opacity from 0 through 1.
273
+ * @returns {FOverGridImageBuilder} This builder.
274
+ */
275
+ setOpacity(opacity) {
276
+ validateImageOpacity(opacity);
277
+ this._image.opacity = opacity;
278
+ return this;
279
+ }
280
+ /**
281
+ * Get the configured whole-image opacity.
282
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
283
+ */
284
+ getOpacity() {
285
+ return this._image.opacity ?? 1;
286
+ }
287
+ /**
271
288
  * Set the horizontal position of the image
272
289
  * @param {number} column - The column index of the image start position, start at 0
273
290
  * @returns {FOverGridImageBuilder} The `FOverGridImageBuilder` for chaining
@@ -813,6 +830,35 @@ let FOverGridImage = class FOverGridImage extends _univerjs_core_facade.FBase {
813
830
  return (0, _univerjs_sheets_drawing.getSheetDrawingPlacement)(current ?? this._image);
814
831
  }
815
832
  /**
833
+ * Get the current whole-image opacity.
834
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
835
+ */
836
+ getOpacity() {
837
+ const current = this._sheetDrawingService.getDrawingByParam({
838
+ unitId: this._image.unitId,
839
+ subUnitId: this._image.subUnitId,
840
+ drawingId: this._image.drawingId
841
+ });
842
+ return (current === null || current === void 0 ? void 0 : current.opacity) ?? this._image.opacity ?? 1;
843
+ }
844
+ /**
845
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
846
+ * @param {number} opacity The opacity from 0 through 1.
847
+ * @returns {boolean} Whether the update succeeded.
848
+ */
849
+ setOpacity(opacity) {
850
+ validateImageOpacity(opacity);
851
+ return this._commandService.syncExecuteCommand(_univerjs_sheets_drawing.SetSheetDrawingCommand.id, {
852
+ unitId: this._image.unitId,
853
+ drawings: [{
854
+ unitId: this._image.unitId,
855
+ subUnitId: this._image.subUnitId,
856
+ drawingId: this._image.drawingId,
857
+ opacity
858
+ }]
859
+ });
860
+ }
861
+ /**
816
862
  * Set this image's explicit placement through the drawing command.
817
863
  * `Position`, `Both`, and `None` correspond to OneCell, TwoCell, and
818
864
  * Absolute. Bounds inference is preferable when preserving the current
@@ -1106,6 +1152,9 @@ FOverGridImage = __decorate([
1106
1152
  __decorateParam(3, _univerjs_sheets_drawing.ISheetDrawingService),
1107
1153
  __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService))
1108
1154
  ], FOverGridImage);
1155
+ function validateImageOpacity(opacity) {
1156
+ if (!Number.isFinite(opacity) || opacity < 0 || opacity > 1) throw new RangeError("Sheet image opacity must be between 0 and 1.");
1157
+ }
1109
1158
 
1110
1159
  //#endregion
1111
1160
  //#region src/facade/f-worksheet.ts
package/lib/cjs/index.js CHANGED
@@ -928,7 +928,7 @@ SheetsDrawingLoadController = __decorate([
928
928
  //#endregion
929
929
  //#region package.json
930
930
  var name = "@univerjs/sheets-drawing";
931
- var version = "1.0.3";
931
+ var version = "1.0.4";
932
932
 
933
933
  //#endregion
934
934
  //#region src/config/config.ts
@@ -1062,12 +1062,11 @@ const REFRESH_MUTATIONS = [
1062
1062
  _univerjs_sheets.SetWorksheetColWidthMutation.id
1063
1063
  ];
1064
1064
  let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffectedController extends _univerjs_core.Disposable {
1065
- constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _selectionManagerService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1065
+ constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1066
1066
  super();
1067
1067
  this._commandService = _commandService;
1068
1068
  this._sheetSkeletonService = _sheetSkeletonService;
1069
1069
  this._sheetInterceptorService = _sheetInterceptorService;
1070
- this._selectionManagerService = _selectionManagerService;
1071
1070
  this._sheetDrawingService = _sheetDrawingService;
1072
1071
  this._drawingManagerService = _drawingManagerService;
1073
1072
  this._univerInstanceService = _univerInstanceService;
@@ -1128,70 +1127,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1128
1127
  const { range } = params;
1129
1128
  return this._getRangeMoveUndo(range, 3);
1130
1129
  } else if (id === _univerjs_sheets.SetRowHiddenCommand.id || id === _univerjs_sheets.SetSpecificRowsVisibleCommand.id) {
1131
- var _this$_selectionManag;
1132
- const _params = params;
1133
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
1134
- if (!target) return {
1135
- redos: [],
1136
- undos: []
1137
- };
1138
- const { unitId, subUnitId } = target;
1139
- const ranges = _params.ranges || ((_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range).filter((r) => r.rangeType === _univerjs_core.RANGE_TYPE.ROW));
1140
- if (!ranges || ranges.length === 0) return {
1141
- redos: [],
1142
- undos: []
1143
- };
1130
+ const { unitId, subUnitId, ranges } = params;
1144
1131
  return this._getDrawingUndoForRowVisible(unitId, subUnitId, ranges);
1145
1132
  } else if (id === _univerjs_sheets.SetColHiddenCommand.id || id === _univerjs_sheets.SetSpecificColsVisibleCommand.id) {
1146
- var _this$_selectionManag2;
1147
- const _params = params;
1148
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
1149
- if (!target) return {
1150
- redos: [],
1151
- undos: []
1152
- };
1153
- const { unitId, subUnitId } = target;
1154
- const ranges = _params.ranges || ((_this$_selectionManag2 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag2 === void 0 ? void 0 : _this$_selectionManag2.map((s) => s.range).filter((r) => r.rangeType === _univerjs_core.RANGE_TYPE.COLUMN));
1155
- if (!ranges || ranges.length === 0) return {
1156
- redos: [],
1157
- undos: []
1158
- };
1133
+ const { unitId, subUnitId, ranges } = params;
1159
1134
  return this._getDrawingUndoForColVisible(unitId, subUnitId, ranges);
1160
- } else if (id === _univerjs_sheets.DeltaRowHeightCommand.id || id === _univerjs_sheets.DeltaColumnWidthCommand.id) {
1161
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService);
1162
- if (!target) return {
1163
- redos: [],
1164
- undos: []
1165
- };
1166
- const { unitId, subUnitId, worksheet } = target;
1167
- const ranges = [];
1168
- if (id === _univerjs_sheets.DeltaRowHeightCommand.id) ranges.push({
1169
- startRow: params.anchorRow,
1170
- endRow: params.anchorRow,
1171
- startColumn: 0,
1172
- endColumn: worksheet.getColumnCount() - 1
1173
- });
1174
- else ranges.push({
1175
- startRow: 0,
1176
- endRow: worksheet.getRowCount() - 1,
1177
- startColumn: params.anchorCol,
1178
- endColumn: params.anchorCol
1179
- });
1180
- return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1181
- } else if (id === _univerjs_sheets.SetRowHeightCommand.id || id === _univerjs_sheets.SetColWidthCommand.id) {
1182
- var _this$_selectionManag3;
1183
- const _params = params;
1184
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
1185
- if (!target) return {
1186
- redos: [],
1187
- undos: []
1188
- };
1189
- const { unitId, subUnitId } = target;
1190
- const ranges = _params.ranges || ((_this$_selectionManag3 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag3 === void 0 ? void 0 : _this$_selectionManag3.map((s) => s.range));
1191
- if (!ranges || ranges.length === 0) return {
1192
- redos: [],
1193
- undos: []
1194
- };
1135
+ } else if (id === _univerjs_sheets.DeltaRowHeightCommand.id || id === _univerjs_sheets.DeltaColumnWidthCommand.id || id === _univerjs_sheets.SetRowHeightCommand.id || id === _univerjs_sheets.SetColWidthCommand.id) {
1136
+ const { unitId, subUnitId, ranges } = params;
1195
1137
  return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1196
1138
  }
1197
1139
  return {
@@ -1355,7 +1297,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1355
1297
  const deleteDrawings = [];
1356
1298
  const { sheetTransform, anchorType = "0", transform, unitId, subUnitId, drawingId } = drawing;
1357
1299
  const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
1358
- if (!sheetTransform || !transform || !sheetSkeletonParam) return {
1300
+ if (anchorType === "2" || !sheetTransform || !transform || !sheetSkeletonParam) return {
1359
1301
  updateDrawings,
1360
1302
  deleteDrawings
1361
1303
  };
@@ -1695,17 +1637,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1695
1637
  const { sheetTransform, transform, anchorType = "0" } = drawing;
1696
1638
  if (anchorType === "2") this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1697
1639
  else {
1698
- const { from, to } = sheetTransform;
1699
- const { row: fromRow, column: fromColumn } = from;
1700
- const { row: toRow, column: toColumn } = to;
1640
+ const { row: toRow, column: toColumn } = sheetTransform.to;
1701
1641
  for (let i = 0; i < ranges.length; i++) {
1702
- const { startRow, endRow, startColumn, endColumn } = ranges[i];
1642
+ const { startRow, startColumn } = ranges[i];
1703
1643
  if (toRow < startRow || toColumn < startColumn) continue;
1704
1644
  if (anchorType === "0") {
1705
- if (fromRow <= startRow && toRow >= endRow || fromColumn <= startColumn && toColumn >= endColumn) {
1706
- this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1707
- continue;
1708
- }
1645
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), skeleton));
1646
+ break;
1709
1647
  }
1710
1648
  const newTransform = drawingPositionToTransform({ ...sheetTransform }, sheetSkeletonParam);
1711
1649
  if (newTransform) {
@@ -1724,10 +1662,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1724
1662
  };
1725
1663
  return this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
1726
1664
  }
1727
- _getUnitIdAndSubUnitId(params, type) {
1728
- let target;
1729
- if (type === "insert") target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, params);
1730
- else target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService);
1665
+ _getUnitIdAndSubUnitId(params) {
1666
+ const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, params);
1731
1667
  if (!target) return;
1732
1668
  const { unitId, subUnitId } = target;
1733
1669
  return {
@@ -1792,7 +1728,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1792
1728
  return this._finalizePlan(unitId, subUnitId, updateDrawings);
1793
1729
  }
1794
1730
  _moveRowInterceptor(params, type) {
1795
- const target = this._getUnitIdAndSubUnitId(params, type);
1731
+ const target = this._getUnitIdAndSubUnitId(params);
1796
1732
  if (!target) return {
1797
1733
  redos: [],
1798
1734
  undos: []
@@ -1860,7 +1796,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1860
1796
  return this._finalizePlan(unitId, subUnitId, updateDrawings, deleteDrawings);
1861
1797
  }
1862
1798
  _moveColInterceptor(params, type) {
1863
- const target = this._getUnitIdAndSubUnitId(params, type);
1799
+ const target = this._getUnitIdAndSubUnitId(params);
1864
1800
  if (!target) return {
1865
1801
  redos: [],
1866
1802
  undos: []
@@ -2255,6 +2191,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2255
2191
  }
2256
2192
  _refreshDrawingTransform(command, unitId, subUnitId, ranges) {
2257
2193
  const sheetSkeletonParam = this._getCalculatedSkeletonParam(unitId, subUnitId);
2194
+ if (!sheetSkeletonParam) return;
2258
2195
  const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId) ?? {};
2259
2196
  const updateDrawings = [];
2260
2197
  Object.keys(drawingData).forEach((drawingId) => {
@@ -2278,7 +2215,10 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2278
2215
  startColumn: fromColumn,
2279
2216
  endColumn: toColumn
2280
2217
  }) || fromRow > endRow || fromColumn > endColumn) {
2281
- const isPositionAnchor = anchorType === "0";
2218
+ if (anchorType === "0") {
2219
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), sheetSkeletonParam.skeleton));
2220
+ break;
2221
+ }
2282
2222
  const newTransform = drawingPositionToTransform(sheetTransform, sheetSkeletonParam);
2283
2223
  updateDrawings.push({
2284
2224
  ...drawing,
@@ -2286,8 +2226,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2286
2226
  ...transform,
2287
2227
  left: newTransform === null || newTransform === void 0 ? void 0 : newTransform.left,
2288
2228
  top: newTransform === null || newTransform === void 0 ? void 0 : newTransform.top,
2289
- width: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.width : newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2290
- height: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.height : newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2229
+ width: newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2230
+ height: newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2291
2231
  }
2292
2232
  });
2293
2233
  break;
@@ -2301,11 +2241,10 @@ SheetDrawingTransformAffectedController = __decorate([
2301
2241
  __decorateParam(0, _univerjs_core.ICommandService),
2302
2242
  __decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService)),
2303
2243
  __decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetInterceptorService)),
2304
- __decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetsSelectionsService)),
2305
- __decorateParam(4, ISheetDrawingService),
2306
- __decorateParam(5, _univerjs_drawing.IDrawingManagerService),
2307
- __decorateParam(6, _univerjs_core.IUniverInstanceService),
2308
- __decorateParam(7, (0, _univerjs_core.Inject)(SheetDrawingTransformPlanService))
2244
+ __decorateParam(3, ISheetDrawingService),
2245
+ __decorateParam(4, _univerjs_drawing.IDrawingManagerService),
2246
+ __decorateParam(5, _univerjs_core.IUniverInstanceService),
2247
+ __decorateParam(6, (0, _univerjs_core.Inject)(SheetDrawingTransformPlanService))
2309
2248
  ], SheetDrawingTransformAffectedController);
2310
2249
 
2311
2250
  //#endregion
package/lib/es/facade.js CHANGED
@@ -267,6 +267,23 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
267
267
  return this._image.imageSourceType;
268
268
  }
269
269
  /**
270
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
271
+ * @param {number} opacity The opacity from 0 through 1.
272
+ * @returns {FOverGridImageBuilder} This builder.
273
+ */
274
+ setOpacity(opacity) {
275
+ validateImageOpacity(opacity);
276
+ this._image.opacity = opacity;
277
+ return this;
278
+ }
279
+ /**
280
+ * Get the configured whole-image opacity.
281
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
282
+ */
283
+ getOpacity() {
284
+ return this._image.opacity ?? 1;
285
+ }
286
+ /**
270
287
  * Set the horizontal position of the image
271
288
  * @param {number} column - The column index of the image start position, start at 0
272
289
  * @returns {FOverGridImageBuilder} The `FOverGridImageBuilder` for chaining
@@ -812,6 +829,35 @@ let FOverGridImage = class FOverGridImage extends FBase {
812
829
  return getSheetDrawingPlacement(current ?? this._image);
813
830
  }
814
831
  /**
832
+ * Get the current whole-image opacity.
833
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
834
+ */
835
+ getOpacity() {
836
+ const current = this._sheetDrawingService.getDrawingByParam({
837
+ unitId: this._image.unitId,
838
+ subUnitId: this._image.subUnitId,
839
+ drawingId: this._image.drawingId
840
+ });
841
+ return (current === null || current === void 0 ? void 0 : current.opacity) ?? this._image.opacity ?? 1;
842
+ }
843
+ /**
844
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
845
+ * @param {number} opacity The opacity from 0 through 1.
846
+ * @returns {boolean} Whether the update succeeded.
847
+ */
848
+ setOpacity(opacity) {
849
+ validateImageOpacity(opacity);
850
+ return this._commandService.syncExecuteCommand(SetSheetDrawingCommand.id, {
851
+ unitId: this._image.unitId,
852
+ drawings: [{
853
+ unitId: this._image.unitId,
854
+ subUnitId: this._image.subUnitId,
855
+ drawingId: this._image.drawingId,
856
+ opacity
857
+ }]
858
+ });
859
+ }
860
+ /**
815
861
  * Set this image's explicit placement through the drawing command.
816
862
  * `Position`, `Both`, and `None` correspond to OneCell, TwoCell, and
817
863
  * Absolute. Bounds inference is preferable when preserving the current
@@ -1105,6 +1151,9 @@ FOverGridImage = __decorate([
1105
1151
  __decorateParam(3, ISheetDrawingService),
1106
1152
  __decorateParam(4, Inject(SheetSkeletonService))
1107
1153
  ], FOverGridImage);
1154
+ function validateImageOpacity(opacity) {
1155
+ if (!Number.isFinite(opacity) || opacity < 0 || opacity > 1) throw new RangeError("Sheet image opacity must be between 0 and 1.");
1156
+ }
1108
1157
 
1109
1158
  //#endregion
1110
1159
  //#region src/facade/f-worksheet.ts
package/lib/es/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { CopySheetCommand, DeleteRangeMoveLeftCommand, DeleteRangeMoveUpCommand, DeltaColumnWidthCommand, DeltaRowHeightCommand, InsertColCommand, InsertRangeMoveDownCommand, InsertRangeMoveRightCommand, InsertRowCommand, MoveColsCommand, MoveRangeCommand, MoveRowsCommand, RemoveColCommand, RemoveRowCommand, RemoveSheetCommand, SetColHiddenCommand, SetColHiddenMutation, SetColVisibleMutation, SetColWidthCommand, SetRowHeightCommand, SetRowHiddenCommand, SetRowHiddenMutation, SetRowVisibleMutation, SetSpecificColsVisibleCommand, SetSpecificRowsVisibleCommand, SetWorksheetColWidthMutation, SetWorksheetRowAutoHeightMutation, SetWorksheetRowHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetInterceptorService, SheetSkeletonService, SheetsSelectionsService, UniverSheetsPlugin, attachRangeWithCoord, convertPositionCellToSheetOverGrid, convertPositionSheetOverGridToAbsolute, getSheetCommandTarget } from "@univerjs/sheets";
2
- import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin, RANGE_TYPE, Rectangle, UniverInstanceType, createIdentifier, merge, sequenceExecute, toDisposable } from "@univerjs/core";
1
+ import { CopySheetCommand, DeleteRangeMoveLeftCommand, DeleteRangeMoveUpCommand, DeltaColumnWidthCommand, DeltaRowHeightCommand, InsertColCommand, InsertRangeMoveDownCommand, InsertRangeMoveRightCommand, InsertRowCommand, MoveColsCommand, MoveRangeCommand, MoveRowsCommand, RemoveColCommand, RemoveRowCommand, RemoveSheetCommand, SetColHiddenCommand, SetColHiddenMutation, SetColVisibleMutation, SetColWidthCommand, SetRowHeightCommand, SetRowHiddenCommand, SetRowHiddenMutation, SetRowVisibleMutation, SetSpecificColsVisibleCommand, SetSpecificRowsVisibleCommand, SetWorksheetColWidthMutation, SetWorksheetRowAutoHeightMutation, SetWorksheetRowHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetInterceptorService, SheetSkeletonService, UniverSheetsPlugin, attachRangeWithCoord, convertPositionCellToSheetOverGrid, convertPositionSheetOverGridToAbsolute, getSheetCommandTarget } from "@univerjs/sheets";
2
+ import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin, Rectangle, UniverInstanceType, createIdentifier, merge, sequenceExecute, toDisposable } from "@univerjs/core";
3
3
  import { IDrawingManagerService, UnitDrawingService, UniverDrawingPlugin, getOrCreateDrawingCopyPlan, resolveDrawingRotateEnabled } from "@univerjs/drawing";
4
4
  import { IRenderManagerService } from "@univerjs/engine-render";
5
5
 
@@ -927,7 +927,7 @@ SheetsDrawingLoadController = __decorate([
927
927
  //#endregion
928
928
  //#region package.json
929
929
  var name = "@univerjs/sheets-drawing";
930
- var version = "1.0.3";
930
+ var version = "1.0.4";
931
931
 
932
932
  //#endregion
933
933
  //#region src/config/config.ts
@@ -1061,12 +1061,11 @@ const REFRESH_MUTATIONS = [
1061
1061
  SetWorksheetColWidthMutation.id
1062
1062
  ];
1063
1063
  let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffectedController extends Disposable {
1064
- constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _selectionManagerService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1064
+ constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1065
1065
  super();
1066
1066
  this._commandService = _commandService;
1067
1067
  this._sheetSkeletonService = _sheetSkeletonService;
1068
1068
  this._sheetInterceptorService = _sheetInterceptorService;
1069
- this._selectionManagerService = _selectionManagerService;
1070
1069
  this._sheetDrawingService = _sheetDrawingService;
1071
1070
  this._drawingManagerService = _drawingManagerService;
1072
1071
  this._univerInstanceService = _univerInstanceService;
@@ -1127,70 +1126,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1127
1126
  const { range } = params;
1128
1127
  return this._getRangeMoveUndo(range, 3);
1129
1128
  } else if (id === SetRowHiddenCommand.id || id === SetSpecificRowsVisibleCommand.id) {
1130
- var _this$_selectionManag;
1131
- const _params = params;
1132
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1133
- if (!target) return {
1134
- redos: [],
1135
- undos: []
1136
- };
1137
- const { unitId, subUnitId } = target;
1138
- const ranges = _params.ranges || ((_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range).filter((r) => r.rangeType === RANGE_TYPE.ROW));
1139
- if (!ranges || ranges.length === 0) return {
1140
- redos: [],
1141
- undos: []
1142
- };
1129
+ const { unitId, subUnitId, ranges } = params;
1143
1130
  return this._getDrawingUndoForRowVisible(unitId, subUnitId, ranges);
1144
1131
  } else if (id === SetColHiddenCommand.id || id === SetSpecificColsVisibleCommand.id) {
1145
- var _this$_selectionManag2;
1146
- const _params = params;
1147
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1148
- if (!target) return {
1149
- redos: [],
1150
- undos: []
1151
- };
1152
- const { unitId, subUnitId } = target;
1153
- const ranges = _params.ranges || ((_this$_selectionManag2 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag2 === void 0 ? void 0 : _this$_selectionManag2.map((s) => s.range).filter((r) => r.rangeType === RANGE_TYPE.COLUMN));
1154
- if (!ranges || ranges.length === 0) return {
1155
- redos: [],
1156
- undos: []
1157
- };
1132
+ const { unitId, subUnitId, ranges } = params;
1158
1133
  return this._getDrawingUndoForColVisible(unitId, subUnitId, ranges);
1159
- } else if (id === DeltaRowHeightCommand.id || id === DeltaColumnWidthCommand.id) {
1160
- const target = getSheetCommandTarget(this._univerInstanceService);
1161
- if (!target) return {
1162
- redos: [],
1163
- undos: []
1164
- };
1165
- const { unitId, subUnitId, worksheet } = target;
1166
- const ranges = [];
1167
- if (id === DeltaRowHeightCommand.id) ranges.push({
1168
- startRow: params.anchorRow,
1169
- endRow: params.anchorRow,
1170
- startColumn: 0,
1171
- endColumn: worksheet.getColumnCount() - 1
1172
- });
1173
- else ranges.push({
1174
- startRow: 0,
1175
- endRow: worksheet.getRowCount() - 1,
1176
- startColumn: params.anchorCol,
1177
- endColumn: params.anchorCol
1178
- });
1179
- return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1180
- } else if (id === SetRowHeightCommand.id || id === SetColWidthCommand.id) {
1181
- var _this$_selectionManag3;
1182
- const _params = params;
1183
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1184
- if (!target) return {
1185
- redos: [],
1186
- undos: []
1187
- };
1188
- const { unitId, subUnitId } = target;
1189
- const ranges = _params.ranges || ((_this$_selectionManag3 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag3 === void 0 ? void 0 : _this$_selectionManag3.map((s) => s.range));
1190
- if (!ranges || ranges.length === 0) return {
1191
- redos: [],
1192
- undos: []
1193
- };
1134
+ } else if (id === DeltaRowHeightCommand.id || id === DeltaColumnWidthCommand.id || id === SetRowHeightCommand.id || id === SetColWidthCommand.id) {
1135
+ const { unitId, subUnitId, ranges } = params;
1194
1136
  return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1195
1137
  }
1196
1138
  return {
@@ -1354,7 +1296,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1354
1296
  const deleteDrawings = [];
1355
1297
  const { sheetTransform, anchorType = "0", transform, unitId, subUnitId, drawingId } = drawing;
1356
1298
  const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
1357
- if (!sheetTransform || !transform || !sheetSkeletonParam) return {
1299
+ if (anchorType === "2" || !sheetTransform || !transform || !sheetSkeletonParam) return {
1358
1300
  updateDrawings,
1359
1301
  deleteDrawings
1360
1302
  };
@@ -1694,17 +1636,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1694
1636
  const { sheetTransform, transform, anchorType = "0" } = drawing;
1695
1637
  if (anchorType === "2") this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1696
1638
  else {
1697
- const { from, to } = sheetTransform;
1698
- const { row: fromRow, column: fromColumn } = from;
1699
- const { row: toRow, column: toColumn } = to;
1639
+ const { row: toRow, column: toColumn } = sheetTransform.to;
1700
1640
  for (let i = 0; i < ranges.length; i++) {
1701
- const { startRow, endRow, startColumn, endColumn } = ranges[i];
1641
+ const { startRow, startColumn } = ranges[i];
1702
1642
  if (toRow < startRow || toColumn < startColumn) continue;
1703
1643
  if (anchorType === "0") {
1704
- if (fromRow <= startRow && toRow >= endRow || fromColumn <= startColumn && toColumn >= endColumn) {
1705
- this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1706
- continue;
1707
- }
1644
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), skeleton));
1645
+ break;
1708
1646
  }
1709
1647
  const newTransform = drawingPositionToTransform({ ...sheetTransform }, sheetSkeletonParam);
1710
1648
  if (newTransform) {
@@ -1723,10 +1661,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1723
1661
  };
1724
1662
  return this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
1725
1663
  }
1726
- _getUnitIdAndSubUnitId(params, type) {
1727
- let target;
1728
- if (type === "insert") target = getSheetCommandTarget(this._univerInstanceService, params);
1729
- else target = getSheetCommandTarget(this._univerInstanceService);
1664
+ _getUnitIdAndSubUnitId(params) {
1665
+ const target = getSheetCommandTarget(this._univerInstanceService, params);
1730
1666
  if (!target) return;
1731
1667
  const { unitId, subUnitId } = target;
1732
1668
  return {
@@ -1791,7 +1727,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1791
1727
  return this._finalizePlan(unitId, subUnitId, updateDrawings);
1792
1728
  }
1793
1729
  _moveRowInterceptor(params, type) {
1794
- const target = this._getUnitIdAndSubUnitId(params, type);
1730
+ const target = this._getUnitIdAndSubUnitId(params);
1795
1731
  if (!target) return {
1796
1732
  redos: [],
1797
1733
  undos: []
@@ -1859,7 +1795,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1859
1795
  return this._finalizePlan(unitId, subUnitId, updateDrawings, deleteDrawings);
1860
1796
  }
1861
1797
  _moveColInterceptor(params, type) {
1862
- const target = this._getUnitIdAndSubUnitId(params, type);
1798
+ const target = this._getUnitIdAndSubUnitId(params);
1863
1799
  if (!target) return {
1864
1800
  redos: [],
1865
1801
  undos: []
@@ -2254,6 +2190,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2254
2190
  }
2255
2191
  _refreshDrawingTransform(command, unitId, subUnitId, ranges) {
2256
2192
  const sheetSkeletonParam = this._getCalculatedSkeletonParam(unitId, subUnitId);
2193
+ if (!sheetSkeletonParam) return;
2257
2194
  const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId) ?? {};
2258
2195
  const updateDrawings = [];
2259
2196
  Object.keys(drawingData).forEach((drawingId) => {
@@ -2277,7 +2214,10 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2277
2214
  startColumn: fromColumn,
2278
2215
  endColumn: toColumn
2279
2216
  }) || fromRow > endRow || fromColumn > endColumn) {
2280
- const isPositionAnchor = anchorType === "0";
2217
+ if (anchorType === "0") {
2218
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), sheetSkeletonParam.skeleton));
2219
+ break;
2220
+ }
2281
2221
  const newTransform = drawingPositionToTransform(sheetTransform, sheetSkeletonParam);
2282
2222
  updateDrawings.push({
2283
2223
  ...drawing,
@@ -2285,8 +2225,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2285
2225
  ...transform,
2286
2226
  left: newTransform === null || newTransform === void 0 ? void 0 : newTransform.left,
2287
2227
  top: newTransform === null || newTransform === void 0 ? void 0 : newTransform.top,
2288
- width: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.width : newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2289
- height: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.height : newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2228
+ width: newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2229
+ height: newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2290
2230
  }
2291
2231
  });
2292
2232
  break;
@@ -2300,11 +2240,10 @@ SheetDrawingTransformAffectedController = __decorate([
2300
2240
  __decorateParam(0, ICommandService),
2301
2241
  __decorateParam(1, Inject(SheetSkeletonService)),
2302
2242
  __decorateParam(2, Inject(SheetInterceptorService)),
2303
- __decorateParam(3, Inject(SheetsSelectionsService)),
2304
- __decorateParam(4, ISheetDrawingService),
2305
- __decorateParam(5, IDrawingManagerService),
2306
- __decorateParam(6, IUniverInstanceService),
2307
- __decorateParam(7, Inject(SheetDrawingTransformPlanService))
2243
+ __decorateParam(3, ISheetDrawingService),
2244
+ __decorateParam(4, IDrawingManagerService),
2245
+ __decorateParam(5, IUniverInstanceService),
2246
+ __decorateParam(6, Inject(SheetDrawingTransformPlanService))
2308
2247
  ], SheetDrawingTransformAffectedController);
2309
2248
 
2310
2249
  //#endregion
package/lib/facade.js CHANGED
@@ -267,6 +267,23 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
267
267
  return this._image.imageSourceType;
268
268
  }
269
269
  /**
270
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
271
+ * @param {number} opacity The opacity from 0 through 1.
272
+ * @returns {FOverGridImageBuilder} This builder.
273
+ */
274
+ setOpacity(opacity) {
275
+ validateImageOpacity(opacity);
276
+ this._image.opacity = opacity;
277
+ return this;
278
+ }
279
+ /**
280
+ * Get the configured whole-image opacity.
281
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
282
+ */
283
+ getOpacity() {
284
+ return this._image.opacity ?? 1;
285
+ }
286
+ /**
270
287
  * Set the horizontal position of the image
271
288
  * @param {number} column - The column index of the image start position, start at 0
272
289
  * @returns {FOverGridImageBuilder} The `FOverGridImageBuilder` for chaining
@@ -812,6 +829,35 @@ let FOverGridImage = class FOverGridImage extends FBase {
812
829
  return getSheetDrawingPlacement(current ?? this._image);
813
830
  }
814
831
  /**
832
+ * Get the current whole-image opacity.
833
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
834
+ */
835
+ getOpacity() {
836
+ const current = this._sheetDrawingService.getDrawingByParam({
837
+ unitId: this._image.unitId,
838
+ subUnitId: this._image.subUnitId,
839
+ drawingId: this._image.drawingId
840
+ });
841
+ return (current === null || current === void 0 ? void 0 : current.opacity) ?? this._image.opacity ?? 1;
842
+ }
843
+ /**
844
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
845
+ * @param {number} opacity The opacity from 0 through 1.
846
+ * @returns {boolean} Whether the update succeeded.
847
+ */
848
+ setOpacity(opacity) {
849
+ validateImageOpacity(opacity);
850
+ return this._commandService.syncExecuteCommand(SetSheetDrawingCommand.id, {
851
+ unitId: this._image.unitId,
852
+ drawings: [{
853
+ unitId: this._image.unitId,
854
+ subUnitId: this._image.subUnitId,
855
+ drawingId: this._image.drawingId,
856
+ opacity
857
+ }]
858
+ });
859
+ }
860
+ /**
815
861
  * Set this image's explicit placement through the drawing command.
816
862
  * `Position`, `Both`, and `None` correspond to OneCell, TwoCell, and
817
863
  * Absolute. Bounds inference is preferable when preserving the current
@@ -1105,6 +1151,9 @@ FOverGridImage = __decorate([
1105
1151
  __decorateParam(3, ISheetDrawingService),
1106
1152
  __decorateParam(4, Inject(SheetSkeletonService))
1107
1153
  ], FOverGridImage);
1154
+ function validateImageOpacity(opacity) {
1155
+ if (!Number.isFinite(opacity) || opacity < 0 || opacity > 1) throw new RangeError("Sheet image opacity must be between 0 and 1.");
1156
+ }
1108
1157
 
1109
1158
  //#endregion
1110
1159
  //#region src/facade/f-worksheet.ts
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { CopySheetCommand, DeleteRangeMoveLeftCommand, DeleteRangeMoveUpCommand, DeltaColumnWidthCommand, DeltaRowHeightCommand, InsertColCommand, InsertRangeMoveDownCommand, InsertRangeMoveRightCommand, InsertRowCommand, MoveColsCommand, MoveRangeCommand, MoveRowsCommand, RemoveColCommand, RemoveRowCommand, RemoveSheetCommand, SetColHiddenCommand, SetColHiddenMutation, SetColVisibleMutation, SetColWidthCommand, SetRowHeightCommand, SetRowHiddenCommand, SetRowHiddenMutation, SetRowVisibleMutation, SetSpecificColsVisibleCommand, SetSpecificRowsVisibleCommand, SetWorksheetColWidthMutation, SetWorksheetRowAutoHeightMutation, SetWorksheetRowHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetInterceptorService, SheetSkeletonService, SheetsSelectionsService, UniverSheetsPlugin, attachRangeWithCoord, convertPositionCellToSheetOverGrid, convertPositionSheetOverGridToAbsolute, getSheetCommandTarget } from "@univerjs/sheets";
2
- import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin, RANGE_TYPE, Rectangle, UniverInstanceType, createIdentifier, merge, sequenceExecute, toDisposable } from "@univerjs/core";
1
+ import { CopySheetCommand, DeleteRangeMoveLeftCommand, DeleteRangeMoveUpCommand, DeltaColumnWidthCommand, DeltaRowHeightCommand, InsertColCommand, InsertRangeMoveDownCommand, InsertRangeMoveRightCommand, InsertRowCommand, MoveColsCommand, MoveRangeCommand, MoveRowsCommand, RemoveColCommand, RemoveRowCommand, RemoveSheetCommand, SetColHiddenCommand, SetColHiddenMutation, SetColVisibleMutation, SetColWidthCommand, SetRowHeightCommand, SetRowHiddenCommand, SetRowHiddenMutation, SetRowVisibleMutation, SetSpecificColsVisibleCommand, SetSpecificRowsVisibleCommand, SetWorksheetColWidthMutation, SetWorksheetRowAutoHeightMutation, SetWorksheetRowHeightMutation, SetWorksheetRowIsAutoHeightMutation, SheetInterceptorService, SheetSkeletonService, UniverSheetsPlugin, attachRangeWithCoord, convertPositionCellToSheetOverGrid, convertPositionSheetOverGridToAbsolute, getSheetCommandTarget } from "@univerjs/sheets";
2
+ import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin, Rectangle, UniverInstanceType, createIdentifier, merge, sequenceExecute, toDisposable } from "@univerjs/core";
3
3
  import { IDrawingManagerService, UnitDrawingService, UniverDrawingPlugin, getOrCreateDrawingCopyPlan, resolveDrawingRotateEnabled } from "@univerjs/drawing";
4
4
  import { IRenderManagerService } from "@univerjs/engine-render";
5
5
 
@@ -927,7 +927,7 @@ SheetsDrawingLoadController = __decorate([
927
927
  //#endregion
928
928
  //#region package.json
929
929
  var name = "@univerjs/sheets-drawing";
930
- var version = "1.0.3";
930
+ var version = "1.0.4";
931
931
 
932
932
  //#endregion
933
933
  //#region src/config/config.ts
@@ -1061,12 +1061,11 @@ const REFRESH_MUTATIONS = [
1061
1061
  SetWorksheetColWidthMutation.id
1062
1062
  ];
1063
1063
  let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffectedController extends Disposable {
1064
- constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _selectionManagerService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1064
+ constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
1065
1065
  super();
1066
1066
  this._commandService = _commandService;
1067
1067
  this._sheetSkeletonService = _sheetSkeletonService;
1068
1068
  this._sheetInterceptorService = _sheetInterceptorService;
1069
- this._selectionManagerService = _selectionManagerService;
1070
1069
  this._sheetDrawingService = _sheetDrawingService;
1071
1070
  this._drawingManagerService = _drawingManagerService;
1072
1071
  this._univerInstanceService = _univerInstanceService;
@@ -1127,70 +1126,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1127
1126
  const { range } = params;
1128
1127
  return this._getRangeMoveUndo(range, 3);
1129
1128
  } else if (id === SetRowHiddenCommand.id || id === SetSpecificRowsVisibleCommand.id) {
1130
- var _this$_selectionManag;
1131
- const _params = params;
1132
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1133
- if (!target) return {
1134
- redos: [],
1135
- undos: []
1136
- };
1137
- const { unitId, subUnitId } = target;
1138
- const ranges = _params.ranges || ((_this$_selectionManag = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag === void 0 ? void 0 : _this$_selectionManag.map((s) => s.range).filter((r) => r.rangeType === RANGE_TYPE.ROW));
1139
- if (!ranges || ranges.length === 0) return {
1140
- redos: [],
1141
- undos: []
1142
- };
1129
+ const { unitId, subUnitId, ranges } = params;
1143
1130
  return this._getDrawingUndoForRowVisible(unitId, subUnitId, ranges);
1144
1131
  } else if (id === SetColHiddenCommand.id || id === SetSpecificColsVisibleCommand.id) {
1145
- var _this$_selectionManag2;
1146
- const _params = params;
1147
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1148
- if (!target) return {
1149
- redos: [],
1150
- undos: []
1151
- };
1152
- const { unitId, subUnitId } = target;
1153
- const ranges = _params.ranges || ((_this$_selectionManag2 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag2 === void 0 ? void 0 : _this$_selectionManag2.map((s) => s.range).filter((r) => r.rangeType === RANGE_TYPE.COLUMN));
1154
- if (!ranges || ranges.length === 0) return {
1155
- redos: [],
1156
- undos: []
1157
- };
1132
+ const { unitId, subUnitId, ranges } = params;
1158
1133
  return this._getDrawingUndoForColVisible(unitId, subUnitId, ranges);
1159
- } else if (id === DeltaRowHeightCommand.id || id === DeltaColumnWidthCommand.id) {
1160
- const target = getSheetCommandTarget(this._univerInstanceService);
1161
- if (!target) return {
1162
- redos: [],
1163
- undos: []
1164
- };
1165
- const { unitId, subUnitId, worksheet } = target;
1166
- const ranges = [];
1167
- if (id === DeltaRowHeightCommand.id) ranges.push({
1168
- startRow: params.anchorRow,
1169
- endRow: params.anchorRow,
1170
- startColumn: 0,
1171
- endColumn: worksheet.getColumnCount() - 1
1172
- });
1173
- else ranges.push({
1174
- startRow: 0,
1175
- endRow: worksheet.getRowCount() - 1,
1176
- startColumn: params.anchorCol,
1177
- endColumn: params.anchorCol
1178
- });
1179
- return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1180
- } else if (id === SetRowHeightCommand.id || id === SetColWidthCommand.id) {
1181
- var _this$_selectionManag3;
1182
- const _params = params;
1183
- const target = getSheetCommandTarget(this._univerInstanceService, _params);
1184
- if (!target) return {
1185
- redos: [],
1186
- undos: []
1187
- };
1188
- const { unitId, subUnitId } = target;
1189
- const ranges = _params.ranges || ((_this$_selectionManag3 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag3 === void 0 ? void 0 : _this$_selectionManag3.map((s) => s.range));
1190
- if (!ranges || ranges.length === 0) return {
1191
- redos: [],
1192
- undos: []
1193
- };
1134
+ } else if (id === DeltaRowHeightCommand.id || id === DeltaColumnWidthCommand.id || id === SetRowHeightCommand.id || id === SetColWidthCommand.id) {
1135
+ const { unitId, subUnitId, ranges } = params;
1194
1136
  return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
1195
1137
  }
1196
1138
  return {
@@ -1354,7 +1296,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1354
1296
  const deleteDrawings = [];
1355
1297
  const { sheetTransform, anchorType = "0", transform, unitId, subUnitId, drawingId } = drawing;
1356
1298
  const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
1357
- if (!sheetTransform || !transform || !sheetSkeletonParam) return {
1299
+ if (anchorType === "2" || !sheetTransform || !transform || !sheetSkeletonParam) return {
1358
1300
  updateDrawings,
1359
1301
  deleteDrawings
1360
1302
  };
@@ -1694,17 +1636,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1694
1636
  const { sheetTransform, transform, anchorType = "0" } = drawing;
1695
1637
  if (anchorType === "2") this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1696
1638
  else {
1697
- const { from, to } = sheetTransform;
1698
- const { row: fromRow, column: fromColumn } = from;
1699
- const { row: toRow, column: toColumn } = to;
1639
+ const { row: toRow, column: toColumn } = sheetTransform.to;
1700
1640
  for (let i = 0; i < ranges.length; i++) {
1701
- const { startRow, endRow, startColumn, endColumn } = ranges[i];
1641
+ const { startRow, startColumn } = ranges[i];
1702
1642
  if (toRow < startRow || toColumn < startColumn) continue;
1703
1643
  if (anchorType === "0") {
1704
- if (fromRow <= startRow && toRow >= endRow || fromColumn <= startColumn && toColumn >= endColumn) {
1705
- this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
1706
- continue;
1707
- }
1644
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), skeleton));
1645
+ break;
1708
1646
  }
1709
1647
  const newTransform = drawingPositionToTransform({ ...sheetTransform }, sheetSkeletonParam);
1710
1648
  if (newTransform) {
@@ -1723,10 +1661,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1723
1661
  };
1724
1662
  return this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
1725
1663
  }
1726
- _getUnitIdAndSubUnitId(params, type) {
1727
- let target;
1728
- if (type === "insert") target = getSheetCommandTarget(this._univerInstanceService, params);
1729
- else target = getSheetCommandTarget(this._univerInstanceService);
1664
+ _getUnitIdAndSubUnitId(params) {
1665
+ const target = getSheetCommandTarget(this._univerInstanceService, params);
1730
1666
  if (!target) return;
1731
1667
  const { unitId, subUnitId } = target;
1732
1668
  return {
@@ -1791,7 +1727,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1791
1727
  return this._finalizePlan(unitId, subUnitId, updateDrawings);
1792
1728
  }
1793
1729
  _moveRowInterceptor(params, type) {
1794
- const target = this._getUnitIdAndSubUnitId(params, type);
1730
+ const target = this._getUnitIdAndSubUnitId(params);
1795
1731
  if (!target) return {
1796
1732
  redos: [],
1797
1733
  undos: []
@@ -1859,7 +1795,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
1859
1795
  return this._finalizePlan(unitId, subUnitId, updateDrawings, deleteDrawings);
1860
1796
  }
1861
1797
  _moveColInterceptor(params, type) {
1862
- const target = this._getUnitIdAndSubUnitId(params, type);
1798
+ const target = this._getUnitIdAndSubUnitId(params);
1863
1799
  if (!target) return {
1864
1800
  redos: [],
1865
1801
  undos: []
@@ -2254,6 +2190,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2254
2190
  }
2255
2191
  _refreshDrawingTransform(command, unitId, subUnitId, ranges) {
2256
2192
  const sheetSkeletonParam = this._getCalculatedSkeletonParam(unitId, subUnitId);
2193
+ if (!sheetSkeletonParam) return;
2257
2194
  const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId) ?? {};
2258
2195
  const updateDrawings = [];
2259
2196
  Object.keys(drawingData).forEach((drawingId) => {
@@ -2277,7 +2214,10 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2277
2214
  startColumn: fromColumn,
2278
2215
  endColumn: toColumn
2279
2216
  }) || fromRow > endRow || fromColumn > endColumn) {
2280
- const isPositionAnchor = anchorType === "0";
2217
+ if (anchorType === "0") {
2218
+ updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), sheetSkeletonParam.skeleton));
2219
+ break;
2220
+ }
2281
2221
  const newTransform = drawingPositionToTransform(sheetTransform, sheetSkeletonParam);
2282
2222
  updateDrawings.push({
2283
2223
  ...drawing,
@@ -2285,8 +2225,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
2285
2225
  ...transform,
2286
2226
  left: newTransform === null || newTransform === void 0 ? void 0 : newTransform.left,
2287
2227
  top: newTransform === null || newTransform === void 0 ? void 0 : newTransform.top,
2288
- width: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.width : newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2289
- height: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.height : newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2228
+ width: newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
2229
+ height: newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
2290
2230
  }
2291
2231
  });
2292
2232
  break;
@@ -2300,11 +2240,10 @@ SheetDrawingTransformAffectedController = __decorate([
2300
2240
  __decorateParam(0, ICommandService),
2301
2241
  __decorateParam(1, Inject(SheetSkeletonService)),
2302
2242
  __decorateParam(2, Inject(SheetInterceptorService)),
2303
- __decorateParam(3, Inject(SheetsSelectionsService)),
2304
- __decorateParam(4, ISheetDrawingService),
2305
- __decorateParam(5, IDrawingManagerService),
2306
- __decorateParam(6, IUniverInstanceService),
2307
- __decorateParam(7, Inject(SheetDrawingTransformPlanService))
2243
+ __decorateParam(3, ISheetDrawingService),
2244
+ __decorateParam(4, IDrawingManagerService),
2245
+ __decorateParam(5, IUniverInstanceService),
2246
+ __decorateParam(6, Inject(SheetDrawingTransformPlanService))
2308
2247
  ], SheetDrawingTransformAffectedController);
2309
2248
 
2310
2249
  //#endregion
@@ -15,20 +15,19 @@
15
15
  */
16
16
  import { Disposable, ICommandService, IUniverInstanceService } from '@univerjs/core';
17
17
  import { IDrawingManagerService } from '@univerjs/drawing';
18
- import { SheetInterceptorService, SheetSkeletonService, SheetsSelectionsService } from '@univerjs/sheets';
18
+ import { SheetInterceptorService, SheetSkeletonService } from '@univerjs/sheets';
19
19
  import { SheetDrawingTransformPlanService } from '../services/sheet-drawing-transform-plan.service';
20
20
  import { ISheetDrawingService } from '../services/sheet-drawing.service';
21
21
  export declare class SheetDrawingTransformAffectedController extends Disposable {
22
22
  private readonly _commandService;
23
23
  private readonly _sheetSkeletonService;
24
24
  private readonly _sheetInterceptorService;
25
- private readonly _selectionManagerService;
26
25
  private readonly _sheetDrawingService;
27
26
  private readonly _drawingManagerService;
28
27
  private readonly _univerInstanceService;
29
28
  private readonly _transformPlanService;
30
29
  private _currentCommand;
31
- constructor(_commandService: ICommandService, _sheetSkeletonService: SheetSkeletonService, _sheetInterceptorService: SheetInterceptorService, _selectionManagerService: SheetsSelectionsService, _sheetDrawingService: ISheetDrawingService, _drawingManagerService: IDrawingManagerService, _univerInstanceService: IUniverInstanceService, _transformPlanService: SheetDrawingTransformPlanService);
30
+ constructor(_commandService: ICommandService, _sheetSkeletonService: SheetSkeletonService, _sheetInterceptorService: SheetInterceptorService, _sheetDrawingService: ISheetDrawingService, _drawingManagerService: IDrawingManagerService, _univerInstanceService: IUniverInstanceService, _transformPlanService: SheetDrawingTransformPlanService);
32
31
  private _sheetInterceptorListener;
33
32
  private _finalizePlan;
34
33
  private _getCalculatedSkeletonParam;
@@ -114,6 +114,17 @@ export declare class FOverGridImageBuilder {
114
114
  * ```
115
115
  */
116
116
  getSourceType(): ImageSourceType;
117
+ /**
118
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
119
+ * @param {number} opacity The opacity from 0 through 1.
120
+ * @returns {FOverGridImageBuilder} This builder.
121
+ */
122
+ setOpacity(opacity: number): FOverGridImageBuilder;
123
+ /**
124
+ * Get the configured whole-image opacity.
125
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
126
+ */
127
+ getOpacity(): number;
117
128
  /**
118
129
  * Set the horizontal position of the image
119
130
  * @param {number} column - The column index of the image start position, start at 0
@@ -540,6 +551,17 @@ export declare class FOverGridImage extends FBase {
540
551
  * ```
541
552
  */
542
553
  getPlacement(): ISheetDrawingPlacement;
554
+ /**
555
+ * Get the current whole-image opacity.
556
+ * @returns {number} The opacity from 0 (transparent) through 1 (opaque).
557
+ */
558
+ getOpacity(): number;
559
+ /**
560
+ * Set the whole-image opacity from zero (transparent) through one (opaque).
561
+ * @param {number} opacity The opacity from 0 through 1.
562
+ * @returns {boolean} Whether the update succeeded.
563
+ */
564
+ setOpacity(opacity: number): boolean;
543
565
  /**
544
566
  * Set this image's explicit placement through the drawing command.
545
567
  * `Position`, `Both`, and `None` correspond to OneCell, TwoCell, and
@@ -39,6 +39,7 @@ export interface ISheetDrawingBase {
39
39
  * this property is used to store the excel drawing axis alignment position, which is not always the same as the sheetTransform.
40
40
  */
41
41
  axisAlignSheetTransform: ISheetDrawingPosition;
42
+ /** Defaults to Position: the drawing moves with cells while retaining its size. */
42
43
  anchorType?: SheetDrawingAnchorType;
43
44
  }
44
45
  export interface ISheetImage extends IImageData, ISheetDrawingBase {
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/core/facade"),require("@univerjs/drawing"),require("@univerjs/sheets"),require("@univerjs/sheets-drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/drawing`,`@univerjs/sheets`,`@univerjs/sheets-drawing`,`@univerjs/engine-render`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverDrawing,e.UniverSheets,e.UniverSheetsDrawing,e.UniverEngineRender,e.UniverSheetsFacade))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function c(e){"@babel/helpers - typeof";return c=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},c(e)}function l(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u(e){var t=l(e,`string`);return c(t)==`symbol`?t:t+``}function d(e,t,n){return(t=u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return function(n,r){t(n,r,e)}}function p(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}function m(e,t){let{from:n,to:r,flipY:a=!1,flipX:o=!1,angle:s=0,skewX:c=0,skewY:l=0}=e.sheetTransform,{column:u,columnOffset:d,row:f,rowOffset:p}=n,{width:m,height:h}=(0,i.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,{from:n,to:r},t);return{...e,column:u,columnOffset:d,row:f,rowOffset:p,width:m,height:h,flipY:a,flipX:o,angle:s,skewX:c,skewY:l}}function h(e,t){let n=t.ensureSkeleton(e.unitId,e.subUnitId);if(!n)throw Error(`Skeleton for unitId ${e.unitId} and subUnitId ${e.subUnitId} not found`);let{column:r,columnOffset:o,row:s,rowOffset:c,flipY:l=!1,flipX:u=!1,angle:d=0,skewX:f=0,skewY:p=0,width:m,height:h}=e,{sheetTransform:g,transform:_}=(0,i.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,{column:r,columnOffset:o,row:s,rowOffset:c},m,h,n);return{...e,sheetTransform:{...g,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},transform:{..._,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},axisAlignSheetTransform:(0,a.transformToAxisAlignPosition)(_,n)}}let g=class{constructor(e,n,r){this._sheetSkeletonService=r,d(this,`_image`,void 0),d(this,`_placement`,void 0),this._image={drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.BASE64,source:``,unitId:e,subUnitId:n,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0,axisAlignSheetTransform:{from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}}}setImage(e){let{unitId:t,subUnitId:n}=e,r=this._sheetSkeletonService.getSkeleton(t,n);if(!r)throw Error(`Skeleton for unitId ${t} and subUnitId ${n} not found`);return e.sheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},e.axisAlignSheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},this._image=m(e,r),this}setSource(e,n){let r=n??t.ImageSourceType.URL;return this._image.source=e,this._image.imageSourceType=r,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(e){return this._image.column=e,this}setRow(e){return this._image.row=e,this}setColumnOffset(e){return this._image.columnOffset=e,this}setRowOffset(e){return this._image.rowOffset=e,this}setWidth(e){return this._image.width=e,this}setHeight(e){return this._image.height=e,this}setAnchorType(e){return this._image.anchorType=e,this}setPlacement(e){return this._placement=e,this}setCropTop(e){return this._initializeSrcRect(),this._image.srcRect.top=e,this}setCropLeft(e){return this._initializeSrcRect(),this._image.srcRect.left=e,this}setCropBottom(e){return this._initializeSrcRect(),this._image.srcRect.bottom=e,this}setCropRight(e){return this._initializeSrcRect(),this._image.srcRect.right=e,this}_initializeSrcRect(){this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(e){return this._image.angle=e,this}setUnitId(e){return this._image.unitId=e,this}setSubUnitId(e){return this._image.subUnitId=e,this}async buildAsync(){var e;let t=this._sheetSkeletonService;if(!this._placement&&(this._image.width===0||this._image.height===0)){let e=await(0,r.getImageSize)(this._image.source),t=e.width,n=e.height;this._image.width===0&&(this._image.width=t),this._image.height===0&&(this._image.height=n)}if(((e=this._placement)==null?void 0:e.kind)===a.SheetDrawingAnchorType.None){let{left:e,top:t,width:n,height:r}=`bounds`in this._placement?this._placement.bounds:this._placement,i={from:{column:0,columnOffset:e,row:0,rowOffset:t},to:{column:0,columnOffset:e+n,row:0,rowOffset:t+r}},o={...this._image,transform:{left:e,top:t,width:n,height:r,flipY:this._image.flipY,flipX:this._image.flipX,angle:this._image.angle,skewX:this._image.skewX,skewY:this._image.skewY},sheetTransform:i,axisAlignSheetTransform:i};return(0,a.applySheetDrawingPlacement)(o,this._placement)}let n=h(this._image,t);if(!this._placement)return n;let i=t.ensureSkeleton(n.unitId,n.subUnitId);return(0,a.applySheetDrawingPlacement)(n,this._placement,i)}};g=p([f(2,(0,t.Inject)(i.SheetSkeletonService))],g);let _=class extends n.FBase{constructor(e,t,n,r,i){super(),this._image=e,this._commandService=t,this._injector=n,this._sheetDrawingService=r,this._sheetSkeletonService=i}getId(){return this._image.drawingId}getUnitId(){return this._image.unitId}getSubUnitId(){return this._image.subUnitId}getType(){return this._image.drawingType}getPlacement(){let e=this._sheetDrawingService.getDrawingByParam({unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingId:this._image.drawingId});return(0,a.getSheetDrawingPlacement)(e??this._image)}setPlacement(e){return this._commandService.syncExecuteCommand(a.SetSheetDrawingPlacementCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawings:[{drawingId:this._image.drawingId,placement:e}]})}remove(){return this._commandService.syncExecuteCommand(a.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){let e=this._injector.createInstance(g,this._image.unitId,this._image.subUnitId);return e.setImage(this._image),e}setSource(e,n){let r=n??t.ImageSourceType.URL;return this._image.source=e,this._image.imageSourceType=r,this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(e,t,n,r){let i=this.toBuilder();i.setColumn(t),i.setRow(e),n!=null&&i.setRowOffset(n),r!=null&&i.setColumnOffset(r);let o=await i.buildAsync();return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[o]})}async setSizeAsync(e,t){let n=this.toBuilder();n.setWidth(e),n.setHeight(t);let r=await n.buildAsync();return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(e,t,n,r){return this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0}),e!=null&&(this._image.srcRect.top=e),t!=null&&(this._image.srcRect.left=t),n!=null&&(this._image.srcRect.bottom=n),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(e){if(this._image.sheetTransform.angle=e,this._image.transform&&(this._image.transform.angle=e),this._image.transform){let e=this._sheetSkeletonService.getSkeleton(this._image.unitId,this._image.subUnitId);if(!e)throw Error(`Skeleton for unitId ${this._image.unitId} and subUnitId ${this._image.subUnitId} not found`);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=(0,a.transformToAxisAlignPosition)(this._image.transform,e))}return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.front})}};_=p([f(1,t.ICommandService),f(2,(0,t.Inject)(t.Injector)),f(3,a.ISheetDrawingService),f(4,(0,t.Inject)(i.SheetSkeletonService))],_);var v=class extends s.FWorksheet{get _sheetDrawingService(){return this._injector.get(a.ISheetDrawingService)}get _sheetSkeletonService(){return this._injector.get(i.SheetSkeletonService)}get _undoRedoService(){return this._injector.get(t.IUndoRedoService)}getBackgroundImage(){let e=this._worksheet.getConfig().backgroundImage;return e?{...e}:null}setBackgroundImage(e,n=t.ImageSourceType.URL){return this._commandService.syncExecuteCommand(a.SetWorksheetBackgroundImageCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),backgroundImage:{source:e,imageSourceType:n}}),this}deleteBackgroundImage(){return this._commandService.syncExecuteCommand(a.SetWorksheetBackgroundImageCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),backgroundImage:null}),this}async insertImage(e,n,r,i,o){let s=this.newOverGridImage();if(typeof e==`string`)s.setSource(e);else{let n=await e.getBlob().getDataAsString();s.setSource(n,t.ImageSourceType.BASE64)}n===void 0?s.setColumn(0):s.setColumn(n),r===void 0?s.setRow(0):s.setRow(r),i===void 0?s.setColumnOffset(0):s.setColumnOffset(i),o===void 0?s.setRowOffset(0):s.setRowOffset(o);let c=await s.buildAsync();return this._commandService.syncExecuteCommand(a.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[c]})}insertImages(e){let t=e.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(a.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(e){let t=e.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(a.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){let e=this._sheetDrawingService.getDrawingData(this._fWorkbook.getId(),this.getSheetId()),n=[];for(let r in e){let i=e[r];i.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE&&n.push(this._injector.createInstance(_,i))}return n}getImageById(e){let n=this._sheetDrawingService.getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return n&&n.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(_,n):null}getActiveImages(){let e=this._sheetDrawingService.getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(_,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}getDrawingPlacement(e){let t=this._sheetDrawingService.getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return t?(0,a.getSheetDrawingPlacement)(t):null}setDrawingPlacement(e,t){return this._commandService.syncExecuteCommand(a.SetSheetDrawingPlacementCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawings:[{drawingId:e,placement:t}]})}resolveDrawingPlacement(e){let t=e.kind===a.SheetDrawingAnchorType.None?void 0:this._sheetSkeletonService.ensureSkeleton(this._fWorkbook.getId(),this.getSheetId());if(e.kind!==a.SheetDrawingAnchorType.None&&!t)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);return(0,a.normalizeSheetDrawingPlacement)(e,t)}getDrawingLayout(){let e=this._fWorkbook.getId(),t=this.getSheetId(),n=this._sheetSkeletonService.ensureSkeleton(e,t);if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let{startRow:r,endRow:i,startColumn:o,endColumn:s}=this._worksheet.getDataRealRange(),c=n.getCellWithCoordByIndex(r,o,!1),l=n.getCellWithCoordByIndex(i,s,!1),u=this._sheetDrawingService,d=u.getDrawingData(e,t),f=u.getDrawingOrder(e,t),p=[...f,...Object.keys(d).filter(e=>!f.includes(e))],m=[];for(let e of p){let t=d[e],n=t&&y(t);t&&n&&m.push({drawingId:e,drawingType:t.drawingType,bounds:n,placement:(0,a.getSheetDrawingPlacement)(t),groupId:t.groupId})}return{gridBounds:{left:0,top:0,width:n.columnTotalWidth,height:n.rowTotalHeight},dataBounds:{left:c.startX,top:c.startY,width:l.endX-c.startX,height:l.endY-c.startY},drawings:m}}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(g,e,t)}groupDrawings(e,n=(0,t.generateRandomId)(10)){let i=Array.from(new Set(e));if(i.length<2)return null;let s=this._fWorkbook.getId(),c=this.getSheetId(),l=this._sheetDrawingService;if(l.getDrawingByParam({unitId:s,subUnitId:c,drawingId:n}))return null;let u=i.map(e=>l.getDrawingByParam({unitId:s,subUnitId:c,drawingId:e}));if(u.some(e=>!e)||u.some(e=>!(0,r.isGroupableDrawingType)(e.drawingType)))return null;let d=u,f=(0,o.getGroupState)(0,0,d.map(e=>e.transform||{})),p={unitId:s,subUnitId:c,drawingId:n,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:f,groupBaseBound:{left:f.left,top:f.top,width:f.width,height:f.height}},m=d.map(e=>({...e,groupId:n}));return this._applyGroupDrawingOperation([{parent:p,children:m}],a.DrawingApplyType.GROUP)?n:null}ungroupDrawings(e){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService,s=[];for(let a of e){let e=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:a});if(!e||e.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP)continue;let c=e.transform||{width:0,height:0},l=i.getDrawingsByGroup({unitId:n,subUnitId:r,drawingId:a}).map(t=>{let n=(0,o.transformObjectOutOfGroup)(t.transform||{},c,c.width||0,c.height||0,e.groupBaseBound);return{...t,transform:{...t.transform,...n},groupId:void 0}});l.length>0&&s.push({parent:e,children:l})}return this._applyGroupDrawingOperation(s,a.DrawingApplyType.UNGROUP)}getDrawingGroupChildren(e,t=!1){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService;if(!t)return i.getDrawingsByGroup({unitId:n,subUnitId:r,drawingId:e});let a=i.getDrawingsByGroupNested({unitId:n,subUnitId:r,drawingId:e});return a?[...a.flatChildren||[],...a.groups.filter(t=>t.drawingId!==e)]:[]}getDrawingParentGroup(e){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService,a=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:e});if(!(a!=null&&a.groupId))return null;let o=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:a.groupId});return!o||o.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP?null:o}isDrawingGrouped(e){return this.getDrawingParentGroup(e)!==null}_applyGroupDrawingOperation(e,t){if(e.length===0)return!1;let n=this._sheetDrawingService,r=this._commandService,i=this._undoRedoService,{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=t===a.DrawingApplyType.GROUP?n.getGroupDrawingOp(e):n.getUngroupDrawingOp(e);if(r.syncExecuteCommand(a.SetDrawingApplyMutation.id,{op:l,unitId:o,subUnitId:s,objects:u,type:t})){let e=t===a.DrawingApplyType.GROUP?a.DrawingApplyType.UNGROUP:a.DrawingApplyType.GROUP;return i.pushUndoRedo({unitID:o,undoMutations:[{id:a.SetDrawingApplyMutation.id,params:{op:c,unitId:o,subUnitId:s,objects:this._invertGroupOperationObjects(u,t),type:e}}],redoMutations:[{id:a.SetDrawingApplyMutation.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:t}}]}),!0}return!1}_invertGroupOperationObjects(e,t){return t===a.DrawingApplyType.GROUP?e.map(e=>{let{parent:t,children:n}=e,r=t.transform||{width:0,height:0};return{parent:{...t,transform:{left:0,top:0}},children:n.map(e=>({...e,transform:(0,o.transformObjectOutOfGroup)(e.transform||{},r,r.width||0,r.height||0,t.groupBaseBound),groupId:void 0}))}}):e.map(e=>{let{parent:t,children:n}=e,r=(0,o.getGroupState)(0,0,n.map(e=>e.transform||{}));return{parent:{...t,transform:r},children:n.map(e=>({...e,groupId:t.drawingId}))}})}};function y(e){let{left:t,top:n,width:r,height:i}=e.transform??{};return typeof t!=`number`||typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)?null:{left:t,top:n,width:r,height:i}}s.FWorksheet.extend(v);var b=class extends n.FEnum{get DrawingType(){return t.DrawingTypeEnum}get SheetDrawingAnchorType(){return a.SheetDrawingAnchorType}};n.FEnum.extend(b);var x=class extends n.FEventName{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}get BeforeOverGridImageChange(){return`BeforeOverGridImageChange`}get OverGridImageChanged(){return`OverGridImageChanged`}get BeforeOverGridImageInsert(){return`BeforeOverGridImageInsert`}get OverGridImageInserted(){return`OverGridImageInserted`}get BeforeOverGridImageRemove(){return`BeforeOverGridImageRemove`}get OverGridImageRemoved(){return`OverGridImageRemoved`}get BeforeOverGridImageSelect(){return`BeforeOverGridImageSelect`}get OverGridImageSelected(){return`OverGridImageSelected`}};n.FEventName.extend(x);var S=class extends n.FUniver{_initialize(e){let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>n.beforeCommandExecuted(e=>{if(e.id!==a.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,o={workbook:r,insertImageParams:i};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,o),o.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>n.beforeCommandExecuted(n=>{if(n.id!==a.RemoveSheetDrawingCommand.id)return;let i=n.params,o=this.getActiveWorkbook();if(o==null||i==null)return;let s=e.get(r.IDrawingManagerService),{drawings:c}=i,l=c.map(e=>s.getDrawingByParam(e)),u={workbook:o,images:this._createFOverGridImage(l)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>n.beforeCommandExecuted(n=>{if(n.id!==a.SetSheetDrawingCommand.id)return;let i=n.params,o=this.getActiveWorkbook();if(o==null||i==null)return;let{drawings:s}=i,c=e.get(r.IDrawingManagerService),l=[];s.forEach(e=>{let t=c.getDrawingByParam(e);t!=null&&l.push({changeParam:e,image:this._injector.createInstance(_,t)})});let u={workbook:o,images:l};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw c.updateNotification(s),new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>n.beforeCommandExecuted(n=>{if(n.id!==r.SetDrawingSelectedOperation.id)return;let i=n.params,a=this.getActiveWorkbook();if(a==null)return;let o=e.get(r.IDrawingManagerService),s=o.getFocusDrawings(),c=i.map(e=>o.getDrawingByParam(e)),l={workbook:a,selectedImages:this._createFOverGridImage(c),oldSelectedImages:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,l),l.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>n.onCommandExecuted(e=>{if(e.id!==a.InsertSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,images:this._createFOverGridImage(r)};this.fireEvent(this.Event.OverGridImageInserted,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>n.onCommandExecuted(e=>{if(e.id!==a.RemoveSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,removeImageParams:r};this.fireEvent(this.Event.OverGridImageRemoved,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>n.onCommandExecuted(t=>{if(t.id!==a.SetSheetDrawingCommand.id)return;let n=t.params,i=this.getActiveWorkbook();if(i==null||n==null)return;let{drawings:o}=n,s=e.get(r.IDrawingManagerService),c={workbook:i,images:o.map(e=>this._injector.createInstance(_,s.getDrawingByParam(e)))};this.fireEvent(this.Event.OverGridImageChanged,c)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>n.onCommandExecuted(t=>{if(t.id!==r.SetDrawingSelectedOperation.id)return;let n=t.params,i=this.getActiveWorkbook();if(i==null)return;let a=e.get(r.IDrawingManagerService),o=n.map(e=>a.getDrawingByParam(e)),s={workbook:i,selectedImages:this._createFOverGridImage(o)};this.fireEvent(this.Event.OverGridImageSelected,s)})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(_,e))}};n.FUniver.extend(S),Object.defineProperty(e,"FOverGridImage",{enumerable:!0,get:function(){return _}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/sheets"),require("@univerjs/sheets-drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/core/facade`,`@univerjs/drawing`,`@univerjs/sheets`,`@univerjs/sheets-drawing`,`@univerjs/engine-render`,`@univerjs/sheets/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawingFacade={},e.UniverCore,e.UniverCoreFacade,e.UniverDrawing,e.UniverSheets,e.UniverSheetsDrawing,e.UniverEngineRender,e.UniverSheetsFacade))})(this,function(e,t,n,r,i,a,o,s){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function c(e){"@babel/helpers - typeof";return c=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},c(e)}function l(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u(e){var t=l(e,`string`);return c(t)==`symbol`?t:t+``}function d(e,t,n){return(t=u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return function(n,r){t(n,r,e)}}function p(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}function m(e,t){let{from:n,to:r,flipY:a=!1,flipX:o=!1,angle:s=0,skewX:c=0,skewY:l=0}=e.sheetTransform,{column:u,columnOffset:d,row:f,rowOffset:p}=n,{width:m,height:h}=(0,i.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,{from:n,to:r},t);return{...e,column:u,columnOffset:d,row:f,rowOffset:p,width:m,height:h,flipY:a,flipX:o,angle:s,skewX:c,skewY:l}}function h(e,t){let n=t.ensureSkeleton(e.unitId,e.subUnitId);if(!n)throw Error(`Skeleton for unitId ${e.unitId} and subUnitId ${e.subUnitId} not found`);let{column:r,columnOffset:o,row:s,rowOffset:c,flipY:l=!1,flipX:u=!1,angle:d=0,skewX:f=0,skewY:p=0,width:m,height:h}=e,{sheetTransform:g,transform:_}=(0,i.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,{column:r,columnOffset:o,row:s,rowOffset:c},m,h,n);return{...e,sheetTransform:{...g,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},transform:{..._,flipY:l,flipX:u,angle:d,skewX:f,skewY:p},axisAlignSheetTransform:(0,a.transformToAxisAlignPosition)(_,n)}}let g=class{constructor(e,n,r){this._sheetSkeletonService=r,d(this,`_image`,void 0),d(this,`_placement`,void 0),this._image={drawingId:(0,t.generateRandomId)(6),drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:t.ImageSourceType.BASE64,source:``,unitId:e,subUnitId:n,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0,axisAlignSheetTransform:{from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}}}setImage(e){let{unitId:t,subUnitId:n}=e,r=this._sheetSkeletonService.getSkeleton(t,n);if(!r)throw Error(`Skeleton for unitId ${t} and subUnitId ${n} not found`);return e.sheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},e.axisAlignSheetTransform??={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}},this._image=m(e,r),this}setSource(e,n){let r=n??t.ImageSourceType.URL;return this._image.source=e,this._image.imageSourceType=r,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setOpacity(e){return v(e),this._image.opacity=e,this}getOpacity(){return this._image.opacity??1}setColumn(e){return this._image.column=e,this}setRow(e){return this._image.row=e,this}setColumnOffset(e){return this._image.columnOffset=e,this}setRowOffset(e){return this._image.rowOffset=e,this}setWidth(e){return this._image.width=e,this}setHeight(e){return this._image.height=e,this}setAnchorType(e){return this._image.anchorType=e,this}setPlacement(e){return this._placement=e,this}setCropTop(e){return this._initializeSrcRect(),this._image.srcRect.top=e,this}setCropLeft(e){return this._initializeSrcRect(),this._image.srcRect.left=e,this}setCropBottom(e){return this._initializeSrcRect(),this._image.srcRect.bottom=e,this}setCropRight(e){return this._initializeSrcRect(),this._image.srcRect.right=e,this}_initializeSrcRect(){this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(e){return this._image.angle=e,this}setUnitId(e){return this._image.unitId=e,this}setSubUnitId(e){return this._image.subUnitId=e,this}async buildAsync(){var e;let t=this._sheetSkeletonService;if(!this._placement&&(this._image.width===0||this._image.height===0)){let e=await(0,r.getImageSize)(this._image.source),t=e.width,n=e.height;this._image.width===0&&(this._image.width=t),this._image.height===0&&(this._image.height=n)}if(((e=this._placement)==null?void 0:e.kind)===a.SheetDrawingAnchorType.None){let{left:e,top:t,width:n,height:r}=`bounds`in this._placement?this._placement.bounds:this._placement,i={from:{column:0,columnOffset:e,row:0,rowOffset:t},to:{column:0,columnOffset:e+n,row:0,rowOffset:t+r}},o={...this._image,transform:{left:e,top:t,width:n,height:r,flipY:this._image.flipY,flipX:this._image.flipX,angle:this._image.angle,skewX:this._image.skewX,skewY:this._image.skewY},sheetTransform:i,axisAlignSheetTransform:i};return(0,a.applySheetDrawingPlacement)(o,this._placement)}let n=h(this._image,t);if(!this._placement)return n;let i=t.ensureSkeleton(n.unitId,n.subUnitId);return(0,a.applySheetDrawingPlacement)(n,this._placement,i)}};g=p([f(2,(0,t.Inject)(i.SheetSkeletonService))],g);let _=class extends n.FBase{constructor(e,t,n,r,i){super(),this._image=e,this._commandService=t,this._injector=n,this._sheetDrawingService=r,this._sheetSkeletonService=i}getId(){return this._image.drawingId}getUnitId(){return this._image.unitId}getSubUnitId(){return this._image.subUnitId}getType(){return this._image.drawingType}getPlacement(){let e=this._sheetDrawingService.getDrawingByParam({unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingId:this._image.drawingId});return(0,a.getSheetDrawingPlacement)(e??this._image)}getOpacity(){let e=this._sheetDrawingService.getDrawingByParam({unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingId:this._image.drawingId});return(e==null?void 0:e.opacity)??this._image.opacity??1}setOpacity(e){return v(e),this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingId:this._image.drawingId,opacity:e}]})}setPlacement(e){return this._commandService.syncExecuteCommand(a.SetSheetDrawingPlacementCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawings:[{drawingId:this._image.drawingId,placement:e}]})}remove(){return this._commandService.syncExecuteCommand(a.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){let e=this._injector.createInstance(g,this._image.unitId,this._image.subUnitId);return e.setImage(this._image),e}setSource(e,n){let r=n??t.ImageSourceType.URL;return this._image.source=e,this._image.imageSourceType=r,this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(e,t,n,r){let i=this.toBuilder();i.setColumn(t),i.setRow(e),n!=null&&i.setRowOffset(n),r!=null&&i.setColumnOffset(r);let o=await i.buildAsync();return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[o]})}async setSizeAsync(e,t){let n=this.toBuilder();n.setWidth(e),n.setHeight(t);let r=await n.buildAsync();return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[r]})}setCrop(e,t,n,r){return this._image.srcRect??(this._image.srcRect={top:0,left:0,bottom:0,right:0}),e!=null&&(this._image.srcRect.top=e),t!=null&&(this._image.srcRect.left=t),n!=null&&(this._image.srcRect.bottom=n),r!=null&&(this._image.srcRect.right=r),this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(e){if(this._image.sheetTransform.angle=e,this._image.transform&&(this._image.transform.angle=e),this._image.transform){let e=this._sheetSkeletonService.getSkeleton(this._image.unitId,this._image.subUnitId);if(!e)throw Error(`Skeleton for unitId ${this._image.unitId} and subUnitId ${this._image.subUnitId} not found`);this._image.axisAlignSheetTransform&&(this._image.axisAlignSheetTransform=(0,a.transformToAxisAlignPosition)(this._image.transform,e))}return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(a.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:t.ArrangeTypeEnum.front})}};_=p([f(1,t.ICommandService),f(2,(0,t.Inject)(t.Injector)),f(3,a.ISheetDrawingService),f(4,(0,t.Inject)(i.SheetSkeletonService))],_);function v(e){if(!Number.isFinite(e)||e<0||e>1)throw RangeError(`Sheet image opacity must be between 0 and 1.`)}var y=class extends s.FWorksheet{get _sheetDrawingService(){return this._injector.get(a.ISheetDrawingService)}get _sheetSkeletonService(){return this._injector.get(i.SheetSkeletonService)}get _undoRedoService(){return this._injector.get(t.IUndoRedoService)}getBackgroundImage(){let e=this._worksheet.getConfig().backgroundImage;return e?{...e}:null}setBackgroundImage(e,n=t.ImageSourceType.URL){return this._commandService.syncExecuteCommand(a.SetWorksheetBackgroundImageCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),backgroundImage:{source:e,imageSourceType:n}}),this}deleteBackgroundImage(){return this._commandService.syncExecuteCommand(a.SetWorksheetBackgroundImageCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),backgroundImage:null}),this}async insertImage(e,n,r,i,o){let s=this.newOverGridImage();if(typeof e==`string`)s.setSource(e);else{let n=await e.getBlob().getDataAsString();s.setSource(n,t.ImageSourceType.BASE64)}n===void 0?s.setColumn(0):s.setColumn(n),r===void 0?s.setRow(0):s.setRow(r),i===void 0?s.setColumnOffset(0):s.setColumnOffset(i),o===void 0?s.setRowOffset(0):s.setRowOffset(o);let c=await s.buildAsync();return this._commandService.syncExecuteCommand(a.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[c]})}insertImages(e){let t=e.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(a.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(e){let t=e.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(a.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){let e=this._sheetDrawingService.getDrawingData(this._fWorkbook.getId(),this.getSheetId()),n=[];for(let r in e){let i=e[r];i.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE&&n.push(this._injector.createInstance(_,i))}return n}getImageById(e){let n=this._sheetDrawingService.getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return n&&n.drawingType===t.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(_,n):null}getActiveImages(){let e=this._sheetDrawingService.getFocusDrawings(),t=[];for(let n in e){let r=e[n];t.push(this._injector.createInstance(_,r))}return t}updateImages(e){return this._commandService.syncExecuteCommand(a.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:e}),this}getDrawingPlacement(e){let t=this._sheetDrawingService.getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:e});return t?(0,a.getSheetDrawingPlacement)(t):null}setDrawingPlacement(e,t){return this._commandService.syncExecuteCommand(a.SetSheetDrawingPlacementCommand.id,{unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawings:[{drawingId:e,placement:t}]})}resolveDrawingPlacement(e){let t=e.kind===a.SheetDrawingAnchorType.None?void 0:this._sheetSkeletonService.ensureSkeleton(this._fWorkbook.getId(),this.getSheetId());if(e.kind!==a.SheetDrawingAnchorType.None&&!t)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);return(0,a.normalizeSheetDrawingPlacement)(e,t)}getDrawingLayout(){let e=this._fWorkbook.getId(),t=this.getSheetId(),n=this._sheetSkeletonService.ensureSkeleton(e,t);if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let{startRow:r,endRow:i,startColumn:o,endColumn:s}=this._worksheet.getDataRealRange(),c=n.getCellWithCoordByIndex(r,o,!1),l=n.getCellWithCoordByIndex(i,s,!1),u=this._sheetDrawingService,d=u.getDrawingData(e,t),f=u.getDrawingOrder(e,t),p=[...f,...Object.keys(d).filter(e=>!f.includes(e))],m=[];for(let e of p){let t=d[e],n=t&&b(t);t&&n&&m.push({drawingId:e,drawingType:t.drawingType,bounds:n,placement:(0,a.getSheetDrawingPlacement)(t),groupId:t.groupId})}return{gridBounds:{left:0,top:0,width:n.columnTotalWidth,height:n.rowTotalHeight},dataBounds:{left:c.startX,top:c.startY,width:l.endX-c.startX,height:l.endY-c.startY},drawings:m}}newOverGridImage(){let e=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(g,e,t)}groupDrawings(e,n=(0,t.generateRandomId)(10)){let i=Array.from(new Set(e));if(i.length<2)return null;let s=this._fWorkbook.getId(),c=this.getSheetId(),l=this._sheetDrawingService;if(l.getDrawingByParam({unitId:s,subUnitId:c,drawingId:n}))return null;let u=i.map(e=>l.getDrawingByParam({unitId:s,subUnitId:c,drawingId:e}));if(u.some(e=>!e)||u.some(e=>!(0,r.isGroupableDrawingType)(e.drawingType)))return null;let d=u,f=(0,o.getGroupState)(0,0,d.map(e=>e.transform||{})),p={unitId:s,subUnitId:c,drawingId:n,drawingType:t.DrawingTypeEnum.DRAWING_GROUP,transform:f,groupBaseBound:{left:f.left,top:f.top,width:f.width,height:f.height}},m=d.map(e=>({...e,groupId:n}));return this._applyGroupDrawingOperation([{parent:p,children:m}],a.DrawingApplyType.GROUP)?n:null}ungroupDrawings(e){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService,s=[];for(let a of e){let e=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:a});if(!e||e.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP)continue;let c=e.transform||{width:0,height:0},l=i.getDrawingsByGroup({unitId:n,subUnitId:r,drawingId:a}).map(t=>{let n=(0,o.transformObjectOutOfGroup)(t.transform||{},c,c.width||0,c.height||0,e.groupBaseBound);return{...t,transform:{...t.transform,...n},groupId:void 0}});l.length>0&&s.push({parent:e,children:l})}return this._applyGroupDrawingOperation(s,a.DrawingApplyType.UNGROUP)}getDrawingGroupChildren(e,t=!1){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService;if(!t)return i.getDrawingsByGroup({unitId:n,subUnitId:r,drawingId:e});let a=i.getDrawingsByGroupNested({unitId:n,subUnitId:r,drawingId:e});return a?[...a.flatChildren||[],...a.groups.filter(t=>t.drawingId!==e)]:[]}getDrawingParentGroup(e){let n=this._fWorkbook.getId(),r=this.getSheetId(),i=this._sheetDrawingService,a=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:e});if(!(a!=null&&a.groupId))return null;let o=i.getDrawingByParam({unitId:n,subUnitId:r,drawingId:a.groupId});return!o||o.drawingType!==t.DrawingTypeEnum.DRAWING_GROUP?null:o}isDrawingGrouped(e){return this.getDrawingParentGroup(e)!==null}_applyGroupDrawingOperation(e,t){if(e.length===0)return!1;let n=this._sheetDrawingService,r=this._commandService,i=this._undoRedoService,{unitId:o,subUnitId:s,undo:c,redo:l,objects:u}=t===a.DrawingApplyType.GROUP?n.getGroupDrawingOp(e):n.getUngroupDrawingOp(e);if(r.syncExecuteCommand(a.SetDrawingApplyMutation.id,{op:l,unitId:o,subUnitId:s,objects:u,type:t})){let e=t===a.DrawingApplyType.GROUP?a.DrawingApplyType.UNGROUP:a.DrawingApplyType.GROUP;return i.pushUndoRedo({unitID:o,undoMutations:[{id:a.SetDrawingApplyMutation.id,params:{op:c,unitId:o,subUnitId:s,objects:this._invertGroupOperationObjects(u,t),type:e}}],redoMutations:[{id:a.SetDrawingApplyMutation.id,params:{op:l,unitId:o,subUnitId:s,objects:u,type:t}}]}),!0}return!1}_invertGroupOperationObjects(e,t){return t===a.DrawingApplyType.GROUP?e.map(e=>{let{parent:t,children:n}=e,r=t.transform||{width:0,height:0};return{parent:{...t,transform:{left:0,top:0}},children:n.map(e=>({...e,transform:(0,o.transformObjectOutOfGroup)(e.transform||{},r,r.width||0,r.height||0,t.groupBaseBound),groupId:void 0}))}}):e.map(e=>{let{parent:t,children:n}=e,r=(0,o.getGroupState)(0,0,n.map(e=>e.transform||{}));return{parent:{...t,transform:r},children:n.map(e=>({...e,groupId:t.drawingId}))}})}};function b(e){let{left:t,top:n,width:r,height:i}=e.transform??{};return typeof t!=`number`||typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(i)?null:{left:t,top:n,width:r,height:i}}s.FWorksheet.extend(y);var x=class extends n.FEnum{get DrawingType(){return t.DrawingTypeEnum}get SheetDrawingAnchorType(){return a.SheetDrawingAnchorType}};n.FEnum.extend(x);var S=class extends n.FEventName{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}get BeforeOverGridImageChange(){return`BeforeOverGridImageChange`}get OverGridImageChanged(){return`OverGridImageChanged`}get BeforeOverGridImageInsert(){return`BeforeOverGridImageInsert`}get OverGridImageInserted(){return`OverGridImageInserted`}get BeforeOverGridImageRemove(){return`BeforeOverGridImageRemove`}get OverGridImageRemoved(){return`OverGridImageRemoved`}get BeforeOverGridImageSelect(){return`BeforeOverGridImageSelect`}get OverGridImageSelected(){return`OverGridImageSelected`}};n.FEventName.extend(S);var C=class extends n.FUniver{_initialize(e){let n=e.get(t.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>n.beforeCommandExecuted(e=>{if(e.id!==a.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,o={workbook:r,insertImageParams:i};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,o),o.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>n.beforeCommandExecuted(n=>{if(n.id!==a.RemoveSheetDrawingCommand.id)return;let i=n.params,o=this.getActiveWorkbook();if(o==null||i==null)return;let s=e.get(r.IDrawingManagerService),{drawings:c}=i,l=c.map(e=>s.getDrawingByParam(e)),u={workbook:o,images:this._createFOverGridImage(l)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>n.beforeCommandExecuted(n=>{if(n.id!==a.SetSheetDrawingCommand.id)return;let i=n.params,o=this.getActiveWorkbook();if(o==null||i==null)return;let{drawings:s}=i,c=e.get(r.IDrawingManagerService),l=[];s.forEach(e=>{let t=c.getDrawingByParam(e);t!=null&&l.push({changeParam:e,image:this._injector.createInstance(_,t)})});let u={workbook:o,images:l};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw c.updateNotification(s),new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>n.beforeCommandExecuted(n=>{if(n.id!==r.SetDrawingSelectedOperation.id)return;let i=n.params,a=this.getActiveWorkbook();if(a==null)return;let o=e.get(r.IDrawingManagerService),s=o.getFocusDrawings(),c=i.map(e=>o.getDrawingByParam(e)),l={workbook:a,selectedImages:this._createFOverGridImage(c),oldSelectedImages:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,l),l.cancel)throw new t.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageInserted,()=>n.onCommandExecuted(e=>{if(e.id!==a.InsertSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,images:this._createFOverGridImage(r)};this.fireEvent(this.Event.OverGridImageInserted,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageRemoved,()=>n.onCommandExecuted(e=>{if(e.id!==a.RemoveSheetDrawingCommand.id)return;let t=e.params,n=this.getActiveWorkbook();if(n==null||t==null)return;let{drawings:r}=t,i={workbook:n,removeImageParams:r};this.fireEvent(this.Event.OverGridImageRemoved,i)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageChanged,()=>n.onCommandExecuted(t=>{if(t.id!==a.SetSheetDrawingCommand.id)return;let n=t.params,i=this.getActiveWorkbook();if(i==null||n==null)return;let{drawings:o}=n,s=e.get(r.IDrawingManagerService),c={workbook:i,images:o.map(e=>this._injector.createInstance(_,s.getDrawingByParam(e)))};this.fireEvent(this.Event.OverGridImageChanged,c)}))),this.disposeWithMe(this.registerEventHandler(this.Event.OverGridImageSelected,()=>n.onCommandExecuted(t=>{if(t.id!==r.SetDrawingSelectedOperation.id)return;let n=t.params,i=this.getActiveWorkbook();if(i==null)return;let a=e.get(r.IDrawingManagerService),o=n.map(e=>a.getDrawingByParam(e)),s={workbook:i,selectedImages:this._createFOverGridImage(o)};this.fireEvent(this.Event.OverGridImageSelected,s)})))}_createFOverGridImage(e){return e.map(e=>this._injector.createInstance(_,e))}};n.FUniver.extend(C),Object.defineProperty(e,"FOverGridImage",{enumerable:!0,get:function(){return _}})});
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/sheets"),require("@univerjs/core"),require("@univerjs/drawing"),require("@univerjs/engine-render")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case 0:n.addNotification(l),i.addNotification(l);break;case 1:n.removeNotification(l),i.removeNotification(l);break;case 2:n.updateNotification(l),i.updateNotification(l);break;case 3:n.orderNotification(l),i.orderNotification(l);break;case 4:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case 5:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l)}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),c=r.drawings,{unitId:l,subUnitId:d,undo:h,redo:g,objects:_}=o.getBatchAddOp(c),v=s.onCommandExecute({id:m.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:0}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:_,type:1}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(t.SheetInterceptorService),s=e.get(u),{drawings:c}=r,{unitId:l,subUnitId:d,undo:m,redo:g,objects:_}=s.getBatchRemoveOp(c);if(Array.isArray(_)&&_.length===0)return!1;let v=o.onCommandExecute({id:h.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:1}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:_,type:0}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c}=t,l={unitId:o,subUnitId:s,drawingIds:c},d;if(t.zOrder===void 0?t.arrangeType===n.ArrangeTypeEnum.forward?d=a.getForwardDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.backward?d=a.getBackwardDrawingOp(l):t.arrangeType===n.ArrangeTypeEnum.front?d=a.getFrontDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.back&&(d=a.getBackDrawingsOp(l)):d=a.getDrawingOrderOp(l,t.zOrder),d==null)return!1;let{objects:p,redo:m,undo:h}=d;return r.syncExecuteCommand(f.id,{op:m,unitId:o,subUnitId:s,objects:p,type:3})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:h,unitId:o,subUnitId:s,objects:p,type:3}}],redoMutations:[{id:f.id,params:{op:m,unitId:o,subUnitId:s,objects:p,type:3}}]}),!0):!1}};function _(e){var t,n;let r=e.anchorType??`0`;if(r===`2`){var i,a,o,s;return{kind:`2`,left:((i=e.transform)==null?void 0:i.left)??0,top:((a=e.transform)==null?void 0:a.top)??0,width:((o=e.transform)==null?void 0:o.width)??0,height:((s=e.transform)==null?void 0:s.height)??0}}return r===`1`?{kind:`1`,from:{...e.sheetTransform.from},to:{...e.sheetTransform.to}}:{kind:`0`,from:{...e.sheetTransform.from},width:((t=e.transform)==null?void 0:t.width)??0,height:((n=e.transform)==null?void 0:n.height)??0}}function v(e,n,r){let i=y(n,r);if(i.kind===`2`){let t=x(e.transform,i),n=S(i,e.sheetTransform);return{...e,anchorType:`2`,transform:t,sheetTransform:n,axisAlignSheetTransform:n}}if(!r)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);if(i.kind===`0`){let n=(0,t.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,i.from,i.width,i.height,r),a=b(e.sheetTransform,n.sheetTransform),o=x(e.transform,n.transform);return{...e,anchorType:`0`,sheetTransform:a,transform:o,axisAlignSheetTransform:s(o,r)}}let a=b(e.sheetTransform,{from:i.from,to:i.to}),o=(0,t.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,a,r),c=x(e.transform,o);return{...e,anchorType:`1`,sheetTransform:a,transform:c,axisAlignSheetTransform:s(c,r)}}function y(e,n){if(!(`bounds`in e))return C(e),e.kind===`1`&&n&&w((0,t.convertPositionSheetOverGridToAbsolute)(n.worksheet.getUnitId(),n.worksheet.getSheetId(),{from:e.from,to:e.to},n)),e;if(w(e.bounds),e.kind===`2`)return{kind:`2`,...e.bounds};if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let r=o(e.bounds,n);if(e.kind===`0`)return{kind:`0`,from:r.from,width:e.bounds.width,height:e.bounds.height};if(e.kind===`1`)return{kind:`1`,from:r.from,to:r.to};throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function b(e,t){return{...e,from:{...t.from},to:{...t.to}}}function x(e,t){return{...e,left:t.left,top:t.top,width:t.width,height:t.height}}function S(e,t){return{...t,from:{column:0,columnOffset:e.left,row:0,rowOffset:e.top},to:{column:0,columnOffset:e.left+e.width,row:0,rowOffset:e.top+e.height}}}function C(e){if(e.kind===`0`){T(e.from),E(e.width,e.height);return}if(e.kind===`1`){T(e.from),T(e.to);return}if(e.kind===`2`){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height);return}throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function w(e){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height)}function T(e){if(!Number.isInteger(e.row)||!Number.isInteger(e.column)||e.row<0||e.column<0||!Number.isFinite(e.rowOffset)||!Number.isFinite(e.columnOffset))throw Error(`SHEET_DRAWING_PLACEMENT_CELL_INVALID`)}function E(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)throw Error(`SHEET_DRAWING_PLACEMENT_EXTENT_INVALID`)}let D={id:`sheet.command.set-drawing-placement`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!(r!=null&&r.drawings.length))return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=r.drawings.every(({placement:e})=>e.kind===`2`)?void 0:e.get(t.SheetSkeletonService).ensureSkeleton(r.unitId,r.subUnitId),c=[];for(let{drawingId:e,placement:t}of r.drawings){let n=o.getDrawingByParam({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:e});if(!n)return!1;c.push(v(n,t,s))}let{unitId:l,subUnitId:d,undo:m,redo:h,objects:g}=o.getBatchUpdateOp(c),_=[{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:g,type:2}},{id:p.id,params:[l]}],y=[{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:g,type:2}},{id:p.id,params:[l]}];return(0,n.sequenceExecute)(_,i).result?(a.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:_}),!0):!1}};function O(e){return e===n.DrawingTypeEnum.DRAWING_CHART}function k(e,t,n){return(0,r.resolveDrawingRotateEnabled)(e,{getChildren:e=>(n==null?void 0:n(e))??t.getDrawingsByGroup(e),isKnownNonRotatableType:O})}function A(e){var t,n,r;return((t=e.transform)==null?void 0:t.angle)!==void 0||((n=e.sheetTransform)==null?void 0:n.angle)!==void 0||((r=e.axisAlignSheetTransform)==null?void 0:r.angle)!==void 0}function j(e,t){let n=t==null?void 0:t.angle,r={...t??{},...e};return n===void 0?delete r.angle:r.angle=n,r}function M(e,t){var n,r,i;if(!e.drawingId||!e.unitId||!e.subUnitId||!A(e))return e;let a=t.getDrawingByParam({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId});if(!a||k({...a,...e,drawingType:e.drawingType??a.drawingType,transform:{...a.transform,...e.transform}},t))return e;let o={...e};return((n=e.transform)==null?void 0:n.angle)!==void 0&&(o.transform=j(e.transform,a.transform)),((r=e.sheetTransform)==null?void 0:r.angle)!==void 0&&(o.sheetTransform=j(e.sheetTransform,a.sheetTransform)),((i=e.axisAlignSheetTransform)==null?void 0:i.angle)!==void 0&&(o.axisAlignSheetTransform=j(e.axisAlignSheetTransform,a.axisAlignSheetTransform)),o}let N={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),{drawings:c}=r,l=c.map(e=>M(e,o)),d={...r,drawings:l},{unitId:m,subUnitId:h,undo:g,redo:_,objects:v}=o.getBatchUpdateOp(l),y=s.onCommandExecute({id:N.id,params:d}),b=[...y.preRedos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:_,objects:v,type:2}},{id:p.id,params:[m]},...y.redos],x=[...y.preUndos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:g,objects:v,type:2}},{id:p.id,params:[m]},...y.undos];return(0,n.sequenceExecute)(b,i).result?(a.pushUndoRedo({unitID:m,undoMutations:x,redoMutations:b}),!0):!1}},P={id:`sheet.mutation.set-worksheet-background-image`,type:n.CommandType.MUTATION,handler:(e,r)=>{let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let a=i.worksheet.getConfig();return r.backgroundImage?a.backgroundImage={...r.backgroundImage}:delete a.backgroundImage,!0}},F={id:`sheet.command.set-worksheet-background-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,c=s.getConfig().backgroundImage,l=r.backgroundImage;if((c==null?void 0:c.source)===(l==null?void 0:l.source)&&(c==null?void 0:c.imageSourceType)===(l==null?void 0:l.imageSourceType))return!1;let u=e.get(n.ICommandService),d=e.get(n.IUndoRedoService),f={unitId:a,subUnitId:o,backgroundImage:l?{...l}:null},p={unitId:a,subUnitId:o,backgroundImage:c?{...c}:null};return u.syncExecuteCommand(P.id,f)?(d.pushUndoRedo({unitID:a,undoMutations:[{id:P.id,params:p}],redoMutations:[{id:P.id,params:f}]}),!0):!1}};function I(e,t){return function(n,r){t(n,r,e)}}function L(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 R=`SHEET_DRAWING_PLUGIN`;function z(e,t){let n=new Set,r=[];return t.forEach(t=>{let i=e[t];i&&(n.add(t),r.push(i))}),Object.values(e).forEach(e=>{n.has(e.drawingId)||r.push(e)}),r}let B=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f)),this.disposeWithMe(this._commandService.registerCommand(P))}_initCommands(){[N,m,h,g,D,F,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:R,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var i;let t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((i=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:i.getSheetId());if(!r||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(r,a),s=Object.values(o);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchRemoveOp(s);return Array.isArray(p)&&p.length===0?{redos:[],undos:[]}:{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:1}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:0}}]}}if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:n,targetSubUnitId:i,copyContext:a}=e.params;if(!t||!n||!i)return{redos:[],undos:[]};let o=z(this._sheetDrawingService.getDrawingData(t,n),this._sheetDrawingService.getDrawingOrder(t,n)),s=(0,r.getOrCreateDrawingCopyPlan)(a,o,{unitId:t,sourceSubUnitId:n,targetSubUnitId:i}).drawings;if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchAddOp(s);return{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:0}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:1}}]}}return{redos:[],undos:[]}}}))}};B=L([I(0,(0,n.Inject)(t.SheetInterceptorService)),I(1,(0,n.Inject)(n.IUniverInstanceService)),I(2,n.ICommandService),I(3,u),I(4,r.IDrawingManagerService),I(5,n.IResourceManagerService)],B);var V=`@univerjs/sheets-drawing`,H=`1.0.3`;let U={};function W(e){"@babel/helpers - typeof";return W=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},W(e)}function G(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function K(e){var t=G(e,`string`);return W(t)==`symbol`?t:t+``}function q(e,t,n){return(t=K(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J(){return{preRedos:[],redos:[],preUndos:[],undos:[]}}var Y=class{constructor(){q(this,`_extensions`,[])}register(e){return this._extensions.push(e),this._extensions.sort((e,t)=>(t.priority??0)-(e.priority??0)),(0,n.toDisposable)(()=>{let t=this._extensions.indexOf(e);t>=0&&this._extensions.splice(t,1)})}transform(e){return this._extensions.reduce((t,n)=>{let r=n.transform(e);return r?(t.preRedos.push(...r.preRedos??[]),t.redos.push(...r.redos??[]),t.preUndos.push(...r.preUndos??[]),t.undos.push(...r.undos??[]),t):t},J())}};let X=[t.InsertRowCommand.id,t.InsertColCommand.id,t.RemoveRowCommand.id,t.RemoveColCommand.id,t.DeleteRangeMoveLeftCommand.id,t.DeleteRangeMoveUpCommand.id,t.InsertRangeMoveDownCommand.id,t.InsertRangeMoveRightCommand.id,t.DeltaRowHeightCommand.id,t.SetRowHeightCommand.id,t.DeltaColumnWidthCommand.id,t.SetColWidthCommand.id,t.SetRowHiddenCommand.id,t.SetSpecificRowsVisibleCommand.id,t.SetSpecificColsVisibleCommand.id,t.SetColHiddenCommand.id,t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id],Z=[t.SetRowVisibleMutation.id,t.SetRowHiddenMutation.id,t.SetColVisibleMutation.id,t.SetColHiddenMutation.id,t.SetWorksheetRowHeightMutation.id,t.SetWorksheetRowAutoHeightMutation.id,t.SetWorksheetRowIsAutoHeightMutation.id,t.SetWorksheetColWidthMutation.id],Q=class extends n.Disposable{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._sheetSkeletonService=t,this._sheetInterceptorService=n,this._selectionManagerService=r,this._sheetDrawingService=i,this._drawingManagerService=a,this._univerInstanceService=o,this._transformPlanService=s,q(this,`_currentCommand`,{id:``,params:{}}),this._sheetInterceptorListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:r,params:i}=e;if(!X.includes(r)||!i)return{redos:[],undos:[]};if(this._currentCommand=e,r===t.InsertRowCommand.id)return this._moveRowInterceptor(i,`insert`);if([t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id].includes(r)){let e;if(r===t.MoveRangeCommand.id){let n=i;if(n.toUnitId&&n.fromUnitId&&n.toUnitId!==n.fromUnitId||n.toSubUnitId&&n.fromSubUnitId&&n.toSubUnitId!==n.fromSubUnitId)return{redos:[],undos:[]};e=(0,t.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.toUnitId,subUnitId:n.toSubUnitId})}else e=(0,t.getSheetCommandTarget)(this._univerInstanceService,i);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a}=e,{fromRange:o,toRange:s}=i;return this._moveRangeInterceptor(n,a,o,s)}if(r===t.InsertColCommand.id)return this._moveColInterceptor(i,`insert`);if(r===t.RemoveRowCommand.id)return this._moveRowInterceptor(i,`remove`);if(r===t.RemoveColCommand.id)return this._moveColInterceptor(i,`remove`);if(r===t.DeleteRangeMoveLeftCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,0)}if(r===t.DeleteRangeMoveUpCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,1)}if(r===t.InsertRangeMoveDownCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,2)}if(r===t.InsertRangeMoveRightCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,3)}if(r===t.SetRowHiddenCommand.id||r===t.SetSpecificRowsVisibleCommand.id){var a;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:o,subUnitId:s}=r,c=e.ranges||((a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.ROW));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(o,s,c)}if(r===t.SetColHiddenCommand.id||r===t.SetSpecificColsVisibleCommand.id){var o;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:a,subUnitId:s}=r,c=e.ranges||((o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.COLUMN));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(a,s,c)}if(r===t.DeltaRowHeightCommand.id||r===t.DeltaColumnWidthCommand.id){let e=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a,worksheet:o}=e,s=[];return r===t.DeltaRowHeightCommand.id?s.push({startRow:i.anchorRow,endRow:i.anchorRow,startColumn:0,endColumn:o.getColumnCount()-1}):s.push({startRow:0,endRow:o.getRowCount()-1,startColumn:i.anchorCol,endColumn:i.anchorCol}),this._getDrawingUndoForRowAndColSize(n,a,s)}if(r===t.SetRowHeightCommand.id||r===t.SetColWidthCommand.id){var s;let e=i,n=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,o=e.ranges||((s=this._selectionManagerService.getCurrentSelections())==null?void 0:s.map(e=>e.range));return!o||o.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(r,a,o)}return{redos:[],undos:[]}}}))}_finalizePlan(e,t,n,r=[],i=`command`,a=this._currentCommand){let o=this._sheetSkeletonService.getSkeleton(e,t);if(!o)return{redos:[],undos:[]};let s=this._sheetDrawingService.getDrawingData(e,t),c=new Map(Object.entries(s)),l={command:a,mode:i,unitId:e,subUnitId:t,skeleton:o,originals:c,updates:new Map,deletes:new Set(r.map(({drawingId:e})=>e).filter(e=>!!e))};n.forEach(e=>{if(!e.drawingId)return;let t=c.get(e.drawingId);t&&l.updates.set(e.drawingId,{...t,...e,transform:{...t.transform,...e.transform},sheetTransform:e.sheetTransform??t.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform??t.axisAlignSheetTransform})});let u=this._transformPlanService.transform(l);if(i===`refresh`){let t=[...l.updates.values()].filter(e=>JSON.stringify(c.get(e.drawingId))!==JSON.stringify(e));return t.length&&(this._sheetDrawingService.refreshTransform(t),this._drawingManagerService.refreshTransform(t),this._commandService.syncExecuteCommand(p.id,[e])),{redos:[],undos:[]}}return this._createPlanMutations(l,u)}_getCalculatedSkeletonParam(e,t){let n=this._sheetSkeletonService.getSkeletonParam(e,t);if(n)return n.skeleton.makeDirty(!0),n.skeleton.calculate(),n}_createPlanMutations(e,t){let{unitId:n,subUnitId:r}=e,i=[...t.preRedos],a=[...t.preUndos],o=[...e.updates.values()].filter(({drawingId:t})=>!e.deletes.has(t));if(o.length){let{undo:e,redo:t,objects:s}=this._sheetDrawingService.getBatchUpdateOp(o);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:t,objects:s,type:2}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:e,objects:s,type:2}})}if(e.deletes.size){let t=[...e.deletes].map(e=>({unitId:n,subUnitId:r,drawingId:e})),{undo:o,redo:s,objects:c}=this._sheetDrawingService.getBatchRemoveOp(t);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:s,objects:c,type:1}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:o,objects:c,type:0}})}return i.push(...t.redos),a.push(...t.undos),(i.length||a.length)&&(i.push({id:p.id,params:[n]}),a.push({id:p.id,params:[n]})),{redos:i,undos:a}}_getRangeMoveUndo(e,n){let r=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r;if(!this._getCalculatedSkeletonParam(i,a))return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=[],c=[];return Object.keys(o).forEach(t=>{let r=o[t],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,n,r);s.push(...i),c.push(...a)}),this._finalizePlan(i,a,s,c)}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:o,anchorType:s=`0`,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(!o||!c||!f)return{updateDrawings:r,deleteDrawings:i};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===0&&h>=y&&_<=b){if(g>=x&&v<=S)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===1&&g>=x&&v<=S){if(h>=y&&_<=b)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===2){let e=this._expandRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===3){let e=this._expandCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}if(C&&w){let e=a(C,f);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=o({...e},r);if(i){let a=s({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startColumn:i,endColumn:c}=r[e];if(g<i)continue;if(f===`0`){let e=null,r=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});r={...d,left:e.startX}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(m>=i&&g<=c)continue;let _=null,v=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});v={...d,left:(e==null?void 0:e.startX)||0,width:((d==null?void 0:d.width)||0)-e.endX+e.startX}}else if(g>=i&&g<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:g,startRow:p,endRow:h});v={...d,left:e.startX-((d==null?void 0:d.width)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:c,startRow:p,endRow:h});if(v={...d,width:((d==null?void 0:d.width)||0)-e.endX+e.startX},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_createUndoAndRedoMutation(e,t,n){return this._finalizePlan(e,t,n)}_getDrawingUndoForRowVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startRow:i,endRow:c}=r[e];if(h<i)continue;if(f===`0`){let e=null,r=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});r={...d,top:e.startY}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(p>=i&&h<=c)continue;let _=null,v=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});v={...d,top:(e==null?void 0:e.startY)||0,height:((d==null?void 0:d.height)||0)-e.endY+e.startY}}else if(h>=i&&h<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:h});v={...d,top:e.startY-((d==null?void 0:d.height)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:c});if(v={...d,height:((d==null?void 0:d.height)||0)-e.endY+e.startY},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._getCalculatedSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=`0`}=t;if(u===`2`)this._remainDrawingSize(l,s,t,i);else{let{from:e,to:o}=c,{row:d,column:f}=e,{row:p,column:m}=o;for(let e=0;e<n.length;e++){let{startRow:o,endRow:h,startColumn:g,endColumn:_}=n[e];if(p<o||m<g)continue;if(u===`0`&&(d<=o&&p>=h||f<=g&&m>=_)){this._remainDrawingSize(l,s,t,i);continue}let v=a({...c},r);if(v){s.push({...t,transform:v});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e,n){let r;if(r=n===`insert`?(0,t.getSheetCommandTarget)(this._univerInstanceService,e):(0,t.getSheetCommandTarget)(this._univerInstanceService),!r)return;let{unitId:i,subUnitId:a}=r;return{unitId:i,subUnitId:a}}_moveRangeInterceptor(e,n,r,i){let o=this._getCalculatedSkeletonParam(e,n);if(!o)return{redos:[],undos:[]};let{skeleton:s}=o,c=(0,t.attachRangeWithCoord)(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,n),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==`1`)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=i.startRow-r.startRow,g=i.startColumn-r.startColumn,_=m.map(t=>{let r=t.sheetTransform,i={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},s=a(i,o);return{unitId:e,subUnitId:n,drawingId:t.drawingId,transform:s,sheetTransform:i}});return this._finalizePlan(e,n,_)}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{row:u}=t,{row:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{column:u}=t,{column:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_expandCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:n,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)+r.endX-r.startX},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,column:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,column:h-f},to:{...m,column:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,column:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,column:e,columnOffset:0},to:{...m,column:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,left:(l.left||0)-c.from.columnOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:h-1,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)-n.endX+n.startX-c.from.columnOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:e-1,endColumn:e-1,startRow:p.row,endRow:m.row});_={from:{...p},to:{...m,column:e-1,columnOffset:n.endX-n.startX}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_expandRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:n,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)+r.endY-r.startY},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,row:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,row:h-f},to:{...m,row:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,row:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,row:e,rowOffset:0},to:{...m,row:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,top:(l.top||0)-c.from.rowOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:h-1,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)-n.endY+n.startY-c.from.rowOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:p.column,endColumn:p.column,startRow:e-1,endRow:e-1});_={from:{...p},to:{...m,row:e-1,rowOffset:n.endY-n.startY}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Z.includes(e.id)&&queueMicrotask(()=>{let n=e.params,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,n);if(!r)return;let{unitId:i,subUnitId:a,worksheet:o}=r,s=[];`ranges`in n?s=n.ranges:`rowsAutoHeightInfo`in n&&(s=n.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(e,i,a,s)})}))}_refreshDrawingTransform(e,t,r,i){let o=this._getCalculatedSkeletonParam(t,r),s=this._drawingManagerService.getDrawingData(t,r)??{},c=[];Object.keys(s).forEach(e=>{let t=s[e],{sheetTransform:r,transform:l,anchorType:u=`0`}=t;if(u===`2`||!r)return!0;let{from:d,to:f}=r,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:s,endRow:d,startColumn:f,endColumn:_}=i[e];if(n.Rectangle.intersects({startRow:s,endRow:d,startColumn:f,endColumn:_},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>_){let e=u===`0`,n=a(r,o);c.push({...t,transform:{...l,left:n==null?void 0:n.left,top:n==null?void 0:n.top,width:e?l==null?void 0:l.width:n==null?void 0:n.width,height:e?l==null?void 0:l.height:n==null?void 0:n.height}});break}}}),this._finalizePlan(t,r,c,[],`refresh`,e)}};Q=L([I(0,n.ICommandService),I(1,(0,n.Inject)(t.SheetSkeletonService)),I(2,(0,n.Inject)(t.SheetInterceptorService)),I(3,(0,n.Inject)(t.SheetsSelectionsService)),I(4,u),I(5,r.IDrawingManagerService),I(6,n.IUniverInstanceService),I(7,(0,n.Inject)(Y))],Q);let $=class extends n.Plugin{constructor(e=U,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},U,this._config);this._configService.setConfig(`sheets-drawing.config`,i)}onStarting(){[[B],[Y],[Q],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(B),this._injector.get(Q)}};q($,`pluginName`,R),q($,`packageName`,V),q($,`version`,H),q($,`type`,n.UniverInstanceType.UNIVER_SHEET),$=L([(0,n.DependentOn)(r.UniverDrawingPlugin,t.UniverSheetsPlugin),I(1,(0,n.Inject)(n.Injector)),I(2,n.IConfigService)],$),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=R,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=N,e.SetSheetDrawingPlacementCommand=D,e.SetWorksheetBackgroundImageCommand=F,e.SetWorksheetBackgroundImageMutation=P,e.SheetDrawingAnchorType=c,e.SheetDrawingService=l,e.SheetDrawingTransformPlanService=Y,Object.defineProperty(e,"UniverSheetsDrawingPlugin",{enumerable:!0,get:function(){return $}}),e.applySheetDrawingPlacement=v,e.drawingPositionToTransform=a,e.getSheetDrawingPlacement=_,e.isKnownSheetNonRotatableDrawingType=O,e.normalizeSheetDrawingPlacement=y,e.resolveSheetDrawingRotateEnabled=k,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/sheets"),require("@univerjs/core"),require("@univerjs/drawing"),require("@univerjs/engine-render")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case 0:n.addNotification(l),i.addNotification(l);break;case 1:n.removeNotification(l),i.removeNotification(l);break;case 2:n.updateNotification(l),i.updateNotification(l);break;case 3:n.orderNotification(l),i.orderNotification(l);break;case 4:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case 5:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l)}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),c=r.drawings,{unitId:l,subUnitId:d,undo:h,redo:g,objects:_}=o.getBatchAddOp(c),v=s.onCommandExecute({id:m.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:0}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:_,type:1}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(t.SheetInterceptorService),s=e.get(u),{drawings:c}=r,{unitId:l,subUnitId:d,undo:m,redo:g,objects:_}=s.getBatchRemoveOp(c);if(Array.isArray(_)&&_.length===0)return!1;let v=o.onCommandExecute({id:h.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:1}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:_,type:0}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c}=t,l={unitId:o,subUnitId:s,drawingIds:c},d;if(t.zOrder===void 0?t.arrangeType===n.ArrangeTypeEnum.forward?d=a.getForwardDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.backward?d=a.getBackwardDrawingOp(l):t.arrangeType===n.ArrangeTypeEnum.front?d=a.getFrontDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.back&&(d=a.getBackDrawingsOp(l)):d=a.getDrawingOrderOp(l,t.zOrder),d==null)return!1;let{objects:p,redo:m,undo:h}=d;return r.syncExecuteCommand(f.id,{op:m,unitId:o,subUnitId:s,objects:p,type:3})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:h,unitId:o,subUnitId:s,objects:p,type:3}}],redoMutations:[{id:f.id,params:{op:m,unitId:o,subUnitId:s,objects:p,type:3}}]}),!0):!1}};function _(e){var t,n;let r=e.anchorType??`0`;if(r===`2`){var i,a,o,s;return{kind:`2`,left:((i=e.transform)==null?void 0:i.left)??0,top:((a=e.transform)==null?void 0:a.top)??0,width:((o=e.transform)==null?void 0:o.width)??0,height:((s=e.transform)==null?void 0:s.height)??0}}return r===`1`?{kind:`1`,from:{...e.sheetTransform.from},to:{...e.sheetTransform.to}}:{kind:`0`,from:{...e.sheetTransform.from},width:((t=e.transform)==null?void 0:t.width)??0,height:((n=e.transform)==null?void 0:n.height)??0}}function v(e,n,r){let i=y(n,r);if(i.kind===`2`){let t=x(e.transform,i),n=S(i,e.sheetTransform);return{...e,anchorType:`2`,transform:t,sheetTransform:n,axisAlignSheetTransform:n}}if(!r)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);if(i.kind===`0`){let n=(0,t.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,i.from,i.width,i.height,r),a=b(e.sheetTransform,n.sheetTransform),o=x(e.transform,n.transform);return{...e,anchorType:`0`,sheetTransform:a,transform:o,axisAlignSheetTransform:s(o,r)}}let a=b(e.sheetTransform,{from:i.from,to:i.to}),o=(0,t.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,a,r),c=x(e.transform,o);return{...e,anchorType:`1`,sheetTransform:a,transform:c,axisAlignSheetTransform:s(c,r)}}function y(e,n){if(!(`bounds`in e))return C(e),e.kind===`1`&&n&&w((0,t.convertPositionSheetOverGridToAbsolute)(n.worksheet.getUnitId(),n.worksheet.getSheetId(),{from:e.from,to:e.to},n)),e;if(w(e.bounds),e.kind===`2`)return{kind:`2`,...e.bounds};if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let r=o(e.bounds,n);if(e.kind===`0`)return{kind:`0`,from:r.from,width:e.bounds.width,height:e.bounds.height};if(e.kind===`1`)return{kind:`1`,from:r.from,to:r.to};throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function b(e,t){return{...e,from:{...t.from},to:{...t.to}}}function x(e,t){return{...e,left:t.left,top:t.top,width:t.width,height:t.height}}function S(e,t){return{...t,from:{column:0,columnOffset:e.left,row:0,rowOffset:e.top},to:{column:0,columnOffset:e.left+e.width,row:0,rowOffset:e.top+e.height}}}function C(e){if(e.kind===`0`){T(e.from),E(e.width,e.height);return}if(e.kind===`1`){T(e.from),T(e.to);return}if(e.kind===`2`){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height);return}throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function w(e){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height)}function T(e){if(!Number.isInteger(e.row)||!Number.isInteger(e.column)||e.row<0||e.column<0||!Number.isFinite(e.rowOffset)||!Number.isFinite(e.columnOffset))throw Error(`SHEET_DRAWING_PLACEMENT_CELL_INVALID`)}function E(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)throw Error(`SHEET_DRAWING_PLACEMENT_EXTENT_INVALID`)}let D={id:`sheet.command.set-drawing-placement`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!(r!=null&&r.drawings.length))return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=r.drawings.every(({placement:e})=>e.kind===`2`)?void 0:e.get(t.SheetSkeletonService).ensureSkeleton(r.unitId,r.subUnitId),c=[];for(let{drawingId:e,placement:t}of r.drawings){let n=o.getDrawingByParam({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:e});if(!n)return!1;c.push(v(n,t,s))}let{unitId:l,subUnitId:d,undo:m,redo:h,objects:g}=o.getBatchUpdateOp(c),_=[{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:g,type:2}},{id:p.id,params:[l]}],y=[{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:g,type:2}},{id:p.id,params:[l]}];return(0,n.sequenceExecute)(_,i).result?(a.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:_}),!0):!1}};function O(e){return e===n.DrawingTypeEnum.DRAWING_CHART}function k(e,t,n){return(0,r.resolveDrawingRotateEnabled)(e,{getChildren:e=>(n==null?void 0:n(e))??t.getDrawingsByGroup(e),isKnownNonRotatableType:O})}function A(e){var t,n,r;return((t=e.transform)==null?void 0:t.angle)!==void 0||((n=e.sheetTransform)==null?void 0:n.angle)!==void 0||((r=e.axisAlignSheetTransform)==null?void 0:r.angle)!==void 0}function j(e,t){let n=t==null?void 0:t.angle,r={...t??{},...e};return n===void 0?delete r.angle:r.angle=n,r}function M(e,t){var n,r,i;if(!e.drawingId||!e.unitId||!e.subUnitId||!A(e))return e;let a=t.getDrawingByParam({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId});if(!a||k({...a,...e,drawingType:e.drawingType??a.drawingType,transform:{...a.transform,...e.transform}},t))return e;let o={...e};return((n=e.transform)==null?void 0:n.angle)!==void 0&&(o.transform=j(e.transform,a.transform)),((r=e.sheetTransform)==null?void 0:r.angle)!==void 0&&(o.sheetTransform=j(e.sheetTransform,a.sheetTransform)),((i=e.axisAlignSheetTransform)==null?void 0:i.angle)!==void 0&&(o.axisAlignSheetTransform=j(e.axisAlignSheetTransform,a.axisAlignSheetTransform)),o}let N={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),{drawings:c}=r,l=c.map(e=>M(e,o)),d={...r,drawings:l},{unitId:m,subUnitId:h,undo:g,redo:_,objects:v}=o.getBatchUpdateOp(l),y=s.onCommandExecute({id:N.id,params:d}),b=[...y.preRedos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:_,objects:v,type:2}},{id:p.id,params:[m]},...y.redos],x=[...y.preUndos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:g,objects:v,type:2}},{id:p.id,params:[m]},...y.undos];return(0,n.sequenceExecute)(b,i).result?(a.pushUndoRedo({unitID:m,undoMutations:x,redoMutations:b}),!0):!1}},P={id:`sheet.mutation.set-worksheet-background-image`,type:n.CommandType.MUTATION,handler:(e,r)=>{let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let a=i.worksheet.getConfig();return r.backgroundImage?a.backgroundImage={...r.backgroundImage}:delete a.backgroundImage,!0}},F={id:`sheet.command.set-worksheet-background-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,c=s.getConfig().backgroundImage,l=r.backgroundImage;if((c==null?void 0:c.source)===(l==null?void 0:l.source)&&(c==null?void 0:c.imageSourceType)===(l==null?void 0:l.imageSourceType))return!1;let u=e.get(n.ICommandService),d=e.get(n.IUndoRedoService),f={unitId:a,subUnitId:o,backgroundImage:l?{...l}:null},p={unitId:a,subUnitId:o,backgroundImage:c?{...c}:null};return u.syncExecuteCommand(P.id,f)?(d.pushUndoRedo({unitID:a,undoMutations:[{id:P.id,params:p}],redoMutations:[{id:P.id,params:f}]}),!0):!1}};function I(e,t){return function(n,r){t(n,r,e)}}function L(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 R=`SHEET_DRAWING_PLUGIN`;function z(e,t){let n=new Set,r=[];return t.forEach(t=>{let i=e[t];i&&(n.add(t),r.push(i))}),Object.values(e).forEach(e=>{n.has(e.drawingId)||r.push(e)}),r}let B=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f)),this.disposeWithMe(this._commandService.registerCommand(P))}_initCommands(){[N,m,h,g,D,F,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:R,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var i;let t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((i=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:i.getSheetId());if(!r||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(r,a),s=Object.values(o);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchRemoveOp(s);return Array.isArray(p)&&p.length===0?{redos:[],undos:[]}:{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:1}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:0}}]}}if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:n,targetSubUnitId:i,copyContext:a}=e.params;if(!t||!n||!i)return{redos:[],undos:[]};let o=z(this._sheetDrawingService.getDrawingData(t,n),this._sheetDrawingService.getDrawingOrder(t,n)),s=(0,r.getOrCreateDrawingCopyPlan)(a,o,{unitId:t,sourceSubUnitId:n,targetSubUnitId:i}).drawings;if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchAddOp(s);return{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:0}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:1}}]}}return{redos:[],undos:[]}}}))}};B=L([I(0,(0,n.Inject)(t.SheetInterceptorService)),I(1,(0,n.Inject)(n.IUniverInstanceService)),I(2,n.ICommandService),I(3,u),I(4,r.IDrawingManagerService),I(5,n.IResourceManagerService)],B);var V=`@univerjs/sheets-drawing`,H=`1.0.4`;let U={};function W(e){"@babel/helpers - typeof";return W=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},W(e)}function G(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function K(e){var t=G(e,`string`);return W(t)==`symbol`?t:t+``}function q(e,t,n){return(t=K(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J(){return{preRedos:[],redos:[],preUndos:[],undos:[]}}var Y=class{constructor(){q(this,`_extensions`,[])}register(e){return this._extensions.push(e),this._extensions.sort((e,t)=>(t.priority??0)-(e.priority??0)),(0,n.toDisposable)(()=>{let t=this._extensions.indexOf(e);t>=0&&this._extensions.splice(t,1)})}transform(e){return this._extensions.reduce((t,n)=>{let r=n.transform(e);return r?(t.preRedos.push(...r.preRedos??[]),t.redos.push(...r.redos??[]),t.preUndos.push(...r.preUndos??[]),t.undos.push(...r.undos??[]),t):t},J())}};let X=[t.InsertRowCommand.id,t.InsertColCommand.id,t.RemoveRowCommand.id,t.RemoveColCommand.id,t.DeleteRangeMoveLeftCommand.id,t.DeleteRangeMoveUpCommand.id,t.InsertRangeMoveDownCommand.id,t.InsertRangeMoveRightCommand.id,t.DeltaRowHeightCommand.id,t.SetRowHeightCommand.id,t.DeltaColumnWidthCommand.id,t.SetColWidthCommand.id,t.SetRowHiddenCommand.id,t.SetSpecificRowsVisibleCommand.id,t.SetSpecificColsVisibleCommand.id,t.SetColHiddenCommand.id,t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id],Z=[t.SetRowVisibleMutation.id,t.SetRowHiddenMutation.id,t.SetColVisibleMutation.id,t.SetColHiddenMutation.id,t.SetWorksheetRowHeightMutation.id,t.SetWorksheetRowAutoHeightMutation.id,t.SetWorksheetRowIsAutoHeightMutation.id,t.SetWorksheetColWidthMutation.id],Q=class extends n.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._sheetSkeletonService=t,this._sheetInterceptorService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._univerInstanceService=a,this._transformPlanService=o,q(this,`_currentCommand`,{id:``,params:{}}),this._sheetInterceptorListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:n,params:r}=e;if(!X.includes(n)||!r)return{redos:[],undos:[]};if(this._currentCommand=e,n===t.InsertRowCommand.id)return this._moveRowInterceptor(r,`insert`);if([t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id].includes(n)){let e;if(n===t.MoveRangeCommand.id){let n=r;if(n.toUnitId&&n.fromUnitId&&n.toUnitId!==n.fromUnitId||n.toSubUnitId&&n.fromSubUnitId&&n.toSubUnitId!==n.fromSubUnitId)return{redos:[],undos:[]};e=(0,t.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.toUnitId,subUnitId:n.toSubUnitId})}else e=(0,t.getSheetCommandTarget)(this._univerInstanceService,r);if(!e)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=e,{fromRange:o,toRange:s}=r;return this._moveRangeInterceptor(i,a,o,s)}if(n===t.InsertColCommand.id)return this._moveColInterceptor(r,`insert`);if(n===t.RemoveRowCommand.id)return this._moveRowInterceptor(r,`remove`);if(n===t.RemoveColCommand.id)return this._moveColInterceptor(r,`remove`);if(n===t.DeleteRangeMoveLeftCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,0)}if(n===t.DeleteRangeMoveUpCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,1)}if(n===t.InsertRangeMoveDownCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,2)}if(n===t.InsertRangeMoveRightCommand.id){let{range:e}=r;return this._getRangeMoveUndo(e,3)}if(n===t.SetRowHiddenCommand.id||n===t.SetSpecificRowsVisibleCommand.id){let{unitId:e,subUnitId:t,ranges:n}=r;return this._getDrawingUndoForRowVisible(e,t,n)}if(n===t.SetColHiddenCommand.id||n===t.SetSpecificColsVisibleCommand.id){let{unitId:e,subUnitId:t,ranges:n}=r;return this._getDrawingUndoForColVisible(e,t,n)}if(n===t.DeltaRowHeightCommand.id||n===t.DeltaColumnWidthCommand.id||n===t.SetRowHeightCommand.id||n===t.SetColWidthCommand.id){let{unitId:e,subUnitId:t,ranges:n}=r;return this._getDrawingUndoForRowAndColSize(e,t,n)}return{redos:[],undos:[]}}}))}_finalizePlan(e,t,n,r=[],i=`command`,a=this._currentCommand){let o=this._sheetSkeletonService.getSkeleton(e,t);if(!o)return{redos:[],undos:[]};let s=this._sheetDrawingService.getDrawingData(e,t),c=new Map(Object.entries(s)),l={command:a,mode:i,unitId:e,subUnitId:t,skeleton:o,originals:c,updates:new Map,deletes:new Set(r.map(({drawingId:e})=>e).filter(e=>!!e))};n.forEach(e=>{if(!e.drawingId)return;let t=c.get(e.drawingId);t&&l.updates.set(e.drawingId,{...t,...e,transform:{...t.transform,...e.transform},sheetTransform:e.sheetTransform??t.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform??t.axisAlignSheetTransform})});let u=this._transformPlanService.transform(l);if(i===`refresh`){let t=[...l.updates.values()].filter(e=>JSON.stringify(c.get(e.drawingId))!==JSON.stringify(e));return t.length&&(this._sheetDrawingService.refreshTransform(t),this._drawingManagerService.refreshTransform(t),this._commandService.syncExecuteCommand(p.id,[e])),{redos:[],undos:[]}}return this._createPlanMutations(l,u)}_getCalculatedSkeletonParam(e,t){let n=this._sheetSkeletonService.getSkeletonParam(e,t);if(n)return n.skeleton.makeDirty(!0),n.skeleton.calculate(),n}_createPlanMutations(e,t){let{unitId:n,subUnitId:r}=e,i=[...t.preRedos],a=[...t.preUndos],o=[...e.updates.values()].filter(({drawingId:t})=>!e.deletes.has(t));if(o.length){let{undo:e,redo:t,objects:s}=this._sheetDrawingService.getBatchUpdateOp(o);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:t,objects:s,type:2}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:e,objects:s,type:2}})}if(e.deletes.size){let t=[...e.deletes].map(e=>({unitId:n,subUnitId:r,drawingId:e})),{undo:o,redo:s,objects:c}=this._sheetDrawingService.getBatchRemoveOp(t);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:s,objects:c,type:1}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:o,objects:c,type:0}})}return i.push(...t.redos),a.push(...t.undos),(i.length||a.length)&&(i.push({id:p.id,params:[n]}),a.push({id:p.id,params:[n]})),{redos:i,undos:a}}_getRangeMoveUndo(e,n){let r=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r;if(!this._getCalculatedSkeletonParam(i,a))return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=[],c=[];return Object.keys(o).forEach(t=>{let r=o[t],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,n,r);s.push(...i),c.push(...a)}),this._finalizePlan(i,a,s,c)}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:o,anchorType:s=`0`,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(s===`2`||!o||!c||!f)return{updateDrawings:r,deleteDrawings:i};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===0&&h>=y&&_<=b){if(g>=x&&v<=S)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===1&&g>=x&&v<=S){if(h>=y&&_<=b)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===2){let e=this._expandRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===3){let e=this._expandCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}if(C&&w){let e=a(C,f);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=o({...e},r);if(i){let a=s({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startColumn:i,endColumn:c}=r[e];if(g<i)continue;if(f===`0`){let e=null,r=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});r={...d,left:e.startX}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(m>=i&&g<=c)continue;let _=null,v=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});v={...d,left:(e==null?void 0:e.startX)||0,width:((d==null?void 0:d.width)||0)-e.endX+e.startX}}else if(g>=i&&g<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:g,startRow:p,endRow:h});v={...d,left:e.startX-((d==null?void 0:d.width)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:c,startRow:p,endRow:h});if(v={...d,width:((d==null?void 0:d.width)||0)-e.endX+e.startX},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_createUndoAndRedoMutation(e,t,n){return this._finalizePlan(e,t,n)}_getDrawingUndoForRowVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startRow:i,endRow:c}=r[e];if(h<i)continue;if(f===`0`){let e=null,r=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});r={...d,top:e.startY}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(p>=i&&h<=c)continue;let _=null,v=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});v={...d,top:(e==null?void 0:e.startY)||0,height:((d==null?void 0:d.height)||0)-e.endY+e.startY}}else if(h>=i&&h<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:h});v={...d,top:e.startY-((d==null?void 0:d.height)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:c});if(v={...d,height:((d==null?void 0:d.height)||0)-e.endY+e.startY},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._getCalculatedSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=`0`}=t;if(u===`2`)this._remainDrawingSize(l,s,t,i);else{let{row:e,column:o}=c.to;for(let l=0;l<n.length;l++){let{startRow:d,startColumn:f}=n[l];if(e<d||o<f)continue;if(u===`0`){s.push(v(t,_(t),i));break}let p=a({...c},r);if(p){s.push({...t,transform:p});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e){let n=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return;let{unitId:r,subUnitId:i}=n;return{unitId:r,subUnitId:i}}_moveRangeInterceptor(e,n,r,i){let o=this._getCalculatedSkeletonParam(e,n);if(!o)return{redos:[],undos:[]};let{skeleton:s}=o,c=(0,t.attachRangeWithCoord)(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,n),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==`1`)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=i.startRow-r.startRow,g=i.startColumn-r.startColumn,_=m.map(t=>{let r=t.sheetTransform,i={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},s=a(i,o);return{unitId:e,subUnitId:n,drawingId:t.drawingId,transform:s,sheetTransform:i}});return this._finalizePlan(e,n,_)}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{row:u}=t,{row:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{column:u}=t,{column:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_expandCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:n,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)+r.endX-r.startX},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,column:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,column:h-f},to:{...m,column:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,column:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,column:e,columnOffset:0},to:{...m,column:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,left:(l.left||0)-c.from.columnOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:h-1,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)-n.endX+n.startX-c.from.columnOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:e-1,endColumn:e-1,startRow:p.row,endRow:m.row});_={from:{...p},to:{...m,column:e-1,columnOffset:n.endX-n.startX}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_expandRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:n,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)+r.endY-r.startY},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,row:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,row:h-f},to:{...m,row:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,row:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,row:e,rowOffset:0},to:{...m,row:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,top:(l.top||0)-c.from.rowOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:h-1,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)-n.endY+n.startY-c.from.rowOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:p.column,endColumn:p.column,startRow:e-1,endRow:e-1});_={from:{...p},to:{...m,row:e-1,rowOffset:n.endY-n.startY}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Z.includes(e.id)&&queueMicrotask(()=>{let n=e.params,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,n);if(!r)return;let{unitId:i,subUnitId:a,worksheet:o}=r,s=[];`ranges`in n?s=n.ranges:`rowsAutoHeightInfo`in n&&(s=n.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(e,i,a,s)})}))}_refreshDrawingTransform(e,t,r,i){let o=this._getCalculatedSkeletonParam(t,r);if(!o)return;let s=this._drawingManagerService.getDrawingData(t,r)??{},c=[];Object.keys(s).forEach(e=>{let t=s[e],{sheetTransform:r,transform:l,anchorType:u=`0`}=t;if(u===`2`||!r)return!0;let{from:d,to:f}=r,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:s,endRow:d,startColumn:f,endColumn:y}=i[e];if(n.Rectangle.intersects({startRow:s,endRow:d,startColumn:f,endColumn:y},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>y){if(u===`0`){c.push(v(t,_(t),o.skeleton));break}let e=a(r,o);c.push({...t,transform:{...l,left:e==null?void 0:e.left,top:e==null?void 0:e.top,width:e==null?void 0:e.width,height:e==null?void 0:e.height}});break}}}),this._finalizePlan(t,r,c,[],`refresh`,e)}};Q=L([I(0,n.ICommandService),I(1,(0,n.Inject)(t.SheetSkeletonService)),I(2,(0,n.Inject)(t.SheetInterceptorService)),I(3,u),I(4,r.IDrawingManagerService),I(5,n.IUniverInstanceService),I(6,(0,n.Inject)(Y))],Q);let $=class extends n.Plugin{constructor(e=U,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},U,this._config);this._configService.setConfig(`sheets-drawing.config`,i)}onStarting(){[[B],[Y],[Q],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(B),this._injector.get(Q)}};q($,`pluginName`,R),q($,`packageName`,V),q($,`version`,H),q($,`type`,n.UniverInstanceType.UNIVER_SHEET),$=L([(0,n.DependentOn)(r.UniverDrawingPlugin,t.UniverSheetsPlugin),I(1,(0,n.Inject)(n.Injector)),I(2,n.IConfigService)],$),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=R,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=N,e.SetSheetDrawingPlacementCommand=D,e.SetWorksheetBackgroundImageCommand=F,e.SetWorksheetBackgroundImageMutation=P,e.SheetDrawingAnchorType=c,e.SheetDrawingService=l,e.SheetDrawingTransformPlanService=Y,Object.defineProperty(e,"UniverSheetsDrawingPlugin",{enumerable:!0,get:function(){return $}}),e.applySheetDrawingPlacement=v,e.drawingPositionToTransform=a,e.getSheetDrawingPlacement=_,e.isKnownSheetNonRotatableDrawingType=O,e.normalizeSheetDrawingPlacement=y,e.resolveSheetDrawingRotateEnabled=k,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-drawing",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "private": false,
5
5
  "description": "Drawing model integration for Univer Sheets.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -59,13 +59,13 @@
59
59
  "lib"
60
60
  ],
61
61
  "dependencies": {
62
- "@univerjs/core": "1.0.3",
63
- "@univerjs/drawing": "1.0.3",
64
- "@univerjs/engine-render": "1.0.3",
65
- "@univerjs/sheets": "1.0.3"
62
+ "@univerjs/core": "1.0.4",
63
+ "@univerjs/drawing": "1.0.4",
64
+ "@univerjs/engine-render": "1.0.4",
65
+ "@univerjs/sheets": "1.0.4"
66
66
  },
67
67
  "devDependencies": {
68
- "@univerjs-infra/shared": "1.0.3",
68
+ "@univerjs-infra/shared": "1.0.4",
69
69
  "typescript": "^6.0.3",
70
70
  "vitest": "^5.0.0"
71
71
  },