@univerjs/docs-drawing 1.0.0-rc.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +2 -1
- package/lib/cjs/index.js +22 -16
- package/lib/es/facade.js +2 -1
- package/lib/es/index.js +22 -16
- package/lib/facade.js +2 -1
- package/lib/index.js +22 -16
- package/lib/types/commands/commands/update-doc-drawing-transform.command.d.ts +3 -2
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
package/lib/cjs/facade.js
CHANGED
|
@@ -491,7 +491,8 @@ var FDocumentImageMixin = class extends _univerjs_docs_facade.FDocument {
|
|
|
491
491
|
return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
|
|
492
492
|
}
|
|
493
493
|
getImages() {
|
|
494
|
-
const
|
|
494
|
+
const documentDataModel = this.getDocumentDataModel();
|
|
495
|
+
const { drawings, drawingsOrder: drawingIds } = (0, _univerjs_docs_drawing.collectDocDrawings)(documentDataModel.getSnapshot());
|
|
495
496
|
return drawingIds.filter((drawingId) => {
|
|
496
497
|
var _drawings$drawingId;
|
|
497
498
|
return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === _univerjs_core.DrawingTypeEnum.DRAWING_IMAGE;
|
package/lib/cjs/index.js
CHANGED
|
@@ -68,7 +68,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
//#endregion
|
|
71
|
-
//#region \0@oxc-project+runtime@0.
|
|
71
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
72
72
|
function _typeof(o) {
|
|
73
73
|
"@babel/helpers - typeof";
|
|
74
74
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -79,7 +79,7 @@ function _typeof(o) {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
//#endregion
|
|
82
|
-
//#region \0@oxc-project+runtime@0.
|
|
82
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
83
83
|
function toPrimitive(t, r) {
|
|
84
84
|
if ("object" != _typeof(t) || !t) return t;
|
|
85
85
|
var e = t[Symbol.toPrimitive];
|
|
@@ -92,14 +92,14 @@ function toPrimitive(t, r) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
//#endregion
|
|
95
|
-
//#region \0@oxc-project+runtime@0.
|
|
95
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
96
96
|
function toPropertyKey(t) {
|
|
97
97
|
var i = toPrimitive(t, "string");
|
|
98
98
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
//#endregion
|
|
102
|
-
//#region \0@oxc-project+runtime@0.
|
|
102
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
103
103
|
function _defineProperty(e, r, t) {
|
|
104
104
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
105
105
|
value: t,
|
|
@@ -229,12 +229,17 @@ const RemoveDocDrawingCommand = {
|
|
|
229
229
|
if (removeCustomBlocks.length === 0) return false;
|
|
230
230
|
const drawings = source.drawings ?? {};
|
|
231
231
|
const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
|
|
232
|
-
const
|
|
232
|
+
const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
|
|
233
|
+
let previousSize = -1;
|
|
234
|
+
while (previousSize !== removeIds.size) {
|
|
235
|
+
previousSize = removeIds.size;
|
|
236
|
+
for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
|
|
237
|
+
}
|
|
238
|
+
const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
|
|
233
239
|
const resourceRedoMutations = [];
|
|
234
240
|
const resourceUndoMutations = [];
|
|
235
241
|
const resourceMutationGroups = [];
|
|
236
|
-
for (const
|
|
237
|
-
const { blockId } = block;
|
|
242
|
+
for (const blockId of removeIds) {
|
|
238
243
|
const drawing = drawings[blockId];
|
|
239
244
|
if (drawing == null) continue;
|
|
240
245
|
const removeDrawingParam = removeDrawingParamById.get(blockId);
|
|
@@ -293,9 +298,8 @@ const RemoveDocDrawingCommand = {
|
|
|
293
298
|
}
|
|
294
299
|
rawActions.push(jsonX.editOp(textX.serialize(), (0, _univerjs_core.getRichTextEditPath)(documentDataModel, segmentId)));
|
|
295
300
|
const drawingOrder = source.drawingsOrder ?? [];
|
|
296
|
-
const
|
|
297
|
-
for (const
|
|
298
|
-
const { blockId } = block;
|
|
301
|
+
const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
|
|
302
|
+
for (const blockId of resourceIds) {
|
|
299
303
|
const drawingIndex = drawingOrder.indexOf(blockId);
|
|
300
304
|
if (drawings[blockId]) rawActions.push(jsonX.removeOp([
|
|
301
305
|
...prefix,
|
|
@@ -448,14 +452,16 @@ const UpdateDrawingDocTransformCommand = {
|
|
|
448
452
|
const source = findDocDrawing(snapshot, drawingId);
|
|
449
453
|
if (!source) return false;
|
|
450
454
|
const oldDrawing = source.drawing;
|
|
451
|
-
const
|
|
455
|
+
const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
|
|
456
|
+
const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
|
|
452
457
|
if (!_univerjs_core.Tools.diffValue(oldValue, value)) {
|
|
453
|
-
const path =
|
|
458
|
+
const path = isImageProperty ? [...source.path, key] : [
|
|
454
459
|
...source.path,
|
|
455
460
|
"docTransform",
|
|
456
461
|
key
|
|
457
462
|
];
|
|
458
|
-
|
|
463
|
+
const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
|
|
464
|
+
actions.push(action);
|
|
459
465
|
}
|
|
460
466
|
}
|
|
461
467
|
return Boolean(commandService.syncExecuteCommand(_univerjs_docs.RichTextEditingMutation.id, {
|
|
@@ -580,7 +586,7 @@ var DocDrawingService = class extends _univerjs_drawing.UnitDrawingService {};
|
|
|
580
586
|
const IDocDrawingService = (0, _univerjs_core.createIdentifier)("univer.doc.plugin.doc-drawing.service");
|
|
581
587
|
|
|
582
588
|
//#endregion
|
|
583
|
-
//#region \0@oxc-project+runtime@0.
|
|
589
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
584
590
|
function __decorateParam(paramIndex, decorator) {
|
|
585
591
|
return function(target, key) {
|
|
586
592
|
decorator(target, key, paramIndex);
|
|
@@ -588,7 +594,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
588
594
|
}
|
|
589
595
|
|
|
590
596
|
//#endregion
|
|
591
|
-
//#region \0@oxc-project+runtime@0.
|
|
597
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
592
598
|
function __decorate(decorators, target, key, desc) {
|
|
593
599
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
594
600
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -734,7 +740,7 @@ DocDrawingController = __decorate([
|
|
|
734
740
|
//#endregion
|
|
735
741
|
//#region package.json
|
|
736
742
|
var name = "@univerjs/docs-drawing";
|
|
737
|
-
var version = "1.0.
|
|
743
|
+
var version = "1.0.1";
|
|
738
744
|
|
|
739
745
|
//#endregion
|
|
740
746
|
//#region src/config/config.ts
|
package/lib/es/facade.js
CHANGED
|
@@ -490,7 +490,8 @@ var FDocumentImageMixin = class extends FDocument {
|
|
|
490
490
|
return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
|
|
491
491
|
}
|
|
492
492
|
getImages() {
|
|
493
|
-
const
|
|
493
|
+
const documentDataModel = this.getDocumentDataModel();
|
|
494
|
+
const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(documentDataModel.getSnapshot());
|
|
494
495
|
return drawingIds.filter((drawingId) => {
|
|
495
496
|
var _drawings$drawingId;
|
|
496
497
|
return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === DrawingTypeEnum.DRAWING_IMAGE;
|
package/lib/es/index.js
CHANGED
|
@@ -67,7 +67,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
//#endregion
|
|
70
|
-
//#region \0@oxc-project+runtime@0.
|
|
70
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
71
71
|
function _typeof(o) {
|
|
72
72
|
"@babel/helpers - typeof";
|
|
73
73
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -78,7 +78,7 @@ function _typeof(o) {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
|
-
//#region \0@oxc-project+runtime@0.
|
|
81
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
82
82
|
function toPrimitive(t, r) {
|
|
83
83
|
if ("object" != _typeof(t) || !t) return t;
|
|
84
84
|
var e = t[Symbol.toPrimitive];
|
|
@@ -91,14 +91,14 @@ function toPrimitive(t, r) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
//#endregion
|
|
94
|
-
//#region \0@oxc-project+runtime@0.
|
|
94
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
95
95
|
function toPropertyKey(t) {
|
|
96
96
|
var i = toPrimitive(t, "string");
|
|
97
97
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
//#endregion
|
|
101
|
-
//#region \0@oxc-project+runtime@0.
|
|
101
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
102
102
|
function _defineProperty(e, r, t) {
|
|
103
103
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
104
104
|
value: t,
|
|
@@ -228,12 +228,17 @@ const RemoveDocDrawingCommand = {
|
|
|
228
228
|
if (removeCustomBlocks.length === 0) return false;
|
|
229
229
|
const drawings = source.drawings ?? {};
|
|
230
230
|
const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
|
|
231
|
-
const
|
|
231
|
+
const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
|
|
232
|
+
let previousSize = -1;
|
|
233
|
+
while (previousSize !== removeIds.size) {
|
|
234
|
+
previousSize = removeIds.size;
|
|
235
|
+
for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
|
|
236
|
+
}
|
|
237
|
+
const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
|
|
232
238
|
const resourceRedoMutations = [];
|
|
233
239
|
const resourceUndoMutations = [];
|
|
234
240
|
const resourceMutationGroups = [];
|
|
235
|
-
for (const
|
|
236
|
-
const { blockId } = block;
|
|
241
|
+
for (const blockId of removeIds) {
|
|
237
242
|
const drawing = drawings[blockId];
|
|
238
243
|
if (drawing == null) continue;
|
|
239
244
|
const removeDrawingParam = removeDrawingParamById.get(blockId);
|
|
@@ -292,9 +297,8 @@ const RemoveDocDrawingCommand = {
|
|
|
292
297
|
}
|
|
293
298
|
rawActions.push(jsonX.editOp(textX.serialize(), getRichTextEditPath(documentDataModel, segmentId)));
|
|
294
299
|
const drawingOrder = source.drawingsOrder ?? [];
|
|
295
|
-
const
|
|
296
|
-
for (const
|
|
297
|
-
const { blockId } = block;
|
|
300
|
+
const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
|
|
301
|
+
for (const blockId of resourceIds) {
|
|
298
302
|
const drawingIndex = drawingOrder.indexOf(blockId);
|
|
299
303
|
if (drawings[blockId]) rawActions.push(jsonX.removeOp([
|
|
300
304
|
...prefix,
|
|
@@ -447,14 +451,16 @@ const UpdateDrawingDocTransformCommand = {
|
|
|
447
451
|
const source = findDocDrawing(snapshot, drawingId);
|
|
448
452
|
if (!source) return false;
|
|
449
453
|
const oldDrawing = source.drawing;
|
|
450
|
-
const
|
|
454
|
+
const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
|
|
455
|
+
const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
|
|
451
456
|
if (!Tools.diffValue(oldValue, value)) {
|
|
452
|
-
const path =
|
|
457
|
+
const path = isImageProperty ? [...source.path, key] : [
|
|
453
458
|
...source.path,
|
|
454
459
|
"docTransform",
|
|
455
460
|
key
|
|
456
461
|
];
|
|
457
|
-
|
|
462
|
+
const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
|
|
463
|
+
actions.push(action);
|
|
458
464
|
}
|
|
459
465
|
}
|
|
460
466
|
return Boolean(commandService.syncExecuteCommand(RichTextEditingMutation.id, {
|
|
@@ -579,7 +585,7 @@ var DocDrawingService = class extends UnitDrawingService {};
|
|
|
579
585
|
const IDocDrawingService = createIdentifier("univer.doc.plugin.doc-drawing.service");
|
|
580
586
|
|
|
581
587
|
//#endregion
|
|
582
|
-
//#region \0@oxc-project+runtime@0.
|
|
588
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
583
589
|
function __decorateParam(paramIndex, decorator) {
|
|
584
590
|
return function(target, key) {
|
|
585
591
|
decorator(target, key, paramIndex);
|
|
@@ -587,7 +593,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
587
593
|
}
|
|
588
594
|
|
|
589
595
|
//#endregion
|
|
590
|
-
//#region \0@oxc-project+runtime@0.
|
|
596
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
591
597
|
function __decorate(decorators, target, key, desc) {
|
|
592
598
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
593
599
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -733,7 +739,7 @@ DocDrawingController = __decorate([
|
|
|
733
739
|
//#endregion
|
|
734
740
|
//#region package.json
|
|
735
741
|
var name = "@univerjs/docs-drawing";
|
|
736
|
-
var version = "1.0.
|
|
742
|
+
var version = "1.0.1";
|
|
737
743
|
|
|
738
744
|
//#endregion
|
|
739
745
|
//#region src/config/config.ts
|
package/lib/facade.js
CHANGED
|
@@ -490,7 +490,8 @@ var FDocumentImageMixin = class extends FDocument {
|
|
|
490
490
|
return this._injector.createInstance(FDocumentImage, this, imageId, this._injector);
|
|
491
491
|
}
|
|
492
492
|
getImages() {
|
|
493
|
-
const
|
|
493
|
+
const documentDataModel = this.getDocumentDataModel();
|
|
494
|
+
const { drawings, drawingsOrder: drawingIds } = collectDocDrawings(documentDataModel.getSnapshot());
|
|
494
495
|
return drawingIds.filter((drawingId) => {
|
|
495
496
|
var _drawings$drawingId;
|
|
496
497
|
return ((_drawings$drawingId = drawings[drawingId]) === null || _drawings$drawingId === void 0 ? void 0 : _drawings$drawingId.drawingType) === DrawingTypeEnum.DRAWING_IMAGE;
|
package/lib/index.js
CHANGED
|
@@ -67,7 +67,7 @@ function resolveDocDrawingInsertTextRange(accessor, unitId, textRange) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
//#endregion
|
|
70
|
-
//#region \0@oxc-project+runtime@0.
|
|
70
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
71
71
|
function _typeof(o) {
|
|
72
72
|
"@babel/helpers - typeof";
|
|
73
73
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -78,7 +78,7 @@ function _typeof(o) {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
|
-
//#region \0@oxc-project+runtime@0.
|
|
81
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPrimitive.js
|
|
82
82
|
function toPrimitive(t, r) {
|
|
83
83
|
if ("object" != _typeof(t) || !t) return t;
|
|
84
84
|
var e = t[Symbol.toPrimitive];
|
|
@@ -91,14 +91,14 @@ function toPrimitive(t, r) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
//#endregion
|
|
94
|
-
//#region \0@oxc-project+runtime@0.
|
|
94
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/toPropertyKey.js
|
|
95
95
|
function toPropertyKey(t) {
|
|
96
96
|
var i = toPrimitive(t, "string");
|
|
97
97
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
//#endregion
|
|
101
|
-
//#region \0@oxc-project+runtime@0.
|
|
101
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/defineProperty.js
|
|
102
102
|
function _defineProperty(e, r, t) {
|
|
103
103
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
104
104
|
value: t,
|
|
@@ -228,12 +228,17 @@ const RemoveDocDrawingCommand = {
|
|
|
228
228
|
if (removeCustomBlocks.length === 0) return false;
|
|
229
229
|
const drawings = source.drawings ?? {};
|
|
230
230
|
const removeDrawingParamById = new Map(removeDrawings.map((drawing) => [drawing.drawingId, drawing]));
|
|
231
|
-
const
|
|
231
|
+
const removeIds = new Set(removeCustomBlocks.map((block) => block.blockId));
|
|
232
|
+
let previousSize = -1;
|
|
233
|
+
while (previousSize !== removeIds.size) {
|
|
234
|
+
previousSize = removeIds.size;
|
|
235
|
+
for (const drawing of Object.values(drawings)) if (drawing.groupId && removeIds.has(drawing.groupId)) removeIds.add(drawing.drawingId);
|
|
236
|
+
}
|
|
237
|
+
const removeDrawingSnapshots = [...removeIds].map((id) => drawings[id]).filter((drawing) => drawing != null);
|
|
232
238
|
const resourceRedoMutations = [];
|
|
233
239
|
const resourceUndoMutations = [];
|
|
234
240
|
const resourceMutationGroups = [];
|
|
235
|
-
for (const
|
|
236
|
-
const { blockId } = block;
|
|
241
|
+
for (const blockId of removeIds) {
|
|
237
242
|
const drawing = drawings[blockId];
|
|
238
243
|
if (drawing == null) continue;
|
|
239
244
|
const removeDrawingParam = removeDrawingParamById.get(blockId);
|
|
@@ -292,9 +297,8 @@ const RemoveDocDrawingCommand = {
|
|
|
292
297
|
}
|
|
293
298
|
rawActions.push(jsonX.editOp(textX.serialize(), getRichTextEditPath(documentDataModel, segmentId)));
|
|
294
299
|
const drawingOrder = source.drawingsOrder ?? [];
|
|
295
|
-
const
|
|
296
|
-
for (const
|
|
297
|
-
const { blockId } = block;
|
|
300
|
+
const resourceIds = [...removeIds].sort((left, right) => drawingOrder.indexOf(right) - drawingOrder.indexOf(left));
|
|
301
|
+
for (const blockId of resourceIds) {
|
|
298
302
|
const drawingIndex = drawingOrder.indexOf(blockId);
|
|
299
303
|
if (drawings[blockId]) rawActions.push(jsonX.removeOp([
|
|
300
304
|
...prefix,
|
|
@@ -447,14 +451,16 @@ const UpdateDrawingDocTransformCommand = {
|
|
|
447
451
|
const source = findDocDrawing(snapshot, drawingId);
|
|
448
452
|
if (!source) return false;
|
|
449
453
|
const oldDrawing = source.drawing;
|
|
450
|
-
const
|
|
454
|
+
const isImageProperty = key === "srcRect" || key === "prstGeom" || key === "adjustValues";
|
|
455
|
+
const oldValue = isImageProperty ? key in oldDrawing ? Reflect.get(oldDrawing, key) : void 0 : oldDrawing === null || oldDrawing === void 0 || (_oldDrawing$docTransf = oldDrawing.docTransform) === null || _oldDrawing$docTransf === void 0 ? void 0 : _oldDrawing$docTransf[key];
|
|
451
456
|
if (!Tools.diffValue(oldValue, value)) {
|
|
452
|
-
const path =
|
|
457
|
+
const path = isImageProperty ? [...source.path, key] : [
|
|
453
458
|
...source.path,
|
|
454
459
|
"docTransform",
|
|
455
460
|
key
|
|
456
461
|
];
|
|
457
|
-
|
|
462
|
+
const action = oldValue === void 0 ? jsonX.insertOp(path, value) : jsonX.replaceOp(path, oldValue, value);
|
|
463
|
+
actions.push(action);
|
|
458
464
|
}
|
|
459
465
|
}
|
|
460
466
|
return Boolean(commandService.syncExecuteCommand(RichTextEditingMutation.id, {
|
|
@@ -579,7 +585,7 @@ var DocDrawingService = class extends UnitDrawingService {};
|
|
|
579
585
|
const IDocDrawingService = createIdentifier("univer.doc.plugin.doc-drawing.service");
|
|
580
586
|
|
|
581
587
|
//#endregion
|
|
582
|
-
//#region \0@oxc-project+runtime@0.
|
|
588
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateParam.js
|
|
583
589
|
function __decorateParam(paramIndex, decorator) {
|
|
584
590
|
return function(target, key) {
|
|
585
591
|
decorator(target, key, paramIndex);
|
|
@@ -587,7 +593,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
587
593
|
}
|
|
588
594
|
|
|
589
595
|
//#endregion
|
|
590
|
-
//#region \0@oxc-project+runtime@0.
|
|
596
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
|
|
591
597
|
function __decorate(decorators, target, key, desc) {
|
|
592
598
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
593
599
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -733,7 +739,7 @@ DocDrawingController = __decorate([
|
|
|
733
739
|
//#endregion
|
|
734
740
|
//#region package.json
|
|
735
741
|
var name = "@univerjs/docs-drawing";
|
|
736
|
-
var version = "1.0.
|
|
742
|
+
var version = "1.0.1";
|
|
737
743
|
|
|
738
744
|
//#endregion
|
|
739
745
|
//#region src/config/config.ts
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import type { ICommand, IObjectPositionH, IObjectPositionV, ISize, ISrcRect, Nullable } from '@univerjs/core';
|
|
17
|
+
import type { IDocImage } from '../../services/doc-drawing.service';
|
|
17
18
|
export interface IDrawingDocTransform {
|
|
18
19
|
drawingId: string;
|
|
19
|
-
key: 'size' | 'angle' | 'positionH' | 'positionV' | 'flipX' | 'flipY' | 'srcRect';
|
|
20
|
-
value: ISize | number | boolean | IObjectPositionH | IObjectPositionV | Nullable<ISrcRect
|
|
20
|
+
key: 'size' | 'angle' | 'positionH' | 'positionV' | 'flipX' | 'flipY' | 'srcRect' | 'prstGeom' | 'adjustValues';
|
|
21
|
+
value: ISize | number | boolean | IObjectPositionH | IObjectPositionV | Nullable<ISrcRect> | IDocImage['prstGeom'] | IDocImage['adjustValues'];
|
|
21
22
|
}
|
|
22
23
|
export interface IUpdateDrawingDocTransformCommandParams {
|
|
23
24
|
unitId: string;
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class extends o.FBase{constructor(e,t,n){super(),this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.size)??null}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionH)??null}getPositionV(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionV)??null}getImageData(){var e;let n=(e=(0,r.findDocDrawing)(this._document.getDocumentDataModel().getSnapshot(),this._imageId))==null?void 0:e.drawing;return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={},notes:r={}}=this._document.getDocumentDataModel().getSnapshot(),i=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(r).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of i){var a;let n=t==null||(a=t.customBlocks)==null?void 0:a.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){let i=this.getId(),a=(0,t.generateRandomId)(6),o=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),c=(0,n.buildDocTransform)(o.width,o.height),u=e.wrappingStyle??r.TextWrappingStyle.INLINE,d={...c,angle:e.angle??c.angle,positionH:e.positionH??c.positionH,positionV:e.positionV??c.positionV},f=(0,n.docDrawingPositionToTransform)(d),p={unitId:i,subUnitId:i,drawingId:a,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:f,docTransform:d,behindDoc:u===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[u],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:i,drawings:[p],textRange:e.textRange})?this._injector.createInstance(s,this,a,this._injector):null}getImage(e){var n;let i=(n=(0,r.findDocDrawing)(this.getDocumentDataModel().getSnapshot(),e))==null?void 0:n.drawing;return!i||i.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){let{drawings:
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/docs-drawing"),require("@univerjs/docs/facade"),require("@univerjs/drawing"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/docs-drawing`,`@univerjs/docs/facade`,`@univerjs/drawing`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawingFacade={},e.UniverCore,e.UniverDocs,e.UniverDocsDrawing,e.UniverDocsFacade,e.UniverDrawing,e.UniverCoreFacade))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var s=class extends o.FBase{constructor(e,t,n){super(),this._document=e,this._imageId=t,this._injector=n}getUnitId(){return this._document.getId()}getId(){return this._imageId}getSource(){var e;return(e=this.getImageData())==null?void 0:e.source}getSourceType(){var e;return(e=this.getImageData())==null?void 0:e.imageSourceType}getSize(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.size)??null}getAngle(){var e;return(e=this.getImageData())==null?void 0:e.docTransform.angle}getPositionH(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionH)??null}getPositionV(){var e;return((e=this.getImageData())==null?void 0:e.docTransform.positionV)??null}getImageData(){var e;let n=(e=(0,r.findDocDrawing)(this._document.getDocumentDataModel().getSnapshot(),this._imageId))==null?void 0:e.drawing;return!n||n.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:n}setSize(e,t){return this._updateTransform(`size`,{width:e,height:t})}setRotate(e){return this._updateTransform(`angle`,e)}setPositionH(e){return this._updateTransform(`positionH`,e)}setPositionV(e){return this._updateTransform(`positionV`,e)}setWrappingStyle(e){let n=this.getImageData();return n?this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDocDrawingWrappingStyleCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[n],wrappingStyle:e}):!1}setForward(){return this._arrange(t.ArrangeTypeEnum.forward)}setBackward(){return this._arrange(t.ArrangeTypeEnum.backward)}setBack(){return this._arrange(t.ArrangeTypeEnum.back)}setFront(){return this._arrange(t.ArrangeTypeEnum.front)}remove(){let e=this.getImageData(),n=this._getTextRange();return!e||!n?!1:this._injector.get(t.ICommandService).syncExecuteCommand(r.RemoveDocDrawingCommand.id,{unitId:this.getUnitId(),drawings:[{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingId:this._imageId,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE}],textRange:n})}_updateTransform(e,n){return this._injector.get(t.ICommandService).syncExecuteCommand(r.UpdateDrawingDocTransformCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawings:[{drawingId:this._imageId,key:e,value:n}]})}_arrange(e){return this._injector.get(t.ICommandService).syncExecuteCommand(r.SetDocDrawingArrangeCommand.id,{unitId:this.getUnitId(),subUnitId:this.getUnitId(),drawingIds:[this._imageId],arrangeType:e})}_getTextRange(){let{body:e,headers:t={},footers:n={},notes:r={}}=this._document.getDocumentDataModel().getSnapshot(),i=[{segmentId:``,body:e},...Object.entries(t).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(n).map(([e,t])=>({segmentId:e,body:t.body})),...Object.entries(r).map(([e,t])=>({segmentId:e,body:t.body}))];for(let{segmentId:e,body:t}of i){var a;let n=t==null||(a=t.customBlocks)==null?void 0:a.find(e=>e.blockId===this._imageId);if(n)return{startOffset:n.startIndex,endOffset:n.startIndex,collapsed:!0,segmentId:e}}return null}},c=class extends i.FDocument{async insertImage(e){let i=this.getId(),a=(0,t.generateRandomId)(6),o=e.width!=null&&e.height!=null?{width:e.width,height:e.height}:l(await this._getIntrinsicSize(e.source,e.imageSourceType),e),c=(0,n.buildDocTransform)(o.width,o.height),u=e.wrappingStyle??r.TextWrappingStyle.INLINE,d={...c,angle:e.angle??c.angle,positionH:e.positionH??c.positionH,positionV:e.positionV??c.positionV},f=(0,n.docDrawingPositionToTransform)(d),p={unitId:i,subUnitId:i,drawingId:a,drawingType:t.DrawingTypeEnum.DRAWING_IMAGE,imageSourceType:e.imageSourceType,source:e.source,transform:f,docTransform:d,behindDoc:u===r.TextWrappingStyle.BEHIND_TEXT?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE,title:``,description:``,layoutType:r.WRAPPING_STYLE_TO_LAYOUT_TYPE[u],wrapText:t.WrapTextType.BOTH_SIDES,distB:0,distL:0,distR:0,distT:0};return this._injector.get(t.ICommandService).syncExecuteCommand(r.InsertDocDrawingCommand.id,{unitId:i,drawings:[p],textRange:e.textRange})?this._injector.createInstance(s,this,a,this._injector):null}getImage(e){var n;let i=(n=(0,r.findDocDrawing)(this.getDocumentDataModel().getSnapshot(),e))==null?void 0:n.drawing;return!i||i.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE?null:this._injector.createInstance(s,this,e,this._injector)}getImages(){let e=this.getDocumentDataModel(),{drawings:n,drawingsOrder:i}=(0,r.collectDocDrawings)(e.getSnapshot());return i.filter(e=>{var r;return((r=n[e])==null?void 0:r.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE}).map(e=>this._injector.createInstance(s,this,e,this._injector))}async _getIntrinsicSize(e,n){let r=this._injector.has(t.IImageIoService)?this._injector.get(t.IImageIoService):null,i=e;if(n===t.ImageSourceType.UUID&&r)i=await r.getImage(e);else if(n===t.ImageSourceType.URL&&this._injector.has(t.IURLImageService))try{i=await this._injector.get(t.IURLImageService).getImage(e)}catch{i=e}let{width:o,height:s,image:c}=await(0,a.getImageSize)(i);return r==null||r.addImageSourceCache(e,n,c),{width:o,height:s}}};function l(e,t){let{width:n,height:r}=e;if(t.width!=null&&t.height!=null)return{width:t.width,height:t.height};if(t.width!=null)return{width:t.width,height:r*t.width/n};if(t.height!=null)return{width:n*t.height/r,height:t.height};let i=Math.min(1,a.DRAWING_IMAGE_WIDTH_LIMIT/n,a.DRAWING_IMAGE_HEIGHT_LIMIT/r);return{width:n*i,height:r*i}}i.FDocument.extend(c);var u=class extends o.FEnum{get TextWrappingStyle(){return r.TextWrappingStyle}get DocsImageRelativeFromH(){return t.ObjectRelativeFromH}get DocsImageRelativeFromV(){return t.ObjectRelativeFromV}};o.FEnum.extend(u),e.FDocumentImage=s});
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))!i.drawings||Object.keys(i.drawings).length===0||(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=A.map(e=>j[e.blockId]).filter(e=>e!=null),P=[],F=[],I=[];for(let e of A){let{blockId:t}=e,n=j[t];if(n==null)continue;let r=M.get(t),i=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(r==null?void 0:r.subUnitId)??p,drawing:n,removeDrawings:N});(i.redoMutations.length!==0||i.undoMutations.length!==0)&&(P.push(...i.redoMutations),F.push(...i.undoMutations),I.push(i))}if(!g(I,o))return!1;let L=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,R=null;(P.length>0||F.length>0)&&(R=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:P,undoMutations:F,id:L}));let z=new t.MemoryCursor,B=A[0].startIndex,V=[{startOffset:B,endOffset:B}],H=h(m),U={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:V,historyActions:H}},W=[];for(let e of A){let{startIndex:n}=e;n>z.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-z.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),z.moveCursorTo(n+1)}W.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let G=T.drawingsOrder??[],K=[...A].sort((e,t)=>G.indexOf(t.blockId)-G.indexOf(e.blockId));for(let e of K){let{blockId:t}=e,n=G.indexOf(t);j[t]&&W.push(O.removeOp([...E,`drawings`,t],j[t])),n>=0&&W.push(O.removeOp([...E,`drawingsOrder`,n],t))}U.params.actions=W.reduce((e,n)=>t.JSONX.compose(e,n),null);let q=o.syncExecuteCommand(U.id,U.params);return!q&&R!=null?(R.dispose(),s.rollback(L,p),!1):(R==null||R.dispose(),!!q)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`?a==null?void 0:a.srcRect:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(o,r)){let e=n===`srcRect`?[...i.path,n]:[...i.path,`docTransform`,n];p.push(o===void 0?d.insertOp(e,r):d.replaceOp(e,o,r))}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.0-rc.0`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/docs"),require("@univerjs/drawing")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs`,`@univerjs/drawing`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverDocsDrawing={},e.UniverCore,e.UniverDocs,e.UniverDrawing))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i={id:`doc.command.insert-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,o,s,c;if(!r)return!1;let l=e.get(t.ICommandService),u=e.get(t.IUniverInstanceService),{unitId:d,drawings:f,textRange:p}=r,m=u.getUnit(d,t.UniverInstanceType.UNIVER_DOC);if(!m)return!1;let h=a(e,d,p);if(!h)return!1;let{segmentId:g=``}=h;if(!((i=m.getSelfOrHeaderFooterModel(g))!=null&&i.getBody()))return!1;let _=m.getSnapshot(),v=!!((o=_.notes)!=null&&o[g]);if(v&&f.some(e=>e.drawingType!==t.DrawingTypeEnum.DRAWING_IMAGE))return!1;let y=(s=_.headers)!=null&&s[g]||(c=_.footers)!=null&&c[g]?f.map(e=>({...e,isMultiTransform:t.BooleanNumber.TRUE,transforms:e.transforms??(e.transform?[e.transform]:null)})):f;v&&(y=f.map(e=>({...e,layoutType:t.PositionedObjectLayoutType.INLINE})));let b=t.BuildTextUtils.drawing.add({selection:h,documentDataModel:m,drawings:y});if(!b)return!1;let x={id:n.RichTextEditingMutation.id,params:{unitId:d,segmentId:g,actions:[],textRanges:[]}};return x.params.actions=b,!!l.syncExecuteCommand(x.id,x.params)}};function a(e,t,r){let i=e.get(n.DocSelectionManagerService).getActiveTextRange(),a=(r?(0,n.normalizeTextRange)(r):null)??(0,n.getContentInsertRange)(e,t);return a?{...i,startOffset:a.startOffset,endOffset:a.endOffset,collapsed:a.startOffset===a.endOffset,segmentId:a.segmentId??(i==null?void 0:i.segmentId)??``}:i??null}function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let u=(0,t.createIdentifier)(`doc.drawing-adapter.service`);var d=class{constructor(){l(this,`_adapters`,[])}registerAdapter(e){return this._adapters.push(e),(0,t.toDisposable)(()=>{let t=this._adapters.indexOf(e);t>=0&&this._adapters.splice(t,1)})}getRemoveDrawingMutationInfos(e){let t={redoMutations:[],undoMutations:[]};for(let r of this._adapters){var n;let i=(n=r.getRemoveDrawingMutationInfos)==null?void 0:n.call(r,e);i&&(t.redoMutations.push(...i.redoMutations),t.undoMutations.push(...i.undoMutations))}return t}getEditDrawingCommandInfo(e){for(let n of this._adapters){var t;let r=(t=n.getEditDrawingCommandInfo)==null?void 0:t.call(n,e);if(r)return r}return null}};function f(e,t){var n;let r=(n=e.drawings)==null?void 0:n[t];if(r)return{drawing:r,path:[`drawings`,t],segmentId:``};for(let[n,r]of Object.entries(e.notes??{})){var i;let e=(i=r.drawings)==null?void 0:i[t];if(e)return{drawing:e,path:[`notes`,n,`drawings`,t],segmentId:n}}}function p(e){let t=e.drawings??{},n=e.drawingsOrder??Object.keys(t),r=!1;for(let i of Object.values(e.notes??{}))i.drawings&&Object.keys(i.drawings).length!==0&&(r||=(t={...t},n=[...n],!0),Object.assign(t,i.drawings),n.push(...i.drawingsOrder??Object.keys(i.drawings)));return{drawings:t,drawingsOrder:n}}let m={id:`doc.command.remove-doc-image`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i,a;if(!r)return!1;let o=e.get(t.ICommandService),s=e.get(t.IUndoRedoService),c=e.get(u),l=e.get(t.IUniverInstanceService),d=e.get(n.DocSelectionManagerService),{unitId:p,drawings:m,textRange:_}=r,v=l.getUnit(p,t.UniverInstanceType.UNIVER_DOC);if(!v||m.length===0)return!1;let y=d.getActiveTextRange(),b=(_?(0,n.normalizeTextRange)(_):null)??(0,n.getContentInsertRange)(e,p),x=v.getSnapshot(),S=m.map(({drawingId:e})=>{var t;return((t=f(x,e))==null?void 0:t.segmentId)??``});if(S.some(e=>e!==S[0]))return!1;let C=S[0]||((b==null?void 0:b.segmentId)??(y==null?void 0:y.segmentId)??``),w=(i=x.notes)==null?void 0:i[C],T=w??x,E=w?[`notes`,C]:[],D=new t.TextX,O=t.JSONX.getInstance(),k=((a=v.getSelfOrHeaderFooterModel(C))==null||(a=a.getBody())==null?void 0:a.customBlocks)??[],A=m.map(e=>k.find(t=>t.blockId===e.drawingId)).filter(e=>!!e).sort((e,t)=>e.startIndex>t.startIndex?1:-1);if(A.length===0)return!1;let j=T.drawings??{},M=new Map(m.map(e=>[e.drawingId,e])),N=new Set(A.map(e=>e.blockId)),P=-1;for(;P!==N.size;){P=N.size;for(let e of Object.values(j))e.groupId&&N.has(e.groupId)&&N.add(e.drawingId)}let F=[...N].map(e=>j[e]).filter(e=>e!=null),I=[],L=[],R=[];for(let e of N){let t=j[e];if(t==null)continue;let n=M.get(e),r=c.getRemoveDrawingMutationInfos({unitId:p,subUnitId:(n==null?void 0:n.subUnitId)??p,drawing:t,removeDrawings:F});(r.redoMutations.length!==0||r.undoMutations.length!==0)&&(I.push(...r.redoMutations),L.push(...r.undoMutations),R.push(r))}if(!g(R,o))return!1;let z=`doc-drawing-remove-resource:${p}:${A.map(e=>e.blockId).join(`,`)}`,B=null;(I.length>0||L.length>0)&&(B=s.__tempBatchingUndoRedo(p),s.pushUndoRedo({unitID:p,redoMutations:I,undoMutations:L,id:z}));let V=new t.MemoryCursor,H=A[0].startIndex,U=[{startOffset:H,endOffset:H}],W=h(m),G={id:n.RichTextEditingMutation.id,params:{unitId:p,segmentId:C,actions:[],textRanges:U,historyActions:W}},K=[];for(let e of A){let{startIndex:n}=e;n>V.cursor&&D.push({t:t.TextXActionType.RETAIN,len:n-V.cursor}),D.push({t:t.TextXActionType.DELETE,len:1}),V.moveCursorTo(n+1)}K.push(O.editOp(D.serialize(),(0,t.getRichTextEditPath)(v,C)));let q=T.drawingsOrder??[],J=[...N].sort((e,t)=>q.indexOf(t)-q.indexOf(e));for(let e of J){let t=q.indexOf(e);j[e]&&K.push(O.removeOp([...E,`drawings`,e],j[e])),t>=0&&K.push(O.removeOp([...E,`drawingsOrder`,t],e))}G.params.actions=K.reduce((e,n)=>t.JSONX.compose(e,n),null);let Y=o.syncExecuteCommand(G.id,G.params);return!Y&&B!=null?(B.dispose(),s.rollback(z,p),!1):(B==null||B.dispose(),!!Y)}};function h(e){let r=e.flatMap(e=>{switch(e.drawingType){case t.DrawingTypeEnum.DRAWING_IMAGE:return[n.DocHistoryAction.DeleteImage];case t.DrawingTypeEnum.DRAWING_SHAPE:return[n.DocHistoryAction.DeleteShape];case t.DrawingTypeEnum.DRAWING_CHART:return[n.DocHistoryAction.DeleteChart];default:return[]}});return[...new Set(r)]}function g(e,t){let n=[];for(let r of e){if(!v(r.redoMutations,t))return _([...n].reverse(),t),!1;n.push(r.undoMutations)}return!0}function _(e,t){e.forEach(e=>v(e,t))}function v(e,t){for(let n of e)if(!t.syncExecuteCommand(n.id,n.params))return!1;return!0}let y=`drawingsOrder`;function b(e,n,r){let i=new Set(n.filter(t=>e.includes(t))),a=[...e];if(i.size===0)return a;if(r===t.ArrangeTypeEnum.forward)for(let e=a.length-2;e>=0;e--)i.has(a[e])&&!i.has(a[e+1])&&([a[e],a[e+1]]=[a[e+1],a[e]]);else if(r===t.ArrangeTypeEnum.backward)for(let e=1;e<a.length;e++)i.has(a[e])&&!i.has(a[e-1])&&([a[e],a[e-1]]=[a[e-1],a[e]]);else if(r===t.ArrangeTypeEnum.front||r===t.ArrangeTypeEnum.back){let e=a.filter(e=>i.has(e)),n=a.filter(e=>!i.has(e));return r===t.ArrangeTypeEnum.front?[...n,...e]:[...e,...n]}return a}function x(e,n,r){if(n.length!==1)return[...e];let i=[...e],a=i.indexOf(n[0]);if(a<0)return i;let[o]=i.splice(a,1),s=(0,t.normalizeDrawingOrderIndex)(r,e.length);return i.splice(s,0,o),i}function S(e,n){let r=t.JSONX.getInstance(),i=[...e],a=[];for(let e=0;e<n.length;e++){let t=n[e],o=i.indexOf(t);if(o<0||o===e)continue;let s=r.moveOp([y,o],[y,e]);s&&a.push(s),i.splice(o,1),i.splice(e,0,t)}return a.reduce((e,n)=>t.JSONX.compose(e,n),null)}let C={id:`doc.command.set-drawing-arrange`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(t.ICommandService);if(r==null)return!1;let{unitId:a,drawingIds:o}=r,s=e.get(t.IUniverInstanceService).getUnit(a,t.UniverInstanceType.UNIVER_DOC),c=s==null?void 0:s.getDrawingsOrder();if(!c)return!1;let l=S(c,r.zOrder===void 0?b(c,o,r.arrangeType):x(c,o,r.zOrder));return!t.JSONX.isNoop(l)&&!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:a,actions:l,textRanges:null})}},w={id:`doc.command.update-drawing-doc-transform`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.ICommandService),a=e.get(t.IUniverInstanceService),{unitId:o,drawings:s}=r,c=a.getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot(),u=s.length>0&&s.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let{drawingId:e,key:n,value:r}of s){var m;let i=f(l,e);if(!i)return!1;let a=i.drawing,o=n===`srcRect`||n===`prstGeom`||n===`adjustValues`,s=o?n in a?Reflect.get(a,n):void 0:a==null||(m=a.docTransform)==null?void 0:m[n];if(!t.Tools.diffValue(s,r)){let e=o?[...i.path,n]:[...i.path,`docTransform`,n],t=s===void 0?d.insertOp(e,r):d.replaceOp(e,s,r);p.push(t)}}return!!i.syncExecuteCommand(n.RichTextEditingMutation.id,{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null,debounce:!0})}},T=function(e){return e.INLINE=`inline`,e.BEHIND_TEXT=`behindText`,e.IN_FRONT_OF_TEXT=`inFrontOfText`,e.WRAP_SQUARE=`wrapSquare`,e.WRAP_TOP_AND_BOTTOM=`wrapTopAndBottom`,e}({}),E={inline:t.PositionedObjectLayoutType.INLINE,wrapSquare:t.PositionedObjectLayoutType.WRAP_SQUARE,wrapTopAndBottom:t.PositionedObjectLayoutType.WRAP_TOP_AND_BOTTOM,inFrontOfText:t.PositionedObjectLayoutType.WRAP_NONE,behindText:t.PositionedObjectLayoutType.WRAP_NONE},D={id:`doc.command.update-doc-drawing-wrapping-style`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{drawings:i,wrappingStyle:a,unitId:o}=r,s=e.get(t.ICommandService),c=e.get(t.IUniverInstanceService).getUnit(o,t.UniverInstanceType.UNIVER_DOC);if(!c)return!1;let l=c.getSnapshot();if(a!==`inline`&&i.some(({drawingId:e})=>{var t;return(t=f(l,e))==null?void 0:t.segmentId}))return!1;let u=i.length>0&&i.every(({drawingId:e})=>{var n;return((n=f(l,e))==null?void 0:n.drawing.drawingType)===t.DrawingTypeEnum.DRAWING_IMAGE})?n.DocHistoryAction.UpdateImage:void 0,d=t.JSONX.getInstance(),p=[];for(let e of i){let n=f(l,e.drawingId),r=n==null?void 0:n.drawing;if(!r||!n)continue;let i=E[a];if(r.layoutType!==i&&p.push(d.replaceOp([...n.path,`layoutType`],r.layoutType,i)),a===`behindText`||a===`inFrontOfText`){let e=a===`behindText`?t.BooleanNumber.TRUE:t.BooleanNumber.FALSE;r.behindDoc!==e&&p.push(d.replaceOp([...n.path,`behindDoc`],r.behindDoc,e))}if(a!==`inline`)for(let i of[`positionH`,`positionV`]){var m;let a=(m=e.docTransform)==null?void 0:m[i],o=r.docTransform[i];a&&!t.Tools.diffValue(o,a)&&p.push(d.replaceOp([...n.path,`docTransform`,i],o,a))}}let h={id:n.RichTextEditingMutation.id,params:{unitId:o,historyAction:u,actions:p.reduce((e,n)=>t.JSONX.compose(e,n),null),textRanges:null}};return!!s.syncExecuteCommand(h.id,h.params)}};var O=class extends r.UnitDrawingService{};let k=(0,t.createIdentifier)(`univer.doc.plugin.doc-drawing.service`);function A(e,t){return function(n,r){t(n,r,e)}}function j(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let M=`DOC_DRAWING_PLUGIN`;function N(e,t={}){return e.map((e,t)=>({drawingId:e,index:t})).sort((e,n)=>{let r=P(t[e.drawingId]);return r===P(t[n.drawingId])?e.index-n.index:r?-1:1}).map(({drawingId:e})=>e)}function P(e){return(e==null?void 0:e.layoutType)===t.PositionedObjectLayoutType.WRAP_NONE&&e.behindDoc===t.BooleanNumber.TRUE}let F=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._docDrawingService=e,this._drawingManagerService=t,this._resourceManagerService=n,this._univerInstanceService=r,this._commandService=i,this._init()}_init(){this._initSnapshot(),this._initCommands()}_initSnapshot(){let e=e=>{let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(n){let e=n.getSnapshot().drawings,t=n.getSnapshot().drawingsOrder;return JSON.stringify({data:e??{},order:t??[]})}return``},n=e=>{if(!e)return{data:{},order:[]};try{return JSON.parse(e)}catch{return{data:{},order:[]}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:M,businesses:[t.UniverInstanceType.UNIVER_DOC],toJson:t=>e(t),parseJson:e=>n(e),onUnLoad:e=>{this._unloadDrawingDataForUnit(e)},onLoad:(e,t)=>{this._setDrawingDataForUnit(e,{data:t.data??{},order:t.order??[]})}}))}_unloadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);n==null||n.resetDrawing({},[]),this._docDrawingService.removeDrawingDataForUnit(e),this._drawingManagerService.removeDrawingDataForUnit(e)}_setDrawingDataForUnit(e,t){let n=this._univerInstanceService.getUnit(e);n!=null&&(n.resetDrawing(t.data,t.order),this.loadDrawingDataForUnit(e))}loadDrawingDataForUnit(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_DOC);if(!n)return!1;let r=e,{drawings:i,drawingsOrder:a}=p(n.getSnapshot());if(!i||!a)return!1;let o={};for(let[t,n]of Object.entries(i))o[t]=n.unitId===e&&n.subUnitId===r?n:{...n,unitId:e,subUnitId:r};let s={[r]:{unitId:e,subUnitId:r,data:o,order:a}},c={};for(let[e,t]of Object.entries(o))c[e]={...t,hidden:!0};let l={[r]:{...s[r],data:c,order:N(a,i)}};return this._docDrawingService.registerDrawingData(e,s),this._drawingManagerService.registerDrawingData(e,l),!0}_initCommands(){[i,m,w,D,C].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}};F=j([A(0,k),A(1,r.IDrawingManagerService),A(2,t.IResourceManagerService),A(3,t.IUniverInstanceService),A(4,t.ICommandService)],F);var I=`@univerjs/docs-drawing`,L=`1.0.1`;let R={},z=class extends t.Plugin{constructor(e=R,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},R,this._config);this._configService.setConfig(`docs-drawing.config`,i)}onStarting(){[[F],[d],[u,{useClass:d}],[O],[k,{useClass:O}]].forEach(e=>this._injector.add(e)),(0,t.touchDependencies)(this._injector,[[F]])}};l(z,`pluginName`,M),l(z,`packageName`,I),l(z,`version`,L),l(z,`type`,t.UniverInstanceType.UNIVER_DOC),z=j([(0,t.DependentOn)(n.UniverDocsPlugin,r.UniverDrawingPlugin),A(1,(0,t.Inject)(t.Injector)),A(2,t.IConfigService)],z),e.DOCS_DRAWING_PLUGIN=M,e.DocDrawingAdapterService=d,Object.defineProperty(e,"DocDrawingController",{enumerable:!0,get:function(){return F}}),e.DocDrawingService=O,e.IDocDrawingAdapterService=u,e.IDocDrawingService=k,e.InsertDocDrawingCommand=i,e.RemoveDocDrawingCommand=m,e.SetDocDrawingArrangeCommand=C,e.TextWrappingStyle=T,Object.defineProperty(e,"UniverDocsDrawingPlugin",{enumerable:!0,get:function(){return z}}),e.UpdateDocDrawingWrappingStyleCommand=D,e.UpdateDrawingDocTransformCommand=w,e.WRAPPING_STYLE_TO_LAYOUT_TYPE=E,e.collectDocDrawings=p,e.findDocDrawing=f,e.getDocDrawingRenderOrder=N});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/docs-drawing",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Drawing model integration for Univer Docs.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
"lib"
|
|
60
60
|
],
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@univerjs/
|
|
63
|
-
"@univerjs/
|
|
64
|
-
"@univerjs/drawing": "1.0.
|
|
62
|
+
"@univerjs/core": "1.0.1",
|
|
63
|
+
"@univerjs/docs": "1.0.1",
|
|
64
|
+
"@univerjs/drawing": "1.0.1"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
+
"@univerjs-infra/shared": "1.0.1",
|
|
68
|
+
"@univerjs/engine-render": "1.0.1",
|
|
67
69
|
"typescript": "^6.0.3",
|
|
68
|
-
"vitest": "^5.0.0"
|
|
69
|
-
"@univerjs-infra/shared": "1.0.0-rc.0",
|
|
70
|
-
"@univerjs/engine-render": "1.0.0-rc.0"
|
|
70
|
+
"vitest": "^5.0.0"
|
|
71
71
|
},
|
|
72
72
|
"scripts": {
|
|
73
73
|
"test": "vitest run",
|