@univerjs/sheets-drawing-ui 0.6.0-nightly.202502181606 → 0.6.0-nightly.202502201606
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/es/facade.js +519 -381
- package/lib/es/index.js +955 -969
- package/lib/types/facade/f-event.d.ts +61 -45
- package/lib/types/facade/f-over-grid-image.d.ts +378 -217
- package/lib/types/facade/f-worksheet.d.ts +290 -131
- package/lib/types/services/canvas-float-dom-manager.service.d.ts +2 -2
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +16 -16
|
@@ -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
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
|
47
|
-
* @param
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
|
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
|
-
*
|
|
136
|
-
* const
|
|
137
|
-
*
|
|
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
|
|
258
|
+
* @param {ISheetImage[]} sheetImages - The images to insert
|
|
259
|
+
* @returns {FWorksheet} The FWorksheet instance for chaining
|
|
151
260
|
* @example
|
|
152
261
|
* ```ts
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
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
|
|
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()
|
|
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()
|
|
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
|
|
190
|
-
* @returns
|
|
323
|
+
* @param {ISheetImage[]} sheetImages - The images to update
|
|
324
|
+
* @returns {FWorksheet} The FWorksheet instance for chaining
|
|
191
325
|
* @example
|
|
192
326
|
* ```ts
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
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
|
|
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()
|
|
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
|
|
382
|
+
* @returns {FOverGridImageBuilder} The FOverGridImageBuilder instance
|
|
234
383
|
* @example
|
|
235
384
|
* ```ts
|
|
236
|
-
* // create a new
|
|
237
|
-
*
|
|
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 W=Object.defineProperty;var U=(o,u,v)=>u in o?W(o,u,{enumerable:!0,configurable:!0,writable:!0,value:v}):o[u]=v;var G=(o,u,v)=>U(o,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,a;s>=0;s--)(a=r[s])&&(n=a(n)||n);return n},C=(r,i)=>(t,e)=>i(t,e,r);function T(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 B(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:P}=y;return{...r,sheetTransform:{...O,flipY:c,flipX:d,angle:h,skewX:g,skewY:f},transform:{...P,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=T(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 B(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 F 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(F);class A extends u.FEnum{get DrawingType(){return o.DrawingTypeEnum}get ImageSourceType(){return o.ImageSourceType}get SheetDrawingAnchorType(){return l.SheetDrawingAnchorType}}u.FEnum.extend(A);class x 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(x);class M 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(M)});
|