@univerjs/sheets-drawing-ui 0.20.1 → 0.21.0

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.
Files changed (44) hide show
  1. package/lib/cjs/facade.js +463 -1
  2. package/lib/cjs/index.js +6203 -2
  3. package/lib/cjs/locale/ca-ES.js +54 -1
  4. package/lib/cjs/locale/en-US.js +69 -1
  5. package/lib/cjs/locale/es-ES.js +54 -1
  6. package/lib/cjs/locale/fa-IR.js +54 -1
  7. package/lib/cjs/locale/fr-FR.js +54 -1
  8. package/lib/cjs/locale/ja-JP.js +54 -1
  9. package/lib/cjs/locale/ko-KR.js +54 -1
  10. package/lib/cjs/locale/ru-RU.js +54 -1
  11. package/lib/cjs/locale/sk-SK.js +54 -1
  12. package/lib/cjs/locale/vi-VN.js +54 -1
  13. package/lib/cjs/locale/zh-CN.js +54 -1
  14. package/lib/cjs/locale/zh-TW.js +54 -1
  15. package/lib/es/facade.js +464 -1
  16. package/lib/es/index.js +6159 -2
  17. package/lib/es/locale/ca-ES.js +53 -1
  18. package/lib/es/locale/en-US.js +68 -1
  19. package/lib/es/locale/es-ES.js +53 -1
  20. package/lib/es/locale/fa-IR.js +53 -1
  21. package/lib/es/locale/fr-FR.js +53 -1
  22. package/lib/es/locale/ja-JP.js +53 -1
  23. package/lib/es/locale/ko-KR.js +53 -1
  24. package/lib/es/locale/ru-RU.js +53 -1
  25. package/lib/es/locale/sk-SK.js +53 -1
  26. package/lib/es/locale/vi-VN.js +53 -1
  27. package/lib/es/locale/zh-CN.js +53 -1
  28. package/lib/es/locale/zh-TW.js +53 -1
  29. package/lib/facade.js +464 -1
  30. package/lib/index.js +6159 -2
  31. package/lib/locale/ca-ES.js +53 -1
  32. package/lib/locale/en-US.js +68 -1
  33. package/lib/locale/es-ES.js +53 -1
  34. package/lib/locale/fa-IR.js +53 -1
  35. package/lib/locale/fr-FR.js +53 -1
  36. package/lib/locale/ja-JP.js +53 -1
  37. package/lib/locale/ko-KR.js +53 -1
  38. package/lib/locale/ru-RU.js +53 -1
  39. package/lib/locale/sk-SK.js +53 -1
  40. package/lib/locale/vi-VN.js +53 -1
  41. package/lib/locale/zh-CN.js +53 -1
  42. package/lib/locale/zh-TW.js +53 -1
  43. package/lib/umd/index.js +1 -1
  44. package/package.json +15 -15
