@univerjs/sheets-drawing-ui 0.9.1-nightly.202507081607 → 0.9.1-nightly.202507101607

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.
@@ -1,12 +1,108 @@
1
1
  import { IDrawingSearch } from '@univerjs/core';
2
2
  import { IEventBase, FEventName } from '@univerjs/core/facade';
3
- import { ISheetImage } from '@univerjs/sheets-drawing';
3
+ import { ISheetFloatDom, ISheetImage } from '@univerjs/sheets-drawing';
4
4
  import { FWorkbook } from '@univerjs/sheets/facade';
5
5
  import { FOverGridImage } from './f-over-grid-image';
6
6
  /**
7
7
  * @ignore
8
8
  */
9
9
  interface IFDrawingEventNameMixin {
10
+ /**
11
+ * Triggered before float dom insertion.
12
+ * @see {@link IBeforeFloatDomAddParam}
13
+ * @example
14
+ * ```ts
15
+ * const disposable = univerAPI.addEvent(univerAPI.Event.BeforeFloatDomAdd, (params) => {
16
+ * console.log(params);
17
+ * // do something
18
+ * const { workbook, drawings } = params;
19
+ * // Cancel the insertion operation
20
+ * params.cancel = true;
21
+ * })
22
+ *
23
+ * // Remove the event listener, use `disposable.dispose()`
24
+ * ```
25
+ */
26
+ readonly BeforeFloatDomAdd: 'BeforeFloatDomAdd';
27
+ /**
28
+ * Triggered after float dom insertion.
29
+ * @see {@link IFloatDomAddedParam}
30
+ * @example
31
+ * ```ts
32
+ * const disposable = univerAPI.addEvent(univerAPI.Event.FloatDomAdded, (params) => {
33
+ * console.log(params);
34
+ * // do something
35
+ * const { workbook, drawings } = params;
36
+ * })
37
+ *
38
+ * // Remove the event listener, use `disposable.dispose()`
39
+ * ```
40
+ */
41
+ readonly FloatDomAdded: 'FloatDomAdded';
42
+ /**
43
+ * Triggered before float dom update.
44
+ * @see {@link IBeforeFloatDomUpdateParam}
45
+ * @example
46
+ * ```ts
47
+ * const disposable = univerAPI.addEvent(univerAPI.Event.BeforeFloatDomUpdate, (params) => {
48
+ * console.log(params);
49
+ * // do something
50
+ * const { workbook, drawings } = params;
51
+ * // Cancel the update operation
52
+ * params.cancel = true;
53
+ * })
54
+ *
55
+ * // Remove the event listener, use `disposable.dispose()`
56
+ * ```
57
+ */
58
+ readonly BeforeFloatDomUpdate: 'BeforeFloatDomUpdate';
59
+ /**
60
+ * Triggered after float dom update.
61
+ * @see {@link IFloatDomUpdatedParam}
62
+ * @example
63
+ * ```ts
64
+ * const disposable = univerAPI.addEvent(univerAPI.Event.FloatDomUpdated, (params) => {
65
+ * console.log(params);
66
+ * // do something
67
+ * const { workbook, drawings } = params;
68
+ * })
69
+ *
70
+ * // Remove the event listener, use `disposable.dispose()`
71
+ * ```
72
+ */
73
+ readonly FloatDomUpdated: 'FloatDomUpdated';
74
+ /**
75
+ * Triggered before float dom deletion.
76
+ * @see {@link IBeforeFloatDomDeleteParam}
77
+ * @example
78
+ * ```ts
79
+ * const disposable = univerAPI.addEvent(univerAPI.Event.BeforeFloatDomDelete, (params) => {
80
+ * console.log(params);
81
+ * // do something
82
+ * const { workbook, drawings } = params;
83
+ * // Cancel the deletion operation
84
+ * params.cancel = true;
85
+ * })
86
+ *
87
+ * // Remove the event listener, use `disposable.dispose()`
88
+ * ```
89
+ */
90
+ readonly BeforeFloatDomDelete: 'BeforeFloatDomDelete';
91
+ /**
92
+ * Triggered after float dom deletion.
93
+ * @see {@link IFloatDomDeletedParam}
94
+ * @example
95
+ * ```ts
96
+ * const disposable = univerAPI.addEvent(univerAPI.Event.FloatDomDeleted, (params) => {
97
+ * console.log(params);
98
+ * // do something
99
+ * const { workbook, drawings } = params;
100
+ * })
101
+ *
102
+ * // Remove the event listener, use `disposable.dispose()`
103
+ * ```
104
+ */
105
+ readonly FloatDomDeleted: 'FloatDomDeleted';
10
106
  /**
11
107
  * Triggered before floating image insertion.
12
108
  * @see {@link IBeforeOverGridImageInsertParam}
@@ -137,6 +233,12 @@ interface IFDrawingEventNameMixin {
137
233
  readonly OverGridImageSelected: 'OverGridImageSelected';
138
234
  }
139
235
  export declare class FDrawingEventNameMixin extends FEventName implements IFDrawingEventNameMixin {
236
+ get BeforeFloatDomAdd(): 'BeforeFloatDomAdd';
237
+ get FloatDomAdded(): 'FloatDomAdded';
238
+ get BeforeFloatDomUpdate(): 'BeforeFloatDomUpdate';
239
+ get FloatDomUpdated(): 'FloatDomUpdated';
240
+ get BeforeFloatDomDelete(): 'BeforeFloatDomDelete';
241
+ get FloatDomDeleted(): 'FloatDomDeleted';
140
242
  get BeforeOverGridImageChange(): 'BeforeOverGridImageChange';
141
243
  get OverGridImageChanged(): 'OverGridImageChanged';
142
244
  get BeforeOverGridImageInsert(): 'BeforeOverGridImageInsert';
@@ -240,6 +342,66 @@ export interface IOverGridImageSelectedParam extends IEventBase {
240
342
  /**
241
343
  * @ignore
242
344
  */
345
+ export interface IBeforeFloatDomAddParam extends IEventBase {
346
+ /**
347
+ * The workbook instance currently being operated on. {@link FWorkbook}
348
+ */
349
+ workbook: FWorkbook;
350
+ /**
351
+ * Collection of float dom drawings to be added.
352
+ */
353
+ drawings: ISheetFloatDom[];
354
+ }
355
+ export interface IFloatDomAddedParam extends IEventBase {
356
+ /**
357
+ * The workbook instance currently being operated on. {@link FWorkbook}
358
+ */
359
+ workbook: FWorkbook;
360
+ /**
361
+ * Collection of float dom drawings that were added.
362
+ */
363
+ drawings: ISheetFloatDom[];
364
+ }
365
+ export interface IBeforeFloatDomUpdateParam extends IEventBase {
366
+ /**
367
+ * The workbook instance currently being operated on. {@link FWorkbook}
368
+ */
369
+ workbook: FWorkbook;
370
+ /**
371
+ * Collection of float dom drawings to be updated.
372
+ */
373
+ drawings: ISheetFloatDom[];
374
+ }
375
+ export interface IFloatDomUpdatedParam extends IEventBase {
376
+ /**
377
+ * The workbook instance currently being operated on. {@link FWorkbook}
378
+ */
379
+ workbook: FWorkbook;
380
+ /**
381
+ * Collection of float dom drawings that were updated.
382
+ */
383
+ drawings: ISheetFloatDom[];
384
+ }
385
+ export interface IBeforeFloatDomDeleteParam extends IEventBase {
386
+ /**
387
+ * The workbook instance currently being operated on. {@link FWorkbook}
388
+ */
389
+ workbook: FWorkbook;
390
+ /**
391
+ * Collection of float dom drawings to be deleted.
392
+ */
393
+ drawings: ISheetFloatDom[];
394
+ }
395
+ export interface IFloatDomDeletedParam extends IEventBase {
396
+ /**
397
+ * The workbook instance currently being operated on. {@link FWorkbook}
398
+ */
399
+ workbook: FWorkbook;
400
+ /**
401
+ * Collection of float dom drawing ids that were deleted.
402
+ */
403
+ drawings: string[];
404
+ }
243
405
  interface IFSheetsUIEventParamConfig {
244
406
  BeforeOverGridImageChange: IBeforeOverGridImageChangeParam;
245
407
  OverGridImageChanged: IOverGridImageChangedParam;
@@ -249,6 +411,12 @@ interface IFSheetsUIEventParamConfig {
249
411
  OverGridImageRemoved: IOverGridImageRemovedParam;
250
412
  BeforeOverGridImageSelect: IBeforeOverGridImageSelectParam;
251
413
  OverGridImageSelected: IOverGridImageSelectedParam;
414
+ BeforeFloatDomAdd: IBeforeFloatDomAddParam;
415
+ FloatDomAdded: IFloatDomAddedParam;
416
+ BeforeFloatDomUpdate: IBeforeFloatDomUpdateParam;
417
+ FloatDomUpdated: IFloatDomUpdatedParam;
418
+ BeforeFloatDomDelete: IBeforeFloatDomDeleteParam;
419
+ FloatDomDeleted: IFloatDomDeletedParam;
252
420
  }
253
421
  declare module '@univerjs/core/facade' {
254
422
  interface FEventName extends IFDrawingEventNameMixin {
@@ -1,16 +1,146 @@
1
- import { IDisposable, Nullable } from '@univerjs/core';
1
+ import { IDisposable, ITransformState, Nullable } from '@univerjs/core';
2
2
  import { IFBlobSource } from '@univerjs/core/facade';
3
3
  import { ISheetImage } from '@univerjs/sheets-drawing';
4
- import { ICanvasFloatDom, IDOMAnchor } from '@univerjs/sheets-drawing-ui';
4
+ import { ICanvasFloatDom, ICanvasFloatDomInfo, IDOMAnchor } from '@univerjs/sheets-drawing-ui';
5
5
  import { IFComponentKey } from '@univerjs/sheets-ui/facade';
6
6
  import { FRange, FWorksheet } from '@univerjs/sheets/facade';
7
7
  import { FOverGridImage, FOverGridImageBuilder } from './f-over-grid-image';
8
8
  export interface IFICanvasFloatDom extends Omit<ICanvasFloatDom, 'componentKey' | 'unitId' | 'subUnitId'>, IFComponentKey {
9
9
  }
10
+ export interface IFCanvasFloatDomResult extends Omit<ICanvasFloatDom, 'componentKey' | 'unitId' | 'subUnitId' | 'initPosition'>, IFComponentKey, Pick<ICanvasFloatDomInfo, 'id'> {
11
+ position: ITransformState;
12
+ id: string;
13
+ }
10
14
  /**
11
15
  * @ignore
12
16
  */
13
17
  export interface IFWorksheetLegacy {
18
+ /**
19
+ * Get float dom by id
20
+ * @param {string} id - float dom id
21
+ * @returns {IFCanvasFloatDomResult | null} float dom info or null if not found
22
+ * @example
23
+ * ```ts
24
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
25
+ * const floatDom = fWorksheet.getFloatDomById('myFloatDomId');
26
+ * if (floatDom) {
27
+ * console.log('Float dom position:', floatDom.position);
28
+ * console.log('Component key:', floatDom.componentKey);
29
+ * console.log('Custom data:', floatDom.data);
30
+ * }
31
+ * ```
32
+ */
33
+ getFloatDomById(id: string): Nullable<IFCanvasFloatDomResult>;
34
+ /**
35
+ * Get all float doms in current worksheet
36
+ * @returns {IFCanvasFloatDomResult[]} array of float dom info
37
+ * @example
38
+ * ```ts
39
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
40
+ * const allFloatDoms = fWorksheet.getAllFloatDoms();
41
+ * allFloatDoms.forEach(floatDom => {
42
+ * console.log('Float dom ID:', floatDom.id);
43
+ * console.log('Position:', floatDom.position);
44
+ * });
45
+ * ```
46
+ */
47
+ getAllFloatDoms(): IFCanvasFloatDomResult[];
48
+ /**
49
+ * Update float dom position and properties
50
+ * @param {string} id - float dom id
51
+ * @param {Partial<IFCanvasFloatDomResult>} config - new float dom config
52
+ * @returns {FWorksheet} The worksheet instance for chaining
53
+ * @example
54
+ * ```ts
55
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
56
+ * const firstFloatDom = fWorksheet.getAllFloatDoms()[0];
57
+ *
58
+ * if (!firstFloatDom) return;
59
+ *
60
+ * // Update first float dom position and size
61
+ * fWorksheet.updateFloatDom(firstFloatDom.id, {
62
+ * position: {
63
+ * left: 100,
64
+ * top: 100,
65
+ * width: 200,
66
+ * height: 150,
67
+ * angle: 45, // rotate 45 degrees
68
+ * }
69
+ * });
70
+ *
71
+ * // Update first float dom data
72
+ * fWorksheet.updateFloatDom(firstFloatDom.id, {
73
+ * data: {
74
+ * label: 'Updated Label',
75
+ * color: '#ff0000'
76
+ * }
77
+ * });
78
+ *
79
+ * // Disable the first float dom from transform
80
+ * fWorksheet.updateFloatDom(firstFloatDom.id, {
81
+ * allowTransform: false
82
+ * });
83
+ * ```
84
+ */
85
+ updateFloatDom(id: string, config: Partial<IFCanvasFloatDomResult>): this;
86
+ /**
87
+ * Batch update float doms
88
+ * @param {Array<{id: string, config: Partial<IFCanvasFloatDomResult>}>} updates - array of update configs
89
+ * @returns {FWorksheet} The worksheet instance for chaining
90
+ * @example
91
+ * ```ts
92
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
93
+ *
94
+ * // Update multiple float doms at once
95
+ * const allFloatDoms = fWorksheet.getAllFloatDoms();
96
+ * fWorksheet.batchUpdateFloatDoms(allFloatDoms.map((floatDom, index) => {
97
+ * if (floatDom.id === 'MyFloatDomId') {
98
+ * return {
99
+ * id: floatDom.id,
100
+ * config: {
101
+ * position: {
102
+ * left: 100,
103
+ * top: 100
104
+ * },
105
+ * data: {
106
+ * label: 'Updated'
107
+ * }
108
+ * }
109
+ * }
110
+ * }
111
+ *
112
+ * return {
113
+ * id: floatDom.id,
114
+ * config: {
115
+ * position: {
116
+ * left: 300,
117
+ * top: 100
118
+ * }
119
+ * }
120
+ * }
121
+ * }));
122
+ * ```
123
+ */
124
+ batchUpdateFloatDoms(updates: Array<{
125
+ id: string;
126
+ config: Partial<IFCanvasFloatDomResult>;
127
+ }>): this;
128
+ /**
129
+ * Remove float dom by id
130
+ * @param {string} id - float dom id
131
+ * @returns {FWorksheet} The worksheet instance for chaining
132
+ * @example
133
+ * ```ts
134
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
135
+ * const firstFloatDom = fWorksheet.getAllFloatDoms()[0];
136
+ *
137
+ * if (!firstFloatDom) return;
138
+ *
139
+ * // Remove the first float dom
140
+ * fWorksheet.removeFloatDom(firstFloatDom.id);
141
+ * ```
142
+ */
143
+ removeFloatDom(id: string): this;
14
144
  /**
15
145
  * Add a float dom to position.
16
146
  * @param {IFICanvasFloatDom} layer - The float dom layer configuration.
@@ -35,7 +165,7 @@ export interface IFWorksheetLegacy {
35
165
  *
36
166
  * // Add a floating DOM
37
167
  * // If disposable is null, floating DOM addition failed
38
- * const disposeable = fWorksheet.addFloatDomToPosition({
168
+ * const disposable = fWorksheet.addFloatDomToPosition({
39
169
  * componentKey: 'myFloatDom',
40
170
  * initPosition: {
41
171
  * startX: 100,
@@ -49,10 +179,11 @@ export interface IFWorksheetLegacy {
49
179
  * label: 'hahah',
50
180
  * },
51
181
  * });
182
+ * console.log(disposable?.id); // The id of the floating DOM
52
183
  *
53
184
  * // Remove the floating DOM after 2 seconds
54
185
  * setTimeout(() => {
55
- * disposeable?.dispose();
186
+ * disposable?.dispose();
56
187
  * }, 2000);
57
188
  * ```
58
189
  */
@@ -96,11 +227,12 @@ export interface IFWorksheetLegacy {
96
227
  *
97
228
  * // Add the range loading component covering the range A1:C3
98
229
  * const fRange = fWorksheet.getRange('A1:C3');
99
- * const disposeable = fWorksheet.addFloatDomToRange(fRange, { componentKey: 'RangeLoading' }, {}, 'myRangeLoading');
230
+ * const disposable = fWorksheet.addFloatDomToRange(fRange, { componentKey: 'RangeLoading' }, {}, 'myRangeLoading');
231
+ * console.log(disposable?.id); // The id of the floating DOM
100
232
  *
101
233
  * // Remove the floating DOM after 2 seconds
102
234
  * setTimeout(() => {
103
- * disposeable?.dispose();
235
+ * disposable?.dispose();
104
236
  * }, 2000);
105
237
  *
106
238
  * // another example-------------------
@@ -133,7 +265,7 @@ export interface IFWorksheetLegacy {
133
265
  *
134
266
  * // Add the float button to the range A5:C7, position is start from A5 cell, and width is 100px, height is 30px, margin is 100% of range width and height
135
267
  * const fRange2 = fWorksheet.getRange('A5:C7');
136
- * const disposeable2 = fWorksheet.addFloatDomToRange(
268
+ * const disposable2 = fWorksheet.addFloatDomToRange(
137
269
  * fRange2,
138
270
  * {
139
271
  * componentKey: 'FloatButton',
@@ -146,6 +278,7 @@ export interface IFWorksheetLegacy {
146
278
  * },
147
279
  * 'myFloatButton'
148
280
  * );
281
+ * console.log(disposable2?.id); // The id of the floating DOM
149
282
  * ```
150
283
  */
151
284
  addFloatDomToRange(range: FRange, layer: Partial<IFICanvasFloatDom>, domLayout: Partial<IDOMAnchor>, id?: string): Nullable<{
@@ -191,7 +324,7 @@ export interface IFWorksheetLegacy {
191
324
  * univerAPI.registerComponent('FloatButton', FloatButton);
192
325
  *
193
326
  * // Add the float button to the column D header, position is right align, width is 100px, height is 30px, margin is 0
194
- * const disposeable = fWorksheet.addFloatDomToColumnHeader(
327
+ * const disposable = fWorksheet.addFloatDomToColumnHeader(
195
328
  * 3,
196
329
  * {
197
330
  * componentKey: 'FloatButton',
@@ -206,10 +339,11 @@ export interface IFWorksheetLegacy {
206
339
  * },
207
340
  * 'myFloatButton'
208
341
  * );
342
+ * console.log(disposable?.id); // The id of the floating DOM
209
343
  *
210
344
  * // Remove the float button after 2 seconds
211
345
  * setTimeout(() => {
212
- * disposeable?.dispose();
346
+ * disposable?.dispose();
213
347
  * }, 2000);
214
348
  * ```
215
349
  */
@@ -412,6 +546,14 @@ export interface IFWorksheetLegacy {
412
546
  newOverGridImage(): FOverGridImageBuilder;
413
547
  }
414
548
  export declare class FWorksheetLegacy extends FWorksheet implements IFWorksheetLegacy {
549
+ getFloatDomById(id: string): Nullable<IFCanvasFloatDomResult>;
550
+ getAllFloatDoms(): IFCanvasFloatDomResult[];
551
+ updateFloatDom(id: string, config: Partial<Omit<IFCanvasFloatDomResult, 'id'>>): this;
552
+ batchUpdateFloatDoms(updates: Array<{
553
+ id: string;
554
+ config: Partial<Omit<IFCanvasFloatDomResult, 'id'>>;
555
+ }>): this;
556
+ removeFloatDom(id: string): this;
415
557
  addFloatDomToPosition(layer: IFICanvasFloatDom, id?: string): Nullable<{
416
558
  id: string;
417
559
  dispose: () => void;
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import './global.css';
17
+ export { drawingPositionToTransform, transformToDrawingPosition } from './basics/transform-position';
17
18
  export { DeleteDrawingsCommand } from './commands/commands/delete-drawings.command';
18
19
  export { GroupSheetDrawingCommand } from './commands/commands/group-sheet-drawing.command';
19
20
  export { type IInsertImageCommandParams, InsertFloatImageCommand } from './commands/commands/insert-image.command';
@@ -30,5 +31,5 @@ export { SidebarSheetDrawingOperation } from './commands/operations/open-drawing
30
31
  export type { IUniverSheetsDrawingUIConfig } from './controllers/config.schema';
31
32
  export { SheetDrawingUpdateController } from './controllers/sheet-drawing-update.controller';
32
33
  export { UniverSheetsDrawingUIPlugin } from './plugin';
33
- export { type ICanvasFloatDom, type IDOMAnchor, SheetCanvasFloatDomManagerService } from './services/canvas-float-dom-manager.service';
34
+ export { calcSheetFloatDomPosition, type ICanvasFloatDom, type ICanvasFloatDomInfo, type IDOMAnchor, SheetCanvasFloatDomManagerService } from './services/canvas-float-dom-manager.service';
34
35
  export { SHEETS_IMAGE_MENU_ID } from './views/menu/image.menu';
@@ -128,7 +128,6 @@ export declare class SheetCanvasFloatDomManagerService extends Disposable {
128
128
  private _getPosition;
129
129
  private _featureUpdateListener;
130
130
  private _deleteListener;
131
- updateFloatDomProps(unitId: string, subUnitId: string, id: string, props: Record<string, any>): void;
132
131
  addFloatDomToPosition(layer: ICanvasFloatDom, propId?: string): {
133
132
  id: string;
134
133
  dispose: () => void;
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(a,u){typeof exports=="object"&&typeof module<"u"?u(require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-ui/facade"),require("@univerjs/sheets/facade"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/core/facade","@univerjs/drawing","@univerjs/engine-render","@univerjs/sheets-drawing-ui","@univerjs/sheets-ui","@univerjs/sheets-drawing","@univerjs/sheets-ui/facade","@univerjs/sheets/facade","@univerjs/ui"],u):(a=typeof globalThis<"u"?globalThis:a||self,u(a.UniverCore,a.UniverCoreFacade,a.UniverDrawing,a.UniverEngineRender,a.UniverSheetsDrawingUi,a.UniverSheetsUi,a.UniverSheetsDrawing,a.UniverSheetsUiFacade,a.UniverSheetsFacade,a.UniverUi))})(this,function(a,u,v,S,g,w,l,C,_,E){"use strict";var W=Object.defineProperty;var H=(a,u,v)=>u in a?W(a,u,{enumerable:!0,configurable:!0,writable:!0,value:v}):a[u]=v;var T=(a,u,v)=>H(a,typeof u!="symbol"?u+"":u,v);var j=Object.getOwnPropertyDescriptor,R=(r,i,t,e)=>{for(var n=e>1?void 0:e?j(i,t):i,s=r.length-1,o;s>=0;s--)(o=r[s])&&(n=o(n)||n);return n},y=(r,i)=>(t,e)=>i(t,e,r);function G(r,i){const{from:t,to:e,flipY:n=!1,flipX:s=!1,angle:o=0,skewX:c=0,skewY:d=0}=r.sheetTransform,{column:h,columnOffset:m,row:f,rowOffset:b}=t,k=w.convertPositionSheetOverGridToAbsolute(r.unitId,r.subUnitId,{from:t,to:e},i),{width:O,height:D}=k;return{...r,column:h,columnOffset:m,row:f,rowOffset:b,width:O,height:D,flipY:n,flipX:s,angle:o,skewX:c,skewY:d}}function F(r,i,t){const{column:e,columnOffset:n,row:s,rowOffset:o,flipY:c=!1,flipX:d=!1,angle:h=0,skewX:m=0,skewY:f=0,width:b,height:k}=r,O=w.convertPositionCellToSheetOverGrid(r.unitId,r.subUnitId,{column:e,columnOffset:n,row:s,rowOffset:o},b,k,i,t),{sheetTransform:D,transform:U}=O;return{...r,sheetTransform:{...D,flipY:c,flipX:d,angle:h,skewX:m,skewY:f},transform:{...U,flipY:c,flipX:d,angle:h,skewX:m,skewY:f}}}let p=class{constructor(r,i,t){T(this,"_image");this._injector=t,this._image={drawingId:a.generateRandomId(6),drawingType:a.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:a.ImageSourceType.BASE64,source:"",unitId:r,subUnitId:i,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(r){const t=this._injector.get(S.IRenderManagerService).getRenderById(r.unitId);if(!t)throw new Error(`Render Unit with unitId ${r.unitId} not found`);const e=t.with(w.SheetSkeletonManagerService);return r.sheetTransform==null&&(r.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=G(r,e),this}setSource(r,i){const t=i!=null?i:a.ImageSourceType.URL;return this._image.source=r,this._image.imageSourceType=t,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(r){return this._image.column=r,this}setRow(r){return this._image.row=r,this}setColumnOffset(r){return this._image.columnOffset=r,this}setRowOffset(r){return this._image.rowOffset=r,this}setWidth(r){return this._image.width=r,this}setHeight(r){return this._image.height=r,this}setAnchorType(r){return this._image.anchorType=r,this}setCropTop(r){return this._initializeSrcRect(),this._image.srcRect.top=r,this}setCropLeft(r){return this._initializeSrcRect(),this._image.srcRect.left=r,this}setCropBottom(r){return this._initializeSrcRect(),this._image.srcRect.bottom=r,this}setCropRight(r){return this._initializeSrcRect(),this._image.srcRect.right=r,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(r){return this._image.angle=r,this}setUnitId(r){return this._image.unitId=r,this}setSubUnitId(r){return this._image.subUnitId=r,this}async buildAsync(){const i=this._injector.get(S.IRenderManagerService).getRenderById(this._image.unitId);if(!i)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const t=i.with(w.ISheetSelectionRenderService),e=i.with(w.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const n=await v.getImageSize(this._image.source),s=n.width,o=n.height;this._image.width===0&&(this._image.width=s),this._image.height===0&&(this._image.height=o)}return F(this._image,t,e)}};p=R([y(2,a.Inject(a.Injector))],p);let I=class extends u.FBase{constructor(r,i,t){super(),this._image=r,this._commandService=i,this._injector=t}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(g.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const r=this._injector.createInstance(p);return r.setImage(this._image),r}setSource(r,i){const t=i!=null?i:a.ImageSourceType.URL;return this._image.source=r,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(r,i,t,e){const n=this.toBuilder();n.setColumn(i),n.setRow(r),t!=null&&n.setRowOffset(t),e!=null&&n.setColumnOffset(e);const s=await n.buildAsync();return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[s]})}async setSizeAsync(r,i){const t=this.toBuilder();t.setWidth(r),t.setHeight(i);const e=await t.buildAsync();return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(r,i,t,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),r!=null&&(this._image.srcRect.top=r),i!=null&&(this._image.srcRect.left=i),t!=null&&(this._image.srcRect.bottom=t),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(r){return this._image.sheetTransform.angle=r,this._image.transform&&(this._image.transform.angle=r),this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:a.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:a.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:a.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:a.ArrangeTypeEnum.front})}};I=R([y(1,a.ICommandService),y(2,a.Inject(a.Injector))],I);class B extends _.FWorksheet{addFloatDomToPosition(i,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:s,disposableCollection:o}=C.transformComponentKey(i,this._injector.get(E.ComponentManager)),d=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...i,componentKey:s,unitId:e,subUnitId:n},t);return d?(o.add(d.dispose),{id:d.id,dispose:()=>{o.dispose(),d.dispose()}}):(o.dispose(),null)}addFloatDomToRange(i,t,e,n){const s=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=C.transformComponentKey(t,this._injector.get(E.ComponentManager)),m=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToRange(i.getRange(),{...t,componentKey:c,unitId:s,subUnitId:o},e,n);return m?(d.add(m.dispose),{id:m.id,dispose:()=>{d.dispose(),m.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(i,t,e,n){const s=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=C.transformComponentKey(t,this._injector.get(E.ComponentManager)),m=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(i,{...t,componentKey:c,unitId:s,subUnitId:o},e,n);return m?(d.add(m.dispose),{id:m.id,dispose:()=>{d.dispose(),m.dispose()}}):(d.dispose(),null)}async insertImage(i,t,e,n,s){const o=this.newOverGridImage();if(typeof i=="string")o.setSource(i);else{const h=await i.getBlob().getDataAsString();o.setSource(h,a.ImageSourceType.BASE64)}t!==void 0?o.setColumn(t):o.setColumn(0),e!==void 0?o.setRow(e):o.setRow(0),n!==void 0?o.setColumnOffset(n):o.setColumnOffset(0),s!==void 0?o.setRowOffset(s):o.setRowOffset(0);const c=await o.buildAsync();return this._commandService.syncExecuteCommand(g.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[c]})}insertImages(i){const t=i.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(g.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(i){const t=i.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(g.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){const t=this._injector.get(l.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const n in t){const s=t[n];s.drawingType===a.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(I,s))}return e}getImageById(i){const e=this._injector.get(l.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:i});return e&&e.drawingType===a.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(I,e):null}getActiveImages(){const t=this._injector.get(l.ISheetDrawingService).getFocusDrawings(),e=[];for(const n in t){const s=t[n];e.push(this._injector.createInstance(I,s))}return e}updateImages(i){return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:i}),this}onImageInserted(i){const t=this._injector.get(l.ISheetDrawingService);return a.toDisposable(t.add$.subscribe(e=>{const n=e.map(s=>this._injector.createInstance(I,t.getDrawingByParam(s)));i(n)}))}onImageDeleted(i){const t=this._injector.get(l.ISheetDrawingService);return a.toDisposable(t.remove$.subscribe(e=>{const n=e.map(s=>this._injector.createInstance(I,t.getDrawingByParam(s)));i(n)}))}onImageChanged(i){const t=this._injector.get(l.ISheetDrawingService);return a.toDisposable(t.update$.subscribe(e=>{const n=e.map(s=>this._injector.createInstance(I,t.getDrawingByParam(s)));i(n)}))}newOverGridImage(){const i=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(p,i,t)}}_.FWorksheet.extend(B);class x extends u.FEnum{get DrawingType(){return a.DrawingTypeEnum}get ImageSourceType(){return a.ImageSourceType}get SheetDrawingAnchorType(){return l.SheetDrawingAnchorType}}u.FEnum.extend(x);class A extends u.FEventName{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"}}u.FEventName.extend(A);class M extends u.FUniver{_initialize(i){const t=i.get(a.ICommandService);this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:o}=n,c={workbook:s,insertImageParams:o};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,c),c.cancel)throw new a.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const o=i.get(v.IDrawingManagerService),{drawings:c}=n,d=c.map(m=>o.getDrawingByParam(m)),h={workbook:s,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,h),h.cancel)throw new a.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:o}=n,c=i.get(v.IDrawingManagerService),d=[];o.forEach(m=>{const f=c.getDrawingByParam(m);f!=null&&d.push({changeParam:m,image:this._injector.createInstance(I,f)})});const h={workbook:s,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,h),h.cancel)throw c.updateNotification(o),new a.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null)return;const o=i.get(v.IDrawingManagerService),c=o.getFocusDrawings(),d=n.map(m=>o.getDrawingByParam(m)),h={workbook:s,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(c)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,h),h.cancel)throw new a.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:s,images:this._createFOverGridImage(o)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:o}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:s,removeImageParams:o})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:o}=n,c=i.get(v.IDrawingManagerService),d=o.map(h=>this._injector.createInstance(I,c.getDrawingByParam(h)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:s,images:d})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null)return;const o=i.get(v.IDrawingManagerService),c=n.map(d=>o.getDrawingByParam(d));this.fireEvent(this.Event.OverGridImageSelected,{workbook:s,selectedImages:this._createFOverGridImage(c)})}))}_createFOverGridImage(i){return i.map(t=>this._injector.createInstance(I,t))}}u.FUniver.extend(M);class P extends _.FRange{async insertCellImageAsync(i){var s;const t=this._injector.get(S.IRenderManagerService),e=(s=S.getCurrentTypeOfRenderer(a.UniverInstanceType.UNIVER_SHEET,this._injector.get(a.IUniverInstanceService),t))==null?void 0:s.with(g.SheetDrawingUpdateController);if(!e)return!1;const n={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof i=="string"?e.insertCellImageByUrl(i,n):e.insertCellImageByFile(i,n)}}_.FRange.extend(P)});
1
+ (function(c,l){typeof exports=="object"&&typeof module<"u"?l(require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/drawing"),require("@univerjs/engine-render"),require("@univerjs/sheets-drawing-ui"),require("@univerjs/sheets-ui"),require("@univerjs/sheets-drawing"),require("@univerjs/sheets-ui/facade"),require("@univerjs/sheets/facade"),require("@univerjs/ui")):typeof define=="function"&&define.amd?define(["@univerjs/core","@univerjs/core/facade","@univerjs/drawing","@univerjs/engine-render","@univerjs/sheets-drawing-ui","@univerjs/sheets-ui","@univerjs/sheets-drawing","@univerjs/sheets-ui/facade","@univerjs/sheets/facade","@univerjs/ui"],l):(c=typeof globalThis<"u"?globalThis:c||self,l(c.UniverCore,c.UniverCoreFacade,c.UniverDrawing,c.UniverEngineRender,c.UniverSheetsDrawingUi,c.UniverSheetsUi,c.UniverSheetsDrawing,c.UniverSheetsUiFacade,c.UniverSheetsFacade,c.UniverUi))})(this,function(c,l,v,E,g,D,w,b,C,F){"use strict";var H=Object.defineProperty;var K=(c,l,v)=>l in c?H(c,l,{enumerable:!0,configurable:!0,writable:!0,value:v}):c[l]=v;var B=(c,l,v)=>K(c,typeof l!="symbol"?l+"":l,v);var j=Object.getOwnPropertyDescriptor,O=(o,i,t,e)=>{for(var r=e>1?void 0:e?j(i,t):i,n=o.length-1,a;n>=0;n--)(a=o[n])&&(r=a(r)||r);return r},R=(o,i)=>(t,e)=>i(t,e,o);function A(o,i){const{from:t,to:e,flipY:r=!1,flipX:n=!1,angle:a=0,skewX:s=0,skewY:d=0}=o.sheetTransform,{column:u,columnOffset:m,row:h,rowOffset:I}=t,_=D.convertPositionSheetOverGridToAbsolute(o.unitId,o.subUnitId,{from:t,to:e},i),{width:f,height:S}=_;return{...o,column:u,columnOffset:m,row:h,rowOffset:I,width:f,height:S,flipY:r,flipX:n,angle:a,skewX:s,skewY:d}}function G(o,i,t){const{column:e,columnOffset:r,row:n,rowOffset:a,flipY:s=!1,flipX:d=!1,angle:u=0,skewX:m=0,skewY:h=0,width:I,height:_}=o,f=D.convertPositionCellToSheetOverGrid(o.unitId,o.subUnitId,{column:e,columnOffset:r,row:n,rowOffset:a},I,_,i,t),{sheetTransform:S,transform:T}=f;return{...o,sheetTransform:{...S,flipY:s,flipX:d,angle:u,skewX:m,skewY:h},transform:{...T,flipY:s,flipX:d,angle:u,skewX:m,skewY:h}}}let y=class{constructor(o,i,t){B(this,"_image");this._injector=t,this._image={drawingId:c.generateRandomId(6),drawingType:c.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:c.ImageSourceType.BASE64,source:"",unitId:o,subUnitId:i,column:0,columnOffset:0,row:0,rowOffset:0,width:0,height:0}}setImage(o){const t=this._injector.get(E.IRenderManagerService).getRenderById(o.unitId);if(!t)throw new Error(`Render Unit with unitId ${o.unitId} not found`);const e=t.with(D.SheetSkeletonManagerService);return o.sheetTransform==null&&(o.sheetTransform={from:{column:0,columnOffset:0,row:0,rowOffset:0},to:{column:0,columnOffset:0,row:0,rowOffset:0}}),this._image=A(o,e),this}setSource(o,i){const t=i!=null?i:c.ImageSourceType.URL;return this._image.source=o,this._image.imageSourceType=t,this}getSource(){return this._image.source}getSourceType(){return this._image.imageSourceType}setColumn(o){return this._image.column=o,this}setRow(o){return this._image.row=o,this}setColumnOffset(o){return this._image.columnOffset=o,this}setRowOffset(o){return this._image.rowOffset=o,this}setWidth(o){return this._image.width=o,this}setHeight(o){return this._image.height=o,this}setAnchorType(o){return this._image.anchorType=o,this}setCropTop(o){return this._initializeSrcRect(),this._image.srcRect.top=o,this}setCropLeft(o){return this._initializeSrcRect(),this._image.srcRect.left=o,this}setCropBottom(o){return this._initializeSrcRect(),this._image.srcRect.bottom=o,this}setCropRight(o){return this._initializeSrcRect(),this._image.srcRect.right=o,this}_initializeSrcRect(){this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0})}setRotate(o){return this._image.angle=o,this}setUnitId(o){return this._image.unitId=o,this}setSubUnitId(o){return this._image.subUnitId=o,this}async buildAsync(){const i=this._injector.get(E.IRenderManagerService).getRenderById(this._image.unitId);if(!i)throw new Error(`Render Unit with unitId ${this._image.unitId} not found`);const t=i.with(D.ISheetSelectionRenderService),e=i.with(D.SheetSkeletonManagerService);if(this._image.width===0||this._image.height===0){const r=await v.getImageSize(this._image.source),n=r.width,a=r.height;this._image.width===0&&(this._image.width=n),this._image.height===0&&(this._image.height=a)}return G(this._image,t,e)}};y=O([R(2,c.Inject(c.Injector))],y);let p=class extends l.FBase{constructor(o,i,t){super(),this._image=o,this._commandService=i,this._injector=t}getId(){return this._image.drawingId}getType(){return this._image.drawingType}remove(){return this._commandService.syncExecuteCommand(g.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const o=this._injector.createInstance(y);return o.setImage(this._image),o}setSource(o,i){const t=i!=null?i:c.ImageSourceType.URL;return this._image.source=o,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}async setPositionAsync(o,i,t,e){const r=this.toBuilder();r.setColumn(i),r.setRow(o),t!=null&&r.setRowOffset(t),e!=null&&r.setColumnOffset(e);const n=await r.buildAsync();return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[n]})}async setSizeAsync(o,i){const t=this.toBuilder();t.setWidth(o),t.setHeight(i);const e=await t.buildAsync();return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[e]})}setCrop(o,i,t,e){return this._image.srcRect==null&&(this._image.srcRect={top:0,left:0,bottom:0,right:0}),o!=null&&(this._image.srcRect.top=o),i!=null&&(this._image.srcRect.left=i),t!=null&&(this._image.srcRect.bottom=t),e!=null&&(this._image.srcRect.right=e),this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(o){return this._image.sheetTransform.angle=o,this._image.transform&&(this._image.transform.angle=o),this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(g.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:c.ArrangeTypeEnum.front})}};p=O([R(1,c.ICommandService),R(2,c.Inject(c.Injector))],p);class M extends C.FWorksheet{getFloatDomById(i){const e=this._injector.get(g.SheetCanvasFloatDomManagerService).getFloatDomInfo(i);if(!e)return null;const{unitId:r,subUnitId:n}=e,{rect:a}=e,s=a.getState(),{left:d=0,top:u=0,width:m=0,height:h=0,flipX:I=!1,flipY:_=!1,angle:f=0,skewX:S=0,skewY:T=0}=s,k=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:r,subUnitId:n});return k?{position:{left:d,top:u,width:m,height:h,flipX:I,flipY:_,angle:f,skewX:S,skewY:T},componentKey:k.componentKey,allowTransform:k.allowTransform,data:k.data,id:e.id}:null}getAllFloatDoms(){const i=this._injector.get(g.SheetCanvasFloatDomManagerService),t=this._workbook.getUnitId(),e=this._worksheet.getSheetId();return Array.from(i.getFloatDomsBySubUnitId(t,e).values()).map(r=>{const{rect:n}=r,a=this._injector.get(w.ISheetDrawingService).getDrawingByParam({drawingId:r.id,unitId:t,subUnitId:e}),{left:s,top:d,width:u,height:m,flipX:h,flipY:I,angle:_,skewX:f,skewY:S}=n.getState();return{position:{left:s,top:d,width:u,height:m,flipX:h,flipY:I,angle:_,skewX:f,skewY:S},componentKey:a.componentKey,allowTransform:a.allowTransform,data:a.data,id:r.id}})}updateFloatDom(i,t){var f,S;const r=this._injector.get(g.SheetCanvasFloatDomManagerService).getFloatDomInfo(i);if(!r)return this;const{unitId:n,subUnitId:a}=r,s=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:n,subUnitId:a,drawingId:i}),d=this._injector.get(E.IRenderManagerService);if(!d.getRenderById(n))return this;if(!this.getSkeleton())return this;const h=(f=d.getRenderById(this.getWorkbook().getUnitId()))==null?void 0:f.with(D.ISheetSelectionRenderService);if(!h)return this;const I={...s,componentKey:t.componentKey||s.componentKey,allowTransform:t.allowTransform!==void 0?t.allowTransform:s.allowTransform,data:t.data||s.data,sheetTransform:t.position&&(S=g.transformToDrawingPosition(t.position,h))!=null?S:s.sheetTransform,transform:{...s.transform,...t.position}};if(!this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:n,subUnitId:a,drawings:[I]}))throw new Error("updateFloatDom failed");return this}batchUpdateFloatDoms(i){var a;const t=this._injector.get(g.SheetCanvasFloatDomManagerService),e=this._injector.get(w.ISheetDrawingService),r=this._injector.get(E.IRenderManagerService),n=[];for(const s of i){const d=t.getFloatDomInfo(s.id);if(!d)continue;const{unitId:u,subUnitId:m}=d,h=e.getDrawingByParam({unitId:u,subUnitId:m,drawingId:s.id});if(!h)continue;const I=r.getRenderById(u);if(!I||!this.getSkeleton())continue;const f=I.with(D.ISheetSelectionRenderService);if(!f)return this;const S={...h,componentKey:s.config.componentKey||h.componentKey,allowTransform:s.config.allowTransform!==void 0?s.config.allowTransform:h.allowTransform,data:s.config.data||h.data,sheetTransform:s.config.position&&(a=g.transformToDrawingPosition(s.config.position,f))!=null?a:h.sheetTransform,transform:{...h.transform,...s.config.position}};n.push(S)}if(n.length>0){const s=this._workbook.getUnitId(),d=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:s,subUnitId:d,drawings:n}))throw new Error("batchUpdateFloatDoms failed")}return this}removeFloatDom(i){const e=this._injector.get(g.SheetCanvasFloatDomManagerService).getFloatDomInfo(i);if(!e)return this;const{unitId:r,subUnitId:n}=e,s=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:r,subUnitId:n,drawingId:i});if(!s)return this;if(!this._commandService.syncExecuteCommand(g.RemoveSheetDrawingCommand.id,{unitId:r,drawings:[s]}))throw new Error("removeFloatDom failed");return this}addFloatDomToPosition(i,t){const e=this._workbook.getUnitId(),r=this._worksheet.getSheetId(),{key:n,disposableCollection:a}=b.transformComponentKey(i,this._injector.get(F.ComponentManager)),d=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...i,componentKey:n,unitId:e,subUnitId:r},t);return d?(a.add(d.dispose),{id:d.id,dispose:()=>{a.dispose(),d.dispose()}}):(a.dispose(),null)}addFloatDomToRange(i,t,e,r){const n=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:s,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),m=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToRange(i.getRange(),{...t,componentKey:s,unitId:n,subUnitId:a},e,r);return m?(d.add(m.dispose),{id:m.id,dispose:()=>{d.dispose(),m.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(i,t,e,r){const n=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:s,disposableCollection:d}=b.transformComponentKey(t,this._injector.get(F.ComponentManager)),m=this._injector.get(g.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(i,{...t,componentKey:s,unitId:n,subUnitId:a},e,r);return m?(d.add(m.dispose),{id:m.id,dispose:()=>{d.dispose(),m.dispose()}}):(d.dispose(),null)}async insertImage(i,t,e,r,n){const a=this.newOverGridImage();if(typeof i=="string")a.setSource(i);else{const u=await i.getBlob().getDataAsString();a.setSource(u,c.ImageSourceType.BASE64)}t!==void 0?a.setColumn(t):a.setColumn(0),e!==void 0?a.setRow(e):a.setRow(0),r!==void 0?a.setColumnOffset(r):a.setColumnOffset(0),n!==void 0?a.setRowOffset(n):a.setRowOffset(0);const s=await a.buildAsync();return this._commandService.syncExecuteCommand(g.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:[s]})}insertImages(i){const t=i.map(e=>(e.unitId=this._fWorkbook.getId(),e.subUnitId=this.getSheetId(),e));return this._commandService.syncExecuteCommand(g.InsertSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}deleteImages(i){const t=i.map(e=>({unitId:this._fWorkbook.getId(),drawingId:e.getId(),subUnitId:this.getSheetId(),drawingType:e.getType()}));return this._commandService.syncExecuteCommand(g.RemoveSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:t}),this}getImages(){const t=this._injector.get(w.ISheetDrawingService).getDrawingData(this._fWorkbook.getId(),this.getSheetId()),e=[];for(const r in t){const n=t[r];n.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE&&e.push(this._injector.createInstance(p,n))}return e}getImageById(i){const e=this._injector.get(w.ISheetDrawingService).getDrawingByParam({unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),drawingId:i});return e&&e.drawingType===c.DrawingTypeEnum.DRAWING_IMAGE?this._injector.createInstance(p,e):null}getActiveImages(){const t=this._injector.get(w.ISheetDrawingService).getFocusDrawings(),e=[];for(const r in t){const n=t[r];e.push(this._injector.createInstance(p,n))}return e}updateImages(i){return this._commandService.syncExecuteCommand(g.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:i}),this}onImageInserted(i){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.add$.subscribe(e=>{const r=e.map(n=>this._injector.createInstance(p,t.getDrawingByParam(n)));i(r)}))}onImageDeleted(i){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.remove$.subscribe(e=>{const r=e.map(n=>this._injector.createInstance(p,t.getDrawingByParam(n)));i(r)}))}onImageChanged(i){const t=this._injector.get(w.ISheetDrawingService);return c.toDisposable(t.update$.subscribe(e=>{const r=e.map(n=>this._injector.createInstance(p,t.getDrawingByParam(n)));i(r)}))}newOverGridImage(){const i=this._fWorkbook.getId(),t=this.getSheetId();return this._injector.createInstance(y,i,t)}}C.FWorksheet.extend(M);class x extends l.FEnum{get DrawingType(){return c.DrawingTypeEnum}get ImageSourceType(){return c.ImageSourceType}get SheetDrawingAnchorType(){return w.SheetDrawingAnchorType}}l.FEnum.extend(x);class P extends l.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"}}l.FEventName.extend(P);class W extends l.FUniver{_initialize(i){const t=i.get(c.ICommandService);this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=a.filter(u=>u.drawingType===c.DrawingTypeEnum.DRAWING_DOM);if(s.length===0)return;const d={workbook:n,drawings:s};if(this.fireEvent(this.Event.BeforeFloatDomAdd,d),d.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomAdded,()=>t.onCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=a.filter(d=>d.drawingType===c.DrawingTypeEnum.DRAWING_DOM);s.length!==0&&this.fireEvent(this.Event.FloatDomAdded,{workbook:n,drawings:s})})),this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s={workbook:n,insertImageParams:a};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,s),s.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const a=i.get(v.IDrawingManagerService),{drawings:s}=r,d=s.map(m=>a.getDrawingByParam(m)),u={workbook:n,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=i.get(v.IDrawingManagerService),d=[];a.forEach(m=>{const h=s.getDrawingByParam(m);h!=null&&d.push({changeParam:m,image:this._injector.createInstance(p,h)})});const u={workbook:n,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,u),u.cancel)throw s.updateNotification(a),new c.CanceledError})),this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=i.get(v.IDrawingManagerService),d=[];if(a.forEach(m=>{const h=s.getDrawingByParam(m);(h==null?void 0:h.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(h)}),d.length===0)return;const u={workbook:n,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw s.updateNotification(a),new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomUpdated,()=>t.onCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=i.get(v.IDrawingManagerService),d=[];a.forEach(u=>{const m=s.getDrawingByParam(u);(m==null?void 0:m.drawingType)===c.DrawingTypeEnum.DRAWING_DOM&&d.push(m)}),d.length!==0&&this.fireEvent(this.Event.FloatDomUpdated,{workbook:n,drawings:d})})),this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>t.beforeCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const a=i.get(v.IDrawingManagerService),{drawings:s}=r,d=s.map(m=>a.getDrawingByParam(m)).filter(m=>(m==null?void 0:m.drawingType)===c.DrawingTypeEnum.DRAWING_DOM);if(d.length===0)return;const u={workbook:n,drawings:d};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.FloatDomDeleted,()=>t.onCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r;this.fireEvent(this.Event.FloatDomDeleted,{workbook:n,drawings:a.filter(s=>s.drawingType===c.DrawingTypeEnum.DRAWING_DOM).map(s=>s.drawingId)})})),this.registerEventHandler(this.Event.BeforeOverGridImageSelect,()=>t.beforeCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null)return;const a=i.get(v.IDrawingManagerService),s=a.getFocusDrawings(),d=r.map(m=>a.getDrawingByParam(m)),u={workbook:n,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(s)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,u),u.cancel)throw new c.CanceledError})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==g.InsertSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r;this.fireEvent(this.Event.OverGridImageInserted,{workbook:n,images:this._createFOverGridImage(a)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==g.RemoveSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:n,removeImageParams:a})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(e=>{if(e.id!==g.SetSheetDrawingCommand.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null||r==null)return;const{drawings:a}=r,s=i.get(v.IDrawingManagerService),d=a.map(u=>this._injector.createInstance(p,s.getDrawingByParam(u)));this.fireEvent(this.Event.OverGridImageChanged,{workbook:n,images:d})})),this.registerEventHandler(this.Event.OverGridImageSelected,()=>t.onCommandExecuted(e=>{if(e.id!==v.SetDrawingSelectedOperation.id)return;const r=e.params,n=this.getActiveWorkbook();if(n==null)return;const a=i.get(v.IDrawingManagerService),s=r.map(d=>a.getDrawingByParam(d));this.fireEvent(this.Event.OverGridImageSelected,{workbook:n,selectedImages:this._createFOverGridImage(s)})}))}_createFOverGridImage(i){return i.map(t=>this._injector.createInstance(p,t))}}l.FUniver.extend(W);class U extends C.FRange{async insertCellImageAsync(i){var n;const t=this._injector.get(E.IRenderManagerService),e=(n=E.getCurrentTypeOfRenderer(c.UniverInstanceType.UNIVER_SHEET,this._injector.get(c.IUniverInstanceService),t))==null?void 0:n.with(g.SheetDrawingUpdateController);if(!e)return!1;const r={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof i=="string"?e.insertCellImageByUrl(i,r):e.insertCellImageByFile(i,r)}}C.FRange.extend(U)});