@univerjs/sheets-drawing-ui 1.0.4 → 1.2.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 +18 -43
- package/lib/cjs/index.js +132 -76
- package/lib/es/facade.js +18 -43
- package/lib/es/index.js +127 -71
- package/lib/facade.js +18 -43
- package/lib/index.css +4 -0
- package/lib/index.js +127 -71
- package/lib/types/controllers/render-controllers/sheet-drawing.render-controller.d.ts +3 -2
- package/lib/types/controllers/sheet-drawing-active-render.controller.d.ts +3 -2
- package/lib/types/facade/f-worksheet.d.ts +1 -0
- package/lib/types/services/canvas-float-dom-manager.service.d.ts +2 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +17 -17
package/lib/cjs/facade.js
CHANGED
|
@@ -13,16 +13,23 @@ let _univerjs_engine_render = require("@univerjs/engine-render");
|
|
|
13
13
|
var FWorksheetDrawingUIMixin = class extends _univerjs_sheets_facade.FWorksheet {
|
|
14
14
|
getFloatDomById(id) {
|
|
15
15
|
const info = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
16
|
+
return info ? this._getFloatDomResult(info) : null;
|
|
17
|
+
}
|
|
18
|
+
getAllFloatDoms() {
|
|
19
|
+
const floatDomService = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService);
|
|
20
|
+
const unitId = this._workbook.getUnitId();
|
|
21
|
+
const subUnitId = this._worksheet.getSheetId();
|
|
22
|
+
return floatDomService.getFloatDomsBySubUnitId(unitId, subUnitId).map((info) => this._getFloatDomResult(info)).filter((dom) => dom != null);
|
|
23
|
+
}
|
|
24
|
+
_getFloatDomResult(info) {
|
|
25
|
+
const { unitId, subUnitId, id, rect, runtimeMetadata } = info;
|
|
26
|
+
const metadata = runtimeMetadata ?? this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
|
|
27
|
+
drawingId: id,
|
|
22
28
|
unitId,
|
|
23
29
|
subUnitId
|
|
24
30
|
});
|
|
25
|
-
if (!
|
|
31
|
+
if (!metadata) return null;
|
|
32
|
+
const { left = 0, top = 0, width = 0, height = 0, flipX = false, flipY = false, angle = 0, skewX = 0, skewY = 0 } = rect.getState();
|
|
26
33
|
return {
|
|
27
34
|
position: {
|
|
28
35
|
left,
|
|
@@ -35,44 +42,12 @@ var FWorksheetDrawingUIMixin = class extends _univerjs_sheets_facade.FWorksheet
|
|
|
35
42
|
skewX,
|
|
36
43
|
skewY
|
|
37
44
|
},
|
|
38
|
-
componentKey:
|
|
39
|
-
allowTransform:
|
|
40
|
-
data:
|
|
41
|
-
id
|
|
45
|
+
componentKey: metadata.componentKey,
|
|
46
|
+
allowTransform: metadata.allowTransform,
|
|
47
|
+
data: metadata.data,
|
|
48
|
+
id
|
|
42
49
|
};
|
|
43
50
|
}
|
|
44
|
-
getAllFloatDoms() {
|
|
45
|
-
const floatDomService = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService);
|
|
46
|
-
const unitId = this._workbook.getUnitId();
|
|
47
|
-
const subUnitId = this._worksheet.getSheetId();
|
|
48
|
-
return Array.from(floatDomService.getFloatDomsBySubUnitId(unitId, subUnitId).values()).map((info) => {
|
|
49
|
-
const { rect } = info;
|
|
50
|
-
const drawingParm = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
|
|
51
|
-
drawingId: info.id,
|
|
52
|
-
unitId,
|
|
53
|
-
subUnitId
|
|
54
|
-
});
|
|
55
|
-
if (!drawingParm) return null;
|
|
56
|
-
const { left, top, width, height, flipX, flipY, angle, skewX, skewY } = rect.getState();
|
|
57
|
-
return {
|
|
58
|
-
position: {
|
|
59
|
-
left,
|
|
60
|
-
top,
|
|
61
|
-
width,
|
|
62
|
-
height,
|
|
63
|
-
flipX,
|
|
64
|
-
flipY,
|
|
65
|
-
angle,
|
|
66
|
-
skewX,
|
|
67
|
-
skewY
|
|
68
|
-
},
|
|
69
|
-
componentKey: drawingParm.componentKey,
|
|
70
|
-
allowTransform: drawingParm.allowTransform,
|
|
71
|
-
data: drawingParm.data,
|
|
72
|
-
id: info.id
|
|
73
|
-
};
|
|
74
|
-
}).filter((dom) => dom != null);
|
|
75
|
-
}
|
|
76
51
|
updateFloatDom(id, config) {
|
|
77
52
|
const sheetSkeletonService = this._injector.get(_univerjs_sheets.SheetSkeletonService);
|
|
78
53
|
const info = this._injector.get(_univerjs_sheets_drawing_ui.SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
|
package/lib/cjs/index.js
CHANGED
|
@@ -428,7 +428,7 @@ function readUint32Be(bytes, offset) {
|
|
|
428
428
|
}
|
|
429
429
|
|
|
430
430
|
//#endregion
|
|
431
|
-
//#region \0@oxc-project+runtime@0.
|
|
431
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
432
432
|
function _typeof(o) {
|
|
433
433
|
"@babel/helpers - typeof";
|
|
434
434
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -439,7 +439,7 @@ function _typeof(o) {
|
|
|
439
439
|
}
|
|
440
440
|
|
|
441
441
|
//#endregion
|
|
442
|
-
//#region \0@oxc-project+runtime@0.
|
|
442
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
443
443
|
function toPrimitive(t, r) {
|
|
444
444
|
if ("object" != _typeof(t) || !t) return t;
|
|
445
445
|
var e = t[Symbol.toPrimitive];
|
|
@@ -452,14 +452,14 @@ function toPrimitive(t, r) {
|
|
|
452
452
|
}
|
|
453
453
|
|
|
454
454
|
//#endregion
|
|
455
|
-
//#region \0@oxc-project+runtime@0.
|
|
455
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
456
456
|
function toPropertyKey(t) {
|
|
457
457
|
var i = toPrimitive(t, "string");
|
|
458
458
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
459
459
|
}
|
|
460
460
|
|
|
461
461
|
//#endregion
|
|
462
|
-
//#region \0@oxc-project+runtime@0.
|
|
462
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
463
463
|
function _defineProperty(e, r, t) {
|
|
464
464
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
465
465
|
value: t,
|
|
@@ -470,7 +470,7 @@ function _defineProperty(e, r, t) {
|
|
|
470
470
|
}
|
|
471
471
|
|
|
472
472
|
//#endregion
|
|
473
|
-
//#region \0@oxc-project+runtime@0.
|
|
473
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
474
474
|
function __decorateParam(paramIndex, decorator) {
|
|
475
475
|
return function(target, key) {
|
|
476
476
|
decorator(target, key, paramIndex);
|
|
@@ -478,7 +478,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
478
478
|
}
|
|
479
479
|
|
|
480
480
|
//#endregion
|
|
481
|
-
//#region \0@oxc-project+runtime@0.
|
|
481
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
482
482
|
function __decorate(decorators, target, key, desc) {
|
|
483
483
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
484
484
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -650,7 +650,7 @@ let SheetDrawingUpdateController = class SheetDrawingUpdateController extends _u
|
|
|
650
650
|
if (width > _univerjs_drawing.DRAWING_IMAGE_WIDTH_LIMIT || height > _univerjs_drawing.DRAWING_IMAGE_HEIGHT_LIMIT) {
|
|
651
651
|
const scaleWidth = _univerjs_drawing.DRAWING_IMAGE_WIDTH_LIMIT / width;
|
|
652
652
|
const scaleHeight = _univerjs_drawing.DRAWING_IMAGE_HEIGHT_LIMIT / height;
|
|
653
|
-
scale = Math.
|
|
653
|
+
scale = Math.min(scaleWidth, scaleHeight);
|
|
654
654
|
}
|
|
655
655
|
const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
|
|
656
656
|
if (!sheetSkeletonParam) return;
|
|
@@ -3071,7 +3071,12 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
3071
3071
|
domAnchor,
|
|
3072
3072
|
unitId,
|
|
3073
3073
|
subUnitId,
|
|
3074
|
-
id: drawingId
|
|
3074
|
+
id: drawingId,
|
|
3075
|
+
runtimeMetadata: {
|
|
3076
|
+
componentKey,
|
|
3077
|
+
data,
|
|
3078
|
+
allowTransform
|
|
3079
|
+
}
|
|
3075
3080
|
};
|
|
3076
3081
|
const initedPosition = calcSheetFloatDomPosition(domRect, renderObject.renderUnit.scene, skeletonParam.skeleton, target.worksheet, floatDomInfo);
|
|
3077
3082
|
const position$ = new rxjs.BehaviorSubject(initedPosition);
|
|
@@ -3275,7 +3280,12 @@ let SheetCanvasFloatDomManagerService = _SheetCanvasFloatDomManagerService = cla
|
|
|
3275
3280
|
right: viewMain.right
|
|
3276
3281
|
},
|
|
3277
3282
|
domAnchor: domLayoutParam,
|
|
3278
|
-
scrollDirectionResponse: "HORIZONTAL"
|
|
3283
|
+
scrollDirectionResponse: "HORIZONTAL",
|
|
3284
|
+
runtimeMetadata: {
|
|
3285
|
+
componentKey,
|
|
3286
|
+
data,
|
|
3287
|
+
allowTransform
|
|
3288
|
+
}
|
|
3279
3289
|
};
|
|
3280
3290
|
const initedPosition = calcSheetFloatDomPosition(domRect, renderObject.renderUnit.scene, skeleton.skeleton, target.worksheet, floatDomInfo);
|
|
3281
3291
|
const position$ = new rxjs.BehaviorSubject(initedPosition);
|
|
@@ -3718,7 +3728,7 @@ const menuSchema = {
|
|
|
3718
3728
|
//#endregion
|
|
3719
3729
|
//#region package.json
|
|
3720
3730
|
var name = "@univerjs/sheets-drawing-ui";
|
|
3721
|
-
var version = "1.0
|
|
3731
|
+
var version = "1.2.0";
|
|
3722
3732
|
|
|
3723
3733
|
//#endregion
|
|
3724
3734
|
//#region src/config/config.ts
|
|
@@ -4222,7 +4232,7 @@ function SheetImageTransparencySlider(props) {
|
|
|
4222
4232
|
className: "univer-relative univer-h-1.5 univer-bg-gray-200 dark:!univer-bg-gray-600",
|
|
4223
4233
|
onPointerDown: handlePointerDown,
|
|
4224
4234
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4225
|
-
className: (0, _univerjs_design.clsx)("univer-
|
|
4235
|
+
className: (0, _univerjs_design.clsx)("univer-absolute univer-top-0 univer-h-full univer-rounded-full univer-bg-primary-500", isRtl ? "univer-right-0" : "univer-left-0"),
|
|
4226
4236
|
style: { width: `${sliderOffset}%` }
|
|
4227
4237
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
4228
4238
|
className: (0, _univerjs_design.clsx)("univer-absolute univer-top-1/2 univer-size-3.5 -univer-translate-x-1/2 -univer-translate-y-1/2 univer-rounded-full univer-bg-gray-0 univer-shadow-sm focus-visible:univer-outline-none focus-visible:univer-ring-2 focus-visible:univer-ring-primary-100 dark:!univer-bg-gray-800", _univerjs_design.borderClassName, {
|
|
@@ -4264,6 +4274,12 @@ function SheetImageTransparencyInput(props) {
|
|
|
4264
4274
|
(0, react.useEffect)(() => {
|
|
4265
4275
|
if (!isEditingRef.current) setInputValue(`${value}%`);
|
|
4266
4276
|
}, [value]);
|
|
4277
|
+
function parseTransparency(rawValue) {
|
|
4278
|
+
const normalizedValue = rawValue.trim().replace(/%$/, "").trim();
|
|
4279
|
+
if (normalizedValue === "") return null;
|
|
4280
|
+
const parsedValue = Number(normalizedValue);
|
|
4281
|
+
return Number.isFinite(parsedValue) ? normalizeTransparency$1(parsedValue) : null;
|
|
4282
|
+
}
|
|
4267
4283
|
function emitValue(nextValue) {
|
|
4268
4284
|
const normalizedValue = normalizeTransparency$1(nextValue);
|
|
4269
4285
|
onChange === null || onChange === void 0 || onChange(normalizedValue);
|
|
@@ -4343,12 +4359,6 @@ function SheetImageTransparencyInput(props) {
|
|
|
4343
4359
|
})]
|
|
4344
4360
|
});
|
|
4345
4361
|
}
|
|
4346
|
-
function parseTransparency(rawValue) {
|
|
4347
|
-
const normalizedValue = rawValue.trim().replace(/%$/, "").trim();
|
|
4348
|
-
if (normalizedValue === "") return null;
|
|
4349
|
-
const parsedValue = Number(normalizedValue);
|
|
4350
|
-
return Number.isFinite(parsedValue) ? normalizeTransparency$1(parsedValue) : null;
|
|
4351
|
-
}
|
|
4352
4362
|
function normalizeTransparency$1(value) {
|
|
4353
4363
|
return Math.min(Math.max(Math.round(value), MIN_TRANSPARENCY), MAX_TRANSPARENCY);
|
|
4354
4364
|
}
|
|
@@ -4596,12 +4606,13 @@ SheetCellImageHoverRenderController = __decorate([
|
|
|
4596
4606
|
//#endregion
|
|
4597
4607
|
//#region src/controllers/render-controllers/sheet-drawing.render-controller.ts
|
|
4598
4608
|
let SheetsDrawingRenderController = class SheetsDrawingRenderController extends _univerjs_core.Disposable {
|
|
4599
|
-
constructor(_context, _sheetDrawingService, _drawingManagerService, _sheetSkeletonService) {
|
|
4609
|
+
constructor(_context, _sheetDrawingService, _drawingManagerService, _sheetSkeletonService, _logService) {
|
|
4600
4610
|
super();
|
|
4601
4611
|
this._context = _context;
|
|
4602
4612
|
this._sheetDrawingService = _sheetDrawingService;
|
|
4603
4613
|
this._drawingManagerService = _drawingManagerService;
|
|
4604
4614
|
this._sheetSkeletonService = _sheetSkeletonService;
|
|
4615
|
+
this._logService = _logService;
|
|
4605
4616
|
this._init();
|
|
4606
4617
|
}
|
|
4607
4618
|
_init() {
|
|
@@ -4610,22 +4621,38 @@ let SheetsDrawingRenderController = class SheetsDrawingRenderController extends
|
|
|
4610
4621
|
_drawingInitializeListener() {
|
|
4611
4622
|
this._sheetDrawingService.initializeNotification(this._context.unitId);
|
|
4612
4623
|
const data = this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId);
|
|
4624
|
+
const refreshedDrawings = [];
|
|
4613
4625
|
for (const subUnit in data) {
|
|
4614
4626
|
const subUnitData = data[subUnit];
|
|
4615
4627
|
for (const drawingId in subUnitData.data) {
|
|
4616
4628
|
const drawingData = subUnitData.data[drawingId];
|
|
4617
4629
|
const { unitId, subUnitId } = drawingData;
|
|
4618
4630
|
const skeletonParam = this._sheetSkeletonService.getSkeletonParam(unitId, subUnitId);
|
|
4619
|
-
if (skeletonParam && drawingData.sheetTransform && !drawingData.groupId && drawingData.anchorType !== _univerjs_sheets_drawing.SheetDrawingAnchorType.None) {
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4631
|
+
if (skeletonParam && drawingData.sheetTransform && !drawingData.groupId && drawingData.anchorType !== _univerjs_sheets_drawing.SheetDrawingAnchorType.None) try {
|
|
4632
|
+
if (drawingData.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_GROUP) {
|
|
4633
|
+
const transform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(drawingData.sheetTransform, skeletonParam);
|
|
4634
|
+
refreshedDrawings.push({
|
|
4635
|
+
...drawingData,
|
|
4636
|
+
transform: transform && {
|
|
4637
|
+
...transform,
|
|
4638
|
+
left: (transform.left ?? 0) - skeletonParam.skeleton.rowHeaderWidthAndMarginLeft,
|
|
4639
|
+
top: (transform.top ?? 0) - skeletonParam.skeleton.columnHeaderHeightAndMarginTop
|
|
4640
|
+
}
|
|
4641
|
+
});
|
|
4642
|
+
} else refreshedDrawings.push((0, _univerjs_sheets_drawing.refreshSheetDrawingPlacement)(drawingData, skeletonParam.skeleton));
|
|
4643
|
+
} catch (error) {
|
|
4644
|
+
this._logService.warn("[SheetsDrawingRenderController]", "Skipping drawing placement initialization", {
|
|
4645
|
+
unitId,
|
|
4646
|
+
subUnitId,
|
|
4647
|
+
drawingId,
|
|
4648
|
+
transform: drawingData.transform,
|
|
4649
|
+
sheetTransform: drawingData.sheetTransform,
|
|
4650
|
+
error
|
|
4651
|
+
});
|
|
4626
4652
|
}
|
|
4627
4653
|
}
|
|
4628
4654
|
}
|
|
4655
|
+
this._sheetDrawingService.refreshTransform(refreshedDrawings);
|
|
4629
4656
|
this._drawingManagerService.registerDrawingData(this._context.unitId, this._sheetDrawingService.getDrawingDataForUnit(this._context.unitId));
|
|
4630
4657
|
this._drawingManagerService.initializeNotification(this._context.unitId);
|
|
4631
4658
|
}
|
|
@@ -4633,7 +4660,8 @@ let SheetsDrawingRenderController = class SheetsDrawingRenderController extends
|
|
|
4633
4660
|
SheetsDrawingRenderController = __decorate([
|
|
4634
4661
|
__decorateParam(1, _univerjs_sheets_drawing.ISheetDrawingService),
|
|
4635
4662
|
__decorateParam(2, _univerjs_drawing.IDrawingManagerService),
|
|
4636
|
-
__decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService))
|
|
4663
|
+
__decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService)),
|
|
4664
|
+
__decorateParam(4, _univerjs_core.ILogService)
|
|
4637
4665
|
], SheetsDrawingRenderController);
|
|
4638
4666
|
|
|
4639
4667
|
//#endregion
|
|
@@ -4899,13 +4927,14 @@ SheetCellImageCopyPasteController = __decorate([
|
|
|
4899
4927
|
//#endregion
|
|
4900
4928
|
//#region src/controllers/sheet-drawing-active-render.controller.ts
|
|
4901
4929
|
let SheetDrawingActiveRenderController = class SheetDrawingActiveRenderController extends _univerjs_core.Disposable {
|
|
4902
|
-
constructor(_context, _commandService, _sheetSkeletonService, _sheetDrawingService, _drawingManagerService) {
|
|
4930
|
+
constructor(_context, _commandService, _sheetSkeletonService, _sheetDrawingService, _drawingManagerService, _logService) {
|
|
4903
4931
|
super();
|
|
4904
4932
|
this._context = _context;
|
|
4905
4933
|
this._commandService = _commandService;
|
|
4906
4934
|
this._sheetSkeletonService = _sheetSkeletonService;
|
|
4907
4935
|
this._sheetDrawingService = _sheetDrawingService;
|
|
4908
4936
|
this._drawingManagerService = _drawingManagerService;
|
|
4937
|
+
this._logService = _logService;
|
|
4909
4938
|
_defineProperty(this, "_renderTimeout", void 0);
|
|
4910
4939
|
this._commandListener();
|
|
4911
4940
|
}
|
|
@@ -4927,64 +4956,57 @@ let SheetDrawingActiveRenderController = class SheetDrawingActiveRenderControlle
|
|
|
4927
4956
|
}, 0);
|
|
4928
4957
|
}
|
|
4929
4958
|
_commandListener() {
|
|
4959
|
+
this.disposeWithMe(this._commandService.beforeCommandExecuted((command) => {
|
|
4960
|
+
if (command.id !== _univerjs_sheets.SetWorksheetActiveOperation.id) return;
|
|
4961
|
+
const { unitId, subUnitId } = command.params;
|
|
4962
|
+
const { unit, unitId: contextUnitId } = this._context;
|
|
4963
|
+
if (unitId !== contextUnitId || !unit.getSheetBySheetId(subUnitId) || unit.getActiveSheet().getSheetId() === subUnitId) return;
|
|
4964
|
+
this._clearDrawings(unitId, subUnitId);
|
|
4965
|
+
}));
|
|
4930
4966
|
this.disposeWithMe(this._commandService.onCommandExecuted((command) => {
|
|
4931
4967
|
if (command.id === _univerjs_sheets.SetWorksheetActiveOperation.id) {
|
|
4932
4968
|
const { unitId, subUnitId } = command.params;
|
|
4933
|
-
this._updateDrawings(unitId, subUnitId);
|
|
4969
|
+
if (unitId === this._context.unitId && subUnitId === this._context.unit.getActiveSheet().getSheetId()) this._updateDrawings(unitId, subUnitId);
|
|
4934
4970
|
}
|
|
4935
4971
|
}));
|
|
4936
4972
|
this.disposeWithMe(this._context.activated$.subscribe((activated) => {
|
|
4937
4973
|
const { unit, unitId } = this._context;
|
|
4938
|
-
if (activated)
|
|
4939
|
-
|
|
4974
|
+
if (activated) {
|
|
4975
|
+
const subUnitId = unit.getActiveSheet().getSheetId();
|
|
4976
|
+
this._clearDrawings(unitId, subUnitId);
|
|
4977
|
+
this._updateDrawings(unitId, subUnitId);
|
|
4978
|
+
} else this._clearDrawings(unitId);
|
|
4940
4979
|
}));
|
|
4941
4980
|
}
|
|
4942
|
-
_clearDrawings(
|
|
4943
|
-
this.
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
});
|
|
4954
|
-
});
|
|
4955
|
-
});
|
|
4956
|
-
this._sheetDrawingService.removeNotification(removeDrawings);
|
|
4957
|
-
this._drawingManagerService.removeNotification(removeDrawings);
|
|
4958
|
-
});
|
|
4981
|
+
_clearDrawings(unitId, keepSubUnitId) {
|
|
4982
|
+
this._cancelPendingRender();
|
|
4983
|
+
const subUnitMap = this._drawingManagerService.drawingManagerData[unitId] ?? {};
|
|
4984
|
+
const removeDrawings = [];
|
|
4985
|
+
for (const subUnitId of Object.keys(subUnitMap)) {
|
|
4986
|
+
var _subUnitMap$subUnitId;
|
|
4987
|
+
if (subUnitId === keepSubUnitId) continue;
|
|
4988
|
+
for (const drawing of Object.values(((_subUnitMap$subUnitId = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId === void 0 ? void 0 : _subUnitMap$subUnitId.data) ?? {})) removeDrawings.push(drawing);
|
|
4989
|
+
}
|
|
4990
|
+
this._sheetDrawingService.removeNotification(removeDrawings);
|
|
4991
|
+
this._drawingManagerService.removeNotification(removeDrawings);
|
|
4959
4992
|
}
|
|
4960
4993
|
_updateDrawings(showUnitId, showSubunitId) {
|
|
4961
4994
|
this._scheduleRender(() => {
|
|
4995
|
+
var _subUnitMap$showSubun;
|
|
4962
4996
|
const sheetSkeletonParam = this._sheetSkeletonService.getSkeletonParam(showUnitId, showSubunitId);
|
|
4963
|
-
const
|
|
4964
|
-
const
|
|
4965
|
-
const refreshedDrawings = [];
|
|
4966
|
-
const removeDrawings = [];
|
|
4967
|
-
Object.keys(drawingMap ?? {}).forEach((unitId) => {
|
|
4968
|
-
if (unitId !== showUnitId) return;
|
|
4969
|
-
const subUnitMap = drawingMap[unitId] ?? {};
|
|
4970
|
-
Object.keys(subUnitMap).forEach((subUnitId) => {
|
|
4971
|
-
var _subUnitMap$subUnitId2;
|
|
4972
|
-
const drawingData = ((_subUnitMap$subUnitId2 = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId2 === void 0 ? void 0 : _subUnitMap$subUnitId2.data) ?? {};
|
|
4973
|
-
Object.keys(drawingData).forEach((drawingId) => {
|
|
4974
|
-
if (unitId === showUnitId && subUnitId === showSubunitId) {
|
|
4975
|
-
const drawing = drawingData[drawingId];
|
|
4976
|
-
if (sheetSkeletonParam && drawing.sheetTransform && drawing.anchorType !== _univerjs_sheets_drawing.SheetDrawingAnchorType.None) refreshedDrawings.push((0, _univerjs_sheets_drawing.applySheetDrawingPlacement)(drawing, (0, _univerjs_sheets_drawing.getSheetDrawingPlacement)(drawing), sheetSkeletonParam.skeleton));
|
|
4977
|
-
insertDrawings.push(drawingData[drawingId]);
|
|
4978
|
-
} else removeDrawings.push(drawingData[drawingId]);
|
|
4979
|
-
});
|
|
4980
|
-
});
|
|
4981
|
-
});
|
|
4997
|
+
const drawingData = ((_subUnitMap$showSubun = (this._drawingManagerService.drawingManagerData[showUnitId] ?? {})[showSubunitId]) === null || _subUnitMap$showSubun === void 0 ? void 0 : _subUnitMap$showSubun.data) ?? {};
|
|
4998
|
+
const { successDrawings, refreshedDrawings, removeDrawings, failures } = prepareSheetDrawings(Object.values(drawingData), sheetSkeletonParam === null || sheetSkeletonParam === void 0 ? void 0 : sheetSkeletonParam.skeleton);
|
|
4982
4999
|
this._sheetDrawingService.refreshTransform(refreshedDrawings);
|
|
4983
5000
|
this._drawingManagerService.refreshTransform(refreshedDrawings);
|
|
4984
5001
|
this._sheetDrawingService.removeNotification(removeDrawings);
|
|
4985
|
-
this._sheetDrawingService.addNotification(
|
|
5002
|
+
this._sheetDrawingService.addNotification(successDrawings);
|
|
4986
5003
|
this._drawingManagerService.removeNotification(removeDrawings);
|
|
4987
|
-
this._drawingManagerService.addNotification(
|
|
5004
|
+
this._drawingManagerService.addNotification(successDrawings);
|
|
5005
|
+
if (failures.length) this._logService.error("[SheetDrawingActiveRenderController]", {
|
|
5006
|
+
unitId: showUnitId,
|
|
5007
|
+
subUnitId: showSubunitId,
|
|
5008
|
+
failures
|
|
5009
|
+
});
|
|
4988
5010
|
});
|
|
4989
5011
|
}
|
|
4990
5012
|
};
|
|
@@ -4992,8 +5014,42 @@ SheetDrawingActiveRenderController = __decorate([
|
|
|
4992
5014
|
__decorateParam(1, _univerjs_core.ICommandService),
|
|
4993
5015
|
__decorateParam(2, (0, _univerjs_core.Inject)(_univerjs_sheets.SheetSkeletonService)),
|
|
4994
5016
|
__decorateParam(3, _univerjs_sheets_drawing.ISheetDrawingService),
|
|
4995
|
-
__decorateParam(4, _univerjs_drawing.IDrawingManagerService)
|
|
5017
|
+
__decorateParam(4, _univerjs_drawing.IDrawingManagerService),
|
|
5018
|
+
__decorateParam(5, _univerjs_core.ILogService)
|
|
4996
5019
|
], SheetDrawingActiveRenderController);
|
|
5020
|
+
function prepareSheetDrawings(drawings, skeleton) {
|
|
5021
|
+
const successDrawings = [];
|
|
5022
|
+
const refreshedDrawings = [];
|
|
5023
|
+
const removeDrawings = [];
|
|
5024
|
+
const failures = [];
|
|
5025
|
+
for (const drawing of drawings) {
|
|
5026
|
+
if (skeleton && drawing.sheetTransform && drawing.anchorType !== _univerjs_sheets_drawing.SheetDrawingAnchorType.None) try {
|
|
5027
|
+
var _refreshed$transform, _refreshed$transform2;
|
|
5028
|
+
const refreshed = (0, _univerjs_sheets_drawing.refreshSheetDrawingPlacement)(drawing, skeleton);
|
|
5029
|
+
refreshedDrawings.push(refreshed);
|
|
5030
|
+
if ((drawing.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_IMAGE || drawing.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_DOM) && (((_refreshed$transform = refreshed.transform) === null || _refreshed$transform === void 0 ? void 0 : _refreshed$transform.width) === 0 || ((_refreshed$transform2 = refreshed.transform) === null || _refreshed$transform2 === void 0 ? void 0 : _refreshed$transform2.height) === 0)) {
|
|
5031
|
+
removeDrawings.push(drawing);
|
|
5032
|
+
continue;
|
|
5033
|
+
}
|
|
5034
|
+
} catch (error) {
|
|
5035
|
+
removeDrawings.push(drawing);
|
|
5036
|
+
failures.push({
|
|
5037
|
+
drawingId: drawing.drawingId,
|
|
5038
|
+
drawingType: drawing.drawingType,
|
|
5039
|
+
anchorType: drawing.anchorType ?? _univerjs_sheets_drawing.SheetDrawingAnchorType.Position,
|
|
5040
|
+
error
|
|
5041
|
+
});
|
|
5042
|
+
continue;
|
|
5043
|
+
}
|
|
5044
|
+
successDrawings.push(drawing);
|
|
5045
|
+
}
|
|
5046
|
+
return {
|
|
5047
|
+
successDrawings,
|
|
5048
|
+
refreshedDrawings,
|
|
5049
|
+
removeDrawings,
|
|
5050
|
+
failures
|
|
5051
|
+
};
|
|
5052
|
+
}
|
|
4997
5053
|
|
|
4998
5054
|
//#endregion
|
|
4999
5055
|
//#region src/controllers/sheet-drawing-copy-paste.controller.ts
|
|
@@ -6965,7 +7021,7 @@ UniverSheetsDrawingUIPlugin = __decorate([
|
|
|
6965
7021
|
|
|
6966
7022
|
//#endregion
|
|
6967
7023
|
exports.AddWorksheetBackgroundImageCommand = AddWorksheetBackgroundImageCommand;
|
|
6968
|
-
Object.defineProperty(exports,
|
|
7024
|
+
Object.defineProperty(exports, "BatchSaveImagesService", {
|
|
6969
7025
|
enumerable: true,
|
|
6970
7026
|
get: function () {
|
|
6971
7027
|
return BatchSaveImagesService;
|
|
@@ -6986,26 +7042,26 @@ exports.SHEETS_IMAGE_MENU_ID = SHEETS_IMAGE_MENU_ID;
|
|
|
6986
7042
|
exports.SHEET_CHART_RENDER_OBJECT_CONFIG = SHEET_CHART_RENDER_OBJECT_CONFIG;
|
|
6987
7043
|
exports.SHEET_FLOAT_DOM_PREFIX = SHEET_FLOAT_DOM_PREFIX;
|
|
6988
7044
|
exports.SaveCellImagesCommand = SaveCellImagesCommand;
|
|
6989
|
-
Object.defineProperty(exports,
|
|
7045
|
+
Object.defineProperty(exports, "SheetCanvasFloatDomManagerService", {
|
|
6990
7046
|
enumerable: true,
|
|
6991
7047
|
get: function () {
|
|
6992
7048
|
return SheetCanvasFloatDomManagerService;
|
|
6993
7049
|
}
|
|
6994
7050
|
});
|
|
6995
7051
|
exports.SheetDrawingAnchor = SheetDrawingAnchor;
|
|
6996
|
-
Object.defineProperty(exports,
|
|
7052
|
+
Object.defineProperty(exports, "SheetDrawingHitTestService", {
|
|
6997
7053
|
enumerable: true,
|
|
6998
7054
|
get: function () {
|
|
6999
7055
|
return SheetDrawingHitTestService;
|
|
7000
7056
|
}
|
|
7001
7057
|
});
|
|
7002
|
-
Object.defineProperty(exports,
|
|
7058
|
+
Object.defineProperty(exports, "SheetDrawingUpdateController", {
|
|
7003
7059
|
enumerable: true,
|
|
7004
7060
|
get: function () {
|
|
7005
7061
|
return SheetDrawingUpdateController;
|
|
7006
7062
|
}
|
|
7007
7063
|
});
|
|
7008
|
-
Object.defineProperty(exports,
|
|
7064
|
+
Object.defineProperty(exports, "SheetsDrawingGroupCopyPasteController", {
|
|
7009
7065
|
enumerable: true,
|
|
7010
7066
|
get: function () {
|
|
7011
7067
|
return SheetsDrawingGroupCopyPasteController;
|
|
@@ -7014,13 +7070,13 @@ Object.defineProperty(exports, 'SheetsDrawingGroupCopyPasteController', {
|
|
|
7014
7070
|
exports.SheetsDrawingUIMenuSchema = menuSchema;
|
|
7015
7071
|
exports.SidebarSheetDrawingOperation = SidebarSheetDrawingOperation;
|
|
7016
7072
|
exports.UngroupSheetDrawingCommand = UngroupSheetDrawingCommand;
|
|
7017
|
-
Object.defineProperty(exports,
|
|
7073
|
+
Object.defineProperty(exports, "UniverSheetsDrawingMobileUIPlugin", {
|
|
7018
7074
|
enumerable: true,
|
|
7019
7075
|
get: function () {
|
|
7020
7076
|
return UniverSheetsDrawingMobileUIPlugin;
|
|
7021
7077
|
}
|
|
7022
7078
|
});
|
|
7023
|
-
Object.defineProperty(exports,
|
|
7079
|
+
Object.defineProperty(exports, "UniverSheetsDrawingUIPlugin", {
|
|
7024
7080
|
enumerable: true,
|
|
7025
7081
|
get: function () {
|
|
7026
7082
|
return UniverSheetsDrawingUIPlugin;
|
package/lib/es/facade.js
CHANGED
|
@@ -13,16 +13,23 @@ import { IRenderManagerService, getCurrentTypeOfRenderer } from "@univerjs/engin
|
|
|
13
13
|
var FWorksheetDrawingUIMixin = class extends FWorksheet {
|
|
14
14
|
getFloatDomById(id) {
|
|
15
15
|
const info = this._injector.get(SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
16
|
+
return info ? this._getFloatDomResult(info) : null;
|
|
17
|
+
}
|
|
18
|
+
getAllFloatDoms() {
|
|
19
|
+
const floatDomService = this._injector.get(SheetCanvasFloatDomManagerService);
|
|
20
|
+
const unitId = this._workbook.getUnitId();
|
|
21
|
+
const subUnitId = this._worksheet.getSheetId();
|
|
22
|
+
return floatDomService.getFloatDomsBySubUnitId(unitId, subUnitId).map((info) => this._getFloatDomResult(info)).filter((dom) => dom != null);
|
|
23
|
+
}
|
|
24
|
+
_getFloatDomResult(info) {
|
|
25
|
+
const { unitId, subUnitId, id, rect, runtimeMetadata } = info;
|
|
26
|
+
const metadata = runtimeMetadata ?? this._injector.get(ISheetDrawingService).getDrawingByParam({
|
|
27
|
+
drawingId: id,
|
|
22
28
|
unitId,
|
|
23
29
|
subUnitId
|
|
24
30
|
});
|
|
25
|
-
if (!
|
|
31
|
+
if (!metadata) return null;
|
|
32
|
+
const { left = 0, top = 0, width = 0, height = 0, flipX = false, flipY = false, angle = 0, skewX = 0, skewY = 0 } = rect.getState();
|
|
26
33
|
return {
|
|
27
34
|
position: {
|
|
28
35
|
left,
|
|
@@ -35,44 +42,12 @@ var FWorksheetDrawingUIMixin = class extends FWorksheet {
|
|
|
35
42
|
skewX,
|
|
36
43
|
skewY
|
|
37
44
|
},
|
|
38
|
-
componentKey:
|
|
39
|
-
allowTransform:
|
|
40
|
-
data:
|
|
41
|
-
id
|
|
45
|
+
componentKey: metadata.componentKey,
|
|
46
|
+
allowTransform: metadata.allowTransform,
|
|
47
|
+
data: metadata.data,
|
|
48
|
+
id
|
|
42
49
|
};
|
|
43
50
|
}
|
|
44
|
-
getAllFloatDoms() {
|
|
45
|
-
const floatDomService = this._injector.get(SheetCanvasFloatDomManagerService);
|
|
46
|
-
const unitId = this._workbook.getUnitId();
|
|
47
|
-
const subUnitId = this._worksheet.getSheetId();
|
|
48
|
-
return Array.from(floatDomService.getFloatDomsBySubUnitId(unitId, subUnitId).values()).map((info) => {
|
|
49
|
-
const { rect } = info;
|
|
50
|
-
const drawingParm = this._injector.get(ISheetDrawingService).getDrawingByParam({
|
|
51
|
-
drawingId: info.id,
|
|
52
|
-
unitId,
|
|
53
|
-
subUnitId
|
|
54
|
-
});
|
|
55
|
-
if (!drawingParm) return null;
|
|
56
|
-
const { left, top, width, height, flipX, flipY, angle, skewX, skewY } = rect.getState();
|
|
57
|
-
return {
|
|
58
|
-
position: {
|
|
59
|
-
left,
|
|
60
|
-
top,
|
|
61
|
-
width,
|
|
62
|
-
height,
|
|
63
|
-
flipX,
|
|
64
|
-
flipY,
|
|
65
|
-
angle,
|
|
66
|
-
skewX,
|
|
67
|
-
skewY
|
|
68
|
-
},
|
|
69
|
-
componentKey: drawingParm.componentKey,
|
|
70
|
-
allowTransform: drawingParm.allowTransform,
|
|
71
|
-
data: drawingParm.data,
|
|
72
|
-
id: info.id
|
|
73
|
-
};
|
|
74
|
-
}).filter((dom) => dom != null);
|
|
75
|
-
}
|
|
76
51
|
updateFloatDom(id, config) {
|
|
77
52
|
const sheetSkeletonService = this._injector.get(SheetSkeletonService);
|
|
78
53
|
const info = this._injector.get(SheetCanvasFloatDomManagerService).getFloatDomInfo(id);
|