package/lib/cjs/facade.js CHANGED
@@ -1 +1,463 @@
1
- let e=require(`@univerjs/sheets`),t=require(`@univerjs/sheets-drawing`),n=require(`@univerjs/sheets-drawing-ui`),r=require(`@univerjs/sheets-ui/facade`),i=require(`@univerjs/sheets/facade`),a=require(`@univerjs/ui`),o=require(`@univerjs/core/facade`),s=require(`@univerjs/core`),c=require(`@univerjs/drawing`),l=require(`@univerjs/engine-render`);var u=class extends i.FWorksheet{getFloatDomById(e){let r=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!r)return null;let{unitId:i,subUnitId:a}=r,{rect:o}=r,{left:s=0,top:c=0,width:l=0,height:u=0,flipX:d=!1,flipY:f=!1,angle:p=0,skewX:m=0,skewY:h=0}=o.getState(),g=this._injector.get(t.ISheetDrawingService).getDrawingByParam({drawingId:r.id,unitId:i,subUnitId:a});return g?{position:{left:s,top:c,width:l,height:u,flipX:d,flipY:f,angle:p,skewX:m,skewY:h},componentKey:g.componentKey,allowTransform:g.allowTransform,data:g.data,id:r.id}:null}getAllFloatDoms(){let e=this._injector.get(n.SheetCanvasFloatDomManagerService),r=this._workbook.getUnitId(),i=this._worksheet.getSheetId();return Array.from(e.getFloatDomsBySubUnitId(r,i).values()).map(e=>{let{rect:n}=e,a=this._injector.get(t.ISheetDrawingService).getDrawingByParam({drawingId:e.id,unitId:r,subUnitId:i}),{left:o,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m}=n.getState();return{position:{left:o,top:s,width:c,height:l,flipX:u,flipY:d,angle:f,skewX:p,skewY:m},componentKey:a.componentKey,allowTransform:a.allowTransform,data:a.data,id:e.id}})}updateFloatDom(r,i){var a,o;let s=this._injector.get(e.SheetSkeletonService),c=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(r);if(!c)return this;let{unitId:l,subUnitId:u}=c,d=s.getSkeleton(l,u);if(!d)return this;let f=this._injector.get(t.ISheetDrawingService).getDrawingByParam({unitId:l,subUnitId:u,drawingId:r}),p={...f,componentKey:i.componentKey||f.componentKey,allowTransform:i.allowTransform===void 0?f.allowTransform:i.allowTransform,data:i.data||f.data,sheetTransform:i.position?(a=(0,t.transformToDrawingPosition)(i.position,d))==null?f.sheetTransform:a:f.sheetTransform,transform:{...f.transform,...i.position},axisAlignSheetTransform:i.position?(o=(0,t.transformToAxisAlignPosition)(i.position,d))==null?f.sheetTransform:o:f.sheetTransform};if(!this._commandService.syncExecuteCommand(t.SetSheetDrawingCommand.id,{unitId:l,subUnitId:u,drawings:[p]}))throw Error(`updateFloatDom failed`);return this}batchUpdateFloatDoms(r){let i=this._injector.get(n.SheetCanvasFloatDomManagerService),a=this._injector.get(t.ISheetDrawingService),o=this._injector.get(e.SheetSkeletonService),s=[];for(let e of r){var c,l;let n=i.getFloatDomInfo(e.id);if(!n)continue;let{unitId:r,subUnitId:u}=n,d=o.getSkeleton(r,u);if(!d)continue;let f=a.getDrawingByParam({unitId:r,subUnitId:u,drawingId:e.id});if(!f)continue;let p={...f,componentKey:e.config.componentKey||f.componentKey,allowTransform:e.config.allowTransform===void 0?f.allowTransform:e.config.allowTransform,data:e.config.data||f.data,sheetTransform:e.config.position?(c=(0,t.transformToDrawingPosition)(e.config.position,d))==null?f.sheetTransform:c:f.sheetTransform,transform:{...f.transform,...e.config.position},axisAlignSheetTransform:e.config.position?(l=(0,t.transformToAxisAlignPosition)(e.config.position,d))==null?f.sheetTransform:l:f.sheetTransform};s.push(p)}if(s.length>0){let e=this._workbook.getUnitId(),n=this._worksheet.getSheetId();if(!this._commandService.syncExecuteCommand(t.SetSheetDrawingCommand.id,{unitId:e,subUnitId:n,drawings:s}))throw Error(`batchUpdateFloatDoms failed`)}return this}removeFloatDom(e){let r=this._injector.get(n.SheetCanvasFloatDomManagerService).getFloatDomInfo(e);if(!r)return this;let{unitId:i,subUnitId:a}=r,o=this._injector.get(t.ISheetDrawingService).getDrawingByParam({unitId:i,subUnitId:a,drawingId:e});if(!o)return this;if(!this._commandService.syncExecuteCommand(t.RemoveSheetDrawingCommand.id,{unitId:i,drawings:[o]}))throw Error(`removeFloatDom failed`);return this}addFloatDomToPosition(e,t){let i=this._workbook.getUnitId(),o=this._worksheet.getSheetId(),{key:s,disposableCollection:c}=(0,r.transformComponentKey)(e,this._injector.get(a.ComponentManager)),l=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToPosition({...e,componentKey:s,unitId:i,subUnitId:o},t);return l?(c.add(l.dispose),{id:l.id,dispose:()=>{c.dispose(),l.dispose()}}):(c.dispose(),null)}addFloatDomToRange(e,t,i,o){let s=this._workbook.getUnitId(),c=this._worksheet.getSheetId(),{key:l,disposableCollection:u}=(0,r.transformComponentKey)(t,this._injector.get(a.ComponentManager)),d=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToRange(e.getRange(),{...t,componentKey:l,unitId:s,subUnitId:c},i,o);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}addFloatDomToColumnHeader(e,t,i,o){let s=this._workbook.getUnitId(),c=this._worksheet.getSheetId(),{key:l,disposableCollection:u}=(0,r.transformComponentKey)(t,this._injector.get(a.ComponentManager)),d=this._injector.get(n.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(e,{...t,componentKey:l,unitId:s,subUnitId:c},i,o);return d?(u.add(d.dispose),{id:d.id,dispose:()=>{u.dispose(),d.dispose()}}):(u.dispose(),null)}async saveCellImagesAsync(e,t){var r;let i=this._injector.get(n.IBatchSaveImagesService),a=this._fWorkbook.getId(),o=this.getSheetId(),s=t?t.map(e=>e.getRange()):[this._worksheet.getCellMatrix().getDataRange()],c=i.getCellImagesFromRanges(a,o,s);if(c.length===0)return!1;if(c.length===1)try{return await i.downloadSingleImage(c[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let l=[],u=(r=e==null?void 0:e.useCellAddress)==null?!0:r,d=e==null?void 0:e.useColumnIndex;u&&l.push(n.FileNamePart.CELL_ADDRESS),d!==void 0&&l.push(n.FileNamePart.COLUMN_VALUE),l.length===0&&l.push(n.FileNamePart.CELL_ADDRESS);try{return await i.saveImagesWithContext(c,{fileNameParts:l,columnIndex:d},a,o),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};i.FWorksheet.extend(u);var d=class extends o.FEventName{get BeforeFloatDomAdd(){return`BeforeFloatDomAdd`}get FloatDomAdded(){return`FloatDomAdded`}get BeforeFloatDomUpdate(){return`BeforeFloatDomUpdate`}get FloatDomUpdated(){return`FloatDomUpdated`}get BeforeFloatDomDelete(){return`BeforeFloatDomDelete`}get FloatDomDeleted(){return`FloatDomDeleted`}};o.FEventName.extend(d);var f=class extends o.FUniver{_initialize(e){let n=e.get(s.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd,()=>n.beforeCommandExecuted(e=>{if(e.id!==t.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;let o={workbook:r,drawings:a};if(this.fireEvent(this.Event.BeforeFloatDomAdd,o),o.cancel)throw new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded,()=>n.onCommandExecuted(e=>{if(e.id!==t.InsertSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a=i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM);if(a.length===0)return;let o={workbook:r,drawings:a};this.fireEvent(this.Event.FloatDomAdded,o)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate,()=>n.beforeCommandExecuted(n=>{if(n.id!==t.SetSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let{drawings:a}=r,o=e.get(c.IDrawingManagerService),l=[];if(a.forEach(e=>{let t=o.getDrawingByParam(e);(t==null?void 0:t.drawingType)===s.DrawingTypeEnum.DRAWING_DOM&&l.push(t)}),l.length===0)return;let u={workbook:i,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomUpdate,u),u.cancel)throw o.updateNotification(a),new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated,()=>n.onCommandExecuted(n=>{if(n.id!==t.SetSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let{drawings:a}=r,o=e.get(c.IDrawingManagerService),l=[];if(a.forEach(e=>{let t=o.getDrawingByParam(e);(t==null?void 0:t.drawingType)===s.DrawingTypeEnum.DRAWING_DOM&&l.push(t)}),l.length===0)return;let u={workbook:i,drawings:l};this.fireEvent(this.Event.FloatDomUpdated,u)}))),this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete,()=>n.beforeCommandExecuted(n=>{if(n.id!==t.RemoveSheetDrawingCommand.id)return;let r=n.params,i=this.getActiveWorkbook();if(i==null||r==null)return;let a=e.get(c.IDrawingManagerService),{drawings:o}=r,l=o.map(e=>a.getDrawingByParam(e)).filter(e=>(e==null?void 0:e.drawingType)===s.DrawingTypeEnum.DRAWING_DOM);if(l.length===0)return;let u={workbook:i,drawings:l};if(this.fireEvent(this.Event.BeforeFloatDomDelete,u),u.cancel)throw new s.CanceledError}))),this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted,()=>n.onCommandExecuted(e=>{if(e.id!==t.RemoveSheetDrawingCommand.id)return;let n=e.params,r=this.getActiveWorkbook();if(r==null||n==null)return;let{drawings:i}=n,a={workbook:r,drawings:i.filter(e=>e.drawingType===s.DrawingTypeEnum.DRAWING_DOM).map(e=>e.drawingId)};this.fireEvent(this.Event.FloatDomDeleted,a)})))}registerURLImageDownloader(e){return this._injector.get(s.IURLImageService).registerURLImageDownloader(e)}};o.FUniver.extend(f);var p=class extends i.FRange{async insertCellImageAsync(e){var t;let r=this._injector.get(l.IRenderManagerService),i=(t=(0,l.getCurrentTypeOfRenderer)(s.UniverInstanceType.UNIVER_SHEET,this._injector.get(s.IUniverInstanceService),r))==null?void 0:t.with(n.SheetDrawingUpdateController);if(!i)return!1;let a={unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),row:this.getRow(),col:this.getColumn()};return typeof e==`string`?i.insertCellImageByUrl(e,a):i.insertCellImageByFile(e,a)}async saveCellImagesAsync(e){var t;let r=this._injector.get(n.IBatchSaveImagesService),i=this._workbook.getUnitId(),a=this._worksheet.getSheetId(),o=this.getRange(),s=r.getCellImagesFromRanges(i,a,[o]);if(s.length===0)return!1;if(s.length===1)try{return await r.downloadSingleImage(s[0]),!0}catch(e){return console.error(`Failed to download image:`,e),!1}let c=[],l=(t=e==null?void 0:e.useCellAddress)==null?!0:t,u=e==null?void 0:e.useColumnIndex;l&&c.push(n.FileNamePart.CELL_ADDRESS),u!==void 0&&c.push(n.FileNamePart.COLUMN_VALUE),c.length===0&&c.push(n.FileNamePart.CELL_ADDRESS);try{return await r.saveImagesWithContext(s,{fileNameParts:c,columnIndex:u},i,a),!0}catch(e){return console.error(`Failed to save images:`,e),!1}}};i.FRange.extend(p);
1
+ let _univerjs_sheets = require("@univerjs/sheets");
2
+ let _univerjs_sheets_drawing = require("@univerjs/sheets-drawing");
3
+ let _univerjs_sheets_drawing_ui = require("@univerjs/sheets-drawing-ui");
4
+ let _univerjs_sheets_ui_facade = require("@univerjs/sheets-ui/facade");
5
+ let _univerjs_sheets_facade = require("@univerjs/sheets/facade");
6
+ let _univerjs_ui = require("@univerjs/ui");
7
+ let _univerjs_core_facade = require("@univerjs/core/facade");
8
+ let _univerjs_core = require("@univerjs/core");
9
+ let _univerjs_drawing = require("@univerjs/drawing");
10
+ let _univerjs_engine_render = require("@univerjs/engine-render");
11
+
12
+ //#region src/facade/f-worksheet.ts
13
+ var FWorksheetDrawingUIMixin = class extends _univerjs_sheets_facade.FWorksheet {
14
+ getFloatDomById(id) {
15
+ const info = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
16
+ if (!info) return null;
17
+ const { unitId, subUnitId } = info;
18
+ const { rect } = info;
19
+ const { left = 0, top = 0, width = 0, height = 0, flipX = false, flipY = false, angle = 0, skewX = 0, skewY = 0 } = rect.getState();
20
+ const drawingParm = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
21
+ drawingId: info.id,
22
+ unitId,
23
+ subUnitId
24
+ });
25
+ if (!drawingParm) return null;
26
+ return {
27
+ position: {
28
+ left,
29
+ top,
30
+ width,
31
+ height,
32
+ flipX,
33
+ flipY,
34
+ angle,
35
+ skewX,
36
+ skewY
37
+ },
38
+ componentKey: drawingParm.componentKey,
39
+ allowTransform: drawingParm.allowTransform,
40
+ data: drawingParm.data,
41
+ id: info.id
42
+ };
43
+ }
44
+ getAllFloatDoms() {
45
+ const floatDomService = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService);
46
+ const unitId = this._workbook.getUnitId();
47
+ const subUnitId = this._worksheet.getSheetId();
48
+ return Array.from(floatDomService.getFloatDomsBySubUnitId(unitId, subUnitId).values()).map((info) => {
49
+ const { rect } = info;
50
+ const drawingParm = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
51
+ drawingId: info.id,
52
+ unitId,
53
+ subUnitId
54
+ });
55
+ const { left, top, width, height, flipX, flipY, angle, skewX, skewY } = rect.getState();
56
+ return {
57
+ position: {
58
+ left,
59
+ top,
60
+ width,
61
+ height,
62
+ flipX,
63
+ flipY,
64
+ angle,
65
+ skewX,
66
+ skewY
67
+ },
68
+ componentKey: drawingParm.componentKey,
69
+ allowTransform: drawingParm.allowTransform,
70
+ data: drawingParm.data,
71
+ id: info.id
72
+ };
73
+ });
74
+ }
75
+ updateFloatDom(id, config) {
76
+ var _transformToDrawingPo, _transformToAxisAlign;
77
+ const sheetSkeletonService = this._injector.get(_univerjs_sheets.SheetSkeletonService);
78
+ const info = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
79
+ if (!info) return this;
80
+ const { unitId, subUnitId } = info;
81
+ const skeleton = sheetSkeletonService.getSkeleton(unitId, subUnitId);
82
+ if (!skeleton) return this;
83
+ const drawingParm = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
84
+ unitId,
85
+ subUnitId,
86
+ drawingId: id
87
+ });
88
+ const newParam = {
89
+ ...drawingParm,
90
+ componentKey: config.componentKey || drawingParm.componentKey,
91
+ allowTransform: config.allowTransform !== void 0 ? config.allowTransform : drawingParm.allowTransform,
92
+ data: config.data || drawingParm.data,
93
+ sheetTransform: config.position ? (_transformToDrawingPo = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(config.position, skeleton)) !== null && _transformToDrawingPo !== void 0 ? _transformToDrawingPo : drawingParm.sheetTransform : drawingParm.sheetTransform,
94
+ transform: {
95
+ ...drawingParm.transform,
96
+ ...config.position
97
+ },
98
+ axisAlignSheetTransform: config.position ? (_transformToAxisAlign = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(config.position, skeleton)) !== null && _transformToAxisAlign !== void 0 ? _transformToAxisAlign : drawingParm.sheetTransform : drawingParm.sheetTransform
99
+ };
100
+ if (!this._commandService.syncExecuteCommand(_univerjs_sheets_drawing.SetSheetDrawingCommand.id, {
101
+ unitId,
102
+ subUnitId,
103
+ drawings: [newParam]
104
+ })) throw new Error("updateFloatDom failed");
105
+ return this;
106
+ }
107
+ batchUpdateFloatDoms(updates) {
108
+ const floatDomService = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService);
109
+ const drawingService = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService);
110
+ const sheetSkeletonService = this._injector.get(_univerjs_sheets.SheetSkeletonService);
111
+ const drawings = [];
112
+ for (const update of updates) {
113
+ var _transformToDrawingPo2, _transformToAxisAlign2;
114
+ const info = floatDomService.getFloatDomInfo(update.id);
115
+ if (!info) continue;
116
+ const { unitId, subUnitId } = info;
117
+ const skeleton = sheetSkeletonService.getSkeleton(unitId, subUnitId);
118
+ if (!skeleton) continue;
119
+ const drawingParm = drawingService.getDrawingByParam({
120
+ unitId,
121
+ subUnitId,
122
+ drawingId: update.id
123
+ });
124
+ if (!drawingParm) continue;
125
+ const newParam = {
126
+ ...drawingParm,
127
+ componentKey: update.config.componentKey || drawingParm.componentKey,
128
+ allowTransform: update.config.allowTransform !== void 0 ? update.config.allowTransform : drawingParm.allowTransform,
129
+ data: update.config.data || drawingParm.data,
130
+ sheetTransform: update.config.position ? (_transformToDrawingPo2 = (0, _univerjs_sheets_drawing.transformToDrawingPosition)(update.config.position, skeleton)) !== null && _transformToDrawingPo2 !== void 0 ? _transformToDrawingPo2 : drawingParm.sheetTransform : drawingParm.sheetTransform,
131
+ transform: {
132
+ ...drawingParm.transform,
133
+ ...update.config.position
134
+ },
135
+ axisAlignSheetTransform: update.config.position ? (_transformToAxisAlign2 = (0, _univerjs_sheets_drawing.transformToAxisAlignPosition)(update.config.position, skeleton)) !== null && _transformToAxisAlign2 !== void 0 ? _transformToAxisAlign2 : drawingParm.sheetTransform : drawingParm.sheetTransform
136
+ };
137
+ drawings.push(newParam);
138
+ }
139
+ if (drawings.length > 0) {
140
+ const unitId = this._workbook.getUnitId();
141
+ const subUnitId = this._worksheet.getSheetId();
142
+ if (!this._commandService.syncExecuteCommand(_univerjs_sheets_drawing.SetSheetDrawingCommand.id, {
143
+ unitId,
144
+ subUnitId,
145
+ drawings
146
+ })) throw new Error("batchUpdateFloatDoms failed");
147
+ }
148
+ return this;
149
+ }
150
+ removeFloatDom(id) {
151
+ const info = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
152
+ if (!info) return this;
153
+ const { unitId, subUnitId } = info;
154
+ const drawing = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
155
+ unitId,
156
+ subUnitId,
157
+ drawingId: id
158
+ });
159
+ if (!drawing) return this;
160
+ if (!this._commandService.syncExecuteCommand(_univerjs_sheets_drawing.RemoveSheetDrawingCommand.id, {
161
+ unitId,
162
+ drawings: [drawing]
163
+ })) throw new Error("removeFloatDom failed");
164
+ return this;
165
+ }
166
+ addFloatDomToPosition(layer, id) {
167
+ const unitId = this._workbook.getUnitId();
168
+ const subUnitId = this._worksheet.getSheetId();
169
+ const { key, disposableCollection } = (0, _univerjs_sheets_ui_facade.transformComponentKey)(layer, this._injector.get(_univerjs_ui.ComponentManager));
170
+ const res = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).addFloatDomToPosition({
171
+ ...layer,
172
+ componentKey: key,
173
+ unitId,
174
+ subUnitId
175
+ }, id);
176
+ if (res) {
177
+ disposableCollection.add(res.dispose);
178
+ return {
179
+ id: res.id,
180
+ dispose: () => {
181
+ disposableCollection.dispose();
182
+ res.dispose();
183
+ }
184
+ };
185
+ }
186
+ disposableCollection.dispose();
187
+ return null;
188
+ }
189
+ addFloatDomToRange(fRange, layer, domLayout, id) {
190
+ const unitId = this._workbook.getUnitId();
191
+ const subUnitId = this._worksheet.getSheetId();
192
+ const { key, disposableCollection } = (0, _univerjs_sheets_ui_facade.transformComponentKey)(layer, this._injector.get(_univerjs_ui.ComponentManager));
193
+ const res = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).addFloatDomToRange(fRange.getRange(), {
194
+ ...layer,
195
+ componentKey: key,
196
+ unitId,
197
+ subUnitId
198
+ }, domLayout, id);
199
+ if (res) {
200
+ disposableCollection.add(res.dispose);
201
+ return {
202
+ id: res.id,
203
+ dispose: () => {
204
+ disposableCollection.dispose();
205
+ res.dispose();
206
+ }
207
+ };
208
+ }
209
+ disposableCollection.dispose();
210
+ return null;
211
+ }
212
+ addFloatDomToColumnHeader(column, layer, domLayout, id) {
213
+ const unitId = this._workbook.getUnitId();
214
+ const subUnitId = this._worksheet.getSheetId();
215
+ const { key, disposableCollection } = (0, _univerjs_sheets_ui_facade.transformComponentKey)(layer, this._injector.get(_univerjs_ui.ComponentManager));
216
+ const domRangeDispose = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).addFloatDomToColumnHeader(column, {
217
+ ...layer,
218
+ componentKey: key,
219
+ unitId,
220
+ subUnitId
221
+ }, domLayout, id);
222
+ if (domRangeDispose) {
223
+ disposableCollection.add(domRangeDispose.dispose);
224
+ return {
225
+ id: domRangeDispose.id,
226
+ dispose: () => {
227
+ disposableCollection.dispose();
228
+ domRangeDispose.dispose();
229
+ }
230
+ };
231
+ }
232
+ disposableCollection.dispose();
233
+ return null;
234
+ }
235
+ async saveCellImagesAsync(options, ranges) {
236
+ var _options$useCellAddre;
237
+ const batchSaveService = this._injector.get(_univerjs_sheets_drawing_ui.IBatchSaveImagesService);
238
+ const unitId = this._fWorkbook.getId();
239
+ const subUnitId = this.getSheetId();
240
+ const iRanges = ranges ? ranges.map((r) => r.getRange()) : [this._worksheet.getCellMatrix().getDataRange()];
241
+ const images = batchSaveService.getCellImagesFromRanges(unitId, subUnitId, iRanges);
242
+ if (images.length === 0) return false;
243
+ if (images.length === 1) try {
244
+ await batchSaveService.downloadSingleImage(images[0]);
245
+ return true;
246
+ } catch (error) {
247
+ console.error("Failed to download image:", error);
248
+ return false;
249
+ }
250
+ const fileNameParts = [];
251
+ const useCellAddress = (_options$useCellAddre = options === null || options === void 0 ? void 0 : options.useCellAddress) !== null && _options$useCellAddre !== void 0 ? _options$useCellAddre : true;
252
+ const useColumnIndex = options === null || options === void 0 ? void 0 : options.useColumnIndex;
253
+ if (useCellAddress) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.CELL_ADDRESS);
254
+ if (useColumnIndex !== void 0) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.COLUMN_VALUE);
255
+ if (fileNameParts.length === 0) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.CELL_ADDRESS);
256
+ try {
257
+ await batchSaveService.saveImagesWithContext(images, {
258
+ fileNameParts,
259
+ columnIndex: useColumnIndex
260
+ }, unitId, subUnitId);
261
+ return true;
262
+ } catch (error) {
263
+ console.error("Failed to save images:", error);
264
+ return false;
265
+ }
266
+ }
267
+ };
268
+ _univerjs_sheets_facade.FWorksheet.extend(FWorksheetDrawingUIMixin);
269
+
270
+ //#endregion
271
+ //#region src/facade/f-event.ts
272
+ var FSheetsDrawingUIEventNameMixin = class extends _univerjs_core_facade.FEventName {
273
+ get BeforeFloatDomAdd() {
274
+ return "BeforeFloatDomAdd";
275
+ }
276
+ get FloatDomAdded() {
277
+ return "FloatDomAdded";
278
+ }
279
+ get BeforeFloatDomUpdate() {
280
+ return "BeforeFloatDomUpdate";
281
+ }
282
+ get FloatDomUpdated() {
283
+ return "FloatDomUpdated";
284
+ }
285
+ get BeforeFloatDomDelete() {
286
+ return "BeforeFloatDomDelete";
287
+ }
288
+ get FloatDomDeleted() {
289
+ return "FloatDomDeleted";
290
+ }
291
+ };
292
+ _univerjs_core_facade.FEventName.extend(FSheetsDrawingUIEventNameMixin);
293
+
294
+ //#endregion
295
+ //#region src/facade/f-univer.ts
296
+ /**
297
+ * @ignore
298
+ */
299
+ var FUniverSheetsDrawingUIMixin = class extends _univerjs_core_facade.FUniver {
300
+ /**
301
+ * @ignore
302
+ */
303
+ _initialize(injector) {
304
+ const commandService = injector.get(_univerjs_core.ICommandService);
305
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomAdd, () => commandService.beforeCommandExecuted((commandInfo) => {
306
+ if (commandInfo.id !== _univerjs_sheets_drawing.InsertSheetDrawingCommand.id) return;
307
+ const params = commandInfo.params;
308
+ const workbook = this.getActiveWorkbook();
309
+ if (workbook == null || params == null) return;
310
+ const { drawings } = params;
311
+ const floatDomDrawings = drawings.filter((drawing) => drawing.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_DOM);
312
+ if (floatDomDrawings.length === 0) return;
313
+ const eventParams = {
314
+ workbook,
315
+ drawings: floatDomDrawings
316
+ };
317
+ this.fireEvent(this.Event.BeforeFloatDomAdd, eventParams);
318
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
319
+ })));
320
+ this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomAdded, () => commandService.onCommandExecuted((commandInfo) => {
321
+ if (commandInfo.id !== _univerjs_sheets_drawing.InsertSheetDrawingCommand.id) return;
322
+ const params = commandInfo.params;
323
+ const workbook = this.getActiveWorkbook();
324
+ if (workbook == null || params == null) return;
325
+ const { drawings } = params;
326
+ const floatDomDrawings = drawings.filter((drawing) => drawing.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_DOM);
327
+ if (floatDomDrawings.length === 0) return;
328
+ const eventParams = {
329
+ workbook,
330
+ drawings: floatDomDrawings
331
+ };
332
+ this.fireEvent(this.Event.FloatDomAdded, eventParams);
333
+ })));
334
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomUpdate, () => commandService.beforeCommandExecuted((commandInfo) => {
335
+ if (commandInfo.id !== _univerjs_sheets_drawing.SetSheetDrawingCommand.id) return;
336
+ const params = commandInfo.params;
337
+ const workbook = this.getActiveWorkbook();
338
+ if (workbook == null || params == null) return;
339
+ const { drawings } = params;
340
+ const drawingManagerService = injector.get(_univerjs_drawing.IDrawingManagerService);
341
+ const floatDomDrawings = [];
342
+ drawings.forEach((drawing) => {
343
+ const dom = drawingManagerService.getDrawingByParam(drawing);
344
+ if ((dom === null || dom === void 0 ? void 0 : dom.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_DOM) floatDomDrawings.push(dom);
345
+ });
346
+ if (floatDomDrawings.length === 0) return;
347
+ const eventParams = {
348
+ workbook,
349
+ drawings: floatDomDrawings
350
+ };
351
+ this.fireEvent(this.Event.BeforeFloatDomUpdate, eventParams);
352
+ if (eventParams.cancel) {
353
+ drawingManagerService.updateNotification(drawings);
354
+ throw new _univerjs_core.CanceledError();
355
+ }
356
+ })));
357
+ this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomUpdated, () => commandService.onCommandExecuted((commandInfo) => {
358
+ if (commandInfo.id !== _univerjs_sheets_drawing.SetSheetDrawingCommand.id) return;
359
+ const params = commandInfo.params;
360
+ const workbook = this.getActiveWorkbook();
361
+ if (workbook == null || params == null) return;
362
+ const { drawings } = params;
363
+ const drawingManagerService = injector.get(_univerjs_drawing.IDrawingManagerService);
364
+ const floatDomDrawings = [];
365
+ drawings.forEach((drawing) => {
366
+ const dom = drawingManagerService.getDrawingByParam(drawing);
367
+ if ((dom === null || dom === void 0 ? void 0 : dom.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_DOM) floatDomDrawings.push(dom);
368
+ });
369
+ if (floatDomDrawings.length === 0) return;
370
+ const eventParams = {
371
+ workbook,
372
+ drawings: floatDomDrawings
373
+ };
374
+ this.fireEvent(this.Event.FloatDomUpdated, eventParams);
375
+ })));
376
+ this.disposeWithMe(this.registerEventHandler(this.Event.BeforeFloatDomDelete, () => commandService.beforeCommandExecuted((commandInfo) => {
377
+ if (commandInfo.id !== _univerjs_sheets_drawing.RemoveSheetDrawingCommand.id) return;
378
+ const params = commandInfo.params;
379
+ const workbook = this.getActiveWorkbook();
380
+ if (workbook == null || params == null) return;
381
+ const drawingManagerService = injector.get(_univerjs_drawing.IDrawingManagerService);
382
+ const { drawings } = params;
383
+ const floatDomDrawings = drawings.map((drawing) => drawingManagerService.getDrawingByParam(drawing)).filter((drawing) => (drawing === null || drawing === void 0 ? void 0 : drawing.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_DOM);
384
+ if (floatDomDrawings.length === 0) return;
385
+ const eventParams = {
386
+ workbook,
387
+ drawings: floatDomDrawings
388
+ };
389
+ this.fireEvent(this.Event.BeforeFloatDomDelete, eventParams);
390
+ if (eventParams.cancel) throw new _univerjs_core.CanceledError();
391
+ })));
392
+ this.disposeWithMe(this.registerEventHandler(this.Event.FloatDomDeleted, () => commandService.onCommandExecuted((commandInfo) => {
393
+ if (commandInfo.id !== _univerjs_sheets_drawing.RemoveSheetDrawingCommand.id) return;
394
+ const params = commandInfo.params;
395
+ const workbook = this.getActiveWorkbook();
396
+ if (workbook == null || params == null) return;
397
+ const { drawings } = params;
398
+ const eventParams = {
399
+ workbook,
400
+ drawings: drawings.filter((i) => i.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_DOM).map((i) => i.drawingId)
401
+ };
402
+ this.fireEvent(this.Event.FloatDomDeleted, eventParams);
403
+ })));
404
+ }
405
+ registerURLImageDownloader(downloader) {
406
+ return this._injector.get(_univerjs_core.IURLImageService).registerURLImageDownloader(downloader);
407
+ }
408
+ };
409
+ _univerjs_core_facade.FUniver.extend(FUniverSheetsDrawingUIMixin);
410
+
411
+ //#endregion
412
+ //#region src/facade/f-range.ts
413
+ var FRangeSheetsDrawingUIMixin = class extends _univerjs_sheets_facade.FRange {
414
+ async insertCellImageAsync(file) {
415
+ var _getCurrentTypeOfRend;
416
+ const renderManagerService = this._injector.get(_univerjs_engine_render.IRenderManagerService);
417
+ const controller = (_getCurrentTypeOfRend = (0, _univerjs_engine_render.getCurrentTypeOfRenderer)(_univerjs_core.UniverInstanceType.UNIVER_SHEET, this._injector.get(_univerjs_core.IUniverInstanceService), renderManagerService)) === null || _getCurrentTypeOfRend === void 0 ? void 0 : _getCurrentTypeOfRend.with(_univerjs_sheets_drawing_ui.SheetDrawingUpdateController);
418
+ if (!controller) return false;
419
+ const location = {
420
+ unitId: this._workbook.getUnitId(),
421
+ subUnitId: this._worksheet.getSheetId(),
422
+ row: this.getRow(),
423
+ col: this.getColumn()
424
+ };
425
+ if (typeof file === "string") return controller.insertCellImageByUrl(file, location);
426
+ else return controller.insertCellImageByFile(file, location);
427
+ }
428
+ async saveCellImagesAsync(options) {
429
+ var _options$useCellAddre;
430
+ const batchSaveService = this._injector.get(_univerjs_sheets_drawing_ui.IBatchSaveImagesService);
431
+ const unitId = this._workbook.getUnitId();
432
+ const subUnitId = this._worksheet.getSheetId();
433
+ const range = this.getRange();
434
+ const images = batchSaveService.getCellImagesFromRanges(unitId, subUnitId, [range]);
435
+ if (images.length === 0) return false;
436
+ if (images.length === 1) try {
437
+ await batchSaveService.downloadSingleImage(images[0]);
438
+ return true;
439
+ } catch (error) {
440
+ console.error("Failed to download image:", error);
441
+ return false;
442
+ }
443
+ const fileNameParts = [];
444
+ const useCellAddress = (_options$useCellAddre = options === null || options === void 0 ? void 0 : options.useCellAddress) !== null && _options$useCellAddre !== void 0 ? _options$useCellAddre : true;
445
+ const useColumnIndex = options === null || options === void 0 ? void 0 : options.useColumnIndex;
446
+ if (useCellAddress) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.CELL_ADDRESS);
447
+ if (useColumnIndex !== void 0) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.COLUMN_VALUE);
448
+ if (fileNameParts.length === 0) fileNameParts.push(_univerjs_sheets_drawing_ui.FileNamePart.CELL_ADDRESS);
449
+ try {
450
+ await batchSaveService.saveImagesWithContext(images, {
451
+ fileNameParts,
452
+ columnIndex: useColumnIndex
453
+ }, unitId, subUnitId);
454
+ return true;
455
+ } catch (error) {
456
+ console.error("Failed to save images:", error);
457
+ return false;
458
+ }
459
+ }
460
+ };
461
+ _univerjs_sheets_facade.FRange.extend(FRangeSheetsDrawingUIMixin);
462
+
463
+ //#endregion