@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.
- package/lib/cjs/index.js +37 -1
- package/lib/cjs/locale/ca-ES.js +1 -1
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/es-ES.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/ja-JP.js +1 -1
- package/lib/cjs/locale/ko-KR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/sk-SK.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/index.js +37 -2891
- package/lib/es/locale/ca-ES.js +1 -62
- package/lib/es/locale/en-US.js +1 -62
- package/lib/es/locale/es-ES.js +1 -62
- package/lib/es/locale/fa-IR.js +1 -62
- package/lib/es/locale/fr-FR.js +1 -62
- package/lib/es/locale/ja-JP.js +1 -62
- package/lib/es/locale/ko-KR.js +1 -62
- package/lib/es/locale/ru-RU.js +1 -62
- package/lib/es/locale/sk-SK.js +1 -62
- package/lib/es/locale/vi-VN.js +1 -62
- package/lib/es/locale/zh-CN.js +1 -62
- package/lib/es/locale/zh-TW.js +1 -62
- package/lib/index.css +57 -1
- package/lib/index.js +37 -2891
- package/lib/locale/ca-ES.js +1 -62
- package/lib/locale/en-US.js +1 -62
- package/lib/locale/es-ES.js +1 -62
- package/lib/locale/fa-IR.js +1 -62
- package/lib/locale/fr-FR.js +1 -62
- package/lib/locale/ja-JP.js +1 -62
- package/lib/locale/ko-KR.js +1 -62
- package/lib/locale/ru-RU.js +1 -62
- package/lib/locale/sk-SK.js +1 -62
- package/lib/locale/vi-VN.js +1 -62
- package/lib/locale/zh-CN.js +1 -62
- package/lib/locale/zh-TW.js +1 -62
- package/lib/types/commands/commands/delete-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/group-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/insert-image.command.d.ts +16 -1
- package/lib/types/commands/commands/interfaces.d.ts +17 -2
- package/lib/types/commands/commands/move-drawings.command.d.ts +17 -1
- package/lib/types/commands/commands/remove-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/set-drawing-arrange.command.d.ts +18 -2
- package/lib/types/commands/commands/ungroup-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/update-doc-drawing.command.d.ts +16 -1
- package/lib/types/commands/commands/utils.d.ts +16 -1
- package/lib/types/commands/operations/clear-drawing-transformer.operation.d.ts +16 -1
- package/lib/types/commands/operations/edit-doc-drawing.operation.d.ts +16 -1
- package/lib/types/commands/operations/open-drawing-panel.operation.d.ts +16 -1
- package/lib/types/controllers/doc-drawing-notification.controller.d.ts +15 -0
- package/lib/types/controllers/doc-drawing-printing.controller.d.ts +15 -0
- package/lib/types/controllers/doc-drawing-transformer-update.controller.d.ts +15 -0
- package/lib/types/controllers/doc-drawing.controller.d.ts +15 -0
- package/lib/types/controllers/doc-float-dom.controller.d.ts +21 -3
- package/lib/types/controllers/render-controllers/doc-drawing-transform-update.controller.d.ts +18 -2
- package/lib/types/controllers/render-controllers/doc-drawing-update.render-controller.d.ts +19 -2
- package/lib/types/controllers/shortcuts/drawing.shortcut.d.ts +18 -3
- package/lib/types/locale/ca-ES.d.ts +16 -1
- package/lib/types/locale/es-ES.d.ts +16 -1
- package/lib/types/locale/fa-IR.d.ts +16 -1
- package/lib/types/locale/fr-FR.d.ts +16 -1
- package/lib/types/locale/ja-JP.d.ts +16 -1
- package/lib/types/locale/ko-KR.d.ts +16 -1
- package/lib/types/locale/ru-RU.d.ts +16 -1
- package/lib/types/locale/sk-SK.d.ts +16 -1
- package/lib/types/locale/vi-VN.d.ts +16 -1
- package/lib/types/locale/zh-CN.d.ts +16 -1
- package/lib/types/locale/zh-TW.d.ts +16 -1
- package/lib/types/menu/drawing-popup-menu.controller.d.ts +15 -0
- package/lib/types/menu/image.menu.d.ts +17 -2
- package/lib/types/menu/schema.d.ts +16 -1
- package/lib/types/plugin.d.ts +16 -1
- package/lib/types/services/doc-refresh-drawings.service.d.ts +18 -3
- package/lib/types/views/doc-image-panel/DocDrawingPosition.d.ts +16 -1
- package/lib/types/views/doc-image-panel/DocDrawingTextWrap.d.ts +16 -1
- package/lib/types/views/printing-float-dom/index.d.ts +17 -2
- package/lib/umd/index.js +37 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +15 -14
package/lib/index.js
CHANGED
|
@@ -1,2891 +1,37 @@
|
|
|
1
|
-
var Pn = Object.defineProperty;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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};
|