@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 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
- if (!info) return null;
17
- const { unitId, subUnitId } = info;
18
- const { rect } = info;
19
- const { left = 0, top = 0, width = 0, height = 0, flipX = false, flipY = false, angle = 0, skewX = 0, skewY = 0 } = rect.getState();
20
- const drawingParm = this._injector.get(_univerjs_sheets_drawing.ISheetDrawingService).getDrawingByParam({
21
- drawingId: info.id,
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 (!drawingParm) return null;
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: drawingParm.componentKey,
39
- allowTransform: drawingParm.allowTransform,
40
- data: drawingParm.data,
41
- id: info.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.149.0/helpers/esm/typeof.js
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.149.0/helpers/esm/toPrimitive.js
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.149.0/helpers/esm/toPropertyKey.js
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.149.0/helpers/esm/defineProperty.js
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.149.0/helpers/esm/decorateParam.js
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.149.0/helpers/esm/decorate.js
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.max(scaleWidth, scaleHeight);
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.4";
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-bg-primary-500/60 univer-absolute univer-top-0 univer-h-full univer-rounded-full", isRtl ? "univer-right-0" : "univer-left-0"),
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
- const transform = (0, _univerjs_sheets_drawing.drawingPositionToTransform)(drawingData.sheetTransform, skeletonParam);
4621
- drawingData.transform = transform && drawingData.drawingType === _univerjs_core.DrawingTypeEnum.DRAWING_GROUP ? {
4622
- ...transform,
4623
- left: (transform.left ?? 0) - skeletonParam.skeleton.rowHeaderWidthAndMarginLeft,
4624
- top: (transform.top ?? 0) - skeletonParam.skeleton.columnHeaderHeightAndMarginTop
4625
- } : transform;
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) this._updateDrawings(unitId, unit.getActiveSheet().getSheetId());
4939
- else this._clearDrawings(unitId);
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(selfUnitId) {
4943
- this._scheduleRender(() => {
4944
- const drawingMap = this._drawingManagerService.drawingManagerData;
4945
- const removeDrawings = [];
4946
- Object.keys(drawingMap ?? {}).forEach((unitId) => {
4947
- const subUnitMap = drawingMap[unitId] ?? {};
4948
- Object.keys(subUnitMap).forEach((subUnitId) => {
4949
- var _subUnitMap$subUnitId;
4950
- const drawingData = ((_subUnitMap$subUnitId = subUnitMap[subUnitId]) === null || _subUnitMap$subUnitId === void 0 ? void 0 : _subUnitMap$subUnitId.data) ?? {};
4951
- Object.keys(drawingData).forEach((drawingId) => {
4952
- if (unitId === selfUnitId) removeDrawings.push(drawingData[drawingId]);
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 drawingMap = this._drawingManagerService.drawingManagerData;
4964
- const insertDrawings = [];
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(insertDrawings);
5002
+ this._sheetDrawingService.addNotification(successDrawings);
4986
5003
  this._drawingManagerService.removeNotification(removeDrawings);
4987
- this._drawingManagerService.addNotification(insertDrawings);
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, 'BatchSaveImagesService', {
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, 'SheetCanvasFloatDomManagerService', {
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, 'SheetDrawingHitTestService', {
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, 'SheetDrawingUpdateController', {
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, 'SheetsDrawingGroupCopyPasteController', {
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, 'UniverSheetsDrawingMobileUIPlugin', {
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, 'UniverSheetsDrawingUIPlugin', {
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
- if (!info) return null;
17
- const { unitId, subUnitId } = info;
18
- const { rect } = info;
19
- const { left = 0, top = 0, width = 0, height = 0, flipX = false, flipY = false, angle = 0, skewX = 0, skewY = 0 } = rect.getState();
20
- const drawingParm = this._injector.get(ISheetDrawingService).getDrawingByParam({
21
- drawingId: info.id,
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 (!drawingParm) return null;
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: drawingParm.componentKey,
39
- allowTransform: drawingParm.allowTransform,
40
- data: drawingParm.data,
41
- id: info.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);