@univerjs/sheets-drawing 0.25.1 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +207 -6
- package/lib/cjs/index.js +7 -7
- package/lib/es/facade.js +209 -8
- package/lib/es/index.js +7 -7
- package/lib/facade.js +209 -8
- package/lib/index.js +7 -7
- package/lib/types/facade/f-worksheet.d.ts +163 -1
- package/lib/types/index.d.ts +12 -7
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
package/lib/cjs/facade.js
CHANGED
|
@@ -3,9 +3,10 @@ let _univerjs_core_facade = require("@univerjs/core/facade");
|
|
|
3
3
|
let _univerjs_drawing = require("@univerjs/drawing");
|
|
4
4
|
let _univerjs_sheets = require("@univerjs/sheets");
|
|
5
5
|
let _univerjs_sheets_drawing = require("@univerjs/sheets-drawing");
|
|
6
|
+
let _univerjs_engine_render = require("@univerjs/engine-render");
|
|
6
7
|
let _univerjs_sheets_facade = require("@univerjs/sheets/facade");
|
|
7
8
|
|
|
8
|
-
//#region \0@oxc-project+runtime@0.
|
|
9
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
|
|
9
10
|
function _typeof(o) {
|
|
10
11
|
"@babel/helpers - typeof";
|
|
11
12
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -16,7 +17,7 @@ function _typeof(o) {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
//#endregion
|
|
19
|
-
//#region \0@oxc-project+runtime@0.
|
|
20
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
|
|
20
21
|
function toPrimitive(t, r) {
|
|
21
22
|
if ("object" != _typeof(t) || !t) return t;
|
|
22
23
|
var e = t[Symbol.toPrimitive];
|
|
@@ -29,14 +30,14 @@ function toPrimitive(t, r) {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
//#endregion
|
|
32
|
-
//#region \0@oxc-project+runtime@0.
|
|
33
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
|
|
33
34
|
function toPropertyKey(t) {
|
|
34
35
|
var i = toPrimitive(t, "string");
|
|
35
36
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
40
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
|
|
40
41
|
function _defineProperty(e, r, t) {
|
|
41
42
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
42
43
|
value: t,
|
|
@@ -47,7 +48,7 @@ function _defineProperty(e, r, t) {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
//#endregion
|
|
50
|
-
//#region \0@oxc-project+runtime@0.
|
|
51
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
|
|
51
52
|
function __decorateParam(paramIndex, decorator) {
|
|
52
53
|
return function(target, key) {
|
|
53
54
|
decorator(target, key, paramIndex);
|
|
@@ -55,7 +56,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
//#endregion
|
|
58
|
-
//#region \0@oxc-project+runtime@0.
|
|
59
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
|
|
59
60
|
function __decorate(decorators, target, key, desc) {
|
|
60
61
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
61
62
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -890,6 +891,11 @@ FOverGridImage = __decorate([__decorateParam(1, _univerjs_core.ICommandService),
|
|
|
890
891
|
|
|
891
892
|
//#endregion
|
|
892
893
|
//#region src/facade/f-worksheet.ts
|
|
894
|
+
const GROUPABLE_DRAWING_TYPES = /* @__PURE__ */ new Set([
|
|
895
|
+
_univerjs_core.DrawingTypeEnum.DRAWING_IMAGE,
|
|
896
|
+
_univerjs_core.DrawingTypeEnum.DRAWING_SHAPE,
|
|
897
|
+
_univerjs_core.DrawingTypeEnum.DRAWING_GROUP
|
|
898
|
+
]);
|
|
893
899
|
var FWorksheetDrawingMixin = class extends _univerjs_sheets_facade.FWorksheet {
|
|
894
900
|
async insertImage(url, column, row, offsetX, offsetY) {
|
|
895
901
|
const imageBuilder = this.newOverGridImage();
|
|
@@ -979,6 +985,201 @@ var FWorksheetDrawingMixin = class extends _univerjs_sheets_facade.FWorksheet {
|
|
|
979
985
|
const subUnitId = this.getSheetId();
|
|
980
986
|
return this._injector.createInstance(FOverGridImageBuilder, unitId, subUnitId);
|
|
981
987
|
}
|
|
988
|
+
groupDrawings(drawingIds, groupId = (0, _univerjs_core.generateRandomId)(10)) {
|
|
989
|
+
const uniqueDrawingIds = Array.from(new Set(drawingIds));
|
|
990
|
+
if (uniqueDrawingIds.length < 2) return null;
|
|
991
|
+
const unitId = this._fWorkbook.getId();
|
|
992
|
+
const subUnitId = this.getSheetId();
|
|
993
|
+
const sheetDrawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
|
|
994
|
+
if (sheetDrawingService.getDrawingByParam({
|
|
995
|
+
unitId,
|
|
996
|
+
subUnitId,
|
|
997
|
+
drawingId: groupId
|
|
998
|
+
})) return null;
|
|
999
|
+
const drawings = uniqueDrawingIds.map((drawingId) => sheetDrawingService.getDrawingByParam({
|
|
1000
|
+
unitId,
|
|
1001
|
+
subUnitId,
|
|
1002
|
+
drawingId
|
|
1003
|
+
}));
|
|
1004
|
+
if (drawings.some((drawing) => !drawing)) return null;
|
|
1005
|
+
if (drawings.some((drawing) => !GROUPABLE_DRAWING_TYPES.has(drawing.drawingType))) return null;
|
|
1006
|
+
const validDrawings = drawings;
|
|
1007
|
+
const groupTransform = (0, _univerjs_engine_render.getGroupState)(0, 0, validDrawings.map((drawing) => drawing.transform || {}));
|
|
1008
|
+
const groupParam = {
|
|
1009
|
+
unitId,
|
|
1010
|
+
subUnitId,
|
|
1011
|
+
drawingId: groupId,
|
|
1012
|
+
drawingType: _univerjs_core.DrawingTypeEnum.DRAWING_GROUP,
|
|
1013
|
+
transform: groupTransform,
|
|
1014
|
+
groupBaseBound: {
|
|
1015
|
+
left: groupTransform.left,
|
|
1016
|
+
top: groupTransform.top,
|
|
1017
|
+
width: groupTransform.width,
|
|
1018
|
+
height: groupTransform.height
|
|
1019
|
+
}
|
|
1020
|
+
};
|
|
1021
|
+
const children = validDrawings.map((drawing) => ({
|
|
1022
|
+
...drawing,
|
|
1023
|
+
groupId
|
|
1024
|
+
}));
|
|
1025
|
+
return this._applyGroupDrawingOperation([{
|
|
1026
|
+
parent: groupParam,
|
|
1027
|
+
children
|
|
1028
|
+
}], _univerjs_sheets_drawing.DrawingApplyType.GROUP) ? groupId : null;
|
|
1029
|
+
}
|
|
1030
|
+
ungroupDrawings(groupIds) {
|
|
1031
|
+
const unitId = this._fWorkbook.getId();
|
|
1032
|
+
const subUnitId = this.getSheetId();
|
|
1033
|
+
const sheetDrawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
|
|
1034
|
+
const groupParams = [];
|
|
1035
|
+
for (const groupId of groupIds) {
|
|
1036
|
+
const groupDrawing = sheetDrawingService.getDrawingByParam({
|
|
1037
|
+
unitId,
|
|
1038
|
+
subUnitId,
|
|
1039
|
+
drawingId: groupId
|
|
1040
|
+
});
|
|
1041
|
+
if (!groupDrawing || groupDrawing.drawingType !== _univerjs_core.DrawingTypeEnum.DRAWING_GROUP) continue;
|
|
1042
|
+
const groupTransform = groupDrawing.transform || {
|
|
1043
|
+
width: 0,
|
|
1044
|
+
height: 0
|
|
1045
|
+
};
|
|
1046
|
+
const children = sheetDrawingService.getDrawingsByGroup({
|
|
1047
|
+
unitId,
|
|
1048
|
+
subUnitId,
|
|
1049
|
+
drawingId: groupId
|
|
1050
|
+
}).map((drawing) => {
|
|
1051
|
+
const newTransform = (0, _univerjs_engine_render.transformObjectOutOfGroup)(drawing.transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0, groupDrawing.groupBaseBound);
|
|
1052
|
+
return {
|
|
1053
|
+
...drawing,
|
|
1054
|
+
transform: {
|
|
1055
|
+
...drawing.transform,
|
|
1056
|
+
...newTransform
|
|
1057
|
+
},
|
|
1058
|
+
groupId: void 0
|
|
1059
|
+
};
|
|
1060
|
+
});
|
|
1061
|
+
if (children.length > 0) groupParams.push({
|
|
1062
|
+
parent: groupDrawing,
|
|
1063
|
+
children
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
return this._applyGroupDrawingOperation(groupParams, _univerjs_sheets_drawing.DrawingApplyType.UNGROUP);
|
|
1067
|
+
}
|
|
1068
|
+
getDrawingGroupChildren(groupId, recursive = false) {
|
|
1069
|
+
const unitId = this._fWorkbook.getId();
|
|
1070
|
+
const subUnitId = this.getSheetId();
|
|
1071
|
+
const sheetDrawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
|
|
1072
|
+
if (!recursive) return sheetDrawingService.getDrawingsByGroup({
|
|
1073
|
+
unitId,
|
|
1074
|
+
subUnitId,
|
|
1075
|
+
drawingId: groupId
|
|
1076
|
+
});
|
|
1077
|
+
const nested = sheetDrawingService.getDrawingsByGroupNested({
|
|
1078
|
+
unitId,
|
|
1079
|
+
subUnitId,
|
|
1080
|
+
drawingId: groupId
|
|
1081
|
+
});
|
|
1082
|
+
if (!nested) return [];
|
|
1083
|
+
return [...nested.flatChildren || [], ...nested.groups.filter((group) => group.drawingId !== groupId)];
|
|
1084
|
+
}
|
|
1085
|
+
getDrawingParentGroup(drawingId) {
|
|
1086
|
+
const unitId = this._fWorkbook.getId();
|
|
1087
|
+
const subUnitId = this.getSheetId();
|
|
1088
|
+
const sheetDrawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
|
|
1089
|
+
const drawing = sheetDrawingService.getDrawingByParam({
|
|
1090
|
+
unitId,
|
|
1091
|
+
subUnitId,
|
|
1092
|
+
drawingId
|
|
1093
|
+
});
|
|
1094
|
+
if (!(drawing === null || drawing === void 0 ? void 0 : drawing.groupId)) return null;
|
|
1095
|
+
const groupDrawing = sheetDrawingService.getDrawingByParam({
|
|
1096
|
+
unitId,
|
|
1097
|
+
subUnitId,
|
|
1098
|
+
drawingId: drawing.groupId
|
|
1099
|
+
});
|
|
1100
|
+
if (!groupDrawing || groupDrawing.drawingType !== _univerjs_core.DrawingTypeEnum.DRAWING_GROUP) return null;
|
|
1101
|
+
return groupDrawing;
|
|
1102
|
+
}
|
|
1103
|
+
isDrawingGrouped(drawingId) {
|
|
1104
|
+
return this.getDrawingParentGroup(drawingId) !== null;
|
|
1105
|
+
}
|
|
1106
|
+
_applyGroupDrawingOperation(groupParams, type) {
|
|
1107
|
+
if (groupParams.length === 0) return false;
|
|
1108
|
+
const sheetDrawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
|
|
1109
|
+
const commandService = this._commandService;
|
|
1110
|
+
const undoRedoService = this._injector.get(_univerjs_core.IUndoRedoService);
|
|
1111
|
+
const { unitId, subUnitId, undo, redo, objects } = type === _univerjs_sheets_drawing.DrawingApplyType.GROUP ? sheetDrawingService.getGroupDrawingOp(groupParams) : sheetDrawingService.getUngroupDrawingOp(groupParams);
|
|
1112
|
+
if (commandService.syncExecuteCommand(_univerjs_sheets_drawing.SetDrawingApplyMutation.id, {
|
|
1113
|
+
op: redo,
|
|
1114
|
+
unitId,
|
|
1115
|
+
subUnitId,
|
|
1116
|
+
objects,
|
|
1117
|
+
type
|
|
1118
|
+
})) {
|
|
1119
|
+
const inverseType = type === _univerjs_sheets_drawing.DrawingApplyType.GROUP ? _univerjs_sheets_drawing.DrawingApplyType.UNGROUP : _univerjs_sheets_drawing.DrawingApplyType.GROUP;
|
|
1120
|
+
undoRedoService.pushUndoRedo({
|
|
1121
|
+
unitID: unitId,
|
|
1122
|
+
undoMutations: [{
|
|
1123
|
+
id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
|
|
1124
|
+
params: {
|
|
1125
|
+
op: undo,
|
|
1126
|
+
unitId,
|
|
1127
|
+
subUnitId,
|
|
1128
|
+
objects: this._invertGroupOperationObjects(objects, type),
|
|
1129
|
+
type: inverseType
|
|
1130
|
+
}
|
|
1131
|
+
}],
|
|
1132
|
+
redoMutations: [{
|
|
1133
|
+
id: _univerjs_sheets_drawing.SetDrawingApplyMutation.id,
|
|
1134
|
+
params: {
|
|
1135
|
+
op: redo,
|
|
1136
|
+
unitId,
|
|
1137
|
+
subUnitId,
|
|
1138
|
+
objects,
|
|
1139
|
+
type
|
|
1140
|
+
}
|
|
1141
|
+
}]
|
|
1142
|
+
});
|
|
1143
|
+
return true;
|
|
1144
|
+
}
|
|
1145
|
+
return false;
|
|
1146
|
+
}
|
|
1147
|
+
_invertGroupOperationObjects(groupParams, type) {
|
|
1148
|
+
return type === _univerjs_sheets_drawing.DrawingApplyType.GROUP ? groupParams.map((groupParam) => {
|
|
1149
|
+
const { parent, children } = groupParam;
|
|
1150
|
+
const groupTransform = parent.transform || {
|
|
1151
|
+
width: 0,
|
|
1152
|
+
height: 0
|
|
1153
|
+
};
|
|
1154
|
+
return {
|
|
1155
|
+
parent: {
|
|
1156
|
+
...parent,
|
|
1157
|
+
transform: {
|
|
1158
|
+
left: 0,
|
|
1159
|
+
top: 0
|
|
1160
|
+
}
|
|
1161
|
+
},
|
|
1162
|
+
children: children.map((child) => ({
|
|
1163
|
+
...child,
|
|
1164
|
+
transform: (0, _univerjs_engine_render.transformObjectOutOfGroup)(child.transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0, parent.groupBaseBound),
|
|
1165
|
+
groupId: void 0
|
|
1166
|
+
}))
|
|
1167
|
+
};
|
|
1168
|
+
}) : groupParams.map((groupParam) => {
|
|
1169
|
+
const { parent, children } = groupParam;
|
|
1170
|
+
const groupTransform = (0, _univerjs_engine_render.getGroupState)(0, 0, children.map((child) => child.transform || {}));
|
|
1171
|
+
return {
|
|
1172
|
+
parent: {
|
|
1173
|
+
...parent,
|
|
1174
|
+
transform: groupTransform
|
|
1175
|
+
},
|
|
1176
|
+
children: children.map((child) => ({
|
|
1177
|
+
...child,
|
|
1178
|
+
groupId: parent.drawingId
|
|
1179
|
+
}))
|
|
1180
|
+
};
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
982
1183
|
};
|
|
983
1184
|
_univerjs_sheets_facade.FWorksheet.extend(FWorksheetDrawingMixin);
|
|
984
1185
|
|
package/lib/cjs/index.js
CHANGED
|
@@ -406,7 +406,7 @@ const SetSheetDrawingCommand = {
|
|
|
406
406
|
};
|
|
407
407
|
|
|
408
408
|
//#endregion
|
|
409
|
-
//#region \0@oxc-project+runtime@0.
|
|
409
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
|
|
410
410
|
function __decorateParam(paramIndex, decorator) {
|
|
411
411
|
return function(target, key) {
|
|
412
412
|
decorator(target, key, paramIndex);
|
|
@@ -414,7 +414,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
414
414
|
}
|
|
415
415
|
|
|
416
416
|
//#endregion
|
|
417
|
-
//#region \0@oxc-project+runtime@0.
|
|
417
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
|
|
418
418
|
function __decorate(decorators, target, key, desc) {
|
|
419
419
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
420
420
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -584,7 +584,7 @@ SheetsDrawingLoadController = __decorate([
|
|
|
584
584
|
//#endregion
|
|
585
585
|
//#region package.json
|
|
586
586
|
var name = "@univerjs/sheets-drawing";
|
|
587
|
-
var version = "0.
|
|
587
|
+
var version = "1.0.0-alpha.1";
|
|
588
588
|
|
|
589
589
|
//#endregion
|
|
590
590
|
//#region src/config/config.ts
|
|
@@ -608,7 +608,7 @@ const configSymbol = Symbol(SHEETS_DRAWING_PLUGIN_CONFIG_KEY);
|
|
|
608
608
|
const defaultPluginConfig = {};
|
|
609
609
|
|
|
610
610
|
//#endregion
|
|
611
|
-
//#region \0@oxc-project+runtime@0.
|
|
611
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
|
|
612
612
|
function _typeof(o) {
|
|
613
613
|
"@babel/helpers - typeof";
|
|
614
614
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -619,7 +619,7 @@ function _typeof(o) {
|
|
|
619
619
|
}
|
|
620
620
|
|
|
621
621
|
//#endregion
|
|
622
|
-
//#region \0@oxc-project+runtime@0.
|
|
622
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
|
|
623
623
|
function toPrimitive(t, r) {
|
|
624
624
|
if ("object" != _typeof(t) || !t) return t;
|
|
625
625
|
var e = t[Symbol.toPrimitive];
|
|
@@ -632,14 +632,14 @@ function toPrimitive(t, r) {
|
|
|
632
632
|
}
|
|
633
633
|
|
|
634
634
|
//#endregion
|
|
635
|
-
//#region \0@oxc-project+runtime@0.
|
|
635
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
|
|
636
636
|
function toPropertyKey(t) {
|
|
637
637
|
var i = toPrimitive(t, "string");
|
|
638
638
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
639
639
|
}
|
|
640
640
|
|
|
641
641
|
//#endregion
|
|
642
|
-
//#region \0@oxc-project+runtime@0.
|
|
642
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
|
|
643
643
|
function _defineProperty(e, r, t) {
|
|
644
644
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
645
645
|
value: t,
|
package/lib/es/facade.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { ArrangeTypeEnum, CanceledError, DrawingTypeEnum, ICommandService, ImageSourceType, Inject, Injector, generateRandomId } from "@univerjs/core";
|
|
1
|
+
import { ArrangeTypeEnum, CanceledError, DrawingTypeEnum, ICommandService, IUndoRedoService, ImageSourceType, Inject, Injector, generateRandomId } from "@univerjs/core";
|
|
2
2
|
import { FBase, FEnum, FEventName, FUniver } from "@univerjs/core/facade";
|
|
3
3
|
import { IDrawingManagerService, SetDrawingSelectedOperation, getImageSize } from "@univerjs/drawing";
|
|
4
4
|
import { SheetSkeletonService, convertPositionCellToSheetOverGrid, convertPositionSheetOverGridToAbsolute } from "@univerjs/sheets";
|
|
5
|
-
import { ISheetDrawingService, InsertSheetDrawingCommand, RemoveSheetDrawingCommand, SetDrawingArrangeCommand, SetSheetDrawingCommand, SheetDrawingAnchorType, transformToAxisAlignPosition } from "@univerjs/sheets-drawing";
|
|
5
|
+
import { DrawingApplyType, ISheetDrawingService, InsertSheetDrawingCommand, RemoveSheetDrawingCommand, SetDrawingApplyMutation, SetDrawingArrangeCommand, SetSheetDrawingCommand, SheetDrawingAnchorType, transformToAxisAlignPosition } from "@univerjs/sheets-drawing";
|
|
6
|
+
import { getGroupState, transformObjectOutOfGroup } from "@univerjs/engine-render";
|
|
6
7
|
import { FWorksheet } from "@univerjs/sheets/facade";
|
|
7
8
|
|
|
8
|
-
//#region \0@oxc-project+runtime@0.
|
|
9
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
|
|
9
10
|
function _typeof(o) {
|
|
10
11
|
"@babel/helpers - typeof";
|
|
11
12
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -16,7 +17,7 @@ function _typeof(o) {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
//#endregion
|
|
19
|
-
//#region \0@oxc-project+runtime@0.
|
|
20
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
|
|
20
21
|
function toPrimitive(t, r) {
|
|
21
22
|
if ("object" != _typeof(t) || !t) return t;
|
|
22
23
|
var e = t[Symbol.toPrimitive];
|
|
@@ -29,14 +30,14 @@ function toPrimitive(t, r) {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
//#endregion
|
|
32
|
-
//#region \0@oxc-project+runtime@0.
|
|
33
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
|
|
33
34
|
function toPropertyKey(t) {
|
|
34
35
|
var i = toPrimitive(t, "string");
|
|
35
36
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
//#endregion
|
|
39
|
-
//#region \0@oxc-project+runtime@0.
|
|
40
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
|
|
40
41
|
function _defineProperty(e, r, t) {
|
|
41
42
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
42
43
|
value: t,
|
|
@@ -47,7 +48,7 @@ function _defineProperty(e, r, t) {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
//#endregion
|
|
50
|
-
//#region \0@oxc-project+runtime@0.
|
|
51
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
|
|
51
52
|
function __decorateParam(paramIndex, decorator) {
|
|
52
53
|
return function(target, key) {
|
|
53
54
|
decorator(target, key, paramIndex);
|
|
@@ -55,7 +56,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
//#endregion
|
|
58
|
-
//#region \0@oxc-project+runtime@0.
|
|
59
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
|
|
59
60
|
function __decorate(decorators, target, key, desc) {
|
|
60
61
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
61
62
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -890,6 +891,11 @@ FOverGridImage = __decorate([__decorateParam(1, ICommandService), __decoratePara
|
|
|
890
891
|
|
|
891
892
|
//#endregion
|
|
892
893
|
//#region src/facade/f-worksheet.ts
|
|
894
|
+
const GROUPABLE_DRAWING_TYPES = /* @__PURE__ */ new Set([
|
|
895
|
+
DrawingTypeEnum.DRAWING_IMAGE,
|
|
896
|
+
DrawingTypeEnum.DRAWING_SHAPE,
|
|
897
|
+
DrawingTypeEnum.DRAWING_GROUP
|
|
898
|
+
]);
|
|
893
899
|
var FWorksheetDrawingMixin = class extends FWorksheet {
|
|
894
900
|
async insertImage(url, column, row, offsetX, offsetY) {
|
|
895
901
|
const imageBuilder = this.newOverGridImage();
|
|
@@ -979,6 +985,201 @@ var FWorksheetDrawingMixin = class extends FWorksheet {
|
|
|
979
985
|
const subUnitId = this.getSheetId();
|
|
980
986
|
return this._injector.createInstance(FOverGridImageBuilder, unitId, subUnitId);
|
|
981
987
|
}
|
|
988
|
+
groupDrawings(drawingIds, groupId = generateRandomId(10)) {
|
|
989
|
+
const uniqueDrawingIds = Array.from(new Set(drawingIds));
|
|
990
|
+
if (uniqueDrawingIds.length < 2) return null;
|
|
991
|
+
const unitId = this._fWorkbook.getId();
|
|
992
|
+
const subUnitId = this.getSheetId();
|
|
993
|
+
const sheetDrawingService = this._injector.get(ISheetDrawingService);
|
|
994
|
+
if (sheetDrawingService.getDrawingByParam({
|
|
995
|
+
unitId,
|
|
996
|
+
subUnitId,
|
|
997
|
+
drawingId: groupId
|
|
998
|
+
})) return null;
|
|
999
|
+
const drawings = uniqueDrawingIds.map((drawingId) => sheetDrawingService.getDrawingByParam({
|
|
1000
|
+
unitId,
|
|
1001
|
+
subUnitId,
|
|
1002
|
+
drawingId
|
|
1003
|
+
}));
|
|
1004
|
+
if (drawings.some((drawing) => !drawing)) return null;
|
|
1005
|
+
if (drawings.some((drawing) => !GROUPABLE_DRAWING_TYPES.has(drawing.drawingType))) return null;
|
|
1006
|
+
const validDrawings = drawings;
|
|
1007
|
+
const groupTransform = getGroupState(0, 0, validDrawings.map((drawing) => drawing.transform || {}));
|
|
1008
|
+
const groupParam = {
|
|
1009
|
+
unitId,
|
|
1010
|
+
subUnitId,
|
|
1011
|
+
drawingId: groupId,
|
|
1012
|
+
drawingType: DrawingTypeEnum.DRAWING_GROUP,
|
|
1013
|
+
transform: groupTransform,
|
|
1014
|
+
groupBaseBound: {
|
|
1015
|
+
left: groupTransform.left,
|
|
1016
|
+
top: groupTransform.top,
|
|
1017
|
+
width: groupTransform.width,
|
|
1018
|
+
height: groupTransform.height
|
|
1019
|
+
}
|
|
1020
|
+
};
|
|
1021
|
+
const children = validDrawings.map((drawing) => ({
|
|
1022
|
+
...drawing,
|
|
1023
|
+
groupId
|
|
1024
|
+
}));
|
|
1025
|
+
return this._applyGroupDrawingOperation([{
|
|
1026
|
+
parent: groupParam,
|
|
1027
|
+
children
|
|
1028
|
+
}], DrawingApplyType.GROUP) ? groupId : null;
|
|
1029
|
+
}
|
|
1030
|
+
ungroupDrawings(groupIds) {
|
|
1031
|
+
const unitId = this._fWorkbook.getId();
|
|
1032
|
+
const subUnitId = this.getSheetId();
|
|
1033
|
+
const sheetDrawingService = this._injector.get(ISheetDrawingService);
|
|
1034
|
+
const groupParams = [];
|
|
1035
|
+
for (const groupId of groupIds) {
|
|
1036
|
+
const groupDrawing = sheetDrawingService.getDrawingByParam({
|
|
1037
|
+
unitId,
|
|
1038
|
+
subUnitId,
|
|
1039
|
+
drawingId: groupId
|
|
1040
|
+
});
|
|
1041
|
+
if (!groupDrawing || groupDrawing.drawingType !== DrawingTypeEnum.DRAWING_GROUP) continue;
|
|
1042
|
+
const groupTransform = groupDrawing.transform || {
|
|
1043
|
+
width: 0,
|
|
1044
|
+
height: 0
|
|
1045
|
+
};
|
|
1046
|
+
const children = sheetDrawingService.getDrawingsByGroup({
|
|
1047
|
+
unitId,
|
|
1048
|
+
subUnitId,
|
|
1049
|
+
drawingId: groupId
|
|
1050
|
+
}).map((drawing) => {
|
|
1051
|
+
const newTransform = transformObjectOutOfGroup(drawing.transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0, groupDrawing.groupBaseBound);
|
|
1052
|
+
return {
|
|
1053
|
+
...drawing,
|
|
1054
|
+
transform: {
|
|
1055
|
+
...drawing.transform,
|
|
1056
|
+
...newTransform
|
|
1057
|
+
},
|
|
1058
|
+
groupId: void 0
|
|
1059
|
+
};
|
|
1060
|
+
});
|
|
1061
|
+
if (children.length > 0) groupParams.push({
|
|
1062
|
+
parent: groupDrawing,
|
|
1063
|
+
children
|
|
1064
|
+
});
|
|
1065
|
+
}
|
|
1066
|
+
return this._applyGroupDrawingOperation(groupParams, DrawingApplyType.UNGROUP);
|
|
1067
|
+
}
|
|
1068
|
+
getDrawingGroupChildren(groupId, recursive = false) {
|
|
1069
|
+
const unitId = this._fWorkbook.getId();
|
|
1070
|
+
const subUnitId = this.getSheetId();
|
|
1071
|
+
const sheetDrawingService = this._injector.get(ISheetDrawingService);
|
|
1072
|
+
if (!recursive) return sheetDrawingService.getDrawingsByGroup({
|
|
1073
|
+
unitId,
|
|
1074
|
+
subUnitId,
|
|
1075
|
+
drawingId: groupId
|
|
1076
|
+
});
|
|
1077
|
+
const nested = sheetDrawingService.getDrawingsByGroupNested({
|
|
1078
|
+
unitId,
|
|
1079
|
+
subUnitId,
|
|
1080
|
+
drawingId: groupId
|
|
1081
|
+
});
|
|
1082
|
+
if (!nested) return [];
|
|
1083
|
+
return [...nested.flatChildren || [], ...nested.groups.filter((group) => group.drawingId !== groupId)];
|
|
1084
|
+
}
|
|
1085
|
+
getDrawingParentGroup(drawingId) {
|
|
1086
|
+
const unitId = this._fWorkbook.getId();
|
|
1087
|
+
const subUnitId = this.getSheetId();
|
|
1088
|
+
const sheetDrawingService = this._injector.get(ISheetDrawingService);
|
|
1089
|
+
const drawing = sheetDrawingService.getDrawingByParam({
|
|
1090
|
+
unitId,
|
|
1091
|
+
subUnitId,
|
|
1092
|
+
drawingId
|
|
1093
|
+
});
|
|
1094
|
+
if (!(drawing === null || drawing === void 0 ? void 0 : drawing.groupId)) return null;
|
|
1095
|
+
const groupDrawing = sheetDrawingService.getDrawingByParam({
|
|
1096
|
+
unitId,
|
|
1097
|
+
subUnitId,
|
|
1098
|
+
drawingId: drawing.groupId
|
|
1099
|
+
});
|
|
1100
|
+
if (!groupDrawing || groupDrawing.drawingType !== DrawingTypeEnum.DRAWING_GROUP) return null;
|
|
1101
|
+
return groupDrawing;
|
|
1102
|
+
}
|
|
1103
|
+
isDrawingGrouped(drawingId) {
|
|
1104
|
+
return this.getDrawingParentGroup(drawingId) !== null;
|
|
1105
|
+
}
|
|
1106
|
+
_applyGroupDrawingOperation(groupParams, type) {
|
|
1107
|
+
if (groupParams.length === 0) return false;
|
|
1108
|
+
const sheetDrawingService = this._injector.get(ISheetDrawingService);
|
|
1109
|
+
const commandService = this._commandService;
|
|
1110
|
+
const undoRedoService = this._injector.get(IUndoRedoService);
|
|
1111
|
+
const { unitId, subUnitId, undo, redo, objects } = type === DrawingApplyType.GROUP ? sheetDrawingService.getGroupDrawingOp(groupParams) : sheetDrawingService.getUngroupDrawingOp(groupParams);
|
|
1112
|
+
if (commandService.syncExecuteCommand(SetDrawingApplyMutation.id, {
|
|
1113
|
+
op: redo,
|
|
1114
|
+
unitId,
|
|
1115
|
+
subUnitId,
|
|
1116
|
+
objects,
|
|
1117
|
+
type
|
|
1118
|
+
})) {
|
|
1119
|
+
const inverseType = type === DrawingApplyType.GROUP ? DrawingApplyType.UNGROUP : DrawingApplyType.GROUP;
|
|
1120
|
+
undoRedoService.pushUndoRedo({
|
|
1121
|
+
unitID: unitId,
|
|
1122
|
+
undoMutations: [{
|
|
1123
|
+
id: SetDrawingApplyMutation.id,
|
|
1124
|
+
params: {
|
|
1125
|
+
op: undo,
|
|
1126
|
+
unitId,
|
|
1127
|
+
subUnitId,
|
|
1128
|
+
objects: this._invertGroupOperationObjects(objects, type),
|
|
1129
|
+
type: inverseType
|
|
1130
|
+
}
|
|
1131
|
+
}],
|
|
1132
|
+
redoMutations: [{
|
|
1133
|
+
id: SetDrawingApplyMutation.id,
|
|
1134
|
+
params: {
|
|
1135
|
+
op: redo,
|
|
1136
|
+
unitId,
|
|
1137
|
+
subUnitId,
|
|
1138
|
+
objects,
|
|
1139
|
+
type
|
|
1140
|
+
}
|
|
1141
|
+
}]
|
|
1142
|
+
});
|
|
1143
|
+
return true;
|
|
1144
|
+
}
|
|
1145
|
+
return false;
|
|
1146
|
+
}
|
|
1147
|
+
_invertGroupOperationObjects(groupParams, type) {
|
|
1148
|
+
return type === DrawingApplyType.GROUP ? groupParams.map((groupParam) => {
|
|
1149
|
+
const { parent, children } = groupParam;
|
|
1150
|
+
const groupTransform = parent.transform || {
|
|
1151
|
+
width: 0,
|
|
1152
|
+
height: 0
|
|
1153
|
+
};
|
|
1154
|
+
return {
|
|
1155
|
+
parent: {
|
|
1156
|
+
...parent,
|
|
1157
|
+
transform: {
|
|
1158
|
+
left: 0,
|
|
1159
|
+
top: 0
|
|
1160
|
+
}
|
|
1161
|
+
},
|
|
1162
|
+
children: children.map((child) => ({
|
|
1163
|
+
...child,
|
|
1164
|
+
transform: transformObjectOutOfGroup(child.transform || {}, groupTransform, groupTransform.width || 0, groupTransform.height || 0, parent.groupBaseBound),
|
|
1165
|
+
groupId: void 0
|
|
1166
|
+
}))
|
|
1167
|
+
};
|
|
1168
|
+
}) : groupParams.map((groupParam) => {
|
|
1169
|
+
const { parent, children } = groupParam;
|
|
1170
|
+
const groupTransform = getGroupState(0, 0, children.map((child) => child.transform || {}));
|
|
1171
|
+
return {
|
|
1172
|
+
parent: {
|
|
1173
|
+
...parent,
|
|
1174
|
+
transform: groupTransform
|
|
1175
|
+
},
|
|
1176
|
+
children: children.map((child) => ({
|
|
1177
|
+
...child,
|
|
1178
|
+
groupId: parent.drawingId
|
|
1179
|
+
}))
|
|
1180
|
+
};
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
982
1183
|
};
|
|
983
1184
|
FWorksheet.extend(FWorksheetDrawingMixin);
|
|
984
1185
|
|
package/lib/es/index.js
CHANGED
|
@@ -405,7 +405,7 @@ const SetSheetDrawingCommand = {
|
|
|
405
405
|
};
|
|
406
406
|
|
|
407
407
|
//#endregion
|
|
408
|
-
//#region \0@oxc-project+runtime@0.
|
|
408
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorateParam.js
|
|
409
409
|
function __decorateParam(paramIndex, decorator) {
|
|
410
410
|
return function(target, key) {
|
|
411
411
|
decorator(target, key, paramIndex);
|
|
@@ -413,7 +413,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
413
413
|
}
|
|
414
414
|
|
|
415
415
|
//#endregion
|
|
416
|
-
//#region \0@oxc-project+runtime@0.
|
|
416
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/decorate.js
|
|
417
417
|
function __decorate(decorators, target, key, desc) {
|
|
418
418
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
419
419
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -583,7 +583,7 @@ SheetsDrawingLoadController = __decorate([
|
|
|
583
583
|
//#endregion
|
|
584
584
|
//#region package.json
|
|
585
585
|
var name = "@univerjs/sheets-drawing";
|
|
586
|
-
var version = "0.
|
|
586
|
+
var version = "1.0.0-alpha.1";
|
|
587
587
|
|
|
588
588
|
//#endregion
|
|
589
589
|
//#region src/config/config.ts
|
|
@@ -607,7 +607,7 @@ const configSymbol = Symbol(SHEETS_DRAWING_PLUGIN_CONFIG_KEY);
|
|
|
607
607
|
const defaultPluginConfig = {};
|
|
608
608
|
|
|
609
609
|
//#endregion
|
|
610
|
-
//#region \0@oxc-project+runtime@0.
|
|
610
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/typeof.js
|
|
611
611
|
function _typeof(o) {
|
|
612
612
|
"@babel/helpers - typeof";
|
|
613
613
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -618,7 +618,7 @@ function _typeof(o) {
|
|
|
618
618
|
}
|
|
619
619
|
|
|
620
620
|
//#endregion
|
|
621
|
-
//#region \0@oxc-project+runtime@0.
|
|
621
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPrimitive.js
|
|
622
622
|
function toPrimitive(t, r) {
|
|
623
623
|
if ("object" != _typeof(t) || !t) return t;
|
|
624
624
|
var e = t[Symbol.toPrimitive];
|
|
@@ -631,14 +631,14 @@ function toPrimitive(t, r) {
|
|
|
631
631
|
}
|
|
632
632
|
|
|
633
633
|
//#endregion
|
|
634
|
-
//#region \0@oxc-project+runtime@0.
|
|
634
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/toPropertyKey.js
|
|
635
635
|
function toPropertyKey(t) {
|
|
636
636
|
var i = toPrimitive(t, "string");
|
|
637
637
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
638
638
|
}
|
|
639
639
|
|
|
640
640
|
//#endregion
|
|
641
|
-
//#region \0@oxc-project+runtime@0.
|
|
641
|
+
//#region \0@oxc-project+runtime@0.137.0/helpers/esm/defineProperty.js
|
|
642
642
|
function _defineProperty(e, r, t) {
|
|
643
643
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
644
644
|
value: t,
|