@univerjs/docs-drawing-ui 0.5.4 → 0.5.5-experimental.20250122-3362a4a

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