@univerjs/sheets-drawing-ui 1.0.0-alpha.5 → 1.0.0-alpha.7

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/index.js CHANGED
@@ -3437,6 +3437,12 @@ function SaveCellImagesMenuFactory(accessor) {
3437
3437
  const menuSchema = {
3438
3438
  [_univerjs_ui.RibbonInsertGroup.MEDIA]: { [SHEETS_IMAGE_MENU_ID]: {
3439
3439
  order: 0,
3440
+ gridLayout: {
3441
+ row: 1,
3442
+ column: 1,
3443
+ rowSpan: 2,
3444
+ showLabel: true
3445
+ },
3440
3446
  menuItemFactory: ImageMenuFactory,
3441
3447
  [InsertFloatImageCommand.id]: {
3442
3448
  order: 0,
@@ -3464,7 +3470,7 @@ const menuSchema = {
3464
3470
  //#endregion
3465
3471
  //#region package.json
3466
3472
  var name = "@univerjs/sheets-drawing-ui";
3467
- var version = "1.0.0-alpha.5";
3473
+ var version = "1.0.0-alpha.7";
3468
3474
 
3469
3475
  //#endregion
3470
3476
  //#region src/config/config.ts
@@ -4123,6 +4129,86 @@ SheetCellImageCopyPasteController = __decorate([
4123
4129
  __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_core.LocaleService))
4124
4130
  ], SheetCellImageCopyPasteController);
4125
4131
 
4132
+ //#endregion
4133
+ //#region src/controllers/sheet-drawing-active-render.controller.ts
4134
+ let SheetDrawingActiveRenderController = class SheetDrawingActiveRenderController extends _univerjs_core.Disposable {
4135
+ constructor(_context, _commandService, _sheetSkeletonService, _sheetDrawingService, _drawingManagerService) {
4136
+ super();
4137
+ this._context = _context;
4138
+ this._commandService = _commandService;
4139
+ this._sheetSkeletonService = _sheetSkeletonService;
4140
+ this._sheetDrawingService = _sheetDrawingService;
4141
+ this._drawingManagerService = _drawingManagerService;
4142
+ this._commandListener();
4143
+ }
4144
+ _commandListener() {
4145
+ this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
4146
+ if (command.id === _univerjs_sheets.SetWorksheetActiveOperation.id) {
4147
+ const { unitId, subUnitId } = command.params;
4148
+ this._updateDrawings(unitId, subUnitId);
4149
+ }
4150
+ }));
4151
+ this.disposeWithMe(this._context.activated$.subscribe((activated) => {
4152
+ const { unit, unitId } = this._context;
4153
+ if (activated) this._updateDrawings(unitId, unit.getActiveSheet().getSheetId());
4154
+ else this._clearDrawings(unitId);
4155
+ }));
4156
+ }
4157
+ _clearDrawings(selfUnitId) {
4158
+ setTimeout(() => {
4159
+ const drawingMap = this._drawingManagerService.drawingManagerData;
4160
+ const removeDrawings = [];
4161
+ Object.keys(drawingMap !== null && drawingMap !== void 0 ? drawingMap : {}).forEach((unitId) => {
4162
+ var _drawingMap$unitId;
4163
+ const subUnitMap = (_drawingMap$unitId = drawingMap[unitId]) !== null && _drawingMap$unitId !== void 0 ? _drawingMap$unitId : {};
4164
+ Object.keys(subUnitMap).forEach((subUnitId) => {
4165
+ var _subUnitMap$subUnitId, _subUnitMap$subUnitId2;
4166
+ const drawingData = (_subUnitMap$subUnitId = (_subUnitMap$subUnitId2 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId2 === void 0 ? void 0 : _subUnitMap$subUnitId2.data) !== null && _subUnitMap$subUnitId !== void 0 ? _subUnitMap$subUnitId : {};
4167
+ Object.keys(drawingData).forEach((drawingId) => {
4168
+ if (unitId === selfUnitId) removeDrawings.push(drawingData[drawingId]);
4169
+ });
4170
+ });
4171
+ });
4172
+ this._sheetDrawingService.removeNotification(removeDrawings);
4173
+ this._drawingManagerService.removeNotification(removeDrawings);
4174
+ });
4175
+ }
4176
+ _updateDrawings(showUnitId, showSubunitId) {
4177
+ setTimeout(() => {
4178
+ const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(showUnitId, showSubunitId);
4179
+ const drawingMap = this._drawingManagerService.drawingManagerData;
4180
+ const insertDrawings = [];
4181
+ const removeDrawings = [];
4182
+ Object.keys(drawingMap !== null && drawingMap !== void 0 ? drawingMap : {}).forEach((unitId) => {
4183
+ var _drawingMap$unitId2;
4184
+ if (unitId !== showUnitId) return;
4185
+ const subUnitMap = (_drawingMap$unitId2 = drawingMap[unitId]) !== null && _drawingMap$unitId2 !== void 0 ? _drawingMap$unitId2 : {};
4186
+ Object.keys(subUnitMap).forEach((subUnitId) => {
4187
+ var _subUnitMap$subUnitId3, _subUnitMap$subUnitId4;
4188
+ const drawingData = (_subUnitMap$subUnitId3 = (_subUnitMap$subUnitId4 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId4 === void 0 ? void 0 : _subUnitMap$subUnitId4.data) !== null && _subUnitMap$subUnitId3 !== void 0 ? _subUnitMap$subUnitId3 : {};
4189
+ Object.keys(drawingData).forEach((drawingId) => {
4190
+ if (unitId === showUnitId && subUnitId === showSubunitId) {
4191
+ const drawing = drawingData[drawingId];
4192
+ if (drawing.sheetTransform) drawing.transform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(drawing.sheetTransform, sheetSkeletonParam);
4193
+ insertDrawings.push(drawingData[drawingId]);
4194
+ } else removeDrawings.push(drawingData[drawingId]);
4195
+ });
4196
+ });
4197
+ });
4198
+ this._sheetDrawingService.removeNotification(removeDrawings);
4199
+ this._sheetDrawingService.addNotification(insertDrawings);
4200
+ this._drawingManagerService.removeNotification(removeDrawings);
4201
+ this._drawingManagerService.addNotification(insertDrawings);
4202
+ }, 0);
4203
+ }
4204
+ };
4205
+ SheetDrawingActiveRenderController = __decorate([
4206
+ __decorateParam(1, _univerjs_core.ICommandService),
4207
+ __decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService)),
4208
+ __decorateParam(3, _univerjs_sheets_drawing.ISheetDrawingService),
4209
+ __decorateParam(4, _univerjs_drawing.IDrawingManagerService)
4210
+ ], SheetDrawingActiveRenderController);
4211
+
4126
4212
  //#endregion
4127
4213
  //#region src/controllers/sheet-drawing-copy-paste.controller.ts
4128
4214
  const IMAGE_PNG_MIME_TYPE = "image/png";
@@ -4914,1469 +5000,6 @@ SheetDrawingPrintingController = __decorate([
4914
5000
  __decorateParam(5, (0, _univerjs_core.Inject)(_univerjs_core.Injector))
4915
5001
  ], SheetDrawingPrintingController);
4916
5002
 
4917
- //#endregion
4918
- //#region src/controllers/sheet-drawing-transform-affected.controller.ts
4919
- const UPDATE_COMMANDS = [
4920
- _univerjs_sheets.InsertRowCommand.id,
4921
- _univerjs_sheets.InsertColCommand.id,
4922
- _univerjs_sheets.RemoveRowCommand.id,
4923
- _univerjs_sheets.RemoveColCommand.id,
4924
- _univerjs_sheets.DeleteRangeMoveLeftCommand.id,
4925
- _univerjs_sheets.DeleteRangeMoveUpCommand.id,
4926
- _univerjs_sheets.InsertRangeMoveDownCommand.id,
4927
- _univerjs_sheets.InsertRangeMoveRightCommand.id,
4928
- _univerjs_sheets.DeltaRowHeightCommand.id,
4929
- _univerjs_sheets.SetRowHeightCommand.id,
4930
- _univerjs_sheets.DeltaColumnWidthCommand.id,
4931
- _univerjs_sheets.SetColWidthCommand.id,
4932
- _univerjs_sheets.SetRowHiddenCommand.id,
4933
- _univerjs_sheets.SetSpecificRowsVisibleCommand.id,
4934
- _univerjs_sheets.SetSpecificColsVisibleCommand.id,
4935
- _univerjs_sheets.SetColHiddenCommand.id,
4936
- _univerjs_sheets.MoveColsCommand.id,
4937
- _univerjs_sheets.MoveRowsCommand.id,
4938
- _univerjs_sheets.MoveRangeCommand.id
4939
- ];
4940
- const REFRESH_MUTATIONS = [
4941
- _univerjs_sheets.SetRowVisibleMutation.id,
4942
- _univerjs_sheets.SetRowHiddenMutation.id,
4943
- _univerjs_sheets.SetColVisibleMutation.id,
4944
- _univerjs_sheets.SetColHiddenMutation.id,
4945
- _univerjs_sheets.SetWorksheetRowHeightMutation.id,
4946
- _univerjs_sheets.SetWorksheetRowAutoHeightMutation.id,
4947
- _univerjs_sheets.SetWorksheetRowIsAutoHeightMutation.id,
4948
- _univerjs_sheets.SetWorksheetColWidthMutation.id
4949
- ];
4950
- let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffectedController extends _univerjs_core.Disposable {
4951
- constructor(_context, _commandService, _sheetSkeletonService, _selectionRenderService, _sheetInterceptorService, _selectionManagerService, _sheetDrawingService, _drawingManagerService, _univerInstanceService) {
4952
- super();
4953
- this._context = _context;
4954
- this._commandService = _commandService;
4955
- this._sheetSkeletonService = _sheetSkeletonService;
4956
- this._selectionRenderService = _selectionRenderService;
4957
- this._sheetInterceptorService = _sheetInterceptorService;
4958
- this._selectionManagerService = _selectionManagerService;
4959
- this._sheetDrawingService = _sheetDrawingService;
4960
- this._drawingManagerService = _drawingManagerService;
4961
- this._univerInstanceService = _univerInstanceService;
4962
- this._sheetInterceptorListener();
4963
- this._commandListener();
4964
- this._sheetRefreshListener();
4965
- }
4966
- _sheetInterceptorListener() {
4967
- this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({ getMutations: (commandInfo) => {
4968
- const { id, params } = commandInfo;
4969
- if (!UPDATE_COMMANDS.includes(id) || !params) return {
4970
- redos: [],
4971
- undos: []
4972
- };
4973
- if (id === _univerjs_sheets.InsertRowCommand.id) return this._moveRowInterceptor(params, "insert");
4974
- else if ([
4975
- _univerjs_sheets.MoveColsCommand.id,
4976
- _univerjs_sheets.MoveRowsCommand.id,
4977
- _univerjs_sheets.MoveRangeCommand.id
4978
- ].includes(id)) {
4979
- let target;
4980
- if (id === _univerjs_sheets.MoveRangeCommand.id) {
4981
- const _params = params;
4982
- if (_params.toUnitId && _params.fromUnitId && _params.toUnitId !== _params.fromUnitId || _params.toSubUnitId && _params.fromSubUnitId && _params.toSubUnitId !== _params.fromSubUnitId) return {
4983
- redos: [],
4984
- undos: []
4985
- };
4986
- target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, {
4987
- unitId: _params.toUnitId,
4988
- subUnitId: _params.toSubUnitId
4989
- });
4990
- } else target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, params);
4991
- if (!target) return {
4992
- redos: [],
4993
- undos: []
4994
- };
4995
- const { unitId, subUnitId } = target;
4996
- const { fromRange, toRange } = params;
4997
- return this._moveRangeInterceptor(unitId, subUnitId, fromRange, toRange);
4998
- } else if (id === _univerjs_sheets.InsertColCommand.id) return this._moveColInterceptor(params, "insert");
4999
- else if (id === _univerjs_sheets.RemoveRowCommand.id) return this._moveRowInterceptor(params, "remove");
5000
- else if (id === _univerjs_sheets.RemoveColCommand.id) return this._moveColInterceptor(params, "remove");
5001
- else if (id === _univerjs_sheets.DeleteRangeMoveLeftCommand.id) {
5002
- const { range } = params;
5003
- return this._getRangeMoveUndo(range, 0);
5004
- } else if (id === _univerjs_sheets.DeleteRangeMoveUpCommand.id) {
5005
- const { range } = params;
5006
- return this._getRangeMoveUndo(range, 1);
5007
- } else if (id === _univerjs_sheets.InsertRangeMoveDownCommand.id) {
5008
- const { range } = params;
5009
- return this._getRangeMoveUndo(range, 2);
5010
- } else if (id === _univerjs_sheets.InsertRangeMoveRightCommand.id) {
5011
- const { range } = params;
5012
- return this._getRangeMoveUndo(range, 3);
5013
- } else if (id === _univerjs_sheets.SetRowHiddenCommand.id || id === _univerjs_sheets.SetSpecificRowsVisibleCommand.id) {
5014
- var _this$_selectionManag;
5015
- const _params = params;
5016
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
5017
- if (!target) return {
5018
- redos: [],
5019
- undos: []
5020
- };
5021
- const { unitId, subUnitId } = target;
5022
- 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));
5023
- if (!ranges || ranges.length === 0) return {
5024
- redos: [],
5025
- undos: []
5026
- };
5027
- return this._getDrawingUndoForRowVisible(unitId, subUnitId, ranges);
5028
- } else if (id === _univerjs_sheets.SetColHiddenCommand.id || id === _univerjs_sheets.SetSpecificColsVisibleCommand.id) {
5029
- var _this$_selectionManag2;
5030
- const _params = params;
5031
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
5032
- if (!target) return {
5033
- redos: [],
5034
- undos: []
5035
- };
5036
- const { unitId, subUnitId } = target;
5037
- 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));
5038
- if (!ranges || ranges.length === 0) return {
5039
- redos: [],
5040
- undos: []
5041
- };
5042
- return this._getDrawingUndoForColVisible(unitId, subUnitId, ranges);
5043
- } else if (id === _univerjs_sheets.DeltaRowHeightCommand.id || id === _univerjs_sheets.DeltaColumnWidthCommand.id) {
5044
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService);
5045
- if (!target) return {
5046
- redos: [],
5047
- undos: []
5048
- };
5049
- const { unitId, subUnitId, worksheet } = target;
5050
- const ranges = [];
5051
- if (id === _univerjs_sheets.DeltaRowHeightCommand.id) ranges.push({
5052
- startRow: params.anchorRow,
5053
- endRow: params.anchorRow,
5054
- startColumn: 0,
5055
- endColumn: worksheet.getColumnCount() - 1
5056
- });
5057
- else ranges.push({
5058
- startRow: 0,
5059
- endRow: worksheet.getRowCount() - 1,
5060
- startColumn: params.anchorCol,
5061
- endColumn: params.anchorCol
5062
- });
5063
- return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
5064
- } else if (id === _univerjs_sheets.SetRowHeightCommand.id || id === _univerjs_sheets.SetColWidthCommand.id) {
5065
- var _this$_selectionManag3;
5066
- const _params = params;
5067
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, _params);
5068
- if (!target) return {
5069
- redos: [],
5070
- undos: []
5071
- };
5072
- const { unitId, subUnitId } = target;
5073
- const ranges = _params.ranges || ((_this$_selectionManag3 = this._selectionManagerService.getCurrentSelections()) === null || _this$_selectionManag3 === void 0 ? void 0 : _this$_selectionManag3.map((s) => s.range));
5074
- if (!ranges || ranges.length === 0) return {
5075
- redos: [],
5076
- undos: []
5077
- };
5078
- return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
5079
- }
5080
- return {
5081
- redos: [],
5082
- undos: []
5083
- };
5084
- } }));
5085
- }
5086
- _getRangeMoveUndo(range, type) {
5087
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService);
5088
- if (!target) return {
5089
- redos: [],
5090
- undos: []
5091
- };
5092
- const { unitId, subUnitId } = target;
5093
- const drawingData = this._sheetDrawingService.getDrawingData(unitId, subUnitId);
5094
- const redos = [];
5095
- const undos = [];
5096
- const updateDrawings = [];
5097
- const deleteDrawings = [];
5098
- Object.keys(drawingData).forEach((drawingId) => {
5099
- const drawing = drawingData[drawingId];
5100
- const { updateDrawings: updateDrawingsPart, deleteDrawings: deleteDrawingsPart } = this._getUpdateOrDeleteDrawings(range, type, drawing);
5101
- updateDrawings.push(...updateDrawingsPart);
5102
- deleteDrawings.push(...deleteDrawingsPart);
5103
- });
5104
- if (updateDrawings.length === 0 && deleteDrawings.length === 0) return {
5105
- redos: [],
5106
- undos: []
5107
- };
5108
- if (updateDrawings.length > 0) {
5109
- const { undo, redo, objects } = this._sheetDrawingService.getBatchUpdateOp(updateDrawings);
5110
- redos.push({
5111
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5112
- params: {
5113
- unitId,
5114
- subUnitId,
5115
- op: redo,
5116
- objects,
5117
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5118
- }
5119
- });
5120
- undos.push({
5121
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5122
- params: {
5123
- unitId,
5124
- subUnitId,
5125
- op: undo,
5126
- objects,
5127
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5128
- }
5129
- });
5130
- }
5131
- if (deleteDrawings.length > 0) {
5132
- const deleteJsonOp = this._sheetDrawingService.getBatchRemoveOp(deleteDrawings);
5133
- const deleteUndo = deleteJsonOp.undo;
5134
- const deleteRedo = deleteJsonOp.redo;
5135
- const deleteObjects = deleteJsonOp.objects;
5136
- redos.push({
5137
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5138
- params: {
5139
- unitId,
5140
- subUnitId,
5141
- op: deleteRedo,
5142
- objects: deleteObjects,
5143
- type: _univerjs_sheets_drawing.DrawingApplyType.REMOVE
5144
- }
5145
- });
5146
- undos.push({
5147
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5148
- params: {
5149
- unitId,
5150
- subUnitId,
5151
- op: deleteUndo,
5152
- objects: deleteObjects,
5153
- type: _univerjs_sheets_drawing.DrawingApplyType.INSERT
5154
- }
5155
- });
5156
- }
5157
- redos.push({
5158
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5159
- params: [unitId]
5160
- });
5161
- undos.push({
5162
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5163
- params: [unitId]
5164
- });
5165
- return {
5166
- redos,
5167
- undos
5168
- };
5169
- }
5170
- _getUpdateOrDeleteDrawings(range, type, drawing) {
5171
- const updateDrawings = [];
5172
- const deleteDrawings = [];
5173
- const { sheetTransform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position, transform, unitId, subUnitId, drawingId } = drawing;
5174
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
5175
- if (!sheetTransform || !transform || !sheetSkeletonParam) return {
5176
- updateDrawings,
5177
- deleteDrawings
5178
- };
5179
- const { from, to } = sheetTransform;
5180
- const { row: fromRow, column: fromColumn } = from;
5181
- const { row: toRow, column: toColumn } = to;
5182
- const { startRow, endRow, startColumn, endColumn } = range;
5183
- let newSheetTransform = null;
5184
- let newTransform = null;
5185
- let axisAlignSheetTransform;
5186
- if (type === 0 && fromRow >= startRow && toRow <= endRow) if (fromColumn >= startColumn && toColumn <= endColumn) deleteDrawings.push({
5187
- unitId,
5188
- subUnitId,
5189
- drawingId
5190
- });
5191
- else {
5192
- var _param$axisAlignSheet;
5193
- const param = this._shrinkCol(startColumn, endColumn, {
5194
- sheetSkeletonParam,
5195
- sheetTransform,
5196
- transform,
5197
- anchorType
5198
- });
5199
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5200
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5201
- axisAlignSheetTransform = (_param$axisAlignSheet = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet !== void 0 ? _param$axisAlignSheet : void 0;
5202
- }
5203
- else if (type === 1 && fromColumn >= startColumn && toColumn <= endColumn) if (fromRow >= startRow && toRow <= endRow) deleteDrawings.push({
5204
- unitId,
5205
- subUnitId,
5206
- drawingId
5207
- });
5208
- else {
5209
- var _param$axisAlignSheet2;
5210
- const param = this._shrinkRow(startRow, endRow, {
5211
- sheetSkeletonParam,
5212
- sheetTransform,
5213
- transform,
5214
- anchorType
5215
- });
5216
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5217
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5218
- axisAlignSheetTransform = (_param$axisAlignSheet2 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet2 !== void 0 ? _param$axisAlignSheet2 : void 0;
5219
- }
5220
- else if (type === 2) {
5221
- var _param$axisAlignSheet3;
5222
- const param = this._expandRow(startRow, endRow, {
5223
- sheetSkeletonParam,
5224
- sheetTransform,
5225
- transform,
5226
- anchorType
5227
- });
5228
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5229
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5230
- axisAlignSheetTransform = (_param$axisAlignSheet3 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet3 !== void 0 ? _param$axisAlignSheet3 : void 0;
5231
- } else if (type === 3) {
5232
- var _param$axisAlignSheet4;
5233
- const param = this._expandCol(startColumn, endColumn, {
5234
- sheetSkeletonParam,
5235
- sheetTransform,
5236
- transform,
5237
- anchorType
5238
- });
5239
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5240
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5241
- axisAlignSheetTransform = (_param$axisAlignSheet4 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet4 !== void 0 ? _param$axisAlignSheet4 : void 0;
5242
- }
5243
- if (newSheetTransform && newTransform) {
5244
- const newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
5245
- updateDrawings.push({
5246
- ...drawing,
5247
- sheetTransform: newSheetTransform,
5248
- transform: newTransform,
5249
- axisAlignSheetTransform
5250
- });
5251
- }
5252
- return {
5253
- updateDrawings,
5254
- deleteDrawings
5255
- };
5256
- }
5257
- _remainDrawingSize(transform, updateDrawings, drawing, skeleton) {
5258
- const newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton);
5259
- if (newSheetTransform) {
5260
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton);
5261
- updateDrawings.push({
5262
- ...drawing,
5263
- sheetTransform: newSheetTransform,
5264
- axisAlignSheetTransform
5265
- });
5266
- }
5267
- }
5268
- _getDrawingUndoForColVisible(unitId, subUnitId, ranges) {
5269
- const skeleton = this._sheetSkeletonService.getSkeleton(unitId, subUnitId);
5270
- if (!skeleton) return {
5271
- redos: [],
5272
- undos: []
5273
- };
5274
- const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId);
5275
- const updateDrawings = [];
5276
- const preUpdateDrawings = [];
5277
- Object.keys(drawingData).forEach((drawingId) => {
5278
- const drawing = drawingData[drawingId];
5279
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = drawing;
5280
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5281
- else {
5282
- const { from, to } = sheetTransform;
5283
- const { row: fromRow, column: fromColumn } = from;
5284
- const { row: toRow, column: toColumn } = to;
5285
- for (let i = 0; i < ranges.length; i++) {
5286
- const { startColumn, endColumn } = ranges[i];
5287
- if (toColumn < startColumn) continue;
5288
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Position) {
5289
- let newSheetTransform = null;
5290
- let newTransform = null;
5291
- if (fromColumn >= startColumn && fromColumn <= endColumn) {
5292
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5293
- startColumn: fromColumn,
5294
- endColumn,
5295
- startRow: fromRow,
5296
- endRow: toRow
5297
- });
5298
- newTransform = {
5299
- ...transform,
5300
- left: selectionCell.startX
5301
- };
5302
- }
5303
- if (newTransform) {
5304
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5305
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5306
- if (newSheetTransform && newTransform) {
5307
- updateDrawings.push({
5308
- ...drawing,
5309
- sheetTransform: newSheetTransform,
5310
- transform: newTransform,
5311
- axisAlignSheetTransform
5312
- });
5313
- break;
5314
- }
5315
- }
5316
- continue;
5317
- }
5318
- if (fromColumn >= startColumn && toColumn <= endColumn) continue;
5319
- let newSheetTransform = null;
5320
- let newTransform = null;
5321
- if (fromColumn >= startColumn && fromColumn <= endColumn) {
5322
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5323
- startColumn: fromColumn,
5324
- endColumn,
5325
- startRow: fromRow,
5326
- endRow: toRow
5327
- });
5328
- newTransform = {
5329
- ...transform,
5330
- left: (selectionCell === null || selectionCell === void 0 ? void 0 : selectionCell.startX) || 0,
5331
- width: ((transform === null || transform === void 0 ? void 0 : transform.width) || 0) - selectionCell.endX + selectionCell.startX
5332
- };
5333
- } else if (toColumn >= startColumn && toColumn <= endColumn) {
5334
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5335
- startColumn,
5336
- endColumn: toColumn,
5337
- startRow: fromRow,
5338
- endRow: toRow
5339
- });
5340
- newTransform = {
5341
- ...transform,
5342
- left: selectionCell.startX - ((transform === null || transform === void 0 ? void 0 : transform.width) || 0)
5343
- };
5344
- } else {
5345
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5346
- startColumn,
5347
- endColumn,
5348
- startRow: fromRow,
5349
- endRow: toRow
5350
- });
5351
- newTransform = {
5352
- ...transform,
5353
- width: ((transform === null || transform === void 0 ? void 0 : transform.width) || 0) - selectionCell.endX + selectionCell.startX
5354
- };
5355
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5356
- if (newSheetTransform && newTransform) {
5357
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5358
- preUpdateDrawings.push({
5359
- ...drawing,
5360
- sheetTransform: newSheetTransform,
5361
- transform: newTransform,
5362
- axisAlignSheetTransform
5363
- });
5364
- break;
5365
- }
5366
- }
5367
- if (newTransform) newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5368
- if (newTransform && newSheetTransform) {
5369
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5370
- updateDrawings.push({
5371
- ...drawing,
5372
- sheetTransform: newSheetTransform,
5373
- transform: newTransform,
5374
- axisAlignSheetTransform
5375
- });
5376
- break;
5377
- } else this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5378
- }
5379
- }
5380
- });
5381
- if (updateDrawings.length === 0 && preUpdateDrawings.length === 0) return {
5382
- redos: [],
5383
- undos: []
5384
- };
5385
- const { redos, undos } = this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
5386
- const preRedos = [];
5387
- const preUndos = [];
5388
- if (preUpdateDrawings.length > 0) {
5389
- const { redos, undos } = this._createUndoAndRedoMutation(unitId, subUnitId, preUpdateDrawings);
5390
- preRedos.push(...redos);
5391
- preUndos.push(...undos);
5392
- }
5393
- return {
5394
- redos,
5395
- undos,
5396
- preRedos,
5397
- preUndos
5398
- };
5399
- }
5400
- _createUndoAndRedoMutation(unitId, subUnitId, updateDrawings) {
5401
- const { undo, redo, objects } = this._sheetDrawingService.getBatchUpdateOp(updateDrawings);
5402
- return {
5403
- redos: [{
5404
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5405
- params: {
5406
- unitId,
5407
- subUnitId,
5408
- op: redo,
5409
- objects,
5410
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5411
- }
5412
- }, {
5413
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5414
- params: [unitId]
5415
- }],
5416
- undos: [{
5417
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5418
- params: {
5419
- unitId,
5420
- subUnitId,
5421
- op: undo,
5422
- objects,
5423
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5424
- }
5425
- }, {
5426
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5427
- params: [unitId]
5428
- }]
5429
- };
5430
- }
5431
- _getDrawingUndoForRowVisible(unitId, subUnitId, ranges) {
5432
- const skeleton = this._sheetSkeletonService.getSkeleton(unitId, subUnitId);
5433
- if (!skeleton) return {
5434
- redos: [],
5435
- undos: []
5436
- };
5437
- const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId);
5438
- const updateDrawings = [];
5439
- const preUpdateDrawings = [];
5440
- Object.keys(drawingData).forEach((drawingId) => {
5441
- const drawing = drawingData[drawingId];
5442
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = drawing;
5443
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5444
- else {
5445
- const { from, to } = sheetTransform;
5446
- const { row: fromRow, column: fromColumn } = from;
5447
- const { row: toRow, column: toColumn } = to;
5448
- for (let i = 0; i < ranges.length; i++) {
5449
- const { startRow, endRow } = ranges[i];
5450
- if (toRow < startRow) continue;
5451
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Position) {
5452
- let newSheetTransform = null;
5453
- let newTransform = null;
5454
- if (fromRow >= startRow && fromRow <= endRow) {
5455
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5456
- startColumn: fromColumn,
5457
- endColumn: toColumn,
5458
- startRow: fromRow,
5459
- endRow
5460
- });
5461
- newTransform = {
5462
- ...transform,
5463
- top: selectionCell.startY
5464
- };
5465
- }
5466
- if (newTransform) {
5467
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5468
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5469
- if (newSheetTransform && newTransform) {
5470
- updateDrawings.push({
5471
- ...drawing,
5472
- sheetTransform: newSheetTransform,
5473
- transform: newTransform,
5474
- axisAlignSheetTransform
5475
- });
5476
- break;
5477
- }
5478
- }
5479
- continue;
5480
- }
5481
- if (fromRow >= startRow && toRow <= endRow) continue;
5482
- let newSheetTransform = null;
5483
- let newTransform = null;
5484
- if (fromRow >= startRow && fromRow <= endRow) {
5485
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5486
- startColumn: fromColumn,
5487
- endColumn: toColumn,
5488
- startRow: fromRow,
5489
- endRow
5490
- });
5491
- newTransform = {
5492
- ...transform,
5493
- top: (selectionCell === null || selectionCell === void 0 ? void 0 : selectionCell.startY) || 0,
5494
- height: ((transform === null || transform === void 0 ? void 0 : transform.height) || 0) - selectionCell.endY + selectionCell.startY
5495
- };
5496
- } else if (toRow >= startRow && toRow <= endRow) {
5497
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5498
- startColumn: fromColumn,
5499
- endColumn: toColumn,
5500
- startRow,
5501
- endRow: toRow
5502
- });
5503
- newTransform = {
5504
- ...transform,
5505
- top: selectionCell.startY - ((transform === null || transform === void 0 ? void 0 : transform.height) || 0)
5506
- };
5507
- } else {
5508
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5509
- startColumn: fromColumn,
5510
- endColumn: toColumn,
5511
- startRow,
5512
- endRow
5513
- });
5514
- newTransform = {
5515
- ...transform,
5516
- height: ((transform === null || transform === void 0 ? void 0 : transform.height) || 0) - selectionCell.endY + selectionCell.startY
5517
- };
5518
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5519
- if (newSheetTransform && newTransform) {
5520
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5521
- preUpdateDrawings.push({
5522
- ...drawing,
5523
- sheetTransform: newSheetTransform,
5524
- transform: newTransform,
5525
- axisAlignSheetTransform
5526
- });
5527
- break;
5528
- }
5529
- }
5530
- if (newTransform) newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
5531
- if (newTransform && newSheetTransform) {
5532
- const axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
5533
- updateDrawings.push({
5534
- ...drawing,
5535
- sheetTransform: newSheetTransform,
5536
- transform: newTransform,
5537
- axisAlignSheetTransform
5538
- });
5539
- break;
5540
- } else this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5541
- }
5542
- }
5543
- });
5544
- if (updateDrawings.length === 0 && preUpdateDrawings.length === 0) return {
5545
- redos: [],
5546
- undos: []
5547
- };
5548
- const { redos, undos } = this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
5549
- const preRedos = [];
5550
- const preUndos = [];
5551
- if (preUpdateDrawings.length > 0) {
5552
- const { redos, undos } = this._createUndoAndRedoMutation(unitId, subUnitId, preUpdateDrawings);
5553
- preRedos.push(...redos);
5554
- preUndos.push(...undos);
5555
- }
5556
- return {
5557
- redos,
5558
- undos,
5559
- preRedos,
5560
- preUndos
5561
- };
5562
- }
5563
- _getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges) {
5564
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
5565
- if (!sheetSkeletonParam) return {
5566
- redos: [],
5567
- undos: []
5568
- };
5569
- const { skeleton } = sheetSkeletonParam;
5570
- const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId);
5571
- const updateDrawings = [];
5572
- Object.keys(drawingData).forEach((drawingId) => {
5573
- const drawing = drawingData[drawingId];
5574
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = drawing;
5575
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5576
- else {
5577
- const { from, to } = sheetTransform;
5578
- const { row: fromRow, column: fromColumn } = from;
5579
- const { row: toRow, column: toColumn } = to;
5580
- for (let i = 0; i < ranges.length; i++) {
5581
- const { startRow, endRow, startColumn, endColumn } = ranges[i];
5582
- if (toRow < startRow || toColumn < startColumn) continue;
5583
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Position) {
5584
- if (fromRow <= startRow && toRow >= endRow || fromColumn <= startColumn && toColumn >= endColumn) {
5585
- this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
5586
- continue;
5587
- }
5588
- }
5589
- const newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)({ ...sheetTransform }, sheetSkeletonParam);
5590
- if (newTransform) {
5591
- updateDrawings.push({
5592
- ...drawing,
5593
- transform: newTransform
5594
- });
5595
- break;
5596
- }
5597
- }
5598
- }
5599
- });
5600
- if (updateDrawings.length === 0) return {
5601
- redos: [],
5602
- undos: []
5603
- };
5604
- return this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
5605
- }
5606
- _getUnitIdAndSubUnitId(params, type) {
5607
- let target;
5608
- if (type === "insert") target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, params);
5609
- else target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService);
5610
- if (!target) return;
5611
- const { unitId, subUnitId } = target;
5612
- return {
5613
- unitId,
5614
- subUnitId
5615
- };
5616
- }
5617
- _moveRangeInterceptor(unitId, subUnitId, fromRange, toRange) {
5618
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
5619
- if (!sheetSkeletonParam) return {
5620
- redos: [],
5621
- undos: []
5622
- };
5623
- const { skeleton } = sheetSkeletonParam;
5624
- const selectionRect = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, fromRange);
5625
- if (!selectionRect) return {
5626
- redos: [],
5627
- undos: []
5628
- };
5629
- const { startX, endX, startY, endY } = selectionRect;
5630
- const drawings = this._sheetDrawingService.getDrawingData(unitId, subUnitId);
5631
- const containedDrawings = [];
5632
- Object.keys(drawings).forEach((drawingId) => {
5633
- const drawing = drawings[drawingId];
5634
- if (drawing.anchorType !== _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) return;
5635
- const { transform } = drawing;
5636
- if (!transform) return;
5637
- const { left = 0, top = 0, width = 0, height = 0 } = transform;
5638
- const { drawingStartX, drawingEndX, drawingStartY, drawingEndY } = {
5639
- drawingStartX: left,
5640
- drawingEndX: left + width,
5641
- drawingStartY: top,
5642
- drawingEndY: top + height
5643
- };
5644
- if (startX <= drawingStartX && drawingEndX <= endX && startY <= drawingStartY && drawingEndY <= endY) containedDrawings.push(drawing);
5645
- });
5646
- const redos = [];
5647
- const undos = [];
5648
- const rowOffset = toRange.startRow - fromRange.startRow;
5649
- const colOffset = toRange.startColumn - fromRange.startColumn;
5650
- const updateDrawings = containedDrawings.map((drawing) => {
5651
- const oldSheetTransform = drawing.sheetTransform;
5652
- const sheetTransform = {
5653
- to: {
5654
- ...oldSheetTransform.to,
5655
- row: oldSheetTransform.to.row + rowOffset,
5656
- column: oldSheetTransform.to.column + colOffset
5657
- },
5658
- from: {
5659
- ...oldSheetTransform.from,
5660
- row: oldSheetTransform.from.row + rowOffset,
5661
- column: oldSheetTransform.from.column + colOffset
5662
- }
5663
- };
5664
- const transform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(sheetTransform, sheetSkeletonParam);
5665
- return {
5666
- unitId,
5667
- subUnitId,
5668
- drawingId: drawing.drawingId,
5669
- transform,
5670
- sheetTransform
5671
- };
5672
- });
5673
- if (updateDrawings.length) {
5674
- const { undo, redo, objects } = this._sheetDrawingService.getBatchUpdateOp(updateDrawings);
5675
- redos.push({
5676
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5677
- params: {
5678
- unitId,
5679
- subUnitId,
5680
- op: redo,
5681
- objects,
5682
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5683
- }
5684
- });
5685
- undos.push({
5686
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5687
- params: {
5688
- unitId,
5689
- subUnitId,
5690
- op: undo,
5691
- objects,
5692
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5693
- }
5694
- });
5695
- }
5696
- return {
5697
- redos,
5698
- undos
5699
- };
5700
- }
5701
- _moveRowInterceptor(params, type) {
5702
- const target = this._getUnitIdAndSubUnitId(params, type);
5703
- if (!target) return {
5704
- redos: [],
5705
- undos: []
5706
- };
5707
- const { unitId, subUnitId } = target;
5708
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
5709
- if (!sheetSkeletonParam) return {
5710
- redos: [],
5711
- undos: []
5712
- };
5713
- const { range } = params;
5714
- const rowStartIndex = range.startRow;
5715
- const rowEndIndex = range.endRow;
5716
- const redos = [];
5717
- const undos = [];
5718
- const data = this._sheetDrawingService.getDrawingData(unitId, subUnitId);
5719
- const updateDrawings = [];
5720
- const deleteDrawings = [];
5721
- Object.keys(data).forEach((drawingId) => {
5722
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = data[drawingId];
5723
- if (!sheetTransform || !transform) return;
5724
- let newSheetTransform;
5725
- let newTransform;
5726
- let axisAlignSheetTransform;
5727
- if (type === "insert") {
5728
- var _param$axisAlignSheet5;
5729
- const param = this._expandRow(rowStartIndex, rowEndIndex, {
5730
- sheetSkeletonParam,
5731
- sheetTransform,
5732
- transform,
5733
- anchorType
5734
- });
5735
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5736
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5737
- axisAlignSheetTransform = (_param$axisAlignSheet5 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet5 !== void 0 ? _param$axisAlignSheet5 : void 0;
5738
- } else {
5739
- const { from, to } = sheetTransform;
5740
- const { row: fromRow } = from;
5741
- const { row: toRow } = to;
5742
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both && fromRow >= rowStartIndex && toRow <= rowEndIndex) deleteDrawings.push({
5743
- unitId,
5744
- subUnitId,
5745
- drawingId
5746
- });
5747
- else {
5748
- var _param$axisAlignSheet6;
5749
- const param = this._shrinkRow(rowStartIndex, rowEndIndex, {
5750
- sheetSkeletonParam,
5751
- sheetTransform,
5752
- transform,
5753
- anchorType
5754
- });
5755
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5756
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5757
- axisAlignSheetTransform = (_param$axisAlignSheet6 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet6 !== void 0 ? _param$axisAlignSheet6 : void 0;
5758
- }
5759
- }
5760
- if (!newSheetTransform || !newTransform) return;
5761
- const params = {
5762
- unitId,
5763
- subUnitId,
5764
- drawingId,
5765
- transform: newTransform,
5766
- sheetTransform: newSheetTransform,
5767
- axisAlignSheetTransform
5768
- };
5769
- updateDrawings.push(params);
5770
- });
5771
- if (updateDrawings.length === 0 && deleteDrawings.length === 0) return {
5772
- redos: [],
5773
- undos: []
5774
- };
5775
- if (updateDrawings.length > 0) {
5776
- const { undo, redo, objects } = this._sheetDrawingService.getBatchUpdateOp(updateDrawings);
5777
- redos.push({
5778
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5779
- params: {
5780
- unitId,
5781
- subUnitId,
5782
- op: redo,
5783
- objects,
5784
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5785
- }
5786
- });
5787
- undos.push({
5788
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5789
- params: {
5790
- unitId,
5791
- subUnitId,
5792
- op: undo,
5793
- objects,
5794
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5795
- }
5796
- });
5797
- }
5798
- if (deleteDrawings.length > 0) {
5799
- const deleteJsonOp = this._sheetDrawingService.getBatchRemoveOp(deleteDrawings);
5800
- const deleteUndo = deleteJsonOp.undo;
5801
- const deleteRedo = deleteJsonOp.redo;
5802
- const deleteObjects = deleteJsonOp.objects;
5803
- redos.push({
5804
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5805
- params: {
5806
- unitId,
5807
- subUnitId,
5808
- op: deleteRedo,
5809
- objects: deleteObjects,
5810
- type: _univerjs_sheets_drawing.DrawingApplyType.REMOVE
5811
- }
5812
- });
5813
- undos.push({
5814
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5815
- params: {
5816
- unitId,
5817
- subUnitId,
5818
- op: deleteUndo,
5819
- objects: deleteObjects,
5820
- type: _univerjs_sheets_drawing.DrawingApplyType.INSERT
5821
- }
5822
- });
5823
- }
5824
- redos.push({
5825
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5826
- params: [unitId]
5827
- });
5828
- undos.push({
5829
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5830
- params: [unitId]
5831
- });
5832
- return {
5833
- redos,
5834
- undos
5835
- };
5836
- }
5837
- _moveColInterceptor(params, type) {
5838
- const target = this._getUnitIdAndSubUnitId(params, type);
5839
- if (!target) return {
5840
- redos: [],
5841
- undos: []
5842
- };
5843
- const { unitId, subUnitId } = target;
5844
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
5845
- if (!sheetSkeletonParam) return {
5846
- redos: [],
5847
- undos: []
5848
- };
5849
- const { range } = params;
5850
- const colStartIndex = range.startColumn;
5851
- const colEndIndex = range.endColumn;
5852
- const redos = [];
5853
- const undos = [];
5854
- const data = this._sheetDrawingService.getDrawingData(unitId, subUnitId);
5855
- const updateDrawings = [];
5856
- const deleteDrawings = [];
5857
- Object.keys(data).forEach((drawingId) => {
5858
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = data[drawingId];
5859
- if (!sheetTransform || !transform) return;
5860
- let newSheetTransform;
5861
- let newTransform;
5862
- let axisAlignSheetTransform;
5863
- if (type === "insert") {
5864
- var _param$axisAlignSheet7;
5865
- const param = this._expandCol(colStartIndex, colEndIndex, {
5866
- sheetSkeletonParam,
5867
- sheetTransform,
5868
- transform,
5869
- anchorType
5870
- });
5871
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5872
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5873
- axisAlignSheetTransform = (_param$axisAlignSheet7 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet7 !== void 0 ? _param$axisAlignSheet7 : void 0;
5874
- } else {
5875
- const { from, to } = sheetTransform;
5876
- const { column: fromColumn } = from;
5877
- const { column: toColumn } = to;
5878
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both && fromColumn >= colStartIndex && toColumn <= colEndIndex) deleteDrawings.push({
5879
- unitId,
5880
- subUnitId,
5881
- drawingId
5882
- });
5883
- else {
5884
- var _param$axisAlignSheet8;
5885
- const param = this._shrinkCol(colStartIndex, colEndIndex, {
5886
- sheetSkeletonParam,
5887
- sheetTransform,
5888
- transform,
5889
- anchorType
5890
- });
5891
- newSheetTransform = param === null || param === void 0 ? void 0 : param.newSheetTransform;
5892
- newTransform = param === null || param === void 0 ? void 0 : param.newTransform;
5893
- axisAlignSheetTransform = (_param$axisAlignSheet8 = param === null || param === void 0 ? void 0 : param.axisAlignSheetTransform) !== null && _param$axisAlignSheet8 !== void 0 ? _param$axisAlignSheet8 : void 0;
5894
- }
5895
- }
5896
- if (!newSheetTransform || !newTransform) return;
5897
- const params = {
5898
- unitId,
5899
- subUnitId,
5900
- drawingId,
5901
- transform: newTransform,
5902
- sheetTransform: newSheetTransform,
5903
- axisAlignSheetTransform
5904
- };
5905
- updateDrawings.push(params);
5906
- });
5907
- if (updateDrawings.length === 0 && deleteDrawings.length === 0) return {
5908
- redos: [],
5909
- undos: []
5910
- };
5911
- if (updateDrawings.length > 0) {
5912
- const { undo, redo, objects } = this._sheetDrawingService.getBatchUpdateOp(updateDrawings);
5913
- redos.push({
5914
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5915
- params: {
5916
- unitId,
5917
- subUnitId,
5918
- op: redo,
5919
- objects,
5920
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5921
- }
5922
- });
5923
- undos.push({
5924
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5925
- params: {
5926
- unitId,
5927
- subUnitId,
5928
- op: undo,
5929
- objects,
5930
- type: _univerjs_sheets_drawing.DrawingApplyType.UPDATE
5931
- }
5932
- });
5933
- }
5934
- if (deleteDrawings.length > 0) {
5935
- const deleteJsonOp = this._sheetDrawingService.getBatchRemoveOp(deleteDrawings);
5936
- const deleteUndo = deleteJsonOp.undo;
5937
- const deleteRedo = deleteJsonOp.redo;
5938
- const deleteObjects = deleteJsonOp.objects;
5939
- redos.push({
5940
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5941
- params: {
5942
- unitId,
5943
- subUnitId,
5944
- op: deleteRedo,
5945
- objects: deleteObjects,
5946
- type: _univerjs_sheets_drawing.DrawingApplyType.REMOVE
5947
- }
5948
- });
5949
- undos.push({
5950
- id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
5951
- params: {
5952
- unitId,
5953
- subUnitId,
5954
- op: deleteUndo,
5955
- objects: deleteObjects,
5956
- type: _univerjs_sheets_drawing.DrawingApplyType.INSERT
5957
- }
5958
- });
5959
- }
5960
- redos.push({
5961
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5962
- params: [unitId]
5963
- });
5964
- undos.push({
5965
- id: _univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id,
5966
- params: [unitId]
5967
- });
5968
- return {
5969
- redos,
5970
- undos
5971
- };
5972
- }
5973
- _expandCol(colStartIndex, colEndIndex, options) {
5974
- const { sheetSkeletonParam, sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = options;
5975
- const { skeleton } = sheetSkeletonParam;
5976
- const colCount = colEndIndex - colStartIndex + 1;
5977
- const { from, to } = sheetTransform;
5978
- const { column: fromColumn } = from;
5979
- const { column: toColumn } = to;
5980
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) return {
5981
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
5982
- newTransform: transform,
5983
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
5984
- };
5985
- let newSheetTransform = null;
5986
- let newTransform = null;
5987
- let axisAlignSheetTransform = null;
5988
- if (fromColumn >= colStartIndex) {
5989
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
5990
- startColumn: colStartIndex,
5991
- endColumn: colEndIndex,
5992
- startRow: from.row,
5993
- endRow: to.row
5994
- });
5995
- newTransform = {
5996
- ...transform,
5997
- left: (transform.left || 0) + selectionCell.endX - selectionCell.startX
5998
- };
5999
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
6000
- axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
6001
- } else if (toColumn >= colEndIndex) if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6002
- newSheetTransform = {
6003
- from: { ...from },
6004
- to: {
6005
- ...to,
6006
- column: toColumn + colCount
6007
- }
6008
- };
6009
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6010
- } else return {
6011
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6012
- newTransform: transform,
6013
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6014
- };
6015
- if (newSheetTransform && newTransform) return {
6016
- newSheetTransform,
6017
- newTransform,
6018
- axisAlignSheetTransform
6019
- };
6020
- return null;
6021
- }
6022
- _shrinkCol(colStartIndex, colEndIndex, options) {
6023
- const { sheetSkeletonParam, sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = options;
6024
- const { skeleton } = sheetSkeletonParam;
6025
- const colCount = colEndIndex - colStartIndex + 1;
6026
- const { from, to } = sheetTransform;
6027
- const { column: fromColumn } = from;
6028
- const { column: toColumn } = to;
6029
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) return {
6030
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6031
- newTransform: transform,
6032
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6033
- };
6034
- let newSheetTransform = null;
6035
- let newTransform = null;
6036
- let axisAlignSheetTransform = null;
6037
- if (fromColumn > colEndIndex) {
6038
- newSheetTransform = {
6039
- from: {
6040
- ...from,
6041
- column: fromColumn - colCount
6042
- },
6043
- to: {
6044
- ...to,
6045
- column: toColumn - colCount
6046
- }
6047
- };
6048
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6049
- } else if (fromColumn >= colStartIndex && toColumn <= colEndIndex) return null;
6050
- else if (fromColumn < colStartIndex && toColumn > colEndIndex) if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6051
- newSheetTransform = {
6052
- from: { ...from },
6053
- to: {
6054
- ...to,
6055
- column: toColumn - colCount
6056
- }
6057
- };
6058
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6059
- } else return {
6060
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6061
- newTransform: transform,
6062
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6063
- };
6064
- else if (fromColumn >= colStartIndex && fromColumn <= colEndIndex) {
6065
- if (fromColumn === colStartIndex) newTransform = {
6066
- ...transform,
6067
- left: (transform.left || 0) - sheetTransform.from.columnOffset
6068
- };
6069
- else {
6070
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
6071
- startColumn: colStartIndex,
6072
- endColumn: fromColumn - 1,
6073
- startRow: from.row,
6074
- endRow: to.row
6075
- });
6076
- newTransform = {
6077
- ...transform,
6078
- left: (transform.left || 0) - selectionCell.endX + selectionCell.startX - sheetTransform.from.columnOffset
6079
- };
6080
- }
6081
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
6082
- axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
6083
- } else if (toColumn >= colStartIndex && toColumn <= colEndIndex && anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6084
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
6085
- startColumn: colStartIndex - 1,
6086
- endColumn: colStartIndex - 1,
6087
- startRow: from.row,
6088
- endRow: to.row
6089
- });
6090
- newSheetTransform = {
6091
- from: { ...from },
6092
- to: {
6093
- ...to,
6094
- column: colStartIndex - 1,
6095
- columnOffset: selectionCell.endX - selectionCell.startX
6096
- }
6097
- };
6098
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6099
- }
6100
- if (newSheetTransform && newTransform) return {
6101
- newSheetTransform,
6102
- newTransform,
6103
- axisAlignSheetTransform
6104
- };
6105
- return null;
6106
- }
6107
- _expandRow(rowStartIndex, rowEndIndex, options) {
6108
- const { sheetSkeletonParam, sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = options;
6109
- const { skeleton } = sheetSkeletonParam;
6110
- const rowCount = rowEndIndex - rowStartIndex + 1;
6111
- const { from, to } = sheetTransform;
6112
- const { row: fromRow } = from;
6113
- const { row: toRow } = to;
6114
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) return {
6115
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6116
- newTransform: transform,
6117
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6118
- };
6119
- let newSheetTransform = null;
6120
- let newTransform = null;
6121
- let axisAlignSheetTransform = null;
6122
- if (fromRow >= rowStartIndex) {
6123
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
6124
- startRow: rowStartIndex,
6125
- endRow: rowEndIndex,
6126
- startColumn: from.column,
6127
- endColumn: to.column
6128
- });
6129
- newTransform = {
6130
- ...transform,
6131
- top: (transform.top || 0) + selectionCell.endY - selectionCell.startY
6132
- };
6133
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
6134
- axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
6135
- } else if (toRow >= rowEndIndex) if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6136
- newSheetTransform = {
6137
- from: { ...from },
6138
- to: {
6139
- ...to,
6140
- row: toRow + rowCount
6141
- }
6142
- };
6143
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6144
- } else return {
6145
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6146
- newTransform: transform,
6147
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6148
- };
6149
- if (newSheetTransform && newTransform) return {
6150
- newSheetTransform,
6151
- newTransform,
6152
- axisAlignSheetTransform
6153
- };
6154
- return null;
6155
- }
6156
- _shrinkRow(rowStartIndex, rowEndIndex, options) {
6157
- const { sheetSkeletonParam, sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = options;
6158
- const { skeleton } = sheetSkeletonParam;
6159
- const rowCount = rowEndIndex - rowStartIndex + 1;
6160
- const { from, to } = sheetTransform;
6161
- const { row: fromRow } = from;
6162
- const { row: toRow } = to;
6163
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) return {
6164
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6165
- newTransform: transform,
6166
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6167
- };
6168
- let newSheetTransform = null;
6169
- let newTransform = null;
6170
- let axisAlignSheetTransform = null;
6171
- if (fromRow > rowEndIndex) {
6172
- newSheetTransform = {
6173
- from: {
6174
- ...from,
6175
- row: fromRow - rowCount
6176
- },
6177
- to: {
6178
- ...to,
6179
- row: toRow - rowCount
6180
- }
6181
- };
6182
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6183
- } else if (fromRow >= rowStartIndex && toRow <= rowEndIndex) return null;
6184
- else if (fromRow < rowStartIndex && toRow > rowEndIndex) if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6185
- newSheetTransform = {
6186
- from: { ...from },
6187
- to: {
6188
- ...to,
6189
- row: toRow - rowCount
6190
- }
6191
- };
6192
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6193
- } else return {
6194
- newSheetTransform: (0, _univerjs_sheets_drawing.transformToDrawingPosition)({ ...transform }, skeleton),
6195
- newTransform: transform,
6196
- axisAlignSheetTransform: (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)({ ...transform }, skeleton)
6197
- };
6198
- else if (fromRow >= rowStartIndex && fromRow <= rowEndIndex) {
6199
- if (fromRow === rowStartIndex) newTransform = {
6200
- ...transform,
6201
- top: (transform.top || 0) - sheetTransform.from.rowOffset
6202
- };
6203
- else {
6204
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
6205
- startRow: rowStartIndex,
6206
- endRow: fromRow - 1,
6207
- startColumn: from.column,
6208
- endColumn: to.column
6209
- });
6210
- newTransform = {
6211
- ...transform,
6212
- top: (transform.top || 0) - selectionCell.endY + selectionCell.startY - sheetTransform.from.rowOffset
6213
- };
6214
- }
6215
- newSheetTransform = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(newTransform, skeleton);
6216
- axisAlignSheetTransform = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(newTransform, skeleton);
6217
- } else if (toRow >= rowStartIndex && toRow <= rowEndIndex && anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Both) {
6218
- const selectionCell = (0, _univerjs_sheets.attachRangeWithCoord)(skeleton, {
6219
- startColumn: from.column,
6220
- endColumn: from.column,
6221
- startRow: rowStartIndex - 1,
6222
- endRow: rowStartIndex - 1
6223
- });
6224
- newSheetTransform = {
6225
- from: { ...from },
6226
- to: {
6227
- ...to,
6228
- row: rowStartIndex - 1,
6229
- rowOffset: selectionCell.endY - selectionCell.startY
6230
- }
6231
- };
6232
- newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(newSheetTransform, sheetSkeletonParam);
6233
- }
6234
- if (newSheetTransform && newTransform) return {
6235
- newSheetTransform,
6236
- newTransform,
6237
- axisAlignSheetTransform
6238
- };
6239
- return null;
6240
- }
6241
- _commandListener() {
6242
- this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
6243
- if (command.id === _univerjs_sheets.SetWorksheetActiveOperation.id) {
6244
- const { unitId, subUnitId } = command.params;
6245
- this._updateDrawings(unitId, subUnitId);
6246
- }
6247
- }));
6248
- this.disposeWithMe(this._context.activated$.subscribe((activated) => {
6249
- const { unit, unitId } = this._context;
6250
- if (activated) {
6251
- const subUnitId = unit.getActiveSheet().getSheetId();
6252
- this._updateDrawings(unitId, subUnitId);
6253
- } else this._clearDrawings(unitId);
6254
- }));
6255
- }
6256
- _clearDrawings(selfUnitId) {
6257
- setTimeout(() => {
6258
- const drawingMap = this._drawingManagerService.drawingManagerData;
6259
- const removeDrawings = [];
6260
- Object.keys(drawingMap !== null && drawingMap !== void 0 ? drawingMap : {}).forEach((unitId) => {
6261
- var _drawingMap$unitId;
6262
- const subUnitMap = (_drawingMap$unitId = drawingMap[unitId]) !== null && _drawingMap$unitId !== void 0 ? _drawingMap$unitId : {};
6263
- Object.keys(subUnitMap).forEach((subUnitId) => {
6264
- var _subUnitMap$subUnitId, _subUnitMap$subUnitId2;
6265
- const drawingData = (_subUnitMap$subUnitId = (_subUnitMap$subUnitId2 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId2 === void 0 ? void 0 : _subUnitMap$subUnitId2.data) !== null && _subUnitMap$subUnitId !== void 0 ? _subUnitMap$subUnitId : {};
6266
- Object.keys(drawingData).forEach((drawingId) => {
6267
- if (unitId === selfUnitId) removeDrawings.push(drawingData[drawingId]);
6268
- });
6269
- });
6270
- });
6271
- this._sheetDrawingService.removeNotification(removeDrawings);
6272
- this._drawingManagerService.removeNotification(removeDrawings);
6273
- });
6274
- }
6275
- _updateDrawings(showUnitId, showSubunitId) {
6276
- setTimeout(() => {
6277
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(showUnitId, showSubunitId);
6278
- const drawingMap = this._drawingManagerService.drawingManagerData;
6279
- const insertDrawings = [];
6280
- const removeDrawings = [];
6281
- Object.keys(drawingMap !== null && drawingMap !== void 0 ? drawingMap : {}).forEach((unitId) => {
6282
- var _drawingMap$unitId2;
6283
- if (unitId !== showUnitId) return;
6284
- const subUnitMap = (_drawingMap$unitId2 = drawingMap[unitId]) !== null && _drawingMap$unitId2 !== void 0 ? _drawingMap$unitId2 : {};
6285
- Object.keys(subUnitMap).forEach((subUnitId) => {
6286
- var _subUnitMap$subUnitId3, _subUnitMap$subUnitId4;
6287
- const drawingData = (_subUnitMap$subUnitId3 = (_subUnitMap$subUnitId4 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId4 === void 0 ? void 0 : _subUnitMap$subUnitId4.data) !== null && _subUnitMap$subUnitId3 !== void 0 ? _subUnitMap$subUnitId3 : {};
6288
- Object.keys(drawingData).forEach((drawingId) => {
6289
- if (unitId === showUnitId && subUnitId === showSubunitId) {
6290
- const drawing = drawingData[drawingId];
6291
- if (drawing.sheetTransform) drawing.transform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(drawing.sheetTransform, sheetSkeletonParam);
6292
- insertDrawings.push(drawingData[drawingId]);
6293
- } else removeDrawings.push(drawingData[drawingId]);
6294
- });
6295
- });
6296
- });
6297
- this._sheetDrawingService.removeNotification(removeDrawings);
6298
- this._sheetDrawingService.addNotification(insertDrawings);
6299
- this._drawingManagerService.removeNotification(removeDrawings);
6300
- this._drawingManagerService.addNotification(insertDrawings);
6301
- }, 0);
6302
- }
6303
- _sheetRefreshListener() {
6304
- this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
6305
- if (!REFRESH_MUTATIONS.includes(command.id)) return;
6306
- requestIdleCallback(() => {
6307
- const params = command.params;
6308
- const target = (0, _univerjs_sheets.getSheetCommandTarget)(this._univerInstanceService, params);
6309
- if (!target) return;
6310
- const { unitId, subUnitId, worksheet } = target;
6311
- let ranges = [];
6312
- if ("ranges" in params) ranges = params.ranges;
6313
- else if ("rowsAutoHeightInfo" in params) ranges = params.rowsAutoHeightInfo.map((info) => ({
6314
- startRow: info.row,
6315
- endRow: info.row,
6316
- startColumn: 0,
6317
- endColumn: worksheet.getColumnCount() - 1
6318
- }));
6319
- this._refreshDrawingTransform(unitId, subUnitId, ranges);
6320
- });
6321
- }));
6322
- }
6323
- _refreshDrawingTransform(unitId, subUnitId, ranges) {
6324
- var _this$_drawingManager;
6325
- const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
6326
- const drawingData = (_this$_drawingManager = this._drawingManagerService.getDrawingData(unitId, subUnitId)) !== null && _this$_drawingManager !== void 0 ? _this$_drawingManager : {};
6327
- const updateDrawings = [];
6328
- Object.keys(drawingData).forEach((drawingId) => {
6329
- const drawing = drawingData[drawingId];
6330
- const { sheetTransform, transform, anchorType = _univerjs_sheets_drawing.SheetDrawingAnchorType.Position } = drawing;
6331
- if (anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.None) return true;
6332
- if (!sheetTransform) return true;
6333
- const { from, to } = sheetTransform;
6334
- const { row: fromRow, column: fromColumn } = from;
6335
- const { row: toRow, column: toColumn } = to;
6336
- for (let i = 0; i < ranges.length; i++) {
6337
- const { startRow, endRow, startColumn, endColumn } = ranges[i];
6338
- if (_univerjs_core.Rectangle.intersects({
6339
- startRow,
6340
- endRow,
6341
- startColumn,
6342
- endColumn
6343
- }, {
6344
- startRow: fromRow,
6345
- endRow: toRow,
6346
- startColumn: fromColumn,
6347
- endColumn: toColumn
6348
- }) || fromRow > endRow || fromColumn > endColumn) {
6349
- const isPositionAnchor = anchorType === _univerjs_sheets_drawing.SheetDrawingAnchorType.Position;
6350
- const newTransform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(sheetTransform, sheetSkeletonParam);
6351
- updateDrawings.push({
6352
- ...drawing,
6353
- transform: {
6354
- ...newTransform,
6355
- width: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.width : newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
6356
- height: isPositionAnchor ? transform === null || transform === void 0 ? void 0 : transform.height : newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
6357
- }
6358
- });
6359
- break;
6360
- }
6361
- }
6362
- });
6363
- if (updateDrawings.length === 0) return;
6364
- this._sheetDrawingService.refreshTransform(updateDrawings);
6365
- this._drawingManagerService.refreshTransform(updateDrawings);
6366
- this._commandService.syncExecuteCommand(_univerjs_sheets_drawing.ClearSheetDrawingTransformerOperation.id, [unitId]);
6367
- }
6368
- };
6369
- SheetDrawingTransformAffectedController = __decorate([
6370
- __decorateParam(1, _univerjs_core.ICommandService),
6371
- __decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService)),
6372
- __decorateParam(3, _univerjs_sheets_ui.ISheetSelectionRenderService),
6373
- __decorateParam(4, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetInterceptorService)),
6374
- __decorateParam(5, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetsSelectionsService)),
6375
- __decorateParam(6, _univerjs_sheets_drawing.ISheetDrawingService),
6376
- __decorateParam(7, _univerjs_drawing.IDrawingManagerService),
6377
- __decorateParam(8, _univerjs_core.IUniverInstanceService)
6378
- ], SheetDrawingTransformAffectedController);
6379
-
6380
5003
  //#endregion
6381
5004
  //#region src/commands/commands/flip-drawings.command.ts
6382
5005
  /**
@@ -6992,7 +5615,7 @@ let UniverSheetsDrawingUIPlugin = class UniverSheetsDrawingUIPlugin extends _uni
6992
5615
  _registerRenderModules() {
6993
5616
  [
6994
5617
  [SheetDrawingUpdateController],
6995
- [SheetDrawingTransformAffectedController],
5618
+ [SheetDrawingActiveRenderController],
6996
5619
  [SheetsDrawingRenderController],
6997
5620
  [SheetCellImageHoverRenderController]
6998
5621
  ].forEach((m) => {