@univerjs/docs-drawing-ui 0.17.0 → 0.18.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 (95) hide show
  1. package/lib/cjs/index.js +37 -1
  2. package/lib/cjs/locale/ca-ES.js +1 -1
  3. package/lib/cjs/locale/en-US.js +1 -1
  4. package/lib/cjs/locale/es-ES.js +1 -1
  5. package/lib/cjs/locale/fa-IR.js +1 -1
  6. package/lib/cjs/locale/fr-FR.js +1 -1
  7. package/lib/cjs/locale/ja-JP.js +1 -1
  8. package/lib/cjs/locale/ko-KR.js +1 -1
  9. package/lib/cjs/locale/ru-RU.js +1 -1
  10. package/lib/cjs/locale/sk-SK.js +1 -1
  11. package/lib/cjs/locale/vi-VN.js +1 -1
  12. package/lib/cjs/locale/zh-CN.js +1 -1
  13. package/lib/cjs/locale/zh-TW.js +1 -1
  14. package/lib/es/index.js +37 -2891
  15. package/lib/es/locale/ca-ES.js +1 -62
  16. package/lib/es/locale/en-US.js +1 -62
  17. package/lib/es/locale/es-ES.js +1 -62
  18. package/lib/es/locale/fa-IR.js +1 -62
  19. package/lib/es/locale/fr-FR.js +1 -62
  20. package/lib/es/locale/ja-JP.js +1 -62
  21. package/lib/es/locale/ko-KR.js +1 -62
  22. package/lib/es/locale/ru-RU.js +1 -62
  23. package/lib/es/locale/sk-SK.js +1 -62
  24. package/lib/es/locale/vi-VN.js +1 -62
  25. package/lib/es/locale/zh-CN.js +1 -62
  26. package/lib/es/locale/zh-TW.js +1 -62
  27. package/lib/index.css +57 -1
  28. package/lib/index.js +37 -2891
  29. package/lib/locale/ca-ES.js +1 -62
  30. package/lib/locale/en-US.js +1 -62
  31. package/lib/locale/es-ES.js +1 -62
  32. package/lib/locale/fa-IR.js +1 -62
  33. package/lib/locale/fr-FR.js +1 -62
  34. package/lib/locale/ja-JP.js +1 -62
  35. package/lib/locale/ko-KR.js +1 -62
  36. package/lib/locale/ru-RU.js +1 -62
  37. package/lib/locale/sk-SK.js +1 -62
  38. package/lib/locale/vi-VN.js +1 -62
  39. package/lib/locale/zh-CN.js +1 -62
  40. package/lib/locale/zh-TW.js +1 -62
  41. package/lib/types/commands/commands/delete-doc-drawing.command.d.ts +16 -1
  42. package/lib/types/commands/commands/group-doc-drawing.command.d.ts +16 -1
  43. package/lib/types/commands/commands/insert-doc-drawing.command.d.ts +16 -1
  44. package/lib/types/commands/commands/insert-image.command.d.ts +16 -1
  45. package/lib/types/commands/commands/interfaces.d.ts +17 -2
  46. package/lib/types/commands/commands/move-drawings.command.d.ts +17 -1
  47. package/lib/types/commands/commands/remove-doc-drawing.command.d.ts +16 -1
  48. package/lib/types/commands/commands/set-drawing-arrange.command.d.ts +18 -2
  49. package/lib/types/commands/commands/ungroup-doc-drawing.command.d.ts +16 -1
  50. package/lib/types/commands/commands/update-doc-drawing.command.d.ts +16 -1
  51. package/lib/types/commands/commands/utils.d.ts +16 -1
  52. package/lib/types/commands/operations/clear-drawing-transformer.operation.d.ts +16 -1
  53. package/lib/types/commands/operations/edit-doc-drawing.operation.d.ts +16 -1
  54. package/lib/types/commands/operations/open-drawing-panel.operation.d.ts +16 -1
  55. package/lib/types/controllers/doc-drawing-notification.controller.d.ts +15 -0
  56. package/lib/types/controllers/doc-drawing-printing.controller.d.ts +15 -0
  57. package/lib/types/controllers/doc-drawing-transformer-update.controller.d.ts +15 -0
  58. package/lib/types/controllers/doc-drawing.controller.d.ts +15 -0
  59. package/lib/types/controllers/doc-float-dom.controller.d.ts +21 -3
  60. package/lib/types/controllers/render-controllers/doc-drawing-transform-update.controller.d.ts +18 -2
  61. package/lib/types/controllers/render-controllers/doc-drawing-update.render-controller.d.ts +19 -2
  62. package/lib/types/controllers/shortcuts/drawing.shortcut.d.ts +18 -3
  63. package/lib/types/locale/ca-ES.d.ts +16 -1
  64. package/lib/types/locale/es-ES.d.ts +16 -1
  65. package/lib/types/locale/fa-IR.d.ts +16 -1
  66. package/lib/types/locale/fr-FR.d.ts +16 -1
  67. package/lib/types/locale/ja-JP.d.ts +16 -1
  68. package/lib/types/locale/ko-KR.d.ts +16 -1
  69. package/lib/types/locale/ru-RU.d.ts +16 -1
  70. package/lib/types/locale/sk-SK.d.ts +16 -1
  71. package/lib/types/locale/vi-VN.d.ts +16 -1
  72. package/lib/types/locale/zh-CN.d.ts +16 -1
  73. package/lib/types/locale/zh-TW.d.ts +16 -1
  74. package/lib/types/menu/drawing-popup-menu.controller.d.ts +15 -0
  75. package/lib/types/menu/image.menu.d.ts +17 -2
  76. package/lib/types/menu/schema.d.ts +16 -1
  77. package/lib/types/plugin.d.ts +16 -1
  78. package/lib/types/services/doc-refresh-drawings.service.d.ts +18 -3
  79. package/lib/types/views/doc-image-panel/DocDrawingPosition.d.ts +16 -1
  80. package/lib/types/views/doc-image-panel/DocDrawingTextWrap.d.ts +16 -1
  81. package/lib/types/views/printing-float-dom/index.d.ts +17 -2
  82. package/lib/umd/index.js +37 -1
  83. package/lib/umd/locale/ca-ES.js +1 -1
  84. package/lib/umd/locale/en-US.js +1 -1
  85. package/lib/umd/locale/es-ES.js +1 -1
  86. package/lib/umd/locale/fa-IR.js +1 -1
  87. package/lib/umd/locale/fr-FR.js +1 -1
  88. package/lib/umd/locale/ja-JP.js +1 -1
  89. package/lib/umd/locale/ko-KR.js +1 -1
  90. package/lib/umd/locale/ru-RU.js +1 -1
  91. package/lib/umd/locale/sk-SK.js +1 -1
  92. package/lib/umd/locale/vi-VN.js +1 -1
  93. package/lib/umd/locale/zh-CN.js +1 -1
  94. package/lib/umd/locale/zh-TW.js +1 -1
  95. package/package.json +15 -14
