@univerjs/sheets-drawing-ui 1.0.0-alpha.8 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +6 -10
- package/lib/cjs/index.js +156 -157
- package/lib/es/facade.js +6 -10
- package/lib/es/index.js +159 -160
- package/lib/facade.js +6 -10
- package/lib/index.js +159 -160
- package/lib/types/services/canvas-float-dom-manager.service.d.ts +1 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +15 -15
package/lib/es/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { BooleanNumber, BuildTextUtils, CommandType, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, DependentOn, Direction, Disposable, DisposableCollection, DrawingTypeEnum, FOCUSING_COMMON_DRAWINGS, FOCUSING_FX_BAR_EDITOR, FOCUSING_PANEL_EDITOR, FOCUSING_SHAPE_TEXT_EDITOR, FOCUSING_SHEET, ICommandService, IConfigService, IContextService, IImageIoService, IPermissionService, IURLImageService, IUndoRedoService, IUniverInstanceService, ImageSourceType, ImageUploadStatusType, Inject, Injector, InterceptorEffectEnum, LifecycleService, LifecycleStages, LocaleService, ObjectMatrix, Optional, Plugin, PositionedObjectLayoutType, RxDisposable, Tools, UniverInstanceType, UserManagerService, WrapTextType, createDocumentModelWithStyle, createIdentifier, fromEventSubject, generateRandomId, merge, registerDependencies, sequenceExecute, toDisposable, touchDependencies } from "@univerjs/core";
|
|
2
|
-
import { ClearSheetDrawingTransformerOperation, DrawingApplyType, ISheetDrawingService, InsertSheetDrawingCommand, RemoveSheetDrawingCommand, SetDrawingApplyMutation, SetDrawingArrangeCommand, SetSheetDrawingCommand, SheetDrawingAnchorType, UniverSheetsDrawingPlugin, drawingPositionToTransform, transformToAxisAlignPosition, transformToDrawingPosition } from "@univerjs/sheets-drawing";
|
|
2
|
+
import { ClearSheetDrawingTransformerOperation, DrawingApplyType, ISheetDrawingService, InsertSheetDrawingCommand, RemoveSheetDrawingCommand, SetDrawingApplyMutation, SetDrawingArrangeCommand, SetSheetDrawingCommand, SetSheetDrawingPlacementCommand, SheetDrawingAnchorType, UniverSheetsDrawingPlugin, drawingPositionToTransform, getSheetDrawingPlacement, transformToAxisAlignPosition, transformToDrawingPosition } from "@univerjs/sheets-drawing";
|
|
3
3
|
import { CURSOR_TYPE, DRAWING_OBJECT_LAYER_INDEX, IRenderManagerService, Image, ObjectType, Rect, SHEET_VIEWPORT_KEY, UniverRenderEnginePlugin, Vector2, getCurrentTypeOfRenderer, getGroupState, transformObjectOutOfGroup } from "@univerjs/engine-render";
|
|
4
4
|
import { Button, Checkbox, CheckboxGroup, FormLayout, MessageType, Radio, RadioGroup, Select, clsx, render, unmount } from "@univerjs/design";
|
|
5
5
|
import { buildDocTransform, docDrawingPositionToTransform } from "@univerjs/docs";
|
|
6
6
|
import { DRAWING_IMAGE_ALLOW_IMAGE_LIST, DRAWING_IMAGE_COUNT_LIMIT, DRAWING_IMAGE_HEIGHT_LIMIT, DRAWING_IMAGE_WIDTH_LIMIT, IDrawingManagerService, SetDrawingSelectedOperation, UniverDrawingPlugin, getDrawingImageAllowSize, getDrawingShapeKeyByDrawingSearch, getImageSize } from "@univerjs/drawing";
|
|
7
|
-
import { COMMAND_LISTENER_SKELETON_CHANGE, IAutoFillService, INTERCEPTOR_POINT, InterceptCellContentPriority, RangeProtectionPermissionEditPoint, SetFrozenMutation, SetRangeValuesCommand, SetSelectionsOperation, SetWorksheetActiveOperation, SetWorksheetRowAutoHeightMutation, SheetInterceptorService, SheetPermissionCheckController, SheetSkeletonService, SheetsSelectionsService, UniverSheetsPlugin, WorkbookEditablePermission, WorkbookViewPermission, WorksheetEditPermission, WorksheetViewPermission, attachRangeWithCoord, discreteRangeToRange, getSheetCommandTarget } from "@univerjs/sheets";
|
|
7
|
+
import { COMMAND_LISTENER_SKELETON_CHANGE, IAutoFillService, INTERCEPTOR_POINT, InterceptCellContentPriority, RangeProtectionPermissionEditPoint, SetFrozenMutation, SetRangeValuesCommand, SetSelectionsOperation, SetWorksheetActiveOperation, SetWorksheetRowAutoHeightMutation, SheetInterceptorService, SheetPermissionCheckController, SheetSkeletonService, SheetsSelectionsService, UniverSheetsPlugin, WorkbookEditablePermission, WorkbookViewPermission, WorksheetEditPermission, WorksheetViewPermission, attachRangeWithCoord, discreteRangeToRange, getSheetCommandTarget, isCellImage } from "@univerjs/sheets";
|
|
8
8
|
import { COPY_TYPE, EditingRenderController, HoverManagerService, IEditorBridgeService, ISheetClipboardService, ISheetSelectionRenderService, PREDEFINED_HOOK_NAME_PASTE, SetCellEditVisibleOperation, SetScrollOperation, SetZoomRatioOperation, SheetCanvasPopManagerService, SheetPrintInterceptorService, SheetSkeletonManagerService, UniverSheetsUIPlugin, getCurrentRangeDisable$, useHighlightRange, virtualizeDiscreteRanges } from "@univerjs/sheets-ui";
|
|
9
|
-
import { CanvasFloatDomPreviewService, CanvasFloatDomService, ComponentManager, ContextMenuGroup, ContextMenuPosition, IClipboardInterfaceService, IContextMenuService, IDialogService, ILocalFileService, IMenuManagerService, IMessageService, IShortcutService, ISidebarService, KeyCode, MenuItemType, PrintFloatDomSingle, RibbonInsertGroup,
|
|
9
|
+
import { CanvasFloatDomPreviewService, CanvasFloatDomService, ComponentManager, ContextMenuGroup, ContextMenuPosition, IClipboardInterfaceService, IContextMenuService, IDialogService, ILocalFileService, IMenuManagerService, IMessageService, IShortcutService, ISidebarService, KeyCode, MenuItemType, PrintFloatDomSingle, RibbonInsertGroup, connectInjector, getMenuHiddenObservable, useDependency, useObservable } from "@univerjs/ui";
|
|
10
10
|
import { COMPONENT_IMAGE_POPUP_MENU, DrawingCommonPanel, DrawingRenderService, ImageCropperObject, ImageResetSizeOperation, OpenImageCropOperation, UniverDrawingUIPlugin, disposeDrawingRenderObject, insertGroupObject } from "@univerjs/drawing-ui";
|
|
11
11
|
import { BehaviorSubject, EMPTY, Subject, combineLatest, distinctUntilChanged, filter, map, of, switchMap, take, tap, throttleTime } from "rxjs";
|
|
12
12
|
import { DocDrawingController, UniverDocsDrawingPlugin } from "@univerjs/docs-drawing";
|
|
@@ -124,28 +124,23 @@ function cloneGroupParams(groupParams) {
|
|
|
124
124
|
groupParams.groups.forEach((p) => idMap.set(p.drawingId, generateRandomId(10)));
|
|
125
125
|
const clonedNestedIdRecord = {};
|
|
126
126
|
for (const [oldGroupId, entry] of Object.entries(groupParams.nestedIdRecord)) {
|
|
127
|
-
var
|
|
128
|
-
const newGroupId =
|
|
127
|
+
var _entry$children;
|
|
128
|
+
const newGroupId = idMap.get(oldGroupId) ?? oldGroupId;
|
|
129
129
|
clonedNestedIdRecord[newGroupId] = {
|
|
130
130
|
drawingId: newGroupId,
|
|
131
|
-
children: (_entry$children = entry.children) === null || _entry$children === void 0 ? void 0 : _entry$children.map((id) =>
|
|
132
|
-
var _idMap$get2;
|
|
133
|
-
return (_idMap$get2 = idMap.get(id)) !== null && _idMap$get2 !== void 0 ? _idMap$get2 : id;
|
|
134
|
-
})
|
|
131
|
+
children: (_entry$children = entry.children) === null || _entry$children === void 0 ? void 0 : _entry$children.map((id) => idMap.get(id) ?? id)
|
|
135
132
|
};
|
|
136
133
|
}
|
|
137
134
|
const flatChildren = [];
|
|
138
135
|
const groups = [];
|
|
139
136
|
for (const group of groupParams.groups) {
|
|
140
|
-
|
|
141
|
-
const
|
|
142
|
-
const parentGroupId = group.groupId ? (_idMap$get4 = idMap.get(group.groupId)) !== null && _idMap$get4 !== void 0 ? _idMap$get4 : group.groupId : void 0;
|
|
137
|
+
const groupDrawingId = idMap.get(group.drawingId) ?? group.drawingId;
|
|
138
|
+
const parentGroupId = group.groupId ? idMap.get(group.groupId) ?? group.groupId : void 0;
|
|
143
139
|
groups.push(cloneDrawingParam(group, groupDrawingId, parentGroupId));
|
|
144
140
|
}
|
|
145
141
|
for (const child of groupParams.flatChildren || []) {
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
const parentGroupId = child.groupId ? (_idMap$get6 = idMap.get(child.groupId)) !== null && _idMap$get6 !== void 0 ? _idMap$get6 : child.groupId : void 0;
|
|
142
|
+
const childDrawingId = idMap.get(child.drawingId) ?? child.drawingId;
|
|
143
|
+
const parentGroupId = child.groupId ? idMap.get(child.groupId) ?? child.groupId : void 0;
|
|
149
144
|
flatChildren.push(cloneDrawingParam(child, childDrawingId, parentGroupId));
|
|
150
145
|
}
|
|
151
146
|
return {
|
|
@@ -448,7 +443,6 @@ let SheetDrawingUpdateController = class SheetDrawingUpdateController extends Di
|
|
|
448
443
|
return this._insertCellImage(file, location);
|
|
449
444
|
}
|
|
450
445
|
async insertFloatImageByFile(file) {
|
|
451
|
-
var _transformToAxisAlign;
|
|
452
446
|
let imageParam;
|
|
453
447
|
try {
|
|
454
448
|
imageParam = await this._imageIoService.saveImage(file);
|
|
@@ -495,7 +489,7 @@ let SheetDrawingUpdateController = class SheetDrawingUpdateController extends Di
|
|
|
495
489
|
source,
|
|
496
490
|
transform: newTransform,
|
|
497
491
|
sheetTransform,
|
|
498
|
-
axisAlignSheetTransform:
|
|
492
|
+
axisAlignSheetTransform: transformToAxisAlignPosition(newTransform, skeleton) ?? sheetTransform
|
|
499
493
|
};
|
|
500
494
|
return this._commandService.executeCommand(InsertSheetDrawingCommand.id, {
|
|
501
495
|
unitId,
|
|
@@ -571,10 +565,9 @@ let SheetDrawingUpdateController = class SheetDrawingUpdateController extends Di
|
|
|
571
565
|
}
|
|
572
566
|
});
|
|
573
567
|
if (jsonXActions) {
|
|
574
|
-
var _location$row, _location$col;
|
|
575
568
|
docDataModel.apply(jsonXActions);
|
|
576
569
|
return this._commandService.syncExecuteCommand(SetRangeValuesCommand.id, {
|
|
577
|
-
value: { [(
|
|
570
|
+
value: { [(location === null || location === void 0 ? void 0 : location.row) ?? row]: { [(location === null || location === void 0 ? void 0 : location.col) ?? col]: {
|
|
578
571
|
p: docDataModel.getSnapshot(),
|
|
579
572
|
t: 1
|
|
580
573
|
} } },
|
|
@@ -633,10 +626,9 @@ let SheetDrawingUpdateController = class SheetDrawingUpdateController extends Di
|
|
|
633
626
|
}
|
|
634
627
|
});
|
|
635
628
|
if (jsonXActions) {
|
|
636
|
-
var _location$row2, _location$col2;
|
|
637
629
|
docDataModel.apply(jsonXActions);
|
|
638
630
|
return this._commandService.syncExecuteCommand(SetRangeValuesCommand.id, {
|
|
639
|
-
value: { [(
|
|
631
|
+
value: { [(location === null || location === void 0 ? void 0 : location.row) ?? selection.primary.actualRow]: { [(location === null || location === void 0 ? void 0 : location.col) ?? selection.primary.actualColumn]: {
|
|
640
632
|
p: docDataModel.getSnapshot(),
|
|
641
633
|
t: 1
|
|
642
634
|
} } },
|
|
@@ -888,20 +880,17 @@ const InsertFloatImageCommand = {
|
|
|
888
880
|
if (files) {
|
|
889
881
|
const awaitFiles = files.map((file) => sheetDrawingUpdateController.insertFloatImageByFile(file));
|
|
890
882
|
return (await Promise.all(awaitFiles)).every((result) => result);
|
|
891
|
-
} else
|
|
892
|
-
var _sheetDrawingUpdateCo;
|
|
893
|
-
return (_sheetDrawingUpdateCo = sheetDrawingUpdateController.insertFloatImage()) !== null && _sheetDrawingUpdateCo !== void 0 ? _sheetDrawingUpdateCo : false;
|
|
894
|
-
}
|
|
883
|
+
} else return sheetDrawingUpdateController.insertFloatImage() ?? false;
|
|
895
884
|
}
|
|
896
885
|
};
|
|
897
886
|
const InsertCellImageCommand = {
|
|
898
887
|
id: "sheet.command.insert-cell-image",
|
|
899
888
|
type: CommandType.COMMAND,
|
|
900
889
|
handler: (accessor) => {
|
|
901
|
-
var _getCurrentTypeOfRend2
|
|
890
|
+
var _getCurrentTypeOfRend2;
|
|
902
891
|
const univerInstanceService = accessor.get(IUniverInstanceService);
|
|
903
892
|
const renderManagerService = accessor.get(IRenderManagerService);
|
|
904
|
-
return (_getCurrentTypeOfRend2 =
|
|
893
|
+
return ((_getCurrentTypeOfRend2 = getCurrentTypeOfRenderer(UniverInstanceType.UNIVER_SHEET, univerInstanceService, renderManagerService)) === null || _getCurrentTypeOfRend2 === void 0 ? void 0 : _getCurrentTypeOfRend2.with(SheetDrawingUpdateController).insertCellImage()) ?? false;
|
|
905
894
|
}
|
|
906
895
|
};
|
|
907
896
|
|
|
@@ -990,20 +979,14 @@ function rangeToA1Notation(range) {
|
|
|
990
979
|
return start === end ? start : `${start}:${end}`;
|
|
991
980
|
}
|
|
992
981
|
/**
|
|
993
|
-
* Check if a cell has image
|
|
994
|
-
*/
|
|
995
|
-
function cellHasImage$1(cell) {
|
|
996
|
-
var _cell$p, _cell$p2;
|
|
997
|
-
return !!((cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.drawingsOrder) === null || _cell$p === void 0 ? void 0 : _cell$p.length) && (cell === null || cell === void 0 || (_cell$p2 = cell.p) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.drawingsOrder) === null || _cell$p2 === void 0 ? void 0 : _cell$p2.length) > 0);
|
|
998
|
-
}
|
|
999
|
-
/**
|
|
1000
982
|
* Get image data from cell
|
|
1001
983
|
*/
|
|
1002
984
|
function getCellImageData(cell) {
|
|
1003
|
-
var
|
|
1004
|
-
|
|
1005
|
-
const drawingId =
|
|
1006
|
-
|
|
985
|
+
var _documentData$drawing;
|
|
986
|
+
const documentData = cell.p;
|
|
987
|
+
const drawingId = documentData === null || documentData === void 0 || (_documentData$drawing = documentData.drawingsOrder) === null || _documentData$drawing === void 0 ? void 0 : _documentData$drawing[0];
|
|
988
|
+
if (!isCellImage(documentData) || !drawingId || !(documentData === null || documentData === void 0 ? void 0 : documentData.drawings)) return null;
|
|
989
|
+
const drawing = documentData.drawings[drawingId];
|
|
1007
990
|
if (!drawing || !("source" in drawing) || !("imageSourceType" in drawing)) return null;
|
|
1008
991
|
return drawing;
|
|
1009
992
|
}
|
|
@@ -1050,7 +1033,7 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1050
1033
|
const { startRow, endRow, startColumn, endColumn } = selection.range;
|
|
1051
1034
|
for (let row = startRow; row <= endRow; row++) for (let col = startColumn; col <= endColumn; col++) {
|
|
1052
1035
|
const cell = cellMatrix.getValue(row, col);
|
|
1053
|
-
if (
|
|
1036
|
+
if (isCellImage(cell === null || cell === void 0 ? void 0 : cell.p)) {
|
|
1054
1037
|
const imageData = getCellImageData(cell);
|
|
1055
1038
|
if (imageData) images.push({
|
|
1056
1039
|
row,
|
|
@@ -1076,7 +1059,7 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1076
1059
|
const { startRow, endRow, startColumn, endColumn } = range;
|
|
1077
1060
|
for (let row = startRow; row <= endRow; row++) for (let col = startColumn; col <= endColumn; col++) {
|
|
1078
1061
|
const cell = cellMatrix.getValue(row, col);
|
|
1079
|
-
if (
|
|
1062
|
+
if (isCellImage(cell === null || cell === void 0 ? void 0 : cell.p)) {
|
|
1080
1063
|
const imageData = getCellImageData(cell);
|
|
1081
1064
|
if (imageData) images.push({
|
|
1082
1065
|
row,
|
|
@@ -1114,8 +1097,8 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1114
1097
|
for (let row = minRow; row <= maxRow; row++) {
|
|
1115
1098
|
const cell = cellMatrix.getValue(row, col);
|
|
1116
1099
|
if (cell) {
|
|
1117
|
-
var _cell$v, _cell$
|
|
1118
|
-
if (((_cell$v = cell.v) === null || _cell$v === void 0 ? void 0 : _cell$v.toString()) || ((_cell$
|
|
1100
|
+
var _cell$v, _cell$p;
|
|
1101
|
+
if (((_cell$v = cell.v) === null || _cell$v === void 0 ? void 0 : _cell$v.toString()) || ((_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.body) === null || _cell$p === void 0 || (_cell$p = _cell$p.dataStream) === null || _cell$p === void 0 ? void 0 : _cell$p.trim()) || "") {
|
|
1119
1102
|
columnsWithData.add(col);
|
|
1120
1103
|
break;
|
|
1121
1104
|
}
|
|
@@ -1151,8 +1134,8 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1151
1134
|
for (let row = minRow; row <= maxRow; row++) {
|
|
1152
1135
|
const cell = cellMatrix.getValue(row, col);
|
|
1153
1136
|
if (cell) {
|
|
1154
|
-
var _cell$v2, _cell$
|
|
1155
|
-
if (((_cell$v2 = cell.v) === null || _cell$v2 === void 0 ? void 0 : _cell$v2.toString()) || ((_cell$
|
|
1137
|
+
var _cell$v2, _cell$p2;
|
|
1138
|
+
if (((_cell$v2 = cell.v) === null || _cell$v2 === void 0 ? void 0 : _cell$v2.toString()) || ((_cell$p2 = cell.p) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.body) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.dataStream) === null || _cell$p2 === void 0 ? void 0 : _cell$p2.trim()) || "") {
|
|
1156
1139
|
columnsWithData.add(col);
|
|
1157
1140
|
break;
|
|
1158
1141
|
}
|
|
@@ -1203,8 +1186,8 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1203
1186
|
if (worksheet) {
|
|
1204
1187
|
const cell = worksheet.getCellMatrix().getValue(imageInfo.row, config.columnIndex);
|
|
1205
1188
|
if (cell) {
|
|
1206
|
-
var _cell$v3, _cell$
|
|
1207
|
-
const value = ((_cell$v3 = cell.v) === null || _cell$v3 === void 0 ? void 0 : _cell$v3.toString()) || ((_cell$
|
|
1189
|
+
var _cell$v3, _cell$p3;
|
|
1190
|
+
const value = ((_cell$v3 = cell.v) === null || _cell$v3 === void 0 ? void 0 : _cell$v3.toString()) || ((_cell$p3 = cell.p) === null || _cell$p3 === void 0 || (_cell$p3 = _cell$p3.body) === null || _cell$p3 === void 0 || (_cell$p3 = _cell$p3.dataStream) === null || _cell$p3 === void 0 ? void 0 : _cell$p3.trim()) || "";
|
|
1208
1191
|
if (value) {
|
|
1209
1192
|
const sanitized = value.replace(/[<>:"/\\|?*]/g, "_").trim();
|
|
1210
1193
|
if (sanitized) parts.push(sanitized);
|
|
@@ -1225,8 +1208,8 @@ let BatchSaveImagesService = class BatchSaveImagesService extends Disposable {
|
|
|
1225
1208
|
if (worksheet) {
|
|
1226
1209
|
const cell = worksheet.getCellMatrix().getValue(imageInfo.row, config.columnIndex);
|
|
1227
1210
|
if (cell) {
|
|
1228
|
-
var _cell$v4, _cell$
|
|
1229
|
-
const value = ((_cell$v4 = cell.v) === null || _cell$v4 === void 0 ? void 0 : _cell$v4.toString()) || ((_cell$
|
|
1211
|
+
var _cell$v4, _cell$p4;
|
|
1212
|
+
const value = ((_cell$v4 = cell.v) === null || _cell$v4 === void 0 ? void 0 : _cell$v4.toString()) || ((_cell$p4 = cell.p) === null || _cell$p4 === void 0 || (_cell$p4 = _cell$p4.body) === null || _cell$p4 === void 0 || (_cell$p4 = _cell$p4.dataStream) === null || _cell$p4 === void 0 ? void 0 : _cell$p4.trim()) || "";
|
|
1230
1213
|
if (value) {
|
|
1231
1214
|
const sanitized = value.replace(/[<>:"/\\|?*]/g, "_").trim();
|
|
1232
1215
|
if (sanitized) parts.push(sanitized);
|
|
@@ -1508,7 +1491,6 @@ let SheetsDrawingGroupCopyPasteController = class SheetsDrawingGroupCopyPasteCon
|
|
|
1508
1491
|
};
|
|
1509
1492
|
}
|
|
1510
1493
|
_generateGroupPasteMutations(pasteTo) {
|
|
1511
|
-
var _cloned$flatChildren;
|
|
1512
1494
|
if (!this._copyInfo) return {
|
|
1513
1495
|
redos: [],
|
|
1514
1496
|
undos: []
|
|
@@ -1539,12 +1521,11 @@ let SheetsDrawingGroupCopyPasteController = class SheetsDrawingGroupCopyPasteCon
|
|
|
1539
1521
|
left: pasteRect.startX,
|
|
1540
1522
|
top: pasteRect.startY
|
|
1541
1523
|
};
|
|
1542
|
-
const allDrawings = [...(
|
|
1524
|
+
const allDrawings = [...(cloned.flatChildren ?? []).map((d) => ({
|
|
1543
1525
|
...d,
|
|
1544
1526
|
unitId,
|
|
1545
1527
|
subUnitId
|
|
1546
1528
|
})), ...cloned.groups.map((d) => {
|
|
1547
|
-
var _transformToDrawingPo, _transformToAxisAlign;
|
|
1548
1529
|
if (d.drawingId !== newRootGroupId) return {
|
|
1549
1530
|
...d,
|
|
1550
1531
|
unitId,
|
|
@@ -1555,8 +1536,8 @@ let SheetsDrawingGroupCopyPasteController = class SheetsDrawingGroupCopyPasteCon
|
|
|
1555
1536
|
unitId,
|
|
1556
1537
|
subUnitId,
|
|
1557
1538
|
transform: newTransform,
|
|
1558
|
-
sheetTransform:
|
|
1559
|
-
axisAlignSheetTransform:
|
|
1539
|
+
sheetTransform: transformToDrawingPosition(newTransform, pasteToSkeleton) ?? origRootGroup.sheetTransform,
|
|
1540
|
+
axisAlignSheetTransform: transformToAxisAlignPosition(newTransform, pasteToSkeleton) ?? origRootGroup.sheetTransform
|
|
1560
1541
|
};
|
|
1561
1542
|
})];
|
|
1562
1543
|
const { undo: removeOp, redo: insertOp, objects } = this._sheetDrawingService.getBatchAddOp(allDrawings);
|
|
@@ -1680,14 +1661,13 @@ function shouldStartFloatDomMoveFromHandle(info, detail) {
|
|
|
1680
1661
|
return detail.hostAnchorId === info.id && (detail.hostUnitId == null || detail.hostUnitId === info.unitId) && (detail.button == null || detail.button === 0) && typeof detail.clientX === "number" && typeof detail.clientY === "number";
|
|
1681
1662
|
}
|
|
1682
1663
|
function createFloatDomMoveDragState(info, detail) {
|
|
1683
|
-
var _info$rect$left, _info$rect$top;
|
|
1684
1664
|
if (typeof detail.clientX !== "number" || typeof detail.clientY !== "number") return;
|
|
1685
1665
|
return {
|
|
1686
1666
|
pointerId: detail.pointerId,
|
|
1687
1667
|
startClientX: detail.clientX,
|
|
1688
1668
|
startClientY: detail.clientY,
|
|
1689
|
-
startLeft: Number(
|
|
1690
|
-
startTop: Number(
|
|
1669
|
+
startLeft: Number(info.rect.left ?? 0),
|
|
1670
|
+
startTop: Number(info.rect.top ?? 0)
|
|
1691
1671
|
};
|
|
1692
1672
|
}
|
|
1693
1673
|
function resolveFloatDomMoveDragTransform(state, event, scene) {
|
|
@@ -1969,8 +1949,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
1969
1949
|
* default {@link Rect} fallback.
|
|
1970
1950
|
*/
|
|
1971
1951
|
registerRenderObjectFactory(drawingType, factory) {
|
|
1972
|
-
|
|
1973
|
-
const factories = (_this$_renderObjectFa = this._renderObjectFactories.get(drawingType)) !== null && _this$_renderObjectFa !== void 0 ? _this$_renderObjectFa : [];
|
|
1952
|
+
const factories = this._renderObjectFactories.get(drawingType) ?? [];
|
|
1974
1953
|
factories.push(factory);
|
|
1975
1954
|
this._renderObjectFactories.set(drawingType, factories);
|
|
1976
1955
|
return { dispose: () => {
|
|
@@ -1982,10 +1961,9 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
1982
1961
|
} };
|
|
1983
1962
|
}
|
|
1984
1963
|
_createRenderObject(context) {
|
|
1985
|
-
var _factory;
|
|
1986
1964
|
const factories = this._renderObjectFactories.get(context.drawingType);
|
|
1987
1965
|
const factory = factories === null || factories === void 0 ? void 0 : factories[factories.length - 1];
|
|
1988
|
-
return (
|
|
1966
|
+
return (factory === null || factory === void 0 ? void 0 : factory(context)) ?? new Rect(context.key, context.config);
|
|
1989
1967
|
}
|
|
1990
1968
|
_bindScrollEvent() {
|
|
1991
1969
|
this._lifecycleService.lifecycle$.pipe(filter((s) => s === LifecycleStages.Rendered), take(1)).subscribe(() => {
|
|
@@ -2313,7 +2291,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2313
2291
|
if (data && data.border) imageConfig.stroke = data.border;
|
|
2314
2292
|
Object.assign(imageConfig, SHEET_CHART_RENDER_OBJECT_CONFIG);
|
|
2315
2293
|
} else imageConfig.rotateEnabled = false;
|
|
2316
|
-
const rect = rectShape
|
|
2294
|
+
const rect = rectShape ?? this._createRenderObject({
|
|
2317
2295
|
key: rectShapeKey,
|
|
2318
2296
|
config: imageConfig,
|
|
2319
2297
|
unitId,
|
|
@@ -2463,6 +2441,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2463
2441
|
if (previewObjectKey) scene.removeObject(previewObjectKey);
|
|
2464
2442
|
});
|
|
2465
2443
|
listener && disposableCollection.add(listener);
|
|
2444
|
+
this._bindFloatDomScroll(disposableCollection, info, renderObject.renderUnit.scene, skeleton.skeleton, target.worksheet);
|
|
2466
2445
|
this._domLayerInfoMap.set(drawingId, info);
|
|
2467
2446
|
});
|
|
2468
2447
|
}));
|
|
@@ -2515,23 +2494,6 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2515
2494
|
this._syncFloatDomVisibilityForActiveSheet(unitId, subUnitId);
|
|
2516
2495
|
updateSheet(unitId, subUnitId);
|
|
2517
2496
|
}));
|
|
2518
|
-
this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(switchMap((workbook) => workbook ? workbook.activeSheet$ : of(null)), map((worksheet) => {
|
|
2519
|
-
if (!worksheet) return null;
|
|
2520
|
-
const unitId = worksheet.getUnitId();
|
|
2521
|
-
const render = this._renderManagerService.getRenderUnitById(unitId);
|
|
2522
|
-
return render ? {
|
|
2523
|
-
render,
|
|
2524
|
-
unitId,
|
|
2525
|
-
subUnitId: worksheet.getSheetId()
|
|
2526
|
-
} : null;
|
|
2527
|
-
}), switchMap((render) => render ? fromEventSubject(render.render.scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_MAIN).onScrollAfter$).pipe(map(() => ({
|
|
2528
|
-
unitId: render.unitId,
|
|
2529
|
-
subUnitId: render.subUnitId
|
|
2530
|
-
}))) : of(null))).subscribe((value) => {
|
|
2531
|
-
if (!value) return;
|
|
2532
|
-
const { unitId, subUnitId } = value;
|
|
2533
|
-
updateSheet(unitId, subUnitId);
|
|
2534
|
-
}));
|
|
2535
2497
|
this.disposeWithMe(this._commandService.onCommandExecuted((commandInfo) => {
|
|
2536
2498
|
if (commandInfo.id === SetZoomRatioOperation.id) {
|
|
2537
2499
|
const { unitId } = commandInfo.params;
|
|
@@ -2547,6 +2509,13 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2547
2509
|
}
|
|
2548
2510
|
}));
|
|
2549
2511
|
}
|
|
2512
|
+
_bindFloatDomScroll(disposableCollection, info, scene, skeleton, worksheet) {
|
|
2513
|
+
const viewport = scene.getViewport(SHEET_VIEWPORT_KEY.VIEW_MAIN);
|
|
2514
|
+
if (!viewport) return;
|
|
2515
|
+
disposableCollection.add(fromEventSubject(viewport.onScrollAfter$).subscribe(() => {
|
|
2516
|
+
info.position$.next(calcSheetFloatDomPosition(info.rect, scene, skeleton, worksheet, info));
|
|
2517
|
+
}));
|
|
2518
|
+
}
|
|
2550
2519
|
updateFloatDomProps(unitId, subUnitId, id, props) {
|
|
2551
2520
|
const info = this._domLayerInfoMap.get(id);
|
|
2552
2521
|
const renderObject = this._getSceneAndTransformerByDrawingSearch(unitId);
|
|
@@ -2576,13 +2545,13 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2576
2545
|
}
|
|
2577
2546
|
}
|
|
2578
2547
|
_getObjectIncludingGroup(scene, key, groupKey) {
|
|
2579
|
-
var
|
|
2580
|
-
return
|
|
2548
|
+
var _scene$getObjectInclu;
|
|
2549
|
+
return this._getChildObjectFromGroup(scene, key, groupKey) ?? ((_scene$getObjectInclu = scene.getObjectIncludeInGroup) === null || _scene$getObjectInclu === void 0 ? void 0 : _scene$getObjectInclu.call(scene, key)) ?? scene.getObject(key) ?? null;
|
|
2581
2550
|
}
|
|
2582
2551
|
_getChildObjectFromGroup(scene, key, groupKey) {
|
|
2583
|
-
var _scene$getObjectInclu2
|
|
2552
|
+
var _scene$getObjectInclu2;
|
|
2584
2553
|
if (!groupKey) return null;
|
|
2585
|
-
const groupObject = (_scene$getObjectInclu2 =
|
|
2554
|
+
const groupObject = ((_scene$getObjectInclu2 = scene.getObjectIncludeInGroup) === null || _scene$getObjectInclu2 === void 0 ? void 0 : _scene$getObjectInclu2.call(scene, groupKey)) ?? scene.getObject(groupKey);
|
|
2586
2555
|
return this._findChildObject(groupObject, key);
|
|
2587
2556
|
}
|
|
2588
2557
|
_findChildObject(object, key) {
|
|
@@ -2606,10 +2575,9 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2606
2575
|
if (info) info.rect = object;
|
|
2607
2576
|
}
|
|
2608
2577
|
_getChartDataBackground(data) {
|
|
2609
|
-
var _record$backgroundCol;
|
|
2610
2578
|
if (!data || typeof data !== "object" || Array.isArray(data)) return;
|
|
2611
2579
|
const record = data;
|
|
2612
|
-
const background =
|
|
2580
|
+
const background = record.backgroundColor ?? record.background;
|
|
2613
2581
|
return typeof background === "string" ? background : void 0;
|
|
2614
2582
|
}
|
|
2615
2583
|
_getPosition(position, unitId) {
|
|
@@ -2682,7 +2650,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2682
2650
|
if (!target) throw new Error("cannot find current target!");
|
|
2683
2651
|
const { unitId, subUnitId } = target;
|
|
2684
2652
|
const { initPosition, componentKey, data, allowTransform = true } = layer;
|
|
2685
|
-
const id = propId
|
|
2653
|
+
const id = propId ?? generateRandomId();
|
|
2686
2654
|
const sheetTransform = this._getPosition(initPosition, unitId);
|
|
2687
2655
|
if (sheetTransform == null) return;
|
|
2688
2656
|
const sheetDrawingParam = {
|
|
@@ -2767,7 +2735,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2767
2735
|
const skeletonParam = (_this$_renderManagerS5 = this._renderManagerService.getRenderUnitById(unitId)) === null || _this$_renderManagerS5 === void 0 ? void 0 : _this$_renderManagerS5.with(SheetSkeletonManagerService).getSkeletonParam(subUnitId);
|
|
2768
2736
|
if (!skeletonParam) return;
|
|
2769
2737
|
const { componentKey, data, allowTransform = true } = config;
|
|
2770
|
-
const id = propId
|
|
2738
|
+
const id = propId ?? generateRandomId();
|
|
2771
2739
|
const { position: rangePosition, position$: rangePos$ } = this._createRangePositionObserver(range, currentRender, skeletonParam.skeleton);
|
|
2772
2740
|
const sheetTransform = this._getPosition(rangePosition, unitId);
|
|
2773
2741
|
if (sheetTransform == null) return;
|
|
@@ -2925,15 +2893,14 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2925
2893
|
};
|
|
2926
2894
|
this._canvasFloatDomService.addFloatDom(floatDomCfg);
|
|
2927
2895
|
this.disposeWithMe(rangePos$.subscribe((newRangePos) => {
|
|
2928
|
-
var _domAnchor$width, _domAnchor$height, _domAnchor$width2, _domAnchor$height2;
|
|
2929
2896
|
const calcOffsetPos = calcDomPositionByAnchor({
|
|
2930
2897
|
rotate: 0,
|
|
2931
2898
|
startX: newRangePos.startX,
|
|
2932
2899
|
startY: newRangePos.startY,
|
|
2933
2900
|
endX: newRangePos.endX,
|
|
2934
2901
|
endY: newRangePos.endY,
|
|
2935
|
-
width:
|
|
2936
|
-
height:
|
|
2902
|
+
width: domAnchor.width ?? newRangePos.width,
|
|
2903
|
+
height: domAnchor.height ?? newRangePos.height,
|
|
2937
2904
|
absolute: {
|
|
2938
2905
|
left: rangePosition.absolute.left,
|
|
2939
2906
|
top: rangePosition.absolute.top
|
|
@@ -2946,8 +2913,8 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2946
2913
|
}), {
|
|
2947
2914
|
left: calcOffsetPos.startX,
|
|
2948
2915
|
top: calcOffsetPos.startY,
|
|
2949
|
-
width:
|
|
2950
|
-
height:
|
|
2916
|
+
width: domAnchor.width ?? newRangePos.width,
|
|
2917
|
+
height: domAnchor.height ?? newRangePos.height,
|
|
2951
2918
|
zIndex: this._drawingManagerService.getDrawingOrder(unitId, subUnitId).length - 1
|
|
2952
2919
|
});
|
|
2953
2920
|
const newPos = calcSheetFloatDomPosition(newRect, renderObject.renderUnit.scene, skeletonParam.skeleton, target.worksheet, floatDomInfo);
|
|
@@ -2967,6 +2934,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2967
2934
|
this._canvasFloatDomService.removeFloatDom(drawingId);
|
|
2968
2935
|
});
|
|
2969
2936
|
listener && disposableCollection.add(listener);
|
|
2937
|
+
this._bindFloatDomScroll(disposableCollection, floatDomInfo, renderObject.renderUnit.scene, skeletonParam.skeleton, target.worksheet);
|
|
2970
2938
|
this._domLayerInfoMap.set(drawingId, floatDomInfo);
|
|
2971
2939
|
}
|
|
2972
2940
|
return this._createFloatDomDisposable(id);
|
|
@@ -2985,7 +2953,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
2985
2953
|
const skeletonParam = (_this$_renderManagerS8 = this._renderManagerService.getRenderUnitById(unitId)) === null || _this$_renderManagerS8 === void 0 ? void 0 : _this$_renderManagerS8.with(SheetSkeletonManagerService).getSkeletonParam(subUnitId);
|
|
2986
2954
|
if (!skeletonParam) return;
|
|
2987
2955
|
const { componentKey, data, allowTransform = true } = config;
|
|
2988
|
-
const id = propId
|
|
2956
|
+
const id = propId ?? generateRandomId();
|
|
2989
2957
|
const { position: rangePosition, position$: rangePos$ } = this._createRangePositionObserver({
|
|
2990
2958
|
startRow: 0,
|
|
2991
2959
|
endRow: 0,
|
|
@@ -3166,6 +3134,7 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
3166
3134
|
this._canvasFloatDomService.removeFloatDom(drawingId);
|
|
3167
3135
|
});
|
|
3168
3136
|
listener && disposableCollection.add(listener);
|
|
3137
|
+
this._bindFloatDomScroll(disposableCollection, floatDomInfo, renderObject.renderUnit.scene, skeleton.skeleton, target.worksheet);
|
|
3169
3138
|
this._domLayerInfoMap.set(drawingId, floatDomInfo);
|
|
3170
3139
|
}
|
|
3171
3140
|
return this._createFloatDomDisposable(id);
|
|
@@ -3281,12 +3250,11 @@ function calcCellPositionByCell(row, col, skeleton) {
|
|
|
3281
3250
|
};
|
|
3282
3251
|
}
|
|
3283
3252
|
function calcDomPositionByAnchor(rangePosition, domAnchor, scale) {
|
|
3284
|
-
|
|
3285
|
-
scale = (_scale = scale) !== null && _scale !== void 0 ? _scale : 1;
|
|
3253
|
+
scale = scale ?? 1;
|
|
3286
3254
|
const rangeWidth = rangePosition.endX - rangePosition.startX;
|
|
3287
3255
|
const rangeHeight = rangePosition.endY - rangePosition.startY;
|
|
3288
|
-
const domWidth = (
|
|
3289
|
-
const domHeight = (
|
|
3256
|
+
const domWidth = (domAnchor === null || domAnchor === void 0 ? void 0 : domAnchor.width) ?? rangeWidth;
|
|
3257
|
+
const domHeight = (domAnchor === null || domAnchor === void 0 ? void 0 : domAnchor.height) ?? rangeHeight;
|
|
3290
3258
|
let domLeft = 0;
|
|
3291
3259
|
let domTop = 0;
|
|
3292
3260
|
if (domAnchor) {
|
|
@@ -3381,13 +3349,6 @@ function UploadCellImageMenuFactory(accessor) {
|
|
|
3381
3349
|
//#endregion
|
|
3382
3350
|
//#region src/menu/save-images.menu.ts
|
|
3383
3351
|
/**
|
|
3384
|
-
* Check if a cell has image
|
|
3385
|
-
*/
|
|
3386
|
-
function cellHasImage(cell) {
|
|
3387
|
-
var _cell$p, _cell$p2;
|
|
3388
|
-
return !!((cell === null || cell === void 0 || (_cell$p = cell.p) === null || _cell$p === void 0 || (_cell$p = _cell$p.drawingsOrder) === null || _cell$p === void 0 ? void 0 : _cell$p.length) && (cell === null || cell === void 0 || (_cell$p2 = cell.p) === null || _cell$p2 === void 0 || (_cell$p2 = _cell$p2.drawingsOrder) === null || _cell$p2 === void 0 ? void 0 : _cell$p2.length) > 0);
|
|
3389
|
-
}
|
|
3390
|
-
/**
|
|
3391
3352
|
* Check if selection range has any images
|
|
3392
3353
|
*/
|
|
3393
3354
|
function selectionHasImages(workbook, selection) {
|
|
@@ -3395,7 +3356,10 @@ function selectionHasImages(workbook, selection) {
|
|
|
3395
3356
|
if (!worksheet) return false;
|
|
3396
3357
|
const cellMatrix = worksheet.getCellMatrix();
|
|
3397
3358
|
const { startRow, endRow, startColumn, endColumn } = selection;
|
|
3398
|
-
for (let row = startRow; row <= endRow; row++) for (let col = startColumn; col <= endColumn; col++)
|
|
3359
|
+
for (let row = startRow; row <= endRow; row++) for (let col = startColumn; col <= endColumn; col++) {
|
|
3360
|
+
const cell = cellMatrix.getValue(row, col);
|
|
3361
|
+
if (isCellImage(cell === null || cell === void 0 ? void 0 : cell.p)) return true;
|
|
3362
|
+
}
|
|
3399
3363
|
return false;
|
|
3400
3364
|
}
|
|
3401
3365
|
/**
|
|
@@ -3464,7 +3428,7 @@ const menuSchema = {
|
|
|
3464
3428
|
//#endregion
|
|
3465
3429
|
//#region package.json
|
|
3466
3430
|
var name = "@univerjs/sheets-drawing-ui";
|
|
3467
|
-
var version = "1.0.0-
|
|
3431
|
+
var version = "1.0.0-beta.0";
|
|
3468
3432
|
|
|
3469
3433
|
//#endregion
|
|
3470
3434
|
//#region src/config/config.ts
|
|
@@ -3599,18 +3563,17 @@ function BatchSaveImagesDialog() {
|
|
|
3599
3563
|
//#endregion
|
|
3600
3564
|
//#region src/views/sheet-image-panel/SheetDrawingAnchor.tsx
|
|
3601
3565
|
const SheetDrawingAnchor = (props) => {
|
|
3602
|
-
var _drawingParam$anchorT;
|
|
3603
3566
|
const commandService = useDependency(ICommandService);
|
|
3604
3567
|
const localeService = useDependency(LocaleService);
|
|
3605
3568
|
const drawingManagerService = useDependency(IDrawingManagerService);
|
|
3606
3569
|
const renderManagerService = useDependency(IRenderManagerService);
|
|
3607
3570
|
const { drawings } = props;
|
|
3608
|
-
const drawingParam = drawings[0];
|
|
3571
|
+
const drawingParam = isSheetDrawing(drawings[0]) ? drawings[0] : void 0;
|
|
3609
3572
|
const renderObject = drawingParam ? renderManagerService.getRenderUnitById(drawingParam.unitId) : void 0;
|
|
3610
3573
|
const scene = renderObject === null || renderObject === void 0 ? void 0 : renderObject.scene;
|
|
3611
3574
|
const transformer = scene === null || scene === void 0 ? void 0 : scene.getTransformerByCreate();
|
|
3612
3575
|
const [anchorShow, setAnchorShow] = useState(true);
|
|
3613
|
-
const [value, setValue] = useState(
|
|
3576
|
+
const [value, setValue] = useState(drawingParam ? getSheetDrawingPlacement(drawingParam).kind : SheetDrawingAnchorType.Position);
|
|
3614
3577
|
function getUpdateParams(objects, drawingManagerService) {
|
|
3615
3578
|
const params = [];
|
|
3616
3579
|
objects.forEach((object) => {
|
|
@@ -3620,6 +3583,10 @@ const SheetDrawingAnchor = (props) => {
|
|
|
3620
3583
|
params.push(null);
|
|
3621
3584
|
return true;
|
|
3622
3585
|
}
|
|
3586
|
+
if (!isSheetDrawing(searchParam)) {
|
|
3587
|
+
params.push(null);
|
|
3588
|
+
return true;
|
|
3589
|
+
}
|
|
3623
3590
|
const { unitId, subUnitId, drawingId, drawingType, anchorType, sheetTransform, axisAlignSheetTransform } = searchParam;
|
|
3624
3591
|
params.push({
|
|
3625
3592
|
unitId,
|
|
@@ -3643,10 +3610,9 @@ const SheetDrawingAnchor = (props) => {
|
|
|
3643
3610
|
const params = getUpdateParams(objects, drawingManagerService);
|
|
3644
3611
|
if (params.length === 0) setAnchorShow(false);
|
|
3645
3612
|
else if (params.length >= 1) {
|
|
3646
|
-
var _params$;
|
|
3647
3613
|
setAnchorShow(true);
|
|
3648
|
-
const
|
|
3649
|
-
setValue(
|
|
3614
|
+
const drawing = params[0];
|
|
3615
|
+
setValue(drawing ? getSheetDrawingPlacement(drawing).kind : SheetDrawingAnchorType.Position);
|
|
3650
3616
|
}
|
|
3651
3617
|
});
|
|
3652
3618
|
return () => {
|
|
@@ -3656,21 +3622,34 @@ const SheetDrawingAnchor = (props) => {
|
|
|
3656
3622
|
}, [drawingManagerService, transformer]);
|
|
3657
3623
|
if (!drawingParam || !transformer) return null;
|
|
3658
3624
|
function handleChange(value) {
|
|
3659
|
-
|
|
3625
|
+
const kind = getAnchorKind(value);
|
|
3626
|
+
if (!kind) return;
|
|
3660
3627
|
const focusDrawings = drawingManagerService.getFocusDrawings();
|
|
3661
|
-
if (focusDrawings.length
|
|
3662
|
-
const
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3628
|
+
if (!focusDrawings.length || !focusDrawings.every(isSheetDrawing)) return;
|
|
3629
|
+
const { unitId, subUnitId } = focusDrawings[0];
|
|
3630
|
+
const placementUpdates = [];
|
|
3631
|
+
for (const drawing of focusDrawings) {
|
|
3632
|
+
const { transform } = drawing;
|
|
3633
|
+
const { left, top, width, height } = transform ?? {};
|
|
3634
|
+
if (typeof left !== "number" || typeof top !== "number" || typeof width !== "number" || typeof height !== "number" || !Number.isFinite(left) || !Number.isFinite(top) || !Number.isFinite(width) || !Number.isFinite(height)) return;
|
|
3635
|
+
placementUpdates.push({
|
|
3666
3636
|
drawingId: drawing.drawingId,
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3637
|
+
placement: {
|
|
3638
|
+
kind,
|
|
3639
|
+
bounds: {
|
|
3640
|
+
left,
|
|
3641
|
+
top,
|
|
3642
|
+
width,
|
|
3643
|
+
height
|
|
3644
|
+
}
|
|
3645
|
+
}
|
|
3646
|
+
});
|
|
3647
|
+
}
|
|
3648
|
+
if (commandService.syncExecuteCommand(SetSheetDrawingPlacementCommand.id, {
|
|
3649
|
+
unitId,
|
|
3650
|
+
subUnitId,
|
|
3651
|
+
drawings: placementUpdates
|
|
3652
|
+
})) setValue(kind);
|
|
3674
3653
|
}
|
|
3675
3654
|
return /* @__PURE__ */ jsxs("div", {
|
|
3676
3655
|
className: clsx("univer-grid univer-gap-2 univer-py-2 univer-text-gray-400", { "univer-hidden": !anchorShow }),
|
|
@@ -3698,6 +3677,13 @@ const SheetDrawingAnchor = (props) => {
|
|
|
3698
3677
|
}) })]
|
|
3699
3678
|
});
|
|
3700
3679
|
};
|
|
3680
|
+
function isSheetDrawing(drawing) {
|
|
3681
|
+
return Boolean(drawing && "sheetTransform" in drawing && "axisAlignSheetTransform" in drawing);
|
|
3682
|
+
}
|
|
3683
|
+
function getAnchorKind(value) {
|
|
3684
|
+
if (value === SheetDrawingAnchorType.Position || value === SheetDrawingAnchorType.Both || value === SheetDrawingAnchorType.None) return value;
|
|
3685
|
+
return null;
|
|
3686
|
+
}
|
|
3701
3687
|
|
|
3702
3688
|
//#endregion
|
|
3703
3689
|
//#region src/views/sheet-image-panel/SheetDrawingPanel.tsx
|
|
@@ -3813,16 +3799,15 @@ let DrawingContextMenuController = class DrawingContextMenuController extends Rx
|
|
|
3813
3799
|
}));
|
|
3814
3800
|
}
|
|
3815
3801
|
_getContextMenuPosition(drawings) {
|
|
3816
|
-
var _this$_drawingContext;
|
|
3817
3802
|
if (drawings.length !== 1) return ContextMenuPosition.DRAWING;
|
|
3818
3803
|
const [drawing] = drawings;
|
|
3819
|
-
return
|
|
3804
|
+
return this._drawingContextMenuService.getContextMenuPosition({
|
|
3820
3805
|
unitId: drawing.unitId,
|
|
3821
3806
|
subUnitId: drawing.subUnitId,
|
|
3822
3807
|
drawingId: drawing.drawingId,
|
|
3823
3808
|
drawingType: drawing.drawingType,
|
|
3824
3809
|
drawing
|
|
3825
|
-
})
|
|
3810
|
+
}) ?? ContextMenuPosition.DRAWING;
|
|
3826
3811
|
}
|
|
3827
3812
|
};
|
|
3828
3813
|
DrawingContextMenuController = __decorate([
|
|
@@ -3914,7 +3899,14 @@ let SheetsDrawingRenderController = class SheetsDrawingRenderController extends
|
|
|
3914
3899
|
const drawingData = subUnitData.data[drawingId];
|
|
3915
3900
|
const { unitId, subUnitId } = drawingData;
|
|
3916
3901
|
const skeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
|
|
3917
|
-
if (skeletonParam && drawingData.sheetTransform
|
|
3902
|
+
if (skeletonParam && drawingData.sheetTransform && !drawingData.groupId) {
|
|
3903
|
+
const transform = drawingPositionToTransform(drawingData.sheetTransform, skeletonParam);
|
|
3904
|
+
drawingData.transform = transform && drawingData.drawingType === DrawingTypeEnum.DRAWING_GROUP ? {
|
|
3905
|
+
...transform,
|
|
3906
|
+
left: (transform.left ?? 0) - skeletonParam.skeleton.rowHeaderWidthAndMarginLeft,
|
|
3907
|
+
top: (transform.top ?? 0) - skeletonParam.skeleton.columnHeaderHeightAndMarginTop
|
|
3908
|
+
} : transform;
|
|
3909
|
+
}
|
|
3918
3910
|
}
|
|
3919
3911
|
}
|
|
3920
3912
|
this._drawingManagerService.registerDrawingData(this._context.unitId, this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId));
|
|
@@ -3930,9 +3922,11 @@ SheetsDrawingRenderController = __decorate([
|
|
|
3930
3922
|
//#endregion
|
|
3931
3923
|
//#region src/controllers/sheet-cell-image.controller.ts
|
|
3932
3924
|
function resizeImageByCell(injector, location, cell) {
|
|
3933
|
-
var
|
|
3934
|
-
|
|
3935
|
-
|
|
3925
|
+
var _documentData$drawing, _documentData$drawing2;
|
|
3926
|
+
const documentData = cell === null || cell === void 0 ? void 0 : cell.p;
|
|
3927
|
+
const drawingId = isCellImage(documentData) && (documentData === null || documentData === void 0 || (_documentData$drawing = documentData.drawingsOrder) === null || _documentData$drawing === void 0 ? void 0 : _documentData$drawing.length) === 1 ? documentData.drawingsOrder[0] : void 0;
|
|
3928
|
+
const image = drawingId ? documentData === null || documentData === void 0 || (_documentData$drawing2 = documentData.drawings) === null || _documentData$drawing2 === void 0 ? void 0 : _documentData$drawing2[drawingId] : void 0;
|
|
3929
|
+
if (image && documentData) {
|
|
3936
3930
|
const imageSize = getDrawingSizeByCell(injector, {
|
|
3937
3931
|
unitId: location.unitId,
|
|
3938
3932
|
subUnitId: location.subUnitId,
|
|
@@ -3948,8 +3942,8 @@ function resizeImageByCell(injector, location, cell) {
|
|
|
3948
3942
|
image.transform.top = 0;
|
|
3949
3943
|
image.docTransform.positionH.posOffset = 0;
|
|
3950
3944
|
image.docTransform.positionV.posOffset = 0;
|
|
3951
|
-
|
|
3952
|
-
|
|
3945
|
+
documentData.documentStyle.pageSize.width = Infinity;
|
|
3946
|
+
documentData.documentStyle.pageSize.height = Infinity;
|
|
3953
3947
|
return true;
|
|
3954
3948
|
}
|
|
3955
3949
|
}
|
|
@@ -3981,8 +3975,7 @@ let SheetCellImageController = class SheetCellImageController extends Disposable
|
|
|
3981
3975
|
effect: InterceptorEffectEnum.Style,
|
|
3982
3976
|
priority: InterceptCellContentPriority.CELL_IMAGE,
|
|
3983
3977
|
handler: (cell, pos, next) => {
|
|
3984
|
-
|
|
3985
|
-
if ((cell === null || cell === void 0 ? void 0 : cell.p) && ((_cell$p$drawingsOrder = cell.p.drawingsOrder) === null || _cell$p$drawingsOrder === void 0 ? void 0 : _cell$p$drawingsOrder.length)) {
|
|
3978
|
+
if (cell && isCellImage(cell.p)) {
|
|
3986
3979
|
if (cell === pos.rawData) cell = { ...pos.rawData };
|
|
3987
3980
|
if (!cell.interceptorStyle) cell.interceptorStyle = {};
|
|
3988
3981
|
cell.interceptorStyle.tr = { a: 0 };
|
|
@@ -4082,10 +4075,9 @@ let SheetCellImageCopyPasteController = class SheetCellImageCopyPasteController
|
|
|
4082
4075
|
_initDocImageCopyPasteHooks() {
|
|
4083
4076
|
this.disposeWithMe(this._commandService.beforeCommandExecuted((commandInfo) => {
|
|
4084
4077
|
if (commandInfo.id === InnerPasteCommand.id) {
|
|
4085
|
-
var _doc$drawings;
|
|
4086
4078
|
const { doc } = commandInfo.params;
|
|
4087
4079
|
const currentDoc = this._univerInstanceService.getCurrentUnitOfType(UniverInstanceType.UNIVER_DOC);
|
|
4088
|
-
if (currentDoc == null || !Object.keys(
|
|
4080
|
+
if (currentDoc == null || !Object.keys(doc.drawings ?? {}).length) return;
|
|
4089
4081
|
const docUnitId = currentDoc.getUnitId();
|
|
4090
4082
|
if (DISABLE_UNITS.includes(docUnitId)) {
|
|
4091
4083
|
var _currentDoc$getBody;
|
|
@@ -4152,12 +4144,11 @@ let SheetDrawingActiveRenderController = class SheetDrawingActiveRenderControlle
|
|
|
4152
4144
|
setTimeout(() => {
|
|
4153
4145
|
const drawingMap = this._drawingManagerService.drawingManagerData;
|
|
4154
4146
|
const removeDrawings = [];
|
|
4155
|
-
Object.keys(drawingMap
|
|
4156
|
-
|
|
4157
|
-
const subUnitMap = (_drawingMap$unitId = drawingMap[unitId]) !== null && _drawingMap$unitId !== void 0 ? _drawingMap$unitId : {};
|
|
4147
|
+
Object.keys(drawingMap ?? {}).forEach((unitId) => {
|
|
4148
|
+
const subUnitMap = drawingMap[unitId] ?? {};
|
|
4158
4149
|
Object.keys(subUnitMap).forEach((subUnitId) => {
|
|
4159
|
-
var _subUnitMap$subUnitId
|
|
4160
|
-
const drawingData = (_subUnitMap$subUnitId =
|
|
4150
|
+
var _subUnitMap$subUnitId;
|
|
4151
|
+
const drawingData = ((_subUnitMap$subUnitId = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId === void 0 ? void 0 : _subUnitMap$subUnitId.data) ?? {};
|
|
4161
4152
|
Object.keys(drawingData).forEach((drawingId) => {
|
|
4162
4153
|
if (unitId === selfUnitId) removeDrawings.push(drawingData[drawingId]);
|
|
4163
4154
|
});
|
|
@@ -4173,13 +4164,12 @@ let SheetDrawingActiveRenderController = class SheetDrawingActiveRenderControlle
|
|
|
4173
4164
|
const drawingMap = this._drawingManagerService.drawingManagerData;
|
|
4174
4165
|
const insertDrawings = [];
|
|
4175
4166
|
const removeDrawings = [];
|
|
4176
|
-
Object.keys(drawingMap
|
|
4177
|
-
var _drawingMap$unitId2;
|
|
4167
|
+
Object.keys(drawingMap ?? {}).forEach((unitId) => {
|
|
4178
4168
|
if (unitId !== showUnitId) return;
|
|
4179
|
-
const subUnitMap =
|
|
4169
|
+
const subUnitMap = drawingMap[unitId] ?? {};
|
|
4180
4170
|
Object.keys(subUnitMap).forEach((subUnitId) => {
|
|
4181
|
-
var _subUnitMap$
|
|
4182
|
-
const drawingData = (
|
|
4171
|
+
var _subUnitMap$subUnitId2;
|
|
4172
|
+
const drawingData = ((_subUnitMap$subUnitId2 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId2 === void 0 ? void 0 : _subUnitMap$subUnitId2.data) ?? {};
|
|
4183
4173
|
Object.keys(drawingData).forEach((drawingId) => {
|
|
4184
4174
|
if (unitId === showUnitId && subUnitId === showSubunitId) {
|
|
4185
4175
|
const drawing = drawingData[drawingId];
|
|
@@ -4403,7 +4393,6 @@ let SheetsDrawingCopyPasteController = class SheetsDrawingCopyPasteController ex
|
|
|
4403
4393
|
subUnitId,
|
|
4404
4394
|
isCut: copyType === COPY_TYPE.CUT,
|
|
4405
4395
|
getTransform: (transform, sheetTransform) => {
|
|
4406
|
-
var _transformToDrawingPo, _transformToAxisAlign;
|
|
4407
4396
|
const pasteRect = attachRangeWithCoord(pasteToSkeleton, {
|
|
4408
4397
|
startRow: pasteRange.startRow,
|
|
4409
4398
|
endRow: pasteRange.endRow,
|
|
@@ -4417,8 +4406,8 @@ let SheetsDrawingCopyPasteController = class SheetsDrawingCopyPasteController ex
|
|
|
4417
4406
|
};
|
|
4418
4407
|
return {
|
|
4419
4408
|
transform: newTransform,
|
|
4420
|
-
sheetTransform:
|
|
4421
|
-
axisAlignSheetTransform:
|
|
4409
|
+
sheetTransform: transformToDrawingPosition(newTransform, pasteToSkeleton) ?? sheetTransform,
|
|
4410
|
+
axisAlignSheetTransform: transformToAxisAlignPosition(newTransform, pasteToSkeleton) ?? sheetTransform
|
|
4422
4411
|
};
|
|
4423
4412
|
}
|
|
4424
4413
|
});
|
|
@@ -4549,11 +4538,10 @@ let SheetsDrawingCopyPasteController = class SheetsDrawingCopyPasteController ex
|
|
|
4549
4538
|
unitId: toUnitId,
|
|
4550
4539
|
subUnitId: toSubUnitId,
|
|
4551
4540
|
getTransform: (transform, sheetTransform) => {
|
|
4552
|
-
var _transform$left, _transform$top, _transformToAxisAlign2;
|
|
4553
4541
|
const newTransform = {
|
|
4554
4542
|
...transform,
|
|
4555
|
-
left: ((
|
|
4556
|
-
top: ((
|
|
4543
|
+
left: ((transform === null || transform === void 0 ? void 0 : transform.left) ?? 0) + leftOffset,
|
|
4544
|
+
top: ((transform === null || transform === void 0 ? void 0 : transform.top) ?? 0) + topOffset
|
|
4557
4545
|
};
|
|
4558
4546
|
return {
|
|
4559
4547
|
transform: newTransform,
|
|
@@ -4570,7 +4558,7 @@ let SheetsDrawingCopyPasteController = class SheetsDrawingCopyPasteController ex
|
|
|
4570
4558
|
column: sheetTransform.from.column + columnOffset
|
|
4571
4559
|
}
|
|
4572
4560
|
},
|
|
4573
|
-
axisAlignSheetTransform:
|
|
4561
|
+
axisAlignSheetTransform: transformToAxisAlignPosition(newTransform, toSkeleton) ?? sheetTransform
|
|
4574
4562
|
};
|
|
4575
4563
|
},
|
|
4576
4564
|
isCut: copyType === COPY_TYPE.CUT
|
|
@@ -4794,6 +4782,10 @@ let SheetDrawingPermissionController = class SheetDrawingPermissionController ex
|
|
|
4794
4782
|
const { drawings } = command.params;
|
|
4795
4783
|
unitId = drawings === null || drawings === void 0 || (_drawings$ = drawings[0]) === null || _drawings$ === void 0 ? void 0 : _drawings$.unitId;
|
|
4796
4784
|
subUnitId = drawings === null || drawings === void 0 || (_drawings$2 = drawings[0]) === null || _drawings$2 === void 0 ? void 0 : _drawings$2.subUnitId;
|
|
4785
|
+
} else if (command.id === SetSheetDrawingPlacementCommand.id) {
|
|
4786
|
+
const target = getPlacementCommandTarget(command.params);
|
|
4787
|
+
unitId = target.unitId;
|
|
4788
|
+
subUnitId = target.subUnitId;
|
|
4797
4789
|
} else if (command.id === SetDrawingArrangeCommand.id) {
|
|
4798
4790
|
const params = command.params;
|
|
4799
4791
|
unitId = params.unitId;
|
|
@@ -4817,16 +4809,23 @@ SheetDrawingPermissionController = __decorate([
|
|
|
4817
4809
|
__decorateParam(6, Inject(SheetPermissionCheckController)),
|
|
4818
4810
|
__decorateParam(7, Inject(ISheetDrawingService))
|
|
4819
4811
|
], SheetDrawingPermissionController);
|
|
4812
|
+
function getPlacementCommandTarget(params) {
|
|
4813
|
+
if (!params) return {};
|
|
4814
|
+
return {
|
|
4815
|
+
unitId: "unitId" in params && typeof params.unitId === "string" ? params.unitId : void 0,
|
|
4816
|
+
subUnitId: "subUnitId" in params && typeof params.subUnitId === "string" ? params.subUnitId : void 0
|
|
4817
|
+
};
|
|
4818
|
+
}
|
|
4820
4819
|
|
|
4821
4820
|
//#endregion
|
|
4822
4821
|
//#region src/views/PrintingFloatDom.tsx
|
|
4823
4822
|
function createPrintingFloatDom(info, scene, skeleton, worksheet) {
|
|
4824
4823
|
const { width, height, angle, left, top } = info.transform;
|
|
4825
4824
|
const offsetBound = transformBound2DOMBound({
|
|
4826
|
-
left: left
|
|
4827
|
-
right: (left
|
|
4828
|
-
top: top
|
|
4829
|
-
bottom: (top
|
|
4825
|
+
left: left ?? 0,
|
|
4826
|
+
right: (left ?? 0) + (width ?? 0),
|
|
4827
|
+
top: top ?? 0,
|
|
4828
|
+
bottom: (top ?? 0) + (height ?? 0)
|
|
4830
4829
|
}, scene, skeleton, worksheet, void 0, true);
|
|
4831
4830
|
const { scaleX, scaleY } = scene.getAncestorScale();
|
|
4832
4831
|
const domPos = {
|
|
@@ -5328,7 +5327,7 @@ let DrawingPopupMenuController = class DrawingPopupMenuController extends RxDisp
|
|
|
5328
5327
|
const menus = this._canvasPopManagerService.getFeatureMenu(unitId, subUnitId, drawingId, drawingType);
|
|
5329
5328
|
singletonPopupDisposer = this.disposeWithMe(this._canvasPopManagerService.attachPopupToObject(object, {
|
|
5330
5329
|
componentKey: COMPONENT_IMAGE_POPUP_MENU,
|
|
5331
|
-
direction: "horizontal",
|
|
5330
|
+
direction: this._localeService.getDirection() === "rtl" ? "left" : "horizontal",
|
|
5332
5331
|
offset: [2, 0],
|
|
5333
5332
|
extraProps: { menuItems: menus || this._getImageMenuItems(unitId, subUnitId, drawingId, drawingType) }
|
|
5334
5333
|
}));
|
|
@@ -5622,7 +5621,7 @@ _defineProperty(UniverSheetsDrawingUIPlugin, "pluginName", "SHEET_IMAGE_UI_PLUGI
|
|
|
5622
5621
|
_defineProperty(UniverSheetsDrawingUIPlugin, "packageName", name);
|
|
5623
5622
|
_defineProperty(UniverSheetsDrawingUIPlugin, "version", version);
|
|
5624
5623
|
UniverSheetsDrawingUIPlugin = __decorate([
|
|
5625
|
-
DependentOn(UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverSheetsPlugin,
|
|
5624
|
+
DependentOn(UniverDrawingPlugin, UniverRenderEnginePlugin, UniverDocsDrawingPlugin, UniverSheetsPlugin, UniverSheetsDrawingPlugin, UniverDrawingUIPlugin, UniverSheetsUIPlugin),
|
|
5626
5625
|
__decorateParam(1, Inject(Injector)),
|
|
5627
5626
|
__decorateParam(2, IRenderManagerService),
|
|
5628
5627
|
__decorateParam(3, IConfigService)
|