@univerjs/docs-drawing-ui 0.5.5-nightly.202501210734 → 0.5.5-nightly.202501210849

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