@univerjs/sheets-drawing-ui 0.6.0-nightly.202502181606 → 0.6.0-nightly.202502191606

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.
@@ -13,28 +13,47 @@ export interface IFICanvasFloatDom extends Omit<ICanvasFloatDom, 'componentKey'
13
13
  export interface IFWorksheetLegacy {
14
14
  /**
15
15
  * Add a float dom to position.
16
- * @param layer float dom config
17
- * @param id float dom id, if not given will be auto generated
16
+ * @param {IFICanvasFloatDom} layer - The float dom layer configuration.
17
+ * @param {string} [id] - The float dom id, if not given will be auto generated.
18
18
  * @returns float dom id and dispose function
19
19
  * @example
20
20
  * ```ts
21
- let sheet = univerAPI.getActiveWorkbook().getActiveSheet();
22
- sheet.addFloatDomToPosition({
23
- allowTransform: false,
24
- initPosition: {
25
- startX: 200,
26
- endX: 400,
27
- startY: 200,
28
- endY: 400,
29
- },
30
- componentKey: 'ImageDemo',
31
- props: {
32
- a: 1,
33
- },
34
- data: {
35
- aa: '128',
36
- },
37
- });
21
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
22
+ *
23
+ * // You should register components at an appropriate time (e.g., when Univer is loaded)
24
+ * // This is a React component. For Vue3 components, the third parameter should be `{ framework: 'vue3' }`
25
+ * univerAPI.registerComponent(
26
+ * 'myFloatDom',
27
+ * ({ data }) => (
28
+ * <div style={{ width: '100%', height: '100%', background: '#fff', border: '1px solid #ccc', boxSizing: 'border-box' }}>
29
+ * popup content:
30
+ * {' '}
31
+ * {data?.label}
32
+ * </div>
33
+ * ),
34
+ * );
35
+ *
36
+ * // Add a floating DOM
37
+ * // If disposable is null, floating DOM addition failed
38
+ * const disposeable = fWorksheet.addFloatDomToPosition({
39
+ * componentKey: 'myFloatDom',
40
+ * initPosition: {
41
+ * startX: 100,
42
+ * endX: 300,
43
+ * startY: 100,
44
+ * endY: 200,
45
+ * },
46
+ *
47
+ * // Component data
48
+ * data: {
49
+ * label: 'hahah',
50
+ * },
51
+ * });
52
+ *
53
+ * // Remove the floating DOM
54
+ * setTimeout(() => {
55
+ * disposeable?.dispose();
56
+ * }, 2000);
38
57
  * ```
39
58
  */
40
59
  addFloatDomToPosition(layer: IFICanvasFloatDom, id?: string): Nullable<{
@@ -43,102 +62,192 @@ export interface IFWorksheetLegacy {
43
62
  }>;
44
63
  /**
45
64
  * Add dom over range to FloatDOM, And FloatDOM is registerComponent(BuiltInUIPart.CONTENT)
46
- * @param layer
47
- * @param id
65
+ * @param {FRange} range - The range to add the float dom.
66
+ * @param {Partial<IFICanvasFloatDom>} layer - The float dom layer configuration.
67
+ * @param {Partial<IDOMAnchor>} domLayout - The anchor configuration of the float dom.
68
+ * @param {string} [id] - The float dom id, if not given will be auto generated
69
+ * @returns float dom id and dispose function
48
70
  * @example
49
71
  * ```ts
50
- const sheet = univerAPI.getActiveWorkbook().getActiveSheet();
51
- const range = sheet.getRange(0, 0, 3, 3);
52
- univerAPI.getActiveWorkbook().setActiveRange(range);
53
- const {id, dispose } = sheet.addFloatDomToRange(range, {
54
- allowTransform: false,
55
- componentKey: 'RangeLoading',
56
- props: {
57
- a: 1,
58
- },
59
- data: {
60
- aa: '128',
61
- },
62
- }, {},
63
- 'loadingcover'
64
- )
65
- setTimeout(()=> {
66
- dispose();
67
- }, 2000)
68
-
69
- // another example-------------------
70
- {
71
- const sheet = univerAPI.getActiveWorkbook().getActiveSheet();
72
- const range = univerAPI.getActiveWorkbook().getActiveSheet().getActiveRange()
73
- const {id, dispose } = sheet.addFloatDomToRange(range, {
74
- allowTransform: false,
75
- componentKey: 'FloatButton', // React comp key registered in ComponentManager
76
- props: {
77
- a: 1,
78
- },
79
- data: {
80
- aa: '128',
81
- },
82
- }, {
83
- width: 100,
84
- height: 30,
85
- marginX: '100%', // margin percent to range width, or pixel
86
- marginY: '100%'
87
- },
88
- 'AIButton') // dom id
89
- }
90
-
72
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
73
+ *
74
+ * // Register a range loading component
75
+ * const RangeLoading = () => {
76
+ * const divStyle = {
77
+ * width: '100%',
78
+ * height: '100%',
79
+ * backgroundColor: '#fff',
80
+ * border: '1px solid #ccc',
81
+ * boxSizing: 'border-box' as const,
82
+ * display: 'flex',
83
+ * justifyContent: 'center',
84
+ * alignItems: 'center',
85
+ * textAlign: 'center' as const,
86
+ * transformOrigin: 'top left',
87
+ * };
88
+ *
89
+ * return (
90
+ * <div style={divStyle}>
91
+ * Loading...
92
+ * </div>
93
+ * );
94
+ * };
95
+ * univerAPI.registerComponent('RangeLoading', RangeLoading);
96
+ *
97
+ * // Add the range loading component covering the range A1:C3
98
+ * const range = fWorksheet.getRange('A1:C3');
99
+ * const disposeable = fWorksheet.addFloatDomToRange(range, { componentKey: 'RangeLoading' }, {}, 'myRangeLoading');
100
+ *
101
+ * setTimeout(() => {
102
+ * disposeable?.dispose();
103
+ * }, 2000);
104
+ *
105
+ * // another example-------------------
106
+ * // Register a float button component
107
+ * const FloatButton = () => {
108
+ * const divStyle = {
109
+ * width: '100px',
110
+ * height: '30px',
111
+ * backgroundColor: '#fff',
112
+ * border: '1px solid #ccc',
113
+ * boxSizing: 'border-box' as const,
114
+ * display: 'flex',
115
+ * justifyContent: 'center',
116
+ * alignItems: 'center',
117
+ * textAlign: 'center' as const,
118
+ * cursor: 'pointer',
119
+ * };
120
+ *
121
+ * const clickHandler = () => {
122
+ * console.warn('click');
123
+ * };
124
+ *
125
+ * return (
126
+ * <div style={divStyle} onClick={clickHandler}>
127
+ * FloatButton
128
+ * </div>
129
+ * );
130
+ * };
131
+ * univerAPI.registerComponent('FloatButton', FloatButton);
132
+ *
133
+ * // 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
134
+ * const range2 = fWorksheet.getRange('A5:C7');
135
+ * const disposeable2 = fWorksheet.addFloatDomToRange(range2, {
136
+ * componentKey: 'FloatButton',
137
+ * }, {
138
+ * width: 100,
139
+ * height: 30,
140
+ * marginX: '100%', // margin percent to range width, or pixel
141
+ * marginY: '100%'
142
+ * }, 'myFloatButton');
91
143
  * ```
92
144
  */
93
- addFloatDomToRange(range: FRange, layer: IFICanvasFloatDom, domLayout: IDOMAnchor, id?: string): Nullable<{
145
+ addFloatDomToRange(range: FRange, layer: Partial<IFICanvasFloatDom>, domLayout: Partial<IDOMAnchor>, id?: string): Nullable<{
94
146
  id: string;
95
147
  dispose: () => void;
96
148
  }>;
97
149
  /**
98
150
  * Add dom at column header, And FloatDOM is registerComponent(BuiltInUIPart.CONTENT)
99
- * @param column
100
- * @param layer
101
- * @param domPos
102
- * @param id
151
+ * @param {number} column - The column index to add the float dom.
152
+ * @param {Partial<IFICanvasFloatDom>} layer - The float dom layer configuration.
153
+ * @param {IDOMAnchor} domPos - The anchor configuration of the float dom.
154
+ * @param {string} [id] - The float dom id, if not given will be auto generated
155
+ * @returns float dom id and dispose function
103
156
  * @example
104
157
  * ```ts
105
- {
106
- const sheet = univerAPI.getActiveWorkbook().getActiveSheet();
107
- const rs = sheet.addFloatDomToColumnHeader(3,
108
- {
109
- allowTransform: false,
110
- componentKey: 'FloatButton', // React comp key registered in ComponentManager
111
- props: {
112
- a: 1,
113
- },
114
- },
115
- {width: 100, height: 40, marginX: 0, marginY: 0, horizonOffsetAlign: 'right'},
116
- 'ai-selector' // dom id
117
- )
118
- }
119
- *```
158
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
159
+ *
160
+ * // Register a float button component
161
+ * const FloatButton = () => {
162
+ * const divStyle = {
163
+ * width: '100px',
164
+ * height: '30px',
165
+ * backgroundColor: '#fff',
166
+ * border: '1px solid #ccc',
167
+ * boxSizing: 'border-box' as const,
168
+ * display: 'flex',
169
+ * justifyContent: 'center',
170
+ * alignItems: 'center',
171
+ * textAlign: 'center' as const,
172
+ * cursor: 'pointer',
173
+ * };
174
+ *
175
+ * const clickHandler = () => {
176
+ * console.warn('click');
177
+ * };
178
+ *
179
+ * return (
180
+ * <div style={divStyle} onClick={clickHandler}>
181
+ * FloatButton
182
+ * </div>
183
+ * );
184
+ * };
185
+ * univerAPI.registerComponent('FloatButton', FloatButton);
186
+ *
187
+ * // Add the float button to the column D header, position is right align, width is 100px, height is 30px, margin is 0
188
+ * const disposeable = fWorksheet.addFloatDomToColumnHeader(3, {
189
+ * componentKey: 'FloatButton',
190
+ * allowTransform: false,
191
+ * }, {
192
+ * width: 100,
193
+ * height: 30,
194
+ * marginX: 0,
195
+ * marginY: 0,
196
+ * horizonOffsetAlign: 'right',
197
+ * }, 'myFloatButton');
198
+ *
199
+ * // Remove the float button
200
+ * setTimeout(() => {
201
+ * disposeable?.dispose();
202
+ * }, 2000);
203
+ * ```
120
204
  */
121
- addFloatDomToColumnHeader(column: number, layer: IFICanvasFloatDom, domPos: IDOMAnchor, id?: string): Nullable<{
205
+ addFloatDomToColumnHeader(column: number, layer: Partial<IFICanvasFloatDom>, domPos: IDOMAnchor, id?: string): Nullable<{
122
206
  id: string;
123
207
  dispose: () => void;
124
208
  }>;
125
209
  /**
126
210
  * Insert an image to the sheet
127
- * @param url The image url
128
- * @param column The column to insert the image
129
- * @param row The row to insert the image
130
- * @param offsetX The offset x of the image
131
- * @param offsetY The offset y of the image
211
+ * @param {string} url - The image url
132
212
  * @returns true if the image is inserted successfully
133
213
  * @example
134
214
  * ```ts
135
- * const activeSpreadsheet = univerAPI.getActiveWorkbook();
136
- * const activeSheet = activeSpreadsheet.getActiveSheet();
137
- * activeSheet.insertImage('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', 5, 5, 0, 0);
215
+ * // Insert an image to the sheet, default position is A1
216
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
217
+ * const result = await fWorksheet.insertImage('https://avatars.githubusercontent.com/u/61444807?s=48&v=4');
218
+ * console.log(result);
138
219
  * ```
139
220
  */
140
221
  insertImage(url: string): Promise<boolean>;
222
+ /**
223
+ * @param {string} url - The image url
224
+ * @param {number} column - The column index to insert the image
225
+ * @param {number} row - The row index to insert the image
226
+ * @returns True if the image is inserted successfully
227
+ * @example
228
+ * ```ts
229
+ * // Insert an image to the sheet, position is F6
230
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
231
+ * const result = await fWorksheet.insertImage('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', 5, 5);
232
+ * console.log(result);
233
+ * ```
234
+ */
141
235
  insertImage(url: string, column: number, row: number): Promise<boolean>;
236
+ /**
237
+ * @param {string} url - The image url
238
+ * @param {number} column - The column index to insert the image
239
+ * @param {number} row - The row index to insert the image
240
+ * @param {number} offsetX - The column offset, pixel unit
241
+ * @param {number} offsetY - The row offset, pixel unit
242
+ * @returns True if the image is inserted successfully
243
+ * @example
244
+ * ```ts
245
+ * // Insert an image to the sheet, position is F6, offset is 10px
246
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
247
+ * const result = await fWorksheet.insertImage('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', 5, 5, 10, 10);
248
+ * console.log(result);
249
+ * ```
250
+ */
142
251
  insertImage(url: string, column: number, row: number, offsetX: number, offsetY: number): Promise<boolean>;
143
252
  insertImage(url: IFBlobSource): Promise<boolean>;
144
253
  insertImage(url: IFBlobSource, column: number, row: number): Promise<boolean>;
@@ -146,95 +255,145 @@ export interface IFWorksheetLegacy {
146
255
  insertImage(url: IFBlobSource | string, column: number, row: number, offsetX: number, offsetY: number): Promise<boolean>;
147
256
  /**
148
257
  * Insert images to the sheet
149
- * @param sheetImages The images to insert
150
- * @returns true if the image is inserted successfully
258
+ * @param {ISheetImage[]} sheetImages - The images to insert
259
+ * @returns {FWorksheet} The FWorksheet instance for chaining
151
260
  * @example
152
261
  * ```ts
153
- * const activeSpreadsheet = univerAPI.getActiveWorkbook();
154
- * const activeSheet = activeSpreadsheet.getActiveSheet();
155
- * const imageBuilder = activeSheet.newOverGridImage();
156
- * const param = await imageBuilder.setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4').setColumn(5).setRow(5).setWidth(500).setHeight(300).build();
157
- * activeSheet.insertImages([param]);
158
- * const image = activeSheet.getImageById(param.drawingId);
159
- * console.log(image);
160
- * setTimeout(async ()=>{
161
- * const builder = image.toBuilder();
162
- * const param = await builder.setHeight(50).setWidth(100).build();
163
- * activeSheet.updateImages([param]);
164
- * }, 4000);
262
+ * // create a new image builder and set image source.
263
+ * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 500px, height is 300px
264
+ * const fWorkbook = univerAPI.getActiveWorkbook();
265
+ * const fWorksheet = fWorkbook.getActiveSheet();
266
+ * const image = await fWorksheet.newOverGridImage()
267
+ * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
268
+ * .setColumn(5)
269
+ * .setRow(5)
270
+ * .setWidth(500)
271
+ * .setHeight(300)
272
+ * .buildAsync();
273
+ * fWorksheet.insertImages([image]);
274
+ *
275
+ * // update the image width to 100px and height to 50px
276
+ * setTimeout(async () => {
277
+ * const imageBuilder = fWorksheet.getImageById(image.drawingId).toBuilder();
278
+ * const newImage = await imageBuilder.setWidth(100).setHeight(50).buildAsync();
279
+ * fWorksheet.updateImages([newImage]);
280
+ * }, 4000);
281
+ * ```
165
282
  */
166
283
  insertImages(sheetImages: ISheetImage[]): FWorksheet;
167
284
  /**
168
- * Get all images in current sheet.
169
- * @returns FOverGridImage[]
285
+ * Get all images of the sheet.
286
+ * @returns {FOverGridImage[]} The FOverGridImage instances
170
287
  * @example
171
288
  * ```ts
172
- * univerAPI.getActiveWorkbook().getActiveSheet().getImages();
289
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
290
+ * const images = fWorksheet.getImages();
291
+ * images.forEach((image) => {
292
+ * console.log(image, image.getId());
293
+ * });
173
294
  * ```
174
295
  */
175
296
  getImages(): FOverGridImage[];
176
297
  /**
177
298
  * Get image by drawing id
178
- * @param id - The drawing id of the image
179
- * @returns FOverGridImage | null
299
+ * @param {string} id - The drawing id of the image
300
+ * @returns {FOverGridImage | null} The FOverGridImage instance
180
301
  * @example
181
302
  * ```ts
182
- * univerAPI.getActiveWorkbook().getActiveSheet().getImageById('xxxx');
303
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
304
+ * const image = fWorksheet.getImageById('xxxx');
305
+ * console.log(image);
183
306
  * ```
184
307
  */
185
308
  getImageById(id: string): FOverGridImage | null;
309
+ /**
310
+ * Delete images from the sheet
311
+ * @param {FOverGridImage[]} sheetImages - The images to delete
312
+ * @returns {FWorksheet} The FWorksheet instance for chaining
313
+ * @example
314
+ * ```ts
315
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
316
+ * const image = fWorksheet.getImages()[0];
317
+ * fWorksheet.deleteImages([image]);
318
+ * ```
319
+ */
186
320
  deleteImages(sheetImages: FOverGridImage[]): FWorksheet;
187
321
  /**
188
322
  * Update images to the sheet
189
- * @param sheetImages The images to insert
190
- * @returns true if the image is inserted successfully
323
+ * @param {ISheetImage[]} sheetImages - The images to update
324
+ * @returns {FWorksheet} The FWorksheet instance for chaining
191
325
  * @example
192
326
  * ```ts
193
- * const activeSpreadsheet = univerAPI.getActiveWorkbook();
194
- * const activeSheet = activeSpreadsheet.getActiveSheet();
195
- * const imageBuilder = activeSheet.newOverGridImage();
196
- * const param = await imageBuilder.setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4').setColumn(5).setRow(5).setWidth(500).setHeight(300).build();
197
- * activeSheet.insertImages([param]);
198
- * const image = activeSheet.getImageById(param.drawingId);
199
- * console.log(image);
200
- * setTimeout(async ()=>{
201
- * const builder = image.toBuilder();
202
- * const param = await builder.setHeight(50).setWidth(100).build();
203
- * activeSheet.updateImages([param]);
204
- * }, 4000);
327
+ * // create a new image builder and set image source.
328
+ * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 500px, height is 300px
329
+ * const fWorkbook = univerAPI.getActiveWorkbook();
330
+ * const fWorksheet = fWorkbook.getActiveSheet();
331
+ * const image = await fWorksheet.newOverGridImage()
332
+ * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
333
+ * .setColumn(5)
334
+ * .setRow(5)
335
+ * .setWidth(500)
336
+ * .setHeight(300)
337
+ * .buildAsync();
338
+ * fWorksheet.insertImages([image]);
339
+ *
340
+ * // update the image width to 100px and height to 50px
341
+ * setTimeout(async () => {
342
+ * const imageBuilder = fWorksheet.getImageById(image.drawingId).toBuilder();
343
+ * const newImage = await imageBuilder.setWidth(100).setHeight(50).buildAsync();
344
+ * fWorksheet.updateImages([newImage]);
345
+ * }, 4000);
346
+ * ```
205
347
  */
206
348
  updateImages(sheetImages: ISheetImage[]): FWorksheet;
207
349
  /**
208
- * Get all images in current sheet.
209
- * @returns FOverGridImage[]
350
+ * Get the current selected images.
351
+ * @returns {FOverGridImage[]} The FOverGridImage instances
210
352
  * @example
211
353
  * ```ts
212
- * univerAPI.getActiveWorkbook().getActiveSheet().getImages();
354
+ * const fWorksheet = univerAPI.getActiveWorkbook().getActiveSheet();
355
+ * const images = fWorksheet.getActiveImages();
356
+ * images.forEach((image) => {
357
+ * console.log(image, image.getId());
358
+ * });
213
359
  * ```
214
360
  */
215
361
  getActiveImages(): FOverGridImage[];
216
362
  /**
217
363
  * Hook when a image is inserted.
218
364
  * @param {function(FOverGridImage[]: void)} callback - The callback function when a image is inserted.
365
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.OverGridImageInserted, (params) => {})` as instead
219
366
  */
220
367
  onImageInserted(callback: (images: FOverGridImage[]) => void): IDisposable;
221
368
  /**
222
369
  * Hook when a image is deleted.
223
370
  * @param {function(FOverGridImage[]: void)} callback - The callback function when a image is deleted.
371
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.OverGridImageRemoved, (params) => {})` as instead
224
372
  */
225
373
  onImageDeleted(callback: (images: FOverGridImage[]) => void): IDisposable;
226
374
  /**
227
375
  * Hook when a image is changed.
228
376
  * @param {function(FOverGridImage[]: void)} callback - The callback function when a image is changed.
377
+ * @deprecated use `univerAPI.addEvent(univerAPI.Event.OverGridImageChanged, (params) => {})` as instead
229
378
  */
230
379
  onImageChanged(callback: (images: FOverGridImage[]) => void): IDisposable;
231
380
  /**
232
381
  * Create a new over grid image builder.
233
- * @returns {FOverGridImageBuilder} The builder
382
+ * @returns {FOverGridImageBuilder} The FOverGridImageBuilder instance
234
383
  * @example
235
384
  * ```ts
236
- * // create a new over grid image builder.
237
- * const builder = univerAPI.newOverGridImage();
385
+ * // create a new image builder and set image source.
386
+ * // then build `ISheetImage` and insert it into the sheet, position is start from F6 cell, width is 500px, height is 300px
387
+ * const fWorkbook = univerAPI.getActiveWorkbook();
388
+ * const fWorksheet = fWorkbook.getActiveSheet();
389
+ * const image = await fWorksheet.newOverGridImage()
390
+ * .setSource('https://avatars.githubusercontent.com/u/61444807?s=48&v=4', univerAPI.Enum.ImageSourceType.URL)
391
+ * .setColumn(5)
392
+ * .setRow(5)
393
+ * .setWidth(500)
394
+ * .setHeight(300)
395
+ * .buildAsync();
396
+ * fWorksheet.insertImages([image]);
238
397
  * ```
239
398
  */
240
399
  newOverGridImage(): FOverGridImageBuilder;
@@ -59,8 +59,8 @@ export interface IDOMAnchor {
59
59
  height: number;
60
60
  horizonOffsetAlign?: 'left' | 'right';
61
61
  verticalOffsetAlign?: 'top' | 'bottom';
62
- marginX?: number;
63
- marginY?: number;
62
+ marginX?: number | string;
63
+ marginY?: number | string;
64
64
  }
65
65
  export interface ILimitBound extends IBoundRectNoAngle {
66
66
  /**
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(o,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):(o=typeof globalThis<"u"?globalThis:o||self,u(o.UniverCore,o.UniverCoreFacade,o.UniverDrawing,o.UniverEngineRender,o.UniverSheetsDrawingUi,o.UniverSheetsUi,o.UniverSheetsDrawing,o.UniverSheetsUiFacade,o.UniverSheetsFacade,o.UniverUi))})(this,function(o,u,v,O,m,w,l,_,k,p){"use strict";var H=Object.defineProperty;var q=(o,u,v)=>u in o?H(o,u,{enumerable:!0,configurable:!0,writable:!0,value:v}):o[u]=v;var j=(o,u,v)=>q(o,typeof u!="symbol"?u+"":u,v);var T=Object.defineProperty,B=Object.getOwnPropertyDescriptor,D=(r,i,t,e)=>{for(var n=e>1?void 0:e?B(i,t):i,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(e?a(i,t,n):a(n))||n);return e&&n&&T(i,t,n),n},C=(r,i)=>(t,e)=>i(t,e,r);function F(r,i){const{from:t,to:e,flipY:n=!1,flipX:s=!1,angle:a=0,skewX:c=0,skewY:d=0}=r.sheetTransform,{column:h,columnOffset:g,row:f,rowOffset:b}=t,E=w.convertPositionSheetOverGridToAbsolute(r.unitId,r.subUnitId,{from:t,to:e},i),{left:R,top:G,width:y,height:U}=E;return{...r,column:h,columnOffset:g,row:f,rowOffset:b,width:y,height:U,flipY:n,flipX:s,angle:a,skewX:c,skewY:d}}function A(r,i,t){const{column:e,columnOffset:n,row:s,rowOffset:a,flipY:c=!1,flipX:d=!1,angle:h=0,skewX:g=0,skewY:f=0,width:b,height:E}=r,R=w.convertPositionCellToSheetOverGrid(r.unitId,r.subUnitId,{column:e,columnOffset:n,row:s,rowOffset:a},b,E,i,t),{sheetTransform:G,transform:y}=R;return{...r,sheetTransform:{...G,flipY:c,flipX:d,angle:h,skewX:g,skewY:f},transform:{...y,flipY:c,flipX:d,angle:h,skewX:g,skewY:f}}}let S=class{constructor(r,i,t){j(this,"_image");this._injector=t,this._image={drawingId:o.generateRandomId(6),drawingType:o.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o.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(O.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=F(r,e),this}setSource(r,i){const t=i!=null?i:o.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(O.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,a=n.height;this._image.width===0&&(this._image.width=s),this._image.height===0&&(this._image.height=a)}return A(this._image,t,e)}};S=D([C(2,o.Inject(o.Injector))],S);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(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const r=this._injector.createInstance(S);return r.setImage(this._image),r}setSource(r,i){const t=i!=null?i:o.ImageSourceType.URL;return this._image.source=r,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(m.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(m.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(m.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(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setRotate(r){return this._image.sheetTransform.angle=r,this._commandService.syncExecuteCommand(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.front})}};I=D([C(1,o.ICommandService),C(2,o.Inject(o.Injector))],I);class x extends k.FWorksheet{addFloatDomToPosition(i,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:s,disposableCollection:a}=_.transformComponentKey(i,this._injector.get(p.ComponentManager)),d=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...i,componentKey:s,unitId:e,subUnitId:n},t);return d?(a.add(d.dispose),{id:d.id,dispose:()=>{a.dispose(),d.dispose()}}):(a.dispose(),null)}addFloatDomToRange(i,t,e,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=_.transformComponentKey(t,this._injector.get(p.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToRange(i.getRange(),{...t,componentKey:c,unitId:s,subUnitId:a},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(i,t,e,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=_.transformComponentKey(t,this._injector.get(p.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(i,{...t,componentKey:c,unitId:s,subUnitId:a},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}async insertImage(i,t,e,n,s){const a=this.newOverGridImage();if(typeof i=="string")a.setSource(i);else{const h=await i.getBlob().getDataAsString();a.setSource(h,o.ImageSourceType.BASE64)}t!==void 0?a.setColumn(t):a.setColumn(0),e!==void 0?a.setRow(e):a.setRow(0),n!==void 0?a.setColumnOffset(n):a.setColumnOffset(0),s!==void 0?a.setRowOffset(s):a.setRowOffset(0);const c=await a.buildAsync();return this._commandService.syncExecuteCommand(m.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(m.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(m.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===o.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===o.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(m.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:i}),this}onImageInserted(i){const t=this._injector.get(l.ISheetDrawingService);return o.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 o.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 o.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(S,i,t)}}k.FWorksheet.extend(x);class M extends u.FEnum{get DrawingType(){return o.DrawingTypeEnum}get ImageSourceType(){return o.ImageSourceType}get SheetDrawingAnchorType(){return l.SheetDrawingAnchorType}}u.FEnum.extend(M);class P 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(P);class W extends u.FUniver{_initialize(i){const t=i.get(o.ICommandService);this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c={workbook:s,insertImageParams:a};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,c),c.cancel)throw new Error("Canceled by BeforeOverGridImageInsert event")})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const a=i.get(v.IDrawingManagerService),{drawings:c}=n,d=c.map(g=>a.getDrawingByParam(g)),h={workbook:s,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,h),h.cancel)throw new Error("Canceled by BeforeOverGridImageRemove event")})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c=i.get(v.IDrawingManagerService),d=[];a.forEach(g=>{const f=c.getDrawingByParam(g);f!=null&&d.push({changeParam:g,image:this._injector.createInstance(I,f)})});const h={workbook:s,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,h),h.cancel)throw c.updateNotification(a),new Error("Canceled by BeforeOverGridImageChange event")})),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 a=i.get(v.IDrawingManagerService),c=a.getFocusDrawings(),d=n.map(g=>a.getDrawingByParam(g)),h={workbook:s,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(c)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,h),h.cancel)throw new Error("Canceled by BeforeOverGridImageSelect event")})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:s,images:this._createFOverGridImage(a)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:s,removeImageParams:a})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c=i.get(v.IDrawingManagerService),d=a.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 a=i.get(v.IDrawingManagerService),c=n.map(d=>a.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(W)});
1
+ (function(o,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):(o=typeof globalThis<"u"?globalThis:o||self,u(o.UniverCore,o.UniverCoreFacade,o.UniverDrawing,o.UniverEngineRender,o.UniverSheetsDrawingUi,o.UniverSheetsUi,o.UniverSheetsDrawing,o.UniverSheetsUiFacade,o.UniverSheetsFacade,o.UniverUi))})(this,function(o,u,v,k,m,w,l,_,D,p){"use strict";var U=Object.defineProperty;var H=(o,u,v)=>u in o?U(o,u,{enumerable:!0,configurable:!0,writable:!0,value:v}):o[u]=v;var G=(o,u,v)=>H(o,typeof u!="symbol"?u+"":u,v);var j=Object.defineProperty,T=Object.getOwnPropertyDescriptor,R=(r,i,t,e)=>{for(var n=e>1?void 0:e?T(i,t):i,s=r.length-1,a;s>=0;s--)(a=r[s])&&(n=(e?a(i,t,n):a(n))||n);return e&&n&&j(i,t,n),n},C=(r,i)=>(t,e)=>i(t,e,r);function B(r,i){const{from:t,to:e,flipY:n=!1,flipX:s=!1,angle:a=0,skewX:c=0,skewY:d=0}=r.sheetTransform,{column:h,columnOffset:g,row:f,rowOffset:b}=t,E=w.convertPositionSheetOverGridToAbsolute(r.unitId,r.subUnitId,{from:t,to:e},i),{width:y,height:O}=E;return{...r,column:h,columnOffset:g,row:f,rowOffset:b,width:y,height:O,flipY:n,flipX:s,angle:a,skewX:c,skewY:d}}function F(r,i,t){const{column:e,columnOffset:n,row:s,rowOffset:a,flipY:c=!1,flipX:d=!1,angle:h=0,skewX:g=0,skewY:f=0,width:b,height:E}=r,y=w.convertPositionCellToSheetOverGrid(r.unitId,r.subUnitId,{column:e,columnOffset:n,row:s,rowOffset:a},b,E,i,t),{sheetTransform:O,transform:W}=y;return{...r,sheetTransform:{...O,flipY:c,flipX:d,angle:h,skewX:g,skewY:f},transform:{...W,flipY:c,flipX:d,angle:h,skewX:g,skewY:f}}}let S=class{constructor(r,i,t){G(this,"_image");this._injector=t,this._image={drawingId:o.generateRandomId(6),drawingType:o.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:o.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(k.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=B(r,e),this}setSource(r,i){const t=i!=null?i:o.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(k.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,a=n.height;this._image.width===0&&(this._image.width=s),this._image.height===0&&(this._image.height=a)}return F(this._image,t,e)}};S=R([C(2,o.Inject(o.Injector))],S);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(m.RemoveSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}toBuilder(){const r=this._injector.createInstance(S);return r.setImage(this._image),r}setSource(r,i){const t=i!=null?i:o.ImageSourceType.URL;return this._image.source=r,this._image.imageSourceType=t,this._commandService.syncExecuteCommand(m.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(m.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(m.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(m.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(m.SetSheetDrawingCommand.id,{unitId:this._image.unitId,drawings:[this._image]})}setForward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.forward})}setBackward(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.backward})}setBack(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.back})}setFront(){return this._commandService.syncExecuteCommand(m.SetDrawingArrangeCommand.id,{unitId:this._image.unitId,subUnitId:this._image.subUnitId,drawingIds:[this._image.drawingId],arrangeType:o.ArrangeTypeEnum.front})}};I=R([C(1,o.ICommandService),C(2,o.Inject(o.Injector))],I);class A extends D.FWorksheet{addFloatDomToPosition(i,t){const e=this._workbook.getUnitId(),n=this._worksheet.getSheetId(),{key:s,disposableCollection:a}=_.transformComponentKey(i,this._injector.get(p.ComponentManager)),d=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...i,componentKey:s,unitId:e,subUnitId:n},t);return d?(a.add(d.dispose),{id:d.id,dispose:()=>{a.dispose(),d.dispose()}}):(a.dispose(),null)}addFloatDomToRange(i,t,e,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=_.transformComponentKey(t,this._injector.get(p.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToRange(i.getRange(),{...t,componentKey:c,unitId:s,subUnitId:a},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}addFloatDomToColumnHeader(i,t,e,n){const s=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),{key:c,disposableCollection:d}=_.transformComponentKey(t,this._injector.get(p.ComponentManager)),g=this._injector.get(m.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(i,{...t,componentKey:c,unitId:s,subUnitId:a},e,n);return g?(d.add(g.dispose),{id:g.id,dispose:()=>{d.dispose(),g.dispose()}}):(d.dispose(),null)}async insertImage(i,t,e,n,s){const a=this.newOverGridImage();if(typeof i=="string")a.setSource(i);else{const h=await i.getBlob().getDataAsString();a.setSource(h,o.ImageSourceType.BASE64)}t!==void 0?a.setColumn(t):a.setColumn(0),e!==void 0?a.setRow(e):a.setRow(0),n!==void 0?a.setColumnOffset(n):a.setColumnOffset(0),s!==void 0?a.setRowOffset(s):a.setRowOffset(0);const c=await a.buildAsync();return this._commandService.syncExecuteCommand(m.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(m.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(m.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===o.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===o.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(m.SetSheetDrawingCommand.id,{unitId:this._fWorkbook.getId(),drawings:i}),this}onImageInserted(i){const t=this._injector.get(l.ISheetDrawingService);return o.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 o.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 o.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(S,i,t)}}D.FWorksheet.extend(A);class x extends u.FEnum{get DrawingType(){return o.DrawingTypeEnum}get ImageSourceType(){return o.ImageSourceType}get SheetDrawingAnchorType(){return l.SheetDrawingAnchorType}}u.FEnum.extend(x);class M 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(M);class P extends u.FUniver{_initialize(i){const t=i.get(o.ICommandService);this.registerEventHandler(this.Event.BeforeOverGridImageInsert,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c={workbook:s,insertImageParams:a};if(this.fireEvent(this.Event.BeforeOverGridImageInsert,c),c.cancel)throw new Error("Canceled by BeforeOverGridImageInsert event")})),this.registerEventHandler(this.Event.BeforeOverGridImageRemove,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const a=i.get(v.IDrawingManagerService),{drawings:c}=n,d=c.map(g=>a.getDrawingByParam(g)),h={workbook:s,images:this._createFOverGridImage(d)};if(this.fireEvent(this.Event.BeforeOverGridImageRemove,h),h.cancel)throw new Error("Canceled by BeforeOverGridImageRemove event")})),this.registerEventHandler(this.Event.BeforeOverGridImageChange,()=>t.beforeCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c=i.get(v.IDrawingManagerService),d=[];a.forEach(g=>{const f=c.getDrawingByParam(g);f!=null&&d.push({changeParam:g,image:this._injector.createInstance(I,f)})});const h={workbook:s,images:d};if(this.fireEvent(this.Event.BeforeOverGridImageChange,h),h.cancel)throw c.updateNotification(a),new Error("Canceled by BeforeOverGridImageChange event")})),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 a=i.get(v.IDrawingManagerService),c=a.getFocusDrawings(),d=n.map(g=>a.getDrawingByParam(g)),h={workbook:s,selectedImages:this._createFOverGridImage(d),oldSelectedImages:this._createFOverGridImage(c)};if(this.fireEvent(this.Event.BeforeOverGridImageSelect,h),h.cancel)throw new Error("Canceled by BeforeOverGridImageSelect event")})),this.registerEventHandler(this.Event.OverGridImageInserted,()=>t.onCommandExecuted(e=>{if(e.id!==m.InsertSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n;this.fireEvent(this.Event.OverGridImageInserted,{workbook:s,images:this._createFOverGridImage(a)})})),this.registerEventHandler(this.Event.OverGridImageRemoved,()=>t.onCommandExecuted(e=>{if(e.id!==m.RemoveSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n;this.fireEvent(this.Event.OverGridImageRemoved,{workbook:s,removeImageParams:a})})),this.registerEventHandler(this.Event.OverGridImageChanged,()=>t.onCommandExecuted(e=>{if(e.id!==m.SetSheetDrawingCommand.id)return;const n=e.params,s=this.getActiveWorkbook();if(s==null||n==null)return;const{drawings:a}=n,c=i.get(v.IDrawingManagerService),d=a.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 a=i.get(v.IDrawingManagerService),c=n.map(d=>a.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(P)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-drawing-ui",
3
- "version": "0.6.0-nightly.202502181606",
3
+ "version": "0.6.0-nightly.202502191606",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -59,17 +59,17 @@
59
59
  "dependencies": {
60
60
  "@univerjs/icons": "^0.2.15",
61
61
  "clsx": "^2.1.1",
62
- "@univerjs/core": "0.6.0-nightly.202502181606",
63
- "@univerjs/design": "0.6.0-nightly.202502181606",
64
- "@univerjs/docs-drawing": "0.6.0-nightly.202502181606",
65
- "@univerjs/docs-ui": "0.6.0-nightly.202502181606",
66
- "@univerjs/drawing": "0.6.0-nightly.202502181606",
67
- "@univerjs/drawing-ui": "0.6.0-nightly.202502181606",
68
- "@univerjs/engine-render": "0.6.0-nightly.202502181606",
69
- "@univerjs/sheets": "0.6.0-nightly.202502181606",
70
- "@univerjs/sheets-ui": "0.6.0-nightly.202502181606",
71
- "@univerjs/sheets-drawing": "0.6.0-nightly.202502181606",
72
- "@univerjs/ui": "0.6.0-nightly.202502181606"
62
+ "@univerjs/core": "0.6.0-nightly.202502191606",
63
+ "@univerjs/design": "0.6.0-nightly.202502191606",
64
+ "@univerjs/docs-drawing": "0.6.0-nightly.202502191606",
65
+ "@univerjs/docs-ui": "0.6.0-nightly.202502191606",
66
+ "@univerjs/drawing": "0.6.0-nightly.202502191606",
67
+ "@univerjs/engine-render": "0.6.0-nightly.202502191606",
68
+ "@univerjs/drawing-ui": "0.6.0-nightly.202502191606",
69
+ "@univerjs/sheets": "0.6.0-nightly.202502191606",
70
+ "@univerjs/sheets-drawing": "0.6.0-nightly.202502191606",
71
+ "@univerjs/sheets-ui": "0.6.0-nightly.202502191606",
72
+ "@univerjs/ui": "0.6.0-nightly.202502191606"
73
73
  },
74
74
  "devDependencies": {
75
75
  "less": "^4.2.2",