@univerjs/sheets-drawing 1.0.0-rc.0 → 1.0.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 +65 -16
- package/lib/cjs/index.js +165 -96
- package/lib/es/facade.js +66 -17
- package/lib/es/index.js +164 -97
- package/lib/facade.js +66 -17
- package/lib/index.js +164 -97
- package/lib/types/commands/commands/set-worksheet-background-image.command.d.ts +22 -0
- package/lib/types/commands/mutations/set-worksheet-background-image.mutation.d.ts +22 -0
- package/lib/types/facade/f-over-grid-image.d.ts +36 -12
- package/lib/types/facade/f-worksheet.d.ts +25 -5
- package/lib/types/index.d.ts +5 -1
- package/lib/types/services/sheet-drawing.service.d.ts +7 -2
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
|
@@ -458,8 +458,32 @@ export declare class FOverGridImageBuilder {
|
|
|
458
458
|
* ```
|
|
459
459
|
*/
|
|
460
460
|
setRotate(angle: number): FOverGridImageBuilder;
|
|
461
|
+
/**
|
|
462
|
+
* Sets the workbook unit ID of the image to build.
|
|
463
|
+
* @param {string} unitId The target workbook unit ID.
|
|
464
|
+
* @returns {FOverGridImageBuilder} This builder, for chaining.
|
|
465
|
+
*/
|
|
461
466
|
setUnitId(unitId: string): FOverGridImageBuilder;
|
|
467
|
+
/**
|
|
468
|
+
* Sets the worksheet ID of the image to build.
|
|
469
|
+
* @param {string} subUnitId The target worksheet ID.
|
|
470
|
+
* @returns {FOverGridImageBuilder} This builder, for chaining.
|
|
471
|
+
*/
|
|
462
472
|
setSubUnitId(subUnitId: string): FOverGridImageBuilder;
|
|
473
|
+
/**
|
|
474
|
+
* Builds image data for insertion or updating; this does not insert the image.
|
|
475
|
+
* An explicit placement takes precedence over the individual position and size fields.
|
|
476
|
+
* Without explicit placement, zero width or height is filled from the source image's intrinsic size.
|
|
477
|
+
* @returns {Promise<ISheetImage>} A promise resolving to the built sheet image data.
|
|
478
|
+
* @example
|
|
479
|
+
* ```ts
|
|
480
|
+
* const sheet = univerAPI.getActiveWorkbook()?.getActiveSheet();
|
|
481
|
+
* if (sheet) {
|
|
482
|
+
* const image = await sheet.newOverGridImage().setSource('https://example.com/image.png').buildAsync();
|
|
483
|
+
* sheet.insertImages([image]);
|
|
484
|
+
* }
|
|
485
|
+
* ```
|
|
486
|
+
*/
|
|
463
487
|
buildAsync(): Promise<ISheetImage>;
|
|
464
488
|
}
|
|
465
489
|
/**
|
|
@@ -627,7 +651,7 @@ export declare class FOverGridImage extends FBase {
|
|
|
627
651
|
* Set the position of the image
|
|
628
652
|
* @param {number} row - The row index of the image start position
|
|
629
653
|
* @param {number} column - The column index of the image start position
|
|
630
|
-
* @returns {boolean}
|
|
654
|
+
* @returns {Promise<boolean>} A promise resolving to whether the image update succeeded.
|
|
631
655
|
* @example
|
|
632
656
|
* ```ts
|
|
633
657
|
* // set the position of the image, the start position is F6 cell.
|
|
@@ -635,7 +659,7 @@ export declare class FOverGridImage extends FBase {
|
|
|
635
659
|
* const fWorksheet = fWorkbook.getSheetByName('Sheet1');
|
|
636
660
|
* if (!fWorksheet) return;
|
|
637
661
|
* const image = fWorksheet.getImages()[0];
|
|
638
|
-
* const result = image?.setPositionAsync(5, 5);
|
|
662
|
+
* const result = await image?.setPositionAsync(5, 5);
|
|
639
663
|
* console.log(result);
|
|
640
664
|
* ```
|
|
641
665
|
*/
|
|
@@ -643,9 +667,9 @@ export declare class FOverGridImage extends FBase {
|
|
|
643
667
|
/**
|
|
644
668
|
* @param {number} row - The row index of the image start position
|
|
645
669
|
* @param {number} column - The column index of the image start position
|
|
646
|
-
* @param {number} rowOffset - The row offset of the image start position, pixel unit
|
|
647
|
-
* @param {number} columnOffset - The column offset of the image start position, pixel unit
|
|
648
|
-
* @returns {boolean}
|
|
670
|
+
* @param {number} [rowOffset] - The row offset of the image start position, pixel unit
|
|
671
|
+
* @param {number} [columnOffset] - The column offset of the image start position, pixel unit
|
|
672
|
+
* @returns {Promise<boolean>} A promise resolving to whether the image update succeeded.
|
|
649
673
|
* @example
|
|
650
674
|
* ```ts
|
|
651
675
|
* // set the position of the image, the start position is F6 cell, and the offset is 10px.
|
|
@@ -653,7 +677,7 @@ export declare class FOverGridImage extends FBase {
|
|
|
653
677
|
* const fWorksheet = fWorkbook.getSheetByName('Sheet1');
|
|
654
678
|
* if (!fWorksheet) return;
|
|
655
679
|
* const image = fWorksheet.getImages()[0];
|
|
656
|
-
* const result = image?.setPositionAsync(5, 5, 10, 10);
|
|
680
|
+
* const result = await image?.setPositionAsync(5, 5, 10, 10);
|
|
657
681
|
* console.log(result);
|
|
658
682
|
* ```
|
|
659
683
|
*/
|
|
@@ -662,7 +686,7 @@ export declare class FOverGridImage extends FBase {
|
|
|
662
686
|
* Set the size of the image
|
|
663
687
|
* @param {number} width - The width of the image, pixel unit
|
|
664
688
|
* @param {number} height - The height of the image, pixel unit
|
|
665
|
-
* @returns {boolean}
|
|
689
|
+
* @returns {Promise<boolean>} A promise resolving to whether the image update succeeded.
|
|
666
690
|
* @example
|
|
667
691
|
* ```ts
|
|
668
692
|
* // set the image width 120px and height 50px
|
|
@@ -670,17 +694,17 @@ export declare class FOverGridImage extends FBase {
|
|
|
670
694
|
* const fWorksheet = fWorkbook.getSheetByName('Sheet1');
|
|
671
695
|
* if (!fWorksheet) return;
|
|
672
696
|
* const image = fWorksheet.getImages()[0];
|
|
673
|
-
* const result = image?.setSizeAsync(120, 50);
|
|
697
|
+
* const result = await image?.setSizeAsync(120, 50);
|
|
674
698
|
* console.log(result);
|
|
675
699
|
* ```
|
|
676
700
|
*/
|
|
677
701
|
setSizeAsync(width: number, height: number): Promise<boolean>;
|
|
678
702
|
/**
|
|
679
703
|
* Set the cropping region of the image by defining the top, bottom, left, and right edges, thereby displaying the specific part of the image you want.
|
|
680
|
-
* @param {number} top - The number of pixels to crop from the top of the image
|
|
681
|
-
* @param {number} left - The number of pixels to crop from the left side of the image
|
|
682
|
-
* @param {number} bottom - The number of pixels to crop from the bottom of the image
|
|
683
|
-
* @param {number} right - The number of pixels to crop from the right side of the image
|
|
704
|
+
* @param {number} [top] - The number of pixels to crop from the top of the image
|
|
705
|
+
* @param {number} [left] - The number of pixels to crop from the left side of the image
|
|
706
|
+
* @param {number} [bottom] - The number of pixels to crop from the bottom of the image
|
|
707
|
+
* @param {number} [right] - The number of pixels to crop from the right side of the image
|
|
684
708
|
* @returns {boolean} true if the crop is set successfully, otherwise false
|
|
685
709
|
* @example
|
|
686
710
|
* ```ts
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { IGroupBaseBound } from '@univerjs/core';
|
|
16
|
+
import type { IGroupBaseBound, IWorksheetBackgroundImage, Nullable } from '@univerjs/core';
|
|
17
17
|
import type { IFBlobSource } from '@univerjs/core/facade';
|
|
18
18
|
import type { ISheetDrawing, ISheetDrawingPlacement, ISheetDrawingPlacementInput, ISheetImage } from '@univerjs/sheets-drawing';
|
|
19
|
-
import { DrawingTypeEnum } from '@univerjs/core';
|
|
19
|
+
import { DrawingTypeEnum, ImageSourceType } from '@univerjs/core';
|
|
20
20
|
import { FWorksheet } from '@univerjs/sheets/facade';
|
|
21
21
|
import { FOverGridImage, FOverGridImageBuilder } from './f-over-grid-image';
|
|
22
22
|
export interface ISheetDrawingLayoutObject {
|
|
@@ -38,10 +38,27 @@ export interface ISheetDrawingLayout {
|
|
|
38
38
|
* @ignore
|
|
39
39
|
*/
|
|
40
40
|
export interface IFWorksheetDrawingMixin {
|
|
41
|
+
/**
|
|
42
|
+
* Returns the image tiled behind the worksheet grid.
|
|
43
|
+
* @returns {IWorksheetBackgroundImage | null} The worksheet background image, or `null` when absent.
|
|
44
|
+
*/
|
|
45
|
+
getBackgroundImage(): Nullable<IWorksheetBackgroundImage>;
|
|
46
|
+
/**
|
|
47
|
+
* Sets the image tiled behind the worksheet grid. Worksheet background images are not printed.
|
|
48
|
+
* @param {string} source Image source.
|
|
49
|
+
* @param {ImageSourceType} imageSourceType Image source type.
|
|
50
|
+
* @returns The current worksheet instance for chaining.
|
|
51
|
+
*/
|
|
52
|
+
setBackgroundImage(source: string, imageSourceType?: ImageSourceType): this;
|
|
53
|
+
/**
|
|
54
|
+
* Deletes the image tiled behind the worksheet grid.
|
|
55
|
+
* @returns The current worksheet instance for chaining.
|
|
56
|
+
*/
|
|
57
|
+
deleteBackgroundImage(): this;
|
|
41
58
|
/**
|
|
42
59
|
* Insert an image to the sheet
|
|
43
60
|
* @param {string} url - The image url
|
|
44
|
-
* @returns true if the image is inserted successfully
|
|
61
|
+
* @returns {Promise<boolean>} true if the image is inserted successfully
|
|
45
62
|
* @example
|
|
46
63
|
* ```ts
|
|
47
64
|
* // Insert an image to the sheet, default position is A1
|
|
@@ -56,7 +73,7 @@ export interface IFWorksheetDrawingMixin {
|
|
|
56
73
|
* @param {string} url - The image url
|
|
57
74
|
* @param {number} column - The column index to insert the image
|
|
58
75
|
* @param {number} row - The row index to insert the image
|
|
59
|
-
* @returns True if the image is inserted successfully
|
|
76
|
+
* @returns {Promise<boolean>} True if the image is inserted successfully
|
|
60
77
|
* @example
|
|
61
78
|
* ```ts
|
|
62
79
|
* // Insert an image to the sheet, position is F6
|
|
@@ -73,7 +90,7 @@ export interface IFWorksheetDrawingMixin {
|
|
|
73
90
|
* @param {number} row - The row index to insert the image
|
|
74
91
|
* @param {number} offsetX - The column offset, pixel unit
|
|
75
92
|
* @param {number} offsetY - The row offset, pixel unit
|
|
76
|
-
* @returns True if the image is inserted successfully
|
|
93
|
+
* @returns {Promise<boolean>} True if the image is inserted successfully
|
|
77
94
|
* @example
|
|
78
95
|
* ```ts
|
|
79
96
|
* // Insert an image to the sheet, position is F6, offset is 10px
|
|
@@ -486,6 +503,9 @@ export declare class FWorksheetDrawingMixin extends FWorksheet implements IFWork
|
|
|
486
503
|
private get _sheetDrawingService();
|
|
487
504
|
private get _sheetSkeletonService();
|
|
488
505
|
private get _undoRedoService();
|
|
506
|
+
getBackgroundImage(): Nullable<IWorksheetBackgroundImage>;
|
|
507
|
+
setBackgroundImage(source: string, imageSourceType?: ImageSourceType): this;
|
|
508
|
+
deleteBackgroundImage(): this;
|
|
489
509
|
insertImage(url: IFBlobSource | string, column?: number, row?: number, offsetX?: number, offsetY?: number): Promise<boolean>;
|
|
490
510
|
insertImages(sheetImages: ISheetImage[]): FWorksheet;
|
|
491
511
|
deleteImages(sheetImages: FOverGridImage[]): FWorksheet;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -24,8 +24,12 @@ export { SetSheetDrawingPlacementCommand } from './commands/commands/set-sheet-d
|
|
|
24
24
|
export type { ISetSheetDrawingPlacementCommandParams } from './commands/commands/set-sheet-drawing-placement.command';
|
|
25
25
|
export { SetSheetDrawingCommand } from './commands/commands/set-sheet-drawing.command';
|
|
26
26
|
export type { ISetDrawingCommandParams } from './commands/commands/set-sheet-drawing.command';
|
|
27
|
+
export { SetWorksheetBackgroundImageCommand } from './commands/commands/set-worksheet-background-image.command';
|
|
28
|
+
export type { ISetWorksheetBackgroundImageCommandParams } from './commands/commands/set-worksheet-background-image.command';
|
|
27
29
|
export { DrawingApplyType, SetDrawingApplyMutation } from './commands/mutations/set-drawing-apply.mutation';
|
|
28
30
|
export type { ISetDrawingApplyMutationParams } from './commands/mutations/set-drawing-apply.mutation';
|
|
31
|
+
export { SetWorksheetBackgroundImageMutation } from './commands/mutations/set-worksheet-background-image.mutation';
|
|
32
|
+
export type { ISetWorksheetBackgroundImageMutationParams } from './commands/mutations/set-worksheet-background-image.mutation';
|
|
29
33
|
export { ClearSheetDrawingTransformerOperation } from './commands/operations/clear-drawing-transformer.operation';
|
|
30
34
|
export { isKnownSheetNonRotatableDrawingType, resolveSheetDrawingRotateEnabled } from './common/rotate-enabled';
|
|
31
35
|
export type { IUniverSheetsDrawingConfig } from './config/config';
|
|
@@ -36,4 +40,4 @@ export type { ISheetDrawingAbsolutePlacement, ISheetDrawingOneCellPlacement, ISh
|
|
|
36
40
|
export { SheetDrawingTransformPlanService } from './services/sheet-drawing-transform-plan.service';
|
|
37
41
|
export type { ISheetDrawingTransformExtension, ISheetDrawingTransformExtensionResult, ISheetDrawingTransformPlan, } from './services/sheet-drawing-transform-plan.service';
|
|
38
42
|
export { ISheetDrawingService, SheetDrawingAnchorType, SheetDrawingService } from './services/sheet-drawing.service';
|
|
39
|
-
export type { IFloatDomData, ISheetDrawing, ISheetDrawingPosition, ISheetFloatDom, ISheetImage, ISheetShape, } from './services/sheet-drawing.service';
|
|
43
|
+
export type { IFloatDomData, ISheetDrawing, ISheetDrawingPosition, ISheetFloatDom, ISheetImage, ISheetShape, ISheetSlicerDrawing, } from './services/sheet-drawing.service';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { IDrawingParam, IRotationSkewFlipTransform, Serializable } from '@univerjs/core';
|
|
16
|
+
import type { DrawingTypeEnum, IDrawingParam, IRotationSkewFlipTransform, Serializable } from '@univerjs/core';
|
|
17
17
|
import type { IDrawingJsonUndo1, IImageData, IUnitDrawingService } from '@univerjs/drawing';
|
|
18
18
|
import type { ISheetOverGridPosition } from '@univerjs/sheets';
|
|
19
19
|
import { UnitDrawingService } from '@univerjs/drawing';
|
|
@@ -48,6 +48,11 @@ export interface ISheetImage extends IImageData, ISheetDrawingBase {
|
|
|
48
48
|
*/
|
|
49
49
|
export interface ISheetShape extends IDrawingParam, ISheetDrawingBase {
|
|
50
50
|
}
|
|
51
|
+
/** Canvas-hosted spreadsheet filter whose business definition lives in its owning feature resource. */
|
|
52
|
+
export interface ISheetSlicerDrawing extends IDrawingParam, ISheetDrawingBase {
|
|
53
|
+
drawingType: DrawingTypeEnum.DRAWING_SLICER | DrawingTypeEnum.DRAWING_TIMELINE;
|
|
54
|
+
slicerViewId: string;
|
|
55
|
+
}
|
|
51
56
|
export interface IFloatDomData extends IDrawingParam {
|
|
52
57
|
componentKey: string;
|
|
53
58
|
data?: Serializable;
|
|
@@ -59,7 +64,7 @@ export interface IFloatDomData extends IDrawingParam {
|
|
|
59
64
|
}
|
|
60
65
|
export interface ISheetFloatDom extends IFloatDomData, ISheetDrawingBase {
|
|
61
66
|
}
|
|
62
|
-
export type ISheetDrawing = ISheetImage | ISheetShape | ISheetFloatDom;
|
|
67
|
+
export type ISheetDrawing = ISheetImage | ISheetShape | ISheetFloatDom | ISheetSlicerDrawing;
|
|
63
68
|
type OptionalField<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
64
69
|
export type ISheetUpdateDrawing = OptionalField<ISheetImage | ISheetShape, 'sheetTransform'>;
|
|
65
70
|
export declare class SheetDrawingService extends UnitDrawingService<ISheetDrawing> {
|
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}};return(0,a.applySheetDrawingPlacement)({...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},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(){return(0,a.getSheetDrawingPlacement)(this._sheetDrawingService.getDrawingByParam({unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingId:this._image.drawingId})??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)}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}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 _}})});
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/sheets"),require("@univerjs/core"),require("@univerjs/drawing"),require("@univerjs/engine-render")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case 0:n.addNotification(l),i.addNotification(l);break;case 1:n.removeNotification(l),i.removeNotification(l);break;case 2:n.updateNotification(l),i.updateNotification(l);break;case 3:n.orderNotification(l),i.orderNotification(l);break;case 4:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case 5:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l);break}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),c=r.drawings,{unitId:l,subUnitId:d,undo:h,redo:g,objects:_}=o.getBatchAddOp(c),v=s.onCommandExecute({id:m.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:0}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:_,type:1}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(t.SheetInterceptorService),s=e.get(u),{drawings:c}=r,{unitId:l,subUnitId:d,undo:m,redo:g,objects:_}=s.getBatchRemoveOp(c);if(Array.isArray(_)&&_.length===0)return!1;let v=o.onCommandExecute({id:h.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:1}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:_,type:0}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c}=t,l={unitId:o,subUnitId:s,drawingIds:c},d;if(t.zOrder===void 0?t.arrangeType===n.ArrangeTypeEnum.forward?d=a.getForwardDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.backward?d=a.getBackwardDrawingOp(l):t.arrangeType===n.ArrangeTypeEnum.front?d=a.getFrontDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.back&&(d=a.getBackDrawingsOp(l)):d=a.getDrawingOrderOp(l,t.zOrder),d==null)return!1;let{objects:p,redo:m,undo:h}=d;return r.syncExecuteCommand(f.id,{op:m,unitId:o,subUnitId:s,objects:p,type:3})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:h,unitId:o,subUnitId:s,objects:p,type:3}}],redoMutations:[{id:f.id,params:{op:m,unitId:o,subUnitId:s,objects:p,type:3}}]}),!0):!1}};function _(e){var t,n;let r=e.anchorType??`0`;if(r===`2`){var i,a,o,s;return{kind:`2`,left:((i=e.transform)==null?void 0:i.left)??0,top:((a=e.transform)==null?void 0:a.top)??0,width:((o=e.transform)==null?void 0:o.width)??0,height:((s=e.transform)==null?void 0:s.height)??0}}return r===`1`?{kind:`1`,from:{...e.sheetTransform.from},to:{...e.sheetTransform.to}}:{kind:`0`,from:{...e.sheetTransform.from},width:((t=e.transform)==null?void 0:t.width)??0,height:((n=e.transform)==null?void 0:n.height)??0}}function v(e,n,r){let i=y(n,r);if(i.kind===`2`){let t=x(e.transform,i),n=S(i,e.sheetTransform);return{...e,anchorType:`2`,transform:t,sheetTransform:n,axisAlignSheetTransform:n}}if(!r)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);if(i.kind===`0`){let n=(0,t.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,i.from,i.width,i.height,r),a=b(e.sheetTransform,n.sheetTransform),o=x(e.transform,n.transform);return{...e,anchorType:`0`,sheetTransform:a,transform:o,axisAlignSheetTransform:s(o,r)}}let a=b(e.sheetTransform,{from:i.from,to:i.to}),o=(0,t.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,a,r),c=x(e.transform,o);return{...e,anchorType:`1`,sheetTransform:a,transform:c,axisAlignSheetTransform:s(c,r)}}function y(e,n){if(!(`bounds`in e))return C(e),e.kind===`1`&&n&&w((0,t.convertPositionSheetOverGridToAbsolute)(n.worksheet.getUnitId(),n.worksheet.getSheetId(),{from:e.from,to:e.to},n)),e;if(w(e.bounds),e.kind===`2`)return{kind:`2`,...e.bounds};if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let r=o(e.bounds,n);if(e.kind===`0`)return{kind:`0`,from:r.from,width:e.bounds.width,height:e.bounds.height};if(e.kind===`1`)return{kind:`1`,from:r.from,to:r.to};throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function b(e,t){return{...e,from:{...t.from},to:{...t.to}}}function x(e,t){return{...e,left:t.left,top:t.top,width:t.width,height:t.height}}function S(e,t){return{...t,from:{column:0,columnOffset:e.left,row:0,rowOffset:e.top},to:{column:0,columnOffset:e.left+e.width,row:0,rowOffset:e.top+e.height}}}function C(e){if(e.kind===`0`){T(e.from),E(e.width,e.height);return}if(e.kind===`1`){T(e.from),T(e.to);return}if(e.kind===`2`){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height);return}throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function w(e){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height)}function T(e){if(!Number.isInteger(e.row)||!Number.isInteger(e.column)||e.row<0||e.column<0||!Number.isFinite(e.rowOffset)||!Number.isFinite(e.columnOffset))throw Error(`SHEET_DRAWING_PLACEMENT_CELL_INVALID`)}function E(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)throw Error(`SHEET_DRAWING_PLACEMENT_EXTENT_INVALID`)}let D={id:`sheet.command.set-drawing-placement`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!(r!=null&&r.drawings.length))return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=r.drawings.every(({placement:e})=>e.kind===`2`)?void 0:e.get(t.SheetSkeletonService).ensureSkeleton(r.unitId,r.subUnitId),c=[];for(let{drawingId:e,placement:t}of r.drawings){let n=o.getDrawingByParam({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:e});if(!n)return!1;c.push(v(n,t,s))}let{unitId:l,subUnitId:d,undo:m,redo:h,objects:g}=o.getBatchUpdateOp(c),_=[{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:g,type:2}},{id:p.id,params:[l]}],y=[{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:g,type:2}},{id:p.id,params:[l]}];return(0,n.sequenceExecute)(_,i).result?(a.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:_}),!0):!1}};function O(e){return e===n.DrawingTypeEnum.DRAWING_CHART}function k(e,t,n){return(0,r.resolveDrawingRotateEnabled)(e,{getChildren:e=>(n==null?void 0:n(e))??t.getDrawingsByGroup(e),isKnownNonRotatableType:O})}function A(e){var t,n,r;return((t=e.transform)==null?void 0:t.angle)!==void 0||((n=e.sheetTransform)==null?void 0:n.angle)!==void 0||((r=e.axisAlignSheetTransform)==null?void 0:r.angle)!==void 0}function j(e,t){let n=t==null?void 0:t.angle,r={...t??{},...e};return n===void 0?delete r.angle:r.angle=n,r}function M(e,t){var n,r,i;if(!e.drawingId||!e.unitId||!e.subUnitId||!A(e))return e;let a=t.getDrawingByParam({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId});if(!a||k({...a,...e,drawingType:e.drawingType??a.drawingType,transform:{...a.transform,...e.transform}},t))return e;let o={...e};return((n=e.transform)==null?void 0:n.angle)!==void 0&&(o.transform=j(e.transform,a.transform)),((r=e.sheetTransform)==null?void 0:r.angle)!==void 0&&(o.sheetTransform=j(e.sheetTransform,a.sheetTransform)),((i=e.axisAlignSheetTransform)==null?void 0:i.angle)!==void 0&&(o.axisAlignSheetTransform=j(e.axisAlignSheetTransform,a.axisAlignSheetTransform)),o}let N={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),{drawings:c}=r,l=c.map(e=>M(e,o)),d={...r,drawings:l},{unitId:m,subUnitId:h,undo:g,redo:_,objects:v}=o.getBatchUpdateOp(l),y=s.onCommandExecute({id:N.id,params:d}),b=[...y.preRedos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:_,objects:v,type:2}},{id:p.id,params:[m]},...y.redos],x=[...y.preUndos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:g,objects:v,type:2}},{id:p.id,params:[m]},...y.undos];return(0,n.sequenceExecute)(b,i).result?(a.pushUndoRedo({unitID:m,undoMutations:x,redoMutations:b}),!0):!1}};function P(e,t){return function(n,r){t(n,r,e)}}function F(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let I=`SHEET_DRAWING_PLUGIN`;function L(e,t){let n=new Set,r=[];return t.forEach(t=>{let i=e[t];i&&(n.add(t),r.push(i))}),Object.values(e).forEach(e=>{n.has(e.drawingId)||r.push(e)}),r}let R=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f))}_initCommands(){[N,m,h,g,D,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:I,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var i;let t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((i=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:i.getSheetId());if(!r||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(r,a),s=Object.values(o);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchRemoveOp(s);return Array.isArray(p)&&p.length===0?{redos:[],undos:[]}:{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:1}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:0}}]}}else if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:n,targetSubUnitId:i,copyContext:a}=e.params;if(!t||!n||!i)return{redos:[],undos:[]};let o=(0,r.getOrCreateDrawingCopyPlan)(a,L(this._sheetDrawingService.getDrawingData(t,n),this._sheetDrawingService.getDrawingOrder(t,n)),{unitId:t,sourceSubUnitId:n,targetSubUnitId:i}).drawings;if(o.length===0)return{redos:[],undos:[]};let{unitId:s,subUnitId:c,undo:l,redo:u,objects:d}=this._sheetDrawingService.getBatchAddOp(o);return{redos:[{id:f.id,params:{op:u,unitId:s,subUnitId:c,objects:d,type:0}}],undos:[{id:f.id,params:{op:l,unitId:s,subUnitId:c,objects:d,type:1}}]}}return{redos:[],undos:[]}}}))}};R=F([P(0,(0,n.Inject)(t.SheetInterceptorService)),P(1,(0,n.Inject)(n.IUniverInstanceService)),P(2,n.ICommandService),P(3,u),P(4,r.IDrawingManagerService),P(5,n.IResourceManagerService)],R);var z=`@univerjs/sheets-drawing`,B=`1.0.0-rc.0`;let V={};function H(e){"@babel/helpers - typeof";return H=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},H(e)}function U(e,t){if(H(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(H(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function W(e){var t=U(e,`string`);return H(t)==`symbol`?t:t+``}function G(e,t,n){return(t=W(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function K(){return{preRedos:[],redos:[],preUndos:[],undos:[]}}var q=class{constructor(){G(this,`_extensions`,[])}register(e){return this._extensions.push(e),this._extensions.sort((e,t)=>(t.priority??0)-(e.priority??0)),(0,n.toDisposable)(()=>{let t=this._extensions.indexOf(e);t>=0&&this._extensions.splice(t,1)})}transform(e){return this._extensions.reduce((t,n)=>{let r=n.transform(e);return r?(t.preRedos.push(...r.preRedos??[]),t.redos.push(...r.redos??[]),t.preUndos.push(...r.preUndos??[]),t.undos.push(...r.undos??[]),t):t},K())}};let J=[t.InsertRowCommand.id,t.InsertColCommand.id,t.RemoveRowCommand.id,t.RemoveColCommand.id,t.DeleteRangeMoveLeftCommand.id,t.DeleteRangeMoveUpCommand.id,t.InsertRangeMoveDownCommand.id,t.InsertRangeMoveRightCommand.id,t.DeltaRowHeightCommand.id,t.SetRowHeightCommand.id,t.DeltaColumnWidthCommand.id,t.SetColWidthCommand.id,t.SetRowHiddenCommand.id,t.SetSpecificRowsVisibleCommand.id,t.SetSpecificColsVisibleCommand.id,t.SetColHiddenCommand.id,t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id],Y=[t.SetRowVisibleMutation.id,t.SetRowHiddenMutation.id,t.SetColVisibleMutation.id,t.SetColHiddenMutation.id,t.SetWorksheetRowHeightMutation.id,t.SetWorksheetRowAutoHeightMutation.id,t.SetWorksheetRowIsAutoHeightMutation.id,t.SetWorksheetColWidthMutation.id],X=class extends n.Disposable{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._sheetSkeletonService=t,this._sheetInterceptorService=n,this._selectionManagerService=r,this._sheetDrawingService=i,this._drawingManagerService=a,this._univerInstanceService=o,this._transformPlanService=s,G(this,`_currentCommand`,{id:``,params:{}}),this._sheetInterceptorListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:r,params:i}=e;if(!J.includes(r)||!i)return{redos:[],undos:[]};if(this._currentCommand=e,r===t.InsertRowCommand.id)return this._moveRowInterceptor(i,`insert`);if([t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id].includes(r)){let e;if(r===t.MoveRangeCommand.id){let n=i;if(n.toUnitId&&n.fromUnitId&&n.toUnitId!==n.fromUnitId||n.toSubUnitId&&n.fromSubUnitId&&n.toSubUnitId!==n.fromSubUnitId)return{redos:[],undos:[]};e=(0,t.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.toUnitId,subUnitId:n.toSubUnitId})}else e=(0,t.getSheetCommandTarget)(this._univerInstanceService,i);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a}=e,{fromRange:o,toRange:s}=i;return this._moveRangeInterceptor(n,a,o,s)}else if(r===t.InsertColCommand.id)return this._moveColInterceptor(i,`insert`);else if(r===t.RemoveRowCommand.id)return this._moveRowInterceptor(i,`remove`);else if(r===t.RemoveColCommand.id)return this._moveColInterceptor(i,`remove`);else if(r===t.DeleteRangeMoveLeftCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,0)}else if(r===t.DeleteRangeMoveUpCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,1)}else if(r===t.InsertRangeMoveDownCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,2)}else if(r===t.InsertRangeMoveRightCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,3)}else if(r===t.SetRowHiddenCommand.id||r===t.SetSpecificRowsVisibleCommand.id){var a;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:o,subUnitId:s}=r,c=e.ranges||((a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.ROW));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(o,s,c)}else if(r===t.SetColHiddenCommand.id||r===t.SetSpecificColsVisibleCommand.id){var o;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:a,subUnitId:s}=r,c=e.ranges||((o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.COLUMN));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(a,s,c)}else if(r===t.DeltaRowHeightCommand.id||r===t.DeltaColumnWidthCommand.id){let e=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a,worksheet:o}=e,s=[];return r===t.DeltaRowHeightCommand.id?s.push({startRow:i.anchorRow,endRow:i.anchorRow,startColumn:0,endColumn:o.getColumnCount()-1}):s.push({startRow:0,endRow:o.getRowCount()-1,startColumn:i.anchorCol,endColumn:i.anchorCol}),this._getDrawingUndoForRowAndColSize(n,a,s)}else if(r===t.SetRowHeightCommand.id||r===t.SetColWidthCommand.id){var s;let e=i,n=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,o=e.ranges||((s=this._selectionManagerService.getCurrentSelections())==null?void 0:s.map(e=>e.range));return!o||o.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(r,a,o)}return{redos:[],undos:[]}}}))}_finalizePlan(e,t,n,r=[],i=`command`,a=this._currentCommand){let o=this._sheetSkeletonService.getSkeleton(e,t);if(!o)return{redos:[],undos:[]};let s=this._sheetDrawingService.getDrawingData(e,t),c=new Map(Object.entries(s)),l={command:a,mode:i,unitId:e,subUnitId:t,skeleton:o,originals:c,updates:new Map,deletes:new Set(r.map(({drawingId:e})=>e).filter(e=>!!e))};n.forEach(e=>{if(!e.drawingId)return;let t=c.get(e.drawingId);t&&l.updates.set(e.drawingId,{...t,...e,transform:{...t.transform,...e.transform},sheetTransform:e.sheetTransform??t.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform??t.axisAlignSheetTransform})});let u=this._transformPlanService.transform(l);if(i===`refresh`){let t=[...l.updates.values()].filter(e=>JSON.stringify(c.get(e.drawingId))!==JSON.stringify(e));return t.length&&(this._sheetDrawingService.refreshTransform(t),this._drawingManagerService.refreshTransform(t),this._commandService.syncExecuteCommand(p.id,[e])),{redos:[],undos:[]}}return this._createPlanMutations(l,u)}_getCalculatedSkeletonParam(e,t){let n=this._sheetSkeletonService.getSkeletonParam(e,t);if(n)return n.skeleton.makeDirty(!0),n.skeleton.calculate(),n}_createPlanMutations(e,t){let{unitId:n,subUnitId:r}=e,i=[...t.preRedos],a=[...t.preUndos],o=[...e.updates.values()].filter(({drawingId:t})=>!e.deletes.has(t));if(o.length){let{undo:e,redo:t,objects:s}=this._sheetDrawingService.getBatchUpdateOp(o);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:t,objects:s,type:2}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:e,objects:s,type:2}})}if(e.deletes.size){let t=[...e.deletes].map(e=>({unitId:n,subUnitId:r,drawingId:e})),{undo:o,redo:s,objects:c}=this._sheetDrawingService.getBatchRemoveOp(t);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:s,objects:c,type:1}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:o,objects:c,type:0}})}return i.push(...t.redos),a.push(...t.undos),(i.length||a.length)&&(i.push({id:p.id,params:[n]}),a.push({id:p.id,params:[n]})),{redos:i,undos:a}}_getRangeMoveUndo(e,n){let r=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r;if(!this._getCalculatedSkeletonParam(i,a))return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=[],c=[];return Object.keys(o).forEach(t=>{let r=o[t],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,n,r);s.push(...i),c.push(...a)}),this._finalizePlan(i,a,s,c)}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:o,anchorType:s=`0`,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(!o||!c||!f)return{updateDrawings:r,deleteDrawings:i};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===0&&h>=y&&_<=b)if(g>=x&&v<=S)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===1&&g>=x&&v<=S)if(h>=y&&_<=b)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===2){let e=this._expandRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===3){let e=this._expandCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}if(C&&w){let e=a(C,f);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=o({...e},r);if(i){let a=s({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startColumn:i,endColumn:c}=r[e];if(g<i)continue;if(f===`0`){let e=null,r=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});r={...d,left:e.startX}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(m>=i&&g<=c)continue;let _=null,v=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});v={...d,left:(e==null?void 0:e.startX)||0,width:((d==null?void 0:d.width)||0)-e.endX+e.startX}}else if(g>=i&&g<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:g,startRow:p,endRow:h});v={...d,left:e.startX-((d==null?void 0:d.width)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:c,startRow:p,endRow:h});if(v={...d,width:((d==null?void 0:d.width)||0)-e.endX+e.startX},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}else this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_createUndoAndRedoMutation(e,t,n){return this._finalizePlan(e,t,n)}_getDrawingUndoForRowVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startRow:i,endRow:c}=r[e];if(h<i)continue;if(f===`0`){let e=null,r=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});r={...d,top:e.startY}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(p>=i&&h<=c)continue;let _=null,v=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});v={...d,top:(e==null?void 0:e.startY)||0,height:((d==null?void 0:d.height)||0)-e.endY+e.startY}}else if(h>=i&&h<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:h});v={...d,top:e.startY-((d==null?void 0:d.height)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:c});if(v={...d,height:((d==null?void 0:d.height)||0)-e.endY+e.startY},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}else this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._getCalculatedSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=`0`}=t;if(u===`2`)this._remainDrawingSize(l,s,t,i);else{let{from:e,to:o}=c,{row:d,column:f}=e,{row:p,column:m}=o;for(let e=0;e<n.length;e++){let{startRow:o,endRow:h,startColumn:g,endColumn:_}=n[e];if(p<o||m<g)continue;if(u===`0`&&(d<=o&&p>=h||f<=g&&m>=_)){this._remainDrawingSize(l,s,t,i);continue}let v=a({...c},r);if(v){s.push({...t,transform:v});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e,n){let r;if(r=n===`insert`?(0,t.getSheetCommandTarget)(this._univerInstanceService,e):(0,t.getSheetCommandTarget)(this._univerInstanceService),!r)return;let{unitId:i,subUnitId:a}=r;return{unitId:i,subUnitId:a}}_moveRangeInterceptor(e,n,r,i){let o=this._getCalculatedSkeletonParam(e,n);if(!o)return{redos:[],undos:[]};let{skeleton:s}=o,c=(0,t.attachRangeWithCoord)(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,n),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==`1`)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=i.startRow-r.startRow,g=i.startColumn-r.startColumn,_=m.map(t=>{let r=t.sheetTransform,i={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},s=a(i,o);return{unitId:e,subUnitId:n,drawingId:t.drawingId,transform:s,sheetTransform:i}});return this._finalizePlan(e,n,_)}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{row:u}=t,{row:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{column:u}=t,{column:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_expandCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:n,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)+r.endX-r.startX},_=o(v,d),y=s(v,d)}else if(g>=n)if(u===`1`)_={from:{...p},to:{...m,column:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,column:h-f},to:{...m,column:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n)if(u===`1`)_={from:{...p},to:{...m,column:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,column:e,columnOffset:0},to:{...m,column:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,left:(l.left||0)-c.from.columnOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:h-1,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)-n.endX+n.startX-c.from.columnOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:e-1,endColumn:e-1,startRow:p.row,endRow:m.row});_={from:{...p},to:{...m,column:e-1,columnOffset:n.endX-n.startX}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_expandRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:n,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)+r.endY-r.startY},_=o(v,d),y=s(v,d)}else if(g>=n)if(u===`1`)_={from:{...p},to:{...m,row:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,row:h-f},to:{...m,row:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n)if(u===`1`)_={from:{...p},to:{...m,row:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,row:e,rowOffset:0},to:{...m,row:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,top:(l.top||0)-c.from.rowOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:h-1,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)-n.endY+n.startY-c.from.rowOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:p.column,endColumn:p.column,startRow:e-1,endRow:e-1});_={from:{...p},to:{...m,row:e-1,rowOffset:n.endY-n.startY}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Y.includes(e.id)&&queueMicrotask(()=>{let n=e.params,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,n);if(!r)return;let{unitId:i,subUnitId:a,worksheet:o}=r,s=[];`ranges`in n?s=n.ranges:`rowsAutoHeightInfo`in n&&(s=n.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(e,i,a,s)})}))}_refreshDrawingTransform(e,t,r,i){let o=this._getCalculatedSkeletonParam(t,r),s=this._drawingManagerService.getDrawingData(t,r)??{},c=[];Object.keys(s).forEach(e=>{let t=s[e],{sheetTransform:r,transform:l,anchorType:u=`0`}=t;if(u===`2`||!r)return!0;let{from:d,to:f}=r,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:s,endRow:d,startColumn:f,endColumn:_}=i[e];if(n.Rectangle.intersects({startRow:s,endRow:d,startColumn:f,endColumn:_},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>_){let e=u===`0`,n=a(r,o);c.push({...t,transform:{...l,left:n==null?void 0:n.left,top:n==null?void 0:n.top,width:e?l==null?void 0:l.width:n==null?void 0:n.width,height:e?l==null?void 0:l.height:n==null?void 0:n.height}});break}}}),this._finalizePlan(t,r,c,[],`refresh`,e)}};X=F([P(0,n.ICommandService),P(1,(0,n.Inject)(t.SheetSkeletonService)),P(2,(0,n.Inject)(t.SheetInterceptorService)),P(3,(0,n.Inject)(t.SheetsSelectionsService)),P(4,u),P(5,r.IDrawingManagerService),P(6,n.IUniverInstanceService),P(7,(0,n.Inject)(q))],X);let Z=class extends n.Plugin{constructor(e=V,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},V,this._config);this._configService.setConfig(`sheets-drawing.config`,i)}onStarting(){[[R],[q],[X],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(R),this._injector.get(X)}};G(Z,`pluginName`,I),G(Z,`packageName`,z),G(Z,`version`,B),G(Z,`type`,n.UniverInstanceType.UNIVER_SHEET),Z=F([(0,n.DependentOn)(r.UniverDrawingPlugin,t.UniverSheetsPlugin),P(1,(0,n.Inject)(n.Injector)),P(2,n.IConfigService)],Z),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=I,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=N,e.SetSheetDrawingPlacementCommand=D,e.SheetDrawingAnchorType=c,e.SheetDrawingService=l,e.SheetDrawingTransformPlanService=q,Object.defineProperty(e,"UniverSheetsDrawingPlugin",{enumerable:!0,get:function(){return Z}}),e.applySheetDrawingPlacement=v,e.drawingPositionToTransform=a,e.getSheetDrawingPlacement=_,e.isKnownSheetNonRotatableDrawingType=O,e.normalizeSheetDrawingPlacement=y,e.resolveSheetDrawingRotateEnabled=k,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/sheets"),require("@univerjs/core"),require("@univerjs/drawing"),require("@univerjs/engine-render")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/sheets`,`@univerjs/core`,`@univerjs/drawing`,`@univerjs/engine-render`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsDrawing={},e.UniverSheets,e.UniverCore,e.UniverDrawing,e.UniverEngineRender))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function a(e,n){if(!n)return;let{unitId:r,sheetId:i,skeleton:a}=n,{from:o,to:s,flipY:c=!1,flipX:l=!1,angle:u=0,skewX:d=0,skewY:f=0}=e,{left:p,top:m,width:h,height:g}=(0,t.convertPositionSheetOverGridToAbsolute)(r,i,{from:o,to:s},a),_=a.rowHeaderWidth+a.columnTotalWidth,v=a.columnHeaderHeight+a.rowTotalHeight;return p+h>_&&(p=_-h),m+g>v&&(m=v-g),{flipY:c,flipX:l,angle:u,skewX:d,skewY:f,left:p,top:m,width:h,height:g}}function o(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,flipY:o=!1,flipX:s=!1,angle:c=0,skewX:l=0,skewY:u=0}=e;return{flipY:o,flipX:s,angle:c,skewX:l,skewY:u,from:t.getCellIndexAndOffsetByPosition(n,r),to:t.getCellIndexAndOffsetByPosition(n+i,r+a)}}function s(e,t){let{left:n=0,top:r=0,width:i=0,height:a=0,angle:s=0}=e,c=(s%360+360)%360;return o(c>=45&&c<135||c>=225&&c<315?{...e,left:n+i/2-a/2,top:r+a/2-i/2,width:a,height:i}:e,t)}let c=function(e){return e.Position=`0`,e.Both=`1`,e.None=`2`,e}({});var l=class extends r.UnitDrawingService{};let u=(0,n.createIdentifier)(`sheets-drawing.sheet-drawing.service`),d=function(e){return e[e.INSERT=0]=`INSERT`,e[e.REMOVE=1]=`REMOVE`,e[e.UPDATE=2]=`UPDATE`,e[e.ARRANGE=3]=`ARRANGE`,e[e.GROUP=4]=`GROUP`,e[e.UNGROUP=5]=`UNGROUP`,e}({}),f={id:`sheet.mutation.set-drawing-apply`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(r.IDrawingManagerService),i=e.get(u),{op:a,unitId:o,subUnitId:s,type:c,objects:l}=t;switch(n.applyJson1(o,s,a),i.applyJson1(o,s,a),c){case 0:n.addNotification(l),i.addNotification(l);break;case 1:n.removeNotification(l),i.removeNotification(l);break;case 2:n.updateNotification(l),i.updateNotification(l);break;case 3:n.orderNotification(l),i.orderNotification(l);break;case 4:n.groupUpdateNotification(l),i.groupUpdateNotification(l);break;case 5:n.ungroupUpdateNotification(l),i.ungroupUpdateNotification(l)}return!0}},p={id:`sheet.operation.clear-drawing-transformer`,type:n.CommandType.MUTATION,handler:(e,t)=>{let n=e.get(i.IRenderManagerService);return t.forEach(e=>{var t;(t=n.getRenderUnitById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},m={id:`sheet.command.insert-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),c=r.drawings,{unitId:l,subUnitId:d,undo:h,redo:g,objects:_}=o.getBatchAddOp(c),v=s.onCommandExecute({id:m.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:0}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:_,type:1}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},h={id:`sheet.command.remove-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(t.SheetInterceptorService),s=e.get(u),{drawings:c}=r,{unitId:l,subUnitId:d,undo:m,redo:g,objects:_}=s.getBatchRemoveOp(c);if(Array.isArray(_)&&_.length===0)return!1;let v=o.onCommandExecute({id:h.id,params:r}),y=[...v.preRedos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:g,objects:_,type:1}},{id:p.id,params:[l]},...v.redos],b=[...v.preUndos??[],{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:_,type:0}},{id:p.id,params:[l]},...v.undos];return(0,n.sequenceExecute)(y,i).result?(a.pushUndoRedo({unitID:l,undoMutations:b,redoMutations:y}),!0):!1}},g={id:`sheet.command.set-drawing-arrange`,type:n.CommandType.COMMAND,handler:(e,t)=>{let r=e.get(n.ICommandService),i=e.get(n.IUndoRedoService);if(!t)return!1;let a=e.get(u),{unitId:o,subUnitId:s,drawingIds:c}=t,l={unitId:o,subUnitId:s,drawingIds:c},d;if(t.zOrder===void 0?t.arrangeType===n.ArrangeTypeEnum.forward?d=a.getForwardDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.backward?d=a.getBackwardDrawingOp(l):t.arrangeType===n.ArrangeTypeEnum.front?d=a.getFrontDrawingsOp(l):t.arrangeType===n.ArrangeTypeEnum.back&&(d=a.getBackDrawingsOp(l)):d=a.getDrawingOrderOp(l,t.zOrder),d==null)return!1;let{objects:p,redo:m,undo:h}=d;return r.syncExecuteCommand(f.id,{op:m,unitId:o,subUnitId:s,objects:p,type:3})?(i.pushUndoRedo({unitID:o,undoMutations:[{id:f.id,params:{op:h,unitId:o,subUnitId:s,objects:p,type:3}}],redoMutations:[{id:f.id,params:{op:m,unitId:o,subUnitId:s,objects:p,type:3}}]}),!0):!1}};function _(e){var t,n;let r=e.anchorType??`0`;if(r===`2`){var i,a,o,s;return{kind:`2`,left:((i=e.transform)==null?void 0:i.left)??0,top:((a=e.transform)==null?void 0:a.top)??0,width:((o=e.transform)==null?void 0:o.width)??0,height:((s=e.transform)==null?void 0:s.height)??0}}return r===`1`?{kind:`1`,from:{...e.sheetTransform.from},to:{...e.sheetTransform.to}}:{kind:`0`,from:{...e.sheetTransform.from},width:((t=e.transform)==null?void 0:t.width)??0,height:((n=e.transform)==null?void 0:n.height)??0}}function v(e,n,r){let i=y(n,r);if(i.kind===`2`){let t=x(e.transform,i),n=S(i,e.sheetTransform);return{...e,anchorType:`2`,transform:t,sheetTransform:n,axisAlignSheetTransform:n}}if(!r)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);if(i.kind===`0`){let n=(0,t.convertPositionCellToSheetOverGrid)(e.unitId,e.subUnitId,i.from,i.width,i.height,r),a=b(e.sheetTransform,n.sheetTransform),o=x(e.transform,n.transform);return{...e,anchorType:`0`,sheetTransform:a,transform:o,axisAlignSheetTransform:s(o,r)}}let a=b(e.sheetTransform,{from:i.from,to:i.to}),o=(0,t.convertPositionSheetOverGridToAbsolute)(e.unitId,e.subUnitId,a,r),c=x(e.transform,o);return{...e,anchorType:`1`,sheetTransform:a,transform:c,axisAlignSheetTransform:s(c,r)}}function y(e,n){if(!(`bounds`in e))return C(e),e.kind===`1`&&n&&w((0,t.convertPositionSheetOverGridToAbsolute)(n.worksheet.getUnitId(),n.worksheet.getSheetId(),{from:e.from,to:e.to},n)),e;if(w(e.bounds),e.kind===`2`)return{kind:`2`,...e.bounds};if(!n)throw Error(`SHEET_DRAWING_PLACEMENT_SKELETON_REQUIRED`);let r=o(e.bounds,n);if(e.kind===`0`)return{kind:`0`,from:r.from,width:e.bounds.width,height:e.bounds.height};if(e.kind===`1`)return{kind:`1`,from:r.from,to:r.to};throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function b(e,t){return{...e,from:{...t.from},to:{...t.to}}}function x(e,t){return{...e,left:t.left,top:t.top,width:t.width,height:t.height}}function S(e,t){return{...t,from:{column:0,columnOffset:e.left,row:0,rowOffset:e.top},to:{column:0,columnOffset:e.left+e.width,row:0,rowOffset:e.top+e.height}}}function C(e){if(e.kind===`0`){T(e.from),E(e.width,e.height);return}if(e.kind===`1`){T(e.from),T(e.to);return}if(e.kind===`2`){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height);return}throw Error(`SHEET_DRAWING_PLACEMENT_KIND_INVALID`)}function w(e){if(!Number.isFinite(e.left)||!Number.isFinite(e.top))throw TypeError(`SHEET_DRAWING_PLACEMENT_POSITION_INVALID`);E(e.width,e.height)}function T(e){if(!Number.isInteger(e.row)||!Number.isInteger(e.column)||e.row<0||e.column<0||!Number.isFinite(e.rowOffset)||!Number.isFinite(e.columnOffset))throw Error(`SHEET_DRAWING_PLACEMENT_CELL_INVALID`)}function E(e,t){if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0)throw Error(`SHEET_DRAWING_PLACEMENT_EXTENT_INVALID`)}let D={id:`sheet.command.set-drawing-placement`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!(r!=null&&r.drawings.length))return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=r.drawings.every(({placement:e})=>e.kind===`2`)?void 0:e.get(t.SheetSkeletonService).ensureSkeleton(r.unitId,r.subUnitId),c=[];for(let{drawingId:e,placement:t}of r.drawings){let n=o.getDrawingByParam({unitId:r.unitId,subUnitId:r.subUnitId,drawingId:e});if(!n)return!1;c.push(v(n,t,s))}let{unitId:l,subUnitId:d,undo:m,redo:h,objects:g}=o.getBatchUpdateOp(c),_=[{id:f.id,params:{unitId:l,subUnitId:d,op:h,objects:g,type:2}},{id:p.id,params:[l]}],y=[{id:f.id,params:{unitId:l,subUnitId:d,op:m,objects:g,type:2}},{id:p.id,params:[l]}];return(0,n.sequenceExecute)(_,i).result?(a.pushUndoRedo({unitID:l,undoMutations:y,redoMutations:_}),!0):!1}};function O(e){return e===n.DrawingTypeEnum.DRAWING_CHART}function k(e,t,n){return(0,r.resolveDrawingRotateEnabled)(e,{getChildren:e=>(n==null?void 0:n(e))??t.getDrawingsByGroup(e),isKnownNonRotatableType:O})}function A(e){var t,n,r;return((t=e.transform)==null?void 0:t.angle)!==void 0||((n=e.sheetTransform)==null?void 0:n.angle)!==void 0||((r=e.axisAlignSheetTransform)==null?void 0:r.angle)!==void 0}function j(e,t){let n=t==null?void 0:t.angle,r={...t??{},...e};return n===void 0?delete r.angle:r.angle=n,r}function M(e,t){var n,r,i;if(!e.drawingId||!e.unitId||!e.subUnitId||!A(e))return e;let a=t.getDrawingByParam({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId});if(!a||k({...a,...e,drawingType:e.drawingType??a.drawingType,transform:{...a.transform,...e.transform}},t))return e;let o={...e};return((n=e.transform)==null?void 0:n.angle)!==void 0&&(o.transform=j(e.transform,a.transform)),((r=e.sheetTransform)==null?void 0:r.angle)!==void 0&&(o.sheetTransform=j(e.sheetTransform,a.sheetTransform)),((i=e.axisAlignSheetTransform)==null?void 0:i.angle)!==void 0&&(o.axisAlignSheetTransform=j(e.axisAlignSheetTransform,a.axisAlignSheetTransform)),o}let N={id:`sheet.command.set-sheet-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(n.ICommandService),a=e.get(n.IUndoRedoService),o=e.get(u),s=e.get(t.SheetInterceptorService),{drawings:c}=r,l=c.map(e=>M(e,o)),d={...r,drawings:l},{unitId:m,subUnitId:h,undo:g,redo:_,objects:v}=o.getBatchUpdateOp(l),y=s.onCommandExecute({id:N.id,params:d}),b=[...y.preRedos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:_,objects:v,type:2}},{id:p.id,params:[m]},...y.redos],x=[...y.preUndos??[],{id:f.id,params:{unitId:m,subUnitId:h,op:g,objects:v,type:2}},{id:p.id,params:[m]},...y.undos];return(0,n.sequenceExecute)(b,i).result?(a.pushUndoRedo({unitID:m,undoMutations:x,redoMutations:b}),!0):!1}},P={id:`sheet.mutation.set-worksheet-background-image`,type:n.CommandType.MUTATION,handler:(e,r)=>{let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let a=i.worksheet.getConfig();return r.backgroundImage?a.backgroundImage={...r.backgroundImage}:delete a.backgroundImage,!0}},F={id:`sheet.command.set-worksheet-background-image`,type:n.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=(0,t.getSheetCommandTarget)(e.get(n.IUniverInstanceService),r);if(!i)return!1;let{unitId:a,subUnitId:o,worksheet:s}=i,c=s.getConfig().backgroundImage,l=r.backgroundImage;if((c==null?void 0:c.source)===(l==null?void 0:l.source)&&(c==null?void 0:c.imageSourceType)===(l==null?void 0:l.imageSourceType))return!1;let u=e.get(n.ICommandService),d=e.get(n.IUndoRedoService),f={unitId:a,subUnitId:o,backgroundImage:l?{...l}:null},p={unitId:a,subUnitId:o,backgroundImage:c?{...c}:null};return u.syncExecuteCommand(P.id,f)?(d.pushUndoRedo({unitID:a,undoMutations:[{id:P.id,params:p}],redoMutations:[{id:P.id,params:f}]}),!0):!1}};function I(e,t){return function(n,r){t(n,r,e)}}function L(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let R=`SHEET_DRAWING_PLUGIN`;function z(e,t){let n=new Set,r=[];return t.forEach(t=>{let i=e[t];i&&(n.add(t),r.push(i))}),Object.values(e).forEach(e=>{n.has(e.drawingId)||r.push(e)}),r}let B=class extends n.Disposable{constructor(e,t,n,r,i,a){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._commandService=n,this._sheetDrawingService=r,this._drawingManagerService=i,this._resourceManagerService=a,this._initCommands(),this._initSnapshot(),this._initSheetChange(),this.disposeWithMe(this._commandService.registerCommand(f)),this.disposeWithMe(this._commandService.registerCommand(P))}_initCommands(){[N,m,h,g,D,F,p].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initSnapshot(){let e=(e,t)=>{let n=t||this._sheetDrawingService.getDrawingDataForUnit(e);return n?JSON.stringify(n):``},t=e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:R,businesses:[n.UniverInstanceType.UNIVER_SHEET],toJson:(t,n)=>e(t,n),parseJson:e=>t(e),onUnLoad:e=>{this._sheetDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)},onLoad:(e,t)=>{this._sheetDrawingService.registerDrawingData(e,t),this._drawingManagerService.registerDrawingData(e,t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===t.RemoveSheetCommand.id){var i;let t=e.params,r=t.unitId||this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=t.subUnitId||((i=this._univerInstanceService.getCurrentUnitOfType(n.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:i.getSheetId());if(!r||!a)return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(r,a),s=Object.values(o);if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchRemoveOp(s);return Array.isArray(p)&&p.length===0?{redos:[],undos:[]}:{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:1}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:0}}]}}if(e.id===t.CopySheetCommand.id){let{unitId:t,subUnitId:n,targetSubUnitId:i,copyContext:a}=e.params;if(!t||!n||!i)return{redos:[],undos:[]};let o=z(this._sheetDrawingService.getDrawingData(t,n),this._sheetDrawingService.getDrawingOrder(t,n)),s=(0,r.getOrCreateDrawingCopyPlan)(a,o,{unitId:t,sourceSubUnitId:n,targetSubUnitId:i}).drawings;if(s.length===0)return{redos:[],undos:[]};let{unitId:c,subUnitId:l,undo:u,redo:d,objects:p}=this._sheetDrawingService.getBatchAddOp(s);return{redos:[{id:f.id,params:{op:d,unitId:c,subUnitId:l,objects:p,type:0}}],undos:[{id:f.id,params:{op:u,unitId:c,subUnitId:l,objects:p,type:1}}]}}return{redos:[],undos:[]}}}))}};B=L([I(0,(0,n.Inject)(t.SheetInterceptorService)),I(1,(0,n.Inject)(n.IUniverInstanceService)),I(2,n.ICommandService),I(3,u),I(4,r.IDrawingManagerService),I(5,n.IResourceManagerService)],B);var V=`@univerjs/sheets-drawing`,H=`1.0.1`;let U={};function W(e){"@babel/helpers - typeof";return W=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},W(e)}function G(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function K(e){var t=G(e,`string`);return W(t)==`symbol`?t:t+``}function q(e,t,n){return(t=K(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J(){return{preRedos:[],redos:[],preUndos:[],undos:[]}}var Y=class{constructor(){q(this,`_extensions`,[])}register(e){return this._extensions.push(e),this._extensions.sort((e,t)=>(t.priority??0)-(e.priority??0)),(0,n.toDisposable)(()=>{let t=this._extensions.indexOf(e);t>=0&&this._extensions.splice(t,1)})}transform(e){return this._extensions.reduce((t,n)=>{let r=n.transform(e);return r?(t.preRedos.push(...r.preRedos??[]),t.redos.push(...r.redos??[]),t.preUndos.push(...r.preUndos??[]),t.undos.push(...r.undos??[]),t):t},J())}};let X=[t.InsertRowCommand.id,t.InsertColCommand.id,t.RemoveRowCommand.id,t.RemoveColCommand.id,t.DeleteRangeMoveLeftCommand.id,t.DeleteRangeMoveUpCommand.id,t.InsertRangeMoveDownCommand.id,t.InsertRangeMoveRightCommand.id,t.DeltaRowHeightCommand.id,t.SetRowHeightCommand.id,t.DeltaColumnWidthCommand.id,t.SetColWidthCommand.id,t.SetRowHiddenCommand.id,t.SetSpecificRowsVisibleCommand.id,t.SetSpecificColsVisibleCommand.id,t.SetColHiddenCommand.id,t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id],Z=[t.SetRowVisibleMutation.id,t.SetRowHiddenMutation.id,t.SetColVisibleMutation.id,t.SetColHiddenMutation.id,t.SetWorksheetRowHeightMutation.id,t.SetWorksheetRowAutoHeightMutation.id,t.SetWorksheetRowIsAutoHeightMutation.id,t.SetWorksheetColWidthMutation.id],Q=class extends n.Disposable{constructor(e,t,n,r,i,a,o,s){super(),this._commandService=e,this._sheetSkeletonService=t,this._sheetInterceptorService=n,this._selectionManagerService=r,this._sheetDrawingService=i,this._drawingManagerService=a,this._univerInstanceService=o,this._transformPlanService=s,q(this,`_currentCommand`,{id:``,params:{}}),this._sheetInterceptorListener(),this._sheetRefreshListener()}_sheetInterceptorListener(){this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>{let{id:r,params:i}=e;if(!X.includes(r)||!i)return{redos:[],undos:[]};if(this._currentCommand=e,r===t.InsertRowCommand.id)return this._moveRowInterceptor(i,`insert`);if([t.MoveColsCommand.id,t.MoveRowsCommand.id,t.MoveRangeCommand.id].includes(r)){let e;if(r===t.MoveRangeCommand.id){let n=i;if(n.toUnitId&&n.fromUnitId&&n.toUnitId!==n.fromUnitId||n.toSubUnitId&&n.fromSubUnitId&&n.toSubUnitId!==n.fromSubUnitId)return{redos:[],undos:[]};e=(0,t.getSheetCommandTarget)(this._univerInstanceService,{unitId:n.toUnitId,subUnitId:n.toSubUnitId})}else e=(0,t.getSheetCommandTarget)(this._univerInstanceService,i);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a}=e,{fromRange:o,toRange:s}=i;return this._moveRangeInterceptor(n,a,o,s)}if(r===t.InsertColCommand.id)return this._moveColInterceptor(i,`insert`);if(r===t.RemoveRowCommand.id)return this._moveRowInterceptor(i,`remove`);if(r===t.RemoveColCommand.id)return this._moveColInterceptor(i,`remove`);if(r===t.DeleteRangeMoveLeftCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,0)}if(r===t.DeleteRangeMoveUpCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,1)}if(r===t.InsertRangeMoveDownCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,2)}if(r===t.InsertRangeMoveRightCommand.id){let{range:e}=i;return this._getRangeMoveUndo(e,3)}if(r===t.SetRowHiddenCommand.id||r===t.SetSpecificRowsVisibleCommand.id){var a;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:o,subUnitId:s}=r,c=e.ranges||((a=this._selectionManagerService.getCurrentSelections())==null?void 0:a.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.ROW));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowVisible(o,s,c)}if(r===t.SetColHiddenCommand.id||r===t.SetSpecificColsVisibleCommand.id){var o;let e=i,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!r)return{redos:[],undos:[]};let{unitId:a,subUnitId:s}=r,c=e.ranges||((o=this._selectionManagerService.getCurrentSelections())==null?void 0:o.map(e=>e.range).filter(e=>e.rangeType===n.RANGE_TYPE.COLUMN));return!c||c.length===0?{redos:[],undos:[]}:this._getDrawingUndoForColVisible(a,s,c)}if(r===t.DeltaRowHeightCommand.id||r===t.DeltaColumnWidthCommand.id){let e=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!e)return{redos:[],undos:[]};let{unitId:n,subUnitId:a,worksheet:o}=e,s=[];return r===t.DeltaRowHeightCommand.id?s.push({startRow:i.anchorRow,endRow:i.anchorRow,startColumn:0,endColumn:o.getColumnCount()-1}):s.push({startRow:0,endRow:o.getRowCount()-1,startColumn:i.anchorCol,endColumn:i.anchorCol}),this._getDrawingUndoForRowAndColSize(n,a,s)}if(r===t.SetRowHeightCommand.id||r===t.SetColWidthCommand.id){var s;let e=i,n=(0,t.getSheetCommandTarget)(this._univerInstanceService,e);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:a}=n,o=e.ranges||((s=this._selectionManagerService.getCurrentSelections())==null?void 0:s.map(e=>e.range));return!o||o.length===0?{redos:[],undos:[]}:this._getDrawingUndoForRowAndColSize(r,a,o)}return{redos:[],undos:[]}}}))}_finalizePlan(e,t,n,r=[],i=`command`,a=this._currentCommand){let o=this._sheetSkeletonService.getSkeleton(e,t);if(!o)return{redos:[],undos:[]};let s=this._sheetDrawingService.getDrawingData(e,t),c=new Map(Object.entries(s)),l={command:a,mode:i,unitId:e,subUnitId:t,skeleton:o,originals:c,updates:new Map,deletes:new Set(r.map(({drawingId:e})=>e).filter(e=>!!e))};n.forEach(e=>{if(!e.drawingId)return;let t=c.get(e.drawingId);t&&l.updates.set(e.drawingId,{...t,...e,transform:{...t.transform,...e.transform},sheetTransform:e.sheetTransform??t.sheetTransform,axisAlignSheetTransform:e.axisAlignSheetTransform??t.axisAlignSheetTransform})});let u=this._transformPlanService.transform(l);if(i===`refresh`){let t=[...l.updates.values()].filter(e=>JSON.stringify(c.get(e.drawingId))!==JSON.stringify(e));return t.length&&(this._sheetDrawingService.refreshTransform(t),this._drawingManagerService.refreshTransform(t),this._commandService.syncExecuteCommand(p.id,[e])),{redos:[],undos:[]}}return this._createPlanMutations(l,u)}_getCalculatedSkeletonParam(e,t){let n=this._sheetSkeletonService.getSkeletonParam(e,t);if(n)return n.skeleton.makeDirty(!0),n.skeleton.calculate(),n}_createPlanMutations(e,t){let{unitId:n,subUnitId:r}=e,i=[...t.preRedos],a=[...t.preUndos],o=[...e.updates.values()].filter(({drawingId:t})=>!e.deletes.has(t));if(o.length){let{undo:e,redo:t,objects:s}=this._sheetDrawingService.getBatchUpdateOp(o);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:t,objects:s,type:2}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:e,objects:s,type:2}})}if(e.deletes.size){let t=[...e.deletes].map(e=>({unitId:n,subUnitId:r,drawingId:e})),{undo:o,redo:s,objects:c}=this._sheetDrawingService.getBatchRemoveOp(t);i.push({id:f.id,params:{unitId:n,subUnitId:r,op:s,objects:c,type:1}}),a.push({id:f.id,params:{unitId:n,subUnitId:r,op:o,objects:c,type:0}})}return i.push(...t.redos),a.push(...t.undos),(i.length||a.length)&&(i.push({id:p.id,params:[n]}),a.push({id:p.id,params:[n]})),{redos:i,undos:a}}_getRangeMoveUndo(e,n){let r=(0,t.getSheetCommandTarget)(this._univerInstanceService);if(!r)return{redos:[],undos:[]};let{unitId:i,subUnitId:a}=r;if(!this._getCalculatedSkeletonParam(i,a))return{redos:[],undos:[]};let o=this._sheetDrawingService.getDrawingData(i,a),s=[],c=[];return Object.keys(o).forEach(t=>{let r=o[t],{updateDrawings:i,deleteDrawings:a}=this._getUpdateOrDeleteDrawings(e,n,r);s.push(...i),c.push(...a)}),this._finalizePlan(i,a,s,c)}_getUpdateOrDeleteDrawings(e,t,n){let r=[],i=[],{sheetTransform:o,anchorType:s=`0`,transform:c,unitId:l,subUnitId:u,drawingId:d}=n,f=this._sheetSkeletonService.getSkeletonParam(l,u);if(!o||!c||!f)return{updateDrawings:r,deleteDrawings:i};let{from:p,to:m}=o,{row:h,column:g}=p,{row:_,column:v}=m,{startRow:y,endRow:b,startColumn:x,endColumn:S}=e,C=null,w=null,T;if(t===0&&h>=y&&_<=b){if(g>=x&&v<=S)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===1&&g>=x&&v<=S){if(h>=y&&_<=b)i.push({unitId:l,subUnitId:u,drawingId:d});else{let e=this._shrinkRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}else if(t===2){let e=this._expandRow(y,b,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else if(t===3){let e=this._expandCol(x,S,{sheetSkeletonParam:f,sheetTransform:o,transform:c,anchorType:s});C=e==null?void 0:e.newSheetTransform,w=e==null?void 0:e.newTransform,T=(e==null?void 0:e.axisAlignSheetTransform)??void 0}if(C&&w){let e=a(C,f);r.push({...n,sheetTransform:C,transform:e,axisAlignSheetTransform:T})}return{updateDrawings:r,deleteDrawings:i}}_remainDrawingSize(e,t,n,r){let i=o({...e},r);if(i){let a=s({...e},r);t.push({...n,sheetTransform:i,axisAlignSheetTransform:a})}}_getDrawingUndoForColVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startColumn:i,endColumn:c}=r[e];if(g<i)continue;if(f===`0`){let e=null,r=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});r={...d,left:e.startX}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(m>=i&&g<=c)continue;let _=null,v=null;if(m>=i&&m<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:c,startRow:p,endRow:h});v={...d,left:(e==null?void 0:e.startX)||0,width:((d==null?void 0:d.width)||0)-e.endX+e.startX}}else if(g>=i&&g<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:g,startRow:p,endRow:h});v={...d,left:e.startX-((d==null?void 0:d.width)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:i,endColumn:c,startRow:p,endRow:h});if(v={...d,width:((d==null?void 0:d.width)||0)-e.endX+e.startX},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_createUndoAndRedoMutation(e,t,n){return this._finalizePlan(e,t,n)}_getDrawingUndoForRowVisible(e,n,r){let i=this._getCalculatedSkeletonParam(e,n);if(!i)return{redos:[],undos:[]};let{skeleton:a}=i,c=this._drawingManagerService.getDrawingData(e,n),l=[],u=[];return Object.keys(c).forEach(e=>{let n=c[e],{sheetTransform:i,transform:d,anchorType:f=`0`}=n;if(f===`2`)this._remainDrawingSize(d,l,n,a);else{let{from:e,to:c}=i,{row:p,column:m}=e,{row:h,column:g}=c;for(let e=0;e<r.length;e++){let{startRow:i,endRow:c}=r[e];if(h<i)continue;if(f===`0`){let e=null,r=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});r={...d,top:e.startY}}if(r){e=o(r,a);let t=s(r,a);if(e&&r){l.push({...n,sheetTransform:e,transform:r,axisAlignSheetTransform:t});break}}continue}if(p>=i&&h<=c)continue;let _=null,v=null;if(p>=i&&p<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:p,endRow:c});v={...d,top:(e==null?void 0:e.startY)||0,height:((d==null?void 0:d.height)||0)-e.endY+e.startY}}else if(h>=i&&h<=c){let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:h});v={...d,top:e.startY-((d==null?void 0:d.height)||0)}}else{let e=(0,t.attachRangeWithCoord)(a,{startColumn:m,endColumn:g,startRow:i,endRow:c});if(v={...d,height:((d==null?void 0:d.height)||0)-e.endY+e.startY},_=o(v,a),_&&v){let e=s(v,a);u.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}}if(v&&(_=o(v,a)),v&&_){let e=s(v,a);l.push({...n,sheetTransform:_,transform:v,axisAlignSheetTransform:e});break}this._remainDrawingSize(d,l,n,a)}}}),this._finalizePlan(e,n,[...u,...l])}_getDrawingUndoForRowAndColSize(e,t,n){let r=this._getCalculatedSkeletonParam(e,t);if(!r)return{redos:[],undos:[]};let{skeleton:i}=r,o=this._drawingManagerService.getDrawingData(e,t),s=[];return Object.keys(o).forEach(e=>{let t=o[e],{sheetTransform:c,transform:l,anchorType:u=`0`}=t;if(u===`2`)this._remainDrawingSize(l,s,t,i);else{let{from:e,to:o}=c,{row:d,column:f}=e,{row:p,column:m}=o;for(let e=0;e<n.length;e++){let{startRow:o,endRow:h,startColumn:g,endColumn:_}=n[e];if(p<o||m<g)continue;if(u===`0`&&(d<=o&&p>=h||f<=g&&m>=_)){this._remainDrawingSize(l,s,t,i);continue}let v=a({...c},r);if(v){s.push({...t,transform:v});break}}}}),s.length===0?{redos:[],undos:[]}:this._createUndoAndRedoMutation(e,t,s)}_getUnitIdAndSubUnitId(e,n){let r;if(r=n===`insert`?(0,t.getSheetCommandTarget)(this._univerInstanceService,e):(0,t.getSheetCommandTarget)(this._univerInstanceService),!r)return;let{unitId:i,subUnitId:a}=r;return{unitId:i,subUnitId:a}}_moveRangeInterceptor(e,n,r,i){let o=this._getCalculatedSkeletonParam(e,n);if(!o)return{redos:[],undos:[]};let{skeleton:s}=o,c=(0,t.attachRangeWithCoord)(s,r);if(!c)return{redos:[],undos:[]};let{startX:l,endX:u,startY:d,endY:f}=c,p=this._sheetDrawingService.getDrawingData(e,n),m=[];Object.keys(p).forEach(e=>{let t=p[e];if(t.anchorType!==`1`)return;let{transform:n}=t;if(!n)return;let{left:r=0,top:i=0,width:a=0,height:o=0}=n,{drawingStartX:s,drawingEndX:c,drawingStartY:h,drawingEndY:g}={drawingStartX:r,drawingEndX:r+a,drawingStartY:i,drawingEndY:i+o};l<=s&&c<=u&&d<=h&&g<=f&&m.push(t)});let h=i.startRow-r.startRow,g=i.startColumn-r.startColumn,_=m.map(t=>{let r=t.sheetTransform,i={to:{...r.to,row:r.to.row+h,column:r.to.column+g},from:{...r.from,row:r.from.row+h,column:r.from.column+g}},s=a(i,o);return{unitId:e,subUnitId:n,drawingId:t.drawingId,transform:s,sheetTransform:i}});return this._finalizePlan(e,n,_)}_moveRowInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startRow,c=o.endRow,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{row:u}=t,{row:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkRow(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_moveColInterceptor(e,t){let n=this._getUnitIdAndSubUnitId(e,t);if(!n)return{redos:[],undos:[]};let{unitId:r,subUnitId:i}=n,a=this._getCalculatedSkeletonParam(r,i);if(!a)return{redos:[],undos:[]};let{range:o}=e,s=o.startColumn,c=o.endColumn,l=this._sheetDrawingService.getDrawingData(r,i),u=[],d=[];return Object.keys(l).forEach(e=>{let{sheetTransform:n,transform:o,anchorType:f=`0`}=l[e];if(!n||!o)return;let p,m,h;if(t===`insert`){let e=this._expandCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}else{let{from:t,to:l}=n,{column:u}=t,{column:g}=l;if(f===`1`&&u>=s&&g<=c)d.push({unitId:r,subUnitId:i,drawingId:e});else{let e=this._shrinkCol(s,c,{sheetSkeletonParam:a,sheetTransform:n,transform:o,anchorType:f});p=e==null?void 0:e.newSheetTransform,m=e==null?void 0:e.newTransform,h=(e==null?void 0:e.axisAlignSheetTransform)??void 0}}if(!p||!m)return;let g={unitId:r,subUnitId:i,drawingId:e,transform:m,sheetTransform:p,axisAlignSheetTransform:h};u.push(g)}),this._finalizePlan(r,i,u,d)}_expandCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:n,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)+r.endX-r.startX},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,column:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkCol(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{column:h}=p,{column:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,column:h-f},to:{...m,column:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,column:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,column:e,columnOffset:0},to:{...m,column:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,left:(l.left||0)-c.from.columnOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startColumn:e,endColumn:h-1,startRow:p.row,endRow:m.row});v={...l,left:(l.left||0)-n.endX+n.startX-c.from.columnOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:e-1,endColumn:e-1,startRow:p.row,endRow:m.row});_={from:{...p},to:{...m,column:e-1,columnOffset:n.endX-n.startX}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_expandRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>=e){let r=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:n,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)+r.endY-r.startY},_=o(v,d),y=s(v,d)}else if(g>=n){if(u===`1`)_={from:{...p},to:{...m,row:g+f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_shrinkRow(e,n,r){let{sheetSkeletonParam:i,sheetTransform:c,transform:l,anchorType:u=`0`}=r,{skeleton:d}=i,f=n-e+1,{from:p,to:m}=c,{row:h}=p,{row:g}=m;if(u===`2`)return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)};let _=null,v=null,y=null;if(h>n)_={from:{...p,row:h-f},to:{...m,row:g-f}},v=a(_,i);else if(h>=e&&g<=n)return null;else if(h<e&&g>n){if(u===`1`)_={from:{...p},to:{...m,row:g-f}},v=a(_,i);else return{newSheetTransform:o({...l},d),newTransform:l,axisAlignSheetTransform:s({...l},d)}}else if(h>=e&&h<=n){if(u===`1`)_={from:{...p,row:e,rowOffset:0},to:{...m,row:g-f}},v=a(_,i),y=s(v,d);else if(h===e)v={...l,top:(l.top||0)-c.from.rowOffset};else{let n=(0,t.attachRangeWithCoord)(d,{startRow:e,endRow:h-1,startColumn:p.column,endColumn:m.column});v={...l,top:(l.top||0)-n.endY+n.startY-c.from.rowOffset}}_||(_=o(v,d),y=s(v,d))}else if(g>=e&&g<=n&&u===`1`){let n=(0,t.attachRangeWithCoord)(d,{startColumn:p.column,endColumn:p.column,startRow:e-1,endRow:e-1});_={from:{...p},to:{...m,row:e-1,rowOffset:n.endY-n.startY}},v=a(_,i)}return _&&v?{newSheetTransform:_,newTransform:v,axisAlignSheetTransform:y}:null}_sheetRefreshListener(){this.disposeWithMe(this._commandService.onCommandExecuted(e=>{Z.includes(e.id)&&queueMicrotask(()=>{let n=e.params,r=(0,t.getSheetCommandTarget)(this._univerInstanceService,n);if(!r)return;let{unitId:i,subUnitId:a,worksheet:o}=r,s=[];`ranges`in n?s=n.ranges:`rowsAutoHeightInfo`in n&&(s=n.rowsAutoHeightInfo.map(e=>({startRow:e.row,endRow:e.row,startColumn:0,endColumn:o.getColumnCount()-1}))),this._refreshDrawingTransform(e,i,a,s)})}))}_refreshDrawingTransform(e,t,r,i){let o=this._getCalculatedSkeletonParam(t,r),s=this._drawingManagerService.getDrawingData(t,r)??{},c=[];Object.keys(s).forEach(e=>{let t=s[e],{sheetTransform:r,transform:l,anchorType:u=`0`}=t;if(u===`2`||!r)return!0;let{from:d,to:f}=r,{row:p,column:m}=d,{row:h,column:g}=f;for(let e=0;e<i.length;e++){let{startRow:s,endRow:d,startColumn:f,endColumn:_}=i[e];if(n.Rectangle.intersects({startRow:s,endRow:d,startColumn:f,endColumn:_},{startRow:p,endRow:h,startColumn:m,endColumn:g})||p>d||m>_){let e=u===`0`,n=a(r,o);c.push({...t,transform:{...l,left:n==null?void 0:n.left,top:n==null?void 0:n.top,width:e?l==null?void 0:l.width:n==null?void 0:n.width,height:e?l==null?void 0:l.height:n==null?void 0:n.height}});break}}}),this._finalizePlan(t,r,c,[],`refresh`,e)}};Q=L([I(0,n.ICommandService),I(1,(0,n.Inject)(t.SheetSkeletonService)),I(2,(0,n.Inject)(t.SheetInterceptorService)),I(3,(0,n.Inject)(t.SheetsSelectionsService)),I(4,u),I(5,r.IDrawingManagerService),I(6,n.IUniverInstanceService),I(7,(0,n.Inject)(Y))],Q);let $=class extends n.Plugin{constructor(e=U,t,r){super(),this._config=e,this._injector=t,this._configService=r;let{...i}=(0,n.merge)({},U,this._config);this._configService.setConfig(`sheets-drawing.config`,i)}onStarting(){[[B],[Y],[Q],[u,{useClass:l}]].forEach(e=>this._injector.add(e)),this._injector.get(B),this._injector.get(Q)}};q($,`pluginName`,R),q($,`packageName`,V),q($,`version`,H),q($,`type`,n.UniverInstanceType.UNIVER_SHEET),$=L([(0,n.DependentOn)(r.UniverDrawingPlugin,t.UniverSheetsPlugin),I(1,(0,n.Inject)(n.Injector)),I(2,n.IConfigService)],$),e.ClearSheetDrawingTransformerOperation=p,e.DrawingApplyType=d,e.ISheetDrawingService=u,e.InsertSheetDrawingCommand=m,e.RemoveSheetDrawingCommand=h,e.SHEET_DRAWING_PLUGIN=R,e.SetDrawingApplyMutation=f,e.SetDrawingArrangeCommand=g,e.SetSheetDrawingCommand=N,e.SetSheetDrawingPlacementCommand=D,e.SetWorksheetBackgroundImageCommand=F,e.SetWorksheetBackgroundImageMutation=P,e.SheetDrawingAnchorType=c,e.SheetDrawingService=l,e.SheetDrawingTransformPlanService=Y,Object.defineProperty(e,"UniverSheetsDrawingPlugin",{enumerable:!0,get:function(){return $}}),e.applySheetDrawingPlacement=v,e.drawingPositionToTransform=a,e.getSheetDrawingPlacement=_,e.isKnownSheetNonRotatableDrawingType=O,e.normalizeSheetDrawingPlacement=y,e.resolveSheetDrawingRotateEnabled=k,e.transformToAxisAlignPosition=s,e.transformToDrawingPosition=o});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-drawing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Drawing model integration for Univer Sheets.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
"lib"
|
|
60
60
|
],
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@univerjs/core": "1.0.
|
|
63
|
-
"@univerjs/
|
|
64
|
-
"@univerjs/engine-render": "1.0.
|
|
65
|
-
"@univerjs/
|
|
62
|
+
"@univerjs/core": "1.0.1",
|
|
63
|
+
"@univerjs/drawing": "1.0.1",
|
|
64
|
+
"@univerjs/engine-render": "1.0.1",
|
|
65
|
+
"@univerjs/sheets": "1.0.1"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
+
"@univerjs-infra/shared": "1.0.1",
|
|
68
69
|
"typescript": "^6.0.3",
|
|
69
|
-
"vitest": "^5.0.0"
|
|
70
|
-
"@univerjs-infra/shared": "1.0.0-rc.0"
|
|
70
|
+
"vitest": "^5.0.0"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"test": "vitest run",
|