@univerjs/docs-drawing-ui 0.3.0-alpha.0 → 0.3.0-nightly.202410101606

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/es/index.js CHANGED
@@ -1,2481 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
- var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { CommandType, ICommandService, IUniverInstanceService, TextX, JSONX, MemoryCursor, TextXActionType, LocaleService, OnLifecycle, LifecycleStages, Inject, RxDisposable, UniverInstanceType, toDisposable, FOCUSING_COMMON_DRAWINGS, IContextService, IUndoRedoService, BuildTextUtils, Tools, Disposable, BooleanNumber, PositionedObjectLayoutType, WrapTextType, ObjectRelativeFromH, ObjectRelativeFromV, useDependency, Direction, FOCUSING_UNIVER_EDITOR, LifecycleService, fromEventSubject, UndoCommand, RedoCommand, throttle, COLORS, DependentOn, Injector, Plugin, IConfigService } from "@univerjs/core";
6
- import { ImageCropperObject, COMPONENT_IMAGE_POPUP_MENU, OpenImageCropOperation, ImageResetSizeOperation, DrawingCommonPanel, UniverDrawingUIPlugin } from "@univerjs/drawing-ui";
7
- import { IDrawingManagerService, ArrangeTypeEnum, DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, ImageUploadStatusType, DRAWING_IMAGE_ALLOW_SIZE, getImageSize, DrawingTypeEnum, getDrawingShapeKeyByDrawingSearch, IImageIoService, DRAWING_IMAGE_WIDTH_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, UniverDrawingPlugin } from "@univerjs/drawing";
8
- import { IDocDrawingService, UniverDocsDrawingPlugin } from "@univerjs/docs-drawing";
9
- import { IRenderManagerService, DocumentEditArea, Liquid, TRANSFORM_CHANGE_OBSERVABLE_TYPE, PageLayoutType, DocumentSkeletonPageType, Vector2, Rect, getColor } from "@univerjs/engine-render";
10
- import { takeUntil, BehaviorSubject, Observable, filter, debounceTime } from "rxjs";
11
- import { DocSelectionRenderService, getRichTextEditPath, DocCanvasPopManagerService, getCustomBlockIdsInSelections, docDrawingPositionToTransform, IEditorService, SetDocZoomRatioOperation, NodePositionConvertToCursor, getOneTextSelectionRange, getAnchorBounding, TEXT_RANGE_LAYER_INDEX, getDocObject } from "@univerjs/docs-ui";
12
- import { RichTextEditingMutation, DocSelectionManagerService, DocSkeletonManagerService } from "@univerjs/docs";
13
- import { ISidebarService, IMessageService, ILocalFileService, MenuItemType, getMenuHiddenObservable, KeyCode, RibbonStartGroup, ComponentManager, IMenuManagerService, IShortcutService } from "@univerjs/ui";
14
- import { MessageType, RadioGroup, Radio, InputNumber, Select, Checkbox } from "@univerjs/design";
15
- import React, { forwardRef, useRef, createElement, useState, useEffect } from "react";
16
- import clsx from "clsx";
17
- const RemoveDocDrawingCommand = {
18
- id: "doc.command.remove-doc-image",
19
- type: CommandType.COMMAND,
20
- // eslint-disable-next-line max-lines-per-function
21
- handler: /* @__PURE__ */ __name((accessor, params) => {
22
- var _a8, _b, _c, _d;
23
- const commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), renderManagerService = accessor.get(IRenderManagerService), documentDataModel = univerInstanceService.getCurrentUniverDocInstance();
24
- if (params == null || documentDataModel == null)
25
- return !1;
26
- const docSelectionRenderService = renderManagerService.getRenderById(params.unitId).with(DocSelectionRenderService), { drawings: removeDrawings } = params, segmentId = (_a8 = docSelectionRenderService.getSegment()) != null ? _a8 : "", textX = new TextX(), jsonX = JSONX.getInstance(), customBlocks = (_c = (_b = documentDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _b.customBlocks) != null ? _c : [], removeCustomBlocks = removeDrawings.map((drawing) => customBlocks.find((customBlock) => customBlock.blockId === drawing.drawingId)).filter((block) => !!block).sort((a, b) => a.startIndex > b.startIndex ? 1 : -1), unitId = removeDrawings[0].unitId, memoryCursor = new MemoryCursor();
27
- memoryCursor.reset();
28
- const cursorIndex = removeCustomBlocks[0].startIndex, textRanges = [
29
- {
30
- startOffset: cursorIndex,
31
- endOffset: cursorIndex
32
- }
33
- ], doMutation = {
34
- id: RichTextEditingMutation.id,
35
- params: {
36
- unitId,
37
- actions: [],
38
- textRanges
39
- }
40
- }, rawActions = [];
41
- for (const block of removeCustomBlocks) {
42
- const { startIndex } = block;
43
- startIndex > memoryCursor.cursor && textX.push({
44
- t: TextXActionType.RETAIN,
45
- len: startIndex - memoryCursor.cursor,
46
- segmentId: ""
47
- }), textX.push({
48
- t: TextXActionType.DELETE,
49
- len: 1,
50
- line: 0,
51
- segmentId: ""
52
- }), memoryCursor.moveCursorTo(startIndex + 1);
53
- }
54
- const path = getRichTextEditPath(documentDataModel, segmentId);
55
- rawActions.push(jsonX.editOp(textX.serialize(), path));
56
- for (const block of removeCustomBlocks) {
57
- const { blockId } = block, drawing = ((_d = documentDataModel.getDrawings()) != null ? _d : {})[blockId], drawingIndex = documentDataModel.getDrawingsOrder().indexOf(blockId), removeDrawingAction = jsonX.removeOp(["drawings", blockId], drawing), removeDrawingOrderAction = jsonX.removeOp(["drawingsOrder", drawingIndex], blockId);
58
- rawActions.push(removeDrawingAction), rawActions.push(removeDrawingOrderAction);
59
- }
60
- return doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
61
- }, "handler")
62
- }, COMPONENT_DOC_DRAWING_PANEL = "COMPONENT_DOC_DRAWING_PANEL", SidebarDocDrawingOperation = {
63
- id: "sidebar.operation.doc-image",
64
- type: CommandType.COMMAND,
65
- handler: /* @__PURE__ */ __name(async (accessor, params) => {
66
- const sidebarService = accessor.get(ISidebarService), localeService = accessor.get(LocaleService), drawingManagerService = accessor.get(IDrawingManagerService);
67
- switch (params.value) {
68
- case "open":
69
- sidebarService.open({
70
- header: { title: localeService.t("docImage.panel.title") },
71
- children: { label: COMPONENT_DOC_DRAWING_PANEL },
72
- onClose: /* @__PURE__ */ __name(() => {
73
- drawingManagerService.focusDrawing(null);
74
- }, "onClose"),
75
- width: 360
76
- });
77
- break;
78
- case "close":
79
- default:
80
- sidebarService.close();
81
- break;
82
- }
83
- return !0;
84
- }, "handler")
85
- }, EditDocDrawingOperation = {
86
- id: "doc.operation.edit-doc-image",
87
- type: CommandType.OPERATION,
88
- handler: /* @__PURE__ */ __name((accessor, params) => {
89
- const drawingManagerService = accessor.get(IDrawingManagerService), commandService = accessor.get(ICommandService);
90
- return params == null ? !1 : (drawingManagerService.focusDrawing([params]), commandService.executeCommand(SidebarDocDrawingOperation.id, { value: "open" }), !0);
91
- }, "handler")
92
- };
93
- var __defProp$6 = Object.defineProperty, __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor, __decorateClass$6 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
94
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
95
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
96
- return kind && result && __defProp$6(target, key, result), result;
97
- }, "__decorateClass$6"), __decorateParam$6 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$6"), _a;
98
- let DocDrawingPopupMenuController = (_a = class extends RxDisposable {
99
- constructor(_drawingManagerService, _canvasPopManagerService, _renderManagerService, _univerInstanceService, _contextService) {
100
- super();
101
- __publicField(this, "_initImagePopupMenu", /* @__PURE__ */ new Set());
102
- this._drawingManagerService = _drawingManagerService, this._canvasPopManagerService = _canvasPopManagerService, this._renderManagerService = _renderManagerService, this._univerInstanceService = _univerInstanceService, this._contextService = _contextService, this._init();
103
- }
104
- _init() {
105
- this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((documentDataModel) => this._create(documentDataModel)), this._univerInstanceService.getTypeOfUnitDisposed$(UniverInstanceType.UNIVER_DOC).pipe(takeUntil(this.dispose$)).subscribe((documentDataModel) => this._dispose(documentDataModel)), this._univerInstanceService.getAllUnitsForType(UniverInstanceType.UNIVER_DOC).forEach((documentDataModel) => this._create(documentDataModel));
106
- }
107
- _dispose(documentDataModel) {
108
- const unitId = documentDataModel.getUnitId();
109
- this._renderManagerService.removeRender(unitId);
110
- }
111
- _create(documentDataModel) {
112
- if (!documentDataModel)
113
- return;
114
- const unitId = documentDataModel.getUnitId();
115
- this._renderManagerService.has(unitId) && !this._initImagePopupMenu.has(unitId) && (this._popupMenuListener(unitId), this._initImagePopupMenu.add(unitId));
116
- }
117
- _hasCropObject(scene) {
118
- const objects = scene.getAllObjects();
119
- for (const object of objects)
120
- if (object instanceof ImageCropperObject)
121
- return !0;
122
- return !1;
123
- }
124
- // eslint-disable-next-line max-lines-per-function
125
- _popupMenuListener(unitId) {
126
- var _a8;
127
- const scene = (_a8 = this._renderManagerService.getRenderById(unitId)) == null ? void 0 : _a8.scene;
128
- if (!scene)
129
- return;
130
- const transformer = scene.getTransformerByCreate();
131
- if (!transformer)
132
- return;
133
- const disposePopups = [];
134
- this.disposeWithMe(
135
- toDisposable(
136
- transformer.createControl$.subscribe(() => {
137
- if (this._hasCropObject(scene))
138
- return;
139
- const selectedObjects = transformer.getSelectedObjectMap();
140
- if (disposePopups.forEach((dispose) => dispose.dispose()), disposePopups.length = 0, selectedObjects.size > 1)
141
- return;
142
- const object = selectedObjects.values().next().value;
143
- if (!object)
144
- return;
145
- const oKey = object.oKey, drawingParam = this._drawingManagerService.getDrawingOKey(oKey);
146
- if (!drawingParam)
147
- return;
148
- const { unitId: unitId2, subUnitId, drawingId } = drawingParam, popup = this._canvasPopManagerService.attachPopupToObject(
149
- object,
150
- {
151
- componentKey: COMPONENT_IMAGE_POPUP_MENU,
152
- direction: "horizontal",
153
- offset: [2, 0],
154
- extraProps: {
155
- menuItems: this._getImageMenuItems(unitId2, subUnitId, drawingId)
156
- }
157
- },
158
- unitId2
159
- );
160
- disposePopups.push(this.disposeWithMe(popup)), !this._drawingManagerService.getFocusDrawings().find((drawing) => drawing.unitId === unitId2 && drawing.subUnitId === subUnitId && drawing.drawingId === drawingId) && this._drawingManagerService.focusDrawing([{
161
- unitId: unitId2,
162
- subUnitId,
163
- drawingId
164
- }]);
165
- })
166
- )
167
- ), this.disposeWithMe(
168
- toDisposable(
169
- transformer.clearControl$.subscribe(() => {
170
- disposePopups.forEach((dispose) => dispose.dispose()), disposePopups.length = 0, this._contextService.setContextValue(FOCUSING_COMMON_DRAWINGS, !1), this._drawingManagerService.focusDrawing(null);
171
- })
172
- )
173
- ), this.disposeWithMe(
174
- toDisposable(
175
- transformer.changing$.subscribe(() => {
176
- disposePopups.forEach((dispose) => dispose.dispose()), disposePopups.length = 0;
177
- })
178
- )
179
- ), this.disposeWithMe(
180
- toDisposable(
181
- transformer.changeStart$.subscribe(() => {
182
- disposePopups.forEach((dispose) => dispose.dispose()), disposePopups.length = 0;
183
- })
184
- )
185
- );
186
- }
187
- _getImageMenuItems(unitId, subUnitId, drawingId) {
188
- return [
189
- {
190
- label: "image-popup.edit",
191
- index: 0,
192
- commandId: EditDocDrawingOperation.id,
193
- commandParams: { unitId, subUnitId, drawingId },
194
- disable: !1
195
- },
196
- {
197
- label: "image-popup.delete",
198
- index: 1,
199
- commandId: RemoveDocDrawingCommand.id,
200
- commandParams: { unitId, drawings: [{ unitId, subUnitId, drawingId }] },
201
- disable: !1
202
- },
203
- {
204
- label: "image-popup.crop",
205
- index: 2,
206
- commandId: OpenImageCropOperation.id,
207
- commandParams: { unitId, subUnitId, drawingId },
208
- disable: !0
209
- // TODO: @JOCS, feature is not ready.
210
- },
211
- {
212
- label: "image-popup.reset",
213
- index: 3,
214
- commandId: ImageResetSizeOperation.id,
215
- commandParams: [{ unitId, subUnitId, drawingId }],
216
- disable: !0
217
- // TODO: @JOCS, feature is not ready.
218
- }
219
- ];
220
- }
221
- }, __name(_a, "DocDrawingPopupMenuController"), _a);
222
- DocDrawingPopupMenuController = __decorateClass$6([
223
- OnLifecycle(LifecycleStages.Rendered, DocDrawingPopupMenuController),
224
- __decorateParam$6(0, IDrawingManagerService),
225
- __decorateParam$6(1, Inject(DocCanvasPopManagerService)),
226
- __decorateParam$6(2, IRenderManagerService),
227
- __decorateParam$6(3, IUniverInstanceService),
228
- __decorateParam$6(4, IContextService)
229
- ], DocDrawingPopupMenuController);
230
- var __assign = function() {
231
- return __assign = Object.assign || function(t) {
232
- for (var s, i = 1, n = arguments.length; i < n; i++) {
233
- s = arguments[i];
234
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);
235
- }
236
- return t;
237
- }, __assign.apply(this, arguments);
238
- }, __rest = function(s, e) {
239
- var t = {};
240
- for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
241
- if (s != null && typeof Object.getOwnPropertySymbols == "function")
242
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
243
- e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
244
- return t;
245
- }, IconBase = forwardRef(function(props, ref) {
246
- var icon = props.icon, id = props.id, className = props.className, extend = props.extend, restProps = __rest(props, ["icon", "id", "className", "extend"]), cls = "univerjs-icon univerjs-icon-".concat(id, " ").concat(className || "").trim(), idSuffix = useRef("_".concat(generateShortUuid()));
247
- return render(icon, "".concat(id), { defIds: icon.defIds, idSuffix: idSuffix.current }, __assign({ ref, className: cls }, restProps), extend);
248
- });
249
- function render(node, id, runtimeProps, rootProps, extend) {
250
- return createElement(node.tag, __assign(__assign({ key: id }, replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend)), rootProps), (replaceRuntimeIdsInDefs(node, runtimeProps).children || []).map(function(child, index) {
251
- return render(child, "".concat(id, "-").concat(node.tag, "-").concat(index), runtimeProps, void 0, extend);
252
- }));
253
- }
254
- __name(render, "render");
255
- function replaceRuntimeIdsAndExtInAttrs(node, runtimeProps, extend) {
256
- var attrs = __assign({}, node.attrs);
257
- extend != null && extend.colorChannel1 && attrs.fill === "colorChannel1" && (attrs.fill = extend.colorChannel1);
258
- var defIds = runtimeProps.defIds;
259
- return !defIds || defIds.length === 0 || (node.tag === "use" && attrs["xlink:href"] && (attrs["xlink:href"] = attrs["xlink:href"] + runtimeProps.idSuffix), Object.entries(attrs).forEach(function(_a8) {
260
- var key = _a8[0], value = _a8[1];
261
- typeof value == "string" && (attrs[key] = value.replace(/url\(#(.*)\)/, "url(#$1".concat(runtimeProps.idSuffix, ")")));
262
- })), attrs;
263
- }
264
- __name(replaceRuntimeIdsAndExtInAttrs, "replaceRuntimeIdsAndExtInAttrs");
265
- function replaceRuntimeIdsInDefs(node, runtimeProps) {
266
- var _a8, defIds = runtimeProps.defIds;
267
- return !defIds || defIds.length === 0 ? node : node.tag === "defs" && (!((_a8 = node.children) === null || _a8 === void 0) && _a8.length) ? __assign(__assign({}, node), { children: node.children.map(function(child) {
268
- return typeof child.attrs.id == "string" && defIds && defIds.indexOf(child.attrs.id) > -1 ? __assign(__assign({}, child), { attrs: __assign(__assign({}, child.attrs), { id: child.attrs.id + runtimeProps.idSuffix }) }) : child;
269
- }) }) : node;
270
- }
271
- __name(replaceRuntimeIdsInDefs, "replaceRuntimeIdsInDefs");
272
- function generateShortUuid() {
273
- return Math.random().toString(36).substring(2, 8);
274
- }
275
- __name(generateShortUuid, "generateShortUuid");
276
- IconBase.displayName = "UniverIcon";
277
- var element = { tag: "svg", attrs: { fill: "none", viewBox: "0 0 16 16", width: "1em", height: "1em" }, children: [{ tag: "path", attrs: { fill: "currentColor", d: "M2.2498 3.65005C2.2498 2.87685 2.87661 2.25005 3.64981 2.25005H7.9998C8.33118 2.25005 8.5998 1.98142 8.5998 1.65005C8.5998 1.31868 8.33118 1.05005 7.9998 1.05005H3.64981C2.21387 1.05005 1.0498 2.21411 1.0498 3.65005V12.35C1.0498 13.786 2.21386 14.95 3.6498 14.95H12.3498C13.7857 14.95 14.9498 13.786 14.9498 12.3501V8.00005C14.9498 7.66868 14.6812 7.40005 14.3498 7.40005C14.0184 7.40005 13.7498 7.66868 13.7498 8.00005V9.23974L12.2385 8.1063C11.7252 7.72129 11.0068 7.7723 10.5531 8.22605L9.00869 9.77041L6.73916 7.8251C6.24387 7.40055 5.5095 7.41278 5.02864 7.85359L2.2498 10.4009V3.65005ZM2.2498 12.0287V12.35C2.2498 13.1232 2.87661 13.75 3.6498 13.75H12.3498C13.123 13.75 13.7498 13.1232 13.7498 12.3501V10.7397L11.5186 9.06631C11.4829 9.03956 11.433 9.04314 11.4016 9.07458L9.92249 10.5537L11.1015 11.5642C11.3531 11.7799 11.3822 12.1587 11.1666 12.4103C10.9509 12.6619 10.5721 12.691 10.3205 12.4753L5.9582 8.7362C5.92384 8.70674 5.87288 8.70758 5.83952 8.73816L2.2498 12.0287Z", fillRule: "evenodd", clipRule: "evenodd" } }, { tag: "path", attrs: { fill: "currentColor", d: "M11.8097 1.14783C12.1411 1.14783 12.4097 1.41646 12.4097 1.74783V3.297H14.1541C14.4855 3.297 14.7541 3.56563 14.7541 3.897C14.7541 4.22837 14.4855 4.497 14.1541 4.497H12.4097V6.24167C12.4097 6.57304 12.1411 6.84167 11.8097 6.84167C11.4783 6.84167 11.2097 6.57304 11.2097 6.24167V4.497H9.6603C9.32893 4.497 9.0603 4.22837 9.0603 3.897C9.0603 3.56563 9.32893 3.297 9.6603 3.297H11.2097V1.74783C11.2097 1.41646 11.4783 1.14783 11.8097 1.14783Z" } }] }, AddImageSingle = forwardRef(function(props, ref) {
278
- return createElement(IconBase, Object.assign({}, props, {
279
- id: "add-image-single",
280
- ref,
281
- icon: element
282
- }));
283
- });
284
- AddImageSingle.displayName = "AddImageSingle";
285
- const GroupDocDrawingCommand = {
286
- id: "doc.command.group-doc-image",
287
- type: CommandType.COMMAND,
288
- handler: /* @__PURE__ */ __name((accessor, params) => {
289
- accessor.get(ICommandService), accessor.get(IUndoRedoService);
290
- const docDrawingService = accessor.get(IDocDrawingService);
291
- if (!params) return !1;
292
- const unitIds = [];
293
- return params.forEach(({ parent, children }) => {
294
- unitIds.push(parent.unitId), children.forEach((child) => {
295
- unitIds.push(child.unitId);
296
- });
297
- }), docDrawingService.getGroupDrawingOp(params), !1;
298
- }, "handler")
299
- }, InsertDocDrawingCommand = {
300
- id: "doc.command.insert-doc-image",
301
- type: CommandType.COMMAND,
302
- // eslint-disable-next-line max-lines-per-function
303
- handler: /* @__PURE__ */ __name((accessor, params) => {
304
- var _a8, _b, _c, _d;
305
- if (params == null)
306
- return !1;
307
- const commandService = accessor.get(ICommandService), docSelectionManagerService = accessor.get(DocSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService), activeTextRange = docSelectionManagerService.getActiveTextRange(), documentDataModel = univerInstanceService.getCurrentUniverDocInstance();
308
- if (activeTextRange == null || documentDataModel == null)
309
- return !1;
310
- const unitId = documentDataModel.getUnitId(), { drawings } = params, { collapsed, startOffset, segmentId } = activeTextRange, body = documentDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();
311
- if (body == null)
312
- return !1;
313
- const textX = new TextX(), jsonX = JSONX.getInstance(), rawActions = [], drawingOrderLength = (_b = (_a8 = documentDataModel.getSnapshot().drawingsOrder) == null ? void 0 : _a8.length) != null ? _b : 0;
314
- let removeDrawingLen = 0;
315
- if (collapsed)
316
- startOffset > 0 && textX.push({
317
- t: TextXActionType.RETAIN,
318
- len: startOffset,
319
- segmentId
320
- });
321
- else {
322
- const { dos } = BuildTextUtils.selection.getDeleteActions(activeTextRange, segmentId, 0, body);
323
- textX.push(...dos);
324
- const removedCustomBlockIds = getCustomBlockIdsInSelections(body, [activeTextRange]), drawings2 = (_c = documentDataModel.getDrawings()) != null ? _c : {}, drawingOrder = (_d = documentDataModel.getDrawingsOrder()) != null ? _d : [], sortedRemovedCustomBlockIds = removedCustomBlockIds.sort((a, b) => drawingOrder.indexOf(a) > drawingOrder.indexOf(b) ? -1 : drawingOrder.indexOf(a) < drawingOrder.indexOf(b) ? 1 : 0);
325
- if (sortedRemovedCustomBlockIds.length > 0)
326
- for (const blockId of sortedRemovedCustomBlockIds) {
327
- const drawing = drawings2[blockId], drawingIndex = drawingOrder.indexOf(blockId);
328
- if (drawing == null || drawingIndex < 0)
329
- continue;
330
- const removeDrawingAction = jsonX.removeOp(["drawings", blockId], drawing), removeDrawingOrderAction = jsonX.removeOp(["drawingsOrder", drawingIndex], blockId);
331
- rawActions.push(removeDrawingAction), rawActions.push(removeDrawingOrderAction), removeDrawingLen++;
332
- }
333
- }
334
- textX.push({
335
- t: TextXActionType.INSERT,
336
- body: {
337
- dataStream: "\b".repeat(drawings.length),
338
- customBlocks: drawings.map((drawing, i) => ({
339
- startIndex: i,
340
- blockId: drawing.drawingId
341
- }))
342
- },
343
- len: drawings.length,
344
- line: 0,
345
- segmentId
346
- });
347
- const path = getRichTextEditPath(documentDataModel, segmentId), placeHolderAction = jsonX.editOp(textX.serialize(), path);
348
- rawActions.push(placeHolderAction);
349
- for (const drawing of drawings) {
350
- const { drawingId } = drawing, addDrawingAction = jsonX.insertOp(["drawings", drawingId], drawing), addDrawingOrderAction = jsonX.insertOp(["drawingsOrder", drawingOrderLength - removeDrawingLen], drawingId);
351
- rawActions.push(addDrawingAction), rawActions.push(addDrawingOrderAction);
352
- }
353
- const doMutation = {
354
- id: RichTextEditingMutation.id,
355
- params: {
356
- unitId,
357
- actions: [],
358
- textRanges: []
359
- }
360
- };
361
- return doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
362
- }, "handler")
363
- }, SetDocDrawingArrangeCommand = {
364
- id: "doc.command.set-drawing-arrange",
365
- type: CommandType.COMMAND,
366
- handler: /* @__PURE__ */ __name((accessor, params) => {
367
- const commandService = accessor.get(ICommandService), docDrawingService = accessor.get(IDocDrawingService);
368
- if (params == null)
369
- return !1;
370
- const { unitId, subUnitId, drawingIds, arrangeType } = params, drawingOrderMapParam = { unitId, subUnitId, drawingIds };
371
- let jsonOp;
372
- if (arrangeType === ArrangeTypeEnum.forward ? jsonOp = docDrawingService.getForwardDrawingsOp(drawingOrderMapParam) : arrangeType === ArrangeTypeEnum.backward ? jsonOp = docDrawingService.getBackwardDrawingOp(drawingOrderMapParam) : arrangeType === ArrangeTypeEnum.front ? jsonOp = docDrawingService.getFrontDrawingsOp(drawingOrderMapParam) : arrangeType === ArrangeTypeEnum.back && (jsonOp = docDrawingService.getBackDrawingsOp(drawingOrderMapParam)), jsonOp == null)
373
- return !1;
374
- const { redo } = jsonOp;
375
- if (redo == null)
376
- return !1;
377
- const rawActions = [];
378
- let redoCopy = Tools.deepClone(redo);
379
- redoCopy = redoCopy.slice(3), redoCopy.unshift("drawingsOrder"), rawActions.push(redoCopy);
380
- const doMutation = {
381
- id: RichTextEditingMutation.id,
382
- params: {
383
- unitId,
384
- actions: [],
385
- textRanges: null
386
- }
387
- };
388
- return doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
389
- }, "handler")
390
- }, UngroupDocDrawingCommand = {
391
- id: "doc.command.ungroup-doc-image",
392
- type: CommandType.COMMAND,
393
- handler: /* @__PURE__ */ __name((accessor, params) => {
394
- accessor.get(ICommandService), accessor.get(IUndoRedoService);
395
- const docDrawingService = accessor.get(IDocDrawingService);
396
- if (!params) return !1;
397
- const unitIds = [];
398
- return params.forEach(({ parent, children }) => {
399
- unitIds.push(parent.unitId), children.forEach((child) => {
400
- unitIds.push(child.unitId);
401
- });
402
- }), docDrawingService.getUngroupDrawingOp(params), !1;
403
- }, "handler")
404
- }, _DocRefreshDrawingsService = class _DocRefreshDrawingsService {
405
- constructor() {
406
- __publicField(this, "_refreshDrawings$", new BehaviorSubject(null));
407
- __publicField(this, "refreshDrawings$", this._refreshDrawings$.asObservable());
408
- }
409
- refreshDrawings(skeleton) {
410
- this._refreshDrawings$.next(skeleton);
411
- }
412
- };
413
- __name(_DocRefreshDrawingsService, "DocRefreshDrawingsService");
414
- let DocRefreshDrawingsService = _DocRefreshDrawingsService;
415
- var __defProp$5 = Object.defineProperty, __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor, __decorateClass$5 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
416
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
417
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
418
- return kind && result && __defProp$5(target, key, result), result;
419
- }, "__decorateClass$5"), __decorateParam$5 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$5"), _a2;
420
- let DocDrawingUpdateRenderController = (_a2 = class extends Disposable {
421
- constructor(_context, _commandService, _docSelectionManagerService, _renderManagerSrv, _imageIoService, _docDrawingService, _drawingManagerService, _contextService, _messageService, _localeService, _docSelectionRenderService, _docRefreshDrawingsService, _fileOpenerService) {
422
- super(), this._context = _context, this._commandService = _commandService, this._docSelectionManagerService = _docSelectionManagerService, this._renderManagerSrv = _renderManagerSrv, this._imageIoService = _imageIoService, this._docDrawingService = _docDrawingService, this._drawingManagerService = _drawingManagerService, this._contextService = _contextService, this._messageService = _messageService, this._localeService = _localeService, this._docSelectionRenderService = _docSelectionRenderService, this._docRefreshDrawingsService = _docRefreshDrawingsService, this._fileOpenerService = _fileOpenerService, this._updateOrderListener(), this._groupDrawingListener(), this._focusDrawingListener(), this._editAreaChangeListener();
423
- }
424
- async insertDocImage() {
425
- const files = await this._fileOpenerService.openFile({
426
- multiple: !0,
427
- accept: DRAWING_IMAGE_ALLOW_IMAGE_LIST.map((image) => `.${image.replace("image/", "")}`).join(",")
428
- }), fileLength = files.length;
429
- return fileLength > DRAWING_IMAGE_COUNT_LIMIT ? (this._messageService.show({
430
- type: MessageType.Error,
431
- content: this._localeService.t("update-status.exceedMaxCount", String(DRAWING_IMAGE_COUNT_LIMIT))
432
- }), !1) : fileLength === 0 ? !1 : (await this._insertFloatImages(files), !0);
433
- }
434
- // eslint-disable-next-line max-lines-per-function
435
- async _insertFloatImages(files) {
436
- let imageParams = [];
437
- try {
438
- imageParams = await Promise.all(files.map((file) => this._imageIoService.saveImage(file)));
439
- } catch (error) {
440
- const type = error.message;
441
- let content = "";
442
- switch (type) {
443
- case ImageUploadStatusType.ERROR_EXCEED_SIZE:
444
- content = this._localeService.t("update-status.exceedMaxSize", String(DRAWING_IMAGE_ALLOW_SIZE / (1024 * 1024)));
445
- break;
446
- case ImageUploadStatusType.ERROR_IMAGE_TYPE:
447
- content = this._localeService.t("update-status.invalidImageType");
448
- break;
449
- case ImageUploadStatusType.ERROR_IMAGE:
450
- content = this._localeService.t("update-status.invalidImage");
451
- break;
452
- }
453
- this._messageService.show({
454
- type: MessageType.Error,
455
- content
456
- });
457
- }
458
- if (imageParams.length === 0)
459
- return;
460
- const { unitId } = this._context, docDrawingParams = [];
461
- for (const imageParam of imageParams) {
462
- if (imageParam == null)
463
- continue;
464
- const { imageId, imageSourceType, source, base64Cache } = imageParam, { width, height, image } = await getImageSize(base64Cache || "");
465
- this._imageIoService.addImageSourceCache(imageId, imageSourceType, image);
466
- let scale = 1;
467
- if (width > DRAWING_IMAGE_WIDTH_LIMIT || height > DRAWING_IMAGE_HEIGHT_LIMIT) {
468
- const scaleWidth = DRAWING_IMAGE_WIDTH_LIMIT / width, scaleHeight = DRAWING_IMAGE_HEIGHT_LIMIT / height;
469
- scale = Math.min(scaleWidth, scaleHeight);
470
- }
471
- const docTransform = this._getImagePosition(width * scale, height * scale);
472
- if (docTransform == null)
473
- return;
474
- const docDrawingParam = {
475
- unitId,
476
- subUnitId: unitId,
477
- drawingId: imageId,
478
- drawingType: DrawingTypeEnum.DRAWING_IMAGE,
479
- imageSourceType,
480
- source,
481
- transform: docDrawingPositionToTransform(docTransform),
482
- docTransform,
483
- behindDoc: BooleanNumber.FALSE,
484
- title: "",
485
- description: "",
486
- layoutType: PositionedObjectLayoutType.INLINE,
487
- // Insert inline drawing by default.
488
- wrapText: WrapTextType.BOTH_SIDES,
489
- distB: 0,
490
- distL: 0,
491
- distR: 0,
492
- distT: 0
493
- };
494
- this._isInsertInHeaderFooter() && (docDrawingParam.isMultiTransform = BooleanNumber.TRUE, docDrawingParam.transforms = docDrawingParam.transform ? [docDrawingParam.transform] : null), docDrawingParams.push(docDrawingParam);
495
- }
496
- this._commandService.executeCommand(InsertDocDrawingCommand.id, {
497
- unitId,
498
- drawings: docDrawingParams
499
- });
500
- }
501
- _isInsertInHeaderFooter() {
502
- var _a8;
503
- const { unitId } = this._context, viewModel = (_a8 = this._renderManagerSrv.getRenderById(unitId)) == null ? void 0 : _a8.with(DocSkeletonManagerService).getViewModel(), editArea = viewModel == null ? void 0 : viewModel.getEditArea();
504
- return editArea === DocumentEditArea.HEADER || editArea === DocumentEditArea.FOOTER;
505
- }
506
- _getImagePosition(imageWidth, imageHeight) {
507
- const activeTextRange = this._docSelectionRenderService.getActiveTextRange(), position = (activeTextRange == null ? void 0 : activeTextRange.getAbsolutePosition()) || {
508
- left: 0,
509
- top: 0
510
- };
511
- return {
512
- size: {
513
- width: imageWidth,
514
- height: imageHeight
515
- },
516
- positionH: {
517
- relativeFrom: ObjectRelativeFromH.PAGE,
518
- posOffset: position.left
519
- },
520
- positionV: {
521
- relativeFrom: ObjectRelativeFromV.MARGIN,
522
- posOffset: position.top
523
- },
524
- angle: 0
525
- };
526
- }
527
- _updateOrderListener() {
528
- this._drawingManagerService.featurePluginOrderUpdate$.subscribe((params) => {
529
- const { unitId, subUnitId, drawingIds, arrangeType } = params;
530
- this._commandService.executeCommand(SetDocDrawingArrangeCommand.id, {
531
- unitId,
532
- subUnitId,
533
- drawingIds,
534
- arrangeType
535
- });
536
- });
537
- }
538
- _groupDrawingListener() {
539
- this._drawingManagerService.featurePluginGroupUpdate$.subscribe((params) => {
540
- this._commandService.executeCommand(GroupDocDrawingCommand.id, params);
541
- }), this._drawingManagerService.featurePluginUngroupUpdate$.subscribe((params) => {
542
- this._commandService.executeCommand(UngroupDocDrawingCommand.id, params);
543
- });
544
- }
545
- _getCurrentSceneAndTransformer() {
546
- const { scene, mainComponent } = this._context;
547
- if (scene == null || mainComponent == null)
548
- return;
549
- const transformer = scene.getTransformerByCreate(), { docsLeft, docsTop } = mainComponent.getOffsetConfig();
550
- return { scene, transformer, docsLeft, docsTop };
551
- }
552
- _focusDrawingListener() {
553
- this.disposeWithMe(
554
- this._drawingManagerService.focus$.subscribe((params) => {
555
- var _a8;
556
- const { transformer, docsLeft, docsTop } = (_a8 = this._getCurrentSceneAndTransformer()) != null ? _a8 : {};
557
- if (params == null || params.length === 0)
558
- this._contextService.setContextValue(FOCUSING_COMMON_DRAWINGS, !1), this._docDrawingService.focusDrawing([]), transformer && transformer.resetProps({
559
- zeroTop: 0,
560
- zeroLeft: 0
561
- });
562
- else {
563
- this._contextService.setContextValue(FOCUSING_COMMON_DRAWINGS, !0), this._docDrawingService.focusDrawing(params), this._docSelectionManagerService.getActiveTextRange() && this._docSelectionManagerService.replaceTextRanges([]);
564
- const prevSegmentId = this._docSelectionRenderService.getSegment(), segmentId = this._findSegmentIdByDrawingId(params[0].drawingId);
565
- prevSegmentId !== segmentId && this._docSelectionRenderService.setSegment(segmentId), transformer && transformer.resetProps({
566
- zeroTop: docsTop,
567
- zeroLeft: docsLeft
568
- });
569
- }
570
- })
571
- );
572
- }
573
- _findSegmentIdByDrawingId(drawingId) {
574
- var _a8, _b, _c;
575
- const { unit: DocDataModel } = this._context, { body, headers = {}, footers = {} } = DocDataModel.getSnapshot();
576
- if (((_a8 = body == null ? void 0 : body.customBlocks) != null ? _a8 : []).some((b) => b.blockId === drawingId))
577
- return "";
578
- for (const headerId of Object.keys(headers))
579
- if ((_b = headers[headerId].body.customBlocks) != null && _b.some((b) => b.blockId === drawingId))
580
- return headerId;
581
- for (const footerId of Object.keys(footers))
582
- if ((_c = footers[footerId].body.customBlocks) != null && _c.some((b) => b.blockId === drawingId))
583
- return footerId;
584
- return "";
585
- }
586
- // Update drawings edit status and opacity. You can not edit header footer images when you are editing body. and vice verse.
587
- _updateDrawingsEditStatus() {
588
- var _a8;
589
- const { unit: docDataModel, scene, unitId } = this._context, viewModel = (_a8 = this._renderManagerSrv.getRenderById(unitId)) == null ? void 0 : _a8.with(DocSkeletonManagerService).getViewModel();
590
- if (viewModel == null || docDataModel == null)
591
- return;
592
- const snapshot = docDataModel.getSnapshot(), { drawings = {} } = snapshot, isEditBody = viewModel.getEditArea() === DocumentEditArea.BODY;
593
- for (const key of Object.keys(drawings)) {
594
- const drawing = drawings[key], objectKey = getDrawingShapeKeyByDrawingSearch({ unitId, drawingId: drawing.drawingId, subUnitId: unitId }), drawingShapes = scene.fuzzyMathObjects(objectKey, !0);
595
- if (drawingShapes.length)
596
- for (const shape of drawingShapes)
597
- scene.detachTransformerFrom(shape), shape.setOpacity(0.5), (isEditBody && drawing.isMultiTransform !== BooleanNumber.TRUE || !isEditBody && drawing.isMultiTransform === BooleanNumber.TRUE) && (scene.attachTransformerTo(shape), shape.setOpacity(1));
598
- }
599
- }
600
- _editAreaChangeListener() {
601
- var _a8;
602
- const { unitId } = this._context, viewModel = (_a8 = this._renderManagerSrv.getRenderById(unitId)) == null ? void 0 : _a8.with(DocSkeletonManagerService).getViewModel();
603
- viewModel != null && (this._updateDrawingsEditStatus(), this.disposeWithMe(
604
- viewModel.editAreaChange$.subscribe(() => {
605
- this._updateDrawingsEditStatus();
606
- })
607
- ), this._docRefreshDrawingsService.refreshDrawings$.subscribe((skeleton) => {
608
- skeleton != null && queueMicrotask(() => {
609
- this._updateDrawingsEditStatus();
610
- });
611
- }), this.disposeWithMe(
612
- this._commandService.onCommandExecuted(async (command) => {
613
- command.id === RichTextEditingMutation.id && queueMicrotask(() => {
614
- this._updateDrawingsEditStatus();
615
- });
616
- })
617
- ));
618
- }
619
- }, __name(_a2, "DocDrawingUpdateRenderController"), _a2);
620
- DocDrawingUpdateRenderController = __decorateClass$5([
621
- __decorateParam$5(1, ICommandService),
622
- __decorateParam$5(2, Inject(DocSelectionManagerService)),
623
- __decorateParam$5(3, IRenderManagerService),
624
- __decorateParam$5(4, IImageIoService),
625
- __decorateParam$5(5, IDocDrawingService),
626
- __decorateParam$5(6, IDrawingManagerService),
627
- __decorateParam$5(7, IContextService),
628
- __decorateParam$5(8, IMessageService),
629
- __decorateParam$5(9, Inject(LocaleService)),
630
- __decorateParam$5(10, Inject(DocSelectionRenderService)),
631
- __decorateParam$5(11, Inject(DocRefreshDrawingsService)),
632
- __decorateParam$5(12, ILocalFileService)
633
- ], DocDrawingUpdateRenderController);
634
- const InsertDocImageCommand = {
635
- id: "doc.command.insert-float-image",
636
- type: CommandType.COMMAND,
637
- handler: /* @__PURE__ */ __name((accessor) => {
638
- var _a8, _b;
639
- return (_b = (_a8 = accessor.get(IRenderManagerService).getCurrentTypeOfRenderer(UniverInstanceType.UNIVER_DOC)) == null ? void 0 : _a8.with(DocDrawingUpdateRenderController).insertDocImage()) != null ? _b : !1;
640
- }, "handler")
641
- }, ImageUploadIcon = "addition-and-subtraction-single", IMAGE_MENU_ID = "doc.menu.image", IMAGE_MENU_UPLOAD_FLOAT_ID = InsertDocImageCommand.id, getDisableWhenSelectionInTableObservable = /* @__PURE__ */ __name((accessor) => {
642
- const docSelectionManagerService = accessor.get(DocSelectionManagerService), univerInstanceService = accessor.get(IUniverInstanceService);
643
- return new Observable((subscriber) => {
644
- const observable = docSelectionManagerService.textSelection$.subscribe(() => {
645
- var _a8;
646
- const activeRange = docSelectionManagerService.getActiveTextRange();
647
- if (activeRange) {
648
- const { segmentId, startOffset, endOffset } = activeRange, docDataModel = univerInstanceService.getCurrentUniverDocInstance(), tables = (_a8 = docDataModel == null ? void 0 : docDataModel.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _a8.tables;
649
- if (tables && tables.length && tables.some((table) => {
650
- const { startIndex, endIndex } = table;
651
- return startOffset >= startIndex && startOffset <= endIndex || endOffset >= startIndex && endOffset <= endIndex;
652
- })) {
653
- subscriber.next(!0);
654
- return;
655
- }
656
- } else {
657
- subscriber.next(!0);
658
- return;
659
- }
660
- subscriber.next(!1);
661
- });
662
- return () => observable.unsubscribe();
663
- });
664
- }, "getDisableWhenSelectionInTableObservable");
665
- function ImageMenuFactory(accessor) {
666
- return {
667
- id: IMAGE_MENU_ID,
668
- type: MenuItemType.SUBITEMS,
669
- icon: ImageUploadIcon,
670
- tooltip: "docImage.title",
671
- disabled$: getDisableWhenSelectionInTableObservable(accessor),
672
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_DOC)
673
- };
674
- }
675
- __name(ImageMenuFactory, "ImageMenuFactory");
676
- function UploadFloatImageMenuFactory(_accessor) {
677
- return {
678
- id: IMAGE_MENU_UPLOAD_FLOAT_ID,
679
- title: "docImage.upload.float",
680
- type: MenuItemType.BUTTON,
681
- hidden$: getMenuHiddenObservable(_accessor, UniverInstanceType.UNIVER_DOC)
682
- };
683
- }
684
- __name(UploadFloatImageMenuFactory, "UploadFloatImageMenuFactory");
685
- const imageCommonPanel = "univer-image-common-panel", imageCommonPanelGrid = "univer-image-common-panel-grid", imageCommonPanelBorder = "univer-image-common-panel-border", imageCommonPanelTitle = "univer-image-common-panel-title", imageCommonPanelSubtitle = "univer-image-common-panel-subtitle", imageCommonPanelRow = "univer-image-common-panel-row", imageCommonPanelRowVertical = "univer-image-common-panel-row-vertical", imageCommonPanelColumn = "univer-image-common-panel-column", imageCommonPanelColumnCenter = "univer-image-common-panel-column-center", imageCommonPanelInline = "univer-image-common-panel-inline", imageCommonPanelSpan2 = "univer-image-common-panel-span2", imageCommonPanelSpan3 = "univer-image-common-panel-span3", imageCommonPanelInput = "univer-image-common-panel-input", sheetImageMenu = "univer-sheet-image-menu", sheetImageMenuInput = "univer-sheet-image-menu-input", styles = {
686
- imageCommonPanel,
687
- imageCommonPanelGrid,
688
- imageCommonPanelBorder,
689
- imageCommonPanelTitle,
690
- imageCommonPanelSubtitle,
691
- imageCommonPanelRow,
692
- imageCommonPanelRowVertical,
693
- imageCommonPanelColumn,
694
- imageCommonPanelColumnCenter,
695
- imageCommonPanelInline,
696
- imageCommonPanelSpan2,
697
- imageCommonPanelSpan3,
698
- imageCommonPanelInput,
699
- sheetImageMenu,
700
- sheetImageMenuInput
701
- };
702
- var TextWrappingStyle = /* @__PURE__ */ ((TextWrappingStyle2) => (TextWrappingStyle2.INLINE = "inline", TextWrappingStyle2.BEHIND_TEXT = "behindText", TextWrappingStyle2.IN_FRONT_OF_TEXT = "inFrontOfText", TextWrappingStyle2.WRAP_SQUARE = "wrapSquare", TextWrappingStyle2.WRAP_TOP_AND_BOTTOM = "wrapTopAndBottom", TextWrappingStyle2))(TextWrappingStyle || {});
703
- const WRAPPING_STYLE_TO_LAYOUT_TYPE = {
704
- inline: PositionedObjectLayoutType.INLINE,
705
- wrapSquare: PositionedObjectLayoutType.WRAP_SQUARE,
706
- wrapTopAndBottom: PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,
707
- inFrontOfText: PositionedObjectLayoutType.WRAP_NONE,
708
- behindText: PositionedObjectLayoutType.WRAP_NONE
709
- };
710
- function getDeleteAndInsertCustomBlockActions(segmentId, oldSegmentId, segmentPage, offset, drawingId, documentDataModel, docSelectionRenderManager) {
711
- var _a8, _b;
712
- const textX = new TextX(), jsonX = JSONX.getInstance(), rawActions = [], oldBody = documentDataModel.getSelfOrHeaderFooterModel(oldSegmentId).getBody(), body = documentDataModel.getSelfOrHeaderFooterModel(segmentId).getBody();
713
- if (oldBody == null || body == null)
714
- return;
715
- const oldOffset = (_b = (_a8 = oldBody.customBlocks) == null ? void 0 : _a8.find((block) => block.blockId === drawingId)) == null ? void 0 : _b.startIndex;
716
- if (oldOffset != null) {
717
- if (offset = Math.min(body.dataStream.length - 2, offset), segmentId === oldSegmentId) {
718
- if (offset < oldOffset ? (offset > 0 && textX.push({
719
- t: TextXActionType.RETAIN,
720
- len: offset,
721
- segmentId: oldSegmentId
722
- }), textX.push({
723
- t: TextXActionType.INSERT,
724
- body: {
725
- dataStream: "\b",
726
- customBlocks: [{
727
- startIndex: 0,
728
- blockId: drawingId
729
- }]
730
- },
731
- len: 1,
732
- line: 0,
733
- segmentId: oldSegmentId
734
- }), textX.push({
735
- t: TextXActionType.RETAIN,
736
- len: oldOffset - offset,
737
- segmentId: oldSegmentId
738
- }), textX.push({
739
- t: TextXActionType.DELETE,
740
- len: 1,
741
- line: 0,
742
- segmentId: ""
743
- })) : (oldOffset > 0 && textX.push({
744
- t: TextXActionType.RETAIN,
745
- len: oldOffset,
746
- segmentId: oldSegmentId
747
- }), textX.push({
748
- t: TextXActionType.DELETE,
749
- len: 1,
750
- line: 0,
751
- segmentId: ""
752
- }), offset - oldOffset - 1 > 0 && textX.push({
753
- t: TextXActionType.RETAIN,
754
- len: offset - oldOffset - 1,
755
- segmentId: oldSegmentId
756
- }), textX.push({
757
- t: TextXActionType.INSERT,
758
- body: {
759
- dataStream: "\b",
760
- customBlocks: [{
761
- startIndex: 0,
762
- blockId: drawingId
763
- }]
764
- },
765
- len: 1,
766
- line: 0,
767
- segmentId: oldSegmentId
768
- })), offset !== oldOffset) {
769
- const path = getRichTextEditPath(documentDataModel, oldSegmentId), action = jsonX.editOp(textX.serialize(), path);
770
- rawActions.push(action);
771
- }
772
- } else {
773
- oldOffset > 0 && textX.push({
774
- t: TextXActionType.RETAIN,
775
- len: oldOffset,
776
- segmentId: oldSegmentId
777
- }), textX.push({
778
- t: TextXActionType.DELETE,
779
- len: 1,
780
- line: 0,
781
- segmentId: ""
782
- });
783
- let path = getRichTextEditPath(documentDataModel, oldSegmentId), action = jsonX.editOp(textX.serialize(), path);
784
- rawActions.push(action), textX.empty(), offset > 0 && textX.push({
785
- t: TextXActionType.RETAIN,
786
- len: offset,
787
- segmentId
788
- }), textX.push({
789
- t: TextXActionType.INSERT,
790
- body: {
791
- dataStream: "\b",
792
- customBlocks: [{
793
- startIndex: 0,
794
- blockId: drawingId
795
- }]
796
- },
797
- len: 1,
798
- line: 0,
799
- segmentId
800
- }), path = getRichTextEditPath(documentDataModel, segmentId), action = jsonX.editOp(textX.serialize(), path), rawActions.push(action), docSelectionRenderManager.setSegment(segmentId), docSelectionRenderManager.setSegmentPage(segmentPage);
801
- }
802
- return rawActions;
803
- }
804
- }
805
- __name(getDeleteAndInsertCustomBlockActions, "getDeleteAndInsertCustomBlockActions");
806
- const UpdateDocDrawingWrappingStyleCommand = {
807
- id: "doc.command.update-doc-drawing-wrapping-style",
808
- type: CommandType.COMMAND,
809
- // eslint-disable-next-line max-lines-per-function, complexity
810
- handler: /* @__PURE__ */ __name((accessor, params) => {
811
- var _a8, _b;
812
- if (params == null)
813
- return !1;
814
- const { drawings, wrappingStyle, unitId } = params, commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), renderObject = accessor.get(IRenderManagerService).getRenderById(unitId), skeletonData = renderObject == null ? void 0 : renderObject.with(DocSkeletonManagerService).getSkeleton().getSkeletonData(), viewModel = renderObject == null ? void 0 : renderObject.with(DocSkeletonManagerService).getViewModel(), scene = renderObject == null ? void 0 : renderObject.scene, documentDataModel = univerInstanceService.getCurrentUniverDocInstance();
815
- if (documentDataModel == null || skeletonData == null || scene == null || viewModel == null)
816
- return !1;
817
- const editArea = viewModel.getEditArea(), transformer = scene.getTransformerByCreate(), { pages, skeHeaders, skeFooters } = skeletonData, jsonX = JSONX.getInstance(), rawActions = [], { drawings: oldDrawings = {} } = documentDataModel.getSnapshot();
818
- for (const drawing of drawings) {
819
- const { drawingId } = drawing, oldLayoutType = oldDrawings[drawingId].layoutType, newLayoutType = WRAPPING_STYLE_TO_LAYOUT_TYPE[wrappingStyle];
820
- if (oldLayoutType !== newLayoutType) {
821
- const updateLayoutTypeAction = jsonX.replaceOp(["drawings", drawingId, "layoutType"], oldLayoutType, newLayoutType);
822
- rawActions.push(updateLayoutTypeAction);
823
- }
824
- if (wrappingStyle === "behindText" || wrappingStyle === "inFrontOfText") {
825
- const oldBehindDoc = oldDrawings[drawingId].behindDoc, newBehindDoc = wrappingStyle === "behindText" ? BooleanNumber.TRUE : BooleanNumber.FALSE;
826
- if (oldBehindDoc !== newBehindDoc) {
827
- const updateBehindDocAction = jsonX.replaceOp(["drawings", drawingId, "behindDoc"], oldBehindDoc, newBehindDoc);
828
- rawActions.push(updateBehindDocAction);
829
- }
830
- }
831
- if (wrappingStyle === "inline")
832
- continue;
833
- let skeDrawing = null, pageMarginTop = 0, pageMarginLeft = 0;
834
- for (const page of pages) {
835
- const { headerId, footerId, marginTop, marginLeft, marginBottom, pageWidth, pageHeight } = page;
836
- switch (editArea) {
837
- case DocumentEditArea.HEADER: {
838
- const headerSke = (_a8 = skeHeaders.get(headerId)) == null ? void 0 : _a8.get(pageWidth);
839
- headerSke != null && headerSke.skeDrawings.has(drawingId) && (skeDrawing = headerSke.skeDrawings.get(drawingId), pageMarginTop = headerSke.marginTop, pageMarginLeft = marginLeft);
840
- break;
841
- }
842
- case DocumentEditArea.FOOTER: {
843
- const footerSke = (_b = skeFooters.get(footerId)) == null ? void 0 : _b.get(pageWidth);
844
- footerSke != null && footerSke.skeDrawings.has(drawingId) && (skeDrawing = footerSke.skeDrawings.get(drawingId), pageMarginTop = pageHeight - marginBottom + footerSke.marginTop, pageMarginLeft = marginLeft);
845
- break;
846
- }
847
- case DocumentEditArea.BODY: {
848
- page.skeDrawings.has(drawingId) && (skeDrawing = page.skeDrawings.get(drawingId), pageMarginTop = marginTop, pageMarginLeft = marginLeft);
849
- break;
850
- }
851
- }
852
- if (skeDrawing != null)
853
- break;
854
- }
855
- if (skeDrawing != null) {
856
- const { aTop, aLeft } = skeDrawing, oldPositionH = oldDrawings[drawingId].docTransform.positionH;
857
- let posOffsetH = aLeft;
858
- oldPositionH.relativeFrom === ObjectRelativeFromH.MARGIN ? posOffsetH -= pageMarginLeft : oldPositionH.relativeFrom === ObjectRelativeFromH.COLUMN && (posOffsetH -= skeDrawing.columnLeft);
859
- const newPositionH = {
860
- relativeFrom: oldPositionH.relativeFrom,
861
- posOffset: posOffsetH
862
- };
863
- if (oldPositionH.posOffset !== newPositionH.posOffset) {
864
- const action = jsonX.replaceOp(["drawings", drawingId, "docTransform", "positionH"], oldPositionH, newPositionH);
865
- rawActions.push(action);
866
- }
867
- const oldPositionV = oldDrawings[drawingId].docTransform.positionV;
868
- let posOffsetV = aTop;
869
- oldPositionV.relativeFrom === ObjectRelativeFromV.PAGE ? posOffsetV += pageMarginTop : oldPositionV.relativeFrom === ObjectRelativeFromV.LINE ? posOffsetV -= skeDrawing.lineTop : oldPositionV.relativeFrom === ObjectRelativeFromV.PARAGRAPH && (posOffsetV -= skeDrawing.blockAnchorTop);
870
- const newPositionV = {
871
- relativeFrom: oldPositionV.relativeFrom,
872
- posOffset: posOffsetV
873
- };
874
- if (oldPositionV.posOffset !== newPositionV.posOffset) {
875
- const action = jsonX.replaceOp(["drawings", drawingId, "docTransform", "positionV"], oldPositionV, newPositionV);
876
- rawActions.push(action);
877
- }
878
- }
879
- }
880
- const doMutation = {
881
- id: RichTextEditingMutation.id,
882
- params: {
883
- unitId,
884
- actions: [],
885
- textRanges: null
886
- }
887
- };
888
- doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null);
889
- const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
890
- return transformer.refreshControls(), !!result;
891
- }, "handler")
892
- }, UpdateDocDrawingDistanceCommand = {
893
- id: "doc.command.update-doc-drawing-distance",
894
- type: CommandType.COMMAND,
895
- handler: /* @__PURE__ */ __name((accessor, params) => {
896
- if (params == null)
897
- return !1;
898
- const commandService = accessor.get(ICommandService), documentDataModel = accessor.get(IUniverInstanceService).getCurrentUniverDocInstance();
899
- if (documentDataModel == null)
900
- return !1;
901
- const { drawings, dist, unitId } = params, jsonX = JSONX.getInstance(), rawActions = [], { drawings: oldDrawings = {} } = documentDataModel.getSnapshot();
902
- for (const drawing of drawings) {
903
- const { drawingId } = drawing;
904
- for (const [key, value] of Object.entries(dist)) {
905
- const oldValue = oldDrawings[drawingId][key];
906
- if (oldValue !== value) {
907
- const action = jsonX.replaceOp(["drawings", drawingId, key], oldValue, value);
908
- rawActions.push(action);
909
- }
910
- }
911
- }
912
- const doMutation = {
913
- id: RichTextEditingMutation.id,
914
- params: {
915
- unitId,
916
- actions: [],
917
- textRanges: null
918
- }
919
- };
920
- return doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
921
- }, "handler")
922
- }, UpdateDocDrawingWrapTextCommand = {
923
- id: "doc.command.update-doc-drawing-wrap-text",
924
- type: CommandType.COMMAND,
925
- handler: /* @__PURE__ */ __name((accessor, params) => {
926
- if (params == null)
927
- return !1;
928
- const commandService = accessor.get(ICommandService), documentDataModel = accessor.get(IUniverInstanceService).getCurrentUniverDocInstance();
929
- if (documentDataModel == null)
930
- return !1;
931
- const { drawings, wrapText, unitId } = params, jsonX = JSONX.getInstance(), rawActions = [], { drawings: oldDrawings = {} } = documentDataModel.getSnapshot();
932
- for (const drawing of drawings) {
933
- const { drawingId } = drawing, oldWrapText = oldDrawings[drawingId].wrapText;
934
- if (oldWrapText !== wrapText) {
935
- const action = jsonX.replaceOp(["drawings", drawingId, "wrapText"], oldWrapText, wrapText);
936
- rawActions.push(action);
937
- }
938
- }
939
- const doMutation = {
940
- id: RichTextEditingMutation.id,
941
- params: {
942
- unitId,
943
- actions: [],
944
- textRanges: null
945
- }
946
- };
947
- return doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null), !!commandService.syncExecuteCommand(doMutation.id, doMutation.params);
948
- }, "handler")
949
- }, UpdateDrawingDocTransformCommand = {
950
- id: "doc.command.update-drawing-doc-transform",
951
- type: CommandType.COMMAND,
952
- handler: /* @__PURE__ */ __name((accessor, params) => {
953
- if (params == null)
954
- return !1;
955
- const commandService = accessor.get(ICommandService), univerInstanceService = accessor.get(IUniverInstanceService), renderObject = accessor.get(IRenderManagerService).getRenderById(params.unitId), scene = renderObject == null ? void 0 : renderObject.scene;
956
- if (scene == null)
957
- return !1;
958
- const transformer = scene.getTransformerByCreate(), documentDataModel = univerInstanceService.getCurrentUniverDocInstance();
959
- if (documentDataModel == null)
960
- return !1;
961
- const { drawings, unitId } = params, jsonX = JSONX.getInstance(), rawActions = [], { drawings: oldDrawings = {} } = documentDataModel.getSnapshot();
962
- for (const drawing of drawings) {
963
- const { drawingId, key, value } = drawing, oldValue = oldDrawings[drawingId].docTransform[key];
964
- if (!Tools.diffValue(oldValue, value)) {
965
- const action = jsonX.replaceOp(["drawings", drawingId, "docTransform", key], oldValue, value);
966
- rawActions.push(action);
967
- }
968
- }
969
- const doMutation = {
970
- id: RichTextEditingMutation.id,
971
- params: {
972
- unitId,
973
- actions: [],
974
- textRanges: null,
975
- debounce: !0
976
- }
977
- };
978
- doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null);
979
- const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
980
- return transformer.refreshControls(), !!result;
981
- }, "handler")
982
- }, IMoveInlineDrawingCommand = {
983
- id: "doc.command.move-inline-drawing",
984
- type: CommandType.COMMAND,
985
- handler: /* @__PURE__ */ __name((accessor, params) => {
986
- var _a8, _b;
987
- if (params == null)
988
- return !1;
989
- const renderManagerService = accessor.get(IRenderManagerService), docSelectionRenderService = (_a8 = renderManagerService.getRenderById(params.unitId)) == null ? void 0 : _a8.with(DocSelectionRenderService), docRefreshDrawingsService = accessor.get(DocRefreshDrawingsService), renderObject = renderManagerService.getRenderById(params.unitId), scene = renderObject == null ? void 0 : renderObject.scene, skeleton = renderObject == null ? void 0 : renderObject.with(DocSkeletonManagerService).getSkeleton();
990
- if (scene == null || docSelectionRenderService == null)
991
- return !1;
992
- const transformer = scene.getTransformerByCreate(), commandService = accessor.get(ICommandService), documentDataModel = accessor.get(IUniverInstanceService).getCurrentUniverDocInstance();
993
- if (documentDataModel == null)
994
- return !1;
995
- const { drawing, unitId, offset, segmentId: newSegmentId, segmentPage, needRefreshDrawings } = params;
996
- if (needRefreshDrawings)
997
- return docRefreshDrawingsService.refreshDrawings(skeleton), transformer.refreshControls(), !0;
998
- const rawActions = [], { drawingId } = drawing, segmentId = (_b = docSelectionRenderService.getSegment()) != null ? _b : "", actions = getDeleteAndInsertCustomBlockActions(
999
- newSegmentId,
1000
- segmentId,
1001
- segmentPage,
1002
- offset,
1003
- drawingId,
1004
- documentDataModel,
1005
- docSelectionRenderService
1006
- );
1007
- if (actions == null || actions.length === 0)
1008
- return docRefreshDrawingsService.refreshDrawings(skeleton), transformer.refreshControls(), !1;
1009
- rawActions.push(...actions);
1010
- const doMutation = {
1011
- id: RichTextEditingMutation.id,
1012
- params: {
1013
- unitId,
1014
- actions: [],
1015
- textRanges: null
1016
- }
1017
- };
1018
- doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null);
1019
- const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
1020
- return transformer.refreshControls(), !!result;
1021
- }, "handler")
1022
- }, ITransformNonInlineDrawingCommand = {
1023
- id: "doc.command.transform-non-inline-drawing",
1024
- type: CommandType.COMMAND,
1025
- // eslint-disable-next-line max-lines-per-function
1026
- handler: /* @__PURE__ */ __name((accessor, params) => {
1027
- var _a8, _b;
1028
- if (params == null)
1029
- return !1;
1030
- const renderManagerService = accessor.get(IRenderManagerService), docSelectionRenderService = (_a8 = renderManagerService.getRenderById(params.unitId)) == null ? void 0 : _a8.with(DocSelectionRenderService), renderObject = renderManagerService.getRenderById(params.unitId), scene = renderObject == null ? void 0 : renderObject.scene;
1031
- if (scene == null || docSelectionRenderService == null)
1032
- return !1;
1033
- const transformer = scene.getTransformerByCreate(), commandService = accessor.get(ICommandService), documentDataModel = accessor.get(IUniverInstanceService).getCurrentUniverDocInstance();
1034
- if (documentDataModel == null)
1035
- return !1;
1036
- const { drawing, unitId, offset, docTransform, segmentId: newSegmentId, segmentPage } = params, rawActions = [], { drawingId } = drawing, segmentId = (_b = docSelectionRenderService.getSegment()) != null ? _b : "", actions = getDeleteAndInsertCustomBlockActions(
1037
- newSegmentId,
1038
- segmentId,
1039
- segmentPage,
1040
- offset,
1041
- drawingId,
1042
- documentDataModel,
1043
- docSelectionRenderService
1044
- );
1045
- if (actions == null)
1046
- return !1;
1047
- actions.length > 0 && rawActions.push(...actions);
1048
- const jsonX = JSONX.getInstance(), { drawings: oldDrawings = {} } = documentDataModel.getSnapshot(), oldDocTransform = oldDrawings[drawingId].docTransform, { positionH: oldPositionH, positionV: oldPositionV, size: oldSize, angle: oldAngle } = oldDocTransform;
1049
- if (!Tools.diffValue(oldPositionH, docTransform.positionH)) {
1050
- const updateAction = jsonX.replaceOp(["drawings", drawingId, "docTransform", "positionH"], oldPositionH, docTransform.positionH);
1051
- rawActions.push(updateAction);
1052
- }
1053
- if (!Tools.diffValue(oldPositionV, docTransform.positionV)) {
1054
- const updateAction = jsonX.replaceOp(["drawings", drawingId, "docTransform", "positionV"], oldPositionV, docTransform.positionV);
1055
- rawActions.push(updateAction);
1056
- }
1057
- if (!Tools.diffValue(oldSize, docTransform.size)) {
1058
- const updateAction = jsonX.replaceOp(["drawings", drawingId, "docTransform", "size"], oldSize, docTransform.size);
1059
- rawActions.push(updateAction);
1060
- }
1061
- if (!Tools.diffValue(oldAngle, docTransform.angle)) {
1062
- const updateAction = jsonX.replaceOp(["drawings", drawingId, "docTransform", "angle"], oldAngle, docTransform.angle);
1063
- rawActions.push(updateAction);
1064
- }
1065
- const doMutation = {
1066
- id: RichTextEditingMutation.id,
1067
- params: {
1068
- unitId,
1069
- actions: [],
1070
- textRanges: null,
1071
- debounce: !0
1072
- }
1073
- };
1074
- doMutation.params.actions = rawActions.reduce((acc, cur) => JSONX.compose(acc, cur), null);
1075
- const result = commandService.syncExecuteCommand(doMutation.id, doMutation.params);
1076
- return transformer.refreshControls(), !!result;
1077
- }, "handler")
1078
- }, MIN_MARGIN = 0, MAX_MARGIN = 100, DocDrawingTextWrap = /* @__PURE__ */ __name((props) => {
1079
- const commandService = useDependency(ICommandService), localeService = useDependency(LocaleService), drawingManagerService = useDependency(IDrawingManagerService), renderManagerService = useDependency(IRenderManagerService), univerInstanceService = useDependency(IUniverInstanceService), { drawings } = props, drawingParam = drawings[0];
1080
- if (drawingParam == null)
1081
- return null;
1082
- const { unitId } = drawingParam, documentDataModel = univerInstanceService.getUniverDocInstance(unitId), renderObject = renderManagerService.getRenderById(unitId);
1083
- if ((renderObject == null ? void 0 : renderObject.scene) == null)
1084
- return null;
1085
- const [disableWrapText, setDisableWrapText] = useState(!0), [disableDistTB, setDisableDistTB] = useState(!0), [disableDistLR, setDisableDistLR] = useState(!0), [wrappingStyle, setWrappingStyle] = useState(TextWrappingStyle.INLINE), [wrapText, setWrapText] = useState(""), [distToText, setDistToText] = useState({
1086
- distT: 0,
1087
- distL: 0,
1088
- distB: 0,
1089
- distR: 0
1090
- }), [showPanel, setShowPanel] = useState(!0);
1091
- function handleWrappingStyleChange(value) {
1092
- setWrappingStyle(value);
1093
- const focusDrawings = drawingManagerService.getFocusDrawings();
1094
- if (focusDrawings.length === 0)
1095
- return;
1096
- const { unitId: unitId2, subUnitId } = focusDrawings[0], drawings2 = focusDrawings.map(({ unitId: unitId3, subUnitId: subUnitId2, drawingId }) => ({
1097
- unitId: unitId3,
1098
- subUnitId: subUnitId2,
1099
- drawingId
1100
- }));
1101
- commandService.executeCommand(UpdateDocDrawingWrappingStyleCommand.id, {
1102
- unitId: unitId2,
1103
- subUnitId,
1104
- drawings: drawings2,
1105
- wrappingStyle: value
1106
- });
1107
- }
1108
- __name(handleWrappingStyleChange, "handleWrappingStyleChange");
1109
- function handleWrapTextChange(value) {
1110
- setWrapText(value);
1111
- const focusDrawings = drawingManagerService.getFocusDrawings();
1112
- if (focusDrawings.length === 0)
1113
- return;
1114
- const drawings2 = focusDrawings.map((drawing) => ({
1115
- unitId: drawing.unitId,
1116
- subUnitId: drawing.subUnitId,
1117
- drawingId: drawing.drawingId
1118
- }));
1119
- commandService.executeCommand(UpdateDocDrawingWrapTextCommand.id, {
1120
- unitId: focusDrawings[0].unitId,
1121
- subUnitId: focusDrawings[0].unitId,
1122
- drawings: drawings2,
1123
- wrapText: value
1124
- });
1125
- }
1126
- __name(handleWrapTextChange, "handleWrapTextChange");
1127
- function handleDistToTextChange(value, direction) {
1128
- if (value == null)
1129
- return;
1130
- const newDistToText = { ...distToText, [direction]: value };
1131
- setDistToText(newDistToText);
1132
- const focusDrawings = drawingManagerService.getFocusDrawings();
1133
- if (focusDrawings.length === 0)
1134
- return;
1135
- const drawings2 = focusDrawings.map((drawing) => ({
1136
- unitId: drawing.unitId,
1137
- subUnitId: drawing.subUnitId,
1138
- drawingId: drawing.drawingId
1139
- }));
1140
- commandService.executeCommand(UpdateDocDrawingDistanceCommand.id, {
1141
- unitId: focusDrawings[0].unitId,
1142
- subUnitId: focusDrawings[0].unitId,
1143
- drawings: drawings2,
1144
- dist: {
1145
- [direction]: value
1146
- }
1147
- });
1148
- }
1149
- __name(handleDistToTextChange, "handleDistToTextChange");
1150
- function updateFocusDrawingState() {
1151
- const focusDrawings = drawingManagerService.getFocusDrawings();
1152
- focusDrawings.length !== 0 && updateState(focusDrawings[0]);
1153
- }
1154
- __name(updateFocusDrawingState, "updateFocusDrawingState");
1155
- function updateState(drawingParam2) {
1156
- var _a8, _b;
1157
- const drawing = (_b = (_a8 = documentDataModel == null ? void 0 : documentDataModel.getSnapshot()) == null ? void 0 : _a8.drawings) == null ? void 0 : _b[drawingParam2.drawingId];
1158
- if (drawing == null)
1159
- return;
1160
- const {
1161
- distT = 0,
1162
- distL = 0,
1163
- distB = 0,
1164
- distR = 0,
1165
- layoutType = PositionedObjectLayoutType.INLINE,
1166
- behindDoc = BooleanNumber.FALSE,
1167
- wrapText: wrapText2 = WrapTextType.BOTH_SIDES
1168
- } = drawing;
1169
- if (setDistToText({
1170
- distT,
1171
- distL,
1172
- distB,
1173
- distR
1174
- }), setWrapText(wrapText2), setDisableWrapText(layoutType !== PositionedObjectLayoutType.WRAP_SQUARE), layoutType === PositionedObjectLayoutType.WRAP_NONE || layoutType === PositionedObjectLayoutType.INLINE ? setDisableDistTB(!0) : setDisableDistTB(!1), layoutType === PositionedObjectLayoutType.WRAP_NONE || layoutType === PositionedObjectLayoutType.INLINE || layoutType === PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM ? setDisableDistLR(!0) : setDisableDistLR(!1), layoutType === PositionedObjectLayoutType.WRAP_NONE)
1175
- behindDoc === BooleanNumber.TRUE ? setWrappingStyle(TextWrappingStyle.BEHIND_TEXT) : setWrappingStyle(TextWrappingStyle.IN_FRONT_OF_TEXT);
1176
- else
1177
- switch (layoutType) {
1178
- case PositionedObjectLayoutType.INLINE:
1179
- setWrappingStyle(TextWrappingStyle.INLINE);
1180
- break;
1181
- case PositionedObjectLayoutType.WRAP_SQUARE:
1182
- setWrappingStyle(TextWrappingStyle.WRAP_SQUARE);
1183
- break;
1184
- case PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM:
1185
- setWrappingStyle(TextWrappingStyle.WRAP_TOP_AND_BOTTOM);
1186
- break;
1187
- default:
1188
- throw new Error(`Unsupported layout type: ${layoutType}`);
1189
- }
1190
- }
1191
- return __name(updateState, "updateState"), useEffect(() => {
1192
- updateFocusDrawingState();
1193
- const subscription = drawingManagerService.focus$.subscribe((drawingParams) => {
1194
- if (drawingParams.length === 0) {
1195
- setShowPanel(!1);
1196
- return;
1197
- }
1198
- setShowPanel(!0), updateState(drawingParams[0]);
1199
- }), mutationListener = commandService.onCommandExecuted(async (command) => {
1200
- command.id === RichTextEditingMutation.id && updateFocusDrawingState();
1201
- });
1202
- return () => {
1203
- subscription.unsubscribe(), mutationListener.dispose();
1204
- };
1205
- }, []), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelGrid, styles.imageCommonPanelBorder), style: { display: showPanel ? "block" : "none" } }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelTitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-text-wrap.title")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-text-wrap.wrappingStyle")))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelRow) }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn) }, /* @__PURE__ */ React.createElement(RadioGroup, { value: wrappingStyle, onChange: handleWrappingStyleChange, direction: "vertical" }, /* @__PURE__ */ React.createElement(Radio, { value: TextWrappingStyle.INLINE }, localeService.t("image-text-wrap.inline")), /* @__PURE__ */ React.createElement(Radio, { value: TextWrappingStyle.WRAP_SQUARE }, localeService.t("image-text-wrap.square")), /* @__PURE__ */ React.createElement(Radio, { value: TextWrappingStyle.WRAP_TOP_AND_BOTTOM }, localeService.t("image-text-wrap.topAndBottom")), /* @__PURE__ */ React.createElement(Radio, { value: TextWrappingStyle.BEHIND_TEXT }, localeService.t("image-text-wrap.behindText")), /* @__PURE__ */ React.createElement(Radio, { value: TextWrappingStyle.IN_FRONT_OF_TEXT }, localeService.t("image-text-wrap.inFrontText"))))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-text-wrap.wrapText")))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelRow) }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn) }, /* @__PURE__ */ React.createElement(RadioGroup, { disabled: disableWrapText, value: wrapText, onChange: handleWrapTextChange, direction: "horizontal" }, /* @__PURE__ */ React.createElement(Radio, { value: WrapTextType.BOTH_SIDES }, localeService.t("image-text-wrap.bothSide")), /* @__PURE__ */ React.createElement(Radio, { value: WrapTextType.LEFT }, localeService.t("image-text-wrap.leftOnly")), /* @__PURE__ */ React.createElement(Radio, { value: WrapTextType.RIGHT }, localeService.t("image-text-wrap.rightOnly"))))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-text-wrap.distanceFromText")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-text-wrap.top"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1206
- InputNumber,
1207
- {
1208
- min: MIN_MARGIN,
1209
- max: MAX_MARGIN,
1210
- disabled: disableDistTB,
1211
- precision: 1,
1212
- value: distToText.distT,
1213
- onChange: /* @__PURE__ */ __name((val) => {
1214
- handleDistToTextChange(val, "distT");
1215
- }, "onChange"),
1216
- className: styles.imageCommonPanelInput
1217
- }
1218
- ))))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-text-wrap.left"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1219
- InputNumber,
1220
- {
1221
- min: MIN_MARGIN,
1222
- max: MAX_MARGIN,
1223
- disabled: disableDistLR,
1224
- precision: 1,
1225
- value: distToText.distL,
1226
- onChange: /* @__PURE__ */ __name((val) => {
1227
- handleDistToTextChange(val, "distL");
1228
- }, "onChange"),
1229
- className: styles.imageCommonPanelInput
1230
- }
1231
- )))))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-text-wrap.bottom"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1232
- InputNumber,
1233
- {
1234
- min: MIN_MARGIN,
1235
- max: MAX_MARGIN,
1236
- disabled: disableDistTB,
1237
- precision: 1,
1238
- value: distToText.distB,
1239
- onChange: /* @__PURE__ */ __name((val) => {
1240
- handleDistToTextChange(val, "distB");
1241
- }, "onChange"),
1242
- className: styles.imageCommonPanelInput
1243
- }
1244
- ))))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-text-wrap.right"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1245
- InputNumber,
1246
- {
1247
- min: MIN_MARGIN,
1248
- max: MAX_MARGIN,
1249
- disabled: disableDistLR,
1250
- precision: 1,
1251
- value: distToText.distR,
1252
- onChange: /* @__PURE__ */ __name((val) => {
1253
- handleDistToTextChange(val, "distR");
1254
- }, "onChange"),
1255
- className: styles.imageCommonPanelInput
1256
- }
1257
- )))))));
1258
- }, "DocDrawingTextWrap"), MIN_OFFSET = -1e3, MAX_OFFSET = 1e3, DocDrawingPosition = /* @__PURE__ */ __name((props) => {
1259
- const commandService = useDependency(ICommandService), localeService = useDependency(LocaleService), drawingManagerService = useDependency(IDrawingManagerService), renderManagerService = useDependency(IRenderManagerService), univerInstanceService = useDependency(IUniverInstanceService), { drawings } = props, drawingParam = drawings[0];
1260
- if (drawingParam == null)
1261
- return;
1262
- const { unitId } = drawingParam, documentDataModel = univerInstanceService.getUniverDocInstance(unitId), renderObject = renderManagerService.getRenderById(unitId), scene = renderObject == null ? void 0 : renderObject.scene;
1263
- if (scene == null)
1264
- return;
1265
- const transformer = scene.getTransformerByCreate(), HORIZONTAL_RELATIVE_FROM = [{
1266
- label: localeService.t("image-position.column"),
1267
- value: String(ObjectRelativeFromH.COLUMN)
1268
- }, {
1269
- label: localeService.t("image-position.page"),
1270
- value: String(ObjectRelativeFromH.PAGE)
1271
- }, {
1272
- label: localeService.t("image-position.margin"),
1273
- value: String(ObjectRelativeFromH.MARGIN)
1274
- }], VERTICAL_RELATIVE_FROM = [{
1275
- label: localeService.t("image-position.line"),
1276
- value: String(ObjectRelativeFromV.LINE)
1277
- }, {
1278
- label: localeService.t("image-position.page"),
1279
- value: String(ObjectRelativeFromV.PAGE)
1280
- }, {
1281
- label: localeService.t("image-position.margin"),
1282
- value: String(ObjectRelativeFromV.MARGIN)
1283
- }, {
1284
- label: localeService.t("image-position.paragraph"),
1285
- value: String(ObjectRelativeFromV.PARAGRAPH)
1286
- }], [disabled, setDisabled] = useState(!0), [hPosition, setHPosition] = useState({
1287
- relativeFrom: ObjectRelativeFromH.PAGE,
1288
- posOffset: 0
1289
- }), [vPosition, setVPosition] = useState({
1290
- relativeFrom: ObjectRelativeFromV.PAGE,
1291
- posOffset: 0
1292
- }), [followTextMove, setFollowTextMove] = useState(!0), [showPanel, setShowPanel] = useState(!0);
1293
- function handlePositionChange(direction, value) {
1294
- var _a8;
1295
- direction === "positionH" ? setHPosition(value) : setVPosition(value);
1296
- const focusDrawings = drawingManagerService.getFocusDrawings();
1297
- if (focusDrawings.length === 0)
1298
- return;
1299
- const drawings2 = focusDrawings.map((drawing) => ({
1300
- unitId: drawing.unitId,
1301
- subUnitId: drawing.subUnitId,
1302
- drawingId: drawing.drawingId
1303
- }));
1304
- commandService.executeCommand(UpdateDrawingDocTransformCommand.id, {
1305
- unitId: focusDrawings[0].unitId,
1306
- subUnitId: focusDrawings[0].unitId,
1307
- drawings: drawings2.map((drawing) => ({
1308
- drawingId: drawing.drawingId,
1309
- key: direction,
1310
- value
1311
- }))
1312
- });
1313
- const docSelectionRenderService = (_a8 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a8.with(DocSelectionRenderService);
1314
- docSelectionRenderService && docSelectionRenderService.blur(), transformer.refreshControls();
1315
- }
1316
- __name(handlePositionChange, "handlePositionChange");
1317
- function handleHorizontalRelativeFromChange(value) {
1318
- var _a8, _b, _c;
1319
- const prevRelativeFrom = hPosition.relativeFrom, prevPosOffset = hPosition.posOffset, relativeFrom = Number(value);
1320
- if (prevRelativeFrom === relativeFrom)
1321
- return;
1322
- const focusDrawings = drawingManagerService.getFocusDrawings();
1323
- if (focusDrawings.length === 0)
1324
- return;
1325
- const drawingId = focusDrawings[0].drawingId, unitId2 = focusDrawings[0].unitId;
1326
- let drawing = null, pageMarginLeft = 0;
1327
- const skeleton = (_a8 = renderManagerService.getRenderById(unitId2)) == null ? void 0 : _a8.with(DocSkeletonManagerService).getSkeleton(), skeletonData = skeleton == null ? void 0 : skeleton.getSkeletonData();
1328
- if (skeletonData == null)
1329
- return;
1330
- const { pages, skeHeaders, skeFooters } = skeletonData;
1331
- for (const page of pages) {
1332
- const { marginLeft, skeDrawings, headerId, footerId, pageWidth } = page;
1333
- if (skeDrawings.has(drawingId)) {
1334
- drawing = skeDrawings.get(drawingId), pageMarginLeft = marginLeft;
1335
- break;
1336
- }
1337
- const headerPage = (_b = skeHeaders.get(headerId)) == null ? void 0 : _b.get(pageWidth);
1338
- if (headerPage != null && headerPage.skeDrawings.has(drawingId)) {
1339
- drawing = headerPage == null ? void 0 : headerPage.skeDrawings.get(drawingId), pageMarginLeft = marginLeft;
1340
- break;
1341
- }
1342
- const footerPage = (_c = skeFooters.get(footerId)) == null ? void 0 : _c.get(pageWidth);
1343
- if (footerPage != null && footerPage.skeDrawings.has(drawingId)) {
1344
- drawing = footerPage == null ? void 0 : footerPage.skeDrawings.get(drawingId), pageMarginLeft = marginLeft;
1345
- break;
1346
- }
1347
- }
1348
- if (drawing == null)
1349
- return;
1350
- let delta = 0;
1351
- prevRelativeFrom === ObjectRelativeFromH.COLUMN ? delta -= drawing.columnLeft : prevRelativeFrom === ObjectRelativeFromH.MARGIN && (delta -= pageMarginLeft), relativeFrom === ObjectRelativeFromH.COLUMN ? delta += drawing.columnLeft : relativeFrom === ObjectRelativeFromH.MARGIN ? delta += pageMarginLeft : ObjectRelativeFromH.PAGE;
1352
- const newPositionH = {
1353
- relativeFrom,
1354
- posOffset: (prevPosOffset != null ? prevPosOffset : 0) - delta
1355
- };
1356
- handlePositionChange("positionH", newPositionH);
1357
- }
1358
- __name(handleHorizontalRelativeFromChange, "handleHorizontalRelativeFromChange");
1359
- function handleVerticalRelativeFromChange(value) {
1360
- var _a8, _b, _c, _d, _e, _f;
1361
- const prevRelativeFrom = vPosition.relativeFrom, prevPosOffset = vPosition.posOffset, relativeFrom = Number(value);
1362
- if (prevRelativeFrom === relativeFrom)
1363
- return;
1364
- const focusDrawings = drawingManagerService.getFocusDrawings();
1365
- if (focusDrawings.length === 0)
1366
- return;
1367
- const { drawingId, unitId: unitId2 } = focusDrawings[0], documentDataModel2 = univerInstanceService.getUniverDocInstance(unitId2), skeleton = (_a8 = renderManagerService.getRenderById(unitId2)) == null ? void 0 : _a8.with(DocSkeletonManagerService).getSkeleton(), docSelectionRenderService = (_b = renderManagerService.getRenderById(unitId2)) == null ? void 0 : _b.with(DocSelectionRenderService), segmentId = docSelectionRenderService == null ? void 0 : docSelectionRenderService.getSegment(), segmentPage = docSelectionRenderService == null ? void 0 : docSelectionRenderService.getSegmentPage(), drawing = (_d = (_c = documentDataModel2 == null ? void 0 : documentDataModel2.getSelfOrHeaderFooterModel(segmentId).getBody()) == null ? void 0 : _c.customBlocks) == null ? void 0 : _d.find((c) => c.blockId === drawingId);
1368
- if (drawing == null || skeleton == null || docSelectionRenderService == null)
1369
- return;
1370
- const { startIndex } = drawing, glyph = skeleton.findNodeByCharIndex(startIndex, segmentId, segmentPage), line = (_e = glyph == null ? void 0 : glyph.parent) == null ? void 0 : _e.parent, column = line == null ? void 0 : line.parent, paragraphStartLine = column == null ? void 0 : column.lines.find((l) => l.paragraphIndex === (line == null ? void 0 : line.paragraphIndex) && l.paragraphStart), page = (_f = column == null ? void 0 : column.parent) == null ? void 0 : _f.parent;
1371
- if (glyph == null || line == null || paragraphStartLine == null || column == null || page == null)
1372
- return;
1373
- let delta = 0;
1374
- prevRelativeFrom === ObjectRelativeFromV.PARAGRAPH ? delta -= paragraphStartLine.top : prevRelativeFrom === ObjectRelativeFromV.LINE ? delta -= line.top : prevRelativeFrom === ObjectRelativeFromV.PAGE && (delta += page.marginTop), relativeFrom === ObjectRelativeFromV.PARAGRAPH ? delta += paragraphStartLine.top : relativeFrom === ObjectRelativeFromV.LINE ? delta += line.top : relativeFrom === ObjectRelativeFromV.PAGE && (delta -= page.marginTop);
1375
- const newPositionV = {
1376
- relativeFrom,
1377
- posOffset: (prevPosOffset != null ? prevPosOffset : 0) - delta
1378
- };
1379
- handlePositionChange("positionV", newPositionV);
1380
- }
1381
- __name(handleVerticalRelativeFromChange, "handleVerticalRelativeFromChange");
1382
- function updateState(drawingParam2) {
1383
- var _a8;
1384
- const snapshot = documentDataModel == null ? void 0 : documentDataModel.getSnapshot(), drawing = (_a8 = snapshot == null ? void 0 : snapshot.drawings) == null ? void 0 : _a8[drawingParam2.drawingId];
1385
- if (drawing == null)
1386
- return;
1387
- const { layoutType } = drawing, {
1388
- positionH,
1389
- positionV
1390
- } = drawing.docTransform;
1391
- setHPosition(positionH), setVPosition(positionV), setDisabled(layoutType === PositionedObjectLayoutType.INLINE), setFollowTextMove(positionV.relativeFrom === ObjectRelativeFromV.PARAGRAPH || positionV.relativeFrom === ObjectRelativeFromV.LINE);
1392
- }
1393
- __name(updateState, "updateState");
1394
- function updateFocusDrawingState() {
1395
- const focusDrawings = drawingManagerService.getFocusDrawings();
1396
- focusDrawings.length !== 0 && updateState(focusDrawings[0]);
1397
- }
1398
- __name(updateFocusDrawingState, "updateFocusDrawingState");
1399
- function handleFollowTextMoveCheck(val) {
1400
- setFollowTextMove(val), handleVerticalRelativeFromChange(String(val ? ObjectRelativeFromV.PARAGRAPH : ObjectRelativeFromV.PAGE));
1401
- }
1402
- return __name(handleFollowTextMoveCheck, "handleFollowTextMoveCheck"), useEffect(() => {
1403
- updateFocusDrawingState();
1404
- const subscription = drawingManagerService.focus$.subscribe((drawingParams) => {
1405
- if (drawingParams.length === 0) {
1406
- setShowPanel(!1);
1407
- return;
1408
- }
1409
- setShowPanel(!0), updateState(drawingParams[0]);
1410
- }), mutationListener = commandService.onCommandExecuted(async (command) => {
1411
- command.id === RichTextEditingMutation.id && updateFocusDrawingState();
1412
- });
1413
- return () => {
1414
- subscription.unsubscribe(), mutationListener.dispose();
1415
- };
1416
- }, []), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelGrid, styles.imageCommonPanelBorder), style: { display: showPanel ? "block" : "none" } }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelTitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-position.title")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-position.horizontal")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-position.absolutePosition"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1417
- InputNumber,
1418
- {
1419
- min: MIN_OFFSET,
1420
- max: MAX_OFFSET,
1421
- precision: 1,
1422
- disabled,
1423
- value: hPosition.posOffset,
1424
- onChange: /* @__PURE__ */ __name((val) => {
1425
- handlePositionChange("positionH", {
1426
- relativeFrom: hPosition.relativeFrom,
1427
- posOffset: val
1428
- });
1429
- }, "onChange"),
1430
- className: styles.imageCommonPanelInput
1431
- }
1432
- ))))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-position.toTheRightOf"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1433
- Select,
1434
- {
1435
- value: String(hPosition.relativeFrom),
1436
- disabled,
1437
- options: HORIZONTAL_RELATIVE_FROM,
1438
- onChange: handleHorizontalRelativeFromChange
1439
- }
1440
- )))))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-position.vertical")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-position.absolutePosition"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1441
- InputNumber,
1442
- {
1443
- min: MIN_OFFSET,
1444
- max: MAX_OFFSET,
1445
- precision: 1,
1446
- disabled,
1447
- value: vPosition.posOffset,
1448
- onChange: /* @__PURE__ */ __name((val) => {
1449
- handlePositionChange("positionV", {
1450
- relativeFrom: vPosition.relativeFrom,
1451
- posOffset: val
1452
- });
1453
- }, "onChange"),
1454
- className: styles.imageCommonPanelInput
1455
- }
1456
- ))))), /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSpan2) }, /* @__PURE__ */ React.createElement("label", null, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, localeService.t("image-position.bellow"))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(
1457
- Select,
1458
- {
1459
- disabled,
1460
- value: String(vPosition.relativeFrom),
1461
- options: VERTICAL_RELATIVE_FROM,
1462
- onChange: handleVerticalRelativeFromChange
1463
- }
1464
- )))))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow }, /* @__PURE__ */ React.createElement("div", { className: clsx(styles.imageCommonPanelColumn, styles.imageCommonPanelSubtitle) }, /* @__PURE__ */ React.createElement("div", null, localeService.t("image-position.options")))), /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelRow, style: { marginBottom: "50px" } }, /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanelColumn }, /* @__PURE__ */ React.createElement(Checkbox, { disabled, checked: followTextMove, onChange: handleFollowTextMoveCheck }, localeService.t("image-position.moveObjectWithText")))));
1465
- }, "DocDrawingPosition"), DocDrawingPanel = /* @__PURE__ */ __name(() => {
1466
- const drawingManagerService = useDependency(IDrawingManagerService), focusDrawings = drawingManagerService.getFocusDrawings(), [drawings, setDrawings] = useState(focusDrawings);
1467
- return useEffect(() => {
1468
- const focusDispose = drawingManagerService.focus$.subscribe((drawings2) => {
1469
- setDrawings(drawings2);
1470
- });
1471
- return () => {
1472
- focusDispose.unsubscribe();
1473
- };
1474
- }, []), !!(drawings != null && drawings.length) && /* @__PURE__ */ React.createElement("div", { className: styles.imageCommonPanel }, /* @__PURE__ */ React.createElement(DrawingCommonPanel, { drawings, hasAlign: !1, hasCropper: !1, hasGroup: !1, hasTransform: !1 }), /* @__PURE__ */ React.createElement(DocDrawingTextWrap, { drawings }), /* @__PURE__ */ React.createElement(DocDrawingPosition, { drawings }));
1475
- }, "DocDrawingPanel"), ClearDocDrawingTransformerOperation = {
1476
- id: "doc.operation.clear-drawing-transformer",
1477
- type: CommandType.MUTATION,
1478
- handler: /* @__PURE__ */ __name((accessor, params) => {
1479
- const renderManagerService = accessor.get(IRenderManagerService);
1480
- return params.forEach((unitId) => {
1481
- var _a8, _b;
1482
- (_b = (_a8 = renderManagerService.getRenderById(unitId)) == null ? void 0 : _a8.scene.getTransformer()) == null || _b.debounceRefreshControls();
1483
- }), !0;
1484
- }, "handler")
1485
- }, MoveDocDrawingsCommand = {
1486
- id: "doc.command.move-drawing",
1487
- type: CommandType.COMMAND,
1488
- handler: /* @__PURE__ */ __name((accessor, params) => {
1489
- const commandService = accessor.get(ICommandService), docDrawingService = accessor.get(IDocDrawingService), univerInstanceService = accessor.get(IUniverInstanceService), renderManagerService = accessor.get(IRenderManagerService), { direction } = params, drawings = docDrawingService.getFocusDrawings();
1490
- if (drawings.length === 0)
1491
- return !1;
1492
- const unitId = drawings[0].unitId, renderObject = renderManagerService.getRenderById(unitId), scene = renderObject == null ? void 0 : renderObject.scene;
1493
- if (scene == null)
1494
- return !1;
1495
- const transformer = scene.getTransformerByCreate(), documentDataModel = univerInstanceService.getUniverDocInstance(unitId), newDrawings = drawings.map((drawing) => {
1496
- var _a8, _b, _c, _d, _e;
1497
- const { drawingId } = drawing, drawingData = (_a8 = documentDataModel == null ? void 0 : documentDataModel.getSnapshot().drawings) == null ? void 0 : _a8[drawingId];
1498
- if (drawingData == null || drawingData.layoutType === PositionedObjectLayoutType.INLINE)
1499
- return null;
1500
- const { positionH, positionV } = drawingData.docTransform, newPositionH = { ...positionH }, newPositionV = { ...positionV };
1501
- return direction === Direction.UP ? newPositionV.posOffset = ((_b = newPositionV.posOffset) != null ? _b : 0) - 2 : direction === Direction.DOWN ? newPositionV.posOffset = ((_c = newPositionV.posOffset) != null ? _c : 0) + 2 : direction === Direction.LEFT ? newPositionH.posOffset = ((_d = newPositionH.posOffset) != null ? _d : 0) - 2 : direction === Direction.RIGHT && (newPositionH.posOffset = ((_e = newPositionH.posOffset) != null ? _e : 0) + 2), {
1502
- drawingId,
1503
- key: direction === Direction.UP || direction === Direction.DOWN ? "positionV" : "positionH",
1504
- value: direction === Direction.UP || direction === Direction.DOWN ? newPositionV : newPositionH
1505
- };
1506
- }).filter((drawing) => drawing != null);
1507
- if (newDrawings.length === 0)
1508
- return !1;
1509
- const result = commandService.syncExecuteCommand(UpdateDrawingDocTransformCommand.id, {
1510
- unitId,
1511
- subUnitId: unitId,
1512
- drawings: newDrawings
1513
- });
1514
- return transformer.refreshControls(), !!result;
1515
- }, "handler")
1516
- }, DeleteDocDrawingsCommand = {
1517
- id: "doc.command.delete-drawing",
1518
- type: CommandType.COMMAND,
1519
- handler: /* @__PURE__ */ __name((accessor) => {
1520
- const commandService = accessor.get(ICommandService), drawings = accessor.get(IDocDrawingService).getFocusDrawings();
1521
- if (drawings.length === 0)
1522
- return !1;
1523
- const { unitId } = drawings[0], newDrawings = drawings.map((drawing) => {
1524
- const { unitId: unitId2, subUnitId, drawingId, drawingType } = drawing;
1525
- return {
1526
- unitId: unitId2,
1527
- subUnitId,
1528
- drawingId,
1529
- drawingType
1530
- };
1531
- });
1532
- return commandService.executeCommand(RemoveDocDrawingCommand.id, {
1533
- unitId,
1534
- drawings: newDrawings
1535
- });
1536
- }, "handler")
1537
- };
1538
- function whenDocDrawingFocused(contextService) {
1539
- return contextService.getContextValue(FOCUSING_UNIVER_EDITOR) && contextService.getContextValue(FOCUSING_COMMON_DRAWINGS);
1540
- }
1541
- __name(whenDocDrawingFocused, "whenDocDrawingFocused");
1542
- const MoveDrawingDownShortcutItem = {
1543
- id: MoveDocDrawingsCommand.id,
1544
- description: "shortcut.doc.drawing-move-down",
1545
- group: "4_doc-drawing-view",
1546
- binding: KeyCode.ARROW_DOWN,
1547
- priority: 100,
1548
- preconditions: whenDocDrawingFocused,
1549
- staticParameters: {
1550
- direction: Direction.DOWN
1551
- }
1552
- }, MoveDrawingUpShortcutItem = {
1553
- id: MoveDocDrawingsCommand.id,
1554
- description: "shortcut.doc.drawing-move-up",
1555
- group: "4_doc-drawing-view",
1556
- binding: KeyCode.ARROW_UP,
1557
- priority: 100,
1558
- preconditions: whenDocDrawingFocused,
1559
- staticParameters: {
1560
- direction: Direction.UP
1561
- }
1562
- }, MoveDrawingLeftShortcutItem = {
1563
- id: MoveDocDrawingsCommand.id,
1564
- description: "shortcut.doc.drawing-move-left",
1565
- group: "4_doc-drawing-view",
1566
- binding: KeyCode.ARROW_LEFT,
1567
- priority: 100,
1568
- preconditions: whenDocDrawingFocused,
1569
- staticParameters: {
1570
- direction: Direction.LEFT
1571
- }
1572
- }, MoveDrawingRightShortcutItem = {
1573
- id: MoveDocDrawingsCommand.id,
1574
- description: "shortcut.doc.drawing-move-right",
1575
- group: "4_doc-drawing-view",
1576
- binding: KeyCode.ARROW_RIGHT,
1577
- priority: 100,
1578
- preconditions: whenDocDrawingFocused,
1579
- staticParameters: {
1580
- direction: Direction.RIGHT
1581
- }
1582
- }, DeleteDrawingsShortcutItem = {
1583
- id: DeleteDocDrawingsCommand.id,
1584
- description: "shortcut.doc.drawing-delete",
1585
- group: "4_doc-drawing-view",
1586
- // when focusing on any other input tag do not trigger this shortcut
1587
- preconditions: whenDocDrawingFocused,
1588
- binding: KeyCode.DELETE,
1589
- mac: KeyCode.BACKSPACE
1590
- }, menuSchema = {
1591
- [RibbonStartGroup.LAYOUT]: {
1592
- [IMAGE_MENU_ID]: {
1593
- order: 0,
1594
- menuItemFactory: ImageMenuFactory,
1595
- [IMAGE_MENU_UPLOAD_FLOAT_ID]: {
1596
- order: 0,
1597
- menuItemFactory: UploadFloatImageMenuFactory
1598
- }
1599
- }
1600
- }
1601
- };
1602
- var __defProp$4 = Object.defineProperty, __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor, __decorateClass$4 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1603
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1604
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
1605
- return kind && result && __defProp$4(target, key, result), result;
1606
- }, "__decorateClass$4"), __decorateParam$4 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$4"), _a3;
1607
- let DocDrawingUIController = (_a3 = class extends Disposable {
1608
- constructor(_componentManager, _menuManagerService, _commandService, _shortcutService) {
1609
- super(), this._componentManager = _componentManager, this._menuManagerService = _menuManagerService, this._commandService = _commandService, this._shortcutService = _shortcutService, this._init();
1610
- }
1611
- _initCustomComponents() {
1612
- const componentManager = this._componentManager;
1613
- this.disposeWithMe(componentManager.register(ImageUploadIcon, AddImageSingle)), this.disposeWithMe(componentManager.register(COMPONENT_DOC_DRAWING_PANEL, DocDrawingPanel));
1614
- }
1615
- _initMenus() {
1616
- this._menuManagerService.mergeMenu(menuSchema);
1617
- }
1618
- _initCommands() {
1619
- [
1620
- InsertDocImageCommand,
1621
- InsertDocDrawingCommand,
1622
- UpdateDocDrawingWrappingStyleCommand,
1623
- UpdateDocDrawingDistanceCommand,
1624
- UpdateDocDrawingWrapTextCommand,
1625
- UpdateDrawingDocTransformCommand,
1626
- IMoveInlineDrawingCommand,
1627
- ITransformNonInlineDrawingCommand,
1628
- RemoveDocDrawingCommand,
1629
- SidebarDocDrawingOperation,
1630
- ClearDocDrawingTransformerOperation,
1631
- EditDocDrawingOperation,
1632
- GroupDocDrawingCommand,
1633
- UngroupDocDrawingCommand,
1634
- MoveDocDrawingsCommand,
1635
- DeleteDocDrawingsCommand,
1636
- SetDocDrawingArrangeCommand
1637
- ].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
1638
- }
1639
- _initShortcuts() {
1640
- [
1641
- // sheet drawing shortcuts
1642
- MoveDrawingDownShortcutItem,
1643
- MoveDrawingUpShortcutItem,
1644
- MoveDrawingLeftShortcutItem,
1645
- MoveDrawingRightShortcutItem,
1646
- DeleteDrawingsShortcutItem
1647
- ].forEach((item) => {
1648
- this.disposeWithMe(this._shortcutService.registerShortcut(item));
1649
- });
1650
- }
1651
- _init() {
1652
- this._initCommands(), this._initCustomComponents(), this._initMenus(), this._initShortcuts();
1653
- }
1654
- }, __name(_a3, "DocDrawingUIController"), _a3);
1655
- DocDrawingUIController = __decorateClass$4([
1656
- OnLifecycle(LifecycleStages.Ready, DocDrawingUIController),
1657
- __decorateParam$4(0, Inject(ComponentManager)),
1658
- __decorateParam$4(1, IMenuManagerService),
1659
- __decorateParam$4(2, ICommandService),
1660
- __decorateParam$4(3, IShortcutService)
1661
- ], DocDrawingUIController);
1662
- var __defProp$3 = Object.defineProperty, __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor, __decorateClass$3 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1663
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1664
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
1665
- return kind && result && __defProp$3(target, key, result), result;
1666
- }, "__decorateClass$3"), __decorateParam$3 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$3"), _a4;
1667
- let DocDrawingTransformUpdateController = (_a4 = class extends Disposable {
1668
- constructor(_context, _docSkeletonManagerService, _commandService, _editorService, _drawingManagerService, _docRefreshDrawingsService, _univerInstanceService, _lifecycleService) {
1669
- super();
1670
- __publicField(this, "_liquid", new Liquid());
1671
- this._context = _context, this._docSkeletonManagerService = _docSkeletonManagerService, this._commandService = _commandService, this._editorService = _editorService, this._drawingManagerService = _drawingManagerService, this._docRefreshDrawingsService = _docRefreshDrawingsService, this._univerInstanceService = _univerInstanceService, this._lifecycleService = _lifecycleService, this._initialize(), this._commandExecutedListener();
1672
- }
1673
- _initialize() {
1674
- this._initialRenderRefresh(), this._drawingInitializeListener(), this._initResize();
1675
- }
1676
- _initialRenderRefresh() {
1677
- this._docSkeletonManagerService.currentSkeleton$.subscribe((documentSkeleton) => {
1678
- documentSkeleton != null && this._refreshDrawing(documentSkeleton);
1679
- }), this._docRefreshDrawingsService.refreshDrawings$.subscribe((skeleton) => {
1680
- skeleton != null && this._refreshDrawing(skeleton);
1681
- });
1682
- }
1683
- _commandExecutedListener() {
1684
- const updateCommandList = [RichTextEditingMutation.id, SetDocZoomRatioOperation.id];
1685
- this.disposeWithMe(
1686
- this._commandService.onCommandExecuted((command) => {
1687
- if (updateCommandList.includes(command.id)) {
1688
- const params = command.params, { unitId: commandUnitId } = params, { unitId, mainComponent } = this._context;
1689
- if (commandUnitId !== unitId)
1690
- return;
1691
- const skeleton = this._docSkeletonManagerService.getSkeleton();
1692
- if (skeleton == null)
1693
- return;
1694
- if (this._editorService.isEditor(unitId)) {
1695
- mainComponent == null || mainComponent.makeDirty();
1696
- return;
1697
- }
1698
- this._refreshDrawing(skeleton);
1699
- }
1700
- })
1701
- );
1702
- }
1703
- _initResize() {
1704
- this.disposeWithMe(
1705
- fromEventSubject(this._context.engine.onTransformChange$).pipe(
1706
- filter((evt) => evt.type === TRANSFORM_CHANGE_OBSERVABLE_TYPE.resize),
1707
- debounceTime(16)
1708
- ).subscribe(() => {
1709
- var _a8;
1710
- const skeleton = this._docSkeletonManagerService.getSkeleton(), { scene } = this._context;
1711
- (_a8 = scene.getTransformer()) == null || _a8.refreshControls(), this._refreshDrawing(skeleton);
1712
- })
1713
- );
1714
- }
1715
- _refreshDrawing(skeleton) {
1716
- var _a8, _b;
1717
- const skeletonData = skeleton == null ? void 0 : skeleton.getSkeletonData(), { mainComponent, unitId } = this._context, documentComponent = mainComponent;
1718
- if (!skeletonData)
1719
- return;
1720
- const { left: docsLeft, top: docsTop, pageLayoutType, pageMarginLeft, pageMarginTop } = documentComponent, { pages, skeHeaders, skeFooters } = skeletonData, updateDrawingMap = {};
1721
- this._liquid.reset();
1722
- for (let i = 0, len = pages.length; i < len; i++) {
1723
- const page = pages[i], { headerId, footerId, pageWidth } = page;
1724
- if (headerId) {
1725
- const headerPage = (_a8 = skeHeaders.get(headerId)) == null ? void 0 : _a8.get(pageWidth);
1726
- headerPage && this._calculateDrawingPosition(
1727
- unitId,
1728
- headerPage,
1729
- docsLeft,
1730
- docsTop,
1731
- updateDrawingMap,
1732
- headerPage.marginTop,
1733
- page.marginLeft
1734
- );
1735
- }
1736
- if (footerId) {
1737
- const footerPage = (_b = skeFooters.get(footerId)) == null ? void 0 : _b.get(pageWidth);
1738
- footerPage && this._calculateDrawingPosition(
1739
- unitId,
1740
- footerPage,
1741
- docsLeft,
1742
- docsTop,
1743
- updateDrawingMap,
1744
- page.pageHeight - page.marginBottom + footerPage.marginTop,
1745
- page.marginLeft
1746
- );
1747
- }
1748
- this._calculateDrawingPosition(unitId, page, docsLeft, docsTop, updateDrawingMap, page.marginTop, page.marginLeft), this._liquid.translatePage(page, pageLayoutType, pageMarginLeft, pageMarginTop);
1749
- }
1750
- const updateDrawings = Object.values(updateDrawingMap), nonMultiDrawings = updateDrawings.filter((drawing) => !drawing.isMultiTransform), multiDrawings = updateDrawings.filter((drawing) => drawing.isMultiTransform);
1751
- nonMultiDrawings.length > 0 && this._drawingManagerService.refreshTransform(nonMultiDrawings), multiDrawings.length > 0 && this._handleMultiDrawingsTransform(multiDrawings);
1752
- }
1753
- _handleMultiDrawingsTransform(multiDrawings) {
1754
- const { scene, unitId } = this._context, transformer = scene.getTransformerByCreate();
1755
- multiDrawings.forEach((updateParam) => {
1756
- const param = this._drawingManagerService.getDrawingByParam(updateParam);
1757
- param != null && (param.transform = updateParam.transform, param.transforms = updateParam.transforms, param.isMultiTransform = updateParam.isMultiTransform);
1758
- });
1759
- const selectedObjectKeys = [...transformer.getSelectedObjectMap().keys()], allMultiDrawings = Object.values(this._drawingManagerService.getDrawingData(unitId, unitId)).filter((drawing) => drawing.isMultiTransform === BooleanNumber.TRUE);
1760
- this._drawingManagerService.removeNotification(allMultiDrawings), this._drawingManagerService.addNotification(multiDrawings);
1761
- for (const key of selectedObjectKeys) {
1762
- const drawingShape = scene.getObject(key);
1763
- drawingShape && transformer.setSelectedControl(drawingShape);
1764
- }
1765
- }
1766
- _calculateDrawingPosition(unitId, page, docsLeft, docsTop, updateDrawingMap, marginTop, marginLeft) {
1767
- const { skeDrawings } = page;
1768
- this._liquid.translatePagePadding({
1769
- marginTop,
1770
- marginLeft
1771
- }), skeDrawings.forEach((drawing) => {
1772
- const { aLeft, aTop, height, width, angle, drawingId, drawingOrigin } = drawing, behindText = drawingOrigin.layoutType === PositionedObjectLayoutType.WRAP_NONE && drawingOrigin.behindDoc === BooleanNumber.TRUE, { isMultiTransform = BooleanNumber.FALSE } = drawingOrigin, transform = {
1773
- left: aLeft + docsLeft + this._liquid.x,
1774
- top: aTop + docsTop + this._liquid.y,
1775
- width,
1776
- height,
1777
- angle
1778
- };
1779
- updateDrawingMap[drawingId] == null ? updateDrawingMap[drawingId] = {
1780
- unitId,
1781
- subUnitId: unitId,
1782
- drawingId,
1783
- behindText,
1784
- transform,
1785
- transforms: [transform],
1786
- isMultiTransform
1787
- } : isMultiTransform === BooleanNumber.TRUE && updateDrawingMap[drawingId].transforms.push(transform);
1788
- }), this._liquid.restorePagePadding({
1789
- marginTop,
1790
- marginLeft
1791
- });
1792
- }
1793
- _drawingInitializeListener() {
1794
- const init = /* @__PURE__ */ __name(() => {
1795
- const skeleton = this._docSkeletonManagerService.getSkeleton();
1796
- skeleton != null && (this._refreshDrawing(skeleton), this._drawingManagerService.initializeNotification(this._context.unitId));
1797
- }, "init");
1798
- this._lifecycleService.stage === LifecycleStages.Steady ? setTimeout(() => {
1799
- init();
1800
- }, 1e3) : this._lifecycleService.lifecycle$.pipe(filter((stage) => stage === LifecycleStages.Steady)).subscribe(init);
1801
- }
1802
- }, __name(_a4, "DocDrawingTransformUpdateController"), _a4);
1803
- DocDrawingTransformUpdateController = __decorateClass$3([
1804
- __decorateParam$3(1, Inject(DocSkeletonManagerService)),
1805
- __decorateParam$3(2, ICommandService),
1806
- __decorateParam$3(3, IEditorService),
1807
- __decorateParam$3(4, IDrawingManagerService),
1808
- __decorateParam$3(5, Inject(DocRefreshDrawingsService)),
1809
- __decorateParam$3(6, IUniverInstanceService),
1810
- __decorateParam$3(7, Inject(LifecycleService))
1811
- ], DocDrawingTransformUpdateController);
1812
- var __defProp$2 = Object.defineProperty, __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor, __decorateClass$2 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1813
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1814
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
1815
- return kind && result && __defProp$2(target, key, result), result;
1816
- }, "__decorateClass$2"), __decorateParam$2 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$2");
1817
- function getAddOrRemoveDrawings(actions) {
1818
- var _a8, _b, _c, _d;
1819
- if (JSONX.isNoop(actions) || !Array.isArray(actions))
1820
- return null;
1821
- const drawingsOp = actions.find((action) => Array.isArray(action) && (action == null ? void 0 : action[0]) === "drawings");
1822
- if (drawingsOp == null || !Array.isArray(drawingsOp) || drawingsOp.length < 3 || typeof drawingsOp[1] == "string" && typeof drawingsOp[2] != "object" || Array.isArray(drawingsOp[1]) && typeof drawingsOp[1][1] != "object")
1823
- return null;
1824
- const drawings = [];
1825
- if (Array.isArray(drawingsOp == null ? void 0 : drawingsOp[1]))
1826
- for (const op of drawingsOp)
1827
- Array.isArray(op) && drawings.push({
1828
- type: (_a8 = op == null ? void 0 : op[1]) != null && _a8.i ? "add" : "remove",
1829
- drawingId: op == null ? void 0 : op[0],
1830
- drawing: (_b = op == null ? void 0 : op[1]) == null ? void 0 : _b.i
1831
- });
1832
- else
1833
- drawings.push({
1834
- type: (_c = drawingsOp[2]) != null && _c.i ? "add" : "remove",
1835
- drawingId: drawingsOp[1],
1836
- drawing: (_d = drawingsOp[2]) == null ? void 0 : _d.i
1837
- });
1838
- return drawings;
1839
- }
1840
- __name(getAddOrRemoveDrawings, "getAddOrRemoveDrawings");
1841
- function getReOrderedDrawings(actions) {
1842
- if (!Array.isArray(actions) || actions.length < 3 || actions[0] !== "drawingsOrder")
1843
- return [];
1844
- const drawingIndexes = [];
1845
- for (let i = 1; i < actions.length; i++) {
1846
- const action = actions[i];
1847
- if (Array.isArray(action) && typeof action[0] == "number" && typeof action[1] == "object")
1848
- drawingIndexes.push(action[0]);
1849
- else {
1850
- drawingIndexes.length = 0;
1851
- break;
1852
- }
1853
- }
1854
- return drawingIndexes;
1855
- }
1856
- __name(getReOrderedDrawings, "getReOrderedDrawings");
1857
- var _a5;
1858
- let DocDrawingAddRemoveController = (_a5 = class extends Disposable {
1859
- constructor(_univerInstanceService, _commandService, _drawingManagerService, _docDrawingService, _renderManagerService) {
1860
- super(), this._univerInstanceService = _univerInstanceService, this._commandService = _commandService, this._drawingManagerService = _drawingManagerService, this._docDrawingService = _docDrawingService, this._renderManagerService = _renderManagerService, this._initialize();
1861
- }
1862
- _initialize() {
1863
- this._commandExecutedListener();
1864
- }
1865
- _commandExecutedListener() {
1866
- this.disposeWithMe(
1867
- this._commandService.beforeCommandExecuted((command) => {
1868
- if (command.id !== RichTextEditingMutation.id)
1869
- return;
1870
- const params = command.params, { unitId, actions } = params, addOrRemoveDrawings = getAddOrRemoveDrawings(actions);
1871
- if (addOrRemoveDrawings != null)
1872
- for (const { type, drawingId, drawing } of addOrRemoveDrawings)
1873
- type === "add" ? this._addDrawings(unitId, [drawing]) : this._removeDrawings(unitId, [drawingId]);
1874
- })
1875
- ), this.disposeWithMe(
1876
- this._commandService.onCommandExecuted((command) => {
1877
- if (command.id !== RichTextEditingMutation.id)
1878
- return;
1879
- const params = command.params, { unitId, actions } = params;
1880
- getReOrderedDrawings(actions).length > 0 && this._updateDrawingsOrder(unitId);
1881
- })
1882
- ), this.disposeWithMe(
1883
- this._commandService.onCommandExecuted((command) => {
1884
- var _a8;
1885
- if (command.id !== UndoCommand.id && command.id !== RedoCommand.id)
1886
- return;
1887
- const unitId = (_a8 = this._univerInstanceService.getCurrentUniverDocInstance()) == null ? void 0 : _a8.getUnitId(), focusedDrawings = this._drawingManagerService.getFocusDrawings();
1888
- if (unitId == null || focusedDrawings.length === 0)
1889
- return;
1890
- const renderObject = this._renderManagerService.getRenderById(unitId), scene = renderObject == null ? void 0 : renderObject.scene;
1891
- if (scene == null)
1892
- return !1;
1893
- scene.getTransformerByCreate().refreshControls();
1894
- })
1895
- );
1896
- }
1897
- _addDrawings(unitId, drawings) {
1898
- const drawingManagerService = this._drawingManagerService, docDrawingService = this._docDrawingService, jsonOp = this._docDrawingService.getBatchAddOp(drawings), { subUnitId, redo: op, objects } = jsonOp;
1899
- drawingManagerService.applyJson1(unitId, subUnitId, op), docDrawingService.applyJson1(unitId, subUnitId, op), drawingManagerService.addNotification(objects), docDrawingService.addNotification(objects);
1900
- }
1901
- _removeDrawings(unitId, drawingIds) {
1902
- const drawingManagerService = this._drawingManagerService, docDrawingService = this._docDrawingService, jsonOp = this._docDrawingService.getBatchRemoveOp(drawingIds.map((drawingId) => ({
1903
- unitId,
1904
- subUnitId: unitId,
1905
- drawingId
1906
- }))), { subUnitId, redo: op, objects } = jsonOp;
1907
- drawingManagerService.applyJson1(unitId, subUnitId, op), docDrawingService.applyJson1(unitId, subUnitId, op), drawingManagerService.removeNotification(objects), docDrawingService.removeNotification(objects);
1908
- }
1909
- _updateDrawingsOrder(unitId) {
1910
- const documentDataModel = this._univerInstanceService.getUniverDocInstance(unitId);
1911
- if (documentDataModel == null)
1912
- return;
1913
- const drawingsOrder = documentDataModel.getSnapshot().drawingsOrder;
1914
- if (drawingsOrder == null)
1915
- return;
1916
- const drawingManagerService = this._drawingManagerService, docDrawingService = this._docDrawingService;
1917
- drawingManagerService.setDrawingOrder(unitId, unitId, drawingsOrder), docDrawingService.setDrawingOrder(unitId, unitId, drawingsOrder);
1918
- const objects = {
1919
- unitId,
1920
- subUnitId: unitId,
1921
- drawingIds: drawingsOrder
1922
- };
1923
- drawingManagerService.orderNotification(objects), docDrawingService.orderNotification(objects);
1924
- }
1925
- }, __name(_a5, "DocDrawingAddRemoveController"), _a5);
1926
- DocDrawingAddRemoveController = __decorateClass$2([
1927
- OnLifecycle(LifecycleStages.Ready, DocDrawingAddRemoveController),
1928
- __decorateParam$2(0, IUniverInstanceService),
1929
- __decorateParam$2(1, ICommandService),
1930
- __decorateParam$2(2, IDrawingManagerService),
1931
- __decorateParam$2(3, IDocDrawingService),
1932
- __decorateParam$2(4, IRenderManagerService)
1933
- ], DocDrawingAddRemoveController);
1934
- var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
1935
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
1936
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
1937
- return kind && result && __defProp$1(target, key, result), result;
1938
- }, "__decorateClass$1"), __decorateParam$1 = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$1");
1939
- const INLINE_DRAWING_ANCHOR_KEY_PREFIX = "__InlineDrawingAnchor__";
1940
- function isInTableCell(nodePosition) {
1941
- const { path } = nodePosition;
1942
- return path.some((p) => p === "cells");
1943
- }
1944
- __name(isInTableCell, "isInTableCell");
1945
- var _a6;
1946
- let DocDrawingTransformerController = (_a6 = class extends Disposable {
1947
- constructor(_commandService, _univerInstanceService, _drawingManagerService, _renderManagerService) {
1948
- super();
1949
- __publicField(this, "_liquid", new Liquid());
1950
- __publicField(this, "_listenerOnImageMap", /* @__PURE__ */ new Set());
1951
- // Use to cache the drawings is under transforming or scaling.
1952
- __publicField(this, "_transformerCache", /* @__PURE__ */ new Map());
1953
- __publicField(this, "_anchorShape");
1954
- this._commandService = _commandService, this._univerInstanceService = _univerInstanceService, this._drawingManagerService = _drawingManagerService, this._renderManagerService = _renderManagerService, this._init();
1955
- }
1956
- _init() {
1957
- this._listenDrawingFocus();
1958
- }
1959
- _listenDrawingFocus() {
1960
- this.disposeWithMe(
1961
- this._drawingManagerService.add$.subscribe((drawingParams) => {
1962
- if (drawingParams.length !== 0)
1963
- for (const drawingParam of drawingParams) {
1964
- const { unitId } = drawingParam;
1965
- this._listenerOnImageMap.has(unitId) || (this._listenTransformerChange(unitId), this._listenerOnImageMap.add(unitId));
1966
- }
1967
- })
1968
- );
1969
- }
1970
- // Only handle one drawing transformer change.
1971
- // eslint-disable-next-line max-lines-per-function
1972
- _listenTransformerChange(unitId) {
1973
- var _a8;
1974
- const transformer = (_a8 = this._getSceneAndTransformerByDrawingSearch(unitId)) == null ? void 0 : _a8.transformer;
1975
- if (transformer == null)
1976
- return;
1977
- this.disposeWithMe(
1978
- toDisposable(
1979
- transformer.changeStart$.subscribe((state) => {
1980
- var _a9;
1981
- this._transformerCache.clear();
1982
- const { objects } = state;
1983
- for (const object of objects.values()) {
1984
- const { oKey, width, height, left, top, angle } = object, drawing = this._drawingManagerService.getDrawingOKey(oKey);
1985
- if (drawing == null)
1986
- continue;
1987
- const documentDataModel = this._univerInstanceService.getUniverDocInstance(drawing.unitId), drawingData = (_a9 = documentDataModel == null ? void 0 : documentDataModel.getSnapshot().drawings) == null ? void 0 : _a9[drawing.drawingId];
1988
- (drawingData == null ? void 0 : drawingData.layoutType) === PositionedObjectLayoutType.INLINE && object.setOpacity(0.2), drawingData != null && this._transformerCache.set(drawing.drawingId, {
1989
- drawing: drawingData,
1990
- top,
1991
- left,
1992
- width,
1993
- height,
1994
- angle
1995
- });
1996
- }
1997
- })
1998
- )
1999
- );
2000
- const throttleMultipleDrawingUpdate = throttle(this._updateMultipleDrawingDocTransform.bind(this), 50);
2001
- throttle(this._nonInlineDrawingTransform.bind(this), 50), this.disposeWithMe(
2002
- toDisposable(
2003
- transformer.changing$.subscribe((state) => {
2004
- const { objects, offsetX, offsetY } = state;
2005
- if (objects.size > 1)
2006
- throttleMultipleDrawingUpdate(objects);
2007
- else if (objects.size === 1) {
2008
- const drawingCache = this._transformerCache.values().next().value, object = objects.values().next().value, { width, height, top, left, angle } = object;
2009
- if (drawingCache && width === drawingCache.width && height === drawingCache.height && top === drawingCache.top && left === drawingCache.left && angle === drawingCache.angle)
2010
- return;
2011
- drawingCache && (drawingCache.drawing.layoutType, PositionedObjectLayoutType.INLINE), drawingCache && drawingCache.drawing.layoutType === PositionedObjectLayoutType.INLINE && offsetX != null && offsetY != null && this._updateInlineDrawingAnchor(drawingCache.drawing, offsetX, offsetY);
2012
- }
2013
- })
2014
- )
2015
- ), this.disposeWithMe(
2016
- toDisposable(
2017
- // eslint-disable-next-line complexity
2018
- transformer.changeEnd$.subscribe((state) => {
2019
- const { objects, offsetX, offsetY } = state;
2020
- for (const object of objects.values()) {
2021
- const drawing = this._drawingManagerService.getDrawingOKey(object.oKey);
2022
- if (drawing == null)
2023
- continue;
2024
- const drawingCache = this._transformerCache.get(drawing == null ? void 0 : drawing.drawingId);
2025
- (drawingCache == null ? void 0 : drawingCache.drawing.layoutType) === PositionedObjectLayoutType.INLINE && object.setOpacity(1);
2026
- }
2027
- if (this._anchorShape && this._anchorShape.hide(), objects.size > 1)
2028
- this._updateMultipleDrawingDocTransform(objects);
2029
- else if (objects.size === 1) {
2030
- const drawingCache = this._transformerCache.values().next().value, object = objects.values().next().value, { width, height, top, left, angle } = object;
2031
- if (drawingCache && width === drawingCache.width && height === drawingCache.height && top === drawingCache.top && left === drawingCache.left && angle === drawingCache.angle)
2032
- return;
2033
- drawingCache && drawingCache.drawing.layoutType === PositionedObjectLayoutType.INLINE ? width !== drawingCache.width || height !== drawingCache.height || angle !== drawingCache.angle ? this._updateDrawingSize(drawingCache, object) : offsetX != null && offsetY != null && this._moveInlineDrawing(drawingCache.drawing, offsetX, offsetY) : drawingCache && this._nonInlineDrawingTransform(drawingCache.drawing, object);
2034
- }
2035
- this._transformerCache.clear();
2036
- })
2037
- )
2038
- );
2039
- }
2040
- // eslint-disable-next-line max-lines-per-function
2041
- _updateMultipleDrawingDocTransform(objects) {
2042
- if (objects.size < 1)
2043
- return;
2044
- const drawings = [];
2045
- let unitId, subUnitId;
2046
- for (const object of objects.values()) {
2047
- const { oKey, left, top, angle } = object;
2048
- let { width, height } = object;
2049
- const drawing = this._drawingManagerService.getDrawingOKey(oKey);
2050
- if (drawing == null)
2051
- continue;
2052
- unitId == null && (unitId = drawing.unitId), subUnitId == null && (subUnitId = drawing.subUnitId);
2053
- const drawingCache = this._transformerCache.get(drawing.drawingId);
2054
- if (drawingCache == null)
2055
- continue;
2056
- const { drawing: drawingData, top: oldTop, left: oldLeft, width: oldWidth, height: oldHeight, angle: oldAngle } = drawingCache, { width: maxWidth, height: maxHeight } = this._getPageContentSize(drawingData);
2057
- if (width = Math.min(width, maxWidth), height = Math.min(height, maxHeight), (oldWidth !== width || oldHeight !== height) && drawings.push({
2058
- drawingId: drawing.drawingId,
2059
- key: "size",
2060
- value: {
2061
- width,
2062
- height
2063
- }
2064
- }), oldAngle !== angle && drawings.push({
2065
- drawingId: drawing.drawingId,
2066
- key: "angle",
2067
- value: angle
2068
- }), oldTop !== top || oldLeft !== left) {
2069
- const verticalDelta = top - oldTop, horizontalDelta = left - oldLeft;
2070
- verticalDelta !== 0 && drawings.push({
2071
- drawingId: drawing.drawingId,
2072
- key: "positionV",
2073
- value: {
2074
- relativeFrom: drawingData.docTransform.positionV.relativeFrom,
2075
- posOffset: drawingData.docTransform.positionV.posOffset + verticalDelta
2076
- }
2077
- }), horizontalDelta !== 0 && drawings.push({
2078
- drawingId: drawing.drawingId,
2079
- key: "positionH",
2080
- value: {
2081
- relativeFrom: drawingData.docTransform.positionH.relativeFrom,
2082
- posOffset: drawingData.docTransform.positionH.posOffset + horizontalDelta
2083
- }
2084
- });
2085
- }
2086
- }
2087
- drawings.length > 0 && unitId && subUnitId && this._commandService.executeCommand(UpdateDrawingDocTransformCommand.id, {
2088
- unitId,
2089
- subUnitId,
2090
- drawings
2091
- });
2092
- }
2093
- // TODO: @JOCS, Use to draw and update the drawing anchor.
2094
- _updateDrawingAnchor(objects) {
2095
- if (this._transformerCache.size !== 1)
2096
- return;
2097
- const drawingCache = this._transformerCache.values().next().value, object = objects.values().next().value;
2098
- this._getDrawingAnchor(drawingCache.drawing, object);
2099
- }
2100
- _updateInlineDrawingAnchor(drawing, offsetX, offsetY) {
2101
- var _a8;
2102
- if (this._transformerCache.size !== 1)
2103
- return;
2104
- const { contentBoxPointGroup } = (_a8 = this._getInlineDrawingAnchor(drawing, offsetX, offsetY)) != null ? _a8 : {};
2105
- contentBoxPointGroup != null && this._createOrUpdateInlineAnchor(drawing.unitId, contentBoxPointGroup);
2106
- }
2107
- _getInlineDrawingAnchor(drawing, offsetX, offsetY) {
2108
- var _a8, _b;
2109
- const currentRender = this._renderManagerService.getRenderById(drawing.unitId), skeleton = currentRender == null ? void 0 : currentRender.with(DocSkeletonManagerService).getSkeleton();
2110
- if (currentRender == null)
2111
- return;
2112
- const { mainComponent, scene } = currentRender, documentComponent = mainComponent, activeViewport = scene.getViewports()[0], {
2113
- pageLayoutType = PageLayoutType.VERTICAL,
2114
- pageMarginLeft,
2115
- pageMarginTop
2116
- } = documentComponent.getOffsetConfig();
2117
- let glyphAnchor = null, isBack = !1, segmentPageIndex = -1, segmentId = "";
2118
- const HALF = 0.5, coord = this._getTransformCoordForDocumentOffset(documentComponent, activeViewport, offsetX, offsetY);
2119
- if (coord == null)
2120
- return;
2121
- const docSelectionRenderService = (_a8 = this._renderManagerService.getRenderById(drawing.unitId)) == null ? void 0 : _a8.with(DocSelectionRenderService);
2122
- if (docSelectionRenderService == null)
2123
- return;
2124
- const nodeInfo = skeleton == null ? void 0 : skeleton.findNodeByCoord(
2125
- coord,
2126
- pageLayoutType,
2127
- pageMarginLeft,
2128
- pageMarginTop,
2129
- {
2130
- strict: !1,
2131
- segmentId: docSelectionRenderService.getSegment(),
2132
- segmentPage: docSelectionRenderService.getSegmentPage()
2133
- }
2134
- );
2135
- if (nodeInfo) {
2136
- const { node, ratioX, segmentPage, segmentId: nodeSegmentId } = nodeInfo;
2137
- isBack = ratioX < HALF, glyphAnchor = node, segmentPageIndex = segmentPage, segmentId = nodeSegmentId;
2138
- }
2139
- if (glyphAnchor == null)
2140
- return;
2141
- const nodePosition = skeleton == null ? void 0 : skeleton.findPositionByGlyph(glyphAnchor, segmentPageIndex), docObject = this._getDocObject();
2142
- if (nodePosition == null || skeleton == null || docObject == null || isInTableCell(nodePosition))
2143
- return;
2144
- const positionWithIsBack = {
2145
- ...nodePosition,
2146
- isBack
2147
- }, documentOffsetConfig = docObject.document.getOffsetConfig(), convertor = new NodePositionConvertToCursor(documentOffsetConfig, skeleton), { cursorList, contentBoxPointGroup } = convertor.getRangePointData(positionWithIsBack, positionWithIsBack), { startOffset } = (_b = getOneTextSelectionRange(cursorList)) != null ? _b : {};
2148
- if (startOffset != null)
2149
- return { offset: startOffset, contentBoxPointGroup, segmentId, segmentPage: segmentPageIndex };
2150
- }
2151
- // eslint-disable-next-line max-lines-per-function, complexity
2152
- _getDrawingAnchor(drawing, object) {
2153
- var _a8, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
2154
- const currentRender = this._renderManagerService.getRenderById(drawing.unitId), skeleton = currentRender == null ? void 0 : currentRender.with(DocSkeletonManagerService).getSkeleton(), skeletonData = skeleton == null ? void 0 : skeleton.getSkeletonData();
2155
- if (skeletonData == null || currentRender == null)
2156
- return;
2157
- const { pages, skeHeaders, skeFooters } = skeletonData, { mainComponent, scene } = currentRender, documentComponent = mainComponent, activeViewport = scene.getViewports()[0], { pageLayoutType = PageLayoutType.VERTICAL, pageMarginLeft, pageMarginTop, docsLeft, docsTop } = documentComponent.getOffsetConfig(), { left, top, angle } = object;
2158
- let { width, height } = object;
2159
- const { positionV, positionH } = drawing.docTransform, { width: maxWidth, height: maxHeight } = this._getPageContentSize(drawing);
2160
- width = Math.min(width, maxWidth), height = Math.min(height, maxHeight);
2161
- let glyphAnchor = null, segmentId = "", segmentPage = -1;
2162
- const isBack = !1, docTransform = {
2163
- ...drawing.docTransform,
2164
- size: {
2165
- width,
2166
- height
2167
- },
2168
- angle
2169
- }, { x, y } = scene.getViewportScrollXY(activeViewport), coord = this._getTransformCoordForDocumentOffset(documentComponent, activeViewport, left - x, top - y);
2170
- if (coord == null)
2171
- return;
2172
- const docSelectionRenderService = (_a8 = this._renderManagerService.getRenderById(drawing.unitId)) == null ? void 0 : _a8.with(DocSelectionRenderService);
2173
- if (docSelectionRenderService == null)
2174
- return;
2175
- const nodeInfo = skeleton == null ? void 0 : skeleton.findNodeByCoord(coord, pageLayoutType, pageMarginLeft, pageMarginTop, {
2176
- strict: !1,
2177
- segmentId: docSelectionRenderService.getSegment(),
2178
- segmentPage: docSelectionRenderService.getSegmentPage()
2179
- });
2180
- if (nodeInfo) {
2181
- const { node, segmentPage: segmentPageIndex, segmentId: nodeSegmentId } = nodeInfo;
2182
- glyphAnchor = node, segmentPage = segmentPageIndex, segmentId = nodeSegmentId;
2183
- }
2184
- if (glyphAnchor == null)
2185
- return;
2186
- const line = (_b = glyphAnchor.parent) == null ? void 0 : _b.parent, column = line == null ? void 0 : line.parent, paragraphStartLine = (_c = column == null ? void 0 : column.lines.find((l) => l.paragraphIndex === (line == null ? void 0 : line.paragraphIndex) && l.paragraphStart)) != null ? _c : column == null ? void 0 : column.lines[0], page = (_d = column == null ? void 0 : column.parent) == null ? void 0 : _d.parent;
2187
- if (line == null || column == null || paragraphStartLine == null || page == null)
2188
- return;
2189
- this._liquid.reset();
2190
- const pageType = page.type;
2191
- for (const p of pages) {
2192
- const { headerId, footerId, pageHeight, pageWidth, marginLeft, marginBottom } = p, pIndex = pages.indexOf(p);
2193
- if (segmentPage > -1 && pIndex === segmentPage) {
2194
- switch (pageType) {
2195
- case DocumentSkeletonPageType.HEADER: {
2196
- const headerSke = (_e = skeHeaders.get(headerId)) == null ? void 0 : _e.get(pageWidth);
2197
- if (headerSke)
2198
- this._liquid.translatePagePadding({
2199
- marginTop: headerSke.marginTop,
2200
- marginLeft
2201
- });
2202
- else
2203
- throw new Error("header skeleton not found");
2204
- break;
2205
- }
2206
- case DocumentSkeletonPageType.FOOTER: {
2207
- const footerSke = (_f = skeFooters.get(footerId)) == null ? void 0 : _f.get(pageWidth);
2208
- if (footerSke)
2209
- this._liquid.translatePagePadding({
2210
- marginTop: pageHeight - marginBottom + footerSke.marginTop,
2211
- marginLeft
2212
- });
2213
- else
2214
- throw new Error("footer skeleton not found");
2215
- break;
2216
- }
2217
- }
2218
- break;
2219
- }
2220
- if (this._liquid.translatePagePadding(p), p === page)
2221
- break;
2222
- this._liquid.restorePagePadding(p), this._liquid.translatePage(p, pageLayoutType, pageMarginLeft, pageMarginTop);
2223
- }
2224
- switch (positionV.relativeFrom === ObjectRelativeFromV.LINE ? glyphAnchor = line.divides[0].glyphGroup[0] : glyphAnchor = (_j = (_i = (_h = (_g = paragraphStartLine.divides) == null ? void 0 : _g[0]) == null ? void 0 : _h.glyphGroup) == null ? void 0 : _i[0]) != null ? _j : glyphAnchor, docTransform.positionH = {
2225
- relativeFrom: positionH.relativeFrom,
2226
- posOffset: left - this._liquid.x - docsLeft
2227
- }, positionH.relativeFrom) {
2228
- case ObjectRelativeFromH.MARGIN: {
2229
- docTransform.positionH.posOffset = left - this._liquid.x - docsLeft - page.marginLeft;
2230
- break;
2231
- }
2232
- case ObjectRelativeFromH.COLUMN: {
2233
- docTransform.positionH.posOffset = left - this._liquid.x - docsLeft - column.left;
2234
- break;
2235
- }
2236
- }
2237
- switch (docTransform.positionV = {
2238
- relativeFrom: positionV.relativeFrom,
2239
- posOffset: top - this._liquid.y - docsTop
2240
- }, positionV.relativeFrom) {
2241
- case ObjectRelativeFromV.PAGE: {
2242
- docTransform.positionV.posOffset = top - this._liquid.y - docsTop - page.marginTop;
2243
- break;
2244
- }
2245
- case ObjectRelativeFromV.LINE: {
2246
- docTransform.positionV.posOffset = top - this._liquid.y - docsTop - line.top;
2247
- break;
2248
- }
2249
- case ObjectRelativeFromV.PARAGRAPH: {
2250
- docTransform.positionV.posOffset = top - this._liquid.y - docsTop - paragraphStartLine.top;
2251
- break;
2252
- }
2253
- }
2254
- if (glyphAnchor == null)
2255
- return;
2256
- const nodePosition = skeleton == null ? void 0 : skeleton.findPositionByGlyph(glyphAnchor, segmentPage), docObject = this._getDocObject();
2257
- if (nodePosition == null || skeleton == null || docObject == null || isInTableCell(nodePosition))
2258
- return;
2259
- const positionWithIsBack = {
2260
- ...nodePosition,
2261
- isBack
2262
- }, documentOffsetConfig = docObject.document.getOffsetConfig(), convertor = new NodePositionConvertToCursor(documentOffsetConfig, skeleton), { cursorList } = convertor.getRangePointData(positionWithIsBack, positionWithIsBack), { startOffset } = (_k = getOneTextSelectionRange(cursorList)) != null ? _k : {};
2263
- if (startOffset != null)
2264
- return { offset: startOffset, docTransform, segmentId, segmentPage };
2265
- }
2266
- // Update drawing when use transformer to resize it.
2267
- _updateDrawingSize(drawingCache, object) {
2268
- const drawings = [], { drawing, width: oldWidth, height: oldHeight, angle: oldAngle } = drawingCache, { unitId, subUnitId } = drawing;
2269
- let { width, height, angle } = object;
2270
- const { width: maxWidth, height: maxHeight } = this._getPageContentSize(drawing);
2271
- width = Math.min(maxWidth, width), height = Math.min(maxHeight, height), (width !== oldWidth || height !== oldHeight) && drawings.push({
2272
- drawingId: drawing.drawingId,
2273
- key: "size",
2274
- value: {
2275
- width,
2276
- height
2277
- }
2278
- }), angle !== oldAngle && drawings.push({
2279
- drawingId: drawing.drawingId,
2280
- key: "angle",
2281
- value: angle
2282
- }), drawings.length > 0 && unitId && subUnitId && this._commandService.executeCommand(UpdateDrawingDocTransformCommand.id, {
2283
- unitId,
2284
- subUnitId,
2285
- drawings
2286
- });
2287
- }
2288
- // Update inline drawing when use transformer to move it.
2289
- _moveInlineDrawing(drawing, offsetX, offsetY) {
2290
- const anchor = this._getInlineDrawingAnchor(drawing, offsetX, offsetY), { offset, segmentId, segmentPage } = anchor != null ? anchor : {};
2291
- return this._commandService.executeCommand(IMoveInlineDrawingCommand.id, {
2292
- unitId: drawing.unitId,
2293
- subUnitId: drawing.unitId,
2294
- drawing,
2295
- offset,
2296
- segmentId,
2297
- segmentPage,
2298
- needRefreshDrawings: offset == null
2299
- });
2300
- }
2301
- // Limit the drawing to the page area, mainly in the vertical direction,
2302
- // and the upper and lower limits cannot exceed the page margin area.
2303
- _limitDrawingInPage(drawing, object) {
2304
- const currentRender = this._renderManagerService.getRenderById(drawing.unitId), { left, top, width, height, angle } = object, skeleton = currentRender == null ? void 0 : currentRender.with(DocSkeletonManagerService).getSkeleton(), skeletonData = skeleton == null ? void 0 : skeleton.getSkeletonData(), { pages } = skeletonData != null ? skeletonData : {};
2305
- if (skeletonData == null || currentRender == null || pages == null)
2306
- return {
2307
- left,
2308
- top,
2309
- width,
2310
- height,
2311
- angle
2312
- };
2313
- const { mainComponent } = currentRender, documentComponent = mainComponent, { top: docsTop, pageLayoutType, pageMarginLeft, pageMarginTop } = documentComponent;
2314
- let newTop = top;
2315
- this._liquid.reset();
2316
- for (const page of pages) {
2317
- const { marginBottom, pageHeight } = page, index = pages.indexOf(page), nextPage = pages[index + 1];
2318
- if (nextPage == null)
2319
- continue;
2320
- if (Tools.hasIntersectionBetweenTwoRanges(
2321
- top,
2322
- top + height,
2323
- this._liquid.y + docsTop + pageHeight - marginBottom,
2324
- this._liquid.y + docsTop + pageHeight + pageMarginTop + nextPage.marginTop
2325
- )) {
2326
- const drawingVMiddle = top + height / 2, pagesMiddle = this._liquid.y + docsTop + pageHeight + pageMarginTop / 2;
2327
- drawingVMiddle < pagesMiddle ? newTop = Math.min(top, this._liquid.y + docsTop + pageHeight - marginBottom - height) : newTop = Math.max(top, this._liquid.y + docsTop + pageHeight + pageMarginTop + nextPage.marginTop);
2328
- }
2329
- this._liquid.translatePage(page, pageLayoutType, pageMarginLeft, pageMarginTop);
2330
- }
2331
- return {
2332
- left,
2333
- top: newTop,
2334
- width,
2335
- height,
2336
- angle
2337
- };
2338
- }
2339
- _nonInlineDrawingTransform(drawing, object, isMoving = !1) {
2340
- const objectPosition = drawing.isMultiTransform === BooleanNumber.TRUE ? object : this._limitDrawingInPage(drawing, object);
2341
- if (isMoving && objectPosition.top !== object.top)
2342
- return;
2343
- const anchor = this._getDrawingAnchor(drawing, objectPosition), { offset, docTransform, segmentId, segmentPage } = anchor != null ? anchor : {};
2344
- return offset == null || docTransform == null ? this._updateMultipleDrawingDocTransform(/* @__PURE__ */ new Map([[drawing.drawingId, object]])) : this._commandService.executeCommand(ITransformNonInlineDrawingCommand.id, {
2345
- unitId: drawing.unitId,
2346
- subUnitId: drawing.unitId,
2347
- drawing,
2348
- offset,
2349
- docTransform,
2350
- segmentId,
2351
- segmentPage
2352
- });
2353
- }
2354
- _getSceneAndTransformerByDrawingSearch(unitId) {
2355
- if (unitId == null)
2356
- return;
2357
- const renderObject = this._renderManagerService.getRenderById(unitId), scene = renderObject == null ? void 0 : renderObject.scene;
2358
- if (scene == null)
2359
- return;
2360
- const transformer = scene.getTransformerByCreate();
2361
- return { scene, transformer };
2362
- }
2363
- _getTransformCoordForDocumentOffset(document, viewport, evtOffsetX, evtOffsetY) {
2364
- const { documentTransform } = document.getOffsetConfig(), originCoord = viewport.transformVector2SceneCoord(Vector2.FromArray([evtOffsetX, evtOffsetY]));
2365
- if (originCoord)
2366
- return documentTransform.clone().invert().applyPoint(originCoord);
2367
- }
2368
- _createOrUpdateInlineAnchor(unitId, pointsGroup) {
2369
- const currentRender = this._renderManagerService.getRenderById(unitId);
2370
- if (currentRender == null)
2371
- return;
2372
- const { mainComponent, scene } = currentRender, documentComponent = mainComponent, {
2373
- docsLeft,
2374
- docsTop
2375
- } = documentComponent.getOffsetConfig(), bounding = getAnchorBounding(pointsGroup), { left: boundingLeft, top: boundingTop, height } = bounding, left = boundingLeft + docsLeft, top = boundingTop + docsTop;
2376
- if (this._anchorShape) {
2377
- this._anchorShape.transformByState({ left, top, height }), this._anchorShape.show();
2378
- return;
2379
- }
2380
- const ID_LENGTH = 6, anchor = new Rect(INLINE_DRAWING_ANCHOR_KEY_PREFIX + Tools.generateRandomId(ID_LENGTH), {
2381
- left,
2382
- top,
2383
- height,
2384
- strokeWidth: 2,
2385
- stroke: getColor(COLORS.darkGray, 1),
2386
- evented: !1
2387
- });
2388
- this._anchorShape = anchor, scene.addObject(anchor, TEXT_RANGE_LAYER_INDEX);
2389
- }
2390
- _getDocObject() {
2391
- return getDocObject(this._univerInstanceService, this._renderManagerService);
2392
- }
2393
- _getPageContentSize(drawing) {
2394
- const currentRender = this._renderManagerService.getRenderById(drawing.unitId), skeleton = currentRender == null ? void 0 : currentRender.with(DocSkeletonManagerService).getSkeleton(), MAX_WIDTH = 500, MAX_HEIGHT = 500, skeletonData = skeleton == null ? void 0 : skeleton.getSkeletonData();
2395
- if (skeletonData == null || currentRender == null)
2396
- return {
2397
- width: MAX_WIDTH,
2398
- height: MAX_HEIGHT
2399
- };
2400
- const { pages } = skeletonData;
2401
- let page = null;
2402
- for (const p of pages) {
2403
- const { skeDrawings } = p;
2404
- if (skeDrawings.has(drawing.drawingId)) {
2405
- page = p;
2406
- break;
2407
- }
2408
- }
2409
- if (page) {
2410
- const { pageWidth, pageHeight, marginLeft, marginBottom, marginRight, marginTop } = page;
2411
- return {
2412
- width: Math.max(MAX_WIDTH, pageWidth - marginLeft - marginRight),
2413
- height: Math.max(MAX_HEIGHT, pageHeight - marginTop - marginBottom)
2414
- };
2415
- } else
2416
- return {
2417
- width: MAX_WIDTH,
2418
- height: MAX_HEIGHT
2419
- };
2420
- }
2421
- }, __name(_a6, "DocDrawingTransformerController"), _a6);
2422
- DocDrawingTransformerController = __decorateClass$1([
2423
- OnLifecycle(LifecycleStages.Rendered, DocDrawingTransformerController),
2424
- __decorateParam$1(0, ICommandService),
2425
- __decorateParam$1(1, IUniverInstanceService),
2426
- __decorateParam$1(2, IDrawingManagerService),
2427
- __decorateParam$1(3, IRenderManagerService)
2428
- ], DocDrawingTransformerController);
2429
- const PLUGIN_CONFIG_KEY = "docs-drawing-ui.config", defaultPluginConfig = {};
2430
- var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnPropertyDescriptor, __defNormalProp2 = /* @__PURE__ */ __name((obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value, "__defNormalProp"), __decorateClass = /* @__PURE__ */ __name((decorators, target, key, kind) => {
2431
- for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
2432
- (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
2433
- return kind && result && __defProp2(target, key, result), result;
2434
- }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), __publicField2 = /* @__PURE__ */ __name((obj, key, value) => __defNormalProp2(obj, typeof key != "symbol" ? key + "" : key, value), "__publicField");
2435
- const PLUGIN_NAME = "DOC_DRAWING_UI_PLUGIN";
2436
- var _a7;
2437
- let UniverDocsDrawingUIPlugin = (_a7 = class extends Plugin {
2438
- constructor(_config = defaultPluginConfig, _injector, _renderManagerSrv, _configService) {
2439
- super(), this._config = _config, this._injector = _injector, this._renderManagerSrv = _renderManagerSrv, this._configService = _configService;
2440
- const { ...rest } = this._config;
2441
- this._configService.setConfig(PLUGIN_CONFIG_KEY, rest);
2442
- }
2443
- onStarting() {
2444
- [
2445
- [DocDrawingUIController],
2446
- [DocDrawingPopupMenuController],
2447
- [DocDrawingTransformerController],
2448
- [DocDrawingAddRemoveController],
2449
- [DocRefreshDrawingsService]
2450
- ].forEach((dependency) => this._injector.add(dependency));
2451
- }
2452
- onReady() {
2453
- [
2454
- [DocDrawingUpdateRenderController],
2455
- [DocDrawingTransformUpdateController]
2456
- ].forEach((m) => this._renderManagerSrv.registerRenderModule(UniverInstanceType.UNIVER_DOC, m));
2457
- }
2458
- }, __name(_a7, "UniverDocsDrawingUIPlugin"), _a7);
2459
- __publicField2(UniverDocsDrawingUIPlugin, "type", UniverInstanceType.UNIVER_DOC);
2460
- __publicField2(UniverDocsDrawingUIPlugin, "pluginName", PLUGIN_NAME);
2461
- UniverDocsDrawingUIPlugin = __decorateClass([
2462
- DependentOn(UniverDrawingUIPlugin, UniverDrawingPlugin, UniverDocsDrawingPlugin),
2463
- __decorateParam(1, Inject(Injector)),
2464
- __decorateParam(2, IRenderManagerService),
2465
- __decorateParam(3, IConfigService)
2466
- ], UniverDocsDrawingUIPlugin);
2467
- export {
2468
- ClearDocDrawingTransformerOperation,
2469
- DeleteDocDrawingsCommand,
2470
- EditDocDrawingOperation,
2471
- GroupDocDrawingCommand,
2472
- IMAGE_MENU_ID,
2473
- InsertDocDrawingCommand,
2474
- InsertDocImageCommand,
2475
- MoveDocDrawingsCommand,
2476
- RemoveDocDrawingCommand,
2477
- SetDocDrawingArrangeCommand,
2478
- SidebarDocDrawingOperation,
2479
- UngroupDocDrawingCommand,
2480
- UniverDocsDrawingUIPlugin
2481
- };
1
+ const _0x580764=_0x5391;(function(_0x46b51b,_0x2f8620){const _0x266c4e=_0x5391,_0x4f2e91=_0x46b51b();while(!![]){try{const _0x1894e5=parseInt(_0x266c4e(0x294))/0x1+parseInt(_0x266c4e(0x15f))/0x2+parseInt(_0x266c4e(0x207))/0x3*(-parseInt(_0x266c4e(0x1b5))/0x4)+parseInt(_0x266c4e(0x340))/0x5+-parseInt(_0x266c4e(0x19c))/0x6*(-parseInt(_0x266c4e(0x263))/0x7)+parseInt(_0x266c4e(0x1ba))/0x8*(parseInt(_0x266c4e(0x1cd))/0x9)+-parseInt(_0x266c4e(0x24f))/0xa*(parseInt(_0x266c4e(0x1cc))/0xb);if(_0x1894e5===_0x2f8620)break;else _0x4f2e91['push'](_0x4f2e91['shift']());}catch(_0x8406a2){_0x4f2e91['push'](_0x4f2e91['shift']());}}}(_0x31b0,0x2b122));var __defProp=Object[_0x580764(0x2c9)],__defNormalProp=(_0x2f6dae,_0x5b510b,_0x19174b)=>_0x5b510b in _0x2f6dae?__defProp(_0x2f6dae,_0x5b510b,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x19174b}):_0x2f6dae[_0x5b510b]=_0x19174b,__name=(_0x424339,_0x1ec46e)=>__defProp(_0x424339,_0x580764(0x1ef),{'value':_0x1ec46e,'configurable':!0x0}),__publicField=(_0x50e50d,_0x5ae2a4,_0x21a3eb)=>__defNormalProp(_0x50e50d,typeof _0x5ae2a4!='symbol'?_0x5ae2a4+'':_0x5ae2a4,_0x21a3eb);import{CommandType,ICommandService,IUniverInstanceService,TextX,JSONX,MemoryCursor,TextXActionType,IUndoRedoService,BuildTextUtils,Tools,Inject,LocaleService,Disposable,BooleanNumber,PositionedObjectLayoutType,WrapTextType,ObjectRelativeFromH,ObjectRelativeFromV,FOCUSING_COMMON_DRAWINGS,IContextService,UniverInstanceType,Direction,useDependency,FOCUSING_UNIVER_EDITOR,UndoCommand,RedoCommand,toDisposable,throttle,COLORS,RxDisposable,LifecycleService,fromEventSubject,LifecycleStages,DependentOn,Injector,Plugin,IConfigService}from'@univerjs/core';import{IDocDrawingService,UniverDocsDrawingPlugin}from'@univerjs/docs-drawing';import{ArrangeTypeEnum,DRAWING_IMAGE_ALLOW_IMAGE_LIST,DRAWING_IMAGE_COUNT_LIMIT,ImageUploadStatusType,DRAWING_IMAGE_ALLOW_SIZE,getImageSize,DrawingTypeEnum,getDrawingShapeKeyByDrawingSearch,IImageIoService,IDrawingManagerService,DRAWING_IMAGE_WIDTH_LIMIT,DRAWING_IMAGE_HEIGHT_LIMIT,UniverDrawingPlugin}from'@univerjs/drawing';import{DrawingCommonPanel,ImageCropperObject,COMPONENT_IMAGE_POPUP_MENU,OpenImageCropOperation,ImageResetSizeOperation,UniverDrawingUIPlugin}from'@univerjs/drawing-ui';import{IRenderManagerService,DocumentEditArea,Liquid,PageLayoutType,DocumentSkeletonPageType,Vector2,Rect,getColor,TRANSFORM_CHANGE_OBSERVABLE_TYPE}from'@univerjs/engine-render';import{IMessageService,ILocalFileService,ISidebarService,MenuItemType,getMenuHiddenObservable,RibbonStartGroup,KeyCode,ComponentManager,IMenuManagerService,IShortcutService,UniverUIPlugin}from'@univerjs/ui';import{RichTextEditingMutation,DocSelectionManagerService,DocSkeletonManagerService}from'@univerjs/docs';import{DocSelectionRenderService,getRichTextEditPath,getCustomBlockIdsInSelections,docDrawingPositionToTransform,NodePositionConvertToCursor,getOneTextSelectionRange,getAnchorBounding,TEXT_RANGE_LAYER_INDEX,getDocObject,DocCanvasPopManagerService,IEditorService,SetDocZoomRatioOperation}from'@univerjs/docs-ui';import{MessageType,RadioGroup,Radio,InputNumber,Select,Checkbox}from'@univerjs/design';import{BehaviorSubject,Observable,takeUntil,filter,debounceTime}from'rxjs';import _0x4b3e20,{forwardRef,useRef,createElement,useState,useEffect}from'react';import _0x389ec1 from'clsx';const PLUGIN_CONFIG_KEY='docs-drawing-ui.config',defaultPluginConfig={};function _0x5391(_0x10e8af,_0xd03f15){const _0x31b0c4=_0x31b0();return _0x5391=function(_0x5391cc,_0x258fe4){_0x5391cc=_0x5391cc-0x158;let _0xe35e9a=_0x31b0c4[_0x5391cc];return _0xe35e9a;},_0x5391(_0x10e8af,_0xd03f15);}var __assign=function(){const _0x36ce9c=_0x580764;return __assign=Object[_0x36ce9c(0x1a4)]||function(_0x5b12df){const _0x40f7c7=_0x36ce9c;for(var _0x418f9f,_0x5703b3=0x1,_0x410a80=arguments[_0x40f7c7(0x2e5)];_0x5703b3<_0x410a80;_0x5703b3++){_0x418f9f=arguments[_0x5703b3];for(var _0x1402b9 in _0x418f9f)Object['prototype'][_0x40f7c7(0x291)][_0x40f7c7(0x23a)](_0x418f9f,_0x1402b9)&&(_0x5b12df[_0x1402b9]=_0x418f9f[_0x1402b9]);}return _0x5b12df;},__assign[_0x36ce9c(0x31c)](this,arguments);},__rest=function(_0x12b010,_0x64947c){const _0x3b2b05=_0x580764;var _0x3352f4={};for(var _0x4284ad in _0x12b010)Object[_0x3b2b05(0x20b)][_0x3b2b05(0x291)][_0x3b2b05(0x23a)](_0x12b010,_0x4284ad)&&_0x64947c[_0x3b2b05(0x1f4)](_0x4284ad)<0x0&&(_0x3352f4[_0x4284ad]=_0x12b010[_0x4284ad]);if(_0x12b010!=null&&typeof Object['getOwnPropertySymbols']==_0x3b2b05(0x1d8)){for(var _0x359d74=0x0,_0x4284ad=Object[_0x3b2b05(0x23d)](_0x12b010);_0x359d74<_0x4284ad['length'];_0x359d74++)_0x64947c[_0x3b2b05(0x1f4)](_0x4284ad[_0x359d74])<0x0&&Object['prototype'][_0x3b2b05(0x2fd)]['call'](_0x12b010,_0x4284ad[_0x359d74])&&(_0x3352f4[_0x4284ad[_0x359d74]]=_0x12b010[_0x4284ad[_0x359d74]]);}return _0x3352f4;},IconBase=forwardRef(function(_0x560ca4,_0x14ebf4){const _0xeb506a=_0x580764;var _0x26c509=_0x560ca4[_0xeb506a(0x268)],_0x59755f=_0x560ca4['id'],_0x5f083f=_0x560ca4[_0xeb506a(0x2ac)],_0x1d3a8c=_0x560ca4[_0xeb506a(0x29f)],_0x2bdaa2=__rest(_0x560ca4,[_0xeb506a(0x268),'id','className',_0xeb506a(0x29f)]),_0x47b7b5=_0xeb506a(0x17b)[_0xeb506a(0x346)](_0x59755f,'\x20')[_0xeb506a(0x346)](_0x5f083f||'')['trim'](),_0x1e8dff=useRef('_'[_0xeb506a(0x346)](generateShortUuid()));return render(_0x26c509,''[_0xeb506a(0x346)](_0x59755f),{'defIds':_0x26c509[_0xeb506a(0x25a)],'idSuffix':_0x1e8dff[_0xeb506a(0x203)]},__assign({'ref':_0x14ebf4,'className':_0x47b7b5},_0x2bdaa2),_0x1d3a8c);});function render(_0x12c796,_0x3f7b28,_0x2f4d65,_0x2d6f49,_0x4cda5b){const _0x3b9cbf=_0x580764;return createElement(_0x12c796[_0x3b9cbf(0x1a9)],__assign(__assign({'key':_0x3f7b28},replaceRuntimeIdsAndExtInAttrs(_0x12c796,_0x2f4d65,_0x4cda5b)),_0x2d6f49),(replaceRuntimeIdsInDefs(_0x12c796,_0x2f4d65)[_0x3b9cbf(0x302)]||[])[_0x3b9cbf(0x2c3)](function(_0x140f01,_0xbe1660){const _0x31ebfd=_0x3b9cbf;return render(_0x140f01,''[_0x31ebfd(0x346)](_0x3f7b28,'-')[_0x31ebfd(0x346)](_0x12c796[_0x31ebfd(0x1a9)],'-')[_0x31ebfd(0x346)](_0xbe1660),_0x2f4d65,void 0x0,_0x4cda5b);}));}__name(render,_0x580764(0x165));function replaceRuntimeIdsAndExtInAttrs(_0x13365b,_0x26c012,_0x3b8e6b){const _0x36c6d8=_0x580764;var _0x42ddc0=__assign({},_0x13365b['attrs']);_0x3b8e6b!=null&&_0x3b8e6b['colorChannel1']&&_0x42ddc0[_0x36c6d8(0x228)]==='colorChannel1'&&(_0x42ddc0[_0x36c6d8(0x228)]=_0x3b8e6b[_0x36c6d8(0x224)]);var _0x30efdc=_0x26c012[_0x36c6d8(0x25a)];return!_0x30efdc||_0x30efdc['length']===0x0||(_0x13365b['tag']===_0x36c6d8(0x2a1)&&_0x42ddc0[_0x36c6d8(0x1af)]&&(_0x42ddc0[_0x36c6d8(0x1af)]=_0x42ddc0[_0x36c6d8(0x1af)]+_0x26c012[_0x36c6d8(0x26f)]),Object[_0x36c6d8(0x231)](_0x42ddc0)[_0x36c6d8(0x250)](function(_0x269829){const _0x546143=_0x36c6d8;var _0x519b1c=_0x269829[0x0],_0x412b10=_0x269829[0x1];typeof _0x412b10==_0x546143(0x1b1)&&(_0x42ddc0[_0x519b1c]=_0x412b10[_0x546143(0x32b)](/url\(#(.*)\)/,_0x546143(0x31d)[_0x546143(0x346)](_0x26c012[_0x546143(0x26f)],')')));})),_0x42ddc0;}__name(replaceRuntimeIdsAndExtInAttrs,_0x580764(0x283));function replaceRuntimeIdsInDefs(_0xddaaf4,_0x21956a){const _0x4d4665=_0x580764;var _0x998b3f,_0x496e7f=_0x21956a[_0x4d4665(0x25a)];return!_0x496e7f||_0x496e7f[_0x4d4665(0x2e5)]===0x0?_0xddaaf4:_0xddaaf4[_0x4d4665(0x1a9)]==='defs'&&(!((_0x998b3f=_0xddaaf4[_0x4d4665(0x302)])===null||_0x998b3f===void 0x0)&&_0x998b3f[_0x4d4665(0x2e5)])?__assign(__assign({},_0xddaaf4),{'children':_0xddaaf4['children'][_0x4d4665(0x2c3)](function(_0x1d3586){const _0x455649=_0x4d4665;return typeof _0x1d3586[_0x455649(0x1de)]['id']==_0x455649(0x1b1)&&_0x496e7f&&_0x496e7f['indexOf'](_0x1d3586[_0x455649(0x1de)]['id'])>-0x1?__assign(__assign({},_0x1d3586),{'attrs':__assign(__assign({},_0x1d3586[_0x455649(0x1de)]),{'id':_0x1d3586[_0x455649(0x1de)]['id']+_0x21956a['idSuffix']})}):_0x1d3586;})}):_0xddaaf4;}__name(replaceRuntimeIdsInDefs,_0x580764(0x1e4));function generateShortUuid(){const _0x3682e0=_0x580764;return Math[_0x3682e0(0x27d)]()[_0x3682e0(0x217)](0x24)[_0x3682e0(0x163)](0x2,0x8);}__name(generateShortUuid,'generateShortUuid'),IconBase[_0x580764(0x196)]=_0x580764(0x1bc);var element={'tag':_0x580764(0x301),'attrs':{'fill':_0x580764(0x2a4),'viewBox':_0x580764(0x257),'width':'1em','height':_0x580764(0x16b)},'children':[{'tag':'path','attrs':{'fill':_0x580764(0x1db),'d':_0x580764(0x30b),'fillRule':'evenodd','clipRule':'evenodd'}},{'tag':_0x580764(0x166),'attrs':{'fill':_0x580764(0x1db),'d':_0x580764(0x21e)}}]},AddImageSingle=forwardRef(function(_0x48c04a,_0x4bada7){const _0x10ac1b=_0x580764;return createElement(IconBase,Object[_0x10ac1b(0x1a4)]({},_0x48c04a,{'id':_0x10ac1b(0x292),'ref':_0x4bada7,'icon':element}));});AddImageSingle['displayName']=_0x580764(0x2ae);const RemoveDocDrawingCommand={'id':_0x580764(0x2d3),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x4f3770,_0x2984ea)=>{const _0x586242=_0x580764;var _0x5e337f,_0x4bb051,_0x1b08a5,_0x1c190a;const _0x395fd4=_0x4f3770[_0x586242(0x233)](ICommandService),_0x14275b=_0x4f3770['get'](IUniverInstanceService),_0x4bd5ab=_0x4f3770[_0x586242(0x233)](IRenderManagerService),_0x163072=_0x14275b['getCurrentUniverDocInstance']();if(_0x2984ea==null||_0x163072==null)return!0x1;const _0xdef7be=_0x4bd5ab[_0x586242(0x304)](_0x2984ea[_0x586242(0x24b)])[_0x586242(0x21f)](DocSelectionRenderService),{drawings:_0x47f134}=_0x2984ea,_0x15e8f1=(_0x5e337f=_0xdef7be[_0x586242(0x28d)]())!=null?_0x5e337f:'',_0x5901c5=new TextX(),_0xb0a40=JSONX[_0x586242(0x328)](),_0x406642=(_0x1b08a5=(_0x4bb051=_0x163072['getSelfOrHeaderFooterModel'](_0x15e8f1)['getBody']())==null?void 0x0:_0x4bb051[_0x586242(0x236)])!=null?_0x1b08a5:[],_0x410d8b=_0x47f134['map'](_0x367ba2=>_0x406642[_0x586242(0x260)](_0x9e1d23=>_0x9e1d23[_0x586242(0x32d)]===_0x367ba2[_0x586242(0x2a3)]))[_0x586242(0x230)](_0x4d6971=>!!_0x4d6971)['sort']((_0x33c29c,_0x582fbd)=>_0x33c29c[_0x586242(0x15a)]>_0x582fbd[_0x586242(0x15a)]?0x1:-0x1),_0x4e2d03=_0x47f134[0x0]['unitId'],_0x1172cc=new MemoryCursor();_0x1172cc[_0x586242(0x1e6)]();const _0x40c567=_0x410d8b[0x0]['startIndex'],_0x2916c2=[{'startOffset':_0x40c567,'endOffset':_0x40c567}],_0x1bd155={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x4e2d03,'actions':[],'textRanges':_0x2916c2}},_0x377bf5=[];for(const _0xfbf9ab of _0x410d8b){const {startIndex:_0x206d29}=_0xfbf9ab;_0x206d29>_0x1172cc[_0x586242(0x274)]&&_0x5901c5['push']({'t':TextXActionType[_0x586242(0x1e7)],'len':_0x206d29-_0x1172cc[_0x586242(0x274)],'segmentId':''}),_0x5901c5[_0x586242(0x225)]({'t':TextXActionType['DELETE'],'len':0x1,'line':0x0,'segmentId':''}),_0x1172cc['moveCursorTo'](_0x206d29+0x1);}const _0x2611a5=getRichTextEditPath(_0x163072,_0x15e8f1);_0x377bf5[_0x586242(0x225)](_0xb0a40[_0x586242(0x2d6)](_0x5901c5[_0x586242(0x200)](),_0x2611a5));for(const _0x5a2b41 of _0x410d8b){const {blockId:_0x4db2d8}=_0x5a2b41,_0x203f37=((_0x1c190a=_0x163072[_0x586242(0x2da)]())!=null?_0x1c190a:{})[_0x4db2d8],_0x142e67=_0x163072[_0x586242(0x2cd)]()['indexOf'](_0x4db2d8),_0x135bd0=_0xb0a40[_0x586242(0x22a)]([_0x586242(0x1d7),_0x4db2d8],_0x203f37),_0xe0f0b8=_0xb0a40[_0x586242(0x22a)]([_0x586242(0x18c),_0x142e67],_0x4db2d8);_0x377bf5[_0x586242(0x225)](_0x135bd0),_0x377bf5[_0x586242(0x225)](_0xe0f0b8);}return _0x1bd155[_0x586242(0x185)][_0x586242(0x1fd)]=_0x377bf5[_0x586242(0x285)]((_0x24d01d,_0x349a4d)=>JSONX[_0x586242(0x1b8)](_0x24d01d,_0x349a4d),null),!!_0x395fd4[_0x586242(0x25c)](_0x1bd155['id'],_0x1bd155[_0x586242(0x185)]);},_0x580764(0x1fe))},DeleteDocDrawingsCommand={'id':'doc.command.delete-drawing','type':CommandType[_0x580764(0x186)],'handler':__name(_0x3b1e5e=>{const _0x4df94c=_0x580764,_0x3701b5=_0x3b1e5e['get'](ICommandService),_0x3b1fde=_0x3b1e5e[_0x4df94c(0x233)](IDocDrawingService)[_0x4df94c(0x174)]();if(_0x3b1fde[_0x4df94c(0x2e5)]===0x0)return!0x1;const {unitId:_0x48e95e}=_0x3b1fde[0x0],_0x5c49a7=_0x3b1fde[_0x4df94c(0x2c3)](_0x49837f=>{const {unitId:_0x4c7c80,subUnitId:_0x475b80,drawingId:_0x31c719,drawingType:_0x3c4bf3}=_0x49837f;return{'unitId':_0x4c7c80,'subUnitId':_0x475b80,'drawingId':_0x31c719,'drawingType':_0x3c4bf3};});return _0x3701b5[_0x4df94c(0x241)](RemoveDocDrawingCommand['id'],{'unitId':_0x48e95e,'drawings':_0x5c49a7});},_0x580764(0x1fe))},GroupDocDrawingCommand={'id':'doc.command.group-doc-image','type':CommandType[_0x580764(0x186)],'handler':__name((_0x3d5175,_0x55be00)=>{const _0x3e218a=_0x580764;_0x3d5175['get'](ICommandService),_0x3d5175[_0x3e218a(0x233)](IUndoRedoService);const _0x16b0e4=_0x3d5175[_0x3e218a(0x233)](IDocDrawingService);if(!_0x55be00)return!0x1;const _0x3f8b41=[];return _0x55be00[_0x3e218a(0x250)](({parent:_0x5df8cc,children:_0x3ebd46})=>{const _0x4ddf56=_0x3e218a;_0x3f8b41[_0x4ddf56(0x225)](_0x5df8cc[_0x4ddf56(0x24b)]),_0x3ebd46['forEach'](_0xaf0489=>{const _0x2f42cb=_0x4ddf56;_0x3f8b41[_0x2f42cb(0x225)](_0xaf0489[_0x2f42cb(0x24b)]);});}),_0x16b0e4['getGroupDrawingOp'](_0x55be00),!0x1;},_0x580764(0x1fe))},InsertDocDrawingCommand={'id':_0x580764(0x2ce),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x55b0e0,_0x1b39ad)=>{const _0x42c0a1=_0x580764;var _0x3cbb56,_0x3ae427,_0x340615,_0x5a6307;if(_0x1b39ad==null)return!0x1;const _0x49121b=_0x55b0e0['get'](ICommandService),_0x26a5f0=_0x55b0e0['get'](DocSelectionManagerService),_0x4471f6=_0x55b0e0['get'](IUniverInstanceService),_0x182151=_0x26a5f0['getActiveTextRange'](),_0x2ec34a=_0x4471f6[_0x42c0a1(0x30a)]();if(_0x182151==null||_0x2ec34a==null)return!0x1;const _0x5e0069=_0x2ec34a[_0x42c0a1(0x2c0)](),{drawings:_0x274e10}=_0x1b39ad,{collapsed:_0x81f455,startOffset:_0x43e7ee,segmentId:_0x171a3f}=_0x182151,_0x3c2a80=_0x2ec34a[_0x42c0a1(0x2b4)](_0x171a3f)[_0x42c0a1(0x1d0)]();if(_0x3c2a80==null)return!0x1;const _0x272959=new TextX(),_0x30de9b=JSONX[_0x42c0a1(0x328)](),_0x1c256f=[],_0x598eb4=(_0x3ae427=(_0x3cbb56=_0x2ec34a[_0x42c0a1(0x2ba)]()[_0x42c0a1(0x18c)])==null?void 0x0:_0x3cbb56['length'])!=null?_0x3ae427:0x0;let _0x161db4=0x0;if(_0x81f455)_0x43e7ee>0x0&&_0x272959[_0x42c0a1(0x225)]({'t':TextXActionType[_0x42c0a1(0x1e7)],'len':_0x43e7ee,'segmentId':_0x171a3f});else{const {dos:_0x377a13}=BuildTextUtils[_0x42c0a1(0x30e)][_0x42c0a1(0x2a9)](_0x182151,_0x171a3f,0x0,_0x3c2a80);_0x272959[_0x42c0a1(0x225)](..._0x377a13);const _0x1213f7=getCustomBlockIdsInSelections(_0x3c2a80,[_0x182151]),_0x45fce8=(_0x340615=_0x2ec34a[_0x42c0a1(0x2da)]())!=null?_0x340615:{},_0x4050b4=(_0x5a6307=_0x2ec34a[_0x42c0a1(0x2cd)]())!=null?_0x5a6307:[],_0x575cec=_0x1213f7[_0x42c0a1(0x34b)]((_0x591b74,_0x2f7342)=>_0x4050b4[_0x42c0a1(0x1f4)](_0x591b74)>_0x4050b4[_0x42c0a1(0x1f4)](_0x2f7342)?-0x1:_0x4050b4['indexOf'](_0x591b74)<_0x4050b4[_0x42c0a1(0x1f4)](_0x2f7342)?0x1:0x0);if(_0x575cec[_0x42c0a1(0x2e5)]>0x0)for(const _0x13b126 of _0x575cec){const _0x5d698f=_0x45fce8[_0x13b126],_0x2dc002=_0x4050b4[_0x42c0a1(0x1f4)](_0x13b126);if(_0x5d698f==null||_0x2dc002<0x0)continue;const _0x5cedcb=_0x30de9b[_0x42c0a1(0x22a)]([_0x42c0a1(0x1d7),_0x13b126],_0x5d698f),_0x207f26=_0x30de9b['removeOp']([_0x42c0a1(0x18c),_0x2dc002],_0x13b126);_0x1c256f[_0x42c0a1(0x225)](_0x5cedcb),_0x1c256f[_0x42c0a1(0x225)](_0x207f26),_0x161db4++;}}_0x272959[_0x42c0a1(0x225)]({'t':TextXActionType[_0x42c0a1(0x21d)],'body':{'dataStream':'\x08'[_0x42c0a1(0x17f)](_0x274e10[_0x42c0a1(0x2e5)]),'customBlocks':_0x274e10['map']((_0x356e53,_0x256ec4)=>({'startIndex':_0x256ec4,'blockId':_0x356e53[_0x42c0a1(0x2a3)]}))},'len':_0x274e10[_0x42c0a1(0x2e5)],'line':0x0,'segmentId':_0x171a3f});const _0x463078=getRichTextEditPath(_0x2ec34a,_0x171a3f),_0xd0216b=_0x30de9b[_0x42c0a1(0x2d6)](_0x272959[_0x42c0a1(0x200)](),_0x463078);_0x1c256f[_0x42c0a1(0x225)](_0xd0216b);for(const _0x6cf2fa of _0x274e10){const {drawingId:_0x193098}=_0x6cf2fa,_0x43ac46=_0x30de9b[_0x42c0a1(0x2f8)]([_0x42c0a1(0x1d7),_0x193098],_0x6cf2fa),_0x55613e=_0x30de9b[_0x42c0a1(0x2f8)]([_0x42c0a1(0x18c),_0x598eb4-_0x161db4],_0x193098);_0x1c256f['push'](_0x43ac46),_0x1c256f['push'](_0x55613e);}const _0x27d1ce={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x5e0069,'actions':[],'textRanges':[]}};return _0x27d1ce[_0x42c0a1(0x185)]['actions']=_0x1c256f[_0x42c0a1(0x285)]((_0x1b6b3b,_0x2b9389)=>JSONX[_0x42c0a1(0x1b8)](_0x1b6b3b,_0x2b9389),null),!!_0x49121b[_0x42c0a1(0x25c)](_0x27d1ce['id'],_0x27d1ce['params']);},_0x580764(0x1fe))},SetDocDrawingArrangeCommand={'id':_0x580764(0x1c6),'type':CommandType['COMMAND'],'handler':__name((_0x178bc0,_0x3e78ee)=>{const _0x1d3684=_0x580764,_0x12d95d=_0x178bc0['get'](ICommandService),_0x6c6559=_0x178bc0[_0x1d3684(0x233)](IDocDrawingService);if(_0x3e78ee==null)return!0x1;const {unitId:_0x3b6c75,subUnitId:_0x5d76da,drawingIds:_0x37a3c8,arrangeType:_0x2b2760}=_0x3e78ee,_0x5642a5={'unitId':_0x3b6c75,'subUnitId':_0x5d76da,'drawingIds':_0x37a3c8};let _0x19f349;if(_0x2b2760===ArrangeTypeEnum[_0x1d3684(0x18d)]?_0x19f349=_0x6c6559['getForwardDrawingsOp'](_0x5642a5):_0x2b2760===ArrangeTypeEnum[_0x1d3684(0x171)]?_0x19f349=_0x6c6559['getBackwardDrawingOp'](_0x5642a5):_0x2b2760===ArrangeTypeEnum[_0x1d3684(0x1d5)]?_0x19f349=_0x6c6559[_0x1d3684(0x306)](_0x5642a5):_0x2b2760===ArrangeTypeEnum[_0x1d3684(0x16a)]&&(_0x19f349=_0x6c6559[_0x1d3684(0x29e)](_0x5642a5)),_0x19f349==null)return!0x1;const {redo:_0x4315d3}=_0x19f349;if(_0x4315d3==null)return!0x1;const _0xdd3d6a=[];let _0x2cc57f=Tools['deepClone'](_0x4315d3);_0x2cc57f=_0x2cc57f[_0x1d3684(0x1ad)](0x3),_0x2cc57f[_0x1d3684(0x2a2)](_0x1d3684(0x18c)),_0xdd3d6a[_0x1d3684(0x225)](_0x2cc57f);const _0x42183e={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x3b6c75,'actions':[],'textRanges':null}};return _0x42183e[_0x1d3684(0x185)][_0x1d3684(0x1fd)]=_0xdd3d6a[_0x1d3684(0x285)]((_0x57ef62,_0x2eb58f)=>JSONX[_0x1d3684(0x1b8)](_0x57ef62,_0x2eb58f),null),!!_0x12d95d[_0x1d3684(0x25c)](_0x42183e['id'],_0x42183e['params']);},_0x580764(0x1fe))},UngroupDocDrawingCommand={'id':_0x580764(0x355),'type':CommandType['COMMAND'],'handler':__name((_0x14f178,_0x4f5454)=>{const _0x4eec90=_0x580764;_0x14f178[_0x4eec90(0x233)](ICommandService),_0x14f178[_0x4eec90(0x233)](IUndoRedoService);const _0x4948f9=_0x14f178[_0x4eec90(0x233)](IDocDrawingService);if(!_0x4f5454)return!0x1;const _0x382466=[];return _0x4f5454[_0x4eec90(0x250)](({parent:_0x549c50,children:_0x3b61b6})=>{const _0x2e676d=_0x4eec90;_0x382466[_0x2e676d(0x225)](_0x549c50['unitId']),_0x3b61b6[_0x2e676d(0x250)](_0x494a72=>{const _0x35c746=_0x2e676d;_0x382466[_0x35c746(0x225)](_0x494a72[_0x35c746(0x24b)]);});}),_0x4948f9[_0x4eec90(0x1df)](_0x4f5454),!0x1;},_0x580764(0x1fe))},_DocRefreshDrawingsService=class _DocRefreshDrawingsService{constructor(){const _0xcbd69e=_0x580764;__publicField(this,_0xcbd69e(0x251),new BehaviorSubject(null)),__publicField(this,'refreshDrawings$',this[_0xcbd69e(0x251)][_0xcbd69e(0x21c)]());}['refreshDrawings'](_0x2f2181){const _0x1e5990=_0x580764;this[_0x1e5990(0x251)][_0x1e5990(0x2be)](_0x2f2181);}};__name(_DocRefreshDrawingsService,_0x580764(0x293));let DocRefreshDrawingsService=_DocRefreshDrawingsService;var __defProp$6=Object[_0x580764(0x2c9)],__getOwnPropDesc$6=Object[_0x580764(0x178)],__decorateClass$6=__name((_0x52cb57,_0x27e938,_0x494ac5,_0x22502e)=>{const _0x34ba07=_0x580764;for(var _0x204c84=_0x22502e>0x1?void 0x0:_0x22502e?__getOwnPropDesc$6(_0x27e938,_0x494ac5):_0x27e938,_0x549f4c=_0x52cb57[_0x34ba07(0x2e5)]-0x1,_0x51b6c4;_0x549f4c>=0x0;_0x549f4c--)(_0x51b6c4=_0x52cb57[_0x549f4c])&&(_0x204c84=(_0x22502e?_0x51b6c4(_0x27e938,_0x494ac5,_0x204c84):_0x51b6c4(_0x204c84))||_0x204c84);return _0x22502e&&_0x204c84&&__defProp$6(_0x27e938,_0x494ac5,_0x204c84),_0x204c84;},_0x580764(0x323)),__decorateParam$6=__name((_0x88eda0,_0x34cd33)=>(_0x3147a3,_0x2373a4)=>_0x34cd33(_0x3147a3,_0x2373a4,_0x88eda0),_0x580764(0x1f8)),_a;let DocDrawingUpdateRenderController=(_a=class extends Disposable{constructor(_0xbf95cc,_0x3308c7,_0x44d069,_0x541265,_0xf31282,_0x174e28,_0x216930,_0x7ef354,_0x448137,_0x20a2d4,_0x324bff,_0x53a30f,_0x13e9fd){const _0x12b66d=_0x580764;super(),this[_0x12b66d(0x2b5)]=_0xbf95cc,this[_0x12b66d(0x266)]=_0x3308c7,this[_0x12b66d(0x26c)]=_0x44d069,this[_0x12b66d(0x1f7)]=_0x541265,this[_0x12b66d(0x2f0)]=_0xf31282,this[_0x12b66d(0x2b9)]=_0x174e28,this[_0x12b66d(0x243)]=_0x216930,this['_contextService']=_0x7ef354,this[_0x12b66d(0x1c4)]=_0x448137,this[_0x12b66d(0x280)]=_0x20a2d4,this[_0x12b66d(0x264)]=_0x324bff,this['_docRefreshDrawingsService']=_0x53a30f,this[_0x12b66d(0x314)]=_0x13e9fd,this[_0x12b66d(0x29d)](),this[_0x12b66d(0x29a)](),this['_focusDrawingListener'](),this[_0x12b66d(0x2eb)]();}async['insertDocImage'](){const _0x4f3a75=_0x580764,_0x16e80d=await this[_0x4f3a75(0x314)]['openFile']({'multiple':!0x0,'accept':DRAWING_IMAGE_ALLOW_IMAGE_LIST[_0x4f3a75(0x2c3)](_0x172b1f=>'.'+_0x172b1f[_0x4f3a75(0x32b)](_0x4f3a75(0x1b4),''))['join'](',')}),_0xac4a8d=_0x16e80d[_0x4f3a75(0x2e5)];return _0xac4a8d>DRAWING_IMAGE_COUNT_LIMIT?(this[_0x4f3a75(0x1c4)][_0x4f3a75(0x29b)]({'type':MessageType['Error'],'content':this['_localeService']['t']('update-status.exceedMaxCount',String(DRAWING_IMAGE_COUNT_LIMIT))}),!0x1):_0xac4a8d===0x0?!0x1:(await this[_0x4f3a75(0x1a5)](_0x16e80d),!0x0);}async[_0x580764(0x1a5)](_0x33980f){const _0xa045d2=_0x580764;let _0x9dafc7=[];try{_0x9dafc7=await Promise['all'](_0x33980f[_0xa045d2(0x2c3)](_0x281a1e=>this[_0xa045d2(0x2f0)][_0xa045d2(0x332)](_0x281a1e)));}catch(_0x4a0236){const _0xb2d8c2=_0x4a0236[_0xa045d2(0x307)];let _0x2f03d7='';switch(_0xb2d8c2){case ImageUploadStatusType[_0xa045d2(0x1a2)]:_0x2f03d7=this[_0xa045d2(0x280)]['t'](_0xa045d2(0x2ea),String(DRAWING_IMAGE_ALLOW_SIZE/(0x400*0x400)));break;case ImageUploadStatusType[_0xa045d2(0x1d9)]:_0x2f03d7=this[_0xa045d2(0x280)]['t']('update-status.invalidImageType');break;case ImageUploadStatusType[_0xa045d2(0x2e9)]:_0x2f03d7=this[_0xa045d2(0x280)]['t'](_0xa045d2(0x1a3));break;}this[_0xa045d2(0x1c4)][_0xa045d2(0x29b)]({'type':MessageType[_0xa045d2(0x222)],'content':_0x2f03d7});}if(_0x9dafc7[_0xa045d2(0x2e5)]===0x0)return;const {unitId:_0x1efd54}=this[_0xa045d2(0x2b5)],_0x5c19b5=[];for(const _0x5b2d07 of _0x9dafc7){if(_0x5b2d07==null)continue;const {imageId:_0x23b30f,imageSourceType:_0x405576,source:_0x73ea84,base64Cache:_0xc93d3d}=_0x5b2d07,{width:_0x5ca7e7,height:_0x5f3087,image:_0x3f39d7}=await getImageSize(_0xc93d3d||'');this[_0xa045d2(0x2f0)][_0xa045d2(0x1ca)](_0x23b30f,_0x405576,_0x3f39d7);let _0x479c1c=0x1;if(_0x5ca7e7>DRAWING_IMAGE_WIDTH_LIMIT||_0x5f3087>DRAWING_IMAGE_HEIGHT_LIMIT){const _0x106583=DRAWING_IMAGE_WIDTH_LIMIT/_0x5ca7e7,_0x501f79=DRAWING_IMAGE_HEIGHT_LIMIT/_0x5f3087;_0x479c1c=Math['min'](_0x106583,_0x501f79);}const _0x4f6f28=this['_getImagePosition'](_0x5ca7e7*_0x479c1c,_0x5f3087*_0x479c1c);if(_0x4f6f28==null)return;const _0x59e1e7={'unitId':_0x1efd54,'subUnitId':_0x1efd54,'drawingId':_0x23b30f,'drawingType':DrawingTypeEnum[_0xa045d2(0x1dc)],'imageSourceType':_0x405576,'source':_0x73ea84,'transform':docDrawingPositionToTransform(_0x4f6f28),'docTransform':_0x4f6f28,'behindDoc':BooleanNumber[_0xa045d2(0x1ed)],'title':'','description':'','layoutType':PositionedObjectLayoutType[_0xa045d2(0x232)],'wrapText':WrapTextType[_0xa045d2(0x2e8)],'distB':0x0,'distL':0x0,'distR':0x0,'distT':0x0};this[_0xa045d2(0x33e)]()&&(_0x59e1e7[_0xa045d2(0x237)]=BooleanNumber[_0xa045d2(0x313)],_0x59e1e7[_0xa045d2(0x20d)]=_0x59e1e7['transform']?[_0x59e1e7[_0xa045d2(0x175)]]:null),_0x5c19b5[_0xa045d2(0x225)](_0x59e1e7);}this[_0xa045d2(0x266)][_0xa045d2(0x241)](InsertDocDrawingCommand['id'],{'unitId':_0x1efd54,'drawings':_0x5c19b5});}[_0x580764(0x33e)](){const _0x42286b=_0x580764;var _0x936136;const {unitId:_0x5d7917}=this[_0x42286b(0x2b5)],_0x21e3ad=(_0x936136=this[_0x42286b(0x1f7)]['getRenderById'](_0x5d7917))==null?void 0x0:_0x936136[_0x42286b(0x21f)](DocSkeletonManagerService)[_0x42286b(0x1c3)](),_0x296989=_0x21e3ad==null?void 0x0:_0x21e3ad[_0x42286b(0x173)]();return _0x296989===DocumentEditArea[_0x42286b(0x226)]||_0x296989===DocumentEditArea[_0x42286b(0x209)];}[_0x580764(0x1e2)](_0x1c1745,_0x5e324e){const _0x12f1a2=_0x580764,_0x280a06=this[_0x12f1a2(0x264)][_0x12f1a2(0x299)](),_0x3380e5=(_0x280a06==null?void 0x0:_0x280a06[_0x12f1a2(0x271)]())||{'left':0x0,'top':0x0};return{'size':{'width':_0x1c1745,'height':_0x5e324e},'positionH':{'relativeFrom':ObjectRelativeFromH['PAGE'],'posOffset':_0x3380e5['left']},'positionV':{'relativeFrom':ObjectRelativeFromV['MARGIN'],'posOffset':_0x3380e5[_0x12f1a2(0x2ad)]},'angle':0x0};}['_updateOrderListener'](){const _0x4c41a8=_0x580764;this[_0x4c41a8(0x243)][_0x4c41a8(0x23f)]['subscribe'](_0x5c4a82=>{const _0x238457=_0x4c41a8,{unitId:_0x4ba17f,subUnitId:_0xdf62a4,drawingIds:_0x1f5653,arrangeType:_0x8a4bef}=_0x5c4a82;this[_0x238457(0x266)][_0x238457(0x241)](SetDocDrawingArrangeCommand['id'],{'unitId':_0x4ba17f,'subUnitId':_0xdf62a4,'drawingIds':_0x1f5653,'arrangeType':_0x8a4bef});});}[_0x580764(0x29a)](){const _0x15a713=_0x580764;this[_0x15a713(0x243)]['featurePluginGroupUpdate$'][_0x15a713(0x1b2)](_0x3ba858=>{const _0x1c2df1=_0x15a713;this[_0x1c2df1(0x266)]['executeCommand'](GroupDocDrawingCommand['id'],_0x3ba858);}),this[_0x15a713(0x243)][_0x15a713(0x34c)][_0x15a713(0x1b2)](_0x389a38=>{const _0x102033=_0x15a713;this[_0x102033(0x266)]['executeCommand'](UngroupDocDrawingCommand['id'],_0x389a38);});}[_0x580764(0x19b)](){const _0x463e68=_0x580764,{scene:_0x59c527,mainComponent:_0x65bd13}=this[_0x463e68(0x2b5)];if(_0x59c527==null||_0x65bd13==null)return;const _0x10caa7=_0x59c527[_0x463e68(0x20a)](),{docsLeft:_0x2be6f5,docsTop:_0x2f77f5}=_0x65bd13[_0x463e68(0x315)]();return{'scene':_0x59c527,'transformer':_0x10caa7,'docsLeft':_0x2be6f5,'docsTop':_0x2f77f5};}[_0x580764(0x2d2)](){const _0x534293=_0x580764;this[_0x534293(0x309)](this['_drawingManagerService'][_0x534293(0x1fc)][_0x534293(0x1b2)](_0x359f41=>{const _0x2a2772=_0x534293;var _0x501706;const {transformer:_0xe0f768,docsLeft:_0x41f970,docsTop:_0x4773ca}=(_0x501706=this['_getCurrentSceneAndTransformer']())!=null?_0x501706:{};if(_0x359f41==null||_0x359f41[_0x2a2772(0x2e5)]===0x0)this[_0x2a2772(0x290)][_0x2a2772(0x317)](FOCUSING_COMMON_DRAWINGS,!0x1),this['_docDrawingService'][_0x2a2772(0x22c)]([]),_0xe0f768&&_0xe0f768['resetProps']({'zeroTop':0x0,'zeroLeft':0x0});else{this[_0x2a2772(0x290)][_0x2a2772(0x317)](FOCUSING_COMMON_DRAWINGS,!0x0),this[_0x2a2772(0x2b9)][_0x2a2772(0x22c)](_0x359f41),this[_0x2a2772(0x26c)][_0x2a2772(0x299)]()&&this[_0x2a2772(0x26c)][_0x2a2772(0x2f5)]([]);const _0x2a473d=this[_0x2a2772(0x264)][_0x2a2772(0x28d)](),_0x53fde7=this['_findSegmentIdByDrawingId'](_0x359f41[0x0][_0x2a2772(0x2a3)]);_0x2a473d!==_0x53fde7&&this['_docSelectionRenderService'][_0x2a2772(0x1d4)](_0x53fde7),_0xe0f768&&_0xe0f768[_0x2a2772(0x216)]({'zeroTop':_0x4773ca,'zeroLeft':_0x41f970});}}));}[_0x580764(0x287)](_0x46334f){const _0x1c904f=_0x580764;var _0x674a88,_0x1180df,_0x380cbd;const {unit:_0x4ee2d9}=this[_0x1c904f(0x2b5)],{body:_0xd3a02,headers:headers={},footers:footers={}}=_0x4ee2d9[_0x1c904f(0x2ba)]();if(((_0x674a88=_0xd3a02==null?void 0x0:_0xd3a02[_0x1c904f(0x236)])!=null?_0x674a88:[])['some'](_0x18cefc=>_0x18cefc['blockId']===_0x46334f))return'';for(const _0x5aa98e of Object[_0x1c904f(0x1c0)](headers))if((_0x1180df=headers[_0x5aa98e][_0x1c904f(0x18f)][_0x1c904f(0x236)])!=null&&_0x1180df['some'](_0x177f1b=>_0x177f1b[_0x1c904f(0x32d)]===_0x46334f))return _0x5aa98e;for(const _0x58fe96 of Object['keys'](footers))if((_0x380cbd=footers[_0x58fe96][_0x1c904f(0x18f)][_0x1c904f(0x236)])!=null&&_0x380cbd[_0x1c904f(0x1eb)](_0xd299de=>_0xd299de[_0x1c904f(0x32d)]===_0x46334f))return _0x58fe96;return'';}[_0x580764(0x330)](){const _0x4466c3=_0x580764;var _0x4a2471;const {unit:_0x469892,scene:_0x294b86,unitId:_0x54c47d}=this[_0x4466c3(0x2b5)],_0x2dad04=(_0x4a2471=this['_renderManagerSrv'][_0x4466c3(0x304)](_0x54c47d))==null?void 0x0:_0x4a2471['with'](DocSkeletonManagerService)[_0x4466c3(0x1c3)]();if(_0x2dad04==null||_0x469892==null)return;const _0x40ab3c=_0x469892['getSnapshot'](),{drawings:drawings={}}=_0x40ab3c,_0x411e99=_0x2dad04[_0x4466c3(0x173)]()===DocumentEditArea[_0x4466c3(0x2c1)];for(const _0x5c2e76 of Object[_0x4466c3(0x1c0)](drawings)){const _0x363fd4=drawings[_0x5c2e76],_0x3573f6=getDrawingShapeKeyByDrawingSearch({'unitId':_0x54c47d,'drawingId':_0x363fd4[_0x4466c3(0x2a3)],'subUnitId':_0x54c47d}),_0x14e4f2=_0x294b86['fuzzyMathObjects'](_0x3573f6,!0x0);if(_0x14e4f2['length']){for(const _0x2a7926 of _0x14e4f2)_0x294b86[_0x4466c3(0x339)](_0x2a7926),_0x2a7926[_0x4466c3(0x23b)](0.5),(_0x411e99&&_0x363fd4[_0x4466c3(0x237)]!==BooleanNumber[_0x4466c3(0x313)]||!_0x411e99&&_0x363fd4['isMultiTransform']===BooleanNumber[_0x4466c3(0x313)])&&(_0x294b86[_0x4466c3(0x2aa)](_0x2a7926),_0x2a7926[_0x4466c3(0x23b)](0x1));}}}[_0x580764(0x2eb)](){const _0x133c59=_0x580764;var _0x5f7ae9;const {unitId:_0x4b163a}=this['_context'],_0x7cf370=(_0x5f7ae9=this[_0x133c59(0x1f7)][_0x133c59(0x304)](_0x4b163a))==null?void 0x0:_0x5f7ae9['with'](DocSkeletonManagerService)['getViewModel']();_0x7cf370!=null&&(this[_0x133c59(0x330)](),this['disposeWithMe'](_0x7cf370[_0x133c59(0x16c)]['subscribe'](()=>{const _0x86b0e=_0x133c59;this[_0x86b0e(0x330)]();})),this[_0x133c59(0x192)][_0x133c59(0x27b)]['subscribe'](_0x1676ad=>{_0x1676ad!=null&&queueMicrotask(()=>{const _0x455eb7=_0x5391;this[_0x455eb7(0x330)]();});}),this[_0x133c59(0x309)](this[_0x133c59(0x266)][_0x133c59(0x33f)](async _0x1b6cd8=>{_0x1b6cd8['id']===RichTextEditingMutation['id']&&queueMicrotask(()=>{const _0x888580=_0x5391;this[_0x888580(0x330)]();});})));}},__name(_a,_0x580764(0x2a6)),_a);DocDrawingUpdateRenderController=__decorateClass$6([__decorateParam$6(0x1,ICommandService),__decorateParam$6(0x2,Inject(DocSelectionManagerService)),__decorateParam$6(0x3,IRenderManagerService),__decorateParam$6(0x4,IImageIoService),__decorateParam$6(0x5,IDocDrawingService),__decorateParam$6(0x6,IDrawingManagerService),__decorateParam$6(0x7,IContextService),__decorateParam$6(0x8,IMessageService),__decorateParam$6(0x9,Inject(LocaleService)),__decorateParam$6(0xa,Inject(DocSelectionRenderService)),__decorateParam$6(0xb,Inject(DocRefreshDrawingsService)),__decorateParam$6(0xc,ILocalFileService)],DocDrawingUpdateRenderController);const InsertDocImageCommand={'id':'doc.command.insert-float-image','type':CommandType[_0x580764(0x186)],'handler':__name(_0x2471b3=>{const _0x21159f=_0x580764;var _0x47ad52,_0x508feb;return(_0x508feb=(_0x47ad52=_0x2471b3[_0x21159f(0x233)](IRenderManagerService)[_0x21159f(0x17e)](UniverInstanceType[_0x21159f(0x2e7)]))==null?void 0x0:_0x47ad52[_0x21159f(0x21f)](DocDrawingUpdateRenderController)[_0x21159f(0x2de)]())!=null?_0x508feb:!0x1;},_0x580764(0x1fe))};var TextWrappingStyle=(_0x28920f=>(_0x28920f[_0x580764(0x232)]='inline',_0x28920f['BEHIND_TEXT']=_0x580764(0x296),_0x28920f[_0x580764(0x213)]='inFrontOfText',_0x28920f['WRAP_SQUARE']=_0x580764(0x342),_0x28920f['WRAP_TOP_AND_BOTTOM']=_0x580764(0x278),_0x28920f))(TextWrappingStyle||{});const WRAPPING_STYLE_TO_LAYOUT_TYPE={'inline':PositionedObjectLayoutType[_0x580764(0x232)],'wrapSquare':PositionedObjectLayoutType['WRAP_SQUARE'],'wrapTopAndBottom':PositionedObjectLayoutType[_0x580764(0x305)],'inFrontOfText':PositionedObjectLayoutType[_0x580764(0x320)],'behindText':PositionedObjectLayoutType[_0x580764(0x320)]};function getDeleteAndInsertCustomBlockActions(_0x54c983,_0x5f5d8e,_0x1367f2,_0x4ec449,_0x2731f3,_0x39b80c,_0x3dc891){const _0x2b98b1=_0x580764;var _0x565c96,_0x40651f;const _0x4c1d5a=new TextX(),_0x5da01f=JSONX[_0x2b98b1(0x328)](),_0xfd327b=[],_0x1d9c31=_0x39b80c[_0x2b98b1(0x2b4)](_0x5f5d8e)[_0x2b98b1(0x1d0)](),_0x447cfc=_0x39b80c['getSelfOrHeaderFooterModel'](_0x54c983)[_0x2b98b1(0x1d0)]();if(_0x1d9c31==null||_0x447cfc==null)return;const _0x569ea8=(_0x40651f=(_0x565c96=_0x1d9c31[_0x2b98b1(0x236)])==null?void 0x0:_0x565c96['find'](_0x522823=>_0x522823[_0x2b98b1(0x32d)]===_0x2731f3))==null?void 0x0:_0x40651f['startIndex'];if(_0x569ea8!=null){if(_0x4ec449=Math[_0x2b98b1(0x351)](_0x447cfc[_0x2b98b1(0x28f)][_0x2b98b1(0x2e5)]-0x2,_0x4ec449),_0x54c983===_0x5f5d8e){if(_0x4ec449<_0x569ea8?(_0x4ec449>0x0&&_0x4c1d5a['push']({'t':TextXActionType[_0x2b98b1(0x1e7)],'len':_0x4ec449,'segmentId':_0x5f5d8e}),_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType[_0x2b98b1(0x21d)],'body':{'dataStream':'\x08','customBlocks':[{'startIndex':0x0,'blockId':_0x2731f3}]},'len':0x1,'line':0x0,'segmentId':_0x5f5d8e}),_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType[_0x2b98b1(0x1e7)],'len':_0x569ea8-_0x4ec449,'segmentId':_0x5f5d8e}),_0x4c1d5a['push']({'t':TextXActionType[_0x2b98b1(0x2ef)],'len':0x1,'line':0x0,'segmentId':''})):(_0x569ea8>0x0&&_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType[_0x2b98b1(0x1e7)],'len':_0x569ea8,'segmentId':_0x5f5d8e}),_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType['DELETE'],'len':0x1,'line':0x0,'segmentId':''}),_0x4ec449-_0x569ea8-0x1>0x0&&_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType[_0x2b98b1(0x1e7)],'len':_0x4ec449-_0x569ea8-0x1,'segmentId':_0x5f5d8e}),_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType[_0x2b98b1(0x21d)],'body':{'dataStream':'\x08','customBlocks':[{'startIndex':0x0,'blockId':_0x2731f3}]},'len':0x1,'line':0x0,'segmentId':_0x5f5d8e})),_0x4ec449!==_0x569ea8){const _0x566b8d=getRichTextEditPath(_0x39b80c,_0x5f5d8e),_0x3b48ae=_0x5da01f[_0x2b98b1(0x2d6)](_0x4c1d5a[_0x2b98b1(0x200)](),_0x566b8d);_0xfd327b[_0x2b98b1(0x225)](_0x3b48ae);}}else{_0x569ea8>0x0&&_0x4c1d5a['push']({'t':TextXActionType[_0x2b98b1(0x1e7)],'len':_0x569ea8,'segmentId':_0x5f5d8e}),_0x4c1d5a['push']({'t':TextXActionType[_0x2b98b1(0x2ef)],'len':0x1,'line':0x0,'segmentId':''});let _0x310277=getRichTextEditPath(_0x39b80c,_0x5f5d8e),_0x4154d6=_0x5da01f[_0x2b98b1(0x2d6)](_0x4c1d5a[_0x2b98b1(0x200)](),_0x310277);_0xfd327b[_0x2b98b1(0x225)](_0x4154d6),_0x4c1d5a[_0x2b98b1(0x18b)](),_0x4ec449>0x0&&_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType['RETAIN'],'len':_0x4ec449,'segmentId':_0x54c983}),_0x4c1d5a[_0x2b98b1(0x225)]({'t':TextXActionType['INSERT'],'body':{'dataStream':'\x08','customBlocks':[{'startIndex':0x0,'blockId':_0x2731f3}]},'len':0x1,'line':0x0,'segmentId':_0x54c983}),_0x310277=getRichTextEditPath(_0x39b80c,_0x54c983),_0x4154d6=_0x5da01f[_0x2b98b1(0x2d6)](_0x4c1d5a[_0x2b98b1(0x200)](),_0x310277),_0xfd327b[_0x2b98b1(0x225)](_0x4154d6),_0x3dc891[_0x2b98b1(0x1d4)](_0x54c983),_0x3dc891[_0x2b98b1(0x181)](_0x1367f2);}return _0xfd327b;}}__name(getDeleteAndInsertCustomBlockActions,_0x580764(0x23e));const UpdateDocDrawingWrappingStyleCommand={'id':_0x580764(0x27c),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x3fcfae,_0x2929e1)=>{const _0x40dba9=_0x580764;var _0x5ef08d,_0x1f5fb8;if(_0x2929e1==null)return!0x1;const {drawings:_0x18cc07,wrappingStyle:_0x252fdb,unitId:_0x145b42}=_0x2929e1,_0x47748b=_0x3fcfae[_0x40dba9(0x233)](ICommandService),_0x3a2069=_0x3fcfae[_0x40dba9(0x233)](IUniverInstanceService),_0x16f41b=_0x3fcfae[_0x40dba9(0x233)](IRenderManagerService)[_0x40dba9(0x304)](_0x145b42),_0xc89d3c=_0x16f41b==null?void 0x0:_0x16f41b[_0x40dba9(0x21f)](DocSkeletonManagerService)[_0x40dba9(0x1fa)]()['getSkeletonData'](),_0x5711aa=_0x16f41b==null?void 0x0:_0x16f41b[_0x40dba9(0x21f)](DocSkeletonManagerService)['getViewModel'](),_0x4315d8=_0x16f41b==null?void 0x0:_0x16f41b[_0x40dba9(0x182)],_0x328480=_0x3a2069['getCurrentUniverDocInstance']();if(_0x328480==null||_0xc89d3c==null||_0x4315d8==null||_0x5711aa==null)return!0x1;const _0x3c6033=_0x5711aa['getEditArea'](),_0x3a85d3=_0x4315d8[_0x40dba9(0x20a)](),{pages:_0x5bcd7f,skeHeaders:_0x1ef682,skeFooters:_0x1c7714}=_0xc89d3c,_0x5e87bd=JSONX['getInstance'](),_0x37d041=[],{drawings:_0x35000d={}}=_0x328480[_0x40dba9(0x2ba)]();for(const _0x2ea1c2 of _0x18cc07){const {drawingId:_0x3f0fda}=_0x2ea1c2,_0x593075=_0x35000d[_0x3f0fda]['layoutType'],_0x1fdf49=WRAPPING_STYLE_TO_LAYOUT_TYPE[_0x252fdb];if(_0x593075!==_0x1fdf49){const _0x4afb46=_0x5e87bd[_0x40dba9(0x26e)](['drawings',_0x3f0fda,_0x40dba9(0x1bf)],_0x593075,_0x1fdf49);_0x37d041[_0x40dba9(0x225)](_0x4afb46);}if(_0x252fdb==='behindText'||_0x252fdb===_0x40dba9(0x353)){const _0x37c85b=_0x35000d[_0x3f0fda][_0x40dba9(0x276)],_0x5a2ea9=_0x252fdb==='behindText'?BooleanNumber[_0x40dba9(0x313)]:BooleanNumber['FALSE'];if(_0x37c85b!==_0x5a2ea9){const _0x24901d=_0x5e87bd[_0x40dba9(0x26e)]([_0x40dba9(0x1d7),_0x3f0fda,_0x40dba9(0x276)],_0x37c85b,_0x5a2ea9);_0x37d041[_0x40dba9(0x225)](_0x24901d);}}if(_0x252fdb===_0x40dba9(0x273))continue;let _0x3fafaf=null,_0x24df05=0x0,_0x289ef8=0x0;for(const _0x1a7a0e of _0x5bcd7f){const {headerId:_0xf60885,footerId:_0x4331bf,marginTop:_0x4deb99,marginLeft:_0x17c341,marginBottom:_0x335cd6,pageWidth:_0x456e12,pageHeight:_0x595ab5}=_0x1a7a0e;switch(_0x3c6033){case DocumentEditArea[_0x40dba9(0x226)]:{const _0x2a802a=(_0x5ef08d=_0x1ef682['get'](_0xf60885))==null?void 0x0:_0x5ef08d[_0x40dba9(0x233)](_0x456e12);_0x2a802a!=null&&_0x2a802a[_0x40dba9(0x27f)]['has'](_0x3f0fda)&&(_0x3fafaf=_0x2a802a[_0x40dba9(0x27f)]['get'](_0x3f0fda),_0x24df05=_0x2a802a['marginTop'],_0x289ef8=_0x17c341);break;}case DocumentEditArea[_0x40dba9(0x209)]:{const _0x4f069e=(_0x1f5fb8=_0x1c7714[_0x40dba9(0x233)](_0x4331bf))==null?void 0x0:_0x1f5fb8[_0x40dba9(0x233)](_0x456e12);_0x4f069e!=null&&_0x4f069e[_0x40dba9(0x27f)][_0x40dba9(0x275)](_0x3f0fda)&&(_0x3fafaf=_0x4f069e[_0x40dba9(0x27f)][_0x40dba9(0x233)](_0x3f0fda),_0x24df05=_0x595ab5-_0x335cd6+_0x4f069e[_0x40dba9(0x1d1)],_0x289ef8=_0x17c341);break;}case DocumentEditArea['BODY']:{_0x1a7a0e[_0x40dba9(0x27f)][_0x40dba9(0x275)](_0x3f0fda)&&(_0x3fafaf=_0x1a7a0e[_0x40dba9(0x27f)][_0x40dba9(0x233)](_0x3f0fda),_0x24df05=_0x4deb99,_0x289ef8=_0x17c341);break;}}if(_0x3fafaf!=null)break;}if(_0x3fafaf!=null){const {aTop:_0x5ee23c,aLeft:_0x227aa4}=_0x3fafaf,_0x3b9344=_0x35000d[_0x3f0fda]['docTransform']['positionH'];let _0x66ed6a=_0x227aa4;_0x3b9344[_0x40dba9(0x2f4)]===ObjectRelativeFromH[_0x40dba9(0x219)]?_0x66ed6a-=_0x289ef8:_0x3b9344[_0x40dba9(0x2f4)]===ObjectRelativeFromH['COLUMN']&&(_0x66ed6a-=_0x3fafaf['columnLeft']);const _0x221aea={'relativeFrom':_0x3b9344[_0x40dba9(0x2f4)],'posOffset':_0x66ed6a};if(_0x3b9344[_0x40dba9(0x19f)]!==_0x221aea['posOffset']){const _0xd0c90d=_0x5e87bd[_0x40dba9(0x26e)](['drawings',_0x3f0fda,_0x40dba9(0x1c9),_0x40dba9(0x28b)],_0x3b9344,_0x221aea);_0x37d041['push'](_0xd0c90d);}const _0x13f8de=_0x35000d[_0x3f0fda][_0x40dba9(0x1c9)]['positionV'];let _0x2789a8=_0x5ee23c;_0x13f8de['relativeFrom']===ObjectRelativeFromV[_0x40dba9(0x1e1)]?_0x2789a8+=_0x24df05:_0x13f8de[_0x40dba9(0x2f4)]===ObjectRelativeFromV['LINE']?_0x2789a8-=_0x3fafaf[_0x40dba9(0x211)]:_0x13f8de['relativeFrom']===ObjectRelativeFromV[_0x40dba9(0x2bf)]&&(_0x2789a8-=_0x3fafaf[_0x40dba9(0x25d)]);const _0xf4d531={'relativeFrom':_0x13f8de[_0x40dba9(0x2f4)],'posOffset':_0x2789a8};if(_0x13f8de[_0x40dba9(0x19f)]!==_0xf4d531[_0x40dba9(0x19f)]){const _0x3b9e84=_0x5e87bd[_0x40dba9(0x26e)]([_0x40dba9(0x1d7),_0x3f0fda,_0x40dba9(0x1c9),_0x40dba9(0x1f9)],_0x13f8de,_0xf4d531);_0x37d041[_0x40dba9(0x225)](_0x3b9e84);}}}const _0x18f419={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x145b42,'actions':[],'textRanges':null}};_0x18f419['params'][_0x40dba9(0x1fd)]=_0x37d041[_0x40dba9(0x285)]((_0x93b912,_0x364e8e)=>JSONX[_0x40dba9(0x1b8)](_0x93b912,_0x364e8e),null);const _0x293ab7=_0x47748b['syncExecuteCommand'](_0x18f419['id'],_0x18f419[_0x40dba9(0x185)]);return _0x3a85d3['refreshControls'](),!!_0x293ab7;},_0x580764(0x1fe))},UpdateDocDrawingDistanceCommand={'id':_0x580764(0x2dd),'type':CommandType['COMMAND'],'handler':__name((_0x5509fc,_0x458e37)=>{const _0x567eef=_0x580764;if(_0x458e37==null)return!0x1;const _0x50bfa9=_0x5509fc[_0x567eef(0x233)](ICommandService),_0x4e72fb=_0x5509fc[_0x567eef(0x233)](IUniverInstanceService)['getCurrentUniverDocInstance']();if(_0x4e72fb==null)return!0x1;const {drawings:_0x5bf728,dist:_0x513ea8,unitId:_0x48ffb4}=_0x458e37,_0x5c5e41=JSONX['getInstance'](),_0x16c514=[],{drawings:_0x29f014={}}=_0x4e72fb[_0x567eef(0x2ba)]();for(const _0xd52f4d of _0x5bf728){const {drawingId:_0x1d8585}=_0xd52f4d;for(const [_0x24452e,_0x52bef0]of Object[_0x567eef(0x231)](_0x513ea8)){const _0x4f7fce=_0x29f014[_0x1d8585][_0x24452e];if(_0x4f7fce!==_0x52bef0){const _0x520e8c=_0x5c5e41[_0x567eef(0x26e)]([_0x567eef(0x1d7),_0x1d8585,_0x24452e],_0x4f7fce,_0x52bef0);_0x16c514[_0x567eef(0x225)](_0x520e8c);}}}const _0x13c7c0={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x48ffb4,'actions':[],'textRanges':null}};return _0x13c7c0[_0x567eef(0x185)][_0x567eef(0x1fd)]=_0x16c514[_0x567eef(0x285)]((_0x34dfeb,_0xb6fc97)=>JSONX[_0x567eef(0x1b8)](_0x34dfeb,_0xb6fc97),null),!!_0x50bfa9['syncExecuteCommand'](_0x13c7c0['id'],_0x13c7c0['params']);},_0x580764(0x1fe))},UpdateDocDrawingWrapTextCommand={'id':_0x580764(0x2ff),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x58eddf,_0x43a31d)=>{const _0x334fa7=_0x580764;if(_0x43a31d==null)return!0x1;const _0x376385=_0x58eddf[_0x334fa7(0x233)](ICommandService),_0x28f27c=_0x58eddf[_0x334fa7(0x233)](IUniverInstanceService)[_0x334fa7(0x30a)]();if(_0x28f27c==null)return!0x1;const {drawings:_0x2d6e59,wrapText:_0x4c87aa,unitId:_0x81b04}=_0x43a31d,_0x4b51e8=JSONX[_0x334fa7(0x328)](),_0xf367be=[],{drawings:_0x1977dd={}}=_0x28f27c[_0x334fa7(0x2ba)]();for(const _0x297c5a of _0x2d6e59){const {drawingId:_0x16f95f}=_0x297c5a,_0x5db633=_0x1977dd[_0x16f95f][_0x334fa7(0x21a)];if(_0x5db633!==_0x4c87aa){const _0x230105=_0x4b51e8[_0x334fa7(0x26e)]([_0x334fa7(0x1d7),_0x16f95f,_0x334fa7(0x21a)],_0x5db633,_0x4c87aa);_0xf367be[_0x334fa7(0x225)](_0x230105);}}const _0x1cb33e={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x81b04,'actions':[],'textRanges':null}};return _0x1cb33e['params'][_0x334fa7(0x1fd)]=_0xf367be[_0x334fa7(0x285)]((_0x3b5936,_0x5dc171)=>JSONX[_0x334fa7(0x1b8)](_0x3b5936,_0x5dc171),null),!!_0x376385[_0x334fa7(0x25c)](_0x1cb33e['id'],_0x1cb33e[_0x334fa7(0x185)]);},'handler')},UpdateDrawingDocTransformCommand={'id':'doc.command.update-drawing-doc-transform','type':CommandType[_0x580764(0x186)],'handler':__name((_0x521e8c,_0x1a896c)=>{const _0xc59fbe=_0x580764;if(_0x1a896c==null)return!0x1;const _0x2b09f0=_0x521e8c[_0xc59fbe(0x233)](ICommandService),_0x4203bd=_0x521e8c[_0xc59fbe(0x233)](IUniverInstanceService),_0x553944=_0x521e8c[_0xc59fbe(0x233)](IRenderManagerService)[_0xc59fbe(0x304)](_0x1a896c[_0xc59fbe(0x24b)]),_0x484aab=_0x553944==null?void 0x0:_0x553944[_0xc59fbe(0x182)];if(_0x484aab==null)return!0x1;const _0x2574ab=_0x484aab[_0xc59fbe(0x20a)](),_0x599f7f=_0x4203bd[_0xc59fbe(0x30a)]();if(_0x599f7f==null)return!0x1;const {drawings:_0x1b7fd2,unitId:_0x2a3fd0}=_0x1a896c,_0x385e25=JSONX['getInstance'](),_0x30803f=[],{drawings:_0x1e5be4={}}=_0x599f7f[_0xc59fbe(0x2ba)]();for(const _0xaa8dd3 of _0x1b7fd2){const {drawingId:_0x20a223,key:_0x22a81a,value:_0x48c0cb}=_0xaa8dd3,_0x5c3c92=_0x1e5be4[_0x20a223][_0xc59fbe(0x1c9)][_0x22a81a];if(!Tools[_0xc59fbe(0x240)](_0x5c3c92,_0x48c0cb)){const _0x39049d=_0x385e25[_0xc59fbe(0x26e)](['drawings',_0x20a223,_0xc59fbe(0x1c9),_0x22a81a],_0x5c3c92,_0x48c0cb);_0x30803f['push'](_0x39049d);}}const _0x33d8ef={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x2a3fd0,'actions':[],'textRanges':null,'debounce':!0x0}};_0x33d8ef[_0xc59fbe(0x185)][_0xc59fbe(0x1fd)]=_0x30803f[_0xc59fbe(0x285)]((_0x3b3cc9,_0x51a9c6)=>JSONX[_0xc59fbe(0x1b8)](_0x3b3cc9,_0x51a9c6),null);const _0x21e458=_0x2b09f0[_0xc59fbe(0x25c)](_0x33d8ef['id'],_0x33d8ef[_0xc59fbe(0x185)]);return _0x2574ab[_0xc59fbe(0x2c6)](),!!_0x21e458;},_0x580764(0x1fe))},IMoveInlineDrawingCommand={'id':_0x580764(0x265),'type':CommandType['COMMAND'],'handler':__name((_0x355492,_0xced1ef)=>{const _0x23c91a=_0x580764;var _0xd07915,_0x41c826;if(_0xced1ef==null)return!0x1;const _0x5d0ef0=_0x355492[_0x23c91a(0x233)](IRenderManagerService),_0x217912=(_0xd07915=_0x5d0ef0[_0x23c91a(0x304)](_0xced1ef[_0x23c91a(0x24b)]))==null?void 0x0:_0xd07915[_0x23c91a(0x21f)](DocSelectionRenderService),_0x51757e=_0x355492['get'](DocRefreshDrawingsService),_0x22c0a2=_0x5d0ef0[_0x23c91a(0x304)](_0xced1ef['unitId']),_0x5dc3f2=_0x22c0a2==null?void 0x0:_0x22c0a2[_0x23c91a(0x182)],_0xa876b9=_0x22c0a2==null?void 0x0:_0x22c0a2[_0x23c91a(0x21f)](DocSkeletonManagerService)[_0x23c91a(0x1fa)]();if(_0x5dc3f2==null||_0x217912==null)return!0x1;const _0x3a4645=_0x5dc3f2[_0x23c91a(0x20a)](),_0x3dcb36=_0x355492['get'](ICommandService),_0x87695=_0x355492[_0x23c91a(0x233)](IUniverInstanceService)[_0x23c91a(0x30a)]();if(_0x87695==null)return!0x1;const {drawing:_0x255df3,unitId:_0x51a2f8,offset:_0x423b97,segmentId:_0xec86c1,segmentPage:_0x44a63e,needRefreshDrawings:_0x15ca3b}=_0xced1ef;if(_0x15ca3b)return _0x51757e['refreshDrawings'](_0xa876b9),_0x3a4645[_0x23c91a(0x2c6)](),!0x0;const _0x19ea58=[],{drawingId:_0x479126}=_0x255df3,_0x4dda45=(_0x41c826=_0x217912[_0x23c91a(0x28d)]())!=null?_0x41c826:'',_0x28dfdf=getDeleteAndInsertCustomBlockActions(_0xec86c1,_0x4dda45,_0x44a63e,_0x423b97,_0x479126,_0x87695,_0x217912);if(_0x28dfdf==null||_0x28dfdf[_0x23c91a(0x2e5)]===0x0)return _0x51757e[_0x23c91a(0x33d)](_0xa876b9),_0x3a4645[_0x23c91a(0x2c6)](),!0x1;_0x19ea58[_0x23c91a(0x225)](..._0x28dfdf);const _0x3240b7={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x51a2f8,'actions':[],'textRanges':null}};_0x3240b7['params'][_0x23c91a(0x1fd)]=_0x19ea58[_0x23c91a(0x285)]((_0x15cb49,_0x5844b9)=>JSONX['compose'](_0x15cb49,_0x5844b9),null);const _0x4254cb=_0x3dcb36['syncExecuteCommand'](_0x3240b7['id'],_0x3240b7[_0x23c91a(0x185)]);return _0x3a4645[_0x23c91a(0x2c6)](),!!_0x4254cb;},'handler')},ITransformNonInlineDrawingCommand={'id':_0x580764(0x204),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x4289c2,_0xf07d4a)=>{const _0x1d1376=_0x580764;var _0x23fda2,_0x5ed6a5;if(_0xf07d4a==null)return!0x1;const _0x7e759e=_0x4289c2[_0x1d1376(0x233)](IRenderManagerService),_0x1aa42e=(_0x23fda2=_0x7e759e[_0x1d1376(0x304)](_0xf07d4a[_0x1d1376(0x24b)]))==null?void 0x0:_0x23fda2[_0x1d1376(0x21f)](DocSelectionRenderService),_0x440349=_0x7e759e['getRenderById'](_0xf07d4a[_0x1d1376(0x24b)]),_0x430a84=_0x440349==null?void 0x0:_0x440349[_0x1d1376(0x182)];if(_0x430a84==null||_0x1aa42e==null)return!0x1;const _0x23a263=_0x430a84[_0x1d1376(0x20a)](),_0x20787=_0x4289c2[_0x1d1376(0x233)](ICommandService),_0x256511=_0x4289c2[_0x1d1376(0x233)](IUniverInstanceService)[_0x1d1376(0x30a)]();if(_0x256511==null)return!0x1;const {drawing:_0x3fc859,unitId:_0x22ddae,offset:_0x5dac40,docTransform:_0x8c925d,segmentId:_0x15f2db,segmentPage:_0x5e6041}=_0xf07d4a,_0x432de2=[],{drawingId:_0x326a71}=_0x3fc859,_0xb4ed6f=(_0x5ed6a5=_0x1aa42e[_0x1d1376(0x28d)]())!=null?_0x5ed6a5:'',_0x1e91bc=getDeleteAndInsertCustomBlockActions(_0x15f2db,_0xb4ed6f,_0x5e6041,_0x5dac40,_0x326a71,_0x256511,_0x1aa42e);if(_0x1e91bc==null)return!0x1;_0x1e91bc['length']>0x0&&_0x432de2[_0x1d1376(0x225)](..._0x1e91bc);const _0x53d154=JSONX[_0x1d1376(0x328)](),{drawings:_0x159ab2={}}=_0x256511[_0x1d1376(0x2ba)](),_0x19de79=_0x159ab2[_0x326a71][_0x1d1376(0x1c9)],{positionH:_0x895657,positionV:_0x534a03,size:_0x12c677,angle:_0x45885d}=_0x19de79;if(!Tools[_0x1d1376(0x240)](_0x895657,_0x8c925d[_0x1d1376(0x28b)])){const _0x2ffc32=_0x53d154[_0x1d1376(0x26e)]([_0x1d1376(0x1d7),_0x326a71,_0x1d1376(0x1c9),'positionH'],_0x895657,_0x8c925d[_0x1d1376(0x28b)]);_0x432de2[_0x1d1376(0x225)](_0x2ffc32);}if(!Tools[_0x1d1376(0x240)](_0x534a03,_0x8c925d['positionV'])){const _0x3fd067=_0x53d154[_0x1d1376(0x26e)]([_0x1d1376(0x1d7),_0x326a71,_0x1d1376(0x1c9),_0x1d1376(0x1f9)],_0x534a03,_0x8c925d['positionV']);_0x432de2[_0x1d1376(0x225)](_0x3fd067);}if(!Tools[_0x1d1376(0x240)](_0x12c677,_0x8c925d[_0x1d1376(0x2f3)])){const _0xbd1467=_0x53d154[_0x1d1376(0x26e)]([_0x1d1376(0x1d7),_0x326a71,_0x1d1376(0x1c9),_0x1d1376(0x2f3)],_0x12c677,_0x8c925d[_0x1d1376(0x2f3)]);_0x432de2['push'](_0xbd1467);}if(!Tools[_0x1d1376(0x240)](_0x45885d,_0x8c925d[_0x1d1376(0x2e2)])){const _0x3f9ccb=_0x53d154['replaceOp']([_0x1d1376(0x1d7),_0x326a71,_0x1d1376(0x1c9),_0x1d1376(0x2e2)],_0x45885d,_0x8c925d[_0x1d1376(0x2e2)]);_0x432de2[_0x1d1376(0x225)](_0x3f9ccb);}const _0x47913d={'id':RichTextEditingMutation['id'],'params':{'unitId':_0x22ddae,'actions':[],'textRanges':null,'debounce':!0x0}};_0x47913d[_0x1d1376(0x185)][_0x1d1376(0x1fd)]=_0x432de2[_0x1d1376(0x285)]((_0x217231,_0x2a3faa)=>JSONX['compose'](_0x217231,_0x2a3faa),null);const _0x24934f=_0x20787[_0x1d1376(0x25c)](_0x47913d['id'],_0x47913d[_0x1d1376(0x185)]);return _0x23a263[_0x1d1376(0x2c6)](),!!_0x24934f;},_0x580764(0x1fe))},MoveDocDrawingsCommand={'id':_0x580764(0x198),'type':CommandType[_0x580764(0x186)],'handler':__name((_0x173603,_0x2129d6)=>{const _0x534725=_0x580764,_0x556c1a=_0x173603['get'](ICommandService),_0x4faacf=_0x173603[_0x534725(0x233)](IDocDrawingService),_0x353515=_0x173603[_0x534725(0x233)](IUniverInstanceService),_0x47afae=_0x173603[_0x534725(0x233)](IRenderManagerService),{direction:_0xa4a3b8}=_0x2129d6,_0x5cf3dc=_0x4faacf[_0x534725(0x174)]();if(_0x5cf3dc[_0x534725(0x2e5)]===0x0)return!0x1;const _0x158671=_0x5cf3dc[0x0]['unitId'],_0xdaa672=_0x47afae[_0x534725(0x304)](_0x158671),_0x17c8a5=_0xdaa672==null?void 0x0:_0xdaa672['scene'];if(_0x17c8a5==null)return!0x1;const _0x9fa7c9=_0x17c8a5[_0x534725(0x20a)](),_0xa890ac=_0x353515[_0x534725(0x18a)](_0x158671),_0xe44eb3=_0x5cf3dc[_0x534725(0x2c3)](_0x2f8cf6=>{const _0x34f45e=_0x534725;var _0x453a9c,_0x3188e4,_0x38b519,_0x300dca,_0x27a14c;const {drawingId:_0x11f977}=_0x2f8cf6,_0x1ebc13=(_0x453a9c=_0xa890ac==null?void 0x0:_0xa890ac['getSnapshot']()[_0x34f45e(0x1d7)])==null?void 0x0:_0x453a9c[_0x11f977];if(_0x1ebc13==null||_0x1ebc13['layoutType']===PositionedObjectLayoutType['INLINE'])return null;const {positionH:_0x42cdb2,positionV:_0x34bec8}=_0x1ebc13['docTransform'],_0x5c3c99={..._0x42cdb2},_0x2bbaee={..._0x34bec8};return _0xa4a3b8===Direction['UP']?_0x2bbaee['posOffset']=((_0x3188e4=_0x2bbaee[_0x34f45e(0x19f)])!=null?_0x3188e4:0x0)-0x2:_0xa4a3b8===Direction[_0x34f45e(0x1ab)]?_0x2bbaee['posOffset']=((_0x38b519=_0x2bbaee[_0x34f45e(0x19f)])!=null?_0x38b519:0x0)+0x2:_0xa4a3b8===Direction[_0x34f45e(0x2a5)]?_0x5c3c99[_0x34f45e(0x19f)]=((_0x300dca=_0x5c3c99[_0x34f45e(0x19f)])!=null?_0x300dca:0x0)-0x2:_0xa4a3b8===Direction[_0x34f45e(0x333)]&&(_0x5c3c99[_0x34f45e(0x19f)]=((_0x27a14c=_0x5c3c99[_0x34f45e(0x19f)])!=null?_0x27a14c:0x0)+0x2),{'drawingId':_0x11f977,'key':_0xa4a3b8===Direction['UP']||_0xa4a3b8===Direction[_0x34f45e(0x1ab)]?'positionV':'positionH','value':_0xa4a3b8===Direction['UP']||_0xa4a3b8===Direction[_0x34f45e(0x1ab)]?_0x2bbaee:_0x5c3c99};})[_0x534725(0x230)](_0x13f880=>_0x13f880!=null);if(_0xe44eb3['length']===0x0)return!0x1;const _0x2788f2=_0x556c1a[_0x534725(0x25c)](UpdateDrawingDocTransformCommand['id'],{'unitId':_0x158671,'subUnitId':_0x158671,'drawings':_0xe44eb3});return _0x9fa7c9[_0x534725(0x2c6)](),!!_0x2788f2;},_0x580764(0x1fe))},ClearDocDrawingTransformerOperation={'id':_0x580764(0x1d3),'type':CommandType[_0x580764(0x2c4)],'handler':__name((_0x24ff4b,_0x371c38)=>{const _0x85b02c=_0x580764,_0x150069=_0x24ff4b[_0x85b02c(0x233)](IRenderManagerService);return _0x371c38[_0x85b02c(0x250)](_0x3dc520=>{const _0x475898=_0x85b02c;var _0x3486e5,_0x17bb7d;(_0x17bb7d=(_0x3486e5=_0x150069['getRenderById'](_0x3dc520))==null?void 0x0:_0x3486e5[_0x475898(0x182)][_0x475898(0x2b8)]())==null||_0x17bb7d[_0x475898(0x345)]();}),!0x0;},_0x580764(0x1fe))},COMPONENT_DOC_DRAWING_PANEL=_0x580764(0x2b6),SidebarDocDrawingOperation={'id':_0x580764(0x160),'type':CommandType[_0x580764(0x186)],'handler':__name(async(_0x33572f,_0xc116ca)=>{const _0x4fb4d1=_0x580764,_0x3226f4=_0x33572f['get'](ISidebarService),_0x31c456=_0x33572f[_0x4fb4d1(0x233)](LocaleService),_0x4bd520=_0x33572f[_0x4fb4d1(0x233)](IDrawingManagerService);switch(_0xc116ca[_0x4fb4d1(0x190)]){case _0x4fb4d1(0x33c):_0x3226f4[_0x4fb4d1(0x33c)]({'header':{'title':_0x31c456['t'](_0x4fb4d1(0x16f))},'children':{'label':COMPONENT_DOC_DRAWING_PANEL},'onClose':__name(()=>{const _0x2df699=_0x4fb4d1;_0x4bd520[_0x2df699(0x22c)](null);},_0x4fb4d1(0x168)),'width':0x168});break;case'close':default:_0x3226f4['close']();break;}return!0x0;},'handler')},EditDocDrawingOperation={'id':_0x580764(0x2e0),'type':CommandType[_0x580764(0x1f3)],'handler':__name((_0x4b8192,_0x7b93ab)=>{const _0x455510=_0x580764,_0x1ba145=_0x4b8192[_0x455510(0x233)](IDrawingManagerService),_0x3fbc0a=_0x4b8192[_0x455510(0x233)](ICommandService);return _0x7b93ab==null?!0x1:(_0x1ba145['focusDrawing']([_0x7b93ab]),_0x3fbc0a['executeCommand'](SidebarDocDrawingOperation['id'],{'value':'open'}),!0x0);},'handler')},imageCommonPanel=_0x580764(0x352),imageCommonPanelGrid=_0x580764(0x1e5),imageCommonPanelBorder=_0x580764(0x1d2),imageCommonPanelTitle=_0x580764(0x16d),imageCommonPanelSubtitle='univer-image-common-panel-subtitle',imageCommonPanelRow=_0x580764(0x2fe),imageCommonPanelRowVertical=_0x580764(0x310),imageCommonPanelColumn=_0x580764(0x2db),imageCommonPanelColumnCenter='univer-image-common-panel-column-center',imageCommonPanelInline=_0x580764(0x1b0),imageCommonPanelSpan2='univer-image-common-panel-span2',imageCommonPanelSpan3='univer-image-common-panel-span3',imageCommonPanelInput='univer-image-common-panel-input',sheetImageMenu=_0x580764(0x2d8),sheetImageMenuInput=_0x580764(0x2cc),styles={'imageCommonPanel':imageCommonPanel,'imageCommonPanelGrid':imageCommonPanelGrid,'imageCommonPanelBorder':imageCommonPanelBorder,'imageCommonPanelTitle':imageCommonPanelTitle,'imageCommonPanelSubtitle':imageCommonPanelSubtitle,'imageCommonPanelRow':imageCommonPanelRow,'imageCommonPanelRowVertical':imageCommonPanelRowVertical,'imageCommonPanelColumn':imageCommonPanelColumn,'imageCommonPanelColumnCenter':imageCommonPanelColumnCenter,'imageCommonPanelInline':imageCommonPanelInline,'imageCommonPanelSpan2':imageCommonPanelSpan2,'imageCommonPanelSpan3':imageCommonPanelSpan3,'imageCommonPanelInput':imageCommonPanelInput,'sheetImageMenu':sheetImageMenu,'sheetImageMenuInput':sheetImageMenuInput},MIN_MARGIN=0x0,MAX_MARGIN=0x64,DocDrawingTextWrap=__name(_0x1a8ccf=>{const _0x2a054e=_0x580764,_0x33875a=useDependency(ICommandService),_0x169927=useDependency(LocaleService),_0x9397bb=useDependency(IDrawingManagerService),_0x27f612=useDependency(IRenderManagerService),_0x3ee821=useDependency(IUniverInstanceService),{drawings:_0x27824a}=_0x1a8ccf,_0x3a9f5a=_0x27824a[0x0];if(_0x3a9f5a==null)return null;const {unitId:_0x49ba5f}=_0x3a9f5a,_0x1b5268=_0x3ee821[_0x2a054e(0x18a)](_0x49ba5f),_0x233ab9=_0x27f612[_0x2a054e(0x304)](_0x49ba5f);if((_0x233ab9==null?void 0x0:_0x233ab9[_0x2a054e(0x182)])==null)return null;const [_0x22832f,_0xdf7be2]=useState(!0x0),[_0x2bff0f,_0x13a567]=useState(!0x0),[_0x3a90c4,_0x1315e3]=useState(!0x0),[_0x18e730,_0x32e634]=useState(TextWrappingStyle['INLINE']),[_0x89b99f,_0x585c64]=useState(''),[_0x35c2c6,_0x172985]=useState({'distT':0x0,'distL':0x0,'distB':0x0,'distR':0x0}),[_0x19334f,_0x38de97]=useState(!0x0);function _0x38d796(_0x434235){const _0x516a03=_0x2a054e;_0x32e634(_0x434235);const _0x1dcd4b=_0x9397bb['getFocusDrawings']();if(_0x1dcd4b[_0x516a03(0x2e5)]===0x0)return;const {unitId:_0x2a8b0f,subUnitId:_0x54b90e}=_0x1dcd4b[0x0],_0x17b856=_0x1dcd4b['map'](({unitId:_0x212e15,subUnitId:_0x4282bf,drawingId:_0x5ed0e0})=>({'unitId':_0x212e15,'subUnitId':_0x4282bf,'drawingId':_0x5ed0e0}));_0x33875a['executeCommand'](UpdateDocDrawingWrappingStyleCommand['id'],{'unitId':_0x2a8b0f,'subUnitId':_0x54b90e,'drawings':_0x17b856,'wrappingStyle':_0x434235});}__name(_0x38d796,_0x2a054e(0x1e0));function _0x24bf8d(_0x4c586a){const _0x3ccf61=_0x2a054e;_0x585c64(_0x4c586a);const _0x5dc062=_0x9397bb[_0x3ccf61(0x174)]();if(_0x5dc062[_0x3ccf61(0x2e5)]===0x0)return;const _0x4e09a6=_0x5dc062['map'](_0x139d16=>({'unitId':_0x139d16[_0x3ccf61(0x24b)],'subUnitId':_0x139d16['subUnitId'],'drawingId':_0x139d16['drawingId']}));_0x33875a['executeCommand'](UpdateDocDrawingWrapTextCommand['id'],{'unitId':_0x5dc062[0x0]['unitId'],'subUnitId':_0x5dc062[0x0][_0x3ccf61(0x24b)],'drawings':_0x4e09a6,'wrapText':_0x4c586a});}__name(_0x24bf8d,'handleWrapTextChange');function _0xaf3d5a(_0x4b25c5,_0x28d849){const _0x54c706=_0x2a054e;if(_0x4b25c5==null)return;const _0x1abfe8={..._0x35c2c6,[_0x28d849]:_0x4b25c5};_0x172985(_0x1abfe8);const _0x366d48=_0x9397bb[_0x54c706(0x174)]();if(_0x366d48[_0x54c706(0x2e5)]===0x0)return;const _0x7ffcbc=_0x366d48[_0x54c706(0x2c3)](_0x312f71=>({'unitId':_0x312f71[_0x54c706(0x24b)],'subUnitId':_0x312f71['subUnitId'],'drawingId':_0x312f71[_0x54c706(0x2a3)]}));_0x33875a[_0x54c706(0x241)](UpdateDocDrawingDistanceCommand['id'],{'unitId':_0x366d48[0x0][_0x54c706(0x24b)],'subUnitId':_0x366d48[0x0][_0x54c706(0x24b)],'drawings':_0x7ffcbc,'dist':{[_0x28d849]:_0x4b25c5}});}__name(_0xaf3d5a,_0x2a054e(0x2a8));function _0x3c54b8(){const _0x3bc546=_0x2a054e,_0x377cfd=_0x9397bb[_0x3bc546(0x174)]();_0x377cfd[_0x3bc546(0x2e5)]!==0x0&&_0x1b4fad(_0x377cfd[0x0]);}__name(_0x3c54b8,_0x2a054e(0x159));function _0x1b4fad(_0x3fc8d5){const _0x2a72a7=_0x2a054e;var _0x51db53,_0x14a50c;const _0x3ec151=(_0x14a50c=(_0x51db53=_0x1b5268==null?void 0x0:_0x1b5268[_0x2a72a7(0x2ba)]())==null?void 0x0:_0x51db53[_0x2a72a7(0x1d7)])==null?void 0x0:_0x14a50c[_0x3fc8d5[_0x2a72a7(0x2a3)]];if(_0x3ec151==null)return;const {distT:distT=0x0,distL:distL=0x0,distB:distB=0x0,distR:distR=0x0,layoutType:layoutType=PositionedObjectLayoutType[_0x2a72a7(0x232)],behindDoc:behindDoc=BooleanNumber[_0x2a72a7(0x1ed)],wrapText:_0x40a1cb=WrapTextType['BOTH_SIDES']}=_0x3ec151;if(_0x172985({'distT':distT,'distL':distL,'distB':distB,'distR':distR}),_0x585c64(_0x40a1cb),_0xdf7be2(layoutType!==PositionedObjectLayoutType[_0x2a72a7(0x189)]),layoutType===PositionedObjectLayoutType[_0x2a72a7(0x320)]||layoutType===PositionedObjectLayoutType[_0x2a72a7(0x232)]?_0x13a567(!0x0):_0x13a567(!0x1),layoutType===PositionedObjectLayoutType[_0x2a72a7(0x320)]||layoutType===PositionedObjectLayoutType[_0x2a72a7(0x232)]||layoutType===PositionedObjectLayoutType[_0x2a72a7(0x305)]?_0x1315e3(!0x0):_0x1315e3(!0x1),layoutType===PositionedObjectLayoutType[_0x2a72a7(0x320)])behindDoc===BooleanNumber[_0x2a72a7(0x313)]?_0x32e634(TextWrappingStyle[_0x2a72a7(0x1a7)]):_0x32e634(TextWrappingStyle['IN_FRONT_OF_TEXT']);else switch(layoutType){case PositionedObjectLayoutType['INLINE']:_0x32e634(TextWrappingStyle[_0x2a72a7(0x232)]);break;case PositionedObjectLayoutType[_0x2a72a7(0x189)]:_0x32e634(TextWrappingStyle['WRAP_SQUARE']);break;case PositionedObjectLayoutType[_0x2a72a7(0x305)]:_0x32e634(TextWrappingStyle['WRAP_TOP_AND_BOTTOM']);break;default:throw new Error('Unsupported\x20layout\x20type:\x20'+layoutType);}}return __name(_0x1b4fad,'updateState'),useEffect(()=>{const _0x211f4b=_0x2a054e;_0x3c54b8();const _0x57fd70=_0x9397bb[_0x211f4b(0x1fc)][_0x211f4b(0x1b2)](_0xcc502d=>{const _0x9f3d4f=_0x211f4b;if(_0xcc502d[_0x9f3d4f(0x2e5)]===0x0){_0x38de97(!0x1);return;}_0x38de97(!0x0),_0x1b4fad(_0xcc502d[0x0]);}),_0x2bcd16=_0x33875a[_0x211f4b(0x33f)](async _0x2d07ba=>{_0x2d07ba['id']===RichTextEditingMutation['id']&&_0x3c54b8();});return()=>{const _0x331fec=_0x211f4b;_0x57fd70[_0x331fec(0x2cf)](),_0x2bcd16[_0x331fec(0x249)]();};},[]),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x1c1)],styles[_0x2a054e(0x2bc)]),'style':{'display':_0x19334f?'block':'none'}},_0x4b3e20[_0x2a054e(0x1bb)]('div',{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20['createElement'](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles['imageCommonPanelTitle'])},_0x4b3e20['createElement'](_0x2a054e(0x295),null,_0x169927['t'](_0x2a054e(0x2b3))))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles[_0x2a054e(0x297)])},_0x4b3e20['createElement'](_0x2a054e(0x295),null,_0x169927['t']('image-text-wrap.wrappingStyle')))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x20f)])},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles['imageCommonPanelColumn'])},_0x4b3e20[_0x2a054e(0x1bb)](RadioGroup,{'value':_0x18e730,'onChange':_0x38d796,'direction':_0x2a054e(0x201)},_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':TextWrappingStyle[_0x2a054e(0x232)]},_0x169927['t']('image-text-wrap.inline')),_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':TextWrappingStyle[_0x2a054e(0x189)]},_0x169927['t'](_0x2a054e(0x303))),_0x4b3e20['createElement'](Radio,{'value':TextWrappingStyle[_0x2a054e(0x305)]},_0x169927['t'](_0x2a054e(0x206))),_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':TextWrappingStyle[_0x2a054e(0x1a7)]},_0x169927['t'](_0x2a054e(0x31a))),_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':TextWrappingStyle[_0x2a054e(0x213)]},_0x169927['t'](_0x2a054e(0x176)))))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20['createElement']('div',{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles['imageCommonPanelSubtitle'])},_0x4b3e20['createElement'](_0x2a054e(0x295),null,_0x169927['t'](_0x2a054e(0x238))))),_0x4b3e20['createElement'](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x20f)])},_0x4b3e20[_0x2a054e(0x1bb)]('div',{'className':_0x389ec1(styles[_0x2a054e(0x235)])},_0x4b3e20[_0x2a054e(0x1bb)](RadioGroup,{'disabled':_0x22832f,'value':_0x89b99f,'onChange':_0x24bf8d,'direction':'horizontal'},_0x4b3e20['createElement'](Radio,{'value':WrapTextType[_0x2a054e(0x2e8)]},_0x169927['t']('image-text-wrap.bothSide')),_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':WrapTextType[_0x2a054e(0x2a5)]},_0x169927['t']('image-text-wrap.leftOnly')),_0x4b3e20[_0x2a054e(0x1bb)](Radio,{'value':WrapTextType[_0x2a054e(0x333)]},_0x169927['t']('image-text-wrap.rightOnly'))))),_0x4b3e20['createElement'](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)]('div',{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles[_0x2a054e(0x297)])},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),null,_0x169927['t'](_0x2a054e(0x31b))))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles[_0x2a054e(0x28e)])},_0x4b3e20['createElement'](_0x2a054e(0x2f2),null,_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x169927['t'](_0x2a054e(0x1f0)))),_0x4b3e20['createElement'](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x4b3e20[_0x2a054e(0x1bb)](InputNumber,{'min':MIN_MARGIN,'max':MAX_MARGIN,'disabled':_0x2bff0f,'precision':0x1,'value':_0x35c2c6[_0x2a054e(0x261)],'onChange':__name(_0x5d2abc=>{const _0x2642d5=_0x2a054e;_0xaf3d5a(_0x5d2abc,_0x2642d5(0x261));},_0x2a054e(0x2b2)),'className':styles[_0x2a054e(0x311)]}))))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles[_0x2a054e(0x28e)])},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x2f2),null,_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x169927['t'](_0x2a054e(0x215)))),_0x4b3e20[_0x2a054e(0x1bb)]('div',{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x4b3e20[_0x2a054e(0x1bb)](InputNumber,{'min':MIN_MARGIN,'max':MAX_MARGIN,'disabled':_0x3a90c4,'precision':0x1,'value':_0x35c2c6['distL'],'onChange':__name(_0x3033fa=>{const _0x2c3752=_0x2a054e;_0xaf3d5a(_0x3033fa,_0x2c3752(0x214));},_0x2a054e(0x2b2)),'className':styles['imageCommonPanelInput']})))))),_0x4b3e20['createElement'](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles['imageCommonPanelColumn'],styles[_0x2a054e(0x28e)])},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x2f2),null,_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x169927['t'](_0x2a054e(0x23c)))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles['imageCommonPanelColumn']},_0x4b3e20[_0x2a054e(0x1bb)](InputNumber,{'min':MIN_MARGIN,'max':MAX_MARGIN,'disabled':_0x2bff0f,'precision':0x1,'value':_0x35c2c6[_0x2a054e(0x1ee)],'onChange':__name(_0x248914=>{const _0x5075b3=_0x2a054e;_0xaf3d5a(_0x248914,_0x5075b3(0x1ee));},_0x2a054e(0x2b2)),'className':styles[_0x2a054e(0x311)]}))))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':_0x389ec1(styles[_0x2a054e(0x235)],styles['imageCommonPanelSpan2'])},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x2f2),null,_0x4b3e20[_0x2a054e(0x1bb)]('div',{'className':styles[_0x2a054e(0x20f)]},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x169927['t'](_0x2a054e(0x2f1)))),_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x2a054e(0x1bb)](_0x2a054e(0x295),{'className':styles[_0x2a054e(0x235)]},_0x4b3e20[_0x2a054e(0x1bb)](InputNumber,{'min':MIN_MARGIN,'max':MAX_MARGIN,'disabled':_0x3a90c4,'precision':0x1,'value':_0x35c2c6[_0x2a054e(0x25e)],'onChange':__name(_0x214198=>{const _0x583696=_0x2a054e;_0xaf3d5a(_0x214198,_0x583696(0x25e));},_0x2a054e(0x2b2)),'className':styles[_0x2a054e(0x311)]})))))));},_0x580764(0x15d)),MIN_OFFSET=-0x3e8,MAX_OFFSET=0x3e8,DocDrawingPosition=__name(_0xb798bf=>{const _0x42554e=_0x580764,_0x35a5c8=useDependency(ICommandService),_0x294389=useDependency(LocaleService),_0x524b1a=useDependency(IDrawingManagerService),_0x5a55b5=useDependency(IRenderManagerService),_0x652d17=useDependency(IUniverInstanceService),{drawings:_0x2522a8}=_0xb798bf,_0x2b3a40=_0x2522a8[0x0];if(_0x2b3a40==null)return;const {unitId:_0x243463}=_0x2b3a40,_0x28da60=_0x652d17[_0x42554e(0x18a)](_0x243463),_0x1eaa4f=_0x5a55b5[_0x42554e(0x304)](_0x243463),_0x371fc4=_0x1eaa4f==null?void 0x0:_0x1eaa4f[_0x42554e(0x182)];if(_0x371fc4==null)return;const _0x4f6807=_0x371fc4['getTransformerByCreate'](),_0xdba5c7=[{'label':_0x294389['t']('image-position.column'),'value':String(ObjectRelativeFromH['COLUMN'])},{'label':_0x294389['t'](_0x42554e(0x2bd)),'value':String(ObjectRelativeFromH[_0x42554e(0x1e1)])},{'label':_0x294389['t']('image-position.margin'),'value':String(ObjectRelativeFromH[_0x42554e(0x219)])}],_0x166e3b=[{'label':_0x294389['t'](_0x42554e(0x1f1)),'value':String(ObjectRelativeFromV[_0x42554e(0x1a1)])},{'label':_0x294389['t']('image-position.page'),'value':String(ObjectRelativeFromV[_0x42554e(0x1e1)])},{'label':_0x294389['t']('image-position.margin'),'value':String(ObjectRelativeFromV['MARGIN'])},{'label':_0x294389['t'](_0x42554e(0x22e)),'value':String(ObjectRelativeFromV['PARAGRAPH'])}],[_0x3812f5,_0x553c7d]=useState(!0x0),[_0xd50bc0,_0x5b3754]=useState({'relativeFrom':ObjectRelativeFromH['PAGE'],'posOffset':0x0}),[_0x2ef0e1,_0x388133]=useState({'relativeFrom':ObjectRelativeFromV['PAGE'],'posOffset':0x0}),[_0x28b7e1,_0x49b52e]=useState(!0x0),[_0x387641,_0x43de4b]=useState(!0x0);function _0x4e9fe2(_0x5332f9,_0x1452db){const _0xe7cc4e=_0x42554e;var _0x32f156;_0x5332f9==='positionH'?_0x5b3754(_0x1452db):_0x388133(_0x1452db);const _0x2974a4=_0x524b1a[_0xe7cc4e(0x174)]();if(_0x2974a4[_0xe7cc4e(0x2e5)]===0x0)return;const _0x4e9fd9=_0x2974a4[_0xe7cc4e(0x2c3)](_0x4eccbb=>({'unitId':_0x4eccbb[_0xe7cc4e(0x24b)],'subUnitId':_0x4eccbb['subUnitId'],'drawingId':_0x4eccbb[_0xe7cc4e(0x2a3)]}));_0x35a5c8[_0xe7cc4e(0x241)](UpdateDrawingDocTransformCommand['id'],{'unitId':_0x2974a4[0x0][_0xe7cc4e(0x24b)],'subUnitId':_0x2974a4[0x0]['unitId'],'drawings':_0x4e9fd9['map'](_0x2a7475=>({'drawingId':_0x2a7475[_0xe7cc4e(0x2a3)],'key':_0x5332f9,'value':_0x1452db}))});const _0x2eacf5=(_0x32f156=_0x5a55b5[_0xe7cc4e(0x304)](_0x243463))==null?void 0x0:_0x32f156[_0xe7cc4e(0x21f)](DocSelectionRenderService);_0x2eacf5&&_0x2eacf5[_0xe7cc4e(0x25f)](),_0x4f6807['refreshControls']();}__name(_0x4e9fe2,_0x42554e(0x289));function _0x2c97ea(_0x207d5d){const _0x10045d=_0x42554e;var _0x121973,_0x5cb393,_0x277334;const _0x582249=_0xd50bc0[_0x10045d(0x2f4)],_0x1a4b22=_0xd50bc0[_0x10045d(0x19f)],_0x9068e8=Number(_0x207d5d);if(_0x582249===_0x9068e8)return;const _0x12798a=_0x524b1a[_0x10045d(0x174)]();if(_0x12798a[_0x10045d(0x2e5)]===0x0)return;const _0x28aed2=_0x12798a[0x0][_0x10045d(0x2a3)],_0x312370=_0x12798a[0x0]['unitId'];let _0x2152e9=null,_0x55b110=0x0;const _0x5ce5da=(_0x121973=_0x5a55b5['getRenderById'](_0x312370))==null?void 0x0:_0x121973['with'](DocSkeletonManagerService)[_0x10045d(0x1fa)](),_0x259d63=_0x5ce5da==null?void 0x0:_0x5ce5da[_0x10045d(0x2fb)]();if(_0x259d63==null)return;const {pages:_0x10c41a,skeHeaders:_0x517c1c,skeFooters:_0x476805}=_0x259d63;for(const _0x1725d6 of _0x10c41a){const {marginLeft:_0x1ff85e,skeDrawings:_0x1c7a37,headerId:_0x47b707,footerId:_0x2e714f,pageWidth:_0x2fb2dd}=_0x1725d6;if(_0x1c7a37[_0x10045d(0x275)](_0x28aed2)){_0x2152e9=_0x1c7a37['get'](_0x28aed2),_0x55b110=_0x1ff85e;break;}const _0x2ff7d8=(_0x5cb393=_0x517c1c['get'](_0x47b707))==null?void 0x0:_0x5cb393[_0x10045d(0x233)](_0x2fb2dd);if(_0x2ff7d8!=null&&_0x2ff7d8[_0x10045d(0x27f)]['has'](_0x28aed2)){_0x2152e9=_0x2ff7d8==null?void 0x0:_0x2ff7d8[_0x10045d(0x27f)][_0x10045d(0x233)](_0x28aed2),_0x55b110=_0x1ff85e;break;}const _0x51051e=(_0x277334=_0x476805[_0x10045d(0x233)](_0x2e714f))==null?void 0x0:_0x277334[_0x10045d(0x233)](_0x2fb2dd);if(_0x51051e!=null&&_0x51051e[_0x10045d(0x27f)][_0x10045d(0x275)](_0x28aed2)){_0x2152e9=_0x51051e==null?void 0x0:_0x51051e[_0x10045d(0x27f)][_0x10045d(0x233)](_0x28aed2),_0x55b110=_0x1ff85e;break;}}if(_0x2152e9==null)return;let _0xd2892f=0x0;_0x582249===ObjectRelativeFromH[_0x10045d(0x2c7)]?_0xd2892f-=_0x2152e9[_0x10045d(0x180)]:_0x582249===ObjectRelativeFromH[_0x10045d(0x219)]&&(_0xd2892f-=_0x55b110),_0x9068e8===ObjectRelativeFromH['COLUMN']?_0xd2892f+=_0x2152e9[_0x10045d(0x180)]:_0x9068e8===ObjectRelativeFromH[_0x10045d(0x219)]?_0xd2892f+=_0x55b110:ObjectRelativeFromH[_0x10045d(0x1e1)];const _0x1e94a2={'relativeFrom':_0x9068e8,'posOffset':(_0x1a4b22!=null?_0x1a4b22:0x0)-_0xd2892f};_0x4e9fe2(_0x10045d(0x28b),_0x1e94a2);}__name(_0x2c97ea,_0x42554e(0x1ae));function _0x2bc375(_0x4f1781){const _0x3aada9=_0x42554e;var _0x15f064,_0x44e827,_0x113d8e,_0x5690ed,_0x143182,_0x1e85db;const _0x5717da=_0x2ef0e1[_0x3aada9(0x2f4)],_0x78a61f=_0x2ef0e1[_0x3aada9(0x19f)],_0x213ae9=Number(_0x4f1781);if(_0x5717da===_0x213ae9)return;const _0x402563=_0x524b1a[_0x3aada9(0x174)]();if(_0x402563[_0x3aada9(0x2e5)]===0x0)return;const {drawingId:_0x4da7f7,unitId:_0x2ed1f1}=_0x402563[0x0],_0x31442c=_0x652d17[_0x3aada9(0x18a)](_0x2ed1f1),_0x209f0a=(_0x15f064=_0x5a55b5[_0x3aada9(0x304)](_0x2ed1f1))==null?void 0x0:_0x15f064['with'](DocSkeletonManagerService)[_0x3aada9(0x1fa)](),_0x26a48c=(_0x44e827=_0x5a55b5['getRenderById'](_0x2ed1f1))==null?void 0x0:_0x44e827['with'](DocSelectionRenderService),_0x3c8f9c=_0x26a48c==null?void 0x0:_0x26a48c[_0x3aada9(0x28d)](),_0x294a7f=_0x26a48c==null?void 0x0:_0x26a48c[_0x3aada9(0x158)](),_0x1f8963=(_0x5690ed=(_0x113d8e=_0x31442c==null?void 0x0:_0x31442c['getSelfOrHeaderFooterModel'](_0x3c8f9c)[_0x3aada9(0x1d0)]())==null?void 0x0:_0x113d8e[_0x3aada9(0x236)])==null?void 0x0:_0x5690ed[_0x3aada9(0x260)](_0x40b320=>_0x40b320[_0x3aada9(0x32d)]===_0x4da7f7);if(_0x1f8963==null||_0x209f0a==null||_0x26a48c==null)return;const {startIndex:_0x3d5868}=_0x1f8963,_0x46a41d=_0x209f0a['findNodeByCharIndex'](_0x3d5868,_0x3c8f9c,_0x294a7f),_0x2b0495=(_0x143182=_0x46a41d==null?void 0x0:_0x46a41d[_0x3aada9(0x2ee)])==null?void 0x0:_0x143182[_0x3aada9(0x2ee)],_0x507d94=_0x2b0495==null?void 0x0:_0x2b0495['parent'],_0x3ebed2=_0x507d94==null?void 0x0:_0x507d94[_0x3aada9(0x282)]['find'](_0xff4e1c=>_0xff4e1c[_0x3aada9(0x348)]===(_0x2b0495==null?void 0x0:_0x2b0495[_0x3aada9(0x348)])&&_0xff4e1c[_0x3aada9(0x321)]),_0x583cda=(_0x1e85db=_0x507d94==null?void 0x0:_0x507d94[_0x3aada9(0x2ee)])==null?void 0x0:_0x1e85db['parent'];if(_0x46a41d==null||_0x2b0495==null||_0x3ebed2==null||_0x507d94==null||_0x583cda==null)return;let _0x36220c=0x0;_0x5717da===ObjectRelativeFromV['PARAGRAPH']?_0x36220c-=_0x3ebed2[_0x3aada9(0x2ad)]:_0x5717da===ObjectRelativeFromV[_0x3aada9(0x1a1)]?_0x36220c-=_0x2b0495[_0x3aada9(0x2ad)]:_0x5717da===ObjectRelativeFromV['PAGE']&&(_0x36220c+=_0x583cda[_0x3aada9(0x1d1)]),_0x213ae9===ObjectRelativeFromV[_0x3aada9(0x2bf)]?_0x36220c+=_0x3ebed2[_0x3aada9(0x2ad)]:_0x213ae9===ObjectRelativeFromV[_0x3aada9(0x1a1)]?_0x36220c+=_0x2b0495['top']:_0x213ae9===ObjectRelativeFromV['PAGE']&&(_0x36220c-=_0x583cda[_0x3aada9(0x1d1)]);const _0xacefd={'relativeFrom':_0x213ae9,'posOffset':(_0x78a61f!=null?_0x78a61f:0x0)-_0x36220c};_0x4e9fe2(_0x3aada9(0x1f9),_0xacefd);}__name(_0x2bc375,'handleVerticalRelativeFromChange');function _0x23af64(_0x20939d){const _0x20c82b=_0x42554e;var _0x89fbfb;const _0x23deb3=_0x28da60==null?void 0x0:_0x28da60[_0x20c82b(0x2ba)](),_0x276358=(_0x89fbfb=_0x23deb3==null?void 0x0:_0x23deb3['drawings'])==null?void 0x0:_0x89fbfb[_0x20939d['drawingId']];if(_0x276358==null)return;const {layoutType:_0x365a7f}=_0x276358,{positionH:_0x12d95f,positionV:_0x129025}=_0x276358[_0x20c82b(0x1c9)];_0x5b3754(_0x12d95f),_0x388133(_0x129025),_0x553c7d(_0x365a7f===PositionedObjectLayoutType[_0x20c82b(0x232)]),_0x49b52e(_0x129025['relativeFrom']===ObjectRelativeFromV[_0x20c82b(0x2bf)]||_0x129025['relativeFrom']===ObjectRelativeFromV[_0x20c82b(0x1a1)]);}__name(_0x23af64,'updateState');function _0x4d9b25(){const _0x226da3=_0x42554e,_0x4b420b=_0x524b1a['getFocusDrawings']();_0x4b420b[_0x226da3(0x2e5)]!==0x0&&_0x23af64(_0x4b420b[0x0]);}__name(_0x4d9b25,_0x42554e(0x159));function _0x264512(_0xf8e8c0){const _0x27714e=_0x42554e;_0x49b52e(_0xf8e8c0),_0x2bc375(String(_0xf8e8c0?ObjectRelativeFromV['PARAGRAPH']:ObjectRelativeFromV[_0x27714e(0x1e1)]));}return __name(_0x264512,_0x42554e(0x1aa)),useEffect(()=>{const _0x4e48f4=_0x42554e;_0x4d9b25();const _0x15e160=_0x524b1a[_0x4e48f4(0x1fc)]['subscribe'](_0x57f162=>{const _0x213fd5=_0x4e48f4;if(_0x57f162[_0x213fd5(0x2e5)]===0x0){_0x43de4b(!0x1);return;}_0x43de4b(!0x0),_0x23af64(_0x57f162[0x0]);}),_0x2ba346=_0x35a5c8[_0x4e48f4(0x33f)](async _0x5b862e=>{_0x5b862e['id']===RichTextEditingMutation['id']&&_0x4d9b25();});return()=>{const _0x301025=_0x4e48f4;_0x15e160['unsubscribe'](),_0x2ba346[_0x301025(0x249)]();};},[]),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':_0x389ec1(styles['imageCommonPanelGrid'],styles[_0x42554e(0x2bc)]),'style':{'display':_0x387641?_0x42554e(0x258):_0x42554e(0x2a4)}},_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles['imageCommonPanelTitle'])},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),null,_0x294389['t']('image-position.title')))),_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x297)])},_0x4b3e20[_0x42554e(0x1bb)]('div',null,_0x294389['t'](_0x42554e(0x30f))))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x28e)])},_0x4b3e20['createElement']('label',null,_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x294389['t'](_0x42554e(0x336)))),_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':styles[_0x42554e(0x20f)]},_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x4b3e20[_0x42554e(0x1bb)](InputNumber,{'min':MIN_OFFSET,'max':MAX_OFFSET,'precision':0x1,'disabled':_0x3812f5,'value':_0xd50bc0[_0x42554e(0x19f)],'onChange':__name(_0x331f89=>{const _0x206070=_0x42554e;_0x4e9fe2(_0x206070(0x28b),{'relativeFrom':_0xd50bc0[_0x206070(0x2f4)],'posOffset':_0x331f89});},_0x42554e(0x2b2)),'className':styles[_0x42554e(0x311)]}))))),_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x28e)])},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x2f2),null,_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x294389['t'](_0x42554e(0x162)))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x4b3e20['createElement'](Select,{'value':String(_0xd50bc0[_0x42554e(0x2f4)]),'disabled':_0x3812f5,'options':_0xdba5c7,'onChange':_0x2c97ea})))))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20['createElement'](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x297)])},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),null,_0x294389['t']('image-position.vertical')))),_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20['createElement'](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x28e)])},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x2f2),null,_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)]},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x294389['t'](_0x42554e(0x336)))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x4b3e20['createElement'](InputNumber,{'min':MIN_OFFSET,'max':MAX_OFFSET,'precision':0x1,'disabled':_0x3812f5,'value':_0x2ef0e1['posOffset'],'onChange':__name(_0x5d937e=>{const _0x489e3e=_0x42554e;_0x4e9fe2(_0x489e3e(0x1f9),{'relativeFrom':_0x2ef0e1[_0x489e3e(0x2f4)],'posOffset':_0x5d937e});},'onChange'),'className':styles[_0x42554e(0x311)]}))))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x28e)])},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x2f2),null,_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles['imageCommonPanelColumn']},_0x294389['t'](_0x42554e(0x15e)))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x42554e(0x1bb)]('div',{'className':styles[_0x42554e(0x235)]},_0x4b3e20[_0x42554e(0x1bb)](Select,{'disabled':_0x3812f5,'value':String(_0x2ef0e1[_0x42554e(0x2f4)]),'options':_0x166e3b,'onChange':_0x2bc375})))))),_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles['imageCommonPanelRow']},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':_0x389ec1(styles[_0x42554e(0x235)],styles[_0x42554e(0x297)])},_0x4b3e20[_0x42554e(0x1bb)]('div',null,_0x294389['t'](_0x42554e(0x2d5))))),_0x4b3e20['createElement'](_0x42554e(0x295),{'className':styles[_0x42554e(0x20f)],'style':{'marginBottom':_0x42554e(0x326)}},_0x4b3e20[_0x42554e(0x1bb)](_0x42554e(0x295),{'className':styles[_0x42554e(0x235)]},_0x4b3e20[_0x42554e(0x1bb)](Checkbox,{'disabled':_0x3812f5,'checked':_0x28b7e1,'onChange':_0x264512},_0x294389['t'](_0x42554e(0x2c2))))));},_0x580764(0x31f)),DocDrawingPanel=__name(()=>{const _0x22d377=_0x580764,_0x622249=useDependency(IDrawingManagerService),_0x274869=_0x622249[_0x22d377(0x174)](),[_0x361806,_0x23da3d]=useState(_0x274869);return useEffect(()=>{const _0x1b3600=_0x622249['focus$']['subscribe'](_0x2b98dd=>{_0x23da3d(_0x2b98dd);});return()=>{_0x1b3600['unsubscribe']();};},[]),!!(_0x361806!=null&&_0x361806['length'])&&_0x4b3e20[_0x22d377(0x1bb)]('div',{'className':styles[_0x22d377(0x2ca)]},_0x4b3e20['createElement'](DrawingCommonPanel,{'drawings':_0x361806,'hasAlign':!0x1,'hasCropper':!0x1,'hasGroup':!0x1,'hasTransform':!0x1}),_0x4b3e20['createElement'](DocDrawingTextWrap,{'drawings':_0x361806}),_0x4b3e20[_0x22d377(0x1bb)](DocDrawingPosition,{'drawings':_0x361806}));},_0x580764(0x30d)),ImageUploadIcon='addition-and-subtraction-single',IMAGE_MENU_ID='doc.menu.image',IMAGE_MENU_UPLOAD_FLOAT_ID=InsertDocImageCommand['id'],getDisableWhenSelectionInTableObservable=__name(_0x3fb940=>{const _0x3d6d2c=_0x580764,_0x100bd8=_0x3fb940[_0x3d6d2c(0x233)](DocSelectionManagerService),_0x4f8593=_0x3fb940[_0x3d6d2c(0x233)](IUniverInstanceService);return new Observable(_0x299e8a=>{const _0x12f55c=_0x3d6d2c,_0x6dfed0=_0x100bd8['textSelection$']['subscribe'](()=>{const _0xa38373=_0x5391;var _0x55f25e;const _0x519612=_0x100bd8['getActiveTextRange']();if(_0x519612){const {segmentId:_0x20001b,startOffset:_0x4243f8,endOffset:_0x1a74d7}=_0x519612,_0x45689c=_0x4f8593[_0xa38373(0x30a)](),_0x2873a3=(_0x55f25e=_0x45689c==null?void 0x0:_0x45689c[_0xa38373(0x2b4)](_0x20001b)['getBody']())==null?void 0x0:_0x55f25e[_0xa38373(0x2af)];if(_0x2873a3&&_0x2873a3[_0xa38373(0x2e5)]&&_0x2873a3[_0xa38373(0x1eb)](_0x5d6ff1=>{const {startIndex:_0x5c5469,endIndex:_0x57c7f3}=_0x5d6ff1;return _0x4243f8>=_0x5c5469&&_0x4243f8<=_0x57c7f3||_0x1a74d7>=_0x5c5469&&_0x1a74d7<=_0x57c7f3;})){_0x299e8a[_0xa38373(0x2be)](!0x0);return;}}else{_0x299e8a[_0xa38373(0x2be)](!0x0);return;}_0x299e8a[_0xa38373(0x2be)](!0x1);});return()=>_0x6dfed0[_0x12f55c(0x2cf)]();});},_0x580764(0x19a));function ImageMenuFactory(_0x300bc8){const _0x1f8f67=_0x580764;return{'id':IMAGE_MENU_ID,'type':MenuItemType['SUBITEMS'],'icon':ImageUploadIcon,'tooltip':_0x1f8f67(0x2cb),'disabled$':getDisableWhenSelectionInTableObservable(_0x300bc8),'hidden$':getMenuHiddenObservable(_0x300bc8,UniverInstanceType[_0x1f8f67(0x2e7)])};}__name(ImageMenuFactory,_0x580764(0x341));function UploadFloatImageMenuFactory(_0x56955e){const _0x3b3953=_0x580764;return{'id':IMAGE_MENU_UPLOAD_FLOAT_ID,'title':_0x3b3953(0x21b),'type':MenuItemType[_0x3b3953(0x22b)],'hidden$':getMenuHiddenObservable(_0x56955e,UniverInstanceType['UNIVER_DOC'])};}__name(UploadFloatImageMenuFactory,_0x580764(0x26d));const menuSchema={[RibbonStartGroup[_0x580764(0x2b0)]]:{[IMAGE_MENU_ID]:{'order':0x0,'menuItemFactory':ImageMenuFactory,[IMAGE_MENU_UPLOAD_FLOAT_ID]:{'order':0x0,'menuItemFactory':UploadFloatImageMenuFactory}}}};function whenDocDrawingFocused(_0xace07b){const _0x2b488b=_0x580764;return _0xace07b['getContextValue'](FOCUSING_UNIVER_EDITOR)&&_0xace07b[_0x2b488b(0x34d)](FOCUSING_COMMON_DRAWINGS);}__name(whenDocDrawingFocused,_0x580764(0x161));const MoveDrawingDownShortcutItem={'id':MoveDocDrawingsCommand['id'],'description':_0x580764(0x183),'group':_0x580764(0x25b),'binding':KeyCode[_0x580764(0x1e9)],'priority':0x64,'preconditions':whenDocDrawingFocused,'staticParameters':{'direction':Direction[_0x580764(0x1ab)]}},MoveDrawingUpShortcutItem={'id':MoveDocDrawingsCommand['id'],'description':_0x580764(0x210),'group':_0x580764(0x25b),'binding':KeyCode[_0x580764(0x2a0)],'priority':0x64,'preconditions':whenDocDrawingFocused,'staticParameters':{'direction':Direction['UP']}},MoveDrawingLeftShortcutItem={'id':MoveDocDrawingsCommand['id'],'description':_0x580764(0x32e),'group':_0x580764(0x25b),'binding':KeyCode[_0x580764(0x259)],'priority':0x64,'preconditions':whenDocDrawingFocused,'staticParameters':{'direction':Direction[_0x580764(0x2a5)]}},MoveDrawingRightShortcutItem={'id':MoveDocDrawingsCommand['id'],'description':_0x580764(0x195),'group':_0x580764(0x25b),'binding':KeyCode[_0x580764(0x267)],'priority':0x64,'preconditions':whenDocDrawingFocused,'staticParameters':{'direction':Direction[_0x580764(0x333)]}},DeleteDrawingsShortcutItem={'id':DeleteDocDrawingsCommand['id'],'description':_0x580764(0x2b7),'group':_0x580764(0x25b),'preconditions':whenDocDrawingFocused,'binding':KeyCode[_0x580764(0x2ef)],'mac':KeyCode[_0x580764(0x335)]};var __defProp$5=Object[_0x580764(0x2c9)],__getOwnPropDesc$5=Object['getOwnPropertyDescriptor'],__decorateClass$5=__name((_0x3f1d05,_0x21bba8,_0xe82ace,_0x5ecb10)=>{for(var _0x4bf4bb=_0x5ecb10>0x1?void 0x0:_0x5ecb10?__getOwnPropDesc$5(_0x21bba8,_0xe82ace):_0x21bba8,_0x395a87=_0x3f1d05['length']-0x1,_0x5c7b6d;_0x395a87>=0x0;_0x395a87--)(_0x5c7b6d=_0x3f1d05[_0x395a87])&&(_0x4bf4bb=(_0x5ecb10?_0x5c7b6d(_0x21bba8,_0xe82ace,_0x4bf4bb):_0x5c7b6d(_0x4bf4bb))||_0x4bf4bb);return _0x5ecb10&&_0x4bf4bb&&__defProp$5(_0x21bba8,_0xe82ace,_0x4bf4bb),_0x4bf4bb;},_0x580764(0x1e3)),__decorateParam$5=__name((_0x4334b6,_0xdea8b)=>(_0x2f80ba,_0xc49a6c)=>_0xdea8b(_0x2f80ba,_0xc49a6c,_0x4334b6),_0x580764(0x20c)),_a2;let DocDrawingUIController=(_a2=class extends Disposable{constructor(_0x2446b4,_0x50acc4,_0x4a0da7,_0x2c4531){const _0x31eb6e=_0x580764;super(),this[_0x31eb6e(0x1ff)]=_0x2446b4,this['_menuManagerService']=_0x50acc4,this[_0x31eb6e(0x266)]=_0x4a0da7,this[_0x31eb6e(0x327)]=_0x2c4531,this[_0x31eb6e(0x15c)]();}[_0x580764(0x319)](){const _0xe3afb3=_0x580764,_0x34b8f3=this['_componentManager'];this[_0xe3afb3(0x309)](_0x34b8f3[_0xe3afb3(0x20e)](ImageUploadIcon,AddImageSingle)),this[_0xe3afb3(0x309)](_0x34b8f3['register'](COMPONENT_DOC_DRAWING_PANEL,DocDrawingPanel));}['_initMenus'](){const _0x67925e=_0x580764;this[_0x67925e(0x34e)][_0x67925e(0x30c)](menuSchema);}[_0x580764(0x26b)](){const _0x20f151=_0x580764;[InsertDocImageCommand,InsertDocDrawingCommand,UpdateDocDrawingWrappingStyleCommand,UpdateDocDrawingDistanceCommand,UpdateDocDrawingWrapTextCommand,UpdateDrawingDocTransformCommand,IMoveInlineDrawingCommand,ITransformNonInlineDrawingCommand,RemoveDocDrawingCommand,SidebarDocDrawingOperation,ClearDocDrawingTransformerOperation,EditDocDrawingOperation,GroupDocDrawingCommand,UngroupDocDrawingCommand,MoveDocDrawingsCommand,DeleteDocDrawingsCommand,SetDocDrawingArrangeCommand][_0x20f151(0x250)](_0x1c4064=>this[_0x20f151(0x309)](this[_0x20f151(0x266)][_0x20f151(0x33a)](_0x1c4064)));}[_0x580764(0x308)](){const _0x5b2e8b=_0x580764;[MoveDrawingDownShortcutItem,MoveDrawingUpShortcutItem,MoveDrawingLeftShortcutItem,MoveDrawingRightShortcutItem,DeleteDrawingsShortcutItem][_0x5b2e8b(0x250)](_0x3f35fa=>{this['disposeWithMe'](this['_shortcutService']['registerShortcut'](_0x3f35fa));});}[_0x580764(0x15c)](){const _0x1cd4d1=_0x580764;this[_0x1cd4d1(0x26b)](),this[_0x1cd4d1(0x319)](),this[_0x1cd4d1(0x350)](),this[_0x1cd4d1(0x308)]();}},__name(_a2,_0x580764(0x1a6)),_a2);DocDrawingUIController=__decorateClass$5([__decorateParam$5(0x0,Inject(ComponentManager)),__decorateParam$5(0x1,IMenuManagerService),__decorateParam$5(0x2,ICommandService),__decorateParam$5(0x3,IShortcutService)],DocDrawingUIController);var __defProp$4=Object[_0x580764(0x2c9)],__getOwnPropDesc$4=Object[_0x580764(0x178)],__decorateClass$4=__name((_0x236ae6,_0x19bf05,_0x51dc5c,_0x16a288)=>{const _0x12f314=_0x580764;for(var _0x26054c=_0x16a288>0x1?void 0x0:_0x16a288?__getOwnPropDesc$4(_0x19bf05,_0x51dc5c):_0x19bf05,_0x4bc547=_0x236ae6[_0x12f314(0x2e5)]-0x1,_0x15acbf;_0x4bc547>=0x0;_0x4bc547--)(_0x15acbf=_0x236ae6[_0x4bc547])&&(_0x26054c=(_0x16a288?_0x15acbf(_0x19bf05,_0x51dc5c,_0x26054c):_0x15acbf(_0x26054c))||_0x26054c);return _0x16a288&&_0x26054c&&__defProp$4(_0x19bf05,_0x51dc5c,_0x26054c),_0x26054c;},_0x580764(0x1cf)),__decorateParam$4=__name((_0xd3cfd3,_0x1244e1)=>(_0x4893d9,_0x50b4cb)=>_0x1244e1(_0x4893d9,_0x50b4cb,_0xd3cfd3),'__decorateParam$4');function getAddOrRemoveDrawings(_0x36e22d){const _0xf4bca4=_0x580764;var _0x4a9ffe,_0x27ad5a,_0x4e0938,_0x5a5d7c;if(JSONX[_0xf4bca4(0x191)](_0x36e22d)||!Array[_0xf4bca4(0x300)](_0x36e22d))return null;const _0x60460a=_0x36e22d[_0xf4bca4(0x260)](_0x2548f1=>Array['isArray'](_0x2548f1)&&(_0x2548f1==null?void 0x0:_0x2548f1[0x0])===_0xf4bca4(0x1d7));if(_0x60460a==null||!Array[_0xf4bca4(0x300)](_0x60460a)||_0x60460a[_0xf4bca4(0x2e5)]<0x3||typeof _0x60460a[0x1]==_0xf4bca4(0x1b1)&&typeof _0x60460a[0x2]!=_0xf4bca4(0x1ce)||Array[_0xf4bca4(0x300)](_0x60460a[0x1])&&typeof _0x60460a[0x1][0x1]!='object')return null;const _0x3bc779=[];if(Array[_0xf4bca4(0x300)](_0x60460a==null?void 0x0:_0x60460a[0x1])){for(const _0x44016d of _0x60460a)Array[_0xf4bca4(0x300)](_0x44016d)&&_0x3bc779[_0xf4bca4(0x225)]({'type':(_0x4a9ffe=_0x44016d==null?void 0x0:_0x44016d[0x1])!=null&&_0x4a9ffe['i']?_0xf4bca4(0x24d):_0xf4bca4(0x316),'drawingId':_0x44016d==null?void 0x0:_0x44016d[0x0],'drawing':(_0x27ad5a=_0x44016d==null?void 0x0:_0x44016d[0x1])==null?void 0x0:_0x27ad5a['i']});}else _0x3bc779[_0xf4bca4(0x225)]({'type':(_0x4e0938=_0x60460a[0x2])!=null&&_0x4e0938['i']?_0xf4bca4(0x24d):'remove','drawingId':_0x60460a[0x1],'drawing':(_0x5a5d7c=_0x60460a[0x2])==null?void 0x0:_0x5a5d7c['i']});return _0x3bc779;}__name(getAddOrRemoveDrawings,_0x580764(0x2c5));function getReOrderedDrawings(_0x2a0143){const _0x3f0806=_0x580764;if(!Array[_0x3f0806(0x300)](_0x2a0143)||_0x2a0143[_0x3f0806(0x2e5)]<0x3||_0x2a0143[0x0]!==_0x3f0806(0x18c))return[];const _0x343dfc=[];for(let _0x395ffe=0x1;_0x395ffe<_0x2a0143[_0x3f0806(0x2e5)];_0x395ffe++){const _0x4b6171=_0x2a0143[_0x395ffe];if(Array[_0x3f0806(0x300)](_0x4b6171)&&typeof _0x4b6171[0x0]==_0x3f0806(0x1b9)&&typeof _0x4b6171[0x1]=='object')_0x343dfc[_0x3f0806(0x225)](_0x4b6171[0x0]);else{_0x343dfc[_0x3f0806(0x2e5)]=0x0;break;}}return _0x343dfc;}__name(getReOrderedDrawings,_0x580764(0x169));var _a3;let DocDrawingAddRemoveController=(_a3=class extends Disposable{constructor(_0x1697be,_0xd77f49,_0x431f28,_0x40ae7a,_0x3e03d2){const _0x4e8e3d=_0x580764;super(),this[_0x4e8e3d(0x1bd)]=_0x1697be,this['_commandService']=_0xd77f49,this[_0x4e8e3d(0x243)]=_0x431f28,this['_docDrawingService']=_0x40ae7a,this[_0x4e8e3d(0x1d6)]=_0x3e03d2,this[_0x4e8e3d(0x18e)]();}[_0x580764(0x18e)](){const _0x3eb5f1=_0x580764;this[_0x3eb5f1(0x298)]();}['_commandExecutedListener'](){const _0x4e4f29=_0x580764;this[_0x4e4f29(0x309)](this[_0x4e4f29(0x266)][_0x4e4f29(0x334)](_0x46009d=>{const _0x2e7bec=_0x4e4f29;if(_0x46009d['id']!==RichTextEditingMutation['id'])return;const _0x59e712=_0x46009d[_0x2e7bec(0x185)],{unitId:_0x7f63d8,actions:_0x1e5123}=_0x59e712,_0x1c5636=getAddOrRemoveDrawings(_0x1e5123);if(_0x1c5636!=null){for(const {type:_0xfcc78c,drawingId:_0x3eec0b,drawing:_0x3d3bb2}of _0x1c5636)_0xfcc78c===_0x2e7bec(0x24d)?this[_0x2e7bec(0x17a)](_0x7f63d8,[_0x3d3bb2]):this[_0x2e7bec(0x17d)](_0x7f63d8,[_0x3eec0b]);}})),this['disposeWithMe'](this['_commandService'][_0x4e4f29(0x33f)](_0x21f43e=>{const _0x138e9d=_0x4e4f29;if(_0x21f43e['id']!==RichTextEditingMutation['id'])return;const _0x4f78a7=_0x21f43e[_0x138e9d(0x185)],{unitId:_0x184b17,actions:_0x48154d}=_0x4f78a7;getReOrderedDrawings(_0x48154d)[_0x138e9d(0x2e5)]>0x0&&this[_0x138e9d(0x1dd)](_0x184b17);})),this['disposeWithMe'](this[_0x4e4f29(0x266)][_0x4e4f29(0x33f)](_0x573fb5=>{const _0x285e86=_0x4e4f29;var _0x34879c;if(_0x573fb5['id']!==UndoCommand['id']&&_0x573fb5['id']!==RedoCommand['id'])return;const _0x36d5e4=(_0x34879c=this['_univerInstanceService'][_0x285e86(0x30a)]())==null?void 0x0:_0x34879c[_0x285e86(0x2c0)](),_0x2f8403=this[_0x285e86(0x243)][_0x285e86(0x174)]();if(_0x36d5e4==null||_0x2f8403[_0x285e86(0x2e5)]===0x0)return;const _0x136f7c=this['_renderManagerService'][_0x285e86(0x304)](_0x36d5e4),_0x59dbb1=_0x136f7c==null?void 0x0:_0x136f7c['scene'];if(_0x59dbb1==null)return!0x1;_0x59dbb1['getTransformerByCreate']()[_0x285e86(0x2c6)]();}));}[_0x580764(0x17a)](_0xbfa53,_0x3197ab){const _0x15bce3=_0x580764,_0x5652eb=this[_0x15bce3(0x243)],_0x99a015=this[_0x15bce3(0x2b9)],_0x27068f=this[_0x15bce3(0x2b9)][_0x15bce3(0x2f7)](_0x3197ab),{subUnitId:_0x65c88f,redo:_0x2b40fa,objects:_0x170156}=_0x27068f;_0x5652eb[_0x15bce3(0x288)](_0xbfa53,_0x65c88f,_0x2b40fa),_0x99a015['applyJson1'](_0xbfa53,_0x65c88f,_0x2b40fa),_0x5652eb[_0x15bce3(0x337)](_0x170156),_0x99a015['addNotification'](_0x170156);}[_0x580764(0x17d)](_0x194b65,_0x347252){const _0x1853b4=_0x580764,_0x1e158f=this['_drawingManagerService'],_0x4e648f=this[_0x1853b4(0x2b9)],_0x525df0=this['_docDrawingService'][_0x1853b4(0x262)](_0x347252[_0x1853b4(0x2c3)](_0x442fae=>({'unitId':_0x194b65,'subUnitId':_0x194b65,'drawingId':_0x442fae}))),{subUnitId:_0x317625,redo:_0x3fbe86,objects:_0x3990f0}=_0x525df0;_0x1e158f[_0x1853b4(0x288)](_0x194b65,_0x317625,_0x3fbe86),_0x4e648f[_0x1853b4(0x288)](_0x194b65,_0x317625,_0x3fbe86),_0x1e158f[_0x1853b4(0x229)](_0x3990f0),_0x4e648f[_0x1853b4(0x229)](_0x3990f0);}[_0x580764(0x1dd)](_0x827081){const _0x2a536b=_0x580764,_0x1b94f7=this[_0x2a536b(0x1bd)][_0x2a536b(0x18a)](_0x827081);if(_0x1b94f7==null)return;const _0x598bda=_0x1b94f7[_0x2a536b(0x2ba)]()[_0x2a536b(0x18c)];if(_0x598bda==null)return;const _0x1fdcb4=this[_0x2a536b(0x243)],_0x4be2c6=this[_0x2a536b(0x2b9)];_0x1fdcb4[_0x2a536b(0x167)](_0x827081,_0x827081,_0x598bda),_0x4be2c6[_0x2a536b(0x167)](_0x827081,_0x827081,_0x598bda);const _0x15de5e={'unitId':_0x827081,'subUnitId':_0x827081,'drawingIds':_0x598bda};_0x1fdcb4[_0x2a536b(0x2e4)](_0x15de5e),_0x4be2c6[_0x2a536b(0x2e4)](_0x15de5e);}},__name(_a3,'DocDrawingAddRemoveController'),_a3);DocDrawingAddRemoveController=__decorateClass$4([__decorateParam$4(0x0,IUniverInstanceService),__decorateParam$4(0x1,ICommandService),__decorateParam$4(0x2,IDrawingManagerService),__decorateParam$4(0x3,IDocDrawingService),__decorateParam$4(0x4,IRenderManagerService)],DocDrawingAddRemoveController);var __defProp$3=Object[_0x580764(0x2c9)],__getOwnPropDesc$3=Object[_0x580764(0x178)],__decorateClass$3=__name((_0xc47099,_0x45c4fe,_0x1c7dd7,_0x548bab)=>{const _0x1d2baa=_0x580764;for(var _0x3c859e=_0x548bab>0x1?void 0x0:_0x548bab?__getOwnPropDesc$3(_0x45c4fe,_0x1c7dd7):_0x45c4fe,_0x474404=_0xc47099[_0x1d2baa(0x2e5)]-0x1,_0xa6d714;_0x474404>=0x0;_0x474404--)(_0xa6d714=_0xc47099[_0x474404])&&(_0x3c859e=(_0x548bab?_0xa6d714(_0x45c4fe,_0x1c7dd7,_0x3c859e):_0xa6d714(_0x3c859e))||_0x3c859e);return _0x548bab&&_0x3c859e&&__defProp$3(_0x45c4fe,_0x1c7dd7,_0x3c859e),_0x3c859e;},_0x580764(0x34f)),__decorateParam$3=__name((_0x5a3338,_0xccd84f)=>(_0x4b642b,_0x1523b7)=>_0xccd84f(_0x4b642b,_0x1523b7,_0x5a3338),_0x580764(0x202));const INLINE_DRAWING_ANCHOR_KEY_PREFIX=_0x580764(0x2df);function isInTableCell(_0x570d39){const _0x3a1d02=_0x580764,{path:_0x108af1}=_0x570d39;return _0x108af1[_0x3a1d02(0x1eb)](_0x2b54ca=>_0x2b54ca===_0x3a1d02(0x2a7));}__name(isInTableCell,_0x580764(0x1be));var _a4;let DocDrawingTransformerController=(_a4=class extends Disposable{constructor(_0x906940,_0x39fa05,_0x2ed19e,_0x2c0e1b){const _0x4e8adc=_0x580764;super(),__publicField(this,'_liquid',new Liquid()),__publicField(this,'_listenerOnImageMap',new Set()),__publicField(this,'_transformerCache',new Map()),__publicField(this,_0x4e8adc(0x354)),(this[_0x4e8adc(0x266)]=_0x906940,this[_0x4e8adc(0x1bd)]=_0x39fa05,this[_0x4e8adc(0x243)]=_0x2ed19e,this[_0x4e8adc(0x1d6)]=_0x2c0e1b,this[_0x4e8adc(0x15c)]());}[_0x580764(0x15c)](){this['_listenDrawingFocus']();}[_0x580764(0x227)](){const _0x1d9832=_0x580764;this[_0x1d9832(0x309)](this['_drawingManagerService']['add$']['subscribe'](_0x36c149=>{const _0xb96903=_0x1d9832;if(_0x36c149[_0xb96903(0x2e5)]!==0x0)for(const _0x3afb10 of _0x36c149){const {unitId:_0x3465b5}=_0x3afb10;this[_0xb96903(0x1ea)][_0xb96903(0x275)](_0x3465b5)||(this[_0xb96903(0x1ec)](_0x3465b5),this[_0xb96903(0x1ea)]['add'](_0x3465b5));}}));}[_0x580764(0x1ec)](_0x2155db){const _0x4a14a9=_0x580764;var _0x4179dc;const _0x8509f3=(_0x4179dc=this[_0x4a14a9(0x343)](_0x2155db))==null?void 0x0:_0x4179dc['transformer'];if(_0x8509f3==null)return;this[_0x4a14a9(0x309)](toDisposable(_0x8509f3[_0x4a14a9(0x187)][_0x4a14a9(0x1b2)](_0x56690e=>{const _0x56f0d8=_0x4a14a9;var _0x3852b1;this[_0x56f0d8(0x179)]['clear']();const {objects:_0x35cbe2}=_0x56690e;for(const _0x232af1 of _0x35cbe2[_0x56f0d8(0x172)]()){const {oKey:_0x338f46,width:_0x4bef62,height:_0x59e5fe,left:_0x2ba609,top:_0x16854c,angle:_0x6b36e7}=_0x232af1,_0x3b2fa1=this[_0x56f0d8(0x243)]['getDrawingOKey'](_0x338f46);if(_0x3b2fa1==null)continue;const _0x2655dd=this[_0x56f0d8(0x1bd)][_0x56f0d8(0x18a)](_0x3b2fa1['unitId']),_0x3ab256=(_0x3852b1=_0x2655dd==null?void 0x0:_0x2655dd[_0x56f0d8(0x2ba)]()[_0x56f0d8(0x1d7)])==null?void 0x0:_0x3852b1[_0x3b2fa1[_0x56f0d8(0x2a3)]];(_0x3ab256==null?void 0x0:_0x3ab256[_0x56f0d8(0x1bf)])===PositionedObjectLayoutType[_0x56f0d8(0x232)]&&_0x232af1['setOpacity'](0.2),_0x3ab256!=null&&this['_transformerCache'][_0x56f0d8(0x1fb)](_0x3b2fa1[_0x56f0d8(0x2a3)],{'drawing':_0x3ab256,'top':_0x16854c,'left':_0x2ba609,'width':_0x4bef62,'height':_0x59e5fe,'angle':_0x6b36e7});}})));const _0x388b14=throttle(this[_0x4a14a9(0x184)][_0x4a14a9(0x17c)](this),0x32);throttle(this['_nonInlineDrawingTransform'][_0x4a14a9(0x17c)](this),0x32),this[_0x4a14a9(0x309)](toDisposable(_0x8509f3[_0x4a14a9(0x194)][_0x4a14a9(0x1b2)](_0x1e840b=>{const _0x3a3447=_0x4a14a9,{objects:_0x4fa4b1,offsetX:_0x2445b7,offsetY:_0x280404}=_0x1e840b;if(_0x4fa4b1[_0x3a3447(0x2f3)]>0x1)_0x388b14(_0x4fa4b1);else{if(_0x4fa4b1[_0x3a3447(0x2f3)]===0x1){const _0x56f2b5=this[_0x3a3447(0x179)]['values']()[_0x3a3447(0x2be)]()['value'],_0x3c14bb=_0x4fa4b1[_0x3a3447(0x172)]()[_0x3a3447(0x2be)]()[_0x3a3447(0x190)],{width:_0x570f32,height:_0xd29596,top:_0x53e2ae,left:_0x55c3ab,angle:_0x2281dd}=_0x3c14bb;if(_0x56f2b5&&_0x570f32===_0x56f2b5[_0x3a3447(0x1c2)]&&_0xd29596===_0x56f2b5['height']&&_0x53e2ae===_0x56f2b5['top']&&_0x55c3ab===_0x56f2b5[_0x3a3447(0x33b)]&&_0x2281dd===_0x56f2b5[_0x3a3447(0x2e2)])return;_0x56f2b5&&(_0x56f2b5[_0x3a3447(0x284)][_0x3a3447(0x1bf)],PositionedObjectLayoutType['INLINE']),_0x56f2b5&&_0x56f2b5[_0x3a3447(0x284)][_0x3a3447(0x1bf)]===PositionedObjectLayoutType[_0x3a3447(0x232)]&&_0x2445b7!=null&&_0x280404!=null&&this[_0x3a3447(0x312)](_0x56f2b5['drawing'],_0x2445b7,_0x280404);}}}))),this[_0x4a14a9(0x309)](toDisposable(_0x8509f3['changeEnd$']['subscribe'](_0x54a542=>{const _0xcdb730=_0x4a14a9,{objects:_0x5e91f1,offsetX:_0x467061,offsetY:_0x5899cd}=_0x54a542;for(const _0x3f1d94 of _0x5e91f1[_0xcdb730(0x172)]()){const _0x4f5297=this[_0xcdb730(0x243)][_0xcdb730(0x239)](_0x3f1d94[_0xcdb730(0x277)]);if(_0x4f5297==null)continue;const _0x7bc9fd=this['_transformerCache'][_0xcdb730(0x233)](_0x4f5297==null?void 0x0:_0x4f5297['drawingId']);(_0x7bc9fd==null?void 0x0:_0x7bc9fd[_0xcdb730(0x284)]['layoutType'])===PositionedObjectLayoutType[_0xcdb730(0x232)]&&_0x3f1d94['setOpacity'](0x1);}if(this[_0xcdb730(0x354)]&&this['_anchorShape'][_0xcdb730(0x254)](),_0x5e91f1['size']>0x1)this[_0xcdb730(0x184)](_0x5e91f1);else{if(_0x5e91f1[_0xcdb730(0x2f3)]===0x1){const _0xb72a89=this['_transformerCache']['values']()[_0xcdb730(0x2be)]()[_0xcdb730(0x190)],_0x5c2ee9=_0x5e91f1[_0xcdb730(0x172)]()[_0xcdb730(0x2be)]()['value'],{width:_0x501068,height:_0x47e7ac,top:_0x19ad7d,left:_0x5d3c83,angle:_0x21c3e9}=_0x5c2ee9;if(_0xb72a89&&_0x501068===_0xb72a89[_0xcdb730(0x1c2)]&&_0x47e7ac===_0xb72a89['height']&&_0x19ad7d===_0xb72a89['top']&&_0x5d3c83===_0xb72a89['left']&&_0x21c3e9===_0xb72a89[_0xcdb730(0x2e2)])return;_0xb72a89&&_0xb72a89[_0xcdb730(0x284)][_0xcdb730(0x1bf)]===PositionedObjectLayoutType['INLINE']?_0x501068!==_0xb72a89[_0xcdb730(0x1c2)]||_0x47e7ac!==_0xb72a89['height']||_0x21c3e9!==_0xb72a89[_0xcdb730(0x2e2)]?this[_0xcdb730(0x325)](_0xb72a89,_0x5c2ee9):_0x467061!=null&&_0x5899cd!=null&&this[_0xcdb730(0x279)](_0xb72a89['drawing'],_0x467061,_0x5899cd):_0xb72a89&&this[_0xcdb730(0x2d0)](_0xb72a89['drawing'],_0x5c2ee9);}}this[_0xcdb730(0x179)]['clear']();})));}[_0x580764(0x184)](_0x4c509b){const _0x1accd2=_0x580764;if(_0x4c509b[_0x1accd2(0x2f3)]<0x1)return;const _0x521ac8=[];let _0x3dca1f,_0x3a4094;for(const _0x370448 of _0x4c509b[_0x1accd2(0x172)]()){const {oKey:_0x362f51,left:_0x2f0881,top:_0x39c4a3,angle:_0xa31f83}=_0x370448;let {width:_0x5e8d8d,height:_0x47175d}=_0x370448;const _0x5cdd8e=this[_0x1accd2(0x243)][_0x1accd2(0x239)](_0x362f51);if(_0x5cdd8e==null)continue;_0x3dca1f==null&&(_0x3dca1f=_0x5cdd8e[_0x1accd2(0x24b)]),_0x3a4094==null&&(_0x3a4094=_0x5cdd8e[_0x1accd2(0x177)]);const _0x7a9646=this[_0x1accd2(0x179)][_0x1accd2(0x233)](_0x5cdd8e[_0x1accd2(0x2a3)]);if(_0x7a9646==null)continue;const {drawing:_0x35c49f,top:_0x3a87f0,left:_0x1592a7,width:_0x4fc0f,height:_0x115b1b,angle:_0x3375a8}=_0x7a9646,{width:_0x3a86c5,height:_0x24f866}=this[_0x1accd2(0x27a)](_0x35c49f);if(_0x5e8d8d=Math['min'](_0x5e8d8d,_0x3a86c5),_0x47175d=Math[_0x1accd2(0x351)](_0x47175d,_0x24f866),(_0x4fc0f!==_0x5e8d8d||_0x115b1b!==_0x47175d)&&_0x521ac8[_0x1accd2(0x225)]({'drawingId':_0x5cdd8e[_0x1accd2(0x2a3)],'key':_0x1accd2(0x2f3),'value':{'width':_0x5e8d8d,'height':_0x47175d}}),_0x3375a8!==_0xa31f83&&_0x521ac8[_0x1accd2(0x225)]({'drawingId':_0x5cdd8e['drawingId'],'key':_0x1accd2(0x2e2),'value':_0xa31f83}),_0x3a87f0!==_0x39c4a3||_0x1592a7!==_0x2f0881){const _0x38c5de=_0x39c4a3-_0x3a87f0,_0x51a9fc=_0x2f0881-_0x1592a7;_0x38c5de!==0x0&&_0x521ac8[_0x1accd2(0x225)]({'drawingId':_0x5cdd8e[_0x1accd2(0x2a3)],'key':_0x1accd2(0x1f9),'value':{'relativeFrom':_0x35c49f[_0x1accd2(0x1c9)][_0x1accd2(0x1f9)][_0x1accd2(0x2f4)],'posOffset':_0x35c49f[_0x1accd2(0x1c9)][_0x1accd2(0x1f9)][_0x1accd2(0x19f)]+_0x38c5de}}),_0x51a9fc!==0x0&&_0x521ac8[_0x1accd2(0x225)]({'drawingId':_0x5cdd8e[_0x1accd2(0x2a3)],'key':'positionH','value':{'relativeFrom':_0x35c49f[_0x1accd2(0x1c9)][_0x1accd2(0x28b)]['relativeFrom'],'posOffset':_0x35c49f['docTransform']['positionH'][_0x1accd2(0x19f)]+_0x51a9fc}});}}_0x521ac8[_0x1accd2(0x2e5)]>0x0&&_0x3dca1f&&_0x3a4094&&this[_0x1accd2(0x266)]['executeCommand'](UpdateDrawingDocTransformCommand['id'],{'unitId':_0x3dca1f,'subUnitId':_0x3a4094,'drawings':_0x521ac8});}[_0x580764(0x272)](_0xd03ee8){const _0x38fbc6=_0x580764;if(this[_0x38fbc6(0x179)][_0x38fbc6(0x2f3)]!==0x1)return;const _0x1c4680=this[_0x38fbc6(0x179)][_0x38fbc6(0x172)]()[_0x38fbc6(0x2be)]()['value'],_0x4c45f2=_0xd03ee8[_0x38fbc6(0x172)]()[_0x38fbc6(0x2be)]()[_0x38fbc6(0x190)];this['_getDrawingAnchor'](_0x1c4680[_0x38fbc6(0x284)],_0x4c45f2);}[_0x580764(0x312)](_0x328e2b,_0x46a793,_0x37d5f6){const _0x11e9f9=_0x580764;var _0x323673;if(this[_0x11e9f9(0x179)]['size']!==0x1)return;const {contentBoxPointGroup:_0x4de6d9}=(_0x323673=this[_0x11e9f9(0x1da)](_0x328e2b,_0x46a793,_0x37d5f6))!=null?_0x323673:{};_0x4de6d9!=null&&this[_0x11e9f9(0x2f6)](_0x328e2b[_0x11e9f9(0x24b)],_0x4de6d9);}[_0x580764(0x1da)](_0x593fd6,_0x3d1f6e,_0x2a42dd){const _0x3d6a3a=_0x580764;var _0x28bb51,_0x567702;const _0x498266=this['_renderManagerService'][_0x3d6a3a(0x304)](_0x593fd6[_0x3d6a3a(0x24b)]),_0x48a4c1=_0x498266==null?void 0x0:_0x498266[_0x3d6a3a(0x21f)](DocSkeletonManagerService)[_0x3d6a3a(0x1fa)]();if(_0x498266==null)return;const {mainComponent:_0xdb9018,scene:_0x5c4147}=_0x498266,_0x1cf602=_0xdb9018,_0x579ead=_0x5c4147[_0x3d6a3a(0x32a)]()[0x0],{pageLayoutType:pageLayoutType=PageLayoutType['VERTICAL'],pageMarginLeft:_0x5e001f,pageMarginTop:_0x1c22c4}=_0x1cf602['getOffsetConfig']();let _0xd5ed3b=null,_0x4d7d8c=!0x1,_0x24ddfc=-0x1,_0x2eb4fe='';const _0x1a8c13=0.5,_0x589e80=this[_0x3d6a3a(0x32c)](_0x1cf602,_0x579ead,_0x3d1f6e,_0x2a42dd);if(_0x589e80==null)return;const _0x369594=(_0x28bb51=this[_0x3d6a3a(0x1d6)][_0x3d6a3a(0x304)](_0x593fd6[_0x3d6a3a(0x24b)]))==null?void 0x0:_0x28bb51[_0x3d6a3a(0x21f)](DocSelectionRenderService);if(_0x369594==null)return;const _0xda6596=_0x48a4c1==null?void 0x0:_0x48a4c1[_0x3d6a3a(0x269)](_0x589e80,pageLayoutType,_0x5e001f,_0x1c22c4,{'strict':!0x1,'segmentId':_0x369594[_0x3d6a3a(0x28d)](),'segmentPage':_0x369594['getSegmentPage']()});if(_0xda6596){const {node:_0x41ad4c,ratioX:_0x2d56f7,segmentPage:_0x2dcd94,segmentId:_0x2f1b86}=_0xda6596;_0x4d7d8c=_0x2d56f7<_0x1a8c13,_0xd5ed3b=_0x41ad4c,_0x24ddfc=_0x2dcd94,_0x2eb4fe=_0x2f1b86;}if(_0xd5ed3b==null)return;const _0x4d911e=_0x48a4c1==null?void 0x0:_0x48a4c1[_0x3d6a3a(0x1c7)](_0xd5ed3b,_0x24ddfc),_0x37b977=this[_0x3d6a3a(0x2f9)]();if(_0x4d911e==null||_0x48a4c1==null||_0x37b977==null||isInTableCell(_0x4d911e))return;const _0x1e2bf3={..._0x4d911e,'isBack':_0x4d7d8c},_0x318b0a=_0x37b977[_0x3d6a3a(0x1c5)][_0x3d6a3a(0x315)](),_0x3a51a5=new NodePositionConvertToCursor(_0x318b0a,_0x48a4c1),{cursorList:_0x5773aa,contentBoxPointGroup:_0xd4ae10}=_0x3a51a5[_0x3d6a3a(0x1e8)](_0x1e2bf3,_0x1e2bf3),{startOffset:_0x3a0e7c}=(_0x567702=getOneTextSelectionRange(_0x5773aa))!=null?_0x567702:{};if(_0x3a0e7c!=null)return{'offset':_0x3a0e7c,'contentBoxPointGroup':_0xd4ae10,'segmentId':_0x2eb4fe,'segmentPage':_0x24ddfc};}[_0x580764(0x1a0)](_0x2289d2,_0x5955a6){const _0x2753b5=_0x580764;var _0x2bf26c,_0x3b6da1,_0x5ab096,_0x3416ad,_0x299ce9,_0x6c0865,_0xeaff99,_0x512d35,_0x3f9b06,_0x3e2ac8,_0x160913;const _0x5b431b=this['_renderManagerService'][_0x2753b5(0x304)](_0x2289d2[_0x2753b5(0x24b)]),_0x52a6bc=_0x5b431b==null?void 0x0:_0x5b431b[_0x2753b5(0x21f)](DocSkeletonManagerService)['getSkeleton'](),_0x52992f=_0x52a6bc==null?void 0x0:_0x52a6bc[_0x2753b5(0x2fb)]();if(_0x52992f==null||_0x5b431b==null)return;const {pages:_0x15d47a,skeHeaders:_0x2ab86a,skeFooters:_0x1271d1}=_0x52992f,{mainComponent:_0x1eb73f,scene:_0x5cdb44}=_0x5b431b,_0x462130=_0x1eb73f,_0x55571e=_0x5cdb44[_0x2753b5(0x32a)]()[0x0],{pageLayoutType:pageLayoutType=PageLayoutType[_0x2753b5(0x270)],pageMarginLeft:_0x5e06fc,pageMarginTop:_0x5ce488,docsLeft:_0x55ef31,docsTop:_0xa8993c}=_0x462130['getOffsetConfig'](),{left:_0x18cd14,top:_0x516f5f,angle:_0x428f20}=_0x5955a6;let {width:_0x4d25ba,height:_0x1088e0}=_0x5955a6;const {positionV:_0x3e10d1,positionH:_0x503d91}=_0x2289d2[_0x2753b5(0x1c9)],{width:_0x2efd8f,height:_0x35dc30}=this[_0x2753b5(0x27a)](_0x2289d2);_0x4d25ba=Math['min'](_0x4d25ba,_0x2efd8f),_0x1088e0=Math['min'](_0x1088e0,_0x35dc30);let _0x569fa5=null,_0x15fd02='',_0x4c5c07=-0x1;const _0x2508de=!0x1,_0x4b1ac9={..._0x2289d2[_0x2753b5(0x1c9)],'size':{'width':_0x4d25ba,'height':_0x1088e0},'angle':_0x428f20},{x:_0x2eddbc,y:_0x166970}=_0x5cdb44[_0x2753b5(0x220)](_0x55571e),_0x31e8f3=this['_getTransformCoordForDocumentOffset'](_0x462130,_0x55571e,_0x18cd14-_0x2eddbc,_0x516f5f-_0x166970);if(_0x31e8f3==null)return;const _0x2876a3=(_0x2bf26c=this[_0x2753b5(0x1d6)][_0x2753b5(0x304)](_0x2289d2[_0x2753b5(0x24b)]))==null?void 0x0:_0x2bf26c['with'](DocSelectionRenderService);if(_0x2876a3==null)return;const _0x1c726d=_0x52a6bc==null?void 0x0:_0x52a6bc[_0x2753b5(0x269)](_0x31e8f3,pageLayoutType,_0x5e06fc,_0x5ce488,{'strict':!0x1,'segmentId':_0x2876a3['getSegment'](),'segmentPage':_0x2876a3[_0x2753b5(0x158)]()});if(_0x1c726d){const {node:_0x5f00a0,segmentPage:_0x55ca56,segmentId:_0x3a8aaa}=_0x1c726d;_0x569fa5=_0x5f00a0,_0x4c5c07=_0x55ca56,_0x15fd02=_0x3a8aaa;}if(_0x569fa5==null)return;const _0x221699=(_0x3b6da1=_0x569fa5[_0x2753b5(0x2ee)])==null?void 0x0:_0x3b6da1[_0x2753b5(0x2ee)],_0x28b33c=_0x221699==null?void 0x0:_0x221699[_0x2753b5(0x2ee)],_0x4ca470=(_0x5ab096=_0x28b33c==null?void 0x0:_0x28b33c['lines'][_0x2753b5(0x260)](_0x30b578=>_0x30b578[_0x2753b5(0x348)]===(_0x221699==null?void 0x0:_0x221699[_0x2753b5(0x348)])&&_0x30b578[_0x2753b5(0x321)]))!=null?_0x5ab096:_0x28b33c==null?void 0x0:_0x28b33c[_0x2753b5(0x282)][0x0],_0x49abda=(_0x3416ad=_0x28b33c==null?void 0x0:_0x28b33c[_0x2753b5(0x2ee)])==null?void 0x0:_0x3416ad[_0x2753b5(0x2ee)];if(_0x221699==null||_0x28b33c==null||_0x4ca470==null||_0x49abda==null)return;this['_liquid'][_0x2753b5(0x1e6)]();const _0x10443d=_0x49abda[_0x2753b5(0x322)];for(const _0x2714ca of _0x15d47a){const {headerId:_0x13f5a9,footerId:_0xb31447,pageHeight:_0x4396f2,pageWidth:_0x4f22ea,marginLeft:_0x376759,marginBottom:_0x40ea4f}=_0x2714ca,_0x42183f=_0x15d47a[_0x2753b5(0x1f4)](_0x2714ca);if(_0x4c5c07>-0x1&&_0x42183f===_0x4c5c07){switch(_0x10443d){case DocumentSkeletonPageType[_0x2753b5(0x226)]:{const _0xd73b06=(_0x299ce9=_0x2ab86a[_0x2753b5(0x233)](_0x13f5a9))==null?void 0x0:_0x299ce9[_0x2753b5(0x233)](_0x4f22ea);if(_0xd73b06)this[_0x2753b5(0x1f2)]['translatePagePadding']({'marginTop':_0xd73b06['marginTop'],'marginLeft':_0x376759});else throw new Error('header\x20skeleton\x20not\x20found');break;}case DocumentSkeletonPageType['FOOTER']:{const _0x20cabc=(_0x6c0865=_0x1271d1['get'](_0xb31447))==null?void 0x0:_0x6c0865['get'](_0x4f22ea);if(_0x20cabc)this[_0x2753b5(0x1f2)][_0x2753b5(0x248)]({'marginTop':_0x4396f2-_0x40ea4f+_0x20cabc['marginTop'],'marginLeft':_0x376759});else throw new Error(_0x2753b5(0x28c));break;}}break;}if(this[_0x2753b5(0x1f2)][_0x2753b5(0x248)](_0x2714ca),_0x2714ca===_0x49abda)break;this[_0x2753b5(0x1f2)][_0x2753b5(0x223)](_0x2714ca),this[_0x2753b5(0x1f2)][_0x2753b5(0x212)](_0x2714ca,pageLayoutType,_0x5e06fc,_0x5ce488);}switch(_0x3e10d1[_0x2753b5(0x2f4)]===ObjectRelativeFromV['LINE']?_0x569fa5=_0x221699[_0x2753b5(0x2d7)][0x0]['glyphGroup'][0x0]:_0x569fa5=(_0x3e2ac8=(_0x3f9b06=(_0x512d35=(_0xeaff99=_0x4ca470[_0x2753b5(0x2d7)])==null?void 0x0:_0xeaff99[0x0])==null?void 0x0:_0x512d35['glyphGroup'])==null?void 0x0:_0x3f9b06[0x0])!=null?_0x3e2ac8:_0x569fa5,_0x4b1ac9[_0x2753b5(0x28b)]={'relativeFrom':_0x503d91[_0x2753b5(0x2f4)],'posOffset':_0x18cd14-this['_liquid']['x']-_0x55ef31},_0x503d91[_0x2753b5(0x2f4)]){case ObjectRelativeFromH['MARGIN']:{_0x4b1ac9[_0x2753b5(0x28b)][_0x2753b5(0x19f)]=_0x18cd14-this[_0x2753b5(0x1f2)]['x']-_0x55ef31-_0x49abda[_0x2753b5(0x221)];break;}case ObjectRelativeFromH['COLUMN']:{_0x4b1ac9[_0x2753b5(0x28b)]['posOffset']=_0x18cd14-this[_0x2753b5(0x1f2)]['x']-_0x55ef31-_0x28b33c[_0x2753b5(0x33b)];break;}}switch(_0x4b1ac9[_0x2753b5(0x1f9)]={'relativeFrom':_0x3e10d1[_0x2753b5(0x2f4)],'posOffset':_0x516f5f-this[_0x2753b5(0x1f2)]['y']-_0xa8993c},_0x3e10d1[_0x2753b5(0x2f4)]){case ObjectRelativeFromV['PAGE']:{_0x4b1ac9[_0x2753b5(0x1f9)][_0x2753b5(0x19f)]=_0x516f5f-this[_0x2753b5(0x1f2)]['y']-_0xa8993c-_0x49abda['marginTop'];break;}case ObjectRelativeFromV['LINE']:{_0x4b1ac9[_0x2753b5(0x1f9)][_0x2753b5(0x19f)]=_0x516f5f-this['_liquid']['y']-_0xa8993c-_0x221699[_0x2753b5(0x2ad)];break;}case ObjectRelativeFromV[_0x2753b5(0x2bf)]:{_0x4b1ac9[_0x2753b5(0x1f9)][_0x2753b5(0x19f)]=_0x516f5f-this[_0x2753b5(0x1f2)]['y']-_0xa8993c-_0x4ca470['top'];break;}}if(_0x569fa5==null)return;const _0x67fc6e=_0x52a6bc==null?void 0x0:_0x52a6bc[_0x2753b5(0x1c7)](_0x569fa5,_0x4c5c07),_0x2f1587=this[_0x2753b5(0x2f9)]();if(_0x67fc6e==null||_0x52a6bc==null||_0x2f1587==null||isInTableCell(_0x67fc6e))return;const _0x2fed7c={..._0x67fc6e,'isBack':_0x2508de},_0x5657b0=_0x2f1587['document'][_0x2753b5(0x315)](),_0x4622fa=new NodePositionConvertToCursor(_0x5657b0,_0x52a6bc),{cursorList:_0x5a368a}=_0x4622fa[_0x2753b5(0x1e8)](_0x2fed7c,_0x2fed7c),{startOffset:_0x3f09a7}=(_0x160913=getOneTextSelectionRange(_0x5a368a))!=null?_0x160913:{};if(_0x3f09a7!=null)return{'offset':_0x3f09a7,'docTransform':_0x4b1ac9,'segmentId':_0x15fd02,'segmentPage':_0x4c5c07};}[_0x580764(0x325)](_0x22ba04,_0x5739c0){const _0xac3b1a=_0x580764,_0x57e69b=[],{drawing:_0x1f5c5f,width:_0x5b7f5d,height:_0x1d761e,angle:_0x5db92c}=_0x22ba04,{unitId:_0x50beb6,subUnitId:_0xfe1b3c}=_0x1f5c5f;let {width:_0x56717a,height:_0x21029e,angle:_0x75f827}=_0x5739c0;const {width:_0x124d24,height:_0x9310f7}=this[_0xac3b1a(0x27a)](_0x1f5c5f);_0x56717a=Math[_0xac3b1a(0x351)](_0x124d24,_0x56717a),_0x21029e=Math[_0xac3b1a(0x351)](_0x9310f7,_0x21029e),(_0x56717a!==_0x5b7f5d||_0x21029e!==_0x1d761e)&&_0x57e69b['push']({'drawingId':_0x1f5c5f[_0xac3b1a(0x2a3)],'key':'size','value':{'width':_0x56717a,'height':_0x21029e}}),_0x75f827!==_0x5db92c&&_0x57e69b[_0xac3b1a(0x225)]({'drawingId':_0x1f5c5f['drawingId'],'key':_0xac3b1a(0x2e2),'value':_0x75f827}),_0x57e69b[_0xac3b1a(0x2e5)]>0x0&&_0x50beb6&&_0xfe1b3c&&this[_0xac3b1a(0x266)][_0xac3b1a(0x241)](UpdateDrawingDocTransformCommand['id'],{'unitId':_0x50beb6,'subUnitId':_0xfe1b3c,'drawings':_0x57e69b});}[_0x580764(0x279)](_0x4356af,_0x4d33bf,_0x520a11){const _0x16dbc8=_0x580764,_0x1546bd=this[_0x16dbc8(0x1da)](_0x4356af,_0x4d33bf,_0x520a11),{offset:_0x46366c,segmentId:_0x5a3bb0,segmentPage:_0x373262}=_0x1546bd!=null?_0x1546bd:{};return this[_0x16dbc8(0x266)][_0x16dbc8(0x241)](IMoveInlineDrawingCommand['id'],{'unitId':_0x4356af[_0x16dbc8(0x24b)],'subUnitId':_0x4356af[_0x16dbc8(0x24b)],'drawing':_0x4356af,'offset':_0x46366c,'segmentId':_0x5a3bb0,'segmentPage':_0x373262,'needRefreshDrawings':_0x46366c==null});}['_limitDrawingInPage'](_0x1b3925,_0xa97683){const _0xcd2f28=_0x580764,_0x690b76=this['_renderManagerService'][_0xcd2f28(0x304)](_0x1b3925[_0xcd2f28(0x24b)]),{left:_0xee49db,top:_0x3a7b01,width:_0x3b12b0,height:_0x5e302e,angle:_0x54572c}=_0xa97683,_0x27db15=_0x690b76==null?void 0x0:_0x690b76[_0xcd2f28(0x21f)](DocSkeletonManagerService)['getSkeleton'](),_0x370e2a=_0x27db15==null?void 0x0:_0x27db15[_0xcd2f28(0x2fb)](),{pages:_0x16ea86}=_0x370e2a!=null?_0x370e2a:{};if(_0x370e2a==null||_0x690b76==null||_0x16ea86==null)return{'left':_0xee49db,'top':_0x3a7b01,'width':_0x3b12b0,'height':_0x5e302e,'angle':_0x54572c};const {mainComponent:_0x50a0f9}=_0x690b76,_0xdeb698=_0x50a0f9,{top:_0x3f6c98,pageLayoutType:_0x173403,pageMarginLeft:_0x2d90e9,pageMarginTop:_0xfa186c}=_0xdeb698;let _0x3fc44b=_0x3a7b01;this[_0xcd2f28(0x1f2)][_0xcd2f28(0x1e6)]();for(const _0x5a71cb of _0x16ea86){const {marginBottom:_0x11d3eb,pageHeight:_0x70c6f1}=_0x5a71cb,_0x1b87d1=_0x16ea86['indexOf'](_0x5a71cb),_0x2dafb5=_0x16ea86[_0x1b87d1+0x1];if(_0x2dafb5==null)continue;if(Tools[_0xcd2f28(0x2bb)](_0x3a7b01,_0x3a7b01+_0x5e302e,this['_liquid']['y']+_0x3f6c98+_0x70c6f1-_0x11d3eb,this['_liquid']['y']+_0x3f6c98+_0x70c6f1+_0xfa186c+_0x2dafb5[_0xcd2f28(0x1d1)])){const _0xa6f692=_0x3a7b01+_0x5e302e/0x2,_0x36f882=this['_liquid']['y']+_0x3f6c98+_0x70c6f1+_0xfa186c/0x2;_0xa6f692<_0x36f882?_0x3fc44b=Math['min'](_0x3a7b01,this['_liquid']['y']+_0x3f6c98+_0x70c6f1-_0x11d3eb-_0x5e302e):_0x3fc44b=Math['max'](_0x3a7b01,this['_liquid']['y']+_0x3f6c98+_0x70c6f1+_0xfa186c+_0x2dafb5[_0xcd2f28(0x1d1)]);}this['_liquid']['translatePage'](_0x5a71cb,_0x173403,_0x2d90e9,_0xfa186c);}return{'left':_0xee49db,'top':_0x3fc44b,'width':_0x3b12b0,'height':_0x5e302e,'angle':_0x54572c};}['_nonInlineDrawingTransform'](_0x3e59be,_0xf53be9,_0x5e5fb0=!0x1){const _0x6517ef=_0x580764,_0x3e8832=_0x3e59be[_0x6517ef(0x237)]===BooleanNumber[_0x6517ef(0x313)]?_0xf53be9:this[_0x6517ef(0x197)](_0x3e59be,_0xf53be9);if(_0x5e5fb0&&_0x3e8832['top']!==_0xf53be9[_0x6517ef(0x2ad)])return;const _0x326c58=this[_0x6517ef(0x1a0)](_0x3e59be,_0x3e8832),{offset:_0x328432,docTransform:_0x4bebaf,segmentId:_0x811e43,segmentPage:_0x40ffbf}=_0x326c58!=null?_0x326c58:{};return _0x328432==null||_0x4bebaf==null?this[_0x6517ef(0x184)](new Map([[_0x3e59be[_0x6517ef(0x2a3)],_0xf53be9]])):this[_0x6517ef(0x266)][_0x6517ef(0x241)](ITransformNonInlineDrawingCommand['id'],{'unitId':_0x3e59be['unitId'],'subUnitId':_0x3e59be[_0x6517ef(0x24b)],'drawing':_0x3e59be,'offset':_0x328432,'docTransform':_0x4bebaf,'segmentId':_0x811e43,'segmentPage':_0x40ffbf});}[_0x580764(0x343)](_0x5b76eb){const _0x1602df=_0x580764;if(_0x5b76eb==null)return;const _0x12645d=this[_0x1602df(0x1d6)][_0x1602df(0x304)](_0x5b76eb),_0x325f4c=_0x12645d==null?void 0x0:_0x12645d[_0x1602df(0x182)];if(_0x325f4c==null)return;const _0x515160=_0x325f4c['getTransformerByCreate']();return{'scene':_0x325f4c,'transformer':_0x515160};}[_0x580764(0x32c)](_0xc47823,_0x432e53,_0x59bd08,_0x44bbb2){const _0x259f96=_0x580764,{documentTransform:_0x122df3}=_0xc47823[_0x259f96(0x315)](),_0x3d571b=_0x432e53['transformVector2SceneCoord'](Vector2['FromArray']([_0x59bd08,_0x44bbb2]));if(_0x3d571b)return _0x122df3[_0x259f96(0x253)]()[_0x259f96(0x188)]()[_0x259f96(0x329)](_0x3d571b);}['_createOrUpdateInlineAnchor'](_0x28371c,_0x245ec1){const _0x1d3fbb=_0x580764,_0x50238b=this[_0x1d3fbb(0x1d6)][_0x1d3fbb(0x304)](_0x28371c);if(_0x50238b==null)return;const {mainComponent:_0xf005f,scene:_0x384d71}=_0x50238b,_0x1a31a1=_0xf005f,{docsLeft:_0x16ec0e,docsTop:_0x5132b5}=_0x1a31a1[_0x1d3fbb(0x315)](),_0x337bc5=getAnchorBounding(_0x245ec1),{left:_0x8d47bc,top:_0x1038db,height:_0x1b220c}=_0x337bc5,_0x2d5871=_0x8d47bc+_0x16ec0e,_0x1b5057=_0x1038db+_0x5132b5;if(this['_anchorShape']){this['_anchorShape'][_0x1d3fbb(0x22d)]({'left':_0x2d5871,'top':_0x1b5057,'height':_0x1b220c}),this[_0x1d3fbb(0x354)]['show']();return;}const _0x4cdffc=0x6,_0x22a96a=new Rect(INLINE_DRAWING_ANCHOR_KEY_PREFIX+Tools[_0x1d3fbb(0x349)](_0x4cdffc),{'left':_0x2d5871,'top':_0x1b5057,'height':_0x1b220c,'strokeWidth':0x2,'stroke':getColor(COLORS[_0x1d3fbb(0x199)],0x1),'evented':!0x1});this[_0x1d3fbb(0x354)]=_0x22a96a,_0x384d71[_0x1d3fbb(0x164)](_0x22a96a,TEXT_RANGE_LAYER_INDEX);}['_getDocObject'](){return getDocObject(this['_univerInstanceService'],this['_renderManagerService']);}[_0x580764(0x27a)](_0x4318e5){const _0x1b0951=_0x580764,_0x3df6b9=this[_0x1b0951(0x1d6)]['getRenderById'](_0x4318e5[_0x1b0951(0x24b)]),_0x5cd7f7=_0x3df6b9==null?void 0x0:_0x3df6b9[_0x1b0951(0x21f)](DocSkeletonManagerService)[_0x1b0951(0x1fa)](),_0x5f063c=0x1f4,_0x2f1f22=0x1f4,_0x229d60=_0x5cd7f7==null?void 0x0:_0x5cd7f7['getSkeletonData']();if(_0x229d60==null||_0x3df6b9==null)return{'width':_0x5f063c,'height':_0x2f1f22};const {pages:_0x345e86}=_0x229d60;let _0x5e5258=null;for(const _0x3d5794 of _0x345e86){const {skeDrawings:_0x32273e}=_0x3d5794;if(_0x32273e[_0x1b0951(0x275)](_0x4318e5[_0x1b0951(0x2a3)])){_0x5e5258=_0x3d5794;break;}}if(_0x5e5258){const {pageWidth:_0x103abd,pageHeight:_0x3a49db,marginLeft:_0x508e1e,marginBottom:_0xb4c8e,marginRight:_0x4d7a36,marginTop:_0x4ce3b4}=_0x5e5258;return{'width':Math[_0x1b0951(0x286)](_0x5f063c,_0x103abd-_0x508e1e-_0x4d7a36),'height':Math[_0x1b0951(0x286)](_0x2f1f22,_0x3a49db-_0x4ce3b4-_0xb4c8e)};}else return{'width':_0x5f063c,'height':_0x2f1f22};}},__name(_a4,_0x580764(0x318)),_a4);DocDrawingTransformerController=__decorateClass$3([__decorateParam$3(0x0,ICommandService),__decorateParam$3(0x1,IUniverInstanceService),__decorateParam$3(0x2,IDrawingManagerService),__decorateParam$3(0x3,IRenderManagerService)],DocDrawingTransformerController);var __defProp$2=Object[_0x580764(0x2c9)],__getOwnPropDesc$2=Object[_0x580764(0x178)],__decorateClass$2=__name((_0x4ed0d6,_0x4ce84b,_0x5c6335,_0x47b19d)=>{const _0x2b8df8=_0x580764;for(var _0x302cd5=_0x47b19d>0x1?void 0x0:_0x47b19d?__getOwnPropDesc$2(_0x4ce84b,_0x5c6335):_0x4ce84b,_0x2c9783=_0x4ed0d6[_0x2b8df8(0x2e5)]-0x1,_0x40b327;_0x2c9783>=0x0;_0x2c9783--)(_0x40b327=_0x4ed0d6[_0x2c9783])&&(_0x302cd5=(_0x47b19d?_0x40b327(_0x4ce84b,_0x5c6335,_0x302cd5):_0x40b327(_0x302cd5))||_0x302cd5);return _0x47b19d&&_0x302cd5&&__defProp$2(_0x4ce84b,_0x5c6335,_0x302cd5),_0x302cd5;},_0x580764(0x28a)),__decorateParam$2=__name((_0x1dc390,_0x2a52f2)=>(_0x392795,_0x279cdd)=>_0x2a52f2(_0x392795,_0x279cdd,_0x1dc390),_0x580764(0x1cb)),_a5;let DocDrawingPopupMenuController=(_a5=class extends RxDisposable{constructor(_0x47b464,_0x474f17,_0x5c1536,_0x3c1fc8,_0xb0f94){const _0x3bc64b=_0x580764;super(),__publicField(this,_0x3bc64b(0x256),new Set()),(this['_drawingManagerService']=_0x47b464,this[_0x3bc64b(0x2d1)]=_0x474f17,this['_renderManagerService']=_0x5c1536,this['_univerInstanceService']=_0x3c1fc8,this[_0x3bc64b(0x290)]=_0xb0f94,this[_0x3bc64b(0x15c)]());}['_init'](){const _0x51ab5b=_0x580764;this[_0x51ab5b(0x1bd)][_0x51ab5b(0x24c)](UniverInstanceType[_0x51ab5b(0x2e7)])[_0x51ab5b(0x16e)](takeUntil(this[_0x51ab5b(0x2ed)]))['subscribe'](_0x4da4f3=>this[_0x51ab5b(0x356)](_0x4da4f3)),this['_univerInstanceService'][_0x51ab5b(0x242)](UniverInstanceType[_0x51ab5b(0x2e7)])['pipe'](takeUntil(this[_0x51ab5b(0x2ed)]))[_0x51ab5b(0x1b2)](_0x390ded=>this[_0x51ab5b(0x19d)](_0x390ded)),this[_0x51ab5b(0x1bd)][_0x51ab5b(0x252)](UniverInstanceType[_0x51ab5b(0x2e7)])['forEach'](_0x3aafd1=>this[_0x51ab5b(0x356)](_0x3aafd1));}['_dispose'](_0x36b82d){const _0x238a11=_0x580764,_0x5b99f5=_0x36b82d[_0x238a11(0x2c0)]();this[_0x238a11(0x1d6)][_0x238a11(0x24a)](_0x5b99f5);}[_0x580764(0x356)](_0x365060){const _0x4db616=_0x580764;if(!_0x365060)return;const _0x5d5d9c=_0x365060[_0x4db616(0x2c0)]();this['_renderManagerService'][_0x4db616(0x275)](_0x5d5d9c)&&!this['_initImagePopupMenu'][_0x4db616(0x275)](_0x5d5d9c)&&(this['_popupMenuListener'](_0x5d5d9c),this[_0x4db616(0x256)][_0x4db616(0x24d)](_0x5d5d9c));}[_0x580764(0x1b6)](_0x3f23ca){const _0x5b898e=_0x580764,_0xa8193e=_0x3f23ca[_0x5b898e(0x247)]();for(const _0x328c26 of _0xa8193e)if(_0x328c26 instanceof ImageCropperObject)return!0x0;return!0x1;}[_0x580764(0x344)](_0x318dd0){const _0x138085=_0x580764;var _0x3834b1;const _0x1d857f=(_0x3834b1=this[_0x138085(0x1d6)][_0x138085(0x304)](_0x318dd0))==null?void 0x0:_0x3834b1[_0x138085(0x182)];if(!_0x1d857f)return;const _0x41be9b=_0x1d857f[_0x138085(0x20a)]();if(!_0x41be9b)return;const _0x4fcea1=[];this[_0x138085(0x309)](toDisposable(_0x41be9b[_0x138085(0x208)]['subscribe'](()=>{const _0x4d073a=_0x138085;if(this[_0x4d073a(0x1b6)](_0x1d857f))return;const _0x895adf=_0x41be9b[_0x4d073a(0x2e3)]();if(_0x4fcea1['forEach'](_0x3fc6e0=>_0x3fc6e0[_0x4d073a(0x249)]()),_0x4fcea1['length']=0x0,_0x895adf[_0x4d073a(0x2f3)]>0x1)return;const _0x346f69=_0x895adf[_0x4d073a(0x172)]()['next']()[_0x4d073a(0x190)];if(!_0x346f69)return;const _0x2d4a17=_0x346f69[_0x4d073a(0x277)],_0x3332c8=this['_drawingManagerService']['getDrawingOKey'](_0x2d4a17);if(!_0x3332c8)return;const {unitId:_0x374910,subUnitId:_0x4f0182,drawingId:_0x833cdc}=_0x3332c8,_0x556f4e=this['_canvasPopManagerService'][_0x4d073a(0x27e)](_0x346f69,{'componentKey':COMPONENT_IMAGE_POPUP_MENU,'direction':'horizontal','offset':[0x2,0x0],'extraProps':{'menuItems':this[_0x4d073a(0x193)](_0x374910,_0x4f0182,_0x833cdc)}},_0x374910);_0x4fcea1[_0x4d073a(0x225)](this[_0x4d073a(0x309)](_0x556f4e)),!this[_0x4d073a(0x243)]['getFocusDrawings']()['find'](_0x153ba2=>_0x153ba2[_0x4d073a(0x24b)]===_0x374910&&_0x153ba2['subUnitId']===_0x4f0182&&_0x153ba2['drawingId']===_0x833cdc)&&this[_0x4d073a(0x243)][_0x4d073a(0x22c)]([{'unitId':_0x374910,'subUnitId':_0x4f0182,'drawingId':_0x833cdc}]);}))),this['disposeWithMe'](toDisposable(_0x41be9b[_0x138085(0x170)][_0x138085(0x1b2)](()=>{const _0x242cda=_0x138085;_0x4fcea1[_0x242cda(0x250)](_0x343691=>_0x343691['dispose']()),_0x4fcea1[_0x242cda(0x2e5)]=0x0,this[_0x242cda(0x290)][_0x242cda(0x317)](FOCUSING_COMMON_DRAWINGS,!0x1),this[_0x242cda(0x243)][_0x242cda(0x22c)](null);}))),this[_0x138085(0x309)](toDisposable(_0x41be9b[_0x138085(0x194)][_0x138085(0x1b2)](()=>{const _0x5ce0b1=_0x138085;_0x4fcea1[_0x5ce0b1(0x250)](_0x22ccf5=>_0x22ccf5[_0x5ce0b1(0x249)]()),_0x4fcea1['length']=0x0;}))),this['disposeWithMe'](toDisposable(_0x41be9b[_0x138085(0x187)]['subscribe'](()=>{const _0xdadcbc=_0x138085;_0x4fcea1[_0xdadcbc(0x250)](_0x335fff=>_0x335fff[_0xdadcbc(0x249)]()),_0x4fcea1['length']=0x0;})));}[_0x580764(0x193)](_0x3c99de,_0x32fd23,_0x220298){const _0xa5b0d8=_0x580764;return[{'label':'image-popup.edit','index':0x0,'commandId':EditDocDrawingOperation['id'],'commandParams':{'unitId':_0x3c99de,'subUnitId':_0x32fd23,'drawingId':_0x220298},'disable':!0x1},{'label':_0xa5b0d8(0x331),'index':0x1,'commandId':RemoveDocDrawingCommand['id'],'commandParams':{'unitId':_0x3c99de,'drawings':[{'unitId':_0x3c99de,'subUnitId':_0x32fd23,'drawingId':_0x220298}]},'disable':!0x1},{'label':_0xa5b0d8(0x1f6),'index':0x2,'commandId':OpenImageCropOperation['id'],'commandParams':{'unitId':_0x3c99de,'subUnitId':_0x32fd23,'drawingId':_0x220298},'disable':!0x0},{'label':_0xa5b0d8(0x2fa),'index':0x3,'commandId':ImageResetSizeOperation['id'],'commandParams':[{'unitId':_0x3c99de,'subUnitId':_0x32fd23,'drawingId':_0x220298}],'disable':!0x0}];}},__name(_a5,_0x580764(0x1b3)),_a5);DocDrawingPopupMenuController=__decorateClass$2([__decorateParam$2(0x0,IDrawingManagerService),__decorateParam$2(0x1,Inject(DocCanvasPopManagerService)),__decorateParam$2(0x2,IRenderManagerService),__decorateParam$2(0x3,IUniverInstanceService),__decorateParam$2(0x4,IContextService)],DocDrawingPopupMenuController);var __defProp$1=Object[_0x580764(0x2c9)],__getOwnPropDesc$1=Object[_0x580764(0x178)],__decorateClass$1=__name((_0x526f6d,_0x30dcde,_0x49d4be,_0x3ac2c3)=>{const _0x51a3be=_0x580764;for(var _0x49f28d=_0x3ac2c3>0x1?void 0x0:_0x3ac2c3?__getOwnPropDesc$1(_0x30dcde,_0x49d4be):_0x30dcde,_0x4a800e=_0x526f6d[_0x51a3be(0x2e5)]-0x1,_0x36e10a;_0x4a800e>=0x0;_0x4a800e--)(_0x36e10a=_0x526f6d[_0x4a800e])&&(_0x49f28d=(_0x3ac2c3?_0x36e10a(_0x30dcde,_0x49d4be,_0x49f28d):_0x36e10a(_0x49f28d))||_0x49f28d);return _0x3ac2c3&&_0x49f28d&&__defProp$1(_0x30dcde,_0x49d4be,_0x49f28d),_0x49f28d;},'__decorateClass$1'),__decorateParam$1=__name((_0x387ba5,_0x19f061)=>(_0x484906,_0x2d1dee)=>_0x19f061(_0x484906,_0x2d1dee,_0x387ba5),_0x580764(0x2dc)),_a6;let DocDrawingTransformUpdateController=(_a6=class extends Disposable{constructor(_0x5f4b48,_0x20564e,_0x5b91cf,_0x17674f,_0x1dcc69,_0x3b8952,_0x1dba63,_0x3e2ab8){const _0x4fd642=_0x580764;super(),__publicField(this,_0x4fd642(0x1f2),new Liquid()),(this[_0x4fd642(0x2b5)]=_0x5f4b48,this[_0x4fd642(0x338)]=_0x20564e,this[_0x4fd642(0x266)]=_0x5b91cf,this[_0x4fd642(0x347)]=_0x17674f,this['_drawingManagerService']=_0x1dcc69,this[_0x4fd642(0x192)]=_0x3b8952,this[_0x4fd642(0x1bd)]=_0x1dba63,this[_0x4fd642(0x234)]=_0x3e2ab8,this['_initialize'](),this[_0x4fd642(0x298)]());}[_0x580764(0x18e)](){const _0x428c6d=_0x580764;this['_initialRenderRefresh'](),this[_0x428c6d(0x1c8)](),this[_0x428c6d(0x281)]();}[_0x580764(0x31e)](){const _0x4aa605=_0x580764;this[_0x4aa605(0x338)][_0x4aa605(0x22f)][_0x4aa605(0x1b2)](_0x242def=>{const _0x12a37d=_0x4aa605;_0x242def!=null&&this[_0x12a37d(0x2e1)](_0x242def);}),this['_docRefreshDrawingsService']['refreshDrawings$']['subscribe'](_0x19ea9c=>{const _0xdc9a88=_0x4aa605;_0x19ea9c!=null&&this[_0xdc9a88(0x2e1)](_0x19ea9c);});}[_0x580764(0x298)](){const _0x9ad0cc=_0x580764,_0x27ad0e=[RichTextEditingMutation['id'],SetDocZoomRatioOperation['id']];this[_0x9ad0cc(0x309)](this[_0x9ad0cc(0x266)][_0x9ad0cc(0x33f)](_0x4fa380=>{const _0x446b1b=_0x9ad0cc;if(_0x27ad0e['includes'](_0x4fa380['id'])){const _0x3ca00d=_0x4fa380[_0x446b1b(0x185)],{unitId:_0x5c73e3}=_0x3ca00d,{unitId:_0x38acb5,mainComponent:_0x5a4d88}=this['_context'];if(_0x5c73e3!==_0x38acb5)return;const _0x39cf74=this['_docSkeletonManagerService']['getSkeleton']();if(_0x39cf74==null)return;if(this[_0x446b1b(0x347)][_0x446b1b(0x2fc)](_0x38acb5)){_0x5a4d88==null||_0x5a4d88[_0x446b1b(0x34a)]();return;}this[_0x446b1b(0x2e1)](_0x39cf74);}}));}[_0x580764(0x281)](){const _0x5e764f=_0x580764;this[_0x5e764f(0x309)](fromEventSubject(this[_0x5e764f(0x2b5)][_0x5e764f(0x244)]['onTransformChange$'])[_0x5e764f(0x16e)](filter(_0x1fccbf=>_0x1fccbf[_0x5e764f(0x322)]===TRANSFORM_CHANGE_OBSERVABLE_TYPE['resize']),debounceTime(0x10))[_0x5e764f(0x1b2)](()=>{const _0x1561bd=_0x5e764f;var _0x51f458;const _0x2ce4e2=this[_0x1561bd(0x338)]['getSkeleton'](),{scene:_0x368bad}=this[_0x1561bd(0x2b5)];(_0x51f458=_0x368bad[_0x1561bd(0x2b8)]())==null||_0x51f458[_0x1561bd(0x2c6)](),this[_0x1561bd(0x2e1)](_0x2ce4e2);}));}[_0x580764(0x2e1)](_0x2c67ba){const _0x5b42b3=_0x580764;var _0x1807d6,_0x17d52d;const _0x291e8c=_0x2c67ba==null?void 0x0:_0x2c67ba['getSkeletonData'](),{mainComponent:_0x161dcf,unitId:_0x4bfc9f}=this[_0x5b42b3(0x2b5)],_0x3c5f52=_0x161dcf;if(!_0x291e8c)return;const {left:_0x4613ae,top:_0x2efc8e,pageLayoutType:_0x364a48,pageMarginLeft:_0x57beda,pageMarginTop:_0xced4e7}=_0x3c5f52,{pages:_0x59e1ac,skeHeaders:_0x11662,skeFooters:_0x31d74e}=_0x291e8c,_0x21471c={};this['_liquid'][_0x5b42b3(0x1e6)]();for(let _0x1b9428=0x0,_0x10a3a8=_0x59e1ac[_0x5b42b3(0x2e5)];_0x1b9428<_0x10a3a8;_0x1b9428++){const _0xe563c8=_0x59e1ac[_0x1b9428],{headerId:_0x58d55c,footerId:_0x4608a0,pageWidth:_0x12d872}=_0xe563c8;if(_0x58d55c){const _0x52b37f=(_0x1807d6=_0x11662[_0x5b42b3(0x233)](_0x58d55c))==null?void 0x0:_0x1807d6[_0x5b42b3(0x233)](_0x12d872);_0x52b37f&&this['_calculateDrawingPosition'](_0x4bfc9f,_0x52b37f,_0x4613ae,_0x2efc8e,_0x21471c,_0x52b37f['marginTop'],_0xe563c8[_0x5b42b3(0x221)]);}if(_0x4608a0){const _0x244b0d=(_0x17d52d=_0x31d74e[_0x5b42b3(0x233)](_0x4608a0))==null?void 0x0:_0x17d52d[_0x5b42b3(0x233)](_0x12d872);_0x244b0d&&this[_0x5b42b3(0x205)](_0x4bfc9f,_0x244b0d,_0x4613ae,_0x2efc8e,_0x21471c,_0xe563c8[_0x5b42b3(0x1ac)]-_0xe563c8['marginBottom']+_0x244b0d[_0x5b42b3(0x1d1)],_0xe563c8[_0x5b42b3(0x221)]);}this['_calculateDrawingPosition'](_0x4bfc9f,_0xe563c8,_0x4613ae,_0x2efc8e,_0x21471c,_0xe563c8['marginTop'],_0xe563c8['marginLeft']),this[_0x5b42b3(0x1f2)][_0x5b42b3(0x212)](_0xe563c8,_0x364a48,_0x57beda,_0xced4e7);}const _0x5e7fd6=Object['values'](_0x21471c),_0x28b41c=_0x5e7fd6[_0x5b42b3(0x230)](_0x11afb2=>!_0x11afb2[_0x5b42b3(0x237)]),_0x35e155=_0x5e7fd6[_0x5b42b3(0x230)](_0x97773=>_0x97773[_0x5b42b3(0x237)]);_0x28b41c[_0x5b42b3(0x2e5)]>0x0&&this[_0x5b42b3(0x243)][_0x5b42b3(0x246)](_0x28b41c),_0x35e155[_0x5b42b3(0x2e5)]>0x0&&this[_0x5b42b3(0x2ab)](_0x35e155);}[_0x580764(0x2ab)](_0x504439){const _0x2dd982=_0x580764,{scene:_0xdcaf54,unitId:_0x4e6008}=this['_context'],_0x1d8443=_0xdcaf54[_0x2dd982(0x20a)]();_0x504439[_0x2dd982(0x250)](_0x7dc490=>{const _0x1b0eae=_0x2dd982,_0x392e99=this['_drawingManagerService']['getDrawingByParam'](_0x7dc490);_0x392e99!=null&&(_0x392e99['transform']=_0x7dc490[_0x1b0eae(0x175)],_0x392e99['transforms']=_0x7dc490[_0x1b0eae(0x20d)],_0x392e99[_0x1b0eae(0x237)]=_0x7dc490['isMultiTransform']);});const _0x38b927=[..._0x1d8443[_0x2dd982(0x2e3)]()['keys']()],_0x11d156=Object[_0x2dd982(0x172)](this[_0x2dd982(0x243)]['getDrawingData'](_0x4e6008,_0x4e6008))[_0x2dd982(0x230)](_0x11519c=>_0x11519c['isMultiTransform']===BooleanNumber[_0x2dd982(0x313)]);this[_0x2dd982(0x243)]['removeNotification'](_0x11d156),this[_0x2dd982(0x243)][_0x2dd982(0x337)](_0x504439);for(const _0x1b0734 of _0x38b927){const _0x1b0c32=_0xdcaf54[_0x2dd982(0x32f)](_0x1b0734);_0x1b0c32&&_0x1d8443[_0x2dd982(0x255)](_0x1b0c32);}}[_0x580764(0x205)](_0x1c99e5,_0x230cf9,_0x47c16a,_0x35a35a,_0x215342,_0x44e68f,_0x38c2e1){const _0x2ce210=_0x580764,{skeDrawings:_0x45d9d7}=_0x230cf9;this[_0x2ce210(0x1f2)]['translatePagePadding']({'marginTop':_0x44e68f,'marginLeft':_0x38c2e1}),_0x45d9d7['forEach'](_0x4860c4=>{const _0x5a7a67=_0x2ce210,{aLeft:_0x1d4eda,aTop:_0x1f58e7,height:_0x403b12,width:_0x554162,angle:_0x1e3fd7,drawingId:_0x5419f8,drawingOrigin:_0x3ef561}=_0x4860c4,_0x3cf75f=_0x3ef561[_0x5a7a67(0x1bf)]===PositionedObjectLayoutType['WRAP_NONE']&&_0x3ef561[_0x5a7a67(0x276)]===BooleanNumber['TRUE'],{isMultiTransform:isMultiTransform=BooleanNumber[_0x5a7a67(0x1ed)]}=_0x3ef561,_0x469451={'left':_0x1d4eda+_0x47c16a+this['_liquid']['x'],'top':_0x1f58e7+_0x35a35a+this[_0x5a7a67(0x1f2)]['y'],'width':_0x554162,'height':_0x403b12,'angle':_0x1e3fd7};_0x215342[_0x5419f8]==null?_0x215342[_0x5419f8]={'unitId':_0x1c99e5,'subUnitId':_0x1c99e5,'drawingId':_0x5419f8,'behindText':_0x3cf75f,'transform':_0x469451,'transforms':[_0x469451],'isMultiTransform':isMultiTransform}:isMultiTransform===BooleanNumber[_0x5a7a67(0x313)]&&_0x215342[_0x5419f8][_0x5a7a67(0x20d)][_0x5a7a67(0x225)](_0x469451);}),this['_liquid'][_0x2ce210(0x223)]({'marginTop':_0x44e68f,'marginLeft':_0x38c2e1});}[_0x580764(0x1c8)](){const _0x11fffd=_0x580764,_0x537581=__name(()=>{const _0x16b756=_0x5391,_0x33c128=this[_0x16b756(0x338)][_0x16b756(0x1fa)]();_0x33c128!=null&&(this[_0x16b756(0x2e1)](_0x33c128),this[_0x16b756(0x243)]['initializeNotification'](this['_context']['unitId']));},_0x11fffd(0x1b7));this[_0x11fffd(0x234)][_0x11fffd(0x2d9)]===LifecycleStages['Steady']?setTimeout(()=>{_0x537581();},0x3e8):this['_lifecycleService'][_0x11fffd(0x24e)]['pipe'](filter(_0x253629=>_0x253629===LifecycleStages['Steady']))[_0x11fffd(0x1b2)](_0x537581);}},__name(_a6,_0x580764(0x2e6)),_a6);DocDrawingTransformUpdateController=__decorateClass$1([__decorateParam$1(0x1,Inject(DocSkeletonManagerService)),__decorateParam$1(0x2,ICommandService),__decorateParam$1(0x3,IEditorService),__decorateParam$1(0x4,IDrawingManagerService),__decorateParam$1(0x5,Inject(DocRefreshDrawingsService)),__decorateParam$1(0x6,IUniverInstanceService),__decorateParam$1(0x7,Inject(LifecycleService))],DocDrawingTransformUpdateController);var __defProp2=Object[_0x580764(0x2c9)],__getOwnPropDesc=Object['getOwnPropertyDescriptor'],__defNormalProp2=__name((_0x3360a1,_0x12a0f5,_0x3af2f3)=>_0x12a0f5 in _0x3360a1?__defProp2(_0x3360a1,_0x12a0f5,{'enumerable':!0x0,'configurable':!0x0,'writable':!0x0,'value':_0x3af2f3}):_0x3360a1[_0x12a0f5]=_0x3af2f3,_0x580764(0x245)),__decorateClass=__name((_0x35400b,_0x245522,_0x2f55fe,_0x586e12)=>{const _0x15f3a7=_0x580764;for(var _0x36148a=_0x586e12>0x1?void 0x0:_0x586e12?__getOwnPropDesc(_0x245522,_0x2f55fe):_0x245522,_0x2e4703=_0x35400b[_0x15f3a7(0x2e5)]-0x1,_0x427f26;_0x2e4703>=0x0;_0x2e4703--)(_0x427f26=_0x35400b[_0x2e4703])&&(_0x36148a=(_0x586e12?_0x427f26(_0x245522,_0x2f55fe,_0x36148a):_0x427f26(_0x36148a))||_0x36148a);return _0x586e12&&_0x36148a&&__defProp2(_0x245522,_0x2f55fe,_0x36148a),_0x36148a;},_0x580764(0x26a)),__decorateParam=__name((_0x389c34,_0x2e7dea)=>(_0x24e42f,_0x2ebf95)=>_0x2e7dea(_0x24e42f,_0x2ebf95,_0x389c34),_0x580764(0x324)),__publicField2=__name((_0x4d7de0,_0x2b2e65,_0x1795dc)=>__defNormalProp2(_0x4d7de0,typeof _0x2b2e65!=_0x580764(0x1a8)?_0x2b2e65+'':_0x2b2e65,_0x1795dc),_0x580764(0x2b1));const PLUGIN_NAME='DOC_DRAWING_UI_PLUGIN';function _0x31b0(){const _0x4469f8=['_initImagePopupMenu','0\x200\x2016\x2016','block','ARROW_LEFT','defIds','4_doc-drawing-view','syncExecuteCommand','blockAnchorTop','distR','blur','find','distT','getBatchRemoveOp','2250101mBggeU','_docSelectionRenderService','doc.command.move-inline-drawing','_commandService','ARROW_RIGHT','icon','findNodeByCoord','__decorateClass','_initCommands','_docSelectionManagerService','UploadFloatImageMenuFactory','replaceOp','idSuffix','VERTICAL','getAbsolutePosition','_updateDrawingAnchor','inline','cursor','has','behindDoc','oKey','wrapTopAndBottom','_moveInlineDrawing','_getPageContentSize','refreshDrawings$','doc.command.update-doc-drawing-wrapping-style','random','attachPopupToObject','skeDrawings','_localeService','_initResize','lines','replaceRuntimeIdsAndExtInAttrs','drawing','reduce','max','_findSegmentIdByDrawingId','applyJson1','handlePositionChange','__decorateClass$2','positionH','footer\x20skeleton\x20not\x20found','getSegment','imageCommonPanelSpan2','dataStream','_contextService','hasOwnProperty','add-image-single','DocRefreshDrawingsService','23590QHhjIE','div','behindText','imageCommonPanelSubtitle','_commandExecutedListener','getActiveTextRange','_groupDrawingListener','show','onStarting','_updateOrderListener','getBackDrawingsOp','extend','ARROW_UP','use','unshift','drawingId','none','LEFT','DocDrawingUpdateRenderController','cells','handleDistToTextChange','getDeleteActions','attachTransformerTo','_handleMultiDrawingsTransform','className','top','AddImageSingle','tables','LAYOUT','__publicField','onChange','image-text-wrap.title','getSelfOrHeaderFooterModel','_context','COMPONENT_DOC_DRAWING_PANEL','shortcut.doc.drawing-delete','getTransformer','_docDrawingService','getSnapshot','hasIntersectionBetweenTwoRanges','imageCommonPanelBorder','image-position.page','next','PARAGRAPH','getUnitId','BODY','image-position.moveObjectWithText','map','MUTATION','getAddOrRemoveDrawings','refreshControls','COLUMN','_configService','defineProperty','imageCommonPanel','docImage.title','univer-sheet-image-menu-input','getDrawingsOrder','doc.command.insert-doc-image','unsubscribe','_nonInlineDrawingTransform','_canvasPopManagerService','_focusDrawingListener','doc.command.remove-doc-image','UniverDocsDrawingUIPlugin','image-position.options','editOp','divides','univer-sheet-image-menu','stage','getDrawings','univer-image-common-panel-column','__decorateParam$1','doc.command.update-doc-drawing-distance','insertDocImage','__InlineDrawingAnchor__','doc.operation.edit-doc-image','_refreshDrawing','angle','getSelectedObjectMap','orderNotification','length','DocDrawingTransformUpdateController','UNIVER_DOC','BOTH_SIDES','ERROR_IMAGE','update-status.exceedMaxSize','_editAreaChangeListener','onReady','dispose$','parent','DELETE','_imageIoService','image-text-wrap.right','label','size','relativeFrom','replaceTextRanges','_createOrUpdateInlineAnchor','getBatchAddOp','insertOp','_getDocObject','image-popup.reset','getSkeletonData','isEditor','propertyIsEnumerable','univer-image-common-panel-row','doc.command.update-doc-drawing-wrap-text','isArray','svg','children','image-text-wrap.square','getRenderById','WRAP_TOP_AND_BOTTOM','getFrontDrawingsOp','message','_initShortcuts','disposeWithMe','getCurrentUniverDocInstance','M2.2498\x203.65005C2.2498\x202.87685\x202.87661\x202.25005\x203.64981\x202.25005H7.9998C8.33118\x202.25005\x208.5998\x201.98142\x208.5998\x201.65005C8.5998\x201.31868\x208.33118\x201.05005\x207.9998\x201.05005H3.64981C2.21387\x201.05005\x201.0498\x202.21411\x201.0498\x203.65005V12.35C1.0498\x2013.786\x202.21386\x2014.95\x203.6498\x2014.95H12.3498C13.7857\x2014.95\x2014.9498\x2013.786\x2014.9498\x2012.3501V8.00005C14.9498\x207.66868\x2014.6812\x207.40005\x2014.3498\x207.40005C14.0184\x207.40005\x2013.7498\x207.66868\x2013.7498\x208.00005V9.23974L12.2385\x208.1063C11.7252\x207.72129\x2011.0068\x207.7723\x2010.5531\x208.22605L9.00869\x209.77041L6.73916\x207.8251C6.24387\x207.40055\x205.5095\x207.41278\x205.02864\x207.85359L2.2498\x2010.4009V3.65005ZM2.2498\x2012.0287V12.35C2.2498\x2013.1232\x202.87661\x2013.75\x203.6498\x2013.75H12.3498C13.123\x2013.75\x2013.7498\x2013.1232\x2013.7498\x2012.3501V10.7397L11.5186\x209.06631C11.4829\x209.03956\x2011.433\x209.04314\x2011.4016\x209.07458L9.92249\x2010.5537L11.1015\x2011.5642C11.3531\x2011.7799\x2011.3822\x2012.1587\x2011.1666\x2012.4103C10.9509\x2012.6619\x2010.5721\x2012.691\x2010.3205\x2012.4753L5.9582\x208.7362C5.92384\x208.70674\x205.87288\x208.70758\x205.83952\x208.73816L2.2498\x2012.0287Z','mergeMenu','DocDrawingPanel','selection','image-position.horizontal','univer-image-common-panel-row-vertical','imageCommonPanelInput','_updateInlineDrawingAnchor','TRUE','_fileOpenerService','getOffsetConfig','remove','setContextValue','DocDrawingTransformerController','_initCustomComponents','image-text-wrap.behindText','image-text-wrap.distanceFromText','apply','url(#$1','_initialRenderRefresh','DocDrawingPosition','WRAP_NONE','paragraphStart','type','__decorateClass$6','__decorateParam','_updateDrawingSize','50px','_shortcutService','getInstance','applyPoint','getViewports','replace','_getTransformCoordForDocumentOffset','blockId','shortcut.doc.drawing-move-left','getObject','_updateDrawingsEditStatus','image-popup.delete','saveImage','RIGHT','beforeCommandExecuted','BACKSPACE','image-position.absolutePosition','addNotification','_docSkeletonManagerService','detachTransformerFrom','registerCommand','left','open','refreshDrawings','_isInsertInHeaderFooter','onCommandExecuted','82885aVOiki','ImageMenuFactory','wrapSquare','_getSceneAndTransformerByDrawingSearch','_popupMenuListener','debounceRefreshControls','concat','_editorService','paragraphIndex','generateRandomId','makeDirty','sort','featurePluginUngroupUpdate$','getContextValue','_menuManagerService','__decorateClass$3','_initMenus','min','univer-image-common-panel','inFrontOfText','_anchorShape','doc.command.ungroup-doc-image','_create','getSegmentPage','updateFocusDrawingState','startIndex','_config','_init','DocDrawingTextWrap','image-position.bellow','145432Vbkqco','sidebar.operation.doc-image','whenDocDrawingFocused','image-position.toTheRightOf','substring','addObject','render','path','setDrawingOrder','onClose','getReOrderedDrawings','back','1em','editAreaChange$','univer-image-common-panel-title','pipe','docImage.panel.title','clearControl$','backward','values','getEditArea','getFocusDrawings','transform','image-text-wrap.inFrontText','subUnitId','getOwnPropertyDescriptor','_transformerCache','_addDrawings','univerjs-icon\x20univerjs-icon-','bind','_removeDrawings','getCurrentTypeOfRenderer','repeat','columnLeft','setSegmentPage','scene','shortcut.doc.drawing-move-down','_updateMultipleDrawingDocTransform','params','COMMAND','changeStart$','invert','WRAP_SQUARE','getUniverDocInstance','empty','drawingsOrder','forward','_initialize','body','value','isNoop','_docRefreshDrawingsService','_getImageMenuItems','changing$','shortcut.doc.drawing-move-right','displayName','_limitDrawingInPage','doc.command.move-drawing','darkGray','getDisableWhenSelectionInTableObservable','_getCurrentSceneAndTransformer','6kRZdGz','_dispose','pluginName','posOffset','_getDrawingAnchor','LINE','ERROR_EXCEED_SIZE','update-status.invalidImage','assign','_insertFloatImages','DocDrawingUIController','BEHIND_TEXT','symbol','tag','handleFollowTextMoveCheck','DOWN','pageHeight','slice','handleHorizontalRelativeFromChange','xlink:href','univer-image-common-panel-inline','string','subscribe','DocDrawingPopupMenuController','image/','12KoIwKG','_hasCropObject','init','compose','number','13024irnyHm','createElement','UniverIcon','_univerInstanceService','isInTableCell','layoutType','keys','imageCommonPanelGrid','width','getViewModel','_messageService','document','doc.command.set-drawing-arrange','findPositionByGlyph','_drawingInitializeListener','docTransform','addImageSourceCache','__decorateParam$2','99LeSSwE','738mTeNZc','object','__decorateClass$4','getBody','marginTop','univer-image-common-panel-border','doc.operation.clear-drawing-transformer','setSegment','front','_renderManagerService','drawings','function','ERROR_IMAGE_TYPE','_getInlineDrawingAnchor','currentColor','DRAWING_IMAGE','_updateDrawingsOrder','attrs','getUngroupDrawingOp','handleWrappingStyleChange','PAGE','_getImagePosition','__decorateClass$5','replaceRuntimeIdsInDefs','univer-image-common-panel-grid','reset','RETAIN','getRangePointData','ARROW_DOWN','_listenerOnImageMap','some','_listenTransformerChange','FALSE','distB','name','image-text-wrap.top','image-position.line','_liquid','OPERATION','indexOf','_injector','image-popup.crop','_renderManagerSrv','__decorateParam$6','positionV','getSkeleton','set','focus$','actions','handler','_componentManager','serialize','vertical','__decorateParam$3','current','doc.command.transform-non-inline-drawing','_calculateDrawingPosition','image-text-wrap.topAndBottom','208317XVeEAs','createControl$','FOOTER','getTransformerByCreate','prototype','__decorateParam$5','transforms','register','imageCommonPanelRow','shortcut.doc.drawing-move-up','lineTop','translatePage','IN_FRONT_OF_TEXT','distL','image-text-wrap.left','resetProps','toString','setConfig','MARGIN','wrapText','docImage.upload.float','asObservable','INSERT','M11.8097\x201.14783C12.1411\x201.14783\x2012.4097\x201.41646\x2012.4097\x201.74783V3.297H14.1541C14.4855\x203.297\x2014.7541\x203.56563\x2014.7541\x203.897C14.7541\x204.22837\x2014.4855\x204.497\x2014.1541\x204.497H12.4097V6.24167C12.4097\x206.57304\x2012.1411\x206.84167\x2011.8097\x206.84167C11.4783\x206.84167\x2011.2097\x206.57304\x2011.2097\x206.24167V4.497H9.6603C9.32893\x204.497\x209.0603\x204.22837\x209.0603\x203.897C9.0603\x203.56563\x209.32893\x203.297\x209.6603\x203.297H11.2097V1.74783C11.2097\x201.41646\x2011.4783\x201.14783\x2011.8097\x201.14783Z','with','getViewportScrollXY','marginLeft','Error','restorePagePadding','colorChannel1','push','HEADER','_listenDrawingFocus','fill','removeNotification','removeOp','BUTTON','focusDrawing','transformByState','image-position.paragraph','currentSkeleton$','filter','entries','INLINE','get','_lifecycleService','imageCommonPanelColumn','customBlocks','isMultiTransform','image-text-wrap.wrapText','getDrawingOKey','call','setOpacity','image-text-wrap.bottom','getOwnPropertySymbols','getDeleteAndInsertCustomBlockActions','featurePluginOrderUpdate$','diffValue','executeCommand','getTypeOfUnitDisposed$','_drawingManagerService','engine','__defNormalProp','refreshTransform','getAllObjects','translatePagePadding','dispose','removeRender','unitId','getCurrentTypeOfUnit$','add','lifecycle$','203430SLNAyD','forEach','_refreshDrawings$','getAllUnitsForType','clone','hide','setSelectedControl'];_0x31b0=function(){return _0x4469f8;};return _0x31b0();}var _a7;let UniverDocsDrawingUIPlugin=(_a7=class extends Plugin{constructor(_0x2ca5ef=defaultPluginConfig,_0x156c33,_0x47ba3c,_0x3e4353){const _0x236668=_0x580764;super(),this[_0x236668(0x15b)]=_0x2ca5ef,this['_injector']=_0x156c33,this[_0x236668(0x1f7)]=_0x47ba3c,this[_0x236668(0x2c8)]=_0x3e4353;const {..._0x4ae891}=this[_0x236668(0x15b)];this[_0x236668(0x2c8)][_0x236668(0x218)](PLUGIN_CONFIG_KEY,_0x4ae891);}[_0x580764(0x29c)](){const _0x29c627=_0x580764;[[DocDrawingUIController],[DocDrawingPopupMenuController],[DocDrawingTransformerController],[DocDrawingAddRemoveController],[DocRefreshDrawingsService]][_0x29c627(0x250)](_0x4fe216=>this[_0x29c627(0x1f5)][_0x29c627(0x24d)](_0x4fe216));}[_0x580764(0x2ec)](){const _0x243a07=_0x580764;[[DocDrawingUpdateRenderController],[DocDrawingTransformUpdateController]]['forEach'](_0x381794=>this[_0x243a07(0x1f7)]['registerRenderModule'](UniverInstanceType['UNIVER_DOC'],_0x381794)),this[_0x243a07(0x1f5)][_0x243a07(0x233)](DocDrawingAddRemoveController),this[_0x243a07(0x1f5)][_0x243a07(0x233)](DocDrawingUIController);}['onRendered'](){const _0x2aacd7=_0x580764;this[_0x2aacd7(0x1f5)]['get'](DocDrawingPopupMenuController);}},__name(_a7,_0x580764(0x2d4)),_a7);__publicField2(UniverDocsDrawingUIPlugin,_0x580764(0x322),UniverInstanceType['UNIVER_DOC']),__publicField2(UniverDocsDrawingUIPlugin,_0x580764(0x19e),PLUGIN_NAME),UniverDocsDrawingUIPlugin=__decorateClass([DependentOn(UniverDrawingUIPlugin,UniverDrawingPlugin,UniverDocsDrawingPlugin,UniverUIPlugin),__decorateParam(0x1,Inject(Injector)),__decorateParam(0x2,IRenderManagerService),__decorateParam(0x3,IConfigService)],UniverDocsDrawingUIPlugin);export{ClearDocDrawingTransformerOperation,DeleteDocDrawingsCommand,EditDocDrawingOperation,GroupDocDrawingCommand,IMAGE_MENU_ID,InsertDocDrawingCommand,InsertDocImageCommand,MoveDocDrawingsCommand,RemoveDocDrawingCommand,SetDocDrawingArrangeCommand,SidebarDocDrawingOperation,UngroupDocDrawingCommand,UniverDocsDrawingUIPlugin};