package/lib/es/index.js CHANGED
@@ -1,2891 +1,37 @@
1
- var Pn = Object.defineProperty;
2
- var xn = (r, e, t) => e in r ? Pn(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var me = (r, e, t) => xn(r, typeof e != "symbol" ? e + "" : e, t);
4
- import { CommandType as q, ICommandService as j, IUniverInstanceService as z, TextX as St, JSONX as $, MemoryCursor as Nn, TextXActionType as Y, BuildTextUtils as Ln, ArrangeTypeEnum as Qe, Tools as Ae, Inject as Z, IContextService as Yt, LocaleService as lt, Disposable as xe, WrapTextType as ze, PositionedObjectLayoutType as k, BooleanNumber as se, DrawingTypeEnum as Pe, ObjectRelativeFromV as W, ObjectRelativeFromH as J, FOCUSING_COMMON_DRAWINGS as it, UniverInstanceType as we, Direction as he, DisposableCollection as Un, toDisposable as Xe, fromEventSubject as Zt, generateRandomId as Qt, DOCS_ZEN_EDITOR_UNIT_ID_KEY as Dt, UndoCommand as Bn, RedoCommand as Fn, Injector as Jt, DOC_DRAWING_PRINTING_COMPONENT_KEY as kn, throttle as Rt, COLORS as Wn, DocumentFlavor as mt, FOCUSING_DOC as Hn, FOCUSING_UNIVER_EDITOR as Gn, LifecycleService as Vn, LifecycleStages as At, RxDisposable as jn, isInternalEditorID as $n, DependentOn as zn, IConfigService as Xn, Plugin as qn, merge as Kn } from "@univerjs/core";
5
- import { IDocDrawingService as We, UniverDocsDrawingPlugin as Yn } from "@univerjs/docs-drawing";
6
- import { RichTextEditingMutation as ee, DocSelectionManagerService as Ot, DocSkeletonManagerService as te } from "@univerjs/docs";
7
- import { DocSelectionRenderService as ye, getRichTextEditPath as qe, getCustomBlockIdsInSelections as Zn, docDrawingPositionToTransform as en, VIEWPORT_KEY as tn, SetDocZoomRatioOperation as nn, DocPrintInterceptorService as Qn, NodePositionConvertToCursor as Pt, getOneTextSelectionRange as xt, getAnchorBounding as Jn, TEXT_RANGE_LAYER_INDEX as ei, getDocObject as ti, IEditorService as ni, DocCanvasPopManagerService as ii } from "@univerjs/docs-ui";
8
- import { IRenderManagerService as Q, DocumentEditArea as Be, getCurrentTypeOfRenderer as ri, CURSOR_TYPE as Nt, Liquid as rn, PageLayoutType as Lt, DocumentSkeletonPageType as Ut, Vector2 as si, Rect as oi, getColor as ai, TRANSFORM_CHANGE_OBSERVABLE_TYPE as ci } from "@univerjs/engine-render";
9
- import { MessageType as Bt, render as di, unmount as gi, clsx as sn, InputNumber as Ue, Select as Ft, Checkbox as li, RadioGroup as kt, Radio as Te } from "@univerjs/design";
10
- import { IImageIoService as ui, IDrawingManagerService as fe, DRAWING_IMAGE_ALLOW_IMAGE_LIST as hi, DRAWING_IMAGE_COUNT_LIMIT as Wt, ImageUploadStatusType as vt, DRAWING_IMAGE_ALLOW_SIZE as fi, getImageSize as pi, getDrawingShapeKeyByDrawingSearch as mi, DRAWING_IMAGE_WIDTH_LIMIT as Ht, DRAWING_IMAGE_HEIGHT_LIMIT as Gt, UniverDrawingPlugin as vi } from "@univerjs/drawing";
11
- import { IMessageService as wi, ILocalFileService as Ii, ISidebarService as _i, CanvasFloatDomService as Si, getMenuHiddenObservable as on, MenuItemType as an, PrintFloatDomSingle as Di, ComponentManager as cn, connectInjector as Oi, RibbonInsertGroup as Ti, useDependency as ve, KeyCode as Fe, IMenuManagerService as yi, IShortcutService as Mi, UniverUIPlugin as bi } from "@univerjs/ui";
12
- import { BehaviorSubject as Tt, debounceTime as dn, map as Vt, switchMap as Ci, of as Ei, Observable as Ri, filter as jt, takeUntil as $t } from "rxjs";
13
- import { DrawingRenderService as gn, DrawingCommonPanel as Ai, ImageCropperObject as Pi, COMPONENT_IMAGE_POPUP_MENU as xi, OpenImageCropOperation as Ni, ImageResetSizeOperation as Li, UniverDrawingUIPlugin as Ui } from "@univerjs/drawing-ui";
14
- import { jsx as y, jsxs as X } from "react/jsx-runtime";
15
- import { useMemo as Bi, useState as re, useEffect as yt } from "react";
16
- const Mt = {
17
- id: "doc.command.remove-doc-image",
18
- type: q.COMMAND,
19
- // eslint-disable-next-line max-lines-per-function
20
- handler: (r, e) => {
21
- var C, M, A, U;
22
- const t = r.get(j), n = r.get(z), i = r.get(Q), s = n.getCurrentUniverDocInstance();
23
- if (e == null || s == null)
24
- return !1;
25
- const o = i.getRenderById(e.unitId).with(ye), { drawings: c } = e, d = (C = o.getSegment()) != null ? C : "", a = new St(), g = $.getInstance(), u = (A = (M = s.getSelfOrHeaderFooterModel(d).getBody()) == null ? void 0 : M.customBlocks) != null ? A : [], l = c.map((R) => u.find((w) => w.blockId === R.drawingId)).filter((R) => !!R).sort((R, w) => R.startIndex > w.startIndex ? 1 : -1), f = c[0].unitId, h = new Nn();
26
- h.reset();
27
- const m = l[0].startIndex, p = [
28
- {
29
- startOffset: m,
30
- endOffset: m
31
- }
32
- ], v = {
33
- id: ee.id,
34
- params: {
35
- unitId: f,
36
- actions: [],
37
- textRanges: p
38
- }
39
- }, D = [];
40
- for (const R of l) {
41
- const { startIndex: w } = R;
42
- w > h.cursor && a.push({
43
- t: Y.RETAIN,
44
- len: w - h.cursor
45
- }), a.push({
46
- t: Y.DELETE,
47
- len: 1
48
- }), h.moveCursorTo(w + 1);
49
- }
50
- const S = qe(s, d);
51
- D.push(g.editOp(a.serialize(), S));
52
- for (const R of l) {
53
- const { blockId: w } = R, N = ((U = s.getDrawings()) != null ? U : {})[w], x = s.getDrawingsOrder().indexOf(w), G = g.removeOp(["drawings", w], N), I = g.removeOp(["drawingsOrder", x], w);
54
- D.push(G), D.push(I);
55
- }
56
- return v.params.actions = D.reduce((R, w) => $.compose(R, w), null), !!t.syncExecuteCommand(v.id, v.params);
57
- }
58
- }, ln = {
59
- id: "doc.command.delete-drawing",
60
- type: q.COMMAND,
61
- handler: (r) => {
62
- const e = r.get(j), n = r.get(We).getFocusDrawings();
63
- if (n.length === 0)
64
- return !1;
65
- const { unitId: i } = n[0], s = n.map((o) => {
66
- const { unitId: c, subUnitId: d, drawingId: a, drawingType: g } = o;
67
- return {
68
- unitId: c,
69
- subUnitId: d,
70
- drawingId: a,
71
- drawingType: g
72
- };
73
- });
74
- return e.executeCommand(Mt.id, {
75
- unitId: i,
76
- drawings: s
77
- });
78
- }
79
- }, un = {
80
- id: "doc.command.group-doc-image",
81
- type: q.COMMAND,
82
- handler: (r, e) => !1
83
- }, bt = {
84
- id: "doc.command.insert-doc-image",
85
- type: q.COMMAND,
86
- // eslint-disable-next-line max-lines-per-function
87
- handler: (r, e) => {
88
- var M, A, U, R;
89
- if (e == null)
90
- return !1;
91
- const t = r.get(j), n = r.get(Ot), i = r.get(z), s = n.getActiveTextRange(), o = i.getCurrentUniverDocInstance();
92
- if (s == null || o == null)
93
- return !1;
94
- const c = o.getUnitId(), { drawings: d } = e, { collapsed: a, startOffset: g, segmentId: u } = s, l = o.getSelfOrHeaderFooterModel(u).getBody();
95
- if (l == null)
96
- return !1;
97
- const f = new St(), h = $.getInstance(), m = [], p = (A = (M = o.getSnapshot().drawingsOrder) == null ? void 0 : M.length) != null ? A : 0;
98
- let v = 0;
99
- if (a)
100
- g > 0 && f.push({
101
- t: Y.RETAIN,
102
- len: g
103
- });
104
- else {
105
- const w = Ln.selection.delete([s], l, 0, null, !1);
106
- f.push(...w);
107
- const N = Zn(l, [s]), H = (U = o.getDrawings()) != null ? U : {}, x = (R = o.getDrawingsOrder()) != null ? R : [], G = N.sort((I, _) => x.indexOf(I) > x.indexOf(_) ? -1 : x.indexOf(I) < x.indexOf(_) ? 1 : 0);
108
- if (G.length > 0)
109
- for (const I of G) {
110
- const _ = H[I], E = x.indexOf(I);
111
- if (_ == null || E < 0)
112
- continue;
113
- const T = h.removeOp(["drawings", I], _), L = h.removeOp(["drawingsOrder", E], I);
114
- m.push(T), m.push(L), v++;
115
- }
116
- }
117
- f.push({
118
- t: Y.INSERT,
119
- body: {
120
- dataStream: "\b".repeat(d.length),
121
- customBlocks: d.map((w, N) => ({
122
- startIndex: N,
123
- blockId: w.drawingId
124
- }))
125
- },
126
- len: d.length
127
- });
128
- const D = qe(o, u), S = h.editOp(f.serialize(), D);
129
- m.push(S);
130
- for (const w of d) {
131
- const { drawingId: N } = w, H = h.insertOp(["drawings", N], w), x = h.insertOp(["drawingsOrder", p - v], N);
132
- m.push(H), m.push(x);
133
- }
134
- const O = {
135
- id: ee.id,
136
- params: {
137
- unitId: c,
138
- actions: [],
139
- textRanges: []
140
- }
141
- };
142
- return O.params.actions = m.reduce((w, N) => $.compose(w, N), null), !!t.syncExecuteCommand(O.id, O.params);
143
- }
144
- }, hn = {
145
- id: "doc.command.set-drawing-arrange",
146
- type: q.COMMAND,
147
- handler: (r, e) => {
148
- const t = r.get(j), n = r.get(We);
149
- if (e == null)
150
- return !1;
151
- const { unitId: i, subUnitId: s, drawingIds: o, arrangeType: c } = e, d = { unitId: i, subUnitId: s, drawingIds: o };
152
- let a;
153
- if (c === Qe.forward ? a = n.getForwardDrawingsOp(d) : c === Qe.backward ? a = n.getBackwardDrawingOp(d) : c === Qe.front ? a = n.getFrontDrawingsOp(d) : c === Qe.back && (a = n.getBackDrawingsOp(d)), a == null)
154
- return !1;
155
- const { redo: g } = a;
156
- if (g == null)
157
- return !1;
158
- const u = [];
159
- let l = Ae.deepClone(g);
160
- l = l.slice(3), l.unshift("drawingsOrder"), u.push(l);
161
- const f = {
162
- id: ee.id,
163
- params: {
164
- unitId: i,
165
- actions: [],
166
- textRanges: null
167
- }
168
- };
169
- return f.params.actions = u.reduce((m, p) => $.compose(m, p), null), !!t.syncExecuteCommand(f.id, f.params);
170
- }
171
- }, fn = {
172
- id: "doc.command.ungroup-doc-image",
173
- type: q.COMMAND,
174
- handler: (r, e) => {
175
- const t = r.get(We);
176
- if (!e) return !1;
177
- const n = [];
178
- e.forEach(({ parent: g, children: u }) => {
179
- n.push(g.unitId), u.forEach((l) => {
180
- n.push(l.unitId);
181
- });
182
- });
183
- const i = t.getUngroupDrawingOp(e), { unitId: s, subUnitId: o, undo: c, redo: d, objects: a } = i;
184
- return !1;
185
- }
186
- };
187
- class ut {
188
- constructor() {
189
- me(this, "_refreshDrawings$", new Tt(null));
190
- me(this, "refreshDrawings$", this._refreshDrawings$.asObservable());
191
- }
192
- refreshDrawings(e) {
193
- this._refreshDrawings$.next(e);
194
- }
195
- }
196
- var Fi = Object.getOwnPropertyDescriptor, ki = (r, e, t, n) => {
197
- for (var i = n > 1 ? void 0 : n ? Fi(e, t) : e, s = r.length - 1, o; s >= 0; s--)
198
- (o = r[s]) && (i = o(i) || i);
199
- return i;
200
- }, le = (r, e) => (t, n) => e(t, n, r);
201
- let rt = class extends xe {
202
- constructor(r, e, t, n, i, s, o, c, d, a, g, u, l) {
203
- super(), this._context = r, this._commandService = e, this._docSelectionManagerService = t, this._renderManagerSrv = n, this._imageIoService = i, this._docDrawingService = s, this._drawingManagerService = o, this._contextService = c, this._messageService = d, this._localeService = a, this._docSelectionRenderService = g, this._docRefreshDrawingsService = u, this._fileOpenerService = l, this._updateOrderListener(), this._groupDrawingListener(), this._focusDrawingListener(), this._transformDrawingListener(), this._editAreaChangeListener();
204
- }
205
- dispose() {
206
- super.dispose(), delete this._context;
207
- }
208
- async insertDocImage() {
209
- const r = await this._fileOpenerService.openFile({
210
- multiple: !0,
211
- accept: hi.map((t) => `.${t.replace("image/", "")}`).join(",")
212
- }), e = r.length;
213
- return e > Wt ? (this._messageService.show({
214
- type: Bt.Error,
215
- content: this._localeService.t("update-status.exceedMaxCount", String(Wt))
216
- }), !1) : e === 0 ? !1 : (await this._insertFloatImages(r), !0);
217
- }
218
- // eslint-disable-next-line max-lines-per-function
219
- async _insertFloatImages(r) {
220
- let e = [];
221
- try {
222
- e = await Promise.all(r.map((i) => this._imageIoService.saveImage(i)));
223
- } catch (i) {
224
- const s = i.message;
225
- let o = "";
226
- switch (s) {
227
- case vt.ERROR_EXCEED_SIZE:
228
- o = this._localeService.t("update-status.exceedMaxSize", String(fi / (1024 * 1024)));
229
- break;
230
- case vt.ERROR_IMAGE_TYPE:
231
- o = this._localeService.t("update-status.invalidImageType");
232
- break;
233
- case vt.ERROR_IMAGE:
234
- o = this._localeService.t("update-status.invalidImage");
235
- break;
236
- }
237
- this._messageService.show({
238
- type: Bt.Error,
239
- content: o
240
- });
241
- }
242
- if (e.length === 0)
243
- return;
244
- const { unitId: t } = this._context, n = [];
245
- for (const i of e) {
246
- if (i == null)
247
- continue;
248
- const { imageId: s, imageSourceType: o, source: c, base64Cache: d } = i, { width: a, height: g, image: u } = await pi(d || "");
249
- this._imageIoService.addImageSourceCache(s, o, u);
250
- let l = 1;
251
- if (a > Ht || g > Gt) {
252
- const p = Ht / a, v = Gt / g;
253
- l = Math.min(p, v);
254
- }
255
- const f = this._getImagePosition(a * l, g * l);
256
- if (f == null)
257
- return;
258
- const h = {
259
- unitId: t,
260
- subUnitId: t,
261
- drawingId: s,
262
- drawingType: Pe.DRAWING_IMAGE,
263
- imageSourceType: o,
264
- source: c,
265
- transform: en(f),
266
- docTransform: f,
267
- behindDoc: se.FALSE,
268
- title: "",
269
- description: "",
270
- layoutType: k.INLINE,
271
- // Insert inline drawing by default.
272
- wrapText: ze.BOTH_SIDES,
273
- distB: 0,
274
- distL: 0,
275
- distR: 0,
276
- distT: 0
277
- };
278
- this._isInsertInHeaderFooter() && (h.isMultiTransform = se.TRUE, h.transforms = h.transform ? [h.transform] : null), n.push(h);
279
- }
280
- this._commandService.executeCommand(bt.id, {
281
- unitId: t,
282
- drawings: n
283
- });
284
- }
285
- _isInsertInHeaderFooter() {
286
- var n;
287
- const { unitId: r } = this._context, e = (n = this._renderManagerSrv.getRenderById(r)) == null ? void 0 : n.with(te).getViewModel(), t = e == null ? void 0 : e.getEditArea();
288
- return t === Be.HEADER || t === Be.FOOTER;
289
- }
290
- _getImagePosition(r, e) {
291
- const t = this._docSelectionRenderService.getActiveTextRange(), n = (t == null ? void 0 : t.getAbsolutePosition()) || {
292
- left: 0
293
- };
294
- return {
295
- size: {
296
- width: r,
297
- height: e
298
- },
299
- positionH: {
300
- relativeFrom: J.PAGE,
301
- posOffset: n.left
302
- },
303
- positionV: {
304
- relativeFrom: W.PARAGRAPH,
305
- posOffset: 0
306
- },
307
- angle: 0
308
- };
309
- }
310
- _updateOrderListener() {
311
- this.disposeWithMe(
312
- this._drawingManagerService.featurePluginOrderUpdate$.subscribe((r) => {
313
- const { unitId: e, subUnitId: t, drawingIds: n, arrangeType: i } = r;
314
- this._commandService.executeCommand(hn.id, {
315
- unitId: e,
316
- subUnitId: t,
317
- drawingIds: n,
318
- arrangeType: i
319
- });
320
- })
321
- );
322
- }
323
- _groupDrawingListener() {
324
- this.disposeWithMe(
325
- this._drawingManagerService.featurePluginGroupUpdate$.subscribe((r) => {
326
- this._commandService.executeCommand(un.id, r);
327
- })
328
- ), this.disposeWithMe(
329
- this._drawingManagerService.featurePluginUngroupUpdate$.subscribe((r) => {
330
- this._commandService.executeCommand(fn.id, r);
331
- })
332
- );
333
- }
334
- _getCurrentSceneAndTransformer() {
335
- const { scene: r, mainComponent: e } = this._context;
336
- if (r == null || e == null)
337
- return;
338
- const t = r.getTransformerByCreate(), { docsLeft: n, docsTop: i } = e.getOffsetConfig();
339
- return { scene: r, transformer: t, docsLeft: n, docsTop: i };
340
- }
341
- _transformDrawingListener() {
342
- const r = this._getCurrentSceneAndTransformer();
343
- if (r && r.transformer)
344
- this.disposeWithMe(r.transformer.changeEnd$.pipe(dn(30)).subscribe((e) => {
345
- this._docSelectionManagerService.refreshSelection();
346
- }));
347
- else
348
- throw new Error("transformer is not init");
349
- }
350
- _focusDrawingListener() {
351
- this.disposeWithMe(
352
- this._drawingManagerService.focus$.subscribe((r) => {
353
- var i;
354
- const { transformer: e, docsLeft: t, docsTop: n } = (i = this._getCurrentSceneAndTransformer()) != null ? i : {};
355
- if (r == null || r.length === 0)
356
- this._contextService.setContextValue(it, !1), this._docDrawingService.focusDrawing([]), e && e.resetProps({
357
- zeroTop: 0,
358
- zeroLeft: 0
359
- });
360
- else {
361
- this._contextService.setContextValue(it, !0), this._docDrawingService.focusDrawing(r), this._setDrawingSelections(r);
362
- const s = this._docSelectionRenderService.getSegment(), o = this._findSegmentIdByDrawingId(r[0].drawingId);
363
- s !== o && this._docSelectionRenderService.setSegment(o), e && e.resetProps({
364
- zeroTop: n,
365
- zeroLeft: t
366
- });
367
- }
368
- })
369
- );
370
- }
371
- _findSegmentIdByDrawingId(r) {
372
- var o, c, d;
373
- const { unit: e } = this._context, { body: t, headers: n = {}, footers: i = {} } = e.getSnapshot();
374
- if (((o = t == null ? void 0 : t.customBlocks) != null ? o : []).some((a) => a.blockId === r))
375
- return "";
376
- for (const a of Object.keys(n))
377
- if ((c = n[a].body.customBlocks) != null && c.some((g) => g.blockId === r))
378
- return a;
379
- for (const a of Object.keys(i))
380
- if ((d = i[a].body.customBlocks) != null && d.some((g) => g.blockId === r))
381
- return a;
382
- return "";
383
- }
384
- // Update drawings edit status and opacity. You can not edit header footer images when you are editing body. and vice verse.
385
- _updateDrawingsEditStatus() {
386
- var c;
387
- if (!this._context) return;
388
- const { unit: r, scene: e, unitId: t } = this._context, n = (c = this._renderManagerSrv.getRenderById(t)) == null ? void 0 : c.with(te).getViewModel();
389
- if (n == null || r == null)
390
- return;
391
- const i = r.getSnapshot(), { drawings: s = {} } = i, o = n.getEditArea() === Be.BODY;
392
- for (const d of Object.keys(s)) {
393
- const a = s[d], g = mi({ unitId: t, drawingId: a.drawingId, subUnitId: t }), u = e.fuzzyMathObjects(g, !0);
394
- if (u.length)
395
- for (const l of u) {
396
- e.detachTransformerFrom(l);
397
- try {
398
- l.setOpacity(0.5);
399
- } catch {
400
- }
401
- if (o && a.isMultiTransform !== se.TRUE || !o && a.isMultiTransform === se.TRUE) {
402
- a.allowTransform !== !1 && e.attachTransformerTo(l);
403
- try {
404
- l.setOpacity(1);
405
- } catch {
406
- }
407
- }
408
- }
409
- }
410
- }
411
- _editAreaChangeListener() {
412
- var t;
413
- const { unitId: r } = this._context, e = (t = this._renderManagerSrv.getRenderById(r)) == null ? void 0 : t.with(te).getViewModel();
414
- e != null && (this._updateDrawingsEditStatus(), this.disposeWithMe(
415
- e.editAreaChange$.subscribe(() => {
416
- this._updateDrawingsEditStatus();
417
- })
418
- ), this.disposeWithMe(
419
- this._docRefreshDrawingsService.refreshDrawings$.subscribe((n) => {
420
- n != null && queueMicrotask(() => {
421
- this._updateDrawingsEditStatus();
422
- });
423
- })
424
- ), this.disposeWithMe(
425
- this._commandService.onCommandExecuted(async (n) => {
426
- n.id === ee.id && queueMicrotask(() => {
427
- this._updateDrawingsEditStatus();
428
- });
429
- })
430
- ));
431
- }
432
- _setDrawingSelections(r) {
433
- var i, s;
434
- const { unit: e } = this._context, t = (s = (i = e.getSnapshot().body) == null ? void 0 : i.customBlocks) != null ? s : [], n = r.map((o) => {
435
- const c = o.drawingId, d = t.find((a) => a.blockId === c);
436
- return d ? d.startIndex : null;
437
- }).filter((o) => o !== null).map((o) => ({ startOffset: o, endOffset: o + 1 }));
438
- this._docSelectionManagerService.replaceDocRanges(n);
439
- }
440
- };
441
- rt = ki([
442
- le(1, j),
443
- le(2, Z(Ot)),
444
- le(3, Q),
445
- le(4, ui),
446
- le(5, We),
447
- le(6, fe),
448
- le(7, Yt),
449
- le(8, wi),
450
- le(9, Z(lt)),
451
- le(10, Z(ye)),
452
- le(11, Z(ut)),
453
- le(12, Ii)
454
- ], rt);
455
- const pn = {
456
- id: "doc.command.insert-float-image",
457
- type: q.COMMAND,
458
- handler: (r) => {
459
- var n, i;
460
- const e = r.get(z), t = r.get(Q);
461
- return (i = (n = ri(we.UNIVER_DOC, e, t)) == null ? void 0 : n.with(rt).insertDocImage()) != null ? i : !1;
462
- }
463
- };
464
- var ue = /* @__PURE__ */ ((r) => (r.INLINE = "inline", r.BEHIND_TEXT = "behindText", r.IN_FRONT_OF_TEXT = "inFrontOfText", r.WRAP_SQUARE = "wrapSquare", r.WRAP_TOP_AND_BOTTOM = "wrapTopAndBottom", r))(ue || {});
465
- const Wi = {
466
- inline: k.INLINE,
467
- wrapSquare: k.WRAP_SQUARE,
468
- wrapTopAndBottom: k.WRAP_TOP_AND_BOTTOM,
469
- inFrontOfText: k.WRAP_NONE,
470
- behindText: k.WRAP_NONE
471
- };
472
- function mn(r, e, t, n, i, s, o) {
473
- var f, h;
474
- const c = new St(), d = $.getInstance(), a = [], g = s.getSelfOrHeaderFooterModel(e).getBody(), u = s.getSelfOrHeaderFooterModel(r).getBody();
475
- if (g == null || u == null)
476
- return;
477
- const l = (h = (f = g.customBlocks) == null ? void 0 : f.find((m) => m.blockId === i)) == null ? void 0 : h.startIndex;
478
- if (l != null) {
479
- if (n = Math.min(u.dataStream.length - 2, n), r === e) {
480
- if (n < l ? (n > 0 && c.push({
481
- t: Y.RETAIN,
482
- len: n
483
- }), c.push({
484
- t: Y.INSERT,
485
- body: {
486
- dataStream: "\b",
487
- customBlocks: [{
488
- startIndex: 0,
489
- blockId: i
490
- }]
491
- },
492
- len: 1
493
- }), c.push({
494
- t: Y.RETAIN,
495
- len: l - n
496
- }), c.push({
497
- t: Y.DELETE,
498
- len: 1
499
- })) : (l > 0 && c.push({
500
- t: Y.RETAIN,
501
- len: l
502
- }), c.push({
503
- t: Y.DELETE,
504
- len: 1
505
- }), n - l - 1 > 0 && c.push({
506
- t: Y.RETAIN,
507
- len: n - l - 1
508
- }), c.push({
509
- t: Y.INSERT,
510
- body: {
511
- dataStream: "\b",
512
- customBlocks: [{
513
- startIndex: 0,
514
- blockId: i
515
- }]
516
- },
517
- len: 1
518
- })), n !== l) {
519
- const m = qe(s, e), p = d.editOp(c.serialize(), m);
520
- a.push(p);
521
- }
522
- } else {
523
- l > 0 && c.push({
524
- t: Y.RETAIN,
525
- len: l
526
- }), c.push({
527
- t: Y.DELETE,
528
- len: 1
529
- });
530
- let m = qe(s, e), p = d.editOp(c.serialize(), m);
531
- a.push(p), c.empty(), n > 0 && c.push({
532
- t: Y.RETAIN,
533
- len: n
534
- }), c.push({
535
- t: Y.INSERT,
536
- body: {
537
- dataStream: "\b",
538
- customBlocks: [{
539
- startIndex: 0,
540
- blockId: i
541
- }]
542
- },
543
- len: 1
544
- }), m = qe(s, r), p = d.editOp(c.serialize(), m), a.push(p), o.setSegment(r), o.setSegmentPage(t);
545
- }
546
- return a;
547
- }
548
- }
549
- const vn = {
550
- id: "doc.command.update-doc-drawing-wrapping-style",
551
- type: q.COMMAND,
552
- // eslint-disable-next-line max-lines-per-function, complexity
553
- handler: (r, e) => {
554
- var A, U;
555
- if (e == null)
556
- return !1;
557
- const { drawings: t, wrappingStyle: n, unitId: i } = e, s = r.get(j), o = r.get(z), d = r.get(Q).getRenderById(i), a = d == null ? void 0 : d.with(te).getSkeleton().getSkeletonData(), g = d == null ? void 0 : d.with(te).getViewModel(), u = d == null ? void 0 : d.scene, l = o.getCurrentUniverDocInstance();
558
- if (l == null || a == null || u == null || g == null)
559
- return !1;
560
- const f = g.getEditArea(), h = u.getTransformerByCreate(), { pages: m, skeHeaders: p, skeFooters: v } = a, D = $.getInstance(), S = [], { drawings: O = {} } = l.getSnapshot();
561
- for (const R of t) {
562
- const { drawingId: w } = R, N = O[w].layoutType, H = Wi[n];
563
- if (N !== H) {
564
- const _ = D.replaceOp(["drawings", w, "layoutType"], N, H);
565
- S.push(_);
566
- }
567
- if (n === "behindText" || n === "inFrontOfText") {
568
- const _ = O[w].behindDoc, E = n === "behindText" ? se.TRUE : se.FALSE;
569
- if (_ !== E) {
570
- const T = D.replaceOp(["drawings", w, "behindDoc"], _, E);
571
- S.push(T);
572
- }
573
- }
574
- if (n === "inline")
575
- continue;
576
- let x = null, G = 0, I = 0;
577
- for (const _ of m) {
578
- const { headerId: E, footerId: T, marginTop: L, marginLeft: B, marginBottom: b, pageWidth: P, pageHeight: V } = _;
579
- switch (f) {
580
- case Be.HEADER: {
581
- const F = (A = p.get(E)) == null ? void 0 : A.get(P);
582
- F != null && F.skeDrawings.has(w) && (x = F.skeDrawings.get(w), G = F.marginTop, I = B);
583
- break;
584
- }
585
- case Be.FOOTER: {
586
- const F = (U = v.get(T)) == null ? void 0 : U.get(P);
587
- F != null && F.skeDrawings.has(w) && (x = F.skeDrawings.get(w), G = V - b + F.marginTop, I = B);
588
- break;
589
- }
590
- case Be.BODY: {
591
- _.skeDrawings.has(w) && (x = _.skeDrawings.get(w), G = L, I = B);
592
- break;
593
- }
594
- }
595
- if (x != null)
596
- break;
597
- }
598
- if (x != null) {
599
- const { aTop: _, aLeft: E } = x, T = O[w].docTransform.positionH;
600
- let L = E;
601
- T.relativeFrom === J.MARGIN ? L -= I : T.relativeFrom === J.COLUMN && (L -= x.columnLeft);
602
- const B = {
603
- relativeFrom: T.relativeFrom,
604
- posOffset: L
605
- };
606
- if (T.posOffset !== B.posOffset) {
607
- const F = D.replaceOp(["drawings", w, "docTransform", "positionH"], T, B);
608
- S.push(F);
609
- }
610
- const b = O[w].docTransform.positionV;
611
- let P = _;
612
- b.relativeFrom === W.PAGE ? P += G : b.relativeFrom === W.LINE ? P -= x.lineTop : b.relativeFrom === W.PARAGRAPH && (P -= x.blockAnchorTop);
613
- const V = {
614
- relativeFrom: b.relativeFrom,
615
- posOffset: P
616
- };
617
- if (b.posOffset !== V.posOffset) {
618
- const F = D.replaceOp(["drawings", w, "docTransform", "positionV"], b, V);
619
- S.push(F);
620
- }
621
- }
622
- }
623
- const C = {
624
- id: ee.id,
625
- params: {
626
- unitId: i,
627
- actions: [],
628
- textRanges: null
629
- }
630
- };
631
- C.params.actions = S.reduce((R, w) => $.compose(R, w), null);
632
- const M = s.syncExecuteCommand(C.id, C.params);
633
- return h.refreshControls(), !!M;
634
- }
635
- }, wn = {
636
- id: "doc.command.update-doc-drawing-distance",
637
- type: q.COMMAND,
638
- handler: (r, e) => {
639
- if (e == null)
640
- return !1;
641
- const t = r.get(j), i = r.get(z).getCurrentUniverDocInstance();
642
- if (i == null)
643
- return !1;
644
- const { drawings: s, dist: o, unitId: c } = e, d = $.getInstance(), a = [], { drawings: g = {} } = i.getSnapshot();
645
- for (const f of s) {
646
- const { drawingId: h } = f;
647
- for (const [m, p] of Object.entries(o)) {
648
- const v = g[h][m];
649
- if (v !== p) {
650
- const D = d.replaceOp(["drawings", h, m], v, p);
651
- a.push(D);
652
- }
653
- }
654
- }
655
- const u = {
656
- id: ee.id,
657
- params: {
658
- unitId: c,
659
- actions: [],
660
- textRanges: null
661
- }
662
- };
663
- return u.params.actions = a.reduce((f, h) => $.compose(f, h), null), !!t.syncExecuteCommand(u.id, u.params);
664
- }
665
- }, In = {
666
- id: "doc.command.update-doc-drawing-wrap-text",
667
- type: q.COMMAND,
668
- handler: (r, e) => {
669
- if (e == null)
670
- return !1;
671
- const t = r.get(j), i = r.get(z).getCurrentUniverDocInstance();
672
- if (i == null)
673
- return !1;
674
- const { drawings: s, wrapText: o, unitId: c } = e, d = $.getInstance(), a = [], { drawings: g = {} } = i.getSnapshot();
675
- for (const f of s) {
676
- const { drawingId: h } = f, m = g[h].wrapText;
677
- if (m !== o) {
678
- const p = d.replaceOp(["drawings", h, "wrapText"], m, o);
679
- a.push(p);
680
- }
681
- }
682
- const u = {
683
- id: ee.id,
684
- params: {
685
- unitId: c,
686
- actions: [],
687
- textRanges: null
688
- }
689
- };
690
- return u.params.actions = a.reduce((f, h) => $.compose(f, h), null), !!t.syncExecuteCommand(u.id, u.params);
691
- }
692
- }, Ke = {
693
- id: "doc.command.update-drawing-doc-transform",
694
- type: q.COMMAND,
695
- handler: (r, e) => {
696
- if (e == null)
697
- return !1;
698
- const t = r.get(j), n = r.get(z), s = r.get(Q).getRenderById(e.unitId), o = s == null ? void 0 : s.scene;
699
- if (o == null)
700
- return !1;
701
- const c = o.getTransformerByCreate(), d = n.getCurrentUniverDocInstance();
702
- if (d == null)
703
- return !1;
704
- const { drawings: a, unitId: g } = e, u = $.getInstance(), l = [], { drawings: f = {} } = d.getSnapshot();
705
- for (const p of a) {
706
- const { drawingId: v, key: D, value: S } = p, O = f[v].docTransform[D];
707
- if (!Ae.diffValue(O, S)) {
708
- const C = u.replaceOp(["drawings", v, "docTransform", D], O, S);
709
- l.push(C);
710
- }
711
- }
712
- const h = {
713
- id: ee.id,
714
- params: {
715
- unitId: g,
716
- actions: [],
717
- textRanges: null,
718
- debounce: !0
719
- }
720
- };
721
- h.params.actions = l.reduce((p, v) => $.compose(p, v), null);
722
- const m = t.syncExecuteCommand(h.id, h.params);
723
- return c.refreshControls(), !!m;
724
- }
725
- }, _n = {
726
- id: "doc.command.move-inline-drawing",
727
- type: q.COMMAND,
728
- handler: (r, e) => {
729
- var U, R;
730
- if (e == null)
731
- return !1;
732
- const t = r.get(Q), n = (U = t.getRenderById(e.unitId)) == null ? void 0 : U.with(ye), i = r.get(ut), s = t.getRenderById(e.unitId), o = s == null ? void 0 : s.scene, c = s == null ? void 0 : s.with(te).getSkeleton();
733
- if (o == null || n == null)
734
- return !1;
735
- const d = o.getTransformerByCreate(), a = r.get(j), u = r.get(z).getCurrentUniverDocInstance();
736
- if (u == null)
737
- return !1;
738
- const { drawing: l, unitId: f, offset: h, segmentId: m, segmentPage: p, needRefreshDrawings: v } = e;
739
- if (v)
740
- return i.refreshDrawings(c), d.refreshControls(), !0;
741
- const D = [], { drawingId: S } = l, O = (R = n.getSegment()) != null ? R : "", C = mn(
742
- m,
743
- O,
744
- p,
745
- h,
746
- S,
747
- u,
748
- n
749
- );
750
- if (C == null || C.length === 0)
751
- return i.refreshDrawings(c), d.refreshControls(), !1;
752
- D.push(...C);
753
- const M = {
754
- id: ee.id,
755
- params: {
756
- unitId: f,
757
- actions: [],
758
- textRanges: null
759
- }
760
- };
761
- M.params.actions = D.reduce((w, N) => $.compose(w, N), null);
762
- const A = a.syncExecuteCommand(M.id, M.params);
763
- return d.refreshControls(), !!A;
764
- }
765
- }, Sn = {
766
- id: "doc.command.transform-non-inline-drawing",
767
- type: q.COMMAND,
768
- // eslint-disable-next-line max-lines-per-function
769
- handler: (r, e) => {
770
- var x, G;
771
- if (e == null)
772
- return !1;
773
- const t = r.get(Q), n = (x = t.getRenderById(e.unitId)) == null ? void 0 : x.with(ye), i = t.getRenderById(e.unitId), s = i == null ? void 0 : i.scene;
774
- if (s == null || n == null)
775
- return !1;
776
- const o = s.getTransformerByCreate(), c = r.get(j), a = r.get(z).getCurrentUniverDocInstance();
777
- if (a == null)
778
- return !1;
779
- const { drawing: g, unitId: u, offset: l, docTransform: f, segmentId: h, segmentPage: m } = e, p = [], { drawingId: v } = g, D = (G = n.getSegment()) != null ? G : "", S = mn(
780
- h,
781
- D,
782
- m,
783
- l,
784
- v,
785
- a,
786
- n
787
- );
788
- if (S == null)
789
- return !1;
790
- S.length > 0 && p.push(...S);
791
- const O = $.getInstance(), { drawings: C = {} } = a.getSnapshot(), M = C[v].docTransform, { positionH: A, positionV: U, size: R, angle: w } = M;
792
- if (!Ae.diffValue(A, f.positionH)) {
793
- const I = O.replaceOp(["drawings", v, "docTransform", "positionH"], A, f.positionH);
794
- p.push(I);
795
- }
796
- if (!Ae.diffValue(U, f.positionV)) {
797
- const I = O.replaceOp(["drawings", v, "docTransform", "positionV"], U, f.positionV);
798
- p.push(I);
799
- }
800
- if (!Ae.diffValue(R, f.size)) {
801
- const I = O.replaceOp(["drawings", v, "docTransform", "size"], R, f.size);
802
- p.push(I);
803
- }
804
- if (!Ae.diffValue(w, f.angle)) {
805
- const I = O.replaceOp(["drawings", v, "docTransform", "angle"], w, f.angle);
806
- p.push(I);
807
- }
808
- const N = {
809
- id: ee.id,
810
- params: {
811
- unitId: u,
812
- actions: [],
813
- textRanges: null,
814
- debounce: !0
815
- }
816
- };
817
- N.params.actions = p.reduce((I, _) => $.compose(I, _), null);
818
- const H = c.syncExecuteCommand(N.id, N.params);
819
- return o.refreshControls(), !!H;
820
- }
821
- }, Ye = {
822
- id: "doc.command.move-drawing",
823
- type: q.COMMAND,
824
- handler: (r, e) => {
825
- const t = r.get(j), n = r.get(We), i = r.get(z), s = r.get(Q), { direction: o } = e, c = n.getFocusDrawings();
826
- if (c.length === 0)
827
- return !1;
828
- const d = c[0].unitId, a = s.getRenderById(d), g = a == null ? void 0 : a.scene;
829
- if (g == null)
830
- return !1;
831
- const u = g.getTransformerByCreate(), l = i.getUniverDocInstance(d), f = c.map((m) => {
832
- var M, A, U, R, w;
833
- const { drawingId: p } = m, v = (M = l == null ? void 0 : l.getSnapshot().drawings) == null ? void 0 : M[p];
834
- if (v == null || v.layoutType === k.INLINE)
835
- return null;
836
- const { positionH: D, positionV: S } = v.docTransform, O = { ...D }, C = { ...S };
837
- return o === he.UP ? C.posOffset = ((A = C.posOffset) != null ? A : 0) - 2 : o === he.DOWN ? C.posOffset = ((U = C.posOffset) != null ? U : 0) + 2 : o === he.LEFT ? O.posOffset = ((R = O.posOffset) != null ? R : 0) - 2 : o === he.RIGHT && (O.posOffset = ((w = O.posOffset) != null ? w : 0) + 2), {
838
- drawingId: p,
839
- key: o === he.UP || o === he.DOWN ? "positionV" : "positionH",
840
- value: o === he.UP || o === he.DOWN ? C : O
841
- };
842
- }).filter((m) => m != null);
843
- if (f.length === 0)
844
- return !1;
845
- const h = t.syncExecuteCommand(Ke.id, {
846
- unitId: d,
847
- subUnitId: d,
848
- drawings: f
849
- });
850
- return u.refreshControls(), !!h;
851
- }
852
- }, Hi = {
853
- id: "doc.operation.clear-drawing-transformer",
854
- type: q.MUTATION,
855
- handler: (r, e) => {
856
- const t = r.get(Q);
857
- return e.forEach((n) => {
858
- var i, s;
859
- (s = (i = t.getRenderById(n)) == null ? void 0 : i.scene.getTransformer()) == null || s.debounceRefreshControls();
860
- }), !0;
861
- }
862
- }, Dn = "COMPONENT_DOC_DRAWING_PANEL", On = {
863
- id: "sidebar.operation.doc-image",
864
- type: q.COMMAND,
865
- handler: async (r, e) => {
866
- const t = r.get(_i), n = r.get(lt), i = r.get(fe);
867
- return e.value === "open" ? t.open({
868
- header: { title: n.t("docImage.panel.title") },
869
- children: { label: Dn },
870
- onClose: () => {
871
- i.focusDrawing(null);
872
- },
873
- width: 360
874
- }) : t.close(), !0;
875
- }
876
- }, Tn = {
877
- id: "doc.operation.edit-doc-image",
878
- type: q.OPERATION,
879
- handler: (r, e) => {
880
- const t = r.get(fe), n = r.get(j);
881
- return e == null ? !1 : (t.focusDrawing([e]), n.executeCommand(On.id, { value: "open" }), !0);
882
- }
883
- };
884
- var Gi = Object.getOwnPropertyDescriptor, Vi = (r, e, t, n) => {
885
- for (var i = n > 1 ? void 0 : n ? Gi(e, t) : e, s = r.length - 1, o; s >= 0; s--)
886
- (o = r[s]) && (i = o(i) || i);
887
- return i;
888
- }, Le = (r, e) => (t, n) => e(t, n, r);
889
- function yn(r, e, t = 1, n = 0) {
890
- const { top: i, left: s, bottom: o, right: c } = r, d = c - s, a = o - i, g = e.getViewport(tn.VIEW_MAIN), { viewportScrollX: u, viewportScrollY: l } = g, { scaleX: f, scaleY: h } = e.getAncestorScale();
891
- return {
892
- startX: (s - u) * f,
893
- startY: (i - l) * h,
894
- endX: (s + d - u) * f,
895
- endY: (i + a - l) * h,
896
- width: d * f,
897
- height: a * h,
898
- rotate: n,
899
- absolute: {
900
- left: !1,
901
- top: !1
902
- },
903
- opacity: t != null ? t : 1
904
- };
905
- }
906
- function wt(r, e) {
907
- const { top: t, left: n, width: i, height: s, angle: o, opacity: c } = r;
908
- return yn({ top: t, left: n, bottom: t + s, right: n + i }, e.scene, c, o);
909
- }
910
- let st = class extends xe {
911
- constructor(e, t, n, i, s, o) {
912
- super();
913
- me(this, "_domLayerInfoMap", /* @__PURE__ */ new Map());
914
- this._renderManagerService = e, this._drawingManagerService = t, this._drawingRenderService = n, this._canvasFloatDomService = i, this._univerInstanceService = s, this._commandService = o, this._initialize();
915
- }
916
- dispose() {
917
- super.dispose();
918
- }
919
- _initialize() {
920
- this._drawingAddRemoveListener(), this._initScrollAndZoomEvent();
921
- }
922
- _getSceneAndTransformerByDrawingSearch(e) {
923
- if (e == null)
924
- return;
925
- const t = this._renderManagerService.getRenderById(e);
926
- if (t == null)
927
- return null;
928
- const n = t.scene, i = n.getTransformerByCreate();
929
- return { scene: n, transformer: i, renderUnit: t, canvas: t.engine.getCanvasElement() };
930
- }
931
- _drawingAddRemoveListener() {
932
- this.disposeWithMe(
933
- this._drawingManagerService.add$.subscribe((e) => {
934
- this._insertRects(e);
935
- })
936
- ), this.disposeWithMe(
937
- this._drawingManagerService.remove$.subscribe((e) => {
938
- e.forEach((t) => {
939
- this._removeDom(t.drawingId);
940
- });
941
- })
942
- );
943
- }
944
- _insertRects(e) {
945
- e.forEach(async (t) => {
946
- const { unitId: n } = t;
947
- if (!this._univerInstanceService.getUnit(n, we.UNIVER_DOC))
948
- return;
949
- const s = this._getSceneAndTransformerByDrawingSearch(n);
950
- if (s == null)
951
- return;
952
- const o = this._drawingManagerService.getDrawingByParam(t);
953
- if (o == null)
954
- return;
955
- const c = await this._drawingRenderService.renderFloatDom(o, s.scene);
956
- if (!(c == null || c.length === 0))
957
- for (const d of c) {
958
- this._addHoverForRect(d);
959
- const a = new Un(), g = wt(d, s.renderUnit), u = new Tt(g), l = s.canvas, f = o.data, h = {
960
- dispose: a,
961
- rect: d,
962
- position$: u,
963
- unitId: n
964
- };
965
- this._canvasFloatDomService.addFloatDom({
966
- position$: u,
967
- id: o.drawingId,
968
- componentKey: o.componentKey,
969
- onPointerDown: (p) => {
970
- l.dispatchEvent(new PointerEvent(p.type, p));
971
- },
972
- onPointerMove: (p) => {
973
- l.dispatchEvent(new PointerEvent(p.type, p));
974
- },
975
- onPointerUp: (p) => {
976
- l.dispatchEvent(new PointerEvent(p.type, p));
977
- },
978
- onWheel: (p) => {
979
- l.dispatchEvent(new WheelEvent(p.type, p));
980
- },
981
- data: f,
982
- unitId: n
983
- });
984
- const m = d.onTransformChange$.subscribeEvent(() => {
985
- const p = wt(d, s.renderUnit);
986
- u.next(
987
- p
988
- );
989
- });
990
- a.add(() => {
991
- this._canvasFloatDomService.removeFloatDom(o.drawingId);
992
- }), m && a.add(m), this._domLayerInfoMap.set(o.drawingId, h);
993
- }
994
- });
995
- }
996
- _addHoverForRect(e) {
997
- this.disposeWithMe(
998
- Xe(
999
- e.onPointerEnter$.subscribeEvent(() => {
1000
- e.cursor = Nt.GRAB;
1001
- })
1002
- )
1003
- ), this.disposeWithMe(
1004
- Xe(
1005
- e.onPointerLeave$.subscribeEvent(() => {
1006
- e.cursor = Nt.DEFAULT;
1007
- })
1008
- )
1009
- );
1010
- }
1011
- _removeDom(e) {
1012
- const t = this._domLayerInfoMap.get(e);
1013
- if (!t)
1014
- return;
1015
- const { unitId: n } = t;
1016
- this._domLayerInfoMap.delete(e), t.dispose.dispose();
1017
- const i = this._getSceneAndTransformerByDrawingSearch(n);
1018
- i && i.scene.removeObject(t.rect);
1019
- }
1020
- _initScrollAndZoomEvent() {
1021
- const e = (t) => {
1022
- const n = this._getSceneAndTransformerByDrawingSearch(t);
1023
- n && this._domLayerInfoMap.forEach((i) => {
1024
- if (i.unitId !== t) return;
1025
- const s = wt(i.rect, n.renderUnit);
1026
- i.position$.next(s);
1027
- });
1028
- };
1029
- this.disposeWithMe(
1030
- this._univerInstanceService.getCurrentTypeOfUnit$(we.UNIVER_DOC).pipe(
1031
- Vt((t) => {
1032
- if (!t) return null;
1033
- const n = t.getUnitId(), i = this._renderManagerService.getRenderById(n);
1034
- return i ? { render: i, unitId: n } : null;
1035
- }),
1036
- Ci(
1037
- (t) => t ? Zt(t.render.scene.getViewport(tn.VIEW_MAIN).onScrollAfter$).pipe(Vt(() => ({ unitId: t.unitId }))) : Ei(null)
1038
- )
1039
- ).subscribe((t) => {
1040
- if (!t) return;
1041
- const { unitId: n } = t;
1042
- e(n);
1043
- })
1044
- ), this.disposeWithMe(this._commandService.onCommandExecuted((t) => {
1045
- if (t.id === nn.id) {
1046
- const n = t.params, { unitId: i } = n;
1047
- e(i);
1048
- }
1049
- }));
1050
- }
1051
- insertFloatDom(e, t) {
1052
- var m, p, v;
1053
- const n = this._univerInstanceService.getCurrentUnitOfType(we.UNIVER_DOC);
1054
- if (!n) return !1;
1055
- const i = this._getSceneAndTransformerByDrawingSearch(n.getUnitId());
1056
- if (!i) return !1;
1057
- const c = (m = i.renderUnit.with(te).getSkeleton().getSkeletonData()) == null ? void 0 : m.pages[0];
1058
- if (!c) return !1;
1059
- const { pageWidth: d, marginLeft: a, marginRight: g } = c, u = d - a - g, l = {
1060
- size: {
1061
- width: (p = t.width) != null ? p : u,
1062
- height: t.height
1063
- },
1064
- positionH: {
1065
- relativeFrom: J.PAGE,
1066
- posOffset: 0
1067
- },
1068
- positionV: {
1069
- relativeFrom: W.PAGE,
1070
- posOffset: 0
1071
- },
1072
- angle: 0
1073
- }, f = (v = t.drawingId) != null ? v : Qt(), h = {
1074
- unitId: n.getUnitId(),
1075
- drawings: [
1076
- {
1077
- drawingId: f,
1078
- drawingType: Pe.DRAWING_DOM,
1079
- subUnitId: n.getUnitId(),
1080
- unitId: n.getUnitId(),
1081
- ...e,
1082
- title: "",
1083
- description: "",
1084
- docTransform: l,
1085
- layoutType: k.INLINE,
1086
- transform: en(l)
1087
- }
1088
- ]
1089
- };
1090
- return this._commandService.syncExecuteCommand(bt.id, h), f;
1091
- }
1092
- };
1093
- st = Vi([
1094
- Le(0, Q),
1095
- Le(1, fe),
1096
- Le(2, Z(gn)),
1097
- Le(3, Z(Si)),
1098
- Le(4, z),
1099
- Le(5, j)
1100
- ], st);
1101
- const Mn = "doc.menu.image", bn = pn.id, ji = (r) => {
1102
- const e = r.get(Ot), t = r.get(z);
1103
- return new Ri((n) => {
1104
- const i = e.textSelection$.subscribe(() => {
1105
- var o;
1106
- const s = e.getActiveTextRange();
1107
- if (s) {
1108
- const { segmentId: c, startOffset: d, endOffset: a } = s, g = t.getCurrentUniverDocInstance(), u = (o = g == null ? void 0 : g.getSelfOrHeaderFooterModel(c).getBody()) == null ? void 0 : o.tables;
1109
- if (u && u.length && u.some((l) => {
1110
- const { startIndex: f, endIndex: h } = l;
1111
- return d >= f && d < h || a >= f && a < h;
1112
- })) {
1113
- n.next(!0);
1114
- return;
1115
- }
1116
- } else {
1117
- n.next(!0);
1118
- return;
1119
- }
1120
- n.next(!1);
1121
- });
1122
- return () => i.unsubscribe();
1123
- });
1124
- };
1125
- function $i(r) {
1126
- return {
1127
- id: Mn,
1128
- type: an.SUBITEMS,
1129
- icon: "AddImageIcon",
1130
- tooltip: "docImage.title",
1131
- disabled$: ji(r),
1132
- hidden$: on(r, we.UNIVER_DOC, void 0, Dt)
1133
- };
1134
- }
1135
- function zi(r) {
1136
- return {
1137
- id: bn,
1138
- title: "docImage.upload.float",
1139
- type: an.BUTTON,
1140
- hidden$: on(r, we.UNIVER_DOC, void 0, Dt)
1141
- };
1142
- }
1143
- const Xi = "@univerjs/docs-drawing-ui", qi = "0.17.0", Cn = {
1144
- name: Xi,
1145
- version: qi
1146
- }, Ki = "docs-drawing-ui.config", zt = {};
1147
- var Yi = Object.getOwnPropertyDescriptor, Zi = (r, e, t, n) => {
1148
- for (var i = n > 1 ? void 0 : n ? Yi(e, t) : e, s = r.length - 1, o; s >= 0; s--)
1149
- (o = r[s]) && (i = o(i) || i);
1150
- return i;
1151
- }, Ve = (r, e) => (t, n) => e(t, n, r);
1152
- function Qi(r) {
1153
- var n, i, s, o;
1154
- if ($.isNoop(r) || !Array.isArray(r))
1155
- return null;
1156
- const e = r.find((c) => Array.isArray(c) && (c == null ? void 0 : c[0]) === "drawings");
1157
- if (e == null || !Array.isArray(e) || e.length < 3 || typeof e[1] == "string" && typeof e[2] != "object" || Array.isArray(e[1]) && typeof e[1][1] != "object")
1158
- return null;
1159
- const t = [];
1160
- if (Array.isArray(e == null ? void 0 : e[1]))
1161
- for (const c of e)
1162
- Array.isArray(c) && t.push({
1163
- type: (n = c == null ? void 0 : c[1]) != null && n.i ? "add" : "remove",
1164
- drawingId: c == null ? void 0 : c[0],
1165
- drawing: (i = c == null ? void 0 : c[1]) == null ? void 0 : i.i
1166
- });
1167
- else
1168
- t.push({
1169
- type: (s = e[2]) != null && s.i ? "add" : "remove",
1170
- drawingId: e[1],
1171
- drawing: (o = e[2]) == null ? void 0 : o.i
1172
- });
1173
- return t;
1174
- }
1175
- function Ji(r) {
1176
- if (!Array.isArray(r) || r.length < 3 || r[0] !== "drawingsOrder")
1177
- return [];
1178
- const e = [];
1179
- for (let t = 1; t < r.length; t++) {
1180
- const n = r[t];
1181
- if (Array.isArray(n) && typeof n[0] == "number" && typeof n[1] == "object")
1182
- e.push(n[0]);
1183
- else {
1184
- e.length = 0;
1185
- break;
1186
- }
1187
- }
1188
- return e;
1189
- }
1190
- let ot = class extends xe {
1191
- constructor(r, e, t, n, i) {
1192
- super(), this._univerInstanceService = r, this._commandService = e, this._drawingManagerService = t, this._docDrawingService = n, this._renderManagerService = i, this._initialize();
1193
- }
1194
- _initialize() {
1195
- this._commandExecutedListener();
1196
- }
1197
- _commandExecutedListener() {
1198
- this.disposeWithMe(
1199
- this._commandService.beforeCommandExecuted((r) => {
1200
- if (r.id !== ee.id)
1201
- return;
1202
- const e = r.params, { unitId: t, actions: n } = e, i = Qi(n);
1203
- if (i != null)
1204
- for (const { type: s, drawingId: o, drawing: c } of i)
1205
- s === "add" ? this._addDrawings(t, [c]) : this._removeDrawings(t, [o]);
1206
- })
1207
- ), this.disposeWithMe(
1208
- this._commandService.onCommandExecuted((r) => {
1209
- if (r.id !== ee.id)
1210
- return;
1211
- const e = r.params, { unitId: t, actions: n } = e;
1212
- Ji(n).length > 0 && this._updateDrawingsOrder(t);
1213
- })
1214
- ), this.disposeWithMe(
1215
- this._commandService.onCommandExecuted((r) => {
1216
- var o;
1217
- if (r.id !== Bn.id && r.id !== Fn.id)
1218
- return;
1219
- const e = (o = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : o.getUnitId(), t = this._drawingManagerService.getFocusDrawings();
1220
- if (e == null || t.length === 0)
1221
- return;
1222
- const n = this._renderManagerService.getRenderById(e), i = n == null ? void 0 : n.scene;
1223
- if (i == null)
1224
- return !1;
1225
- i.getTransformerByCreate().refreshControls();
1226
- })
1227
- );
1228
- }
1229
- _addDrawings(r, e) {
1230
- const t = this._drawingManagerService, n = this._docDrawingService, i = this._docDrawingService.getBatchAddOp(e), { subUnitId: s, redo: o, objects: c } = i;
1231
- t.applyJson1(r, s, o), n.applyJson1(r, s, o), t.addNotification(c), n.addNotification(c);
1232
- }
1233
- _removeDrawings(r, e) {
1234
- const t = this._drawingManagerService, n = this._docDrawingService, i = this._docDrawingService.getBatchRemoveOp(e.map((d) => ({
1235
- unitId: r,
1236
- subUnitId: r,
1237
- drawingId: d
1238
- }))), { subUnitId: s, redo: o, objects: c } = i;
1239
- t.applyJson1(r, s, o), n.applyJson1(r, s, o), t.removeNotification(c), n.removeNotification(c);
1240
- }
1241
- _updateDrawingsOrder(r) {
1242
- const e = this._univerInstanceService.getUniverDocInstance(r);
1243
- if (e == null)
1244
- return;
1245
- const t = e.getSnapshot().drawingsOrder;
1246
- if (t == null)
1247
- return;
1248
- const n = this._drawingManagerService, i = this._docDrawingService;
1249
- n.setDrawingOrder(r, r, t), i.setDrawingOrder(r, r, t);
1250
- const s = {
1251
- unitId: r,
1252
- subUnitId: r,
1253
- drawingIds: t
1254
- };
1255
- n.orderNotification(s), i.orderNotification(s);
1256
- }
1257
- };
1258
- ot = Zi([
1259
- Ve(0, z),
1260
- Ve(1, j),
1261
- Ve(2, fe),
1262
- Ve(3, We),
1263
- Ve(4, Q)
1264
- ], ot);
1265
- const er = (r) => {
1266
- const { floatDomInfos: e, scene: t, offset: n, bound: i } = r, s = i.right - i.left, o = i.bottom - i.top, c = Bi(() => e.map((d) => {
1267
- const { width: a = 0, height: g = 0, left: u = 0, top: l = 0 } = d.transform, h = yn(
1268
- {
1269
- left: u,
1270
- right: u + a,
1271
- top: l,
1272
- bottom: l + g
1273
- },
1274
- t
1275
- ), m = {
1276
- position$: new Tt(h),
1277
- position: h,
1278
- id: d.drawingId,
1279
- componentKey: d.componentKey,
1280
- onPointerMove: () => {
1281
- },
1282
- onPointerDown: () => {
1283
- },
1284
- onPointerUp: () => {
1285
- },
1286
- onWheel: () => {
1287
- },
1288
- unitId: d.unitId,
1289
- data: d.data
1290
- };
1291
- return [d.drawingId, m];
1292
- }).filter(([d, a]) => !(a.position.endX < 0 || a.position.endY < 0 || a.position.startX > s || a.position.startY > o)), [e, t, n, s, o]);
1293
- return /* @__PURE__ */ y("div", { className: "univer-absolute univer-left-0 univer-top-0", children: c.map(([d, a]) => /* @__PURE__ */ y(Di, { layer: a, id: d, position: a.position }, d)) });
1294
- };
1295
- var tr = Object.getOwnPropertyDescriptor, nr = (r, e, t, n) => {
1296
- for (var i = n > 1 ? void 0 : n ? tr(e, t) : e, s = r.length - 1, o; s >= 0; s--)
1297
- (o = r[s]) && (i = o(i) || i);
1298
- return i;
1299
- }, je = (r, e) => (t, n) => e(t, n, r);
1300
- let at = class extends xe {
1301
- constructor(r, e, t, n, i) {
1302
- super(), this._docPrintInterceptorService = r, this._drawingRenderService = e, this._drawingManagerService = t, this._componetManager = n, this._injector = i, this._initPrinting(), this._initPrintingDom();
1303
- }
1304
- _initPrinting() {
1305
- this.disposeWithMe(
1306
- this._docPrintInterceptorService.interceptor.intercept(
1307
- this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,
1308
- {
1309
- handler: (r, e, t) => {
1310
- const { unitId: n, scene: i } = e, s = this._drawingManagerService.getDrawingDataForUnit(n), o = s == null ? void 0 : s[n];
1311
- return o && o.order.forEach((c) => {
1312
- const d = o.data[c];
1313
- d.drawingType !== Pe.DRAWING_CHART && d.drawingType !== Pe.DRAWING_DOM && this._drawingRenderService.renderDrawing(d, i);
1314
- }), t();
1315
- }
1316
- }
1317
- )
1318
- );
1319
- }
1320
- _initPrintingDom() {
1321
- this.disposeWithMe(
1322
- this._docPrintInterceptorService.interceptor.intercept(
1323
- this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,
1324
- {
1325
- handler: (r, e, t) => {
1326
- const { unitId: n } = e, i = this._drawingManagerService.getDrawingDataForUnit(n), s = i == null ? void 0 : i[n];
1327
- if (s) {
1328
- const o = s.order.map((d) => {
1329
- const a = s.data[d];
1330
- if (a.drawingType === Pe.DRAWING_CHART)
1331
- return {
1332
- ...a,
1333
- componentKey: this._componetManager.get(kn)
1334
- };
1335
- if (a.drawingType === Pe.DRAWING_DOM) {
1336
- const g = this._docPrintInterceptorService.getPrintComponent(a.componentKey);
1337
- return {
1338
- ...a,
1339
- componentKey: this._componetManager.get(g || a.componentKey)
1340
- };
1341
- }
1342
- return null;
1343
- }).filter(Boolean), c = Oi(er, this._injector);
1344
- return di(
1345
- /* @__PURE__ */ y(
1346
- c,
1347
- {
1348
- unitId: n,
1349
- floatDomInfos: o,
1350
- scene: e.scene,
1351
- skeleton: e.skeleton,
1352
- offset: e.offset,
1353
- bound: e.bound
1354
- }
1355
- ),
1356
- e.root
1357
- ), r == null || r.add(() => {
1358
- gi(e.root);
1359
- }), t(r);
1360
- }
1361
- }
1362
- }
1363
- )
1364
- );
1365
- }
1366
- };
1367
- at = nr([
1368
- je(0, Z(Qn)),
1369
- je(1, Z(gn)),
1370
- je(2, fe),
1371
- je(3, Z(cn)),
1372
- je(4, Z(Jt))
1373
- ], at);
1374
- var ir = Object.getOwnPropertyDescriptor, rr = (r, e, t, n) => {
1375
- for (var i = n > 1 ? void 0 : n ? ir(e, t) : e, s = r.length - 1, o; s >= 0; s--)
1376
- (o = r[s]) && (i = o(i) || i);
1377
- return i;
1378
- }, Je = (r, e) => (t, n) => e(t, n, r);
1379
- const sr = "__InlineDrawingAnchor__";
1380
- function Xt(r) {
1381
- const { path: e } = r;
1382
- return e.some((t) => t === "cells");
1383
- }
1384
- let ct = class extends xe {
1385
- constructor(e, t, n, i) {
1386
- super();
1387
- me(this, "_liquid", new rn());
1388
- me(this, "_listenerOnImageMap", /* @__PURE__ */ new Set());
1389
- // Use to cache the drawings is under transforming or scaling.
1390
- me(this, "_transformerCache", /* @__PURE__ */ new Map());
1391
- me(this, "_anchorShape");
1392
- this._commandService = e, this._univerInstanceService = t, this._drawingManagerService = n, this._renderManagerService = i, this._init();
1393
- }
1394
- _init() {
1395
- this._listenDrawingFocus();
1396
- }
1397
- _listenDrawingFocus() {
1398
- this.disposeWithMe(
1399
- this._drawingManagerService.add$.subscribe((e) => {
1400
- if (e.length !== 0)
1401
- for (const t of e) {
1402
- const { unitId: n } = t;
1403
- this._listenerOnImageMap.has(n) || (this._listenTransformerChange(n), this._listenerOnImageMap.add(n));
1404
- }
1405
- })
1406
- );
1407
- }
1408
- // Only handle one drawing transformer change.
1409
- // eslint-disable-next-line max-lines-per-function
1410
- _listenTransformerChange(e) {
1411
- var i;
1412
- const t = (i = this._getSceneAndTransformerByDrawingSearch(e)) == null ? void 0 : i.transformer;
1413
- if (t == null)
1414
- return;
1415
- this.disposeWithMe(
1416
- Xe(
1417
- t.changeStart$.subscribe((s) => {
1418
- var c;
1419
- this._transformerCache.clear();
1420
- const { objects: o } = s;
1421
- for (const d of o.values()) {
1422
- const { oKey: a, width: g, height: u, left: l, top: f, angle: h } = d, m = this._drawingManagerService.getDrawingOKey(a);
1423
- if (m == null)
1424
- continue;
1425
- const p = this._univerInstanceService.getUniverDocInstance(m.unitId), v = (c = p == null ? void 0 : p.getSnapshot().drawings) == null ? void 0 : c[m.drawingId];
1426
- if ((v == null ? void 0 : v.layoutType) === k.INLINE)
1427
- try {
1428
- d.setOpacity(0.2);
1429
- } catch {
1430
- }
1431
- v != null && this._transformerCache.set(m.drawingId, {
1432
- drawing: v,
1433
- top: f,
1434
- left: l,
1435
- width: g,
1436
- height: u,
1437
- angle: h
1438
- });
1439
- }
1440
- })
1441
- )
1442
- );
1443
- const n = Rt(this._updateMultipleDrawingDocTransform.bind(this), 50);
1444
- Rt(this._nonInlineDrawingTransform.bind(this), 50), this.disposeWithMe(
1445
- Xe(
1446
- t.changing$.subscribe((s) => {
1447
- const { objects: o, offsetX: c, offsetY: d } = s;
1448
- if (o.size > 1)
1449
- n(o);
1450
- else if (o.size === 1) {
1451
- const a = this._transformerCache.values().next().value, g = o.values().next().value, { width: u, height: l, top: f, left: h, angle: m } = g;
1452
- if (a && u === a.width && l === a.height && f === a.top && h === a.left && m === a.angle)
1453
- return;
1454
- a && (a.drawing.layoutType, k.INLINE), a && a.drawing.layoutType === k.INLINE && c != null && d != null && this._updateInlineDrawingAnchor(a.drawing, c, d);
1455
- }
1456
- })
1457
- )
1458
- ), this.disposeWithMe(
1459
- Xe(
1460
- // eslint-disable-next-line complexity
1461
- t.changeEnd$.subscribe((s) => {
1462
- const { objects: o, offsetX: c, offsetY: d } = s;
1463
- for (const a of o.values()) {
1464
- const g = this._drawingManagerService.getDrawingOKey(a.oKey);
1465
- if (g == null)
1466
- continue;
1467
- const u = this._transformerCache.get(g == null ? void 0 : g.drawingId);
1468
- if ((u == null ? void 0 : u.drawing.layoutType) === k.INLINE)
1469
- try {
1470
- a.setOpacity(1);
1471
- } catch {
1472
- }
1473
- }
1474
- if (this._anchorShape && this._anchorShape.hide(), o.size > 1)
1475
- this._updateMultipleDrawingDocTransform(o);
1476
- else if (o.size === 1) {
1477
- const a = this._transformerCache.values().next().value, g = o.values().next().value, { width: u, height: l, top: f, left: h, angle: m } = g;
1478
- if (a && u === a.width && l === a.height && f === a.top && h === a.left && m === a.angle)
1479
- return;
1480
- a && a.drawing.layoutType === k.INLINE ? u !== a.width || l !== a.height || m !== a.angle ? this._updateDrawingSize(a, g) : c != null && d != null && this._moveInlineDrawing(a.drawing, c, d) : a && this._nonInlineDrawingTransform(a.drawing, g);
1481
- }
1482
- this._transformerCache.clear();
1483
- })
1484
- )
1485
- );
1486
- }
1487
- // eslint-disable-next-line max-lines-per-function
1488
- _updateMultipleDrawingDocTransform(e) {
1489
- if (e.size < 1)
1490
- return;
1491
- const t = [];
1492
- let n, i;
1493
- for (const s of e.values()) {
1494
- const { oKey: o, left: c, top: d, angle: a } = s;
1495
- let { width: g, height: u } = s;
1496
- const l = this._drawingManagerService.getDrawingOKey(o);
1497
- if (l == null)
1498
- continue;
1499
- n == null && (n = l.unitId), i == null && (i = l.subUnitId);
1500
- const f = this._transformerCache.get(l.drawingId);
1501
- if (f == null)
1502
- continue;
1503
- const { drawing: h, top: m, left: p, width: v, height: D, angle: S } = f, { width: O, height: C } = this._getPageContentSize(h);
1504
- if (g = Math.min(g, O), u = Math.min(u, C), (v !== g || D !== u) && t.push({
1505
- drawingId: l.drawingId,
1506
- key: "size",
1507
- value: {
1508
- width: g,
1509
- height: u
1510
- }
1511
- }), S !== a && t.push({
1512
- drawingId: l.drawingId,
1513
- key: "angle",
1514
- value: a
1515
- }), m !== d || p !== c) {
1516
- const M = d - m, A = c - p;
1517
- M !== 0 && t.push({
1518
- drawingId: l.drawingId,
1519
- key: "positionV",
1520
- value: {
1521
- relativeFrom: h.docTransform.positionV.relativeFrom,
1522
- posOffset: h.docTransform.positionV.posOffset + M
1523
- }
1524
- }), A !== 0 && t.push({
1525
- drawingId: l.drawingId,
1526
- key: "positionH",
1527
- value: {
1528
- relativeFrom: h.docTransform.positionH.relativeFrom,
1529
- posOffset: h.docTransform.positionH.posOffset + A
1530
- }
1531
- });
1532
- }
1533
- }
1534
- t.length > 0 && n && i && this._commandService.executeCommand(Ke.id, {
1535
- unitId: n,
1536
- subUnitId: i,
1537
- drawings: t
1538
- });
1539
- }
1540
- // TODO: @JOCS, Use to draw and update the drawing anchor.
1541
- _updateDrawingAnchor(e) {
1542
- if (this._transformerCache.size !== 1)
1543
- return;
1544
- const t = this._transformerCache.values().next().value, n = e.values().next().value;
1545
- this._getDrawingAnchor(t.drawing, n);
1546
- }
1547
- _updateInlineDrawingAnchor(e, t, n) {
1548
- var s;
1549
- if (this._transformerCache.size !== 1)
1550
- return;
1551
- const { contentBoxPointGroup: i } = (s = this._getInlineDrawingAnchor(e, t, n)) != null ? s : {};
1552
- i != null && this._createOrUpdateInlineAnchor(e.unitId, i);
1553
- }
1554
- _getInlineDrawingAnchor(e, t, n) {
1555
- var x, G;
1556
- const i = this._renderManagerService.getRenderById(e.unitId), s = i == null ? void 0 : i.with(te).getSkeleton();
1557
- if (i == null)
1558
- return;
1559
- const { mainComponent: o, scene: c } = i, d = o, a = c.getViewports()[0], {
1560
- pageLayoutType: g = Lt.VERTICAL,
1561
- pageMarginLeft: u,
1562
- pageMarginTop: l
1563
- } = d.getOffsetConfig();
1564
- let f = null, h = !1, m = -1, p = "";
1565
- const v = 0.5, D = this._getTransformCoordForDocumentOffset(d, a, t, n);
1566
- if (D == null)
1567
- return;
1568
- const S = (x = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : x.with(ye);
1569
- if (S == null)
1570
- return;
1571
- const O = s == null ? void 0 : s.findNodeByCoord(D, g, u, l, {
1572
- strict: !1,
1573
- segmentId: S.getSegment(),
1574
- segmentPage: S.getSegmentPage()
1575
- });
1576
- if (O) {
1577
- const { node: I, ratioX: _, segmentPage: E, segmentId: T } = O;
1578
- h = _ < v, f = I, m = E, p = T;
1579
- }
1580
- if (f == null)
1581
- return;
1582
- const C = s == null ? void 0 : s.findPositionByGlyph(f, m), M = this._getDocObject();
1583
- if (C == null || s == null || M == null || Xt(C))
1584
- return;
1585
- const A = {
1586
- ...C,
1587
- isBack: h
1588
- }, U = M.document.getOffsetConfig(), R = new Pt(U, s), { cursorList: w, contentBoxPointGroup: N } = R.getRangePointData(A, A), { startOffset: H } = (G = xt(w)) != null ? G : {};
1589
- if (H != null)
1590
- return { offset: H, contentBoxPointGroup: N, segmentId: p, segmentPage: m };
1591
- }
1592
- // eslint-disable-next-line max-lines-per-function, complexity
1593
- _getDrawingAnchor(e, t) {
1594
- var Ie, _e, ce, Se, De, be, Ce, Oe, de, ge, Ee;
1595
- const n = this._renderManagerService.getRenderById(e.unitId), i = n == null ? void 0 : n.with(te).getSkeleton(), s = i == null ? void 0 : i.getSkeletonData();
1596
- if (s == null || n == null)
1597
- return;
1598
- const { pages: o, skeHeaders: c, skeFooters: d } = s, { mainComponent: a, scene: g } = n, u = a, l = g.getViewports()[0], { pageLayoutType: f = Lt.VERTICAL, pageMarginLeft: h, pageMarginTop: m, docsLeft: p, docsTop: v } = u.getOffsetConfig(), { left: D, top: S, angle: O } = t;
1599
- let { width: C, height: M } = t;
1600
- const { positionV: A, positionH: U } = e.docTransform, { width: R, height: w } = this._getPageContentSize(e);
1601
- C = Math.min(C, R), M = Math.min(M, w);
1602
- let N = null, H = "", x = -1;
1603
- const G = !1, I = {
1604
- ...e.docTransform,
1605
- size: {
1606
- width: C,
1607
- height: M
1608
- },
1609
- angle: O
1610
- }, { x: _, y: E } = g.getViewportScrollXY(l), T = this._getTransformCoordForDocumentOffset(u, l, D - _, S - E);
1611
- if (T == null)
1612
- return;
1613
- const L = (Ie = this._renderManagerService.getRenderById(e.unitId)) == null ? void 0 : Ie.with(ye);
1614
- if (L == null)
1615
- return;
1616
- const B = i == null ? void 0 : i.findNodeByCoord(T, f, h, m, {
1617
- strict: !1,
1618
- segmentId: L.getSegment(),
1619
- segmentPage: L.getSegmentPage()
1620
- });
1621
- if (B) {
1622
- const { node: pe, segmentPage: ft, segmentId: pt } = B;
1623
- N = pe, x = ft, H = pt;
1624
- }
1625
- if (N == null)
1626
- return;
1627
- const b = (_e = N.parent) == null ? void 0 : _e.parent, P = b == null ? void 0 : b.parent, V = (ce = P == null ? void 0 : P.lines.find((pe) => pe.paragraphIndex === (b == null ? void 0 : b.paragraphIndex) && pe.paragraphStart)) != null ? ce : P == null ? void 0 : P.lines[0], F = (Se = P == null ? void 0 : P.parent) == null ? void 0 : Se.parent;
1628
- if (b == null || P == null || V == null || F == null)
1629
- return;
1630
- this._liquid.reset();
1631
- const K = F.type;
1632
- for (const pe of o) {
1633
- const { headerId: ft, footerId: pt, pageHeight: En, pageWidth: Ct, marginLeft: Et, marginBottom: Rn } = pe, An = o.indexOf(pe);
1634
- if (x > -1 && An === x) {
1635
- switch (K) {
1636
- case Ut.HEADER: {
1637
- const Ge = (De = c.get(ft)) == null ? void 0 : De.get(Ct);
1638
- if (Ge)
1639
- this._liquid.translatePagePadding({
1640
- marginTop: Ge.marginTop,
1641
- marginLeft: Et
1642
- });
1643
- else
1644
- throw new Error("header skeleton not found");
1645
- break;
1646
- }
1647
- case Ut.FOOTER: {
1648
- const Ge = (be = d.get(pt)) == null ? void 0 : be.get(Ct);
1649
- if (Ge)
1650
- this._liquid.translatePagePadding({
1651
- marginTop: En - Rn + Ge.marginTop,
1652
- marginLeft: Et
1653
- });
1654
- else
1655
- throw new Error("footer skeleton not found");
1656
- break;
1657
- }
1658
- }
1659
- break;
1660
- }
1661
- if (this._liquid.translatePagePadding(pe), pe === F)
1662
- break;
1663
- this._liquid.restorePagePadding(pe), this._liquid.translatePage(pe, f, h, m);
1664
- }
1665
- switch (A.relativeFrom === W.LINE ? N = b.divides[0].glyphGroup[0] : N = (ge = (de = (Oe = (Ce = V.divides) == null ? void 0 : Ce[0]) == null ? void 0 : Oe.glyphGroup) == null ? void 0 : de[0]) != null ? ge : N, I.positionH = {
1666
- relativeFrom: U.relativeFrom,
1667
- posOffset: D - this._liquid.x - p
1668
- }, U.relativeFrom) {
1669
- case J.MARGIN: {
1670
- I.positionH.posOffset = D - this._liquid.x - p - F.marginLeft;
1671
- break;
1672
- }
1673
- case J.COLUMN: {
1674
- I.positionH.posOffset = D - this._liquid.x - p - P.left;
1675
- break;
1676
- }
1677
- }
1678
- switch (I.positionV = {
1679
- relativeFrom: A.relativeFrom,
1680
- posOffset: S - this._liquid.y - v
1681
- }, A.relativeFrom) {
1682
- case W.PAGE: {
1683
- I.positionV.posOffset = S - this._liquid.y - v - F.marginTop;
1684
- break;
1685
- }
1686
- case W.LINE: {
1687
- I.positionV.posOffset = S - this._liquid.y - v - b.top;
1688
- break;
1689
- }
1690
- case W.PARAGRAPH: {
1691
- I.positionV.posOffset = S - this._liquid.y - v - V.top;
1692
- break;
1693
- }
1694
- }
1695
- if (N == null)
1696
- return;
1697
- const oe = i == null ? void 0 : i.findPositionByGlyph(N, x), Ne = this._getDocObject();
1698
- if (oe == null || i == null || Ne == null || Xt(oe))
1699
- return;
1700
- const Me = {
1701
- ...oe,
1702
- isBack: G
1703
- }, He = Ne.document.getOffsetConfig(), ae = new Pt(He, i), { cursorList: ne } = ae.getRangePointData(Me, Me), { startOffset: ie } = (Ee = xt(ne)) != null ? Ee : {};
1704
- if (ie != null)
1705
- return { offset: ie, docTransform: I, segmentId: H, segmentPage: x };
1706
- }
1707
- // Update drawing when use transformer to resize it.
1708
- _updateDrawingSize(e, t) {
1709
- const n = [], { drawing: i, width: s, height: o, angle: c } = e, { unitId: d, subUnitId: a } = i;
1710
- let { width: g, height: u, angle: l } = t;
1711
- const { width: f, height: h } = this._getPageContentSize(i);
1712
- g = Math.min(f, g), u = Math.min(h, u), (g !== s || u !== o) && n.push({
1713
- drawingId: i.drawingId,
1714
- key: "size",
1715
- value: {
1716
- width: g,
1717
- height: u
1718
- }
1719
- }), l !== c && n.push({
1720
- drawingId: i.drawingId,
1721
- key: "angle",
1722
- value: l
1723
- }), n.length > 0 && d && a && this._commandService.executeCommand(Ke.id, {
1724
- unitId: d,
1725
- subUnitId: a,
1726
- drawings: n
1727
- });
1728
- }
1729
- // Update inline drawing when use transformer to move it.
1730
- _moveInlineDrawing(e, t, n) {
1731
- const i = this._getInlineDrawingAnchor(e, t, n), { offset: s, segmentId: o, segmentPage: c } = i != null ? i : {};
1732
- return this._commandService.executeCommand(_n.id, {
1733
- unitId: e.unitId,
1734
- subUnitId: e.unitId,
1735
- drawing: e,
1736
- offset: s,
1737
- segmentId: o,
1738
- segmentPage: c,
1739
- needRefreshDrawings: s == null
1740
- });
1741
- }
1742
- // Limit the drawing to the page area, mainly in the vertical direction,
1743
- // and the upper and lower limits cannot exceed the page margin area.
1744
- _limitDrawingInPage(e, t) {
1745
- const n = this._renderManagerService.getRenderById(e.unitId), { left: i, top: s, width: o, height: c, angle: d } = t, a = n == null ? void 0 : n.with(te).getSkeleton(), g = a == null ? void 0 : a.getSkeletonData(), { pages: u } = g != null ? g : {};
1746
- if (g == null || n == null || u == null)
1747
- return {
1748
- left: i,
1749
- top: s,
1750
- width: o,
1751
- height: c,
1752
- angle: d
1753
- };
1754
- const { mainComponent: l } = n, f = l, { top: h, pageLayoutType: m, pageMarginLeft: p, pageMarginTop: v } = f;
1755
- let D = s;
1756
- this._liquid.reset();
1757
- for (const S of u) {
1758
- const { marginBottom: O, pageHeight: C } = S, M = u.indexOf(S), A = u[M + 1];
1759
- if (A == null)
1760
- continue;
1761
- if (Ae.hasIntersectionBetweenTwoRanges(
1762
- s,
1763
- s + c,
1764
- this._liquid.y + h + C - O,
1765
- this._liquid.y + h + C + v + A.marginTop
1766
- )) {
1767
- const R = s + c / 2, w = this._liquid.y + h + C + v / 2;
1768
- R < w ? D = Math.min(s, this._liquid.y + h + C - O - c) : D = Math.max(s, this._liquid.y + h + C + v + A.marginTop);
1769
- }
1770
- this._liquid.translatePage(S, m, p, v);
1771
- }
1772
- return {
1773
- left: i,
1774
- top: D,
1775
- width: o,
1776
- height: c,
1777
- angle: d
1778
- };
1779
- }
1780
- _nonInlineDrawingTransform(e, t, n = !1) {
1781
- const i = e.isMultiTransform === se.TRUE ? t : this._limitDrawingInPage(e, t);
1782
- if (n && i.top !== t.top)
1783
- return;
1784
- const s = this._getDrawingAnchor(e, i), { offset: o, docTransform: c, segmentId: d, segmentPage: a } = s != null ? s : {};
1785
- return o == null || c == null ? this._updateMultipleDrawingDocTransform(/* @__PURE__ */ new Map([[e.drawingId, t]])) : this._commandService.executeCommand(Sn.id, {
1786
- unitId: e.unitId,
1787
- subUnitId: e.unitId,
1788
- drawing: e,
1789
- offset: o,
1790
- docTransform: c,
1791
- segmentId: d,
1792
- segmentPage: a
1793
- });
1794
- }
1795
- _getSceneAndTransformerByDrawingSearch(e) {
1796
- if (e == null)
1797
- return;
1798
- const t = this._renderManagerService.getRenderById(e), n = t == null ? void 0 : t.scene;
1799
- if (n == null)
1800
- return;
1801
- const i = n.getTransformerByCreate();
1802
- return { scene: n, transformer: i };
1803
- }
1804
- _getTransformCoordForDocumentOffset(e, t, n, i) {
1805
- const { documentTransform: s } = e.getOffsetConfig(), o = t.transformVector2SceneCoord(si.FromArray([n, i]));
1806
- if (o)
1807
- return s.clone().invert().applyPoint(o);
1808
- }
1809
- _createOrUpdateInlineAnchor(e, t) {
1810
- const n = this._renderManagerService.getRenderById(e);
1811
- if (n == null)
1812
- return;
1813
- const { mainComponent: i, scene: s } = n, o = i, {
1814
- docsLeft: c,
1815
- docsTop: d
1816
- } = o.getOffsetConfig(), a = Jn(t), { left: g, top: u, height: l } = a, f = g + c, h = u + d;
1817
- if (this._anchorShape) {
1818
- this._anchorShape.transformByState({ left: f, top: h, height: l }), this._anchorShape.show();
1819
- return;
1820
- }
1821
- const m = 6, p = new oi(sr + Qt(m), {
1822
- left: f,
1823
- top: h,
1824
- height: l,
1825
- strokeWidth: 2,
1826
- stroke: ai(Wn.darkgray, 1),
1827
- evented: !1
1828
- });
1829
- this._anchorShape = p, s.addObject(p, ei);
1830
- }
1831
- _getDocObject() {
1832
- return ti(this._univerInstanceService, this._renderManagerService);
1833
- }
1834
- _getPageContentSize(e) {
1835
- const t = this._renderManagerService.getRenderById(e.unitId), n = t == null ? void 0 : t.with(te).getSkeleton(), i = 500, s = 500, o = n == null ? void 0 : n.getSkeletonData();
1836
- if (o == null || t == null)
1837
- return {
1838
- width: i,
1839
- height: s
1840
- };
1841
- const { pages: c } = o;
1842
- let d = null;
1843
- for (const a of c) {
1844
- const { skeDrawings: g } = a;
1845
- if (g.has(e.drawingId)) {
1846
- d = a;
1847
- break;
1848
- }
1849
- }
1850
- if (d) {
1851
- const { pageWidth: a, pageHeight: g, marginLeft: u, marginBottom: l, marginRight: f, marginTop: h } = d;
1852
- return {
1853
- width: Math.max(i, a - u - f),
1854
- height: Math.max(s, g - h - l)
1855
- };
1856
- } else
1857
- return {
1858
- width: i,
1859
- height: s
1860
- };
1861
- }
1862
- };
1863
- ct = rr([
1864
- Je(0, j),
1865
- Je(1, z),
1866
- Je(2, fe),
1867
- Je(3, Q)
1868
- ], ct);
1869
- const or = {
1870
- [Ti.MEDIA]: {
1871
- [Mn]: {
1872
- order: 0,
1873
- menuItemFactory: $i,
1874
- [bn]: {
1875
- order: 0,
1876
- menuItemFactory: zi
1877
- }
1878
- }
1879
- }
1880
- }, qt = -1e3, Kt = 1e3, ar = (r) => {
1881
- const e = ve(j), t = ve(lt), n = ve(fe), i = ve(Q), s = ve(z), { drawings: o } = r, c = o[0];
1882
- if (c == null)
1883
- return;
1884
- const { unitId: d } = c, a = s.getUniverDocInstance(d), g = a == null ? void 0 : a.getSnapshot().documentStyle.documentFlavor, u = i.getRenderById(d), l = u == null ? void 0 : u.scene;
1885
- if (l == null)
1886
- return;
1887
- const f = l.getTransformerByCreate(), h = [{
1888
- label: t.t("image-position.column"),
1889
- value: String(J.COLUMN)
1890
- }, {
1891
- label: t.t("image-position.page"),
1892
- value: String(J.PAGE)
1893
- }, {
1894
- label: t.t("image-position.margin"),
1895
- value: String(J.MARGIN)
1896
- }], m = [{
1897
- label: t.t("image-position.line"),
1898
- value: String(W.LINE),
1899
- disabled: g === mt.MODERN
1900
- }, {
1901
- label: t.t("image-position.page"),
1902
- value: String(W.PAGE),
1903
- disabled: g === mt.MODERN
1904
- }, {
1905
- label: t.t("image-position.margin"),
1906
- value: String(W.MARGIN),
1907
- disabled: g === mt.MODERN
1908
- }, {
1909
- label: t.t("image-position.paragraph"),
1910
- value: String(W.PARAGRAPH)
1911
- }], [p, v] = re(!0), [D, S] = re({
1912
- relativeFrom: J.PAGE,
1913
- posOffset: 0
1914
- }), [O, C] = re({
1915
- relativeFrom: W.PAGE,
1916
- posOffset: 0
1917
- }), [M, A] = re(!0), [U, R] = re(!0);
1918
- function w(_, E) {
1919
- var b;
1920
- _ === "positionH" ? S(E) : C(E);
1921
- const T = n.getFocusDrawings();
1922
- if (T.length === 0)
1923
- return;
1924
- const L = T.map((P) => ({
1925
- unitId: P.unitId,
1926
- subUnitId: P.subUnitId,
1927
- drawingId: P.drawingId
1928
- }));
1929
- e.executeCommand(Ke.id, {
1930
- unitId: T[0].unitId,
1931
- subUnitId: T[0].unitId,
1932
- drawings: L.map((P) => ({
1933
- drawingId: P.drawingId,
1934
- key: _,
1935
- value: E
1936
- }))
1937
- });
1938
- const B = (b = i.getRenderById(d)) == null ? void 0 : b.with(ye);
1939
- B && B.blur(), f.refreshControls();
1940
- }
1941
- function N(_) {
1942
- var ie, Ie, _e;
1943
- const E = D.relativeFrom, T = D.posOffset, L = Number(_);
1944
- if (E === L)
1945
- return;
1946
- const B = n.getFocusDrawings();
1947
- if (B.length === 0)
1948
- return;
1949
- const b = B[0].drawingId, P = B[0].unitId;
1950
- let V = null, F = 0;
1951
- const K = (ie = i.getRenderById(P)) == null ? void 0 : ie.with(te).getSkeleton(), oe = K == null ? void 0 : K.getSkeletonData();
1952
- if (oe == null)
1953
- return;
1954
- const { pages: Ne, skeHeaders: Me, skeFooters: He } = oe;
1955
- for (const ce of Ne) {
1956
- const { marginLeft: Se, skeDrawings: De, headerId: be, footerId: Ce, pageWidth: Oe } = ce;
1957
- if (De.has(b)) {
1958
- V = De.get(b), F = Se;
1959
- break;
1960
- }
1961
- const de = (Ie = Me.get(be)) == null ? void 0 : Ie.get(Oe);
1962
- if (de != null && de.skeDrawings.has(b)) {
1963
- V = de == null ? void 0 : de.skeDrawings.get(b), F = Se;
1964
- break;
1965
- }
1966
- const ge = (_e = He.get(Ce)) == null ? void 0 : _e.get(Oe);
1967
- if (ge != null && ge.skeDrawings.has(b)) {
1968
- V = ge == null ? void 0 : ge.skeDrawings.get(b), F = Se;
1969
- break;
1970
- }
1971
- }
1972
- if (V == null)
1973
- return;
1974
- let ae = 0;
1975
- E === J.COLUMN ? ae -= V.columnLeft : E === J.MARGIN && (ae -= F), L === J.COLUMN ? ae += V.columnLeft : L === J.MARGIN ? ae += F : J.PAGE;
1976
- const ne = {
1977
- relativeFrom: L,
1978
- posOffset: (T != null ? T : 0) - ae
1979
- };
1980
- w("positionH", ne);
1981
- }
1982
- function H(_) {
1983
- var De, be, Ce, Oe, de, ge;
1984
- const E = O.relativeFrom, T = O.posOffset, L = Number(_);
1985
- if (E === L)
1986
- return;
1987
- const B = n.getFocusDrawings();
1988
- if (B.length === 0)
1989
- return;
1990
- const { drawingId: b, unitId: P } = B[0], V = s.getUniverDocInstance(P), F = (De = i.getRenderById(P)) == null ? void 0 : De.with(te).getSkeleton(), K = (be = i.getRenderById(P)) == null ? void 0 : be.with(ye), oe = K == null ? void 0 : K.getSegment(), Ne = K == null ? void 0 : K.getSegmentPage(), Me = (Oe = (Ce = V == null ? void 0 : V.getSelfOrHeaderFooterModel(oe).getBody()) == null ? void 0 : Ce.customBlocks) == null ? void 0 : Oe.find((Ee) => Ee.blockId === b);
1991
- if (Me == null || F == null || K == null)
1992
- return;
1993
- const { startIndex: He } = Me, ae = F.findNodeByCharIndex(He, oe, Ne), ne = (de = ae == null ? void 0 : ae.parent) == null ? void 0 : de.parent, ie = ne == null ? void 0 : ne.parent, Ie = ie == null ? void 0 : ie.lines.find((Ee) => Ee.paragraphIndex === (ne == null ? void 0 : ne.paragraphIndex) && Ee.paragraphStart), _e = (ge = ie == null ? void 0 : ie.parent) == null ? void 0 : ge.parent;
1994
- if (ae == null || ne == null || Ie == null || ie == null || _e == null)
1995
- return;
1996
- let ce = 0;
1997
- E === W.PARAGRAPH ? ce -= Ie.top : E === W.LINE ? ce -= ne.top : E === W.PAGE && (ce += _e.marginTop), L === W.PARAGRAPH ? ce += Ie.top : L === W.LINE ? ce += ne.top : L === W.PAGE && (ce -= _e.marginTop);
1998
- const Se = {
1999
- relativeFrom: L,
2000
- posOffset: (T != null ? T : 0) - ce
2001
- };
2002
- w("positionV", Se);
2003
- }
2004
- function x(_) {
2005
- var P;
2006
- const E = a == null ? void 0 : a.getSnapshot(), T = (P = E == null ? void 0 : E.drawings) == null ? void 0 : P[_.drawingId];
2007
- if (T == null)
2008
- return;
2009
- const { layoutType: L } = T, {
2010
- positionH: B,
2011
- positionV: b
2012
- } = T.docTransform;
2013
- S(B), C(b), v(L === k.INLINE), A(b.relativeFrom === W.PARAGRAPH || b.relativeFrom === W.LINE);
2014
- }
2015
- function G() {
2016
- const _ = n.getFocusDrawings();
2017
- _.length !== 0 && x(_[0]);
2018
- }
2019
- function I(_) {
2020
- A(_), H(String(_ ? W.PARAGRAPH : W.PAGE));
2021
- }
2022
- return yt(() => {
2023
- G();
2024
- const _ = n.focus$.subscribe((T) => {
2025
- if (T.length === 0) {
2026
- R(!1);
2027
- return;
2028
- }
2029
- R(!0), x(T[0]);
2030
- }), E = e.onCommandExecuted(async (T) => {
2031
- T.id === ee.id && G();
2032
- });
2033
- return () => {
2034
- _.unsubscribe(), E.dispose();
2035
- };
2036
- }, []), /* @__PURE__ */ X(
2037
- "div",
2038
- {
2039
- className: sn("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400", {
2040
- "univer-hidden": !U
2041
- }),
2042
- children: [
2043
- /* @__PURE__ */ y(
2044
- "header",
2045
- {
2046
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2047
- children: /* @__PURE__ */ y("div", { children: t.t("image-position.title") })
2048
- }
2049
- ),
2050
- /* @__PURE__ */ y(
2051
- "div",
2052
- {
2053
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2054
- children: /* @__PURE__ */ y("div", { children: t.t("image-position.horizontal") })
2055
- }
2056
- ),
2057
- /* @__PURE__ */ X(
2058
- "div",
2059
- {
2060
- className: "univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",
2061
- children: [
2062
- /* @__PURE__ */ X("div", { children: [
2063
- /* @__PURE__ */ y("span", { children: t.t("image-position.absolutePosition") }),
2064
- /* @__PURE__ */ y(
2065
- Ue,
2066
- {
2067
- min: qt,
2068
- max: Kt,
2069
- precision: 1,
2070
- disabled: p,
2071
- value: D.posOffset,
2072
- onChange: (_) => {
2073
- w("positionH", {
2074
- relativeFrom: D.relativeFrom,
2075
- posOffset: _
2076
- });
2077
- }
2078
- }
2079
- )
2080
- ] }),
2081
- /* @__PURE__ */ X("div", { children: [
2082
- /* @__PURE__ */ y("span", { children: t.t("image-position.toTheRightOf") }),
2083
- /* @__PURE__ */ y(
2084
- Ft,
2085
- {
2086
- value: String(D.relativeFrom),
2087
- disabled: p,
2088
- options: h,
2089
- onChange: N
2090
- }
2091
- )
2092
- ] })
2093
- ]
2094
- }
2095
- ),
2096
- /* @__PURE__ */ y(
2097
- "div",
2098
- {
2099
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2100
- children: /* @__PURE__ */ y("div", { children: t.t("image-position.vertical") })
2101
- }
2102
- ),
2103
- /* @__PURE__ */ X(
2104
- "div",
2105
- {
2106
- className: "univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",
2107
- children: [
2108
- /* @__PURE__ */ X("div", { children: [
2109
- /* @__PURE__ */ y("span", { children: t.t("image-position.absolutePosition") }),
2110
- /* @__PURE__ */ y(
2111
- Ue,
2112
- {
2113
- min: qt,
2114
- max: Kt,
2115
- precision: 1,
2116
- disabled: p,
2117
- value: O.posOffset,
2118
- onChange: (_) => {
2119
- w("positionV", {
2120
- relativeFrom: O.relativeFrom,
2121
- posOffset: _
2122
- });
2123
- }
2124
- }
2125
- )
2126
- ] }),
2127
- /* @__PURE__ */ X("div", { children: [
2128
- /* @__PURE__ */ y("span", { children: t.t("image-position.bellow") }),
2129
- /* @__PURE__ */ y(
2130
- Ft,
2131
- {
2132
- disabled: p,
2133
- value: String(O.relativeFrom),
2134
- options: m,
2135
- onChange: H
2136
- }
2137
- )
2138
- ] })
2139
- ]
2140
- }
2141
- ),
2142
- /* @__PURE__ */ y(
2143
- "div",
2144
- {
2145
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2146
- children: /* @__PURE__ */ y("div", { children: t.t("image-position.options") })
2147
- }
2148
- ),
2149
- /* @__PURE__ */ y("div", { children: /* @__PURE__ */ y(
2150
- li,
2151
- {
2152
- disabled: p,
2153
- checked: M,
2154
- onChange: I,
2155
- children: t.t("image-position.moveObjectWithText")
2156
- }
2157
- ) })
2158
- ]
2159
- }
2160
- );
2161
- }, et = 0, tt = 100, cr = (r) => {
2162
- const e = ve(j), t = ve(lt), n = ve(fe), i = ve(Q), s = ve(z), { drawings: o } = r, c = o[0];
2163
- if (c == null)
2164
- return null;
2165
- const { unitId: d } = c, a = s.getUniverDocInstance(d), g = i.getRenderById(d);
2166
- if ((g == null ? void 0 : g.scene) == null)
2167
- return null;
2168
- const [l, f] = re(!0), [h, m] = re(!0), [p, v] = re(!0), [D, S] = re(ue.INLINE), [O, C] = re(""), [M, A] = re({
2169
- distT: 0,
2170
- distL: 0,
2171
- distB: 0,
2172
- distR: 0
2173
- }), [U, R] = re(!0);
2174
- function w(I) {
2175
- S(I);
2176
- const _ = n.getFocusDrawings();
2177
- if (_.length === 0)
2178
- return;
2179
- const { unitId: E, subUnitId: T } = _[0], L = _.map(({ unitId: B, subUnitId: b, drawingId: P }) => ({
2180
- unitId: B,
2181
- subUnitId: b,
2182
- drawingId: P
2183
- }));
2184
- e.executeCommand(vn.id, {
2185
- unitId: E,
2186
- subUnitId: T,
2187
- drawings: L,
2188
- wrappingStyle: I
2189
- });
2190
- }
2191
- function N(I) {
2192
- C(I);
2193
- const _ = n.getFocusDrawings();
2194
- if (_.length === 0)
2195
- return;
2196
- const E = _.map((T) => ({
2197
- unitId: T.unitId,
2198
- subUnitId: T.subUnitId,
2199
- drawingId: T.drawingId
2200
- }));
2201
- e.executeCommand(In.id, {
2202
- unitId: _[0].unitId,
2203
- subUnitId: _[0].unitId,
2204
- drawings: E,
2205
- wrapText: I
2206
- });
2207
- }
2208
- function H(I, _) {
2209
- if (I == null)
2210
- return;
2211
- const E = { ...M, [_]: I };
2212
- A(E);
2213
- const T = n.getFocusDrawings();
2214
- if (T.length === 0)
2215
- return;
2216
- const L = T.map((B) => ({
2217
- unitId: B.unitId,
2218
- subUnitId: B.subUnitId,
2219
- drawingId: B.drawingId
2220
- }));
2221
- e.executeCommand(wn.id, {
2222
- unitId: T[0].unitId,
2223
- subUnitId: T[0].unitId,
2224
- drawings: L,
2225
- dist: {
2226
- [_]: I
2227
- }
2228
- });
2229
- }
2230
- function x() {
2231
- const I = n.getFocusDrawings();
2232
- I.length !== 0 && G(I[0]);
2233
- }
2234
- function G(I) {
2235
- var K, oe;
2236
- const _ = (oe = (K = a == null ? void 0 : a.getSnapshot()) == null ? void 0 : K.drawings) == null ? void 0 : oe[I.drawingId];
2237
- if (_ == null)
2238
- return;
2239
- const {
2240
- distT: E = 0,
2241
- distL: T = 0,
2242
- distB: L = 0,
2243
- distR: B = 0,
2244
- layoutType: b = k.INLINE,
2245
- behindDoc: P = se.FALSE,
2246
- wrapText: V = ze.BOTH_SIDES
2247
- } = _;
2248
- if (A({
2249
- distT: E,
2250
- distL: T,
2251
- distB: L,
2252
- distR: B
2253
- }), C(V), f(b !== k.WRAP_SQUARE), b === k.WRAP_NONE || b === k.INLINE ? m(!0) : m(!1), b === k.WRAP_NONE || b === k.INLINE || b === k.WRAP_TOP_AND_BOTTOM ? v(!0) : v(!1), b === k.WRAP_NONE)
2254
- P === se.TRUE ? S(ue.BEHIND_TEXT) : S(ue.IN_FRONT_OF_TEXT);
2255
- else
2256
- switch (b) {
2257
- case k.INLINE:
2258
- S(ue.INLINE);
2259
- break;
2260
- case k.WRAP_SQUARE:
2261
- S(ue.WRAP_SQUARE);
2262
- break;
2263
- case k.WRAP_TOP_AND_BOTTOM:
2264
- S(ue.WRAP_TOP_AND_BOTTOM);
2265
- break;
2266
- default:
2267
- throw new Error(`Unsupported layout type: ${b}`);
2268
- }
2269
- }
2270
- return yt(() => {
2271
- x();
2272
- const I = n.focus$.subscribe((E) => {
2273
- if (E.length === 0) {
2274
- R(!1);
2275
- return;
2276
- }
2277
- R(!0), G(E[0]);
2278
- }), _ = e.onCommandExecuted(async (E) => {
2279
- E.id === ee.id && x();
2280
- });
2281
- return () => {
2282
- I.unsubscribe(), _.dispose();
2283
- };
2284
- }, []), /* @__PURE__ */ X(
2285
- "div",
2286
- {
2287
- className: sn("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400", {
2288
- "univer-hidden": !U
2289
- }),
2290
- children: [
2291
- /* @__PURE__ */ y(
2292
- "header",
2293
- {
2294
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2295
- children: /* @__PURE__ */ y("div", { children: t.t("image-text-wrap.title") })
2296
- }
2297
- ),
2298
- /* @__PURE__ */ y(
2299
- "div",
2300
- {
2301
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2302
- children: /* @__PURE__ */ y("div", { children: t.t("image-text-wrap.wrappingStyle") })
2303
- }
2304
- ),
2305
- /* @__PURE__ */ y("div", { children: /* @__PURE__ */ X(kt, { value: D, onChange: w, direction: "vertical", children: [
2306
- /* @__PURE__ */ y(Te, { value: ue.INLINE, children: t.t("image-text-wrap.inline") }),
2307
- /* @__PURE__ */ y(Te, { value: ue.WRAP_SQUARE, children: t.t("image-text-wrap.square") }),
2308
- /* @__PURE__ */ y(Te, { value: ue.WRAP_TOP_AND_BOTTOM, children: t.t("image-text-wrap.topAndBottom") }),
2309
- /* @__PURE__ */ y(Te, { value: ue.BEHIND_TEXT, children: t.t("image-text-wrap.behindText") }),
2310
- /* @__PURE__ */ y(Te, { value: ue.IN_FRONT_OF_TEXT, children: t.t("image-text-wrap.inFrontText") })
2311
- ] }) }),
2312
- /* @__PURE__ */ y(
2313
- "div",
2314
- {
2315
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2316
- children: /* @__PURE__ */ y("div", { children: t.t("image-text-wrap.wrapText") })
2317
- }
2318
- ),
2319
- /* @__PURE__ */ y("div", { children: /* @__PURE__ */ X(kt, { disabled: l, value: O, onChange: N, direction: "horizontal", children: [
2320
- /* @__PURE__ */ y(Te, { value: ze.BOTH_SIDES, children: t.t("image-text-wrap.bothSide") }),
2321
- /* @__PURE__ */ y(Te, { value: ze.LEFT, children: t.t("image-text-wrap.leftOnly") }),
2322
- /* @__PURE__ */ y(Te, { value: ze.RIGHT, children: t.t("image-text-wrap.rightOnly") })
2323
- ] }) }),
2324
- /* @__PURE__ */ y(
2325
- "div",
2326
- {
2327
- className: "univer-text-gray-600 dark:!univer-text-gray-200",
2328
- children: /* @__PURE__ */ y("div", { children: t.t("image-text-wrap.distanceFromText") })
2329
- }
2330
- ),
2331
- /* @__PURE__ */ X(
2332
- "div",
2333
- {
2334
- className: "univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",
2335
- children: [
2336
- /* @__PURE__ */ X("div", { children: [
2337
- /* @__PURE__ */ y("span", { children: t.t("image-text-wrap.top") }),
2338
- /* @__PURE__ */ y(
2339
- Ue,
2340
- {
2341
- min: et,
2342
- max: tt,
2343
- disabled: h,
2344
- precision: 1,
2345
- value: M.distT,
2346
- onChange: (I) => {
2347
- H(I, "distT");
2348
- }
2349
- }
2350
- )
2351
- ] }),
2352
- /* @__PURE__ */ X("div", { children: [
2353
- /* @__PURE__ */ y("span", { children: t.t("image-text-wrap.left") }),
2354
- /* @__PURE__ */ y(
2355
- Ue,
2356
- {
2357
- min: et,
2358
- max: tt,
2359
- disabled: p,
2360
- precision: 1,
2361
- value: M.distL,
2362
- onChange: (I) => {
2363
- H(I, "distL");
2364
- }
2365
- }
2366
- )
2367
- ] })
2368
- ]
2369
- }
2370
- ),
2371
- /* @__PURE__ */ X(
2372
- "div",
2373
- {
2374
- className: "univer-grid univer-grid-cols-2 univer-gap-2 [&>div]:univer-grid [&>div]:univer-gap-2",
2375
- children: [
2376
- /* @__PURE__ */ X("div", { children: [
2377
- /* @__PURE__ */ y("span", { children: t.t("image-text-wrap.bottom") }),
2378
- /* @__PURE__ */ y(
2379
- Ue,
2380
- {
2381
- min: et,
2382
- max: tt,
2383
- disabled: h,
2384
- precision: 1,
2385
- value: M.distB,
2386
- onChange: (I) => {
2387
- H(I, "distB");
2388
- }
2389
- }
2390
- )
2391
- ] }),
2392
- /* @__PURE__ */ X("div", { children: [
2393
- /* @__PURE__ */ y("span", { children: t.t("image-text-wrap.right") }),
2394
- /* @__PURE__ */ y(
2395
- Ue,
2396
- {
2397
- min: et,
2398
- max: tt,
2399
- disabled: p,
2400
- precision: 1,
2401
- value: M.distR,
2402
- onChange: (I) => {
2403
- H(I, "distR");
2404
- }
2405
- }
2406
- )
2407
- ] })
2408
- ]
2409
- }
2410
- )
2411
- ]
2412
- }
2413
- );
2414
- }, dr = () => {
2415
- const r = ve(fe), e = r.getFocusDrawings(), [t, n] = re(e);
2416
- return yt(() => {
2417
- const i = r.focus$.subscribe((s) => {
2418
- n(s);
2419
- });
2420
- return () => {
2421
- i.unsubscribe();
2422
- };
2423
- }, []), !!(t != null && t.length) && /* @__PURE__ */ X("div", { className: "univer-text-sm", children: [
2424
- /* @__PURE__ */ y(Ai, { drawings: t, hasAlign: !1, hasCropper: !1, hasGroup: !1, hasTransform: !1 }),
2425
- /* @__PURE__ */ y(cr, { drawings: t }),
2426
- /* @__PURE__ */ y(ar, { drawings: t })
2427
- ] });
2428
- };
2429
- function Ze(r) {
2430
- return r.getContextValue(Hn) && r.getContextValue(Gn) && r.getContextValue(it);
2431
- }
2432
- const gr = {
2433
- id: Ye.id,
2434
- description: "shortcut.drawing-move-down",
2435
- group: "4_drawing-view",
2436
- binding: Fe.ARROW_DOWN,
2437
- priority: 100,
2438
- preconditions: Ze,
2439
- staticParameters: {
2440
- direction: he.DOWN
2441
- }
2442
- }, lr = {
2443
- id: Ye.id,
2444
- description: "shortcut.drawing-move-up",
2445
- group: "4_drawing-view",
2446
- binding: Fe.ARROW_UP,
2447
- priority: 100,
2448
- preconditions: Ze,
2449
- staticParameters: {
2450
- direction: he.UP
2451
- }
2452
- }, ur = {
2453
- id: Ye.id,
2454
- description: "shortcut.drawing-move-left",
2455
- group: "4_drawing-view",
2456
- binding: Fe.ARROW_LEFT,
2457
- priority: 100,
2458
- preconditions: Ze,
2459
- staticParameters: {
2460
- direction: he.LEFT
2461
- }
2462
- }, hr = {
2463
- id: Ye.id,
2464
- description: "shortcut.drawing-move-right",
2465
- group: "4_drawing-view",
2466
- binding: Fe.ARROW_RIGHT,
2467
- priority: 100,
2468
- preconditions: Ze,
2469
- staticParameters: {
2470
- direction: he.RIGHT
2471
- }
2472
- }, fr = {
2473
- id: ln.id,
2474
- description: "shortcut.drawing-delete",
2475
- group: "4_drawing-view",
2476
- // when focusing on any other input tag do not trigger this shortcut
2477
- preconditions: Ze,
2478
- binding: Fe.DELETE,
2479
- mac: Fe.BACKSPACE
2480
- };
2481
- var pr = Object.getOwnPropertyDescriptor, mr = (r, e, t, n) => {
2482
- for (var i = n > 1 ? void 0 : n ? pr(e, t) : e, s = r.length - 1, o; s >= 0; s--)
2483
- (o = r[s]) && (i = o(i) || i);
2484
- return i;
2485
- }, nt = (r, e) => (t, n) => e(t, n, r);
2486
- let dt = class extends xe {
2487
- constructor(r, e, t, n) {
2488
- super(), this._componentManager = r, this._menuManagerService = e, this._commandService = t, this._shortcutService = n, this._init();
2489
- }
2490
- _initCustomComponents() {
2491
- const r = this._componentManager;
2492
- this.disposeWithMe(r.register(Dn, dr));
2493
- }
2494
- _initMenus() {
2495
- this._menuManagerService.mergeMenu(or);
2496
- }
2497
- _initCommands() {
2498
- [
2499
- pn,
2500
- bt,
2501
- vn,
2502
- wn,
2503
- In,
2504
- Ke,
2505
- _n,
2506
- Sn,
2507
- Mt,
2508
- On,
2509
- Hi,
2510
- Tn,
2511
- un,
2512
- fn,
2513
- Ye,
2514
- ln,
2515
- hn
2516
- ].forEach((r) => this.disposeWithMe(this._commandService.registerCommand(r)));
2517
- }
2518
- _initShortcuts() {
2519
- [
2520
- // sheet drawing shortcuts
2521
- gr,
2522
- lr,
2523
- ur,
2524
- hr,
2525
- fr
2526
- ].forEach((r) => {
2527
- this.disposeWithMe(this._shortcutService.registerShortcut(r));
2528
- });
2529
- }
2530
- _init() {
2531
- this._initCommands(), this._initCustomComponents(), this._initMenus(), this._initShortcuts();
2532
- }
2533
- };
2534
- dt = mr([
2535
- nt(0, Z(cn)),
2536
- nt(1, yi),
2537
- nt(2, j),
2538
- nt(3, Mi)
2539
- ], dt);
2540
- var vr = Object.getOwnPropertyDescriptor, wr = (r, e, t, n) => {
2541
- for (var i = n > 1 ? void 0 : n ? vr(e, t) : e, s = r.length - 1, o; s >= 0; s--)
2542
- (o = r[s]) && (i = o(i) || i);
2543
- return i;
2544
- }, Re = (r, e) => (t, n) => e(t, n, r);
2545
- let _t = class extends xe {
2546
- constructor(e, t, n, i, s, o, c, d) {
2547
- super();
2548
- me(this, "_liquid", new rn());
2549
- this._context = e, this._docSkeletonManagerService = t, this._commandService = n, this._editorService = i, this._drawingManagerService = s, this._docRefreshDrawingsService = o, this._univerInstanceService = c, this._lifecycleService = d, this._initialize(), this._commandExecutedListener();
2550
- }
2551
- _initialize() {
2552
- this._initialRenderRefresh(), this._drawingInitializeListener(), this._initResize();
2553
- }
2554
- _initialRenderRefresh() {
2555
- this.disposeWithMe(
2556
- this._docSkeletonManagerService.currentSkeleton$.subscribe((e) => {
2557
- e != null && this._refreshDrawing(e);
2558
- })
2559
- ), this.disposeWithMe(
2560
- this._docRefreshDrawingsService.refreshDrawings$.subscribe((e) => {
2561
- e != null && this._refreshDrawing(e);
2562
- })
2563
- );
2564
- }
2565
- _commandExecutedListener() {
2566
- const e = [ee.id, nn.id];
2567
- this.disposeWithMe(
2568
- this._commandService.onCommandExecuted((t) => {
2569
- if (e.includes(t.id)) {
2570
- const n = t.params, { unitId: i } = n, { unitId: s, mainComponent: o } = this._context;
2571
- if (i !== s)
2572
- return;
2573
- const c = this._docSkeletonManagerService.getSkeleton();
2574
- if (c == null)
2575
- return;
2576
- if (this._editorService.isEditor(s) && s !== Dt) {
2577
- o == null || o.makeDirty();
2578
- return;
2579
- }
2580
- this._refreshDrawing(c);
2581
- }
2582
- })
2583
- );
2584
- }
2585
- _initResize() {
2586
- this.disposeWithMe(
2587
- Zt(this._context.engine.onTransformChange$).pipe(
2588
- jt((e) => e.type === ci.resize),
2589
- dn(16)
2590
- ).subscribe(() => {
2591
- var n;
2592
- const e = this._docSkeletonManagerService.getSkeleton(), { scene: t } = this._context;
2593
- (n = t.getTransformer()) == null || n.refreshControls(), this._refreshDrawing(e);
2594
- })
2595
- );
2596
- }
2597
- _refreshDrawing(e) {
2598
- var D, S;
2599
- const t = e == null ? void 0 : e.getSkeletonData(), { mainComponent: n, unitId: i } = this._context, s = n;
2600
- if (!t)
2601
- return;
2602
- const { left: o, top: c, pageLayoutType: d, pageMarginLeft: a, pageMarginTop: g } = s, { pages: u, skeHeaders: l, skeFooters: f } = t, h = {};
2603
- this._liquid.reset();
2604
- for (let O = 0, C = u.length; O < C; O++) {
2605
- const M = u[O], { headerId: A, footerId: U, pageWidth: R } = M;
2606
- if (A) {
2607
- const w = (D = l.get(A)) == null ? void 0 : D.get(R);
2608
- w && this._calculateDrawingPosition(
2609
- i,
2610
- w,
2611
- o,
2612
- c,
2613
- h,
2614
- w.marginTop,
2615
- M.marginLeft
2616
- );
2617
- }
2618
- if (U) {
2619
- const w = (S = f.get(U)) == null ? void 0 : S.get(R);
2620
- w && this._calculateDrawingPosition(
2621
- i,
2622
- w,
2623
- o,
2624
- c,
2625
- h,
2626
- M.pageHeight - M.marginBottom + w.marginTop,
2627
- M.marginLeft
2628
- );
2629
- }
2630
- this._calculateDrawingPosition(i, M, o, c, h, M.marginTop, M.marginLeft), this._liquid.translatePage(M, d, a, g);
2631
- }
2632
- const m = Object.values(h), p = m.filter((O) => !O.isMultiTransform), v = m.filter((O) => O.isMultiTransform);
2633
- p.length > 0 && this._drawingManagerService.refreshTransform(p), this._handleMultiDrawingsTransform(v);
2634
- }
2635
- _handleMultiDrawingsTransform(e) {
2636
- const { scene: t, unitId: n } = this._context, i = t.getTransformerByCreate();
2637
- e.forEach((d) => {
2638
- const a = this._drawingManagerService.getDrawingByParam(d);
2639
- a != null && (a.transform = d.transform, a.transforms = d.transforms, a.isMultiTransform = d.isMultiTransform);
2640
- });
2641
- const o = [...i.getSelectedObjectMap().keys()], c = Object.values(this._drawingManagerService.getDrawingData(n, n)).filter((d) => d.isMultiTransform === se.TRUE);
2642
- this._drawingManagerService.removeNotification(c), e.length > 0 && this._drawingManagerService.addNotification(e);
2643
- for (const d of o) {
2644
- const a = t.getObject(d);
2645
- a && i.setSelectedControl(a);
2646
- }
2647
- }
2648
- _calculateDrawingPosition(e, t, n, i, s, o, c) {
2649
- const { skeDrawings: d } = t;
2650
- this._liquid.translatePagePadding({
2651
- marginTop: o,
2652
- marginLeft: c
2653
- }), d.forEach((a) => {
2654
- const { aLeft: g, aTop: u, height: l, width: f, angle: h, drawingId: m, drawingOrigin: p } = a, v = p.layoutType === k.WRAP_NONE && p.behindDoc === se.TRUE, { isMultiTransform: D = se.FALSE } = p, S = {
2655
- left: g + n + this._liquid.x,
2656
- top: u + i + this._liquid.y,
2657
- width: f,
2658
- height: l,
2659
- angle: h
2660
- };
2661
- s[m] == null ? s[m] = {
2662
- unitId: e,
2663
- subUnitId: e,
2664
- drawingId: m,
2665
- behindText: v,
2666
- transform: S,
2667
- transforms: [S],
2668
- isMultiTransform: D
2669
- } : D === se.TRUE && s[m].transforms.push(S);
2670
- }), this._liquid.restorePagePadding({
2671
- marginTop: o,
2672
- marginLeft: c
2673
- });
2674
- }
2675
- _drawingInitializeListener() {
2676
- const e = () => {
2677
- const t = this._docSkeletonManagerService.getSkeleton();
2678
- t != null && (this._refreshDrawing(t), this._drawingManagerService.initializeNotification(this._context.unitId));
2679
- };
2680
- this._lifecycleService.stage >= At.Rendered ? this._docSkeletonManagerService.getSkeleton() ? e() : setTimeout(e, 500) : this.disposeWithMe(this._lifecycleService.lifecycle$.pipe(jt((t) => t === At.Rendered)).subscribe(e));
2681
- }
2682
- };
2683
- _t = wr([
2684
- Re(1, Z(te)),
2685
- Re(2, j),
2686
- Re(3, ni),
2687
- Re(4, fe),
2688
- Re(5, Z(ut)),
2689
- Re(6, z),
2690
- Re(7, Z(Vn))
2691
- ], _t);
2692
- var Ir = Object.getOwnPropertyDescriptor, _r = (r, e, t, n) => {
2693
- for (var i = n > 1 ? void 0 : n ? Ir(e, t) : e, s = r.length - 1, o; s >= 0; s--)
2694
- (o = r[s]) && (i = o(i) || i);
2695
- return i;
2696
- }, $e = (r, e) => (t, n) => e(t, n, r);
2697
- let gt = class extends jn {
2698
- constructor(e, t, n, i, s) {
2699
- super();
2700
- me(this, "_initImagePopupMenu", /* @__PURE__ */ new Set());
2701
- me(this, "_disposePopups", []);
2702
- this._drawingManagerService = e, this._canvasPopManagerService = t, this._renderManagerService = n, this._univerInstanceService = i, this._contextService = s, this._init();
2703
- }
2704
- _init() {
2705
- this.disposeWithMe(
2706
- this._univerInstanceService.getCurrentTypeOfUnit$(we.UNIVER_DOC).pipe($t(this.dispose$)).subscribe((e) => this._create(e))
2707
- ), this.disposeWithMe(
2708
- this._univerInstanceService.getTypeOfUnitDisposed$(we.UNIVER_DOC).pipe($t(this.dispose$)).subscribe((e) => this._dispose(e))
2709
- ), this._univerInstanceService.getAllUnitsForType(we.UNIVER_DOC).forEach((e) => this._create(e));
2710
- }
2711
- _dispose(e) {
2712
- const t = e.getUnitId();
2713
- this._disposePopups.length && (this._disposePopups.forEach((n) => n.dispose()), this._disposePopups.length = 0), this._renderManagerService.removeRender(t);
2714
- }
2715
- _create(e) {
2716
- if (!e)
2717
- return;
2718
- const t = e.getUnitId();
2719
- $n(t) || this._renderManagerService.has(t) && !this._initImagePopupMenu.has(t) && (this._popupMenuListener(t), this._initImagePopupMenu.add(t));
2720
- }
2721
- _hasCropObject(e) {
2722
- const t = e.getAllObjects();
2723
- for (const n of t)
2724
- if (n instanceof Pi)
2725
- return !0;
2726
- return !1;
2727
- }
2728
- // eslint-disable-next-line max-lines-per-function
2729
- _popupMenuListener(e) {
2730
- var s;
2731
- const t = (s = this._renderManagerService.getRenderById(e)) == null ? void 0 : s.scene;
2732
- if (!t)
2733
- return;
2734
- const n = t.getTransformerByCreate();
2735
- if (!n)
2736
- return;
2737
- const i = this._disposePopups;
2738
- this.disposeWithMe(
2739
- n.createControl$.subscribe(
2740
- () => {
2741
- if (this._hasCropObject(t))
2742
- return;
2743
- const o = n.getSelectedObjectMap();
2744
- if (i.forEach((v) => v.dispose()), i.length = 0, o.size > 1)
2745
- return;
2746
- const c = o.values().next().value;
2747
- if (!c)
2748
- return;
2749
- const d = c.oKey, a = this._drawingManagerService.getDrawingOKey(d);
2750
- if (!a || a.drawingType === Pe.DRAWING_DOM)
2751
- return;
2752
- const { unitId: g, subUnitId: u, drawingId: l, drawingType: f } = a, h = this._canvasPopManagerService.attachPopupToObject(
2753
- c,
2754
- {
2755
- componentKey: xi,
2756
- direction: "horizontal",
2757
- offset: [2, 0],
2758
- extraProps: {
2759
- menuItems: this._getImageMenuItems(g, u, l, f)
2760
- }
2761
- },
2762
- g
2763
- );
2764
- i.push(this.disposeWithMe(h)), !this._drawingManagerService.getFocusDrawings().find((v) => v.unitId === g && v.subUnitId === u && v.drawingId === l) && this._drawingManagerService.focusDrawing([{
2765
- unitId: g,
2766
- subUnitId: u,
2767
- drawingId: l
2768
- }]);
2769
- }
2770
- )
2771
- ), this.disposeWithMe(
2772
- n.clearControl$.subscribe(() => {
2773
- i.forEach((o) => o.dispose()), i.length = 0, this._contextService.setContextValue(it, !1), this._drawingManagerService.focusDrawing(null);
2774
- })
2775
- ), this.disposeWithMe(
2776
- n.changing$.subscribe(
2777
- () => {
2778
- i.forEach((o) => o.dispose()), i.length = 0;
2779
- }
2780
- )
2781
- ), this.disposeWithMe(
2782
- n.changeStart$.subscribe(() => {
2783
- i.forEach((o) => o.dispose()), i.length = 0;
2784
- })
2785
- );
2786
- }
2787
- _getImageMenuItems(e, t, n, i) {
2788
- return [
2789
- {
2790
- label: "image-popup.edit",
2791
- index: 0,
2792
- commandId: Tn.id,
2793
- commandParams: { unitId: e, subUnitId: t, drawingId: n },
2794
- // disable: !!SHEET_EDITOR_UNITS.includes(unitId) || drawingType === DrawingTypeEnum.DRAWING_DOM,
2795
- disable: !0
2796
- },
2797
- {
2798
- label: "image-popup.delete",
2799
- index: 1,
2800
- commandId: Mt.id,
2801
- commandParams: { unitId: e, drawings: [{ unitId: e, subUnitId: t, drawingId: n }] },
2802
- disable: !1
2803
- },
2804
- {
2805
- label: "image-popup.crop",
2806
- index: 2,
2807
- commandId: Ni.id,
2808
- commandParams: { unitId: e, subUnitId: t, drawingId: n },
2809
- disable: !0
2810
- // TODO: @JOCS, feature is not ready.
2811
- },
2812
- {
2813
- label: "image-popup.reset",
2814
- index: 3,
2815
- commandId: Li.id,
2816
- commandParams: [{ unitId: e, subUnitId: t, drawingId: n }],
2817
- disable: !0
2818
- // TODO: @JOCS, feature is not ready.
2819
- }
2820
- ];
2821
- }
2822
- };
2823
- gt = _r([
2824
- $e(0, fe),
2825
- $e(1, Z(ii)),
2826
- $e(2, Q),
2827
- $e(3, z),
2828
- $e(4, Yt)
2829
- ], gt);
2830
- var Sr = Object.defineProperty, Dr = Object.getOwnPropertyDescriptor, Or = (r, e, t) => e in r ? Sr(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, Tr = (r, e, t, n) => {
2831
- for (var i = n > 1 ? void 0 : n ? Dr(e, t) : e, s = r.length - 1, o; s >= 0; s--)
2832
- (o = r[s]) && (i = o(i) || i);
2833
- return i;
2834
- }, It = (r, e) => (t, n) => e(t, n, r), ht = (r, e, t) => Or(r, typeof e != "symbol" ? e + "" : e, t);
2835
- let ke = class extends qn {
2836
- constructor(r = zt, e, t, n) {
2837
- super(), this._config = r, this._injector = e, this._renderManagerSrv = t, this._configService = n;
2838
- const { ...i } = Kn(
2839
- {},
2840
- zt,
2841
- this._config
2842
- );
2843
- this._configService.setConfig(Ki, i);
2844
- }
2845
- onStarting() {
2846
- [
2847
- [dt],
2848
- [gt],
2849
- [ct],
2850
- [ot],
2851
- [ut],
2852
- [st],
2853
- [at]
2854
- ].forEach((e) => this._injector.add(e));
2855
- }
2856
- onReady() {
2857
- [
2858
- [rt],
2859
- [_t]
2860
- ].forEach((r) => this._renderManagerSrv.registerRenderModule(we.UNIVER_DOC, r)), this._injector.get(ot), this._injector.get(dt), this._injector.get(ct), this._injector.get(at);
2861
- }
2862
- onRendered() {
2863
- this._injector.get(gt), this._injector.get(st);
2864
- }
2865
- };
2866
- ht(ke, "type", we.UNIVER_DOC);
2867
- ht(ke, "pluginName", "DOC_DRAWING_UI_PLUGIN");
2868
- ht(ke, "packageName", Cn.name);
2869
- ht(ke, "version", Cn.version);
2870
- ke = Tr([
2871
- zn(Ui, vi, Yn, bi),
2872
- It(1, Z(Jt)),
2873
- It(2, Q),
2874
- It(3, Xn)
2875
- ], ke);
2876
- export {
2877
- Hi as ClearDocDrawingTransformerOperation,
2878
- Mn as DOCS_IMAGE_MENU_ID,
2879
- ln as DeleteDocDrawingsCommand,
2880
- st as DocFloatDomController,
2881
- Tn as EditDocDrawingOperation,
2882
- un as GroupDocDrawingCommand,
2883
- bt as InsertDocDrawingCommand,
2884
- pn as InsertDocImageCommand,
2885
- Ye as MoveDocDrawingsCommand,
2886
- Mt as RemoveDocDrawingCommand,
2887
- hn as SetDocDrawingArrangeCommand,
2888
- On as SidebarDocDrawingOperation,
2889
- fn as UngroupDocDrawingCommand,
2890
- ke as UniverDocsDrawingUIPlugin
2891
- };
1
+ import{ArrangeTypeEnum as e,BooleanNumber as t,BuildTextUtils as n,COLORS as r,CommandType as i,DOCS_ZEN_EDITOR_UNIT_ID_KEY as a,DOC_DRAWING_PRINTING_COMPONENT_KEY as o,DependentOn as s,Direction as c,Disposable as l,DisposableCollection as u,DocumentFlavor as d,DrawingTypeEnum as f,FOCUSING_COMMON_DRAWINGS as p,FOCUSING_DOC as m,FOCUSING_UNIVER_EDITOR as h,ICommandService as g,IConfigService as _,IContextService as v,IUniverInstanceService as y,Inject as b,Injector as x,JSONX as S,LifecycleService as C,LifecycleStages as w,LocaleService as T,MemoryCursor as E,ObjectRelativeFromH as D,ObjectRelativeFromV as O,Plugin as k,PositionedObjectLayoutType as A,RedoCommand as ee,RxDisposable as j,TextX as M,TextXActionType as N,Tools as P,UndoCommand as F,UniverInstanceType as I,WrapTextType as te,fromEventSubject as ne,generateRandomId as re,isInternalEditorID as ie,merge as L,throttle as R,toDisposable as ae}from"@univerjs/core";import{IDocDrawingService as z,UniverDocsDrawingPlugin as oe}from"@univerjs/docs-drawing";import{DocSelectionManagerService as se,DocSkeletonManagerService as B,RichTextEditingMutation as V}from"@univerjs/docs";import{DocCanvasPopManagerService as ce,DocPrintInterceptorService as le,DocSelectionRenderService as H,IEditorService as ue,NodePositionConvertToCursor as de,SetDocZoomRatioOperation as fe,TEXT_RANGE_LAYER_INDEX as pe,VIEWPORT_KEY as me,docDrawingPositionToTransform as he,getAnchorBounding as ge,getCustomBlockIdsInSelections as _e,getDocObject as ve,getOneTextSelectionRange as ye,getRichTextEditPath as be}from"@univerjs/docs-ui";import{CURSOR_TYPE as xe,DocumentEditArea as Se,DocumentSkeletonPageType as Ce,IRenderManagerService as U,Liquid as we,PageLayoutType as Te,Rect as Ee,TRANSFORM_CHANGE_OBSERVABLE_TYPE as De,Vector2 as Oe,getColor as ke,getCurrentTypeOfRenderer as Ae}from"@univerjs/engine-render";import{Checkbox as je,InputNumber as Me,MessageType as Ne,Radio as W,RadioGroup as Pe,Select as Fe,clsx as Ie,render as Le,unmount as Re}from"@univerjs/design";import{DRAWING_IMAGE_ALLOW_IMAGE_LIST as ze,DRAWING_IMAGE_ALLOW_SIZE as Be,DRAWING_IMAGE_COUNT_LIMIT as Ve,DRAWING_IMAGE_HEIGHT_LIMIT as He,DRAWING_IMAGE_WIDTH_LIMIT as Ue,IDrawingManagerService as G,IImageIoService as We,ImageUploadStatusType as Ge,UniverDrawingPlugin as Ke,getDrawingShapeKeyByDrawingSearch as qe,getImageSize as Je}from"@univerjs/drawing";import{CanvasFloatDomService as Ye,ComponentManager as Xe,ILocalFileService as Ze,IMenuManagerService as Qe,IMessageService as $e,IShortcutService as et,ISidebarService as tt,KeyCode as nt,MenuItemType as rt,PrintFloatDomSingle as it,RibbonInsertGroup as at,UniverUIPlugin as ot,connectInjector as st,getMenuHiddenObservable as ct,useDependency as K}from"@univerjs/ui";import{BehaviorSubject as lt,Observable as ut,debounceTime as dt,filter as ft,map as pt,of as mt,switchMap as ht,takeUntil as gt}from"rxjs";import{COMPONENT_IMAGE_POPUP_MENU as _t,DrawingCommonPanel as vt,DrawingRenderService as yt,ImageCropperObject as bt,ImageResetSizeOperation as xt,OpenImageCropOperation as St,UniverDrawingUIPlugin as Ct}from"@univerjs/drawing-ui";import{useEffect as wt,useMemo as Tt,useState as q}from"react";import{jsx as J,jsxs as Y}from"react/jsx-runtime";const Et={id:`doc.command.remove-doc-image`,type:i.COMMAND,handler:(e,t)=>{var n,r,i;let a=e.get(g),o=e.get(y),s=e.get(U),c=o.getCurrentUniverDocInstance();if(t==null||c==null)return!1;let l=s.getRenderById(t.unitId).with(H),{drawings:u}=t,d=(n=l.getSegment())==null?``:n,f=new M,p=S.getInstance(),m=(r=(i=c.getSelfOrHeaderFooterModel(d).getBody())==null?void 0:i.customBlocks)==null?[]:r,h=u.map(e=>m.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1),_=u[0].unitId,v=new E;v.reset();let b=h[0].startIndex,x=[{startOffset:b,endOffset:b}],C={id:V.id,params:{unitId:_,actions:[],textRanges:x}},w=[];for(let e of h){let{startIndex:t}=e;t>v.cursor&&f.push({t:N.RETAIN,len:t-v.cursor}),f.push({t:N.DELETE,len:1}),v.moveCursorTo(t+1)}let T=be(c,d);w.push(p.editOp(f.serialize(),T));for(let e of h){var D;let{blockId:t}=e,n=((D=c.getDrawings())==null?{}:D)[t],r=c.getDrawingsOrder().indexOf(t),i=p.removeOp([`drawings`,t],n),a=p.removeOp([`drawingsOrder`,r],t);w.push(i),w.push(a)}return C.params.actions=w.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(C.id,C.params)}},Dt={id:`doc.command.delete-drawing`,type:i.COMMAND,handler:e=>{let t=e.get(g),n=e.get(z).getFocusDrawings();if(n.length===0)return!1;let{unitId:r}=n[0],i=n.map(e=>{let{unitId:t,subUnitId:n,drawingId:r,drawingType:i}=e;return{unitId:t,subUnitId:n,drawingId:r,drawingType:i}});return t.executeCommand(Et.id,{unitId:r,drawings:i})}},Ot={id:`doc.command.group-doc-image`,type:i.COMMAND,handler:(e,t)=>!1},kt={id:`doc.command.insert-doc-image`,type:i.COMMAND,handler:(e,t)=>{var r,i;if(t==null)return!1;let a=e.get(g),o=e.get(se),s=e.get(y),c=o.getActiveTextRange(),l=s.getCurrentUniverDocInstance();if(c==null||l==null)return!1;let u=l.getUnitId(),{drawings:d}=t,{collapsed:f,startOffset:p,segmentId:m}=c,h=l.getSelfOrHeaderFooterModel(m).getBody();if(h==null)return!1;let _=new M,v=S.getInstance(),b=[],x=(r=(i=l.getSnapshot().drawingsOrder)==null?void 0:i.length)==null?0:r,C=0;if(f)p>0&&_.push({t:N.RETAIN,len:p});else{var w,T;let e=n.selection.delete([c],h,0,null,!1);_.push(...e);let t=_e(h,[c]),r=(w=l.getDrawings())==null?{}:w,i=(T=l.getDrawingsOrder())==null?[]:T,a=t.sort((e,t)=>i.indexOf(e)>i.indexOf(t)?-1:i.indexOf(e)<i.indexOf(t)?1:0);if(a.length>0)for(let e of a){let t=r[e],n=i.indexOf(e);if(t==null||n<0)continue;let a=v.removeOp([`drawings`,e],t),o=v.removeOp([`drawingsOrder`,n],e);b.push(a),b.push(o),C++}}_.push({t:N.INSERT,body:{dataStream:`\b`.repeat(d.length),customBlocks:d.map((e,t)=>({startIndex:t,blockId:e.drawingId}))},len:d.length});let E=be(l,m),D=v.editOp(_.serialize(),E);b.push(D);for(let e of d){let{drawingId:t}=e,n=v.insertOp([`drawings`,t],e),r=v.insertOp([`drawingsOrder`,x-C],t);b.push(n),b.push(r)}let O={id:V.id,params:{unitId:u,actions:[],textRanges:[]}};return O.params.actions=b.reduce((e,t)=>S.compose(e,t),null),!!a.syncExecuteCommand(O.id,O.params)}},At={id:`doc.command.set-drawing-arrange`,type:i.COMMAND,handler:(t,n)=>{let r=t.get(g),i=t.get(z);if(n==null)return!1;let{unitId:a,subUnitId:o,drawingIds:s,arrangeType:c}=n,l={unitId:a,subUnitId:o,drawingIds:s},u;if(c===e.forward?u=i.getForwardDrawingsOp(l):c===e.backward?u=i.getBackwardDrawingOp(l):c===e.front?u=i.getFrontDrawingsOp(l):c===e.back&&(u=i.getBackDrawingsOp(l)),u==null)return!1;let{redo:d}=u;if(d==null)return!1;let f=[],p=P.deepClone(d);p=p.slice(3),p.unshift(`drawingsOrder`),f.push(p);let m={id:V.id,params:{unitId:a,actions:[],textRanges:null}};return m.params.actions=f.reduce((e,t)=>S.compose(e,t),null),!!r.syncExecuteCommand(m.id,m.params)}},jt={id:`doc.command.ungroup-doc-image`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(z);if(!t)return!1;let r=[];t.forEach(({parent:e,children:t})=>{r.push(e.unitId),t.forEach(e=>{r.push(e.unitId)})});let{unitId:i,subUnitId:a,undo:o,redo:s,objects:c}=n.getUngroupDrawingOp(t);return!1}};function Mt(e){"@babel/helpers - typeof";return Mt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Mt(e)}function Nt(e,t){if(Mt(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Mt(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Pt(e){var t=Nt(e,`string`);return Mt(t)==`symbol`?t:t+``}function X(e,t,n){return(t=Pt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ft=class{constructor(){X(this,`_refreshDrawings$`,new lt(null)),X(this,`refreshDrawings$`,this._refreshDrawings$.asObservable())}refreshDrawings(e){this._refreshDrawings$.next(e)}};function Z(e,t){return function(n,r){t(n,r,e)}}function Q(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let It=class extends l{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(),this._context=e,this._commandService=t,this._docSelectionManagerService=n,this._renderManagerSrv=r,this._imageIoService=i,this._docDrawingService=a,this._drawingManagerService=o,this._contextService=s,this._messageService=c,this._localeService=l,this._docSelectionRenderService=u,this._docRefreshDrawingsService=d,this._fileOpenerService=f,this._updateOrderListener(),this._groupDrawingListener(),this._focusDrawingListener(),this._transformDrawingListener(),this._editAreaChangeListener()}dispose(){super.dispose(),delete this._context}async insertDocImage(){let e=await this._fileOpenerService.openFile({multiple:!0,accept:ze.map(e=>`.${e.replace(`image/`,``)}`).join(`,`)}),t=e.length;return t>Ve?(this._messageService.show({type:Ne.Error,content:this._localeService.t(`update-status.exceedMaxCount`,String(Ve))}),!1):t===0?!1:(await this._insertFloatImages(e),!0)}async _insertFloatImages(e){let n=[];try{n=await Promise.all(e.map(e=>this._imageIoService.saveImage(e)))}catch(e){let t=e.message,n=``;switch(t){case Ge.ERROR_EXCEED_SIZE:n=this._localeService.t(`update-status.exceedMaxSize`,String(Be/(1024*1024)));break;case Ge.ERROR_IMAGE_TYPE:n=this._localeService.t(`update-status.invalidImageType`);break;case Ge.ERROR_IMAGE:n=this._localeService.t(`update-status.invalidImage`);break;default:break}this._messageService.show({type:Ne.Error,content:n})}if(n.length===0)return;let{unitId:r}=this._context,i=[];for(let e of n){if(e==null)continue;let{imageId:n,imageSourceType:a,source:o,base64Cache:s}=e,{width:c,height:l,image:u}=await Je(s||``);this._imageIoService.addImageSourceCache(n,a,u);let d=1;if(c>Ue||l>He){let e=Ue/c,t=He/l;d=Math.min(e,t)}let p=this._getImagePosition(c*d,l*d);if(p==null)return;let m={unitId:r,subUnitId:r,drawingId:n,drawingType:f.DRAWING_IMAGE,imageSourceType:a,source:o,transform:he(p),docTransform:p,behindDoc:t.FALSE,title:``,description:``,layoutType:A.INLINE,wrapText:te.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};this._isInsertInHeaderFooter()&&(m.isMultiTransform=t.TRUE,m.transforms=m.transform?[m.transform]:null),i.push(m)}this._commandService.executeCommand(kt.id,{unitId:r,drawings:i})}_isInsertInHeaderFooter(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel(),r=n==null?void 0:n.getEditArea();return r===Se.HEADER||r===Se.FOOTER}_getImagePosition(e,t){let n=this._docSelectionRenderService.getActiveTextRange(),r=(n==null?void 0:n.getAbsolutePosition())||{left:0,top:0};return{size:{width:e,height:t},positionH:{relativeFrom:D.PAGE,posOffset:r.left},positionV:{relativeFrom:O.PARAGRAPH,posOffset:0},angle:0}}_updateOrderListener(){this.disposeWithMe(this._drawingManagerService.featurePluginOrderUpdate$.subscribe(e=>{let{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i}=e;this._commandService.executeCommand(At.id,{unitId:t,subUnitId:n,drawingIds:r,arrangeType:i})}))}_groupDrawingListener(){this.disposeWithMe(this._drawingManagerService.featurePluginGroupUpdate$.subscribe(e=>{this._commandService.executeCommand(Ot.id,e)})),this.disposeWithMe(this._drawingManagerService.featurePluginUngroupUpdate$.subscribe(e=>{this._commandService.executeCommand(jt.id,e)}))}_getCurrentSceneAndTransformer(){let{scene:e,mainComponent:t}=this._context;if(e==null||t==null)return;let n=e.getTransformerByCreate(),{docsLeft:r,docsTop:i}=t.getOffsetConfig();return{scene:e,transformer:n,docsLeft:r,docsTop:i}}_transformDrawingListener(){let e=this._getCurrentSceneAndTransformer();if(e&&e.transformer)this.disposeWithMe(e.transformer.changeEnd$.pipe(dt(30)).subscribe(e=>{this._docSelectionManagerService.refreshSelection()}));else throw Error(`transformer is not init`)}_focusDrawingListener(){this.disposeWithMe(this._drawingManagerService.focus$.subscribe(e=>{var t;let{transformer:n,docsLeft:r,docsTop:i}=(t=this._getCurrentSceneAndTransformer())==null?{}:t;if(e==null||e.length===0)this._contextService.setContextValue(p,!1),this._docDrawingService.focusDrawing([]),n&&n.resetProps({zeroTop:0,zeroLeft:0});else{this._contextService.setContextValue(p,!0),this._docDrawingService.focusDrawing(e),this._setDrawingSelections(e);let t=this._docSelectionRenderService.getSegment(),a=this._findSegmentIdByDrawingId(e[0].drawingId);t!==a&&this._docSelectionRenderService.setSegment(a),n&&n.resetProps({zeroTop:i,zeroLeft:r})}}))}_findSegmentIdByDrawingId(e){var t;let{unit:n}=this._context,{body:r,headers:i={},footers:a={}}=n.getSnapshot();if(((t=r==null?void 0:r.customBlocks)==null?[]:t).some(t=>t.blockId===e))return``;for(let t of Object.keys(i)){var o;if((o=i[t].body.customBlocks)!=null&&o.some(t=>t.blockId===e))return t}for(let t of Object.keys(a)){var s;if((s=a[t].body.customBlocks)!=null&&s.some(t=>t.blockId===e))return t}return``}_updateDrawingsEditStatus(){var e;if(!this._context)return;let{unit:n,scene:r,unitId:i}=this._context,a=(e=this._renderManagerSrv.getRenderById(i))==null?void 0:e.with(B).getViewModel();if(a==null||n==null)return;let{drawings:o={}}=n.getSnapshot(),s=a.getEditArea()===Se.BODY;for(let e of Object.keys(o)){let n=o[e],a=qe({unitId:i,drawingId:n.drawingId,subUnitId:i}),c=r.fuzzyMathObjects(a,!0);if(c.length)for(let e of c){r.detachTransformerFrom(e);try{e.setOpacity(.5)}catch{}if(s&&n.isMultiTransform!==t.TRUE||!s&&n.isMultiTransform===t.TRUE){n.allowTransform!==!1&&r.attachTransformerTo(e);try{e.setOpacity(1)}catch{}}}}}_editAreaChangeListener(){var e;let{unitId:t}=this._context,n=(e=this._renderManagerSrv.getRenderById(t))==null?void 0:e.with(B).getViewModel();n!=null&&(this._updateDrawingsEditStatus(),this.disposeWithMe(n.editAreaChange$.subscribe(()=>{this._updateDrawingsEditStatus()})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})),this.disposeWithMe(this._commandService.onCommandExecuted(async e=>{e.id===V.id&&queueMicrotask(()=>{this._updateDrawingsEditStatus()})})))}_setDrawingSelections(e){var t,n;let{unit:r}=this._context,i=(t=(n=r.getSnapshot().body)==null?void 0:n.customBlocks)==null?[]:t,a=e.map(e=>{let t=e.drawingId,n=i.find(e=>e.blockId===t);return n?n.startIndex:null}).filter(e=>e!==null).map(e=>({startOffset:e,endOffset:e+1}));this._docSelectionManagerService.replaceDocRanges(a)}};It=Q([Z(1,g),Z(2,b(se)),Z(3,U),Z(4,We),Z(5,z),Z(6,G),Z(7,v),Z(8,$e),Z(9,b(T)),Z(10,b(H)),Z(11,b(Ft)),Z(12,Ze)],It);const Lt={id:`doc.command.insert-float-image`,type:i.COMMAND,handler:e=>{var t,n;let r=e.get(y),i=e.get(U);return(t=(n=Ae(I.UNIVER_DOC,r,i))==null?void 0:n.with(It).insertDocImage())==null?!1:t}};let $=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({});const Rt={[$.INLINE]:A.INLINE,[$.WRAP_SQUARE]:A.WRAP_SQUARE,[$.WRAP_TOP_AND_BOTTOM]:A.WRAP_TOP_AND_BOTTOM,[$.IN_FRONT_OF_TEXT]:A.WRAP_NONE,[$.BEHIND_TEXT]:A.WRAP_NONE};function zt(e,t,n,r,i,a,o){var s;let c=new M,l=S.getInstance(),u=[],d=a.getSelfOrHeaderFooterModel(t).getBody(),f=a.getSelfOrHeaderFooterModel(e).getBody();if(d==null||f==null)return;let p=(s=d.customBlocks)==null||(s=s.find(e=>e.blockId===i))==null?void 0:s.startIndex;if(p!=null){if(r=Math.min(f.dataStream.length-2,r),e===t){if(r<p?(r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),c.push({t:N.RETAIN,len:p-r}),c.push({t:N.DELETE,len:1})):(p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1}),r-p-1>0&&c.push({t:N.RETAIN,len:r-p-1}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1})),r!==p){let e=be(a,t),n=l.editOp(c.serialize(),e);u.push(n)}}else{p>0&&c.push({t:N.RETAIN,len:p}),c.push({t:N.DELETE,len:1});let s=be(a,t),d=l.editOp(c.serialize(),s);u.push(d),c.empty(),r>0&&c.push({t:N.RETAIN,len:r}),c.push({t:N.INSERT,body:{dataStream:`\b`,customBlocks:[{startIndex:0,blockId:i}]},len:1}),s=be(a,e),d=l.editOp(c.serialize(),s),u.push(d),o.setSegment(e),o.setSegmentPage(n)}return u}}const Bt={id:`doc.command.update-doc-drawing-wrapping-style`,type:i.COMMAND,handler:(e,n)=>{if(n==null)return!1;let{drawings:r,wrappingStyle:i,unitId:a}=n,o=e.get(g),s=e.get(y),c=e.get(U).getRenderById(a),l=c==null?void 0:c.with(B).getSkeleton().getSkeletonData(),u=c==null?void 0:c.with(B).getViewModel(),d=c==null?void 0:c.scene,f=s.getCurrentUniverDocInstance();if(f==null||l==null||d==null||u==null)return!1;let p=u.getEditArea(),m=d.getTransformerByCreate(),{pages:h,skeHeaders:_,skeFooters:v}=l,b=S.getInstance(),x=[],{drawings:C={}}=f.getSnapshot();for(let e of r){let{drawingId:n}=e,r=C[n].layoutType,a=Rt[i];if(r!==a){let e=b.replaceOp([`drawings`,n,`layoutType`],r,a);x.push(e)}if(i===$.BEHIND_TEXT||i===$.IN_FRONT_OF_TEXT){let e=C[n].behindDoc,r=i===$.BEHIND_TEXT?t.TRUE:t.FALSE;if(e!==r){let t=b.replaceOp([`drawings`,n,`behindDoc`],e,r);x.push(t)}}if(i===$.INLINE)continue;let o=null,s=0,c=0;for(let e of h){let{headerId:t,footerId:r,marginTop:i,marginLeft:a,marginBottom:l,pageWidth:u,pageHeight:d}=e;switch(p){case Se.HEADER:{var w;let e=(w=_.get(t))==null?void 0:w.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=e.marginTop,c=a);break}case Se.FOOTER:{var T;let e=(T=v.get(r))==null?void 0:T.get(u);e!=null&&e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=d-l+e.marginTop,c=a);break}case Se.BODY:e.skeDrawings.has(n)&&(o=e.skeDrawings.get(n),s=i,c=a);break}if(o!=null)break}if(o!=null){let{aTop:e,aLeft:t}=o,r=C[n].docTransform.positionH,i=t;r.relativeFrom===D.MARGIN?i-=c:r.relativeFrom===D.COLUMN&&(i-=o.columnLeft);let a={relativeFrom:r.relativeFrom,posOffset:i};if(r.posOffset!==a.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionH`],r,a);x.push(e)}let l=C[n].docTransform.positionV,u=e;l.relativeFrom===O.PAGE?u+=s:l.relativeFrom===O.LINE?u-=o.lineTop:l.relativeFrom===O.PARAGRAPH&&(u-=o.blockAnchorTop);let d={relativeFrom:l.relativeFrom,posOffset:u};if(l.posOffset!==d.posOffset){let e=b.replaceOp([`drawings`,n,`docTransform`,`positionV`],l,d);x.push(e)}}}let E={id:V.id,params:{unitId:a,actions:[],textRanges:null}};E.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let k=o.syncExecuteCommand(E.id,E.params);return m.refreshControls(),!!k}},Vt={id:`doc.command.update-doc-drawing-distance`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,dist:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e;for(let[e,n]of Object.entries(a)){let r=l[t][e];if(r!==n){let i=s.replaceOp([`drawings`,t,e],r,n);c.push(i)}}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ht={id:`doc.command.update-doc-drawing-wrap-text`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y).getCurrentUniverDocInstance();if(r==null)return!1;let{drawings:i,wrapText:a,unitId:o}=t,s=S.getInstance(),c=[],{drawings:l={}}=r.getSnapshot();for(let e of i){let{drawingId:t}=e,n=l[t].wrapText;if(n!==a){let e=s.replaceOp([`drawings`,t,`wrapText`],n,a);c.push(e)}}let u={id:V.id,params:{unitId:o,actions:[],textRanges:null}};return u.params.actions=c.reduce((e,t)=>S.compose(e,t),null),!!n.syncExecuteCommand(u.id,u.params)}},Ut={id:`doc.command.update-drawing-doc-transform`,type:i.COMMAND,handler:(e,t)=>{if(t==null)return!1;let n=e.get(g),r=e.get(y),i=e.get(U).getRenderById(t.unitId),a=i==null?void 0:i.scene;if(a==null)return!1;let o=a.getTransformerByCreate(),s=r.getCurrentUniverDocInstance();if(s==null)return!1;let{drawings:c,unitId:l}=t,u=S.getInstance(),d=[],{drawings:f={}}=s.getSnapshot();for(let e of c){let{drawingId:t,key:n,value:r}=e,i=f[t].docTransform[n];if(!P.diffValue(i,r)){let e=u.replaceOp([`drawings`,t,`docTransform`,n],i,r);d.push(e)}}let p={id:V.id,params:{unitId:l,actions:[],textRanges:null,debounce:!0}};p.params.actions=d.reduce((e,t)=>S.compose(e,t),null);let m=n.syncExecuteCommand(p.id,p.params);return o.refreshControls(),!!m}},Wt={id:`doc.command.move-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=e.get(Ft),s=i.getRenderById(t.unitId),c=s==null?void 0:s.scene,l=s==null?void 0:s.with(B).getSkeleton();if(c==null||a==null)return!1;let u=c.getTransformerByCreate(),d=e.get(g),f=e.get(y).getCurrentUniverDocInstance();if(f==null)return!1;let{drawing:p,unitId:m,offset:h,segmentId:_,segmentPage:v,needRefreshDrawings:b}=t;if(b)return o.refreshDrawings(l),u.refreshControls(),!0;let x=[],{drawingId:C}=p,w=zt(_,(r=a.getSegment())==null?``:r,v,h,C,f,a);if(w==null||w.length===0)return o.refreshDrawings(l),u.refreshControls(),!1;x.push(...w);let T={id:V.id,params:{unitId:m,actions:[],textRanges:null}};T.params.actions=x.reduce((e,t)=>S.compose(e,t),null);let E=d.syncExecuteCommand(T.id,T.params);return u.refreshControls(),!!E}},Gt={id:`doc.command.transform-non-inline-drawing`,type:i.COMMAND,handler:(e,t)=>{var n,r;if(t==null)return!1;let i=e.get(U),a=(n=i.getRenderById(t.unitId))==null?void 0:n.with(H),o=i.getRenderById(t.unitId),s=o==null?void 0:o.scene;if(s==null||a==null)return!1;let c=s.getTransformerByCreate(),l=e.get(g),u=e.get(y).getCurrentUniverDocInstance();if(u==null)return!1;let{drawing:d,unitId:f,offset:p,docTransform:m,segmentId:h,segmentPage:_}=t,v=[],{drawingId:b}=d,x=zt(h,(r=a.getSegment())==null?``:r,_,p,b,u,a);if(x==null)return!1;x.length>0&&v.push(...x);let C=S.getInstance(),{drawings:w={}}=u.getSnapshot(),{positionH:T,positionV:E,size:D,angle:O}=w[b].docTransform;if(!P.diffValue(T,m.positionH)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionH`],T,m.positionH);v.push(e)}if(!P.diffValue(E,m.positionV)){let e=C.replaceOp([`drawings`,b,`docTransform`,`positionV`],E,m.positionV);v.push(e)}if(!P.diffValue(D,m.size)){let e=C.replaceOp([`drawings`,b,`docTransform`,`size`],D,m.size);v.push(e)}if(!P.diffValue(O,m.angle)){let e=C.replaceOp([`drawings`,b,`docTransform`,`angle`],O,m.angle);v.push(e)}let k={id:V.id,params:{unitId:f,actions:[],textRanges:null,debounce:!0}};k.params.actions=v.reduce((e,t)=>S.compose(e,t),null);let A=l.syncExecuteCommand(k.id,k.params);return c.refreshControls(),!!A}},Kt={id:`doc.command.move-drawing`,type:i.COMMAND,handler:(e,t)=>{let n=e.get(g),r=e.get(z),i=e.get(y),a=e.get(U),{direction:o}=t,s=r.getFocusDrawings();if(s.length===0)return!1;let l=s[0].unitId,u=a.getRenderById(l),d=u==null?void 0:u.scene;if(d==null)return!1;let f=d.getTransformerByCreate(),p=i.getUniverDocInstance(l),m=s.map(e=>{var t;let{drawingId:n}=e,r=p==null||(t=p.getSnapshot().drawings)==null?void 0:t[n];if(r==null||r.layoutType===A.INLINE)return null;let{positionH:i,positionV:a}=r.docTransform,s={...i},l={...a};if(o===c.UP){var u;l.posOffset=((u=l.posOffset)==null?0:u)-2}else if(o===c.DOWN){var d;l.posOffset=((d=l.posOffset)==null?0:d)+2}else if(o===c.LEFT){var f;s.posOffset=((f=s.posOffset)==null?0:f)-2}else if(o===c.RIGHT){var m;s.posOffset=((m=s.posOffset)==null?0:m)+2}return{drawingId:n,key:o===c.UP||o===c.DOWN?`positionV`:`positionH`,value:o===c.UP||o===c.DOWN?l:s}}).filter(e=>e!=null);if(m.length===0)return!1;let h=n.syncExecuteCommand(Ut.id,{unitId:l,subUnitId:l,drawings:m});return f.refreshControls(),!!h}},qt={id:`doc.operation.clear-drawing-transformer`,type:i.MUTATION,handler:(e,t)=>{let n=e.get(U);return t.forEach(e=>{var t;(t=n.getRenderById(e))==null||(t=t.scene.getTransformer())==null||t.debounceRefreshControls()}),!0}},Jt=`COMPONENT_DOC_DRAWING_PANEL`,Yt={id:`sidebar.operation.doc-image`,type:i.COMMAND,handler:async(e,t)=>{let n=e.get(tt),r=e.get(T),i=e.get(G);switch(t.value){case`open`:n.open({header:{title:r.t(`docImage.panel.title`)},children:{label:Jt},onClose:()=>{i.focusDrawing(null)},width:360});break;default:n.close();break}return!0}},Xt={id:`doc.operation.edit-doc-image`,type:i.OPERATION,handler:(e,t)=>{let n=e.get(G),r=e.get(g);return t==null?!1:(n.focusDrawing([t]),r.executeCommand(Yt.id,{value:`open`}),!0)}};function Zt(e,t,n=1,r=0){let{top:i,left:a,bottom:o,right:s}=e,c=s-a,l=o-i,{viewportScrollX:u,viewportScrollY:d}=t.getViewport(me.VIEW_MAIN),{scaleX:f,scaleY:p}=t.getAncestorScale();return{startX:(a-u)*f,startY:(i-d)*p,endX:(a+c-u)*f,endY:(i+l-d)*p,width:c*f,height:l*p,rotate:r,absolute:{left:!1,top:!1},opacity:n==null?1:n}}function Qt(e,t){let{top:n,left:r,width:i,height:a,angle:o,opacity:s}=e;return Zt({top:n,left:r,bottom:n+a,right:r+i},t.scene,s,o)}let $t=class extends l{constructor(e,t,n,r,i,a){super(),this._renderManagerService=e,this._drawingManagerService=t,this._drawingRenderService=n,this._canvasFloatDomService=r,this._univerInstanceService=i,this._commandService=a,X(this,`_domLayerInfoMap`,new Map),this._initialize()}dispose(){super.dispose()}_initialize(){this._drawingAddRemoveListener(),this._initScrollAndZoomEvent()}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e);if(t==null)return null;let n=t.scene;return{scene:n,transformer:n.getTransformerByCreate(),renderUnit:t,canvas:t.engine.getCanvasElement()}}_drawingAddRemoveListener(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{this._insertRects(e)})),this.disposeWithMe(this._drawingManagerService.remove$.subscribe(e=>{e.forEach(e=>{this._removeDom(e.drawingId)})}))}_insertRects(e){e.forEach(async e=>{let{unitId:t}=e;if(!this._univerInstanceService.getUnit(t,I.UNIVER_DOC))return;let n=this._getSceneAndTransformerByDrawingSearch(t);if(n==null)return;let r=this._drawingManagerService.getDrawingByParam(e);if(r==null)return;let i=await this._drawingRenderService.renderFloatDom(r,n.scene);if(!(i==null||i.length===0))for(let e of i){this._addHoverForRect(e);let i=new u,a=new lt(Qt(e,n.renderUnit)),o=n.canvas,s=r.data,c={dispose:i,rect:e,position$:a,unitId:t};this._canvasFloatDomService.addFloatDom({position$:a,id:r.drawingId,componentKey:r.componentKey,onPointerDown:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerMove:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onPointerUp:e=>{o.dispatchEvent(new PointerEvent(e.type,e))},onWheel:e=>{o.dispatchEvent(new WheelEvent(e.type,e))},data:s,unitId:t});let l=e.onTransformChange$.subscribeEvent(()=>{let t=Qt(e,n.renderUnit);a.next(t)});i.add(()=>{this._canvasFloatDomService.removeFloatDom(r.drawingId)}),l&&i.add(l),this._domLayerInfoMap.set(r.drawingId,c)}})}_addHoverForRect(e){this.disposeWithMe(ae(e.onPointerEnter$.subscribeEvent(()=>{e.cursor=xe.GRAB}))),this.disposeWithMe(ae(e.onPointerLeave$.subscribeEvent(()=>{e.cursor=xe.DEFAULT})))}_removeDom(e){let t=this._domLayerInfoMap.get(e);if(!t)return;let{unitId:n}=t;this._domLayerInfoMap.delete(e),t.dispose.dispose();let r=this._getSceneAndTransformerByDrawingSearch(n);r&&r.scene.removeObject(t.rect)}_initScrollAndZoomEvent(){let e=e=>{let t=this._getSceneAndTransformerByDrawingSearch(e);t&&this._domLayerInfoMap.forEach(n=>{if(n.unitId!==e)return;let r=Qt(n.rect,t.renderUnit);n.position$.next(r)})};this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(pt(e=>{if(!e)return null;let t=e.getUnitId(),n=this._renderManagerService.getRenderById(t);return n?{render:n,unitId:t}:null}),ht(e=>e?ne(e.render.scene.getViewport(me.VIEW_MAIN).onScrollAfter$).pipe(pt(()=>({unitId:e.unitId}))):mt(null))).subscribe(t=>{if(!t)return;let{unitId:n}=t;e(n)})),this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(t.id===fe.id){let{unitId:n}=t.params;e(n)}}))}insertFloatDom(e,t){var n,r,i;let a=this._univerInstanceService.getCurrentUnitOfType(I.UNIVER_DOC);if(!a)return!1;let o=this._getSceneAndTransformerByDrawingSearch(a.getUnitId());if(!o)return!1;let s=(n=o.renderUnit.with(B).getSkeleton().getSkeletonData())==null?void 0:n.pages[0];if(!s)return!1;let{pageWidth:c,marginLeft:l,marginRight:u}=s,d=c-l-u,p={size:{width:(r=t.width)==null?d:r,height:t.height},positionH:{relativeFrom:D.PAGE,posOffset:0},positionV:{relativeFrom:O.PAGE,posOffset:0},angle:0},m=(i=t.drawingId)==null?re():i,h={unitId:a.getUnitId(),drawings:[{drawingId:m,drawingType:f.DRAWING_DOM,subUnitId:a.getUnitId(),unitId:a.getUnitId(),...e,title:``,description:``,docTransform:p,layoutType:A.INLINE,transform:he(p)}]};return this._commandService.syncExecuteCommand(kt.id,h),m}};$t=Q([Z(0,U),Z(1,G),Z(2,b(yt)),Z(3,b(Ye)),Z(4,y),Z(5,g)],$t);const en=`doc.menu.image`,tn=Lt.id,nn=e=>{let t=e.get(se),n=e.get(y);return new ut(e=>{let r=t.textSelection$.subscribe(()=>{let r=t.getActiveTextRange();if(r){var i;let{segmentId:t,startOffset:a,endOffset:o}=r,s=n.getCurrentUniverDocInstance(),c=s==null||(i=s.getSelfOrHeaderFooterModel(t).getBody())==null?void 0:i.tables;if(c&&c.length&&c.some(e=>{let{startIndex:t,endIndex:n}=e;return a>=t&&a<n||o>=t&&o<n})){e.next(!0);return}}else{e.next(!0);return}e.next(!1)});return()=>r.unsubscribe()})};function rn(e){return{id:en,type:rt.SUBITEMS,icon:`AddImageIcon`,tooltip:`docImage.title`,disabled$:nn(e),hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}function an(e){return{id:tn,title:`docImage.upload.float`,type:rt.BUTTON,hidden$:ct(e,I.UNIVER_DOC,void 0,a)}}var on=`@univerjs/docs-drawing-ui`,sn=`0.18.0`;const cn=`docs-drawing-ui.config`;Symbol(cn);const ln={};function un(e){if(S.isNoop(e)||!Array.isArray(e))return null;let t=e.find(e=>Array.isArray(e)&&(e==null?void 0:e[0])===`drawings`);if(t==null||!Array.isArray(t)||t.length<3||typeof t[1]==`string`&&typeof t[2]!=`object`||Array.isArray(t[1])&&typeof t[1][1]!=`object`)return null;let n=[];if(Array.isArray(t==null?void 0:t[1])){for(let e of t)if(Array.isArray(e)){var r,i;n.push({type:!(e==null||(r=e[1])==null)&&r.i?`add`:`remove`,drawingId:e==null?void 0:e[0],drawing:e==null||(i=e[1])==null?void 0:i.i})}}else{var a,o;n.push({type:(a=t[2])!=null&&a.i?`add`:`remove`,drawingId:t[1],drawing:(o=t[2])==null?void 0:o.i})}return n}function dn(e){if(!Array.isArray(e)||e.length<3||e[0]!==`drawingsOrder`)return[];let t=[];for(let n=1;n<e.length;n++){let r=e[n];if(Array.isArray(r)&&typeof r[0]==`number`&&typeof r[1]==`object`)t.push(r[0]);else{t.length=0;break}}return t}let fn=class extends l{constructor(e,t,n,r,i){super(),this._univerInstanceService=e,this._commandService=t,this._drawingManagerService=n,this._docDrawingService=r,this._renderManagerService=i,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params,r=un(n);if(r!=null)for(let{type:e,drawingId:n,drawing:i}of r)e===`add`?this._addDrawings(t,[i]):this._removeDrawings(t,[n])})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id!==V.id)return;let{unitId:t,actions:n}=e.params;dn(n).length>0&&this._updateDrawingsOrder(t)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{var t;if(e.id!==F.id&&e.id!==ee.id)return;let n=(t=this._univerInstanceService.getCurrentUniverDocInstance())==null?void 0:t.getUnitId(),r=this._drawingManagerService.getFocusDrawings();if(n==null||r.length===0)return;let i=this._renderManagerService.getRenderById(n),a=i==null?void 0:i.scene;if(a==null)return!1;a.getTransformerByCreate().refreshControls()}))}_addDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchAddOp(t);n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.addNotification(o),r.addNotification(o)}_removeDrawings(e,t){let n=this._drawingManagerService,r=this._docDrawingService,{subUnitId:i,redo:a,objects:o}=this._docDrawingService.getBatchRemoveOp(t.map(t=>({unitId:e,subUnitId:e,drawingId:t})));n.applyJson1(e,i,a),r.applyJson1(e,i,a),n.removeNotification(o),r.removeNotification(o)}_updateDrawingsOrder(e){let t=this._univerInstanceService.getUniverDocInstance(e);if(t==null)return;let n=t.getSnapshot().drawingsOrder;if(n==null)return;let r=this._drawingManagerService,i=this._docDrawingService;r.setDrawingOrder(e,e,n),i.setDrawingOrder(e,e,n);let a={unitId:e,subUnitId:e,drawingIds:n};r.orderNotification(a),i.orderNotification(a)}};fn=Q([Z(0,y),Z(1,g),Z(2,G),Z(3,z),Z(4,U)],fn);const pn=e=>{let{floatDomInfos:t,scene:n,offset:r,bound:i}=e,a=i.right-i.left,o=i.bottom-i.top;return J(`div`,{className:`univer-absolute univer-left-0 univer-top-0`,children:Tt(()=>t.map(e=>{let{width:t=0,height:r=0,left:i=0,top:a=0}=e.transform,o=Zt({left:i,right:i+t,top:a,bottom:a+r},n),s={position$:new lt(o),position:o,id:e.drawingId,componentKey:e.componentKey,onPointerMove:()=>{},onPointerDown:()=>{},onPointerUp:()=>{},onWheel:()=>{},unitId:e.unitId,data:e.data};return[e.drawingId,s]}).filter(([e,t])=>!(t.position.endX<0||t.position.endY<0||t.position.startX>a||t.position.startY>o)),[t,n,r,a,o]).map(([e,t])=>J(it,{layer:t,id:e,position:t.position},e))})};let mn=class extends l{constructor(e,t,n,r,i){super(),this._docPrintInterceptorService=e,this._drawingRenderService=t,this._drawingManagerService=n,this._componetManager=r,this._injector=i,this._initPrinting(),this._initPrintingDom()}_initPrinting(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_COMPONENT_COLLECT,{handler:(e,t,n)=>{let{unitId:r,scene:i}=t,a=this._drawingManagerService.getDrawingDataForUnit(r),o=a==null?void 0:a[r];return o&&o.order.forEach(e=>{let t=o.data[e];t.drawingType!==f.DRAWING_CHART&&t.drawingType!==f.DRAWING_DOM&&this._drawingRenderService.renderDrawing(t,i)}),n()}}))}_initPrintingDom(){this.disposeWithMe(this._docPrintInterceptorService.interceptor.intercept(this._docPrintInterceptorService.interceptor.getInterceptPoints().PRINTING_DOM_COLLECT,{handler:(e,t,n)=>{let{unitId:r}=t,i=this._drawingManagerService.getDrawingDataForUnit(r),a=i==null?void 0:i[r];if(a){let i=a.order.map(e=>{let t=a.data[e];if(t.drawingType===f.DRAWING_CHART)return{...t,componentKey:this._componetManager.get(o)};if(t.drawingType===f.DRAWING_DOM){let e=this._docPrintInterceptorService.getPrintComponent(t.componentKey);return{...t,componentKey:this._componetManager.get(e||t.componentKey)}}return null}).filter(Boolean);return Le(J(st(pn,this._injector),{unitId:r,floatDomInfos:i,scene:t.scene,skeleton:t.skeleton,offset:t.offset,bound:t.bound}),t.root),e==null||e.add(()=>{Re(t.root)}),n(e)}}}))}};mn=Q([Z(0,b(le)),Z(1,b(yt)),Z(2,G),Z(3,b(Xe)),Z(4,b(x))],mn);function hn(e){let{path:t}=e;return t.some(e=>e===`cells`)}let gn=class extends l{constructor(e,t,n,r){super(),this._commandService=e,this._univerInstanceService=t,this._drawingManagerService=n,this._renderManagerService=r,X(this,`_liquid`,new we),X(this,`_listenerOnImageMap`,new Set),X(this,`_transformerCache`,new Map),X(this,`_anchorShape`,void 0),this._init()}_init(){this._listenDrawingFocus()}_listenDrawingFocus(){this.disposeWithMe(this._drawingManagerService.add$.subscribe(e=>{if(e.length!==0)for(let t of e){let{unitId:e}=t;this._listenerOnImageMap.has(e)||(this._listenTransformerChange(e),this._listenerOnImageMap.add(e))}}))}_listenTransformerChange(e){var t;let n=(t=this._getSceneAndTransformerByDrawingSearch(e))==null?void 0:t.transformer;if(n==null)return;this.disposeWithMe(ae(n.changeStart$.subscribe(e=>{this._transformerCache.clear();let{objects:t}=e;for(let e of t.values()){var n;let{oKey:t,width:r,height:i,left:a,top:o,angle:s}=e,c=this._drawingManagerService.getDrawingOKey(t);if(c==null)continue;let l=this._univerInstanceService.getUniverDocInstance(c.unitId),u=l==null||(n=l.getSnapshot().drawings)==null?void 0:n[c.drawingId];if((u==null?void 0:u.layoutType)===A.INLINE)try{e.setOpacity(.2)}catch{}u!=null&&this._transformerCache.set(c.drawingId,{drawing:u,top:o,left:a,width:r,height:i,angle:s})}})));let r=R(this._updateMultipleDrawingDocTransform.bind(this),50);R(this._nonInlineDrawingTransform.bind(this),50),this.disposeWithMe(ae(n.changing$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:i}=e;if(t.size>1)r(t);else if(t.size===1){let e=this._transformerCache.values().next().value,{width:r,height:a,top:o,left:s,angle:c}=t.values().next().value;if(e&&r===e.width&&a===e.height&&o===e.top&&s===e.left&&c===e.angle)return;e&&(e.drawing.layoutType,A.INLINE),e&&e.drawing.layoutType===A.INLINE&&n!=null&&i!=null&&this._updateInlineDrawingAnchor(e.drawing,n,i)}}))),this.disposeWithMe(ae(n.changeEnd$.subscribe(e=>{let{objects:t,offsetX:n,offsetY:r}=e;for(let e of t.values()){let t=this._drawingManagerService.getDrawingOKey(e.oKey);if(t==null)continue;let n=this._transformerCache.get(t==null?void 0:t.drawingId);if((n==null?void 0:n.drawing.layoutType)===A.INLINE)try{e.setOpacity(1)}catch{}}if(this._anchorShape&&this._anchorShape.hide(),t.size>1)this._updateMultipleDrawingDocTransform(t);else if(t.size===1){let e=this._transformerCache.values().next().value,i=t.values().next().value,{width:a,height:o,top:s,left:c,angle:l}=i;if(e&&a===e.width&&o===e.height&&s===e.top&&c===e.left&&l===e.angle)return;e&&e.drawing.layoutType===A.INLINE?a!==e.width||o!==e.height||l!==e.angle?this._updateDrawingSize(e,i):n!=null&&r!=null&&this._moveInlineDrawing(e.drawing,n,r):e&&this._nonInlineDrawingTransform(e.drawing,i)}this._transformerCache.clear()})))}_updateMultipleDrawingDocTransform(e){if(e.size<1)return;let t=[],n,r;for(let i of e.values()){let{oKey:e,left:a,top:o,angle:s}=i,{width:c,height:l}=i,u=this._drawingManagerService.getDrawingOKey(e);if(u==null)continue;n==null&&(n=u.unitId),r==null&&(r=u.subUnitId);let d=this._transformerCache.get(u.drawingId);if(d==null)continue;let{drawing:f,top:p,left:m,width:h,height:g,angle:_}=d,{width:v,height:y}=this._getPageContentSize(f);if(c=Math.min(c,v),l=Math.min(l,y),(h!==c||g!==l)&&t.push({drawingId:u.drawingId,key:`size`,value:{width:c,height:l}}),_!==s&&t.push({drawingId:u.drawingId,key:`angle`,value:s}),p!==o||m!==a){let e=o-p,n=a-m;e!==0&&t.push({drawingId:u.drawingId,key:`positionV`,value:{relativeFrom:f.docTransform.positionV.relativeFrom,posOffset:f.docTransform.positionV.posOffset+e}}),n!==0&&t.push({drawingId:u.drawingId,key:`positionH`,value:{relativeFrom:f.docTransform.positionH.relativeFrom,posOffset:f.docTransform.positionH.posOffset+n}})}}t.length>0&&n&&r&&this._commandService.executeCommand(Ut.id,{unitId:n,subUnitId:r,drawings:t})}_updateDrawingAnchor(e){if(this._transformerCache.size!==1)return;let t=this._transformerCache.values().next().value,n=e.values().next().value;this._getDrawingAnchor(t.drawing,n)}_updateInlineDrawingAnchor(e,t,n){var r;if(this._transformerCache.size!==1)return;let{contentBoxPointGroup:i}=(r=this._getInlineDrawingAnchor(e,t,n))==null?{}:r;i!=null&&this._createOrUpdateInlineAnchor(e.unitId,i)}_getInlineDrawingAnchor(e,t,n){var r,i;let a=this._renderManagerService.getRenderById(e.unitId),o=a==null?void 0:a.with(B).getSkeleton();if(a==null)return;let{mainComponent:s,scene:c}=a,l=s,u=c.getViewports()[0],{pageLayoutType:d=Te.VERTICAL,pageMarginLeft:f,pageMarginTop:p}=l.getOffsetConfig(),m=null,h=!1,g=-1,_=``,v=this._getTransformCoordForDocumentOffset(l,u,t,n);if(v==null)return;let y=(r=this._renderManagerService.getRenderById(e.unitId))==null?void 0:r.with(H);if(y==null)return;let b=o==null?void 0:o.findNodeByCoord(v,d,f,p,{strict:!1,segmentId:y.getSegment(),segmentPage:y.getSegmentPage()});if(b){let{node:e,ratioX:t,segmentPage:n,segmentId:r}=b;h=t<.5,m=e,g=n,_=r}if(m==null)return;let x=o==null?void 0:o.findPositionByGlyph(m,g),S=this._getDocObject();if(x==null||o==null||S==null||hn(x))return;let C={...x,isBack:h},{cursorList:w,contentBoxPointGroup:T}=new de(S.document.getOffsetConfig(),o).getRangePointData(C,C),{startOffset:E}=(i=ye(w))==null?{}:i;if(E!=null)return{offset:E,contentBoxPointGroup:T,segmentId:_,segmentPage:g}}_getDrawingAnchor(e,t){var n,r,i,a,o;let s=this._renderManagerService.getRenderById(e.unitId),c=s==null?void 0:s.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData();if(l==null||s==null)return;let{pages:u,skeHeaders:d,skeFooters:f}=l,{mainComponent:p,scene:m}=s,h=p,g=m.getViewports()[0],{pageLayoutType:_=Te.VERTICAL,pageMarginLeft:v,pageMarginTop:y,docsLeft:b,docsTop:x}=h.getOffsetConfig(),{left:S,top:C,angle:w}=t,{width:T,height:E}=t,{positionV:k,positionH:A}=e.docTransform,{width:ee,height:j}=this._getPageContentSize(e);T=Math.min(T,ee),E=Math.min(E,j);let M=null,N=``,P=-1,F={...e.docTransform,size:{width:T,height:E},angle:w},{x:I,y:te}=m.getViewportScrollXY(g),ne=this._getTransformCoordForDocumentOffset(h,g,S-I,C-te);if(ne==null)return;let re=(n=this._renderManagerService.getRenderById(e.unitId))==null?void 0:n.with(H);if(re==null)return;let ie=c==null?void 0:c.findNodeByCoord(ne,_,v,y,{strict:!1,segmentId:re.getSegment(),segmentPage:re.getSegmentPage()});if(ie){let{node:e,segmentPage:t,segmentId:n}=ie;M=e,P=t,N=n}if(M==null)return;let L=(r=M.parent)==null?void 0:r.parent,R=L==null?void 0:L.parent,ae=(i=R==null?void 0:R.lines.find(e=>e.paragraphIndex===(L==null?void 0:L.paragraphIndex)&&e.paragraphStart))==null?R==null?void 0:R.lines[0]:i,z=R==null||(a=R.parent)==null?void 0:a.parent;if(L==null||R==null||ae==null||z==null)return;this._liquid.reset();let oe=z.type;for(let e of u){let{headerId:t,footerId:n,pageHeight:r,pageWidth:i,marginLeft:a,marginBottom:o}=e,s=u.indexOf(e);if(P>-1&&s===P){switch(oe){case Ce.HEADER:{var se;let e=(se=d.get(t))==null?void 0:se.get(i);if(e)this._liquid.translatePagePadding({marginTop:e.marginTop,marginLeft:a});else throw Error(`header skeleton not found`);break}case Ce.FOOTER:{var V;let e=(V=f.get(n))==null?void 0:V.get(i);if(e)this._liquid.translatePagePadding({marginTop:r-o+e.marginTop,marginLeft:a});else throw Error(`footer skeleton not found`);break}}break}if(this._liquid.translatePagePadding(e),e===z)break;this._liquid.restorePagePadding(e),this._liquid.translatePage(e,_,v,y)}if(k.relativeFrom===O.LINE)M=L.divides[0].glyphGroup[0];else{var ce,le;M=(ce=(le=ae.divides)==null||(le=le[0])==null||(le=le.glyphGroup)==null?void 0:le[0])==null?M:ce}switch(F.positionH={relativeFrom:A.relativeFrom,posOffset:S-this._liquid.x-b},A.relativeFrom){case D.MARGIN:F.positionH.posOffset=S-this._liquid.x-b-z.marginLeft;break;case D.COLUMN:F.positionH.posOffset=S-this._liquid.x-b-R.left;break}switch(F.positionV={relativeFrom:k.relativeFrom,posOffset:C-this._liquid.y-x},k.relativeFrom){case O.PAGE:F.positionV.posOffset=C-this._liquid.y-x-z.marginTop;break;case O.LINE:F.positionV.posOffset=C-this._liquid.y-x-L.top;break;case O.PARAGRAPH:F.positionV.posOffset=C-this._liquid.y-x-ae.top;break}if(M==null)return;let ue=c==null?void 0:c.findPositionByGlyph(M,P),fe=this._getDocObject();if(ue==null||c==null||fe==null||hn(ue))return;let pe={...ue,isBack:!1},{cursorList:me}=new de(fe.document.getOffsetConfig(),c).getRangePointData(pe,pe),{startOffset:he}=(o=ye(me))==null?{}:o;if(he!=null)return{offset:he,docTransform:F,segmentId:N,segmentPage:P}}_updateDrawingSize(e,t){let n=[],{drawing:r,width:i,height:a,angle:o}=e,{unitId:s,subUnitId:c}=r,{width:l,height:u,angle:d}=t,{width:f,height:p}=this._getPageContentSize(r);l=Math.min(f,l),u=Math.min(p,u),(l!==i||u!==a)&&n.push({drawingId:r.drawingId,key:`size`,value:{width:l,height:u}}),d!==o&&n.push({drawingId:r.drawingId,key:`angle`,value:d}),n.length>0&&s&&c&&this._commandService.executeCommand(Ut.id,{unitId:s,subUnitId:c,drawings:n})}_moveInlineDrawing(e,t,n){let r=this._getInlineDrawingAnchor(e,t,n),{offset:i,segmentId:a,segmentPage:o}=r==null?{}:r;return this._commandService.executeCommand(Wt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:i,segmentId:a,segmentPage:o,needRefreshDrawings:i==null})}_limitDrawingInPage(e,t){let n=this._renderManagerService.getRenderById(e.unitId),{left:r,top:i,width:a,height:o,angle:s}=t,c=n==null?void 0:n.with(B).getSkeleton(),l=c==null?void 0:c.getSkeletonData(),{pages:u}=l==null?{}:l;if(l==null||n==null||u==null)return{left:r,top:i,width:a,height:o,angle:s};let{mainComponent:d}=n,{top:f,pageLayoutType:p,pageMarginLeft:m,pageMarginTop:h}=d,g=i;this._liquid.reset();for(let e of u){let{marginBottom:t,pageHeight:n}=e,r=u[u.indexOf(e)+1];r!=null&&(P.hasIntersectionBetweenTwoRanges(i,i+o,this._liquid.y+f+n-t,this._liquid.y+f+n+h+r.marginTop)&&(g=i+o/2<this._liquid.y+f+n+h/2?Math.min(i,this._liquid.y+f+n-t-o):Math.max(i,this._liquid.y+f+n+h+r.marginTop)),this._liquid.translatePage(e,p,m,h))}return{left:r,top:g,width:a,height:o,angle:s}}_nonInlineDrawingTransform(e,n,r=!1){let i=e.isMultiTransform===t.TRUE?n:this._limitDrawingInPage(e,n);if(r&&i.top!==n.top)return;let a=this._getDrawingAnchor(e,i),{offset:o,docTransform:s,segmentId:c,segmentPage:l}=a==null?{}:a;return o==null||s==null?this._updateMultipleDrawingDocTransform(new Map([[e.drawingId,n]])):this._commandService.executeCommand(Gt.id,{unitId:e.unitId,subUnitId:e.unitId,drawing:e,offset:o,docTransform:s,segmentId:c,segmentPage:l})}_getSceneAndTransformerByDrawingSearch(e){if(e==null)return;let t=this._renderManagerService.getRenderById(e),n=t==null?void 0:t.scene;if(n!=null)return{scene:n,transformer:n.getTransformerByCreate()}}_getTransformCoordForDocumentOffset(e,t,n,r){let{documentTransform:i}=e.getOffsetConfig(),a=t.transformVector2SceneCoord(Oe.FromArray([n,r]));if(a)return i.clone().invert().applyPoint(a)}_createOrUpdateInlineAnchor(e,t){let n=this._renderManagerService.getRenderById(e);if(n==null)return;let{mainComponent:i,scene:a}=n,{docsLeft:o,docsTop:s}=i.getOffsetConfig(),{left:c,top:l,height:u}=ge(t),d=c+o,f=l+s;if(this._anchorShape){this._anchorShape.transformByState({left:d,top:f,height:u}),this._anchorShape.show();return}let p=new Ee(`__InlineDrawingAnchor__`+re(6),{left:d,top:f,height:u,strokeWidth:2,stroke:ke(r.darkgray,1),evented:!1});this._anchorShape=p,a.addObject(p,pe)}_getDocObject(){return ve(this._univerInstanceService,this._renderManagerService)}_getPageContentSize(e){let t=this._renderManagerService.getRenderById(e.unitId),n=t==null?void 0:t.with(B).getSkeleton(),r=n==null?void 0:n.getSkeletonData();if(r==null||t==null)return{width:500,height:500};let{pages:i}=r,a=null;for(let t of i){let{skeDrawings:n}=t;if(n.has(e.drawingId)){a=t;break}}if(a){let{pageWidth:e,pageHeight:t,marginLeft:n,marginBottom:r,marginRight:i,marginTop:o}=a;return{width:Math.max(500,e-n-i),height:Math.max(500,t-o-r)}}else return{width:500,height:500}}};gn=Q([Z(0,g),Z(1,y),Z(2,G),Z(3,U)],gn);const _n={[at.MEDIA]:{[en]:{order:0,menuItemFactory:rn,[tn]:{order:0,menuItemFactory:an}}}},vn=-1e3,yn=1e3,bn=e=>{let t=K(g),n=K(T),r=K(G),i=K(U),a=K(y),{drawings:o}=e,s=o[0];if(s==null)return;let{unitId:c}=s,l=a.getUniverDocInstance(c),u=l==null?void 0:l.getSnapshot().documentStyle.documentFlavor,f=i.getRenderById(c),p=f==null?void 0:f.scene;if(p==null)return;let m=p.getTransformerByCreate(),h=[{label:n.t(`image-position.column`),value:String(D.COLUMN)},{label:n.t(`image-position.page`),value:String(D.PAGE)},{label:n.t(`image-position.margin`),value:String(D.MARGIN)}],_=[{label:n.t(`image-position.line`),value:String(O.LINE),disabled:u===d.MODERN},{label:n.t(`image-position.page`),value:String(O.PAGE),disabled:u===d.MODERN},{label:n.t(`image-position.margin`),value:String(O.MARGIN),disabled:u===d.MODERN},{label:n.t(`image-position.paragraph`),value:String(O.PARAGRAPH)}],[v,b]=q(!0),[x,S]=q({relativeFrom:D.PAGE,posOffset:0}),[C,w]=q({relativeFrom:O.PAGE,posOffset:0}),[E,k]=q(!0),[ee,j]=q(!0);function M(e,n){var a;e===`positionH`?S(n):w(n);let o=r.getFocusDrawings();if(o.length===0)return;let s=o.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));t.executeCommand(Ut.id,{unitId:o[0].unitId,subUnitId:o[0].unitId,drawings:s.map(t=>({drawingId:t.drawingId,key:e,value:n}))});let l=(a=i.getRenderById(c))==null?void 0:a.with(H);l&&l.blur(),m.refreshControls()}function N(e){var t;let n=x.relativeFrom,a=x.posOffset,o=Number(e);if(n===o)return;let s=r.getFocusDrawings();if(s.length===0)return;let c=s[0].drawingId,l=s[0].unitId,u=null,d=0,f=(t=i.getRenderById(l))==null?void 0:t.with(B).getSkeleton(),p=f==null?void 0:f.getSkeletonData();if(p==null)return;let{pages:m,skeHeaders:h,skeFooters:g}=p;for(let e of m){var _,v;let{marginLeft:t,skeDrawings:n,headerId:r,footerId:i,pageWidth:a}=e;if(n.has(c)){u=n.get(c),d=t;break}let o=(_=h.get(r))==null?void 0:_.get(a);if(o!=null&&o.skeDrawings.has(c)){u=o==null?void 0:o.skeDrawings.get(c),d=t;break}let s=(v=g.get(i))==null?void 0:v.get(a);if(s!=null&&s.skeDrawings.has(c)){u=s==null?void 0:s.skeDrawings.get(c),d=t;break}}if(u==null)return;let y=0;n===D.COLUMN?y-=u.columnLeft:n===D.MARGIN&&(y-=d),o===D.COLUMN?y+=u.columnLeft:o===D.MARGIN?y+=d:D.PAGE,M(`positionH`,{relativeFrom:o,posOffset:(a==null?0:a)-y})}function P(e){var t,n,o,s,c;let l=C.relativeFrom,u=C.posOffset,d=Number(e);if(l===d)return;let f=r.getFocusDrawings();if(f.length===0)return;let{drawingId:p,unitId:m}=f[0],h=a.getUniverDocInstance(m),g=(t=i.getRenderById(m))==null?void 0:t.with(B).getSkeleton(),_=(n=i.getRenderById(m))==null?void 0:n.with(H),v=_==null?void 0:_.getSegment(),y=_==null?void 0:_.getSegmentPage(),b=h==null||(o=h.getSelfOrHeaderFooterModel(v).getBody())==null||(o=o.customBlocks)==null?void 0:o.find(e=>e.blockId===p);if(b==null||g==null||_==null)return;let{startIndex:x}=b,S=g.findNodeByCharIndex(x,v,y),w=S==null||(s=S.parent)==null?void 0:s.parent,T=w==null?void 0:w.parent,E=T==null?void 0:T.lines.find(e=>e.paragraphIndex===(w==null?void 0:w.paragraphIndex)&&e.paragraphStart),D=T==null||(c=T.parent)==null?void 0:c.parent;if(S==null||w==null||E==null||T==null||D==null)return;let k=0;l===O.PARAGRAPH?k-=E.top:l===O.LINE?k-=w.top:l===O.PAGE&&(k+=D.marginTop),d===O.PARAGRAPH?k+=E.top:d===O.LINE?k+=w.top:d===O.PAGE&&(k-=D.marginTop),M(`positionV`,{relativeFrom:d,posOffset:(u==null?0:u)-k})}function F(e){var t;let n=l==null?void 0:l.getSnapshot(),r=n==null||(t=n.drawings)==null?void 0:t[e.drawingId];if(r==null)return;let{layoutType:i}=r,{positionH:a,positionV:o}=r.docTransform;S(a),w(o),b(i===A.INLINE),k(o.relativeFrom===O.PARAGRAPH||o.relativeFrom===O.LINE)}function I(){let e=r.getFocusDrawings();e.length!==0&&F(e[0])}function te(e){k(e),P(e?String(O.PARAGRAPH):String(O.PAGE))}return wt(()=>{I();let e=r.focus$.subscribe(e=>{if(e.length===0){j(!1);return}j(!0),F(e[0])}),n=t.onCommandExecuted(async e=>{e.id===V.id&&I()});return()=>{e.unsubscribe(),n.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!ee}),children:[J(`header`,{className:`
2
+ univer-text-gray-600
3
+ dark:!univer-text-gray-200
4
+ `,children:J(`div`,{children:n.t(`image-position.title`)})}),J(`div`,{className:`
5
+ univer-text-gray-600
6
+ dark:!univer-text-gray-200
7
+ `,children:J(`div`,{children:n.t(`image-position.horizontal`)})}),Y(`div`,{className:`
8
+ univer-grid univer-grid-cols-2 univer-gap-2
9
+ [&>div]:univer-grid [&>div]:univer-gap-2
10
+ `,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:x.posOffset,onChange:e=>{M(`positionH`,{relativeFrom:x.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.toTheRightOf`)}),J(Fe,{value:String(x.relativeFrom),disabled:v,options:h,onChange:N})]})]}),J(`div`,{className:`
11
+ univer-text-gray-600
12
+ dark:!univer-text-gray-200
13
+ `,children:J(`div`,{children:n.t(`image-position.vertical`)})}),Y(`div`,{className:`
14
+ univer-grid univer-grid-cols-2 univer-gap-2
15
+ [&>div]:univer-grid [&>div]:univer-gap-2
16
+ `,children:[Y(`div`,{children:[J(`span`,{children:n.t(`image-position.absolutePosition`)}),J(Me,{min:vn,max:yn,precision:1,disabled:v,value:C.posOffset,onChange:e=>{M(`positionV`,{relativeFrom:C.relativeFrom,posOffset:e})}})]}),Y(`div`,{children:[J(`span`,{children:n.t(`image-position.bellow`)}),J(Fe,{disabled:v,value:String(C.relativeFrom),options:_,onChange:P})]})]}),J(`div`,{className:`
17
+ univer-text-gray-600
18
+ dark:!univer-text-gray-200
19
+ `,children:J(`div`,{children:n.t(`image-position.options`)})}),J(`div`,{children:J(je,{disabled:v,checked:E,onChange:te,children:n.t(`image-position.moveObjectWithText`)})})]})},xn=e=>{let n=K(g),r=K(T),i=K(G),a=K(U),o=K(y),{drawings:s}=e,c=s[0];if(c==null)return null;let{unitId:l}=c,u=o.getUniverDocInstance(l),d=a.getRenderById(l);if((d==null?void 0:d.scene)==null)return null;let[f,p]=q(!0),[m,h]=q(!0),[_,v]=q(!0),[b,x]=q($.INLINE),[S,C]=q(``),[w,E]=q({distT:0,distL:0,distB:0,distR:0}),[D,O]=q(!0);function k(e){x(e);let t=i.getFocusDrawings();if(t.length===0)return;let{unitId:r,subUnitId:a}=t[0],o=t.map(({unitId:e,subUnitId:t,drawingId:n})=>({unitId:e,subUnitId:t,drawingId:n}));n.executeCommand(Bt.id,{unitId:r,subUnitId:a,drawings:o,wrappingStyle:e})}function ee(e){C(e);let t=i.getFocusDrawings();if(t.length===0)return;let r=t.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Ht.id,{unitId:t[0].unitId,subUnitId:t[0].unitId,drawings:r,wrapText:e})}function j(e,t){if(e==null)return;E({...w,[t]:e});let r=i.getFocusDrawings();if(r.length===0)return;let a=r.map(e=>({unitId:e.unitId,subUnitId:e.subUnitId,drawingId:e.drawingId}));n.executeCommand(Vt.id,{unitId:r[0].unitId,subUnitId:r[0].unitId,drawings:a,dist:{[t]:e}})}function M(){let e=i.getFocusDrawings();e.length!==0&&N(e[0])}function N(e){var n;let r=u==null||(n=u.getSnapshot())==null||(n=n.drawings)==null?void 0:n[e.drawingId];if(r==null)return;let{distT:i=0,distL:a=0,distB:o=0,distR:s=0,layoutType:c=A.INLINE,behindDoc:l=t.FALSE,wrapText:d=te.BOTH_SIDES}=r;if(E({distT:i,distL:a,distB:o,distR:s}),C(d),p(c!==A.WRAP_SQUARE),c===A.WRAP_NONE||c===A.INLINE?h(!0):h(!1),c===A.WRAP_NONE||c===A.INLINE||c===A.WRAP_TOP_AND_BOTTOM?v(!0):v(!1),c===A.WRAP_NONE)l===t.TRUE?x($.BEHIND_TEXT):x($.IN_FRONT_OF_TEXT);else switch(c){case A.INLINE:x($.INLINE);break;case A.WRAP_SQUARE:x($.WRAP_SQUARE);break;case A.WRAP_TOP_AND_BOTTOM:x($.WRAP_TOP_AND_BOTTOM);break;default:throw Error(`Unsupported layout type: ${c}`)}}return wt(()=>{M();let e=i.focus$.subscribe(e=>{if(e.length===0){O(!1);return}O(!0),N(e[0])}),t=n.onCommandExecuted(async e=>{e.id===V.id&&M()});return()=>{e.unsubscribe(),t.dispose()}},[]),Y(`div`,{className:Ie(`univer-grid univer-gap-2 univer-py-2 univer-text-gray-400`,{"univer-hidden":!D}),children:[J(`header`,{className:`
20
+ univer-text-gray-600
21
+ dark:!univer-text-gray-200
22
+ `,children:J(`div`,{children:r.t(`image-text-wrap.title`)})}),J(`div`,{className:`
23
+ univer-text-gray-600
24
+ dark:!univer-text-gray-200
25
+ `,children:J(`div`,{children:r.t(`image-text-wrap.wrappingStyle`)})}),J(`div`,{children:Y(Pe,{value:b,onChange:k,direction:`vertical`,children:[J(W,{value:$.INLINE,children:r.t(`image-text-wrap.inline`)}),J(W,{value:$.WRAP_SQUARE,children:r.t(`image-text-wrap.square`)}),J(W,{value:$.WRAP_TOP_AND_BOTTOM,children:r.t(`image-text-wrap.topAndBottom`)}),J(W,{value:$.BEHIND_TEXT,children:r.t(`image-text-wrap.behindText`)}),J(W,{value:$.IN_FRONT_OF_TEXT,children:r.t(`image-text-wrap.inFrontText`)})]})}),J(`div`,{className:`
26
+ univer-text-gray-600
27
+ dark:!univer-text-gray-200
28
+ `,children:J(`div`,{children:r.t(`image-text-wrap.wrapText`)})}),J(`div`,{children:Y(Pe,{disabled:f,value:S,onChange:ee,direction:`horizontal`,children:[J(W,{value:te.BOTH_SIDES,children:r.t(`image-text-wrap.bothSide`)}),J(W,{value:te.LEFT,children:r.t(`image-text-wrap.leftOnly`)}),J(W,{value:te.RIGHT,children:r.t(`image-text-wrap.rightOnly`)})]})}),J(`div`,{className:`
29
+ univer-text-gray-600
30
+ dark:!univer-text-gray-200
31
+ `,children:J(`div`,{children:r.t(`image-text-wrap.distanceFromText`)})}),Y(`div`,{className:`
32
+ univer-grid univer-grid-cols-2 univer-gap-2
33
+ [&>div]:univer-grid [&>div]:univer-gap-2
34
+ `,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.top`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distT,onChange:e=>{j(e,`distT`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.left`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distL,onChange:e=>{j(e,`distL`)}})]})]}),Y(`div`,{className:`
35
+ univer-grid univer-grid-cols-2 univer-gap-2
36
+ [&>div]:univer-grid [&>div]:univer-gap-2
37
+ `,children:[Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.bottom`)}),J(Me,{min:0,max:100,disabled:m,precision:1,value:w.distB,onChange:e=>{j(e,`distB`)}})]}),Y(`div`,{children:[J(`span`,{children:r.t(`image-text-wrap.right`)}),J(Me,{min:0,max:100,disabled:_,precision:1,value:w.distR,onChange:e=>{j(e,`distR`)}})]})]})]})},Sn=()=>{let e=K(G),[t,n]=q(e.getFocusDrawings());return wt(()=>{let t=e.focus$.subscribe(e=>{n(e)});return()=>{t.unsubscribe()}},[]),!!(t!=null&&t.length)&&Y(`div`,{className:`univer-text-sm`,children:[J(vt,{drawings:t,hasAlign:!1,hasCropper:!1,hasGroup:!1,hasTransform:!1}),J(xn,{drawings:t}),J(bn,{drawings:t})]})};function Cn(e){return e.getContextValue(m)&&e.getContextValue(h)&&e.getContextValue(p)}const wn={id:Kt.id,description:`shortcut.drawing-move-down`,group:`4_drawing-view`,binding:nt.ARROW_DOWN,priority:100,preconditions:Cn,staticParameters:{direction:c.DOWN}},Tn={id:Kt.id,description:`shortcut.drawing-move-up`,group:`4_drawing-view`,binding:nt.ARROW_UP,priority:100,preconditions:Cn,staticParameters:{direction:c.UP}},En={id:Kt.id,description:`shortcut.drawing-move-left`,group:`4_drawing-view`,binding:nt.ARROW_LEFT,priority:100,preconditions:Cn,staticParameters:{direction:c.LEFT}},Dn={id:Kt.id,description:`shortcut.drawing-move-right`,group:`4_drawing-view`,binding:nt.ARROW_RIGHT,priority:100,preconditions:Cn,staticParameters:{direction:c.RIGHT}},On={id:Dt.id,description:`shortcut.drawing-delete`,group:`4_drawing-view`,preconditions:Cn,binding:nt.DELETE,mac:nt.BACKSPACE};let kn=class extends l{constructor(e,t,n,r){super(),this._componentManager=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._init()}_initCustomComponents(){let e=this._componentManager;this.disposeWithMe(e.register(Jt,Sn))}_initMenus(){this._menuManagerService.mergeMenu(_n)}_initCommands(){[Lt,kt,Bt,Vt,Ht,Ut,Wt,Gt,Et,Yt,qt,Xt,Ot,jt,Kt,Dt,At].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_initShortcuts(){[wn,Tn,En,Dn,On].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_init(){this._initCommands(),this._initCustomComponents(),this._initMenus(),this._initShortcuts()}};kn=Q([Z(0,b(Xe)),Z(1,Qe),Z(2,g),Z(3,et)],kn);let An=class extends l{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._docSkeletonManagerService=t,this._commandService=n,this._editorService=r,this._drawingManagerService=i,this._docRefreshDrawingsService=a,this._univerInstanceService=o,this._lifecycleService=s,X(this,`_liquid`,new we),this._initialize(),this._commandExecutedListener()}_initialize(){this._initialRenderRefresh(),this._drawingInitializeListener(),this._initResize()}_initialRenderRefresh(){this.disposeWithMe(this._docSkeletonManagerService.currentSkeleton$.subscribe(e=>{e!=null&&this._refreshDrawing(e)})),this.disposeWithMe(this._docRefreshDrawingsService.refreshDrawings$.subscribe(e=>{e!=null&&this._refreshDrawing(e)}))}_commandExecutedListener(){let e=[V.id,fe.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{if(e.includes(t.id)){let{unitId:e}=t.params,{unitId:n,mainComponent:r}=this._context;if(e!==n)return;let i=this._docSkeletonManagerService.getSkeleton();if(i==null)return;if(this._editorService.isEditor(n)&&n!==a){r==null||r.makeDirty();return}this._refreshDrawing(i)}}))}_initResize(){this.disposeWithMe(ne(this._context.engine.onTransformChange$).pipe(ft(e=>e.type===De.resize),dt(16)).subscribe(()=>{var e;let t=this._docSkeletonManagerService.getSkeleton(),{scene:n}=this._context;(e=n.getTransformer())==null||e.refreshControls(),this._refreshDrawing(t)}))}_refreshDrawing(e){let t=e==null?void 0:e.getSkeletonData(),{mainComponent:n,unitId:r}=this._context,i=n;if(!t)return;let{left:a,top:o,pageLayoutType:s,pageMarginLeft:c,pageMarginTop:l}=i,{pages:u,skeHeaders:d,skeFooters:f}=t,p={};this._liquid.reset();for(let e=0,t=u.length;e<t;e++){let t=u[e],{headerId:n,footerId:i,pageWidth:g}=t;if(n){var m;let e=(m=d.get(n))==null?void 0:m.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,e.marginTop,t.marginLeft)}if(i){var h;let e=(h=f.get(i))==null?void 0:h.get(g);e&&this._calculateDrawingPosition(r,e,a,o,p,t.pageHeight-t.marginBottom+e.marginTop,t.marginLeft)}this._calculateDrawingPosition(r,t,a,o,p,t.marginTop,t.marginLeft),this._liquid.translatePage(t,s,c,l)}let g=Object.values(p),_=g.filter(e=>!e.isMultiTransform),v=g.filter(e=>e.isMultiTransform);_.length>0&&this._drawingManagerService.refreshTransform(_),this._handleMultiDrawingsTransform(v)}_handleMultiDrawingsTransform(e){let{scene:n,unitId:r}=this._context,i=n.getTransformerByCreate();e.forEach(e=>{let t=this._drawingManagerService.getDrawingByParam(e);t!=null&&(t.transform=e.transform,t.transforms=e.transforms,t.isMultiTransform=e.isMultiTransform)});let a=[...i.getSelectedObjectMap().keys()],o=Object.values(this._drawingManagerService.getDrawingData(r,r)).filter(e=>e.isMultiTransform===t.TRUE);this._drawingManagerService.removeNotification(o),e.length>0&&this._drawingManagerService.addNotification(e);for(let e of a){let t=n.getObject(e);t&&i.setSelectedControl(t)}}_calculateDrawingPosition(e,n,r,i,a,o,s){let{skeDrawings:c}=n;this._liquid.translatePagePadding({marginTop:o,marginLeft:s}),c.forEach(n=>{let{aLeft:o,aTop:s,height:c,width:l,angle:u,drawingId:d,drawingOrigin:f}=n,p=f.layoutType===A.WRAP_NONE&&f.behindDoc===t.TRUE,{isMultiTransform:m=t.FALSE}=f,h={left:o+r+this._liquid.x,top:s+i+this._liquid.y,width:l,height:c,angle:u};a[d]==null?a[d]={unitId:e,subUnitId:e,drawingId:d,behindText:p,transform:h,transforms:[h],isMultiTransform:m}:m===t.TRUE&&a[d].transforms.push(h)}),this._liquid.restorePagePadding({marginTop:o,marginLeft:s})}_drawingInitializeListener(){let e=()=>{let e=this._docSkeletonManagerService.getSkeleton();e!=null&&(this._refreshDrawing(e),this._drawingManagerService.initializeNotification(this._context.unitId))};this._lifecycleService.stage>=w.Rendered?this._docSkeletonManagerService.getSkeleton()?e():setTimeout(e,500):this.disposeWithMe(this._lifecycleService.lifecycle$.pipe(ft(e=>e===w.Rendered)).subscribe(e))}};An=Q([Z(1,b(B)),Z(2,g),Z(3,ue),Z(4,G),Z(5,b(Ft)),Z(6,y),Z(7,b(C))],An);let jn=class extends j{constructor(e,t,n,r,i){super(),this._drawingManagerService=e,this._canvasPopManagerService=t,this._renderManagerService=n,this._univerInstanceService=r,this._contextService=i,X(this,`_initImagePopupMenu`,new Set),X(this,`_disposePopups`,[]),this._init()}_init(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._create(e))),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(I.UNIVER_DOC).pipe(gt(this.dispose$)).subscribe(e=>this._dispose(e))),this._univerInstanceService.getAllUnitsForType(I.UNIVER_DOC).forEach(e=>this._create(e))}_dispose(e){let t=e.getUnitId();this._disposePopups.length&&(this._disposePopups.forEach(e=>e.dispose()),this._disposePopups.length=0),this._renderManagerService.removeRender(t)}_create(e){if(!e)return;let t=e.getUnitId();ie(t)||this._renderManagerService.has(t)&&!this._initImagePopupMenu.has(t)&&(this._popupMenuListener(t),this._initImagePopupMenu.add(t))}_hasCropObject(e){let t=e.getAllObjects();for(let e of t)if(e instanceof bt)return!0;return!1}_popupMenuListener(e){var t;let n=(t=this._renderManagerService.getRenderById(e))==null?void 0:t.scene;if(!n)return;let r=n.getTransformerByCreate();if(!r)return;let i=this._disposePopups;this.disposeWithMe(r.createControl$.subscribe(()=>{if(this._hasCropObject(n))return;let e=r.getSelectedObjectMap();if(i.forEach(e=>e.dispose()),i.length=0,e.size>1)return;let t=e.values().next().value;if(!t)return;let a=t.oKey,o=this._drawingManagerService.getDrawingOKey(a);if(!o||o.drawingType===f.DRAWING_DOM)return;let{unitId:s,subUnitId:c,drawingId:l,drawingType:u}=o,d=this._canvasPopManagerService.attachPopupToObject(t,{componentKey:_t,direction:`horizontal`,offset:[2,0],extraProps:{menuItems:this._getImageMenuItems(s,c,l,u)}},s);i.push(this.disposeWithMe(d)),!this._drawingManagerService.getFocusDrawings().find(e=>e.unitId===s&&e.subUnitId===c&&e.drawingId===l)&&this._drawingManagerService.focusDrawing([{unitId:s,subUnitId:c,drawingId:l}])})),this.disposeWithMe(r.clearControl$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0,this._contextService.setContextValue(p,!1),this._drawingManagerService.focusDrawing(null)})),this.disposeWithMe(r.changing$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0})),this.disposeWithMe(r.changeStart$.subscribe(()=>{i.forEach(e=>e.dispose()),i.length=0}))}_getImageMenuItems(e,t,n,r){return[{label:`image-popup.edit`,index:0,commandId:Xt.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.delete`,index:1,commandId:Et.id,commandParams:{unitId:e,drawings:[{unitId:e,subUnitId:t,drawingId:n}]},disable:!1},{label:`image-popup.crop`,index:2,commandId:St.id,commandParams:{unitId:e,subUnitId:t,drawingId:n},disable:!0},{label:`image-popup.reset`,index:3,commandId:xt.id,commandParams:[{unitId:e,subUnitId:t,drawingId:n}],disable:!0}]}};jn=Q([Z(0,G),Z(1,b(ce)),Z(2,U),Z(3,y),Z(4,v)],jn);let Mn=class extends k{constructor(e=ln,t,n,r){super(),this._config=e,this._injector=t,this._renderManagerSrv=n,this._configService=r;let{...i}=L({},ln,this._config);this._configService.setConfig(cn,i)}onStarting(){[[kn],[jn],[gn],[fn],[Ft],[$t],[mn]].forEach(e=>this._injector.add(e))}onReady(){[[It],[An]].forEach(e=>this._renderManagerSrv.registerRenderModule(I.UNIVER_DOC,e)),this._injector.get(fn),this._injector.get(kn),this._injector.get(gn),this._injector.get(mn)}onRendered(){this._injector.get(jn),this._injector.get($t)}};X(Mn,`type`,I.UNIVER_DOC),X(Mn,`pluginName`,`DOC_DRAWING_UI_PLUGIN`),X(Mn,`packageName`,on),X(Mn,`version`,sn),Mn=Q([s(Ct,Ke,oe,ot),Z(1,b(x)),Z(2,U),Z(3,_)],Mn);export{qt as ClearDocDrawingTransformerOperation,en as DOCS_IMAGE_MENU_ID,Dt as DeleteDocDrawingsCommand,$t as DocFloatDomController,Xt as EditDocDrawingOperation,Ot as GroupDocDrawingCommand,kt as InsertDocDrawingCommand,Lt as InsertDocImageCommand,Kt as MoveDocDrawingsCommand,Et as RemoveDocDrawingCommand,At as SetDocDrawingArrangeCommand,Yt as SidebarDocDrawingOperation,jt as UngroupDocDrawingCommand,Mn as UniverDocsDrawingUIPlugin};