@univerjs/sheets-drawing 0.24.0 → 0.25.0-insiders.20260608-e4336f7

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/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.129.0/helpers/typeof.js
9
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/toPrimitive.js
20
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/toPropertyKey.js
33
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/defineProperty.js
40
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/decorateParam.js
51
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/decorate.js
59
+ //#region \0@oxc-project+runtime@0.134.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);
@@ -173,7 +174,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
173
174
  * // create a new image builder and set initial image configuration.
174
175
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
175
176
  * const fWorkbook = univerAPI.getActiveWorkbook();
176
- * const fWorksheet = fWorkbook.getActiveSheet();
177
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
178
+ * if (!fWorksheet) return;
177
179
  * const image = await fWorksheet.newOverGridImage()
178
180
  * .setImage({
179
181
  * drawingId: '123456',
@@ -236,7 +238,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
236
238
  * @example
237
239
  * ```ts
238
240
  * const fWorkbook = univerAPI.getActiveWorkbook();
239
- * const fWorksheet = fWorkbook.getActiveSheet();
241
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
242
+ * if (!fWorksheet) return;
240
243
  * const images = fWorksheet.getImages();
241
244
  * images.forEach((image) => {
242
245
  * console.log(image, image.toBuilder().getSource());
@@ -252,7 +255,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
252
255
  * @example
253
256
  * ```ts
254
257
  * const fWorkbook = univerAPI.getActiveWorkbook();
255
- * const fWorksheet = fWorkbook.getActiveSheet();
258
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
259
+ * if (!fWorksheet) return;
256
260
  * const images = fWorksheet.getImages();
257
261
  * images.forEach((image) => {
258
262
  * console.log(image, image.toBuilder().getSourceType());
@@ -271,7 +275,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
271
275
  * // create a new image builder and set image source.
272
276
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
273
277
  * const fWorkbook = univerAPI.getActiveWorkbook();
274
- * const fWorksheet = fWorkbook.getActiveSheet();
278
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
279
+ * if (!fWorksheet) return;
275
280
  * const image = await fWorksheet.newOverGridImage()
276
281
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
277
282
  * .setColumn(5)
@@ -293,7 +298,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
293
298
  * // create a new image builder and set image source.
294
299
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell.
295
300
  * const fWorkbook = univerAPI.getActiveWorkbook();
296
- * const fWorksheet = fWorkbook.getActiveSheet();
301
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
302
+ * if (!fWorksheet) return;
297
303
  * const image = await fWorksheet.newOverGridImage()
298
304
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
299
305
  * .setColumn(5)
@@ -315,7 +321,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
315
321
  * // create a new image builder and set image source.
316
322
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell and horizontal offset is 10px.
317
323
  * const fWorkbook = univerAPI.getActiveWorkbook();
318
- * const fWorksheet = fWorkbook.getActiveSheet();
324
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
325
+ * if (!fWorksheet) return;
319
326
  * const image = await fWorksheet.newOverGridImage()
320
327
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
321
328
  * .setColumn(5)
@@ -338,7 +345,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
338
345
  * // create a new image builder and set image source.
339
346
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell and vertical offset is 10px.
340
347
  * const fWorkbook = univerAPI.getActiveWorkbook();
341
- * const fWorksheet = fWorkbook.getActiveSheet();
348
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
349
+ * if (!fWorksheet) return;
342
350
  * const image = await fWorksheet.newOverGridImage()
343
351
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
344
352
  * .setColumn(5)
@@ -361,7 +369,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
361
369
  * // create a new image builder and set image source.
362
370
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 120px and height is 50px.
363
371
  * const fWorkbook = univerAPI.getActiveWorkbook();
364
- * const fWorksheet = fWorkbook.getActiveSheet();
372
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
373
+ * if (!fWorksheet) return;
365
374
  * const image = await fWorksheet.newOverGridImage()
366
375
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
367
376
  * .setColumn(5)
@@ -385,7 +394,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
385
394
  * // create a new image builder and set image source.
386
395
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 120px and height is 50px.
387
396
  * const fWorkbook = univerAPI.getActiveWorkbook();
388
- * const fWorksheet = fWorkbook.getActiveSheet();
397
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
398
+ * if (!fWorksheet) return;
389
399
  * const image = await fWorksheet.newOverGridImage()
390
400
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
391
401
  * .setColumn(5)
@@ -407,7 +417,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
407
417
  * @example
408
418
  * ```ts
409
419
  * const fWorkbook = univerAPI.getActiveWorkbook();
410
- * const fWorksheet = fWorkbook.getActiveSheet();
420
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
421
+ * if (!fWorksheet) return;
411
422
  *
412
423
  * // image1 position is start from A6 cell, anchor type is Position.
413
424
  * // Only the position of the drawing follows the cell changes. When rows or columns are inserted or deleted, the position of the drawing changes, but the size remains the same.
@@ -459,7 +470,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
459
470
  * // create a new image builder and set image source.
460
471
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, top crop is 10px.
461
472
  * const fWorkbook = univerAPI.getActiveWorkbook();
462
- * const fWorksheet = fWorkbook.getActiveSheet();
473
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
474
+ * if (!fWorksheet) return;
463
475
  * const image = await fWorksheet.newOverGridImage()
464
476
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
465
477
  * .setColumn(5)
@@ -483,7 +495,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
483
495
  * // create a new image builder and set image source.
484
496
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, left crop is 10px.
485
497
  * const fWorkbook = univerAPI.getActiveWorkbook();
486
- * const fWorksheet = fWorkbook.getActiveSheet();
498
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
499
+ * if (!fWorksheet) return;
487
500
  * const image = await fWorksheet.newOverGridImage()
488
501
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
489
502
  * .setColumn(5)
@@ -507,7 +520,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
507
520
  * // create a new image builder and set image source.
508
521
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, bottom crop is 10px.
509
522
  * const fWorkbook = univerAPI.getActiveWorkbook();
510
- * const fWorksheet = fWorkbook.getActiveSheet();
523
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
524
+ * if (!fWorksheet) return;
511
525
  * const image = await fWorksheet.newOverGridImage()
512
526
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
513
527
  * .setColumn(5)
@@ -531,7 +545,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
531
545
  * // create a new image builder and set image source.
532
546
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, right crop is 10px.
533
547
  * const fWorkbook = univerAPI.getActiveWorkbook();
534
- * const fWorksheet = fWorkbook.getActiveSheet();
548
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
549
+ * if (!fWorksheet) return;
535
550
  * const image = await fWorksheet.newOverGridImage()
536
551
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
537
552
  * .setColumn(5)
@@ -563,7 +578,8 @@ let FOverGridImageBuilder = class FOverGridImageBuilder {
563
578
  * // create a new image builder and set image source.
564
579
  * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, rotate 90 degrees.
565
580
  * const fWorkbook = univerAPI.getActiveWorkbook();
566
- * const fWorksheet = fWorkbook.getActiveSheet();
581
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
582
+ * if (!fWorksheet) return;
567
583
  * const image = await fWorksheet.newOverGridImage()
568
584
  * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
569
585
  * .setColumn(5)
@@ -611,7 +627,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
611
627
  * @example
612
628
  * ```ts
613
629
  * const fWorkbook = univerAPI.getActiveWorkbook();
614
- * const fWorksheet = fWorkbook.getActiveSheet();
630
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
631
+ * if (!fWorksheet) return;
615
632
  * const images = fWorksheet.getImages();
616
633
  * images.forEach((image) => {
617
634
  * console.log(image, image.getId());
@@ -627,7 +644,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
627
644
  * @example
628
645
  * ```ts
629
646
  * const fWorkbook = univerAPI.getActiveWorkbook();
630
- * const fWorksheet = fWorkbook.getActiveSheet();
647
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
648
+ * if (!fWorksheet) return;
631
649
  * const images = fWorksheet.getImages();
632
650
  * images.forEach((image) => {
633
651
  * console.log(image, image.getType());
@@ -643,7 +661,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
643
661
  * @example
644
662
  * ```ts
645
663
  * const fWorkbook = univerAPI.getActiveWorkbook();
646
- * const fWorksheet = fWorkbook.getActiveSheet();
664
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
665
+ * if (!fWorksheet) return;
647
666
  * const image = fWorksheet.getImages()[0];
648
667
  * const result = image?.remove();
649
668
  * console.log(result);
@@ -661,7 +680,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
661
680
  * @example
662
681
  * ```ts
663
682
  * const fWorkbook = univerAPI.getActiveWorkbook();
664
- * const fWorksheet = fWorkbook.getActiveSheet();
683
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
684
+ * if (!fWorksheet) return;
665
685
  * const images = fWorksheet.getImages();
666
686
  * images.forEach((image) => {
667
687
  * console.log(image, image.toBuilder().getSource());
@@ -703,7 +723,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
703
723
  * ```ts
704
724
  * // set the image width 120px and height 50px
705
725
  * const fWorkbook = univerAPI.getActiveWorkbook();
706
- * const fWorksheet = fWorkbook.getActiveSheet();
726
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
727
+ * if (!fWorksheet) return;
707
728
  * const image = fWorksheet.getImages()[0];
708
729
  * const result = image?.setSizeAsync(120, 50);
709
730
  * console.log(result);
@@ -730,7 +751,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
730
751
  * ```ts
731
752
  * // set the crop of the image, top 10px, left 10px, bottom 10px, right 10px.
732
753
  * const fWorkbook = univerAPI.getActiveWorkbook();
733
- * const fWorksheet = fWorkbook.getActiveSheet();
754
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
755
+ * if (!fWorksheet) return;
734
756
  * const image = fWorksheet.getImages()[0];
735
757
  * const result = image?.setCrop(10, 10, 10, 10);
736
758
  * console.log(result);
@@ -760,7 +782,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
760
782
  * ```ts
761
783
  * // set 90 degrees rotation of the image
762
784
  * const fWorkbook = univerAPI.getActiveWorkbook();
763
- * const fWorksheet = fWorkbook.getActiveSheet();
785
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
786
+ * if (!fWorksheet) return;
764
787
  * const image = fWorksheet.getImages()[0];
765
788
  * const result = image?.setRotate(90);
766
789
  * console.log(result);
@@ -785,7 +808,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
785
808
  * @example
786
809
  * ```ts
787
810
  * const fWorkbook = univerAPI.getActiveWorkbook();
788
- * const fWorksheet = fWorkbook.getActiveSheet();
811
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
812
+ * if (!fWorksheet) return;
789
813
  * const image = fWorksheet.getImages()[0];
790
814
  * const result = image?.setForward();
791
815
  * console.log(result);
@@ -805,7 +829,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
805
829
  * @example
806
830
  * ```ts
807
831
  * const fWorkbook = univerAPI.getActiveWorkbook();
808
- * const fWorksheet = fWorkbook.getActiveSheet();
832
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
833
+ * if (!fWorksheet) return;
809
834
  * const image = fWorksheet.getImages()[0];
810
835
  * const result = image?.setBackward();
811
836
  * console.log(result);
@@ -825,7 +850,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
825
850
  * @example
826
851
  * ```ts
827
852
  * const fWorkbook = univerAPI.getActiveWorkbook();
828
- * const fWorksheet = fWorkbook.getActiveSheet();
853
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
854
+ * if (!fWorksheet) return;
829
855
  * const image = fWorksheet.getImages()[0];
830
856
  * const result = image?.setBack();
831
857
  * console.log(result);
@@ -845,7 +871,8 @@ let FOverGridImage = class FOverGridImage extends FBase {
845
871
  * @example
846
872
  * ```ts
847
873
  * const fWorkbook = univerAPI.getActiveWorkbook();
848
- * const fWorksheet = fWorkbook.getActiveSheet();
874
+ * const fWorksheet = fWorkbook.getSheetByName('Sheet1');
875
+ * if (!fWorksheet) return;
849
876
  * const image = fWorksheet.getImages()[0];
850
877
  * const result = image?.setFront();
851
878
  * console.log(result);
@@ -864,6 +891,11 @@ FOverGridImage = __decorate([__decorateParam(1, ICommandService), __decoratePara
864
891
 
865
892
  //#endregion
866
893
  //#region src/facade/f-worksheet.ts
894
+ const GROUPABLE_DRAWING_TYPES = new Set([
895
+ DrawingTypeEnum.DRAWING_IMAGE,
896
+ DrawingTypeEnum.DRAWING_SHAPE,
897
+ DrawingTypeEnum.DRAWING_GROUP
898
+ ]);
867
899
  var FWorksheetDrawingMixin = class extends FWorksheet {
868
900
  async insertImage(url, column, row, offsetX, offsetY) {
869
901
  const imageBuilder = this.newOverGridImage();
@@ -953,6 +985,201 @@ var FWorksheetDrawingMixin = class extends FWorksheet {
953
985
  const subUnitId = this.getSheetId();
954
986
  return this._injector.createInstance(FOverGridImageBuilder, unitId, subUnitId);
955
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
+ }
956
1183
  };
957
1184
  FWorksheet.extend(FWorksheetDrawingMixin);
958
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.129.0/helpers/decorateParam.js
408
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/decorate.js
416
+ //#region \0@oxc-project+runtime@0.134.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.24.0";
586
+ var version = "0.25.0-insiders.20260608-e4336f7";
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.129.0/helpers/typeof.js
610
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/toPrimitive.js
621
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/toPropertyKey.js
634
+ //#region \0@oxc-project+runtime@0.134.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.129.0/helpers/defineProperty.js
641
+ //#region \0@oxc-project+runtime@0.134.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,