@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 +49 -0
- package/lib/cjs/index.js +26 -87
- package/lib/es/facade.js +49 -0
- package/lib/es/index.js +28 -89
- package/lib/facade.js +49 -0
- package/lib/index.js +28 -89
- package/lib/types/controllers/sheet-drawing-transform-affected.controller.d.ts +2 -3
- package/lib/types/facade/f-over-grid-image.d.ts +22 -0
- package/lib/types/services/sheet-drawing.service.d.ts +1 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +6 -6
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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,
|
|
1642
|
+
const { startRow, startColumn } = ranges[i];
|
|
1703
1643
|
if (toRow < startRow || toColumn < startColumn) continue;
|
|
1704
1644
|
if (anchorType === "0") {
|
|
1705
|
-
|
|
1706
|
-
|
|
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
|
|
1728
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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:
|
|
2290
|
-
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,
|
|
2305
|
-
__decorateParam(4,
|
|
2306
|
-
__decorateParam(5,
|
|
2307
|
-
__decorateParam(6, _univerjs_core.
|
|
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,
|
|
2
|
-
import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin,
|
|
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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,
|
|
1641
|
+
const { startRow, startColumn } = ranges[i];
|
|
1702
1642
|
if (toRow < startRow || toColumn < startColumn) continue;
|
|
1703
1643
|
if (anchorType === "0") {
|
|
1704
|
-
|
|
1705
|
-
|
|
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
|
|
1727
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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:
|
|
2289
|
-
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,
|
|
2304
|
-
__decorateParam(4,
|
|
2305
|
-
__decorateParam(5,
|
|
2306
|
-
__decorateParam(6,
|
|
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,
|
|
2
|
-
import { ArrangeTypeEnum, CommandType, DependentOn, Disposable, DrawingTypeEnum, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, Plugin,
|
|
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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,
|
|
1641
|
+
const { startRow, startColumn } = ranges[i];
|
|
1702
1642
|
if (toRow < startRow || toColumn < startColumn) continue;
|
|
1703
1643
|
if (anchorType === "0") {
|
|
1704
|
-
|
|
1705
|
-
|
|
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
|
|
1727
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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:
|
|
2289
|
-
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,
|
|
2304
|
-
__decorateParam(4,
|
|
2305
|
-
__decorateParam(5,
|
|
2306
|
-
__decorateParam(6,
|
|
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
|
|
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,
|
|
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
|
+
"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.
|
|
63
|
-
"@univerjs/drawing": "1.0.
|
|
64
|
-
"@univerjs/engine-render": "1.0.
|
|
65
|
-
"@univerjs/sheets": "1.0.
|
|
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.
|
|
68
|
+
"@univerjs-infra/shared": "1.0.4",
|
|
69
69
|
"typescript": "^6.0.3",
|
|
70
70
|
"vitest": "^5.0.0"
|
|
71
71
|
},
|