@univerjs/sheets-drawing 1.0.3 → 1.1.0
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 +56 -7
- package/lib/cjs/index.js +51 -105
- package/lib/es/facade.js +55 -6
- package/lib/es/index.js +52 -106
- package/lib/facade.js +55 -6
- package/lib/index.js +52 -106
- 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 +7 -7
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
|
|
|
@@ -365,7 +365,7 @@ function getSheetDrawingPlacement(drawing) {
|
|
|
365
365
|
};
|
|
366
366
|
}
|
|
367
367
|
function applySheetDrawingPlacement(drawing, input, skeleton) {
|
|
368
|
-
const placement =
|
|
368
|
+
const placement = normalizePlacement(input, skeleton, drawing.drawingType === DrawingTypeEnum.DRAWING_IMAGE || drawing.drawingType === DrawingTypeEnum.DRAWING_DOM);
|
|
369
369
|
if (placement.kind === "2") {
|
|
370
370
|
const transform = withExistingTransform(drawing.transform, placement);
|
|
371
371
|
const sheetTransform = absoluteSheetTransform(placement, drawing.sheetTransform);
|
|
@@ -409,15 +409,18 @@ function applySheetDrawingPlacement(drawing, input, skeleton) {
|
|
|
409
409
|
* Position, Both, or None Placement.
|
|
410
410
|
*/
|
|
411
411
|
function normalizeSheetDrawingPlacement(input, skeleton) {
|
|
412
|
+
return normalizePlacement(input, skeleton, false);
|
|
413
|
+
}
|
|
414
|
+
function normalizePlacement(input, skeleton, requiresArea) {
|
|
412
415
|
if (!("bounds" in input)) {
|
|
413
|
-
validatePlacement(input);
|
|
416
|
+
validatePlacement(input, requiresArea);
|
|
414
417
|
if (input.kind === "1" && skeleton) validateBounds(convertPositionSheetOverGridToAbsolute(skeleton.worksheet.getUnitId(), skeleton.worksheet.getSheetId(), {
|
|
415
418
|
from: input.from,
|
|
416
419
|
to: input.to
|
|
417
|
-
}, skeleton));
|
|
420
|
+
}, skeleton), requiresArea);
|
|
418
421
|
return input;
|
|
419
422
|
}
|
|
420
|
-
validateBounds(input.bounds);
|
|
423
|
+
validateBounds(input.bounds, requiresArea);
|
|
421
424
|
if (input.kind === "2") return {
|
|
422
425
|
kind: "2",
|
|
423
426
|
...input.bounds
|
|
@@ -470,10 +473,10 @@ function absoluteSheetTransform(placement, current) {
|
|
|
470
473
|
}
|
|
471
474
|
};
|
|
472
475
|
}
|
|
473
|
-
function validatePlacement(placement) {
|
|
476
|
+
function validatePlacement(placement, requiresArea) {
|
|
474
477
|
if (placement.kind === "0") {
|
|
475
478
|
validateCellPosition(placement.from);
|
|
476
|
-
validateExtent(placement.width, placement.height);
|
|
479
|
+
validateExtent(placement.width, placement.height, requiresArea);
|
|
477
480
|
return;
|
|
478
481
|
}
|
|
479
482
|
if (placement.kind === "1") {
|
|
@@ -483,20 +486,24 @@ function validatePlacement(placement) {
|
|
|
483
486
|
}
|
|
484
487
|
if (placement.kind === "2") {
|
|
485
488
|
if (!Number.isFinite(placement.left) || !Number.isFinite(placement.top)) throw new TypeError("SHEET_DRAWING_PLACEMENT_POSITION_INVALID");
|
|
486
|
-
validateExtent(placement.width, placement.height);
|
|
489
|
+
validateExtent(placement.width, placement.height, requiresArea);
|
|
487
490
|
return;
|
|
488
491
|
}
|
|
489
492
|
throw new Error("SHEET_DRAWING_PLACEMENT_KIND_INVALID");
|
|
490
493
|
}
|
|
491
|
-
function validateBounds(bounds) {
|
|
494
|
+
function validateBounds(bounds, requiresArea) {
|
|
492
495
|
if (!Number.isFinite(bounds.left) || !Number.isFinite(bounds.top)) throw new TypeError("SHEET_DRAWING_PLACEMENT_POSITION_INVALID");
|
|
493
|
-
validateExtent(bounds.width, bounds.height);
|
|
496
|
+
validateExtent(bounds.width, bounds.height, requiresArea);
|
|
494
497
|
}
|
|
495
498
|
function validateCellPosition(position) {
|
|
496
499
|
if (!Number.isInteger(position.row) || !Number.isInteger(position.column) || position.row < 0 || position.column < 0 || !Number.isFinite(position.rowOffset) || !Number.isFinite(position.columnOffset)) throw new Error("SHEET_DRAWING_PLACEMENT_CELL_INVALID");
|
|
497
500
|
}
|
|
498
|
-
function validateExtent(width, height) {
|
|
499
|
-
|
|
501
|
+
function validateExtent(width, height, requiresArea) {
|
|
502
|
+
const hasInvalidZeroExtent = requiresArea ? width === 0 || height === 0 : width === 0 && height === 0;
|
|
503
|
+
if (!Number.isFinite(width) || !Number.isFinite(height) || width < 0 || height < 0 || hasInvalidZeroExtent) throw Object.assign(/* @__PURE__ */ new Error("SHEET_DRAWING_PLACEMENT_EXTENT_INVALID"), {
|
|
504
|
+
width,
|
|
505
|
+
height
|
|
506
|
+
});
|
|
500
507
|
}
|
|
501
508
|
|
|
502
509
|
//#endregion
|
|
@@ -735,7 +742,7 @@ const SetWorksheetBackgroundImageCommand = {
|
|
|
735
742
|
};
|
|
736
743
|
|
|
737
744
|
//#endregion
|
|
738
|
-
//#region \0@oxc-project+runtime@0.
|
|
745
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
739
746
|
function __decorateParam(paramIndex, decorator) {
|
|
740
747
|
return function(target, key) {
|
|
741
748
|
decorator(target, key, paramIndex);
|
|
@@ -743,7 +750,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
743
750
|
}
|
|
744
751
|
|
|
745
752
|
//#endregion
|
|
746
|
-
//#region \0@oxc-project+runtime@0.
|
|
753
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
747
754
|
function __decorate(decorators, target, key, desc) {
|
|
748
755
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
749
756
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -927,7 +934,7 @@ SheetsDrawingLoadController = __decorate([
|
|
|
927
934
|
//#endregion
|
|
928
935
|
//#region package.json
|
|
929
936
|
var name = "@univerjs/sheets-drawing";
|
|
930
|
-
var version = "1.0
|
|
937
|
+
var version = "1.1.0";
|
|
931
938
|
|
|
932
939
|
//#endregion
|
|
933
940
|
//#region src/config/config.ts
|
|
@@ -951,7 +958,7 @@ const configSymbol = Symbol(SHEETS_DRAWING_PLUGIN_CONFIG_KEY);
|
|
|
951
958
|
const defaultPluginConfig = {};
|
|
952
959
|
|
|
953
960
|
//#endregion
|
|
954
|
-
//#region \0@oxc-project+runtime@0.
|
|
961
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
955
962
|
function _typeof(o) {
|
|
956
963
|
"@babel/helpers - typeof";
|
|
957
964
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -962,7 +969,7 @@ function _typeof(o) {
|
|
|
962
969
|
}
|
|
963
970
|
|
|
964
971
|
//#endregion
|
|
965
|
-
//#region \0@oxc-project+runtime@0.
|
|
972
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
966
973
|
function toPrimitive(t, r) {
|
|
967
974
|
if ("object" != _typeof(t) || !t) return t;
|
|
968
975
|
var e = t[Symbol.toPrimitive];
|
|
@@ -975,14 +982,14 @@ function toPrimitive(t, r) {
|
|
|
975
982
|
}
|
|
976
983
|
|
|
977
984
|
//#endregion
|
|
978
|
-
//#region \0@oxc-project+runtime@0.
|
|
985
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
979
986
|
function toPropertyKey(t) {
|
|
980
987
|
var i = toPrimitive(t, "string");
|
|
981
988
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
982
989
|
}
|
|
983
990
|
|
|
984
991
|
//#endregion
|
|
985
|
-
//#region \0@oxc-project+runtime@0.
|
|
992
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
986
993
|
function _defineProperty(e, r, t) {
|
|
987
994
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
988
995
|
value: t,
|
|
@@ -1061,12 +1068,11 @@ const REFRESH_MUTATIONS = [
|
|
|
1061
1068
|
SetWorksheetColWidthMutation.id
|
|
1062
1069
|
];
|
|
1063
1070
|
let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffectedController extends Disposable {
|
|
1064
|
-
constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService,
|
|
1071
|
+
constructor(_commandService, _sheetSkeletonService, _sheetInterceptorService, _sheetDrawingService, _drawingManagerService, _univerInstanceService, _transformPlanService) {
|
|
1065
1072
|
super();
|
|
1066
1073
|
this._commandService = _commandService;
|
|
1067
1074
|
this._sheetSkeletonService = _sheetSkeletonService;
|
|
1068
1075
|
this._sheetInterceptorService = _sheetInterceptorService;
|
|
1069
|
-
this._selectionManagerService = _selectionManagerService;
|
|
1070
1076
|
this._sheetDrawingService = _sheetDrawingService;
|
|
1071
1077
|
this._drawingManagerService = _drawingManagerService;
|
|
1072
1078
|
this._univerInstanceService = _univerInstanceService;
|
|
@@ -1127,70 +1133,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1127
1133
|
const { range } = params;
|
|
1128
1134
|
return this._getRangeMoveUndo(range, 3);
|
|
1129
1135
|
} 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
|
-
};
|
|
1136
|
+
const { unitId, subUnitId, ranges } = params;
|
|
1143
1137
|
return this._getDrawingUndoForRowVisible(unitId, subUnitId, ranges);
|
|
1144
1138
|
} 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
|
-
};
|
|
1139
|
+
const { unitId, subUnitId, ranges } = params;
|
|
1158
1140
|
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
|
-
};
|
|
1141
|
+
} else if (id === DeltaRowHeightCommand.id || id === DeltaColumnWidthCommand.id || id === SetRowHeightCommand.id || id === SetColWidthCommand.id) {
|
|
1142
|
+
const { unitId, subUnitId, ranges } = params;
|
|
1194
1143
|
return this._getDrawingUndoForRowAndColSize(unitId, subUnitId, ranges);
|
|
1195
1144
|
}
|
|
1196
1145
|
return {
|
|
@@ -1354,7 +1303,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1354
1303
|
const deleteDrawings = [];
|
|
1355
1304
|
const { sheetTransform, anchorType = "0", transform, unitId, subUnitId, drawingId } = drawing;
|
|
1356
1305
|
const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
|
|
1357
|
-
if (!sheetTransform || !transform || !sheetSkeletonParam) return {
|
|
1306
|
+
if (anchorType === "2" || !sheetTransform || !transform || !sheetSkeletonParam) return {
|
|
1358
1307
|
updateDrawings,
|
|
1359
1308
|
deleteDrawings
|
|
1360
1309
|
};
|
|
@@ -1694,17 +1643,13 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1694
1643
|
const { sheetTransform, transform, anchorType = "0" } = drawing;
|
|
1695
1644
|
if (anchorType === "2") this._remainDrawingSize(transform, updateDrawings, drawing, skeleton);
|
|
1696
1645
|
else {
|
|
1697
|
-
const {
|
|
1698
|
-
const { row: fromRow, column: fromColumn } = from;
|
|
1699
|
-
const { row: toRow, column: toColumn } = to;
|
|
1646
|
+
const { row: toRow, column: toColumn } = sheetTransform.to;
|
|
1700
1647
|
for (let i = 0; i < ranges.length; i++) {
|
|
1701
|
-
const { startRow,
|
|
1648
|
+
const { startRow, startColumn } = ranges[i];
|
|
1702
1649
|
if (toRow < startRow || toColumn < startColumn) continue;
|
|
1703
1650
|
if (anchorType === "0") {
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
continue;
|
|
1707
|
-
}
|
|
1651
|
+
updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), skeleton));
|
|
1652
|
+
break;
|
|
1708
1653
|
}
|
|
1709
1654
|
const newTransform = drawingPositionToTransform({ ...sheetTransform }, sheetSkeletonParam);
|
|
1710
1655
|
if (newTransform) {
|
|
@@ -1723,10 +1668,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1723
1668
|
};
|
|
1724
1669
|
return this._createUndoAndRedoMutation(unitId, subUnitId, updateDrawings);
|
|
1725
1670
|
}
|
|
1726
|
-
_getUnitIdAndSubUnitId(params
|
|
1727
|
-
|
|
1728
|
-
if (type === "insert") target = getSheetCommandTarget(this._univerInstanceService, params);
|
|
1729
|
-
else target = getSheetCommandTarget(this._univerInstanceService);
|
|
1671
|
+
_getUnitIdAndSubUnitId(params) {
|
|
1672
|
+
const target = getSheetCommandTarget(this._univerInstanceService, params);
|
|
1730
1673
|
if (!target) return;
|
|
1731
1674
|
const { unitId, subUnitId } = target;
|
|
1732
1675
|
return {
|
|
@@ -1791,7 +1734,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1791
1734
|
return this._finalizePlan(unitId, subUnitId, updateDrawings);
|
|
1792
1735
|
}
|
|
1793
1736
|
_moveRowInterceptor(params, type) {
|
|
1794
|
-
const target = this._getUnitIdAndSubUnitId(params
|
|
1737
|
+
const target = this._getUnitIdAndSubUnitId(params);
|
|
1795
1738
|
if (!target) return {
|
|
1796
1739
|
redos: [],
|
|
1797
1740
|
undos: []
|
|
@@ -1859,7 +1802,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
1859
1802
|
return this._finalizePlan(unitId, subUnitId, updateDrawings, deleteDrawings);
|
|
1860
1803
|
}
|
|
1861
1804
|
_moveColInterceptor(params, type) {
|
|
1862
|
-
const target = this._getUnitIdAndSubUnitId(params
|
|
1805
|
+
const target = this._getUnitIdAndSubUnitId(params);
|
|
1863
1806
|
if (!target) return {
|
|
1864
1807
|
redos: [],
|
|
1865
1808
|
undos: []
|
|
@@ -2254,6 +2197,7 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
2254
2197
|
}
|
|
2255
2198
|
_refreshDrawingTransform(command, unitId, subUnitId, ranges) {
|
|
2256
2199
|
const sheetSkeletonParam = this._getCalculatedSkeletonParam(unitId, subUnitId);
|
|
2200
|
+
if (!sheetSkeletonParam) return;
|
|
2257
2201
|
const drawingData = this._drawingManagerService.getDrawingData(unitId, subUnitId) ?? {};
|
|
2258
2202
|
const updateDrawings = [];
|
|
2259
2203
|
Object.keys(drawingData).forEach((drawingId) => {
|
|
@@ -2277,7 +2221,10 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
2277
2221
|
startColumn: fromColumn,
|
|
2278
2222
|
endColumn: toColumn
|
|
2279
2223
|
}) || fromRow > endRow || fromColumn > endColumn) {
|
|
2280
|
-
|
|
2224
|
+
if (anchorType === "0") {
|
|
2225
|
+
updateDrawings.push(applySheetDrawingPlacement(drawing, getSheetDrawingPlacement(drawing), sheetSkeletonParam.skeleton));
|
|
2226
|
+
break;
|
|
2227
|
+
}
|
|
2281
2228
|
const newTransform = drawingPositionToTransform(sheetTransform, sheetSkeletonParam);
|
|
2282
2229
|
updateDrawings.push({
|
|
2283
2230
|
...drawing,
|
|
@@ -2285,8 +2232,8 @@ let SheetDrawingTransformAffectedController = class SheetDrawingTransformAffecte
|
|
|
2285
2232
|
...transform,
|
|
2286
2233
|
left: newTransform === null || newTransform === void 0 ? void 0 : newTransform.left,
|
|
2287
2234
|
top: newTransform === null || newTransform === void 0 ? void 0 : newTransform.top,
|
|
2288
|
-
width:
|
|
2289
|
-
height:
|
|
2235
|
+
width: newTransform === null || newTransform === void 0 ? void 0 : newTransform.width,
|
|
2236
|
+
height: newTransform === null || newTransform === void 0 ? void 0 : newTransform.height
|
|
2290
2237
|
}
|
|
2291
2238
|
});
|
|
2292
2239
|
break;
|
|
@@ -2300,11 +2247,10 @@ SheetDrawingTransformAffectedController = __decorate([
|
|
|
2300
2247
|
__decorateParam(0, ICommandService),
|
|
2301
2248
|
__decorateParam(1, Inject(SheetSkeletonService)),
|
|
2302
2249
|
__decorateParam(2, Inject(SheetInterceptorService)),
|
|
2303
|
-
__decorateParam(3,
|
|
2304
|
-
__decorateParam(4,
|
|
2305
|
-
__decorateParam(5,
|
|
2306
|
-
__decorateParam(6,
|
|
2307
|
-
__decorateParam(7, Inject(SheetDrawingTransformPlanService))
|
|
2250
|
+
__decorateParam(3, ISheetDrawingService),
|
|
2251
|
+
__decorateParam(4, IDrawingManagerService),
|
|
2252
|
+
__decorateParam(5, IUniverInstanceService),
|
|
2253
|
+
__decorateParam(6, Inject(SheetDrawingTransformPlanService))
|
|
2308
2254
|
], SheetDrawingTransformAffectedController);
|
|
2309
2255
|
|
|
2310
2256
|
//#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 _}})});
|