@univerjs/sheets-ui 0.10.10-nightly.202510180327 → 0.10.11-nightly.202510220308

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/es/facade.js CHANGED
@@ -832,9 +832,9 @@ class De extends te {
832
832
  ge.indexOf(l) !== -1 && (i.startColumn = Math.min(i.startColumn, h.startColumn), i.startRow = Math.min(i.startRow, h.startRow), i.endColumn = Math.max(i.endColumn, h.endColumn), i.endRow = Math.max(i.endRow, h.endRow));
833
833
  return i;
834
834
  }
835
- scrollToCell(e, r) {
836
- const t = this._workbook.getUnitId(), o = this._injector.get(v).getRenderById(t);
837
- return o && (o == null ? void 0 : o.with(Ee)).scrollToCell(e, r), this;
835
+ scrollToCell(e, r, t) {
836
+ const i = this._workbook.getUnitId(), s = this._injector.get(v).getRenderById(i);
837
+ return s && (s == null ? void 0 : s.with(Ee)).scrollToCell(e, r, t), this;
838
838
  }
839
839
  getScrollState() {
840
840
  const e = {
package/lib/es/index.js CHANGED
@@ -1529,11 +1529,15 @@ class cm extends se {
1529
1529
  * @returns {ISelectionWithCoord[]} {range, primary, style}[]
1530
1530
  */
1531
1531
  getSelectionDataWithStyle() {
1532
- const t = this._selectionControls, [n, i] = this._skeleton.getLocation();
1533
- return t.map((o) => {
1534
- const s = o.getValue();
1535
- return s.rangeWithCoord.sheetId = i, s.rangeWithCoord.unitId = n, s;
1536
- });
1532
+ const t = this._selectionControls;
1533
+ if (this._skeleton.worksheet) {
1534
+ const [n, i] = this._skeleton.getLocation();
1535
+ return t.map((o) => {
1536
+ const s = o.getValue();
1537
+ return s.rangeWithCoord.sheetId = i, s.rangeWithCoord.unitId = n, s;
1538
+ });
1539
+ }
1540
+ return [];
1537
1541
  }
1538
1542
  /**
1539
1543
  * @TODO lumixraku DO NOT expose private props.
@@ -6516,8 +6520,8 @@ let wi = class extends se {
6516
6520
  e && (this.disposeWithMe(
6517
6521
  We(
6518
6522
  this._scrollManagerService.rawScrollInfo$.subscribe((t) => {
6519
- var h;
6520
- const n = (h = this._sheetSkeletonManagerService.getCurrentParam()) == null ? void 0 : h.skeleton;
6523
+ var g;
6524
+ const n = (g = this._sheetSkeletonManagerService.getCurrentParam()) == null ? void 0 : g.skeleton;
6521
6525
  if (!n) return;
6522
6526
  if (t == null) {
6523
6527
  e.scrollToViewportPos({
@@ -6526,12 +6530,12 @@ let wi = class extends se {
6526
6530
  });
6527
6531
  return;
6528
6532
  }
6529
- const { sheetViewStartRow: i, sheetViewStartColumn: o, offsetX: s, offsetY: l } = t, { startX: a, startY: c } = n.getCellWithCoordByIndex(
6533
+ const { sheetViewStartRow: i, sheetViewStartColumn: o, offsetX: s, offsetY: l, duration: a } = t, { startX: c, startY: d } = n.getCellWithCoordByIndex(
6530
6534
  i,
6531
6535
  o,
6532
6536
  !1
6533
- ), d = a + s, u = c + l;
6534
- e.scrollToViewportPos({ viewportScrollX: d, viewportScrollY: u });
6537
+ ), u = c + s, h = d + l;
6538
+ a ? this._smoothScrollToViewportPos({ viewportMain: e, viewportScrollX: u, viewportScrollY: h, duration: a }) : e.scrollToViewportPos({ viewportScrollX: u, viewportScrollY: h });
6535
6539
  })
6536
6540
  )
6537
6541
  ), this.disposeWithMe(
@@ -6602,6 +6606,17 @@ let wi = class extends se {
6602
6606
  })
6603
6607
  ));
6604
6608
  }
6609
+ _smoothScrollToViewportPos(r) {
6610
+ const { viewportMain: e, viewportScrollX: t, viewportScrollY: n, duration: i } = r, o = performance.now(), s = e.viewportScrollX, l = e.viewportScrollY, a = t - s, c = n - l;
6611
+ function d(u) {
6612
+ const h = u - o, g = Math.min(h / i, 1), m = 1 - (1 - g) ** 3, f = s + a * m, v = l + c * m;
6613
+ e.scrollToViewportPos({
6614
+ viewportScrollX: f,
6615
+ viewportScrollY: v
6616
+ }), g < 1 && requestAnimationFrame(d);
6617
+ }
6618
+ requestAnimationFrame(d);
6619
+ }
6605
6620
  _updateViewportScroll(r = 0, e = 0) {
6606
6621
  const t = this._getSheetObject();
6607
6622
  if (!t) return;
@@ -6626,16 +6641,17 @@ let wi = class extends se {
6626
6641
  * @param {number} column - Cell column
6627
6642
  * @returns {boolean} - true if scroll is successful
6628
6643
  */
6629
- scrollToCell(r, e) {
6630
- const t = this._context.unit.getActiveSheet(), {
6631
- ySplit: n,
6632
- xSplit: i
6633
- } = t.getFreeze();
6644
+ scrollToCell(r, e, t) {
6645
+ const n = this._context.unit.getActiveSheet(), {
6646
+ ySplit: i,
6647
+ xSplit: o
6648
+ } = n.getFreeze();
6634
6649
  return this._commandService.syncExecuteCommand(fn.id, {
6635
- sheetViewStartRow: r - n,
6636
- sheetViewStartColumn: e - i,
6650
+ sheetViewStartRow: r - i,
6651
+ sheetViewStartColumn: e - o,
6637
6652
  offsetX: 0,
6638
- offsetY: 0
6653
+ offsetY: 0,
6654
+ duration: t
6639
6655
  });
6640
6656
  }
6641
6657
  _initCommandListener() {
@@ -6816,14 +6832,15 @@ const mn = {
6816
6832
  handler: (r, e) => {
6817
6833
  if (!e)
6818
6834
  return !1;
6819
- const { unitId: t, sheetId: n, offsetX: i, offsetY: o, sheetViewStartColumn: s, sheetViewStartRow: l } = e;
6835
+ const { unitId: t, sheetId: n, offsetX: i, offsetY: o, sheetViewStartColumn: s, sheetViewStartRow: l, duration: a } = e;
6820
6836
  return r.get(ve).getRenderById(t).with(Et).emitRawScrollParam({
6821
6837
  unitId: t,
6822
6838
  sheetId: n,
6823
6839
  offsetX: i,
6824
6840
  offsetY: o,
6825
6841
  sheetViewStartRow: l,
6826
- sheetViewStartColumn: s
6842
+ sheetViewStartColumn: s,
6843
+ duration: a
6827
6844
  }), !0;
6828
6845
  }
6829
6846
  }, Po = {
@@ -6864,22 +6881,23 @@ const mn = {
6864
6881
  const { workbook: o, worksheet: s, unitId: l } = i, c = n.getRenderById(l).with(Et).getCurrentScrollState();
6865
6882
  if (!s)
6866
6883
  return !1;
6867
- const { sheetViewStartRow: d, sheetViewStartColumn: u, offsetX: h, offsetY: g } = e, {
6868
- sheetViewStartColumn: m,
6869
- sheetViewStartRow: f,
6870
- offsetX: v,
6871
- offsetY: p
6872
- } = c || {}, { xSplit: C, ySplit: w } = i.worksheet.getConfig().freeze;
6884
+ const { sheetViewStartRow: d, sheetViewStartColumn: u, offsetX: h, offsetY: g, duration: m } = e, {
6885
+ sheetViewStartColumn: f,
6886
+ sheetViewStartRow: v,
6887
+ offsetX: p,
6888
+ offsetY: C
6889
+ } = c || {}, { xSplit: w, ySplit: S } = i.worksheet.getConfig().freeze;
6873
6890
  return r.get(W).syncExecuteCommand(mn.id, {
6874
6891
  unitId: o.getUnitId(),
6875
6892
  sheetId: s.getSheetId(),
6876
6893
  // why + ySplit? receiver - ySplit in scroll.operation.ts
6877
6894
  // sheetViewStartRow: sheetViewStartRow + ySplit,
6878
6895
  // sheetViewStartColumn: sheetViewStartColumn + xSplit,
6879
- sheetViewStartRow: d != null ? d : f != null ? f : 0 + w,
6880
- sheetViewStartColumn: u != null ? u : m != null ? m : 0 + C,
6881
- offsetX: h != null ? h : v,
6882
- offsetY: g != null ? g : p
6896
+ sheetViewStartRow: d != null ? d : v != null ? v : 0 + S,
6897
+ sheetViewStartColumn: u != null ? u : f != null ? f : 0 + w,
6898
+ offsetX: h != null ? h : p,
6899
+ offsetY: g != null ? g : C,
6900
+ duration: m
6883
6901
  });
6884
6902
  }
6885
6903
  }, Tm = {
package/lib/facade.js CHANGED
@@ -832,9 +832,9 @@ class De extends te {
832
832
  ge.indexOf(l) !== -1 && (i.startColumn = Math.min(i.startColumn, h.startColumn), i.startRow = Math.min(i.startRow, h.startRow), i.endColumn = Math.max(i.endColumn, h.endColumn), i.endRow = Math.max(i.endRow, h.endRow));
833
833
  return i;
834
834
  }
835
- scrollToCell(e, r) {
836
- const t = this._workbook.getUnitId(), o = this._injector.get(v).getRenderById(t);
837
- return o && (o == null ? void 0 : o.with(Ee)).scrollToCell(e, r), this;
835
+ scrollToCell(e, r, t) {
836
+ const i = this._workbook.getUnitId(), s = this._injector.get(v).getRenderById(i);
837
+ return s && (s == null ? void 0 : s.with(Ee)).scrollToCell(e, r, t), this;
838
838
  }
839
839
  getScrollState() {
840
840
  const e = {
package/lib/index.js CHANGED
@@ -1529,11 +1529,15 @@ class cm extends se {
1529
1529
  * @returns {ISelectionWithCoord[]} {range, primary, style}[]
1530
1530
  */
1531
1531
  getSelectionDataWithStyle() {
1532
- const t = this._selectionControls, [n, i] = this._skeleton.getLocation();
1533
- return t.map((o) => {
1534
- const s = o.getValue();
1535
- return s.rangeWithCoord.sheetId = i, s.rangeWithCoord.unitId = n, s;
1536
- });
1532
+ const t = this._selectionControls;
1533
+ if (this._skeleton.worksheet) {
1534
+ const [n, i] = this._skeleton.getLocation();
1535
+ return t.map((o) => {
1536
+ const s = o.getValue();
1537
+ return s.rangeWithCoord.sheetId = i, s.rangeWithCoord.unitId = n, s;
1538
+ });
1539
+ }
1540
+ return [];
1537
1541
  }
1538
1542
  /**
1539
1543
  * @TODO lumixraku DO NOT expose private props.
@@ -6516,8 +6520,8 @@ let wi = class extends se {
6516
6520
  e && (this.disposeWithMe(
6517
6521
  We(
6518
6522
  this._scrollManagerService.rawScrollInfo$.subscribe((t) => {
6519
- var h;
6520
- const n = (h = this._sheetSkeletonManagerService.getCurrentParam()) == null ? void 0 : h.skeleton;
6523
+ var g;
6524
+ const n = (g = this._sheetSkeletonManagerService.getCurrentParam()) == null ? void 0 : g.skeleton;
6521
6525
  if (!n) return;
6522
6526
  if (t == null) {
6523
6527
  e.scrollToViewportPos({
@@ -6526,12 +6530,12 @@ let wi = class extends se {
6526
6530
  });
6527
6531
  return;
6528
6532
  }
6529
- const { sheetViewStartRow: i, sheetViewStartColumn: o, offsetX: s, offsetY: l } = t, { startX: a, startY: c } = n.getCellWithCoordByIndex(
6533
+ const { sheetViewStartRow: i, sheetViewStartColumn: o, offsetX: s, offsetY: l, duration: a } = t, { startX: c, startY: d } = n.getCellWithCoordByIndex(
6530
6534
  i,
6531
6535
  o,
6532
6536
  !1
6533
- ), d = a + s, u = c + l;
6534
- e.scrollToViewportPos({ viewportScrollX: d, viewportScrollY: u });
6537
+ ), u = c + s, h = d + l;
6538
+ a ? this._smoothScrollToViewportPos({ viewportMain: e, viewportScrollX: u, viewportScrollY: h, duration: a }) : e.scrollToViewportPos({ viewportScrollX: u, viewportScrollY: h });
6535
6539
  })
6536
6540
  )
6537
6541
  ), this.disposeWithMe(
@@ -6602,6 +6606,17 @@ let wi = class extends se {
6602
6606
  })
6603
6607
  ));
6604
6608
  }
6609
+ _smoothScrollToViewportPos(r) {
6610
+ const { viewportMain: e, viewportScrollX: t, viewportScrollY: n, duration: i } = r, o = performance.now(), s = e.viewportScrollX, l = e.viewportScrollY, a = t - s, c = n - l;
6611
+ function d(u) {
6612
+ const h = u - o, g = Math.min(h / i, 1), m = 1 - (1 - g) ** 3, f = s + a * m, v = l + c * m;
6613
+ e.scrollToViewportPos({
6614
+ viewportScrollX: f,
6615
+ viewportScrollY: v
6616
+ }), g < 1 && requestAnimationFrame(d);
6617
+ }
6618
+ requestAnimationFrame(d);
6619
+ }
6605
6620
  _updateViewportScroll(r = 0, e = 0) {
6606
6621
  const t = this._getSheetObject();
6607
6622
  if (!t) return;
@@ -6626,16 +6641,17 @@ let wi = class extends se {
6626
6641
  * @param {number} column - Cell column
6627
6642
  * @returns {boolean} - true if scroll is successful
6628
6643
  */
6629
- scrollToCell(r, e) {
6630
- const t = this._context.unit.getActiveSheet(), {
6631
- ySplit: n,
6632
- xSplit: i
6633
- } = t.getFreeze();
6644
+ scrollToCell(r, e, t) {
6645
+ const n = this._context.unit.getActiveSheet(), {
6646
+ ySplit: i,
6647
+ xSplit: o
6648
+ } = n.getFreeze();
6634
6649
  return this._commandService.syncExecuteCommand(fn.id, {
6635
- sheetViewStartRow: r - n,
6636
- sheetViewStartColumn: e - i,
6650
+ sheetViewStartRow: r - i,
6651
+ sheetViewStartColumn: e - o,
6637
6652
  offsetX: 0,
6638
- offsetY: 0
6653
+ offsetY: 0,
6654
+ duration: t
6639
6655
  });
6640
6656
  }
6641
6657
  _initCommandListener() {
@@ -6816,14 +6832,15 @@ const mn = {
6816
6832
  handler: (r, e) => {
6817
6833
  if (!e)
6818
6834
  return !1;
6819
- const { unitId: t, sheetId: n, offsetX: i, offsetY: o, sheetViewStartColumn: s, sheetViewStartRow: l } = e;
6835
+ const { unitId: t, sheetId: n, offsetX: i, offsetY: o, sheetViewStartColumn: s, sheetViewStartRow: l, duration: a } = e;
6820
6836
  return r.get(ve).getRenderById(t).with(Et).emitRawScrollParam({
6821
6837
  unitId: t,
6822
6838
  sheetId: n,
6823
6839
  offsetX: i,
6824
6840
  offsetY: o,
6825
6841
  sheetViewStartRow: l,
6826
- sheetViewStartColumn: s
6842
+ sheetViewStartColumn: s,
6843
+ duration: a
6827
6844
  }), !0;
6828
6845
  }
6829
6846
  }, Po = {
@@ -6864,22 +6881,23 @@ const mn = {
6864
6881
  const { workbook: o, worksheet: s, unitId: l } = i, c = n.getRenderById(l).with(Et).getCurrentScrollState();
6865
6882
  if (!s)
6866
6883
  return !1;
6867
- const { sheetViewStartRow: d, sheetViewStartColumn: u, offsetX: h, offsetY: g } = e, {
6868
- sheetViewStartColumn: m,
6869
- sheetViewStartRow: f,
6870
- offsetX: v,
6871
- offsetY: p
6872
- } = c || {}, { xSplit: C, ySplit: w } = i.worksheet.getConfig().freeze;
6884
+ const { sheetViewStartRow: d, sheetViewStartColumn: u, offsetX: h, offsetY: g, duration: m } = e, {
6885
+ sheetViewStartColumn: f,
6886
+ sheetViewStartRow: v,
6887
+ offsetX: p,
6888
+ offsetY: C
6889
+ } = c || {}, { xSplit: w, ySplit: S } = i.worksheet.getConfig().freeze;
6873
6890
  return r.get(W).syncExecuteCommand(mn.id, {
6874
6891
  unitId: o.getUnitId(),
6875
6892
  sheetId: s.getSheetId(),
6876
6893
  // why + ySplit? receiver - ySplit in scroll.operation.ts
6877
6894
  // sheetViewStartRow: sheetViewStartRow + ySplit,
6878
6895
  // sheetViewStartColumn: sheetViewStartColumn + xSplit,
6879
- sheetViewStartRow: d != null ? d : f != null ? f : 0 + w,
6880
- sheetViewStartColumn: u != null ? u : m != null ? m : 0 + C,
6881
- offsetX: h != null ? h : v,
6882
- offsetY: g != null ? g : p
6896
+ sheetViewStartRow: d != null ? d : v != null ? v : 0 + S,
6897
+ sheetViewStartColumn: u != null ? u : f != null ? f : 0 + w,
6898
+ offsetX: h != null ? h : p,
6899
+ offsetY: g != null ? g : C,
6900
+ duration: m
6883
6901
  });
6884
6902
  }
6885
6903
  }, Tm = {
@@ -18,6 +18,10 @@ export interface IScrollCommandParams {
18
18
  * e.g. if scrolled about 2 columns, now left is E, then sheetViewStartColumn is 2.
19
19
  */
20
20
  sheetViewStartColumn?: number;
21
+ /**
22
+ * The duration of the scroll animation in milliseconds.
23
+ */
24
+ duration?: number;
21
25
  }
22
26
  /**
23
27
  * This command is used to manage the scroll by relative offset
@@ -1,5 +1,5 @@
1
1
  import { IRange, Workbook, Disposable, ICommandService, IContextService, Injector } from '@univerjs/core';
2
- import { IRenderContext, IRenderModule, IRenderManagerService } from '@univerjs/engine-render';
2
+ import { IRenderContext, IRenderModule, Viewport, IRenderManagerService } from '@univerjs/engine-render';
3
3
  import { SheetScrollManagerService } from '../../services/scroll-manager.service';
4
4
  import { SheetSkeletonManagerService } from '../../services/sheet-skeleton-manager.service';
5
5
  /**
@@ -17,6 +17,12 @@ export declare class SheetsScrollRenderController extends Disposable implements
17
17
  private _wheelEventListener;
18
18
  private _scrollBarEventListener;
19
19
  private _initSkeletonListener;
20
+ _smoothScrollToViewportPos(params: {
21
+ viewportMain: Viewport;
22
+ viewportScrollX: number;
23
+ viewportScrollY: number;
24
+ duration: number;
25
+ }): void;
20
26
  _updateViewportScroll(viewportScrollX?: number, viewportScrollY?: number): void;
21
27
  scrollToRange(range: IRange, forceTop?: boolean, forceLeft?: boolean): boolean;
22
28
  /**
@@ -28,7 +34,7 @@ export declare class SheetsScrollRenderController extends Disposable implements
28
34
  * @param {number} column - Cell column
29
35
  * @returns {boolean} - true if scroll is successful
30
36
  */
31
- scrollToCell(row: number, column: number): boolean;
37
+ scrollToCell(row: number, column: number, duration?: number): boolean;
32
38
  private _initCommandListener;
33
39
  private _scrollToSelectionForExpand;
34
40
  private _getFreeze;
@@ -2,6 +2,7 @@ import { IRange, RichTextValue } from '@univerjs/core';
2
2
  import { IEventBase } from '@univerjs/core/facade';
3
3
  import { DeviceInputEventType, SpreadsheetSkeleton } from '@univerjs/engine-render';
4
4
  import { CommandListenerSkeletonChange } from '@univerjs/sheets';
5
+ import { IDragCellPosition } from '@univerjs/sheets-ui';
5
6
  import { FRange, FWorkbook, FWorksheet } from '@univerjs/sheets/facade';
6
7
  import { KeyCode } from '@univerjs/ui';
7
8
  /**
@@ -453,12 +454,12 @@ export interface IFSheetsUIEventNameMixin {
453
454
  readonly ColumnHeaderHover: 'ColumnHeaderHover';
454
455
  /**
455
456
  * Event fired when the drag element passes over the spreadsheet cells
456
- * @see {@link ICellEventParam}
457
+ * @see {@link IDragEventParam}
457
458
  * @example
458
459
  * ```ts
459
460
  * const disposable = univerAPI.addEvent(univerAPI.Event.DragOver, (params) => {
460
- * const { worksheet, workbook, row, column } = params;
461
- * console.log(params);
461
+ * const { row, column, dataTransfer } = params;
462
+ * console.log(params, dataTransfer.files.length);
462
463
  * });
463
464
  *
464
465
  * // Remove the event listener, use `disposable.dispose()`
@@ -467,12 +468,12 @@ export interface IFSheetsUIEventNameMixin {
467
468
  readonly DragOver: 'DragOver';
468
469
  /**
469
470
  * Event fired when the drag element is dropped on the spreadsheet cells
470
- * @see {@link ICellEventParam}
471
+ * @see {@link IDragEventParam}
471
472
  * @example
472
473
  * ```ts
473
474
  * const disposable = univerAPI.addEvent(univerAPI.Event.Drop, (params) => {
474
- * const { worksheet, workbook, row, column } = params;
475
- * console.log(params);
475
+ * const { row, column, dataTransfer } = params;
476
+ * console.log(params, dataTransfer.files.length);
476
477
  * });
477
478
  *
478
479
  * // Remove the event listener, use `disposable.dispose()`
@@ -706,6 +707,8 @@ export interface ICellEventParam extends ISheetUIEventBase {
706
707
  row: number;
707
708
  column: number;
708
709
  }
710
+ export interface IDragEventParam extends IDragCellPosition, ICellEventParam {
711
+ }
709
712
  export interface IScrollEventParam extends ISheetUIEventBase {
710
713
  scrollX: number;
711
714
  scrollY: number;
@@ -742,8 +745,8 @@ export interface IFSheetsUIEventParamConfig {
742
745
  CellPointerDown: ICellEventParam;
743
746
  CellPointerUp: ICellEventParam;
744
747
  CellPointerMove: ICellEventParam;
745
- Drop: ICellEventParam;
746
- DragOver: ICellEventParam;
748
+ Drop: IDragEventParam;
749
+ DragOver: IDragEventParam;
747
750
  RowHeaderClick: ISheetRowHeaderEvent;
748
751
  RowHeaderHover: ISheetRowHeaderEvent;
749
752
  RowHeaderPointerDown: ISheetRowHeaderEvent;
@@ -63,6 +63,7 @@ export interface IFWorksheetSkeletonMixin {
63
63
  * Based on the limitations of viewport and the number of rows and columns, you can only scroll to the maximum scrollable range.
64
64
  * @param {number} row - Cell row index
65
65
  * @param {number} column - Cell column index
66
+ * @param {number} [duration] - The duration of the scroll animation in milliseconds.
66
67
  * @returns {FWorksheet} - The FWorksheet instance for chaining.
67
68
  * @example
68
69
  * ```ts
@@ -76,7 +77,7 @@ export interface IFWorksheetSkeletonMixin {
76
77
  * fWorksheet.scrollToCell(row, column);
77
78
  * ```
78
79
  */
79
- scrollToCell(row: number, column: number): FWorksheet;
80
+ scrollToCell(row: number, column: number, duration?: number): FWorksheet;
80
81
  /**
81
82
  * Get scroll state of current sheet.
82
83
  * @returns {IScrollState} curr scroll state
@@ -252,7 +253,7 @@ export declare class FWorksheetSkeletonMixin extends FWorksheet implements IFWor
252
253
  zoom(zoomRatio: number): FWorksheet;
253
254
  getZoom(): number;
254
255
  getVisibleRange(): IRange;
255
- scrollToCell(row: number, column: number): FWorksheet;
256
+ scrollToCell(row: number, column: number, duration?: number): FWorksheet;
256
257
  getScrollState(): IScrollState;
257
258
  onScroll(callback: (params: Nullable<IViewportScrollState>) => void): IDisposable;
258
259
  getSkeleton(): Nullable<SpreadsheetSkeleton>;
@@ -27,6 +27,10 @@ export interface IScrollState {
27
27
  * e.g. If column A ~ C is frozen, the first column of viewMain is D, but sheetViewStartColumn still 0.
28
28
  */
29
29
  sheetViewStartColumn: number;
30
+ /**
31
+ * The duration of the scroll animation in milliseconds.
32
+ */
33
+ duration?: number;
30
34
  }
31
35
  export interface IViewportScrollState extends IScrollState {
32
36
  /** scroll value in scrollbar */
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(p,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],h):(p=typeof globalThis<"u"?globalThis:p||self,h(p.UniverSheetsUiFacade={},p.UniverCore,p.UniverCoreFacade,p.UniverDocs,p.UniverEngineRender,p.UniverSheets,p.UniverSheetsUi,p.UniverSheetsFacade,p.UniverUi,p.rxjs))})(this,(function(p,h,P,H,S,I,d,b,C,m){"use strict";class y extends P.FUniver{_initSheetUIEvent(e){const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params,{visible:u,keycode:a,eventType:n}=g,c=l.getEditLocation();if(!u){const M={row:c.row,column:c.column,eventType:n,keycode:a,workbook:o,worksheet:s,isZenEditor:!1,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:a!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,M),M.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,c)}})),this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(!g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1,isConfirm:u!==C.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,c)}})),this.registerEventHandler(this.Event.SheetEditChanging,()=>r.onCommandExecuted(t=>{if(t.id!==H.RichTextEditingMutation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params;if(!l.isVisible().visible)return;const{unitId:u}=g;if(u===h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:a,column:n}=l.getEditLocation(),c={workbook:o,worksheet:s,row:a,column:n,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,c)}})),this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,l),l.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:s.getZoom(),workbook:o,worksheet:s})}))}_initObserverListener(e){const r=e.get(S.IRenderManagerService),t=e.get(h.LifecycleService),i=new h.DisposableCollection;this.disposeWithMe(t.lifecycle$.subscribe(v=>{if(v!==h.LifecycleStages.Rendered)return;i.dispose();const g=e.get(d.HoverManagerService),u=e.get(d.DragManagerService);g&&(this.registerEventHandler(this.Event.CellClicked,()=>{var a;return(a=g.currentClickedCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.CellClicked,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.CellHover,()=>{var a;return(a=g.currentRichText$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellHover,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerDown,()=>{var a;return(a=g.currentPointerDownCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerDown,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerUp,()=>{var a;return(a=g.currentPointerUpCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerUp,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerMove,()=>{var a;return(a=g.currentCellPosWithEvent$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerMove,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.DragOver,()=>{var a;return(a=u.currentCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.DragOver,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.Drop,()=>{var a;return(a=u.endCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.Drop,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.RowHeaderClick,()=>{var a;return(a=g.currentRowHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderClick,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var a;return(a=g.currentRowHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerDown,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var a;return(a=g.currentRowHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerUp,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderHover,()=>{var a;return(a=g.currentHoveredRowHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderHover,{...c,row:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var a;return(a=g.currentColHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderClick,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var a;return(a=g.currentColHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var a;return(a=g.currentColHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var a;return(a=g.currentHoveredColHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderHover,{...c,column:n.index})})}))})),this.disposeWithMe(i);const o=new Map;let s;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([v,g])=>{var M;if(v.type===h.UniverInstanceType.UNIVER_SHEET&&(s=v),g<=h.LifecycleStages.Rendered||!s)return;const u=new h.DisposableCollection,a=this.getWorkbook(s.unitId);if(!a)return;o.get(s.unitId)&&((M=o.get(s.unitId))==null||M.dispose()),o.set(s.unitId,u);const n=s.with(d.SheetScrollManagerService),c=s.with(I.SheetsSelectionsService);u.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:a,worksheet:a.getActiveSheet(),...E})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>c.selectionMoveStart$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveStart,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoving,()=>c.selectionMoving$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoving,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>c.selectionMoveEnd$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionChanged,()=>c.selectionChanged$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionChanged,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),s=null,this.disposeWithMe(u)})),this.disposeWithMe(r.disposed$.subscribe(v=>{var g;(g=o.get(v))==null||g.dispose(),o.delete(v)})),this.disposeWithMe(()=>{o.forEach(v=>{v.dispose()})})}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeClipboardChange,()=>r.beforeCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._beforeClipboardChange();break}})),this.registerEventHandler(this.Event.ClipboardChanged,()=>r.onCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._clipboardChanged();break}})),this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>r.beforeCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(t.params);break;case C.PasteCommand.id:this._beforeClipboardPasteAsync();break}})),this.registerEventHandler(this.Event.ClipboardPasted,()=>r.onCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._clipboardPaste(t.params);break;case C.PasteCommand.id:this._clipboardPasteAsync();break}})),this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>r.onCommandExecuted(t=>{if(I.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(t.id)>-1){const i=this.getActiveSheet();if(!i)return;const o=I.getSkeletonChangedEffectedRange(t,i.worksheet.getMaxColumns()).map(s=>{var l,v;return(v=(l=this.getWorkbook(s.unitId))==null?void 0:l.getSheetBySheetId(s.subUnitId))==null?void 0:v.getRange(s.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:i.workbook,worksheet:i.worksheet,payload:t,skeleton:i.worksheet.getSkeleton(),effectedRanges:o})}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet(),t=e==null?void 0:e.getActiveRange();if(!e||!r||!t)return;const o=this._injector.get(d.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:s,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:s,fromSheet:r,fromRange:t}}_beforeClipboardChange(){const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new h.CanceledError}_clipboardChanged(){const e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:r,textContent:t}=e,i=this.getActiveWorkbook(),o=i==null?void 0:i.getActiveSheet();return!i||!o?void 0:{workbook:i,worksheet:o,text:t,html:r}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet();if(!e||!r)return;const o=(await this._injector.get(C.IClipboardInterfaceService).read())[0];let s;if(o){const l=o.types,v=l.indexOf(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"",g=l.indexOf(C.HTML_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.HTML_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"";s={workbook:e,worksheet:r,text:v,html:g}}return s}_beforeClipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new h.CanceledError}_clipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.ClipboardPasted,r),r.cancel))throw new h.CanceledError}async _beforeClipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new h.CanceledError}async _clipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new h.CanceledError}customizeColumnHeader(e){var g,u;const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId(),i=this._injector.get(S.IRenderManagerService),o=r.getActiveSheet(),s=o.getSheetId(),l=i.getRenderById(t);l&&((g=e.headerStyle)!=null&&g.size)&&(l.with(d.SheetSkeletonManagerService).setColumnHeaderSize(l,s,(u=e.headerStyle)==null?void 0:u.size),o==null||o.refreshCanvas()),this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e),o==null||o.refreshCanvas()}customizeRowHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.ROW),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.MAIN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}getSheetHooks(){return this._injector.createInstance(b.FSheetHooks)}pasteIntoSheet(e,r,t){return this._commandService.executeCommand(d.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:r,files:t})}}P.FUniver.extend(y);class D extends b.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(C.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const t=this._injector.get(C.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}customizeColumnHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}_logDeprecation(e){this._injector.get(h.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(e){const r=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:r}}onCellClick(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentClickedCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentRichText$.pipe(m.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentCellPosWithEvent$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.currentCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.endCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Keyboard,keycode:e?C.KeyCode.ENTER:C.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await h.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}abortEditingAsync(){return this.endEditingAsync(!1)}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(S.IRenderManagerService).getRenderById(r);return i?i.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).showSelection(),this}}b.FWorkbook.extend(D);class T extends b.FWorksheet{refreshCanvas(){const e=this._injector.get(S.IRenderManagerService),r=this._fWorkbook.id,t=e.getRenderById(r);if(!t)throw new Error(`Render Unit with unitId ${r} not found`);t.with(d.SheetSkeletonManagerService).reCalculate();const i=t.mainComponent;if(!i)throw new Error("Main component not found");return i.makeDirty(),this}zoom(e){const r=this._injector.get(h.ICommandService),t=Math.min(Math.max(e,.1),4);return r.executeCommand(d.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:t}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);let i={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!t)return i;const s=t.with(d.SheetSkeletonManagerService).getCurrentSkeleton();if(!s)return i;const l=s==null?void 0:s.getVisibleRanges();if(!l)return i;i=s.getVisibleRangeByViewport(S.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[v,g]of l)S.sheetContentViewportKeys.indexOf(v)!==-1&&(i.startColumn=Math.min(i.startColumn,g.startColumn),i.startRow=Math.min(i.startRow,g.startRow),i.endColumn=Math.max(i.endColumn,g.endColumn),i.endRow=Math.max(i.endRow,g.endRow));return i}scrollToCell(e,r){const t=this._workbook.getUnitId(),o=this._injector.get(S.IRenderManagerService).getRenderById(t);return o&&(o==null?void 0:o.with(d.SheetsScrollRenderController)).scrollToCell(e,r),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);return o&&o.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:t})||e}onScroll(e){var o;const r=this._workbook.getUnitId(),i=(o=this._injector.get(S.IRenderManagerService).getRenderById(r))==null?void 0:o.with(d.SheetScrollManagerService);if(i){const s=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(s)}return h.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(S.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(d.SheetSkeletonManagerService);return(t=e==null?void 0:e.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:t.skeleton}autoResizeColumn(e){return this.autoResizeColumns(e,1)}autoResizeColumns(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+r-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(d.SetWorksheetColAutoWidthCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}setColumnAutoWidth(e,r){return this.autoResizeColumns(e,r)}autoResizeRows(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(I.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}customizeColumnHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setColumnHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,t)}customizeRowHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setRowHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e,t)}setColumnHeaderHeight(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetColumnHeaderHeightCommand.id,{unitId:r,subUnitId:t,size:e}),this}setRowHeaderWidth(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetRowHeaderWidthCommand.id,{unitId:r,subUnitId:t,size:e}),this}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}}b.FWorksheet.extend(T);class x extends b.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}b.FPermission.extend(x);class B extends b.FSheetHooks{onCellPointerMove(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return h.toDisposable(this._injector.get(d.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return h.toDisposable(this._injector.get(d.DragManagerService).endCell$.subscribe(e))}onCellRender(e,r=h.InterceptorEffectEnum.Style,t=I.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(I.SheetInterceptorService).intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r,handler:(i,o,s)=>(i&&!i.customRender&&e&&(i.customRender=[...e]),s(i)),priority:t})}onBeforeCellEdit(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&!t.visible&&e(t)})}}b.FSheetHooks.extend(B);const _={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover"};class A{get BeforeClipboardChange(){return"BeforeClipboardChange"}get ClipboardChanged(){return"ClipboardChanged"}get BeforeClipboardPaste(){return"BeforeClipboardPaste"}get ClipboardPasted(){return"ClipboardPasted"}get BeforeSheetEditStart(){return"BeforeSheetEditStart"}get SheetEditStarted(){return"SheetEditStarted"}get SheetEditChanging(){return"SheetEditChanging"}get BeforeSheetEditEnd(){return"BeforeSheetEditEnd"}get SheetEditEnded(){return"SheetEditEnded"}get CellClicked(){return _.CellClicked}get CellHover(){return _.CellHover}get CellPointerDown(){return _.CellPointerDown}get CellPointerUp(){return _.CellPointerUp}get CellPointerMove(){return _.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}get Scroll(){return"Scroll"}get SelectionMoveStart(){return"SelectionMoveStart"}get SelectionChanged(){return"SelectionChanged"}get SelectionMoving(){return"SelectionMoving"}get SelectionMoveEnd(){return"SelectionMoveEnd"}get RowHeaderClick(){return"RowHeaderClick"}get RowHeaderPointerDown(){return"RowHeaderPointerDown"}get RowHeaderPointerUp(){return"RowHeaderPointerUp"}get RowHeaderHover(){return"RowHeaderHover"}get ColumnHeaderClick(){return"ColumnHeaderClick"}get ColumnHeaderPointerDown(){return"ColumnHeaderPointerDown"}get ColumnHeaderPointerUp(){return"ColumnHeaderPointerUp"}get ColumnHeaderHover(){return"ColumnHeaderHover"}get SheetSkeletonChanged(){return"SheetSkeletonChanged"}get BeforeSheetZoomChange(){return"BeforeSheetZoomChange"}get SheetZoomChanged(){return"SheetZoomChanged"}}P.FEventName.extend(A);class O extends b.FRange{getCell(){var l;const e=this._injector.get(S.IRenderManagerService),r=this._injector.get(h.ILogService),t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=e.getRenderById(t),s=(l=o==null?void 0:o.with(d.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!s)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return s.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:r,endX:t,endY:i}=this.getCell(),o={x:e,y:r,width:t-e,height:i-r,top:r,left:e,bottom:i,right:t};return{...o,toJSON:()=>JSON.stringify(o)}}generateHTML(){var t;const r=this._injector.get(d.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=r==null?void 0:r.html)!=null?t:""}attachPopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}attachAlertPopup(e){const r=this._injector.get(d.CellAlertManagerService),t={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return r.showAlert({...e,location:t}),{dispose:()=>{r.removeAlert(e.key)}}}attachRangePopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"top-center",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}highlight(e,r){const t=this._injector.get(d.IMarkSelectionService),i=t.addShape({range:this._range,style:e,primary:r});if(!i)throw new Error("Failed to highlight current range");return h.toDisposable(()=>{t.removeShape(i)})}showDropdown(e){return this._injector.get(d.ISheetCellDropdownManagerService).showDropdown(e)}}b.FRange.extend(O);function R(f,e){const{componentKey:r,isVue3:t}=f;let i;const o=new h.DisposableCollection;return typeof r=="string"?i=r:(i=`External_${h.generateRandomId(6)}`,o.add(e.register(i,r,{framework:t?"vue3":"react"}))),{key:i,disposableCollection:o}}p.transformComponentKey=R,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(p,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@univerjs/core"),require("@univerjs/core/facade"),require("@univerjs/docs"),require("@univerjs/engine-render"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("@univerjs/sheets/facade"),require("@univerjs/ui"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/core/facade","@univerjs/docs","@univerjs/engine-render","@univerjs/sheets","@univerjs/sheets-ui","@univerjs/sheets/facade","@univerjs/ui","rxjs"],h):(p=typeof globalThis<"u"?globalThis:p||self,h(p.UniverSheetsUiFacade={},p.UniverCore,p.UniverCoreFacade,p.UniverDocs,p.UniverEngineRender,p.UniverSheets,p.UniverSheetsUi,p.UniverSheetsFacade,p.UniverUi,p.rxjs))})(this,(function(p,h,P,H,S,I,d,b,C,m){"use strict";class y extends P.FUniver{_initSheetUIEvent(e){const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeSheetEditStart,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};if(this.fireEvent(this.Event.BeforeSheetEditStart,c),c.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.BeforeSheetEditEnd,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params,{visible:u,keycode:a,eventType:n}=g,c=l.getEditLocation();if(!u){const M={row:c.row,column:c.column,eventType:n,keycode:a,workbook:o,worksheet:s,isZenEditor:!1,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isConfirm:a!==C.KeyCode.ESC};if(this.fireEvent(this.Event.BeforeSheetEditEnd,M),M.cancel)throw new h.CanceledError}})),this.registerEventHandler(this.Event.SheetEditStarted,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1};this.fireEvent(this.Event.SheetEditStarted,c)}})),this.registerEventHandler(this.Event.SheetEditEnded,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetCellEditVisibleOperation.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=t.params,{visible:g,keycode:u,eventType:a}=v,n=l.getEditLocation();if(!g){const c={row:n.row,column:n.column,eventType:a,keycode:u,workbook:o,worksheet:s,isZenEditor:!1,isConfirm:u!==C.KeyCode.ESC};this.fireEvent(this.Event.SheetEditEnded,c)}})),this.registerEventHandler(this.Event.SheetEditChanging,()=>r.onCommandExecuted(t=>{if(t.id!==H.RichTextEditingMutation.id)return;const i=this.getActiveSheet();if(!i)return;const{workbook:o,worksheet:s}=i,l=e.get(d.IEditorBridgeService),v=e.get(h.IUniverInstanceService),g=t.params;if(!l.isVisible().visible)return;const{unitId:u}=g;if(u===h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY){const{row:a,column:n}=l.getEditLocation(),c={workbook:o,worksheet:s,row:a,column:n,value:h.RichTextValue.create(v.getUnit(h.DOCS_NORMAL_EDITOR_UNIT_ID_KEY).getSnapshot()),isZenEditor:!1};this.fireEvent(this.Event.SheetEditChanging,c)}})),this.registerEventHandler(this.Event.BeforeSheetZoomChange,()=>r.beforeCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i,l={zoom:t.params.zoomRatio,workbook:o,worksheet:s};if(this.fireEvent(this.Event.BeforeSheetZoomChange,l),l.cancel)throw new h.CanceledError})),this.registerEventHandler(this.Event.SheetZoomChanged,()=>r.onCommandExecuted(t=>{if(t.id!==d.SetZoomRatioCommand.id)return;const i=this.getCommandSheetTarget(t);if(!i)return;const{workbook:o,worksheet:s}=i;this.fireEvent(this.Event.SheetZoomChanged,{zoom:s.getZoom(),workbook:o,worksheet:s})}))}_initObserverListener(e){const r=e.get(S.IRenderManagerService),t=e.get(h.LifecycleService),i=new h.DisposableCollection;this.disposeWithMe(t.lifecycle$.subscribe(v=>{if(v!==h.LifecycleStages.Rendered)return;i.dispose();const g=e.get(d.HoverManagerService),u=e.get(d.DragManagerService);g&&(this.registerEventHandler(this.Event.CellClicked,()=>{var a;return(a=g.currentClickedCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.CellClicked,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.CellHover,()=>{var a;return(a=g.currentRichText$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellHover,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerDown,()=>{var a;return(a=g.currentPointerDownCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerDown,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerUp,()=>{var a;return(a=g.currentPointerUpCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerUp,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.CellPointerMove,()=>{var a;return(a=g.currentCellPosWithEvent$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.CellPointerMove,{...c,...n,row:n.row,column:n.col})})}),this.registerEventHandler(this.Event.DragOver,()=>{var a;return(a=u.currentCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.DragOver,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.Drop,()=>{var a;return(a=u.endCell$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.location.unitId,n.location.subUnitId);c&&this.fireEvent(this.Event.Drop,{...c,...n,row:n.location.row,column:n.location.col})})}),this.registerEventHandler(this.Event.RowHeaderClick,()=>{var a;return(a=g.currentRowHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderClick,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerDown,()=>{var a;return(a=g.currentRowHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerDown,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderPointerUp,()=>{var a;return(a=g.currentRowHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderPointerUp,{...c,row:n.index})})}),this.registerEventHandler(this.Event.RowHeaderHover,()=>{var a;return(a=g.currentHoveredRowHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.RowHeaderHover,{...c,row:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderClick,()=>{var a;return(a=g.currentColHeaderClick$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderClick,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerDown,()=>{var a;return(a=g.currentColHeaderPointerDown$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerDown,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderPointerUp,()=>{var a;return(a=g.currentColHeaderPointerUp$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderPointerUp,{...c,column:n.index})})}),this.registerEventHandler(this.Event.ColumnHeaderHover,()=>{var a;return(a=g.currentHoveredColHeader$)==null?void 0:a.pipe(m.filter(n=>!!n)).subscribe(n=>{const c=this.getSheetTarget(n.unitId,n.subUnitId);c&&this.fireEvent(this.Event.ColumnHeaderHover,{...c,column:n.index})})}))})),this.disposeWithMe(i);const o=new Map;let s;const l=m.combineLatest([r.created$,t.lifecycle$]);this.disposeWithMe(l.subscribe(([v,g])=>{var M;if(v.type===h.UniverInstanceType.UNIVER_SHEET&&(s=v),g<=h.LifecycleStages.Rendered||!s)return;const u=new h.DisposableCollection,a=this.getWorkbook(s.unitId);if(!a)return;o.get(s.unitId)&&((M=o.get(s.unitId))==null||M.dispose()),o.set(s.unitId,u);const n=s.with(d.SheetScrollManagerService),c=s.with(I.SheetsSelectionsService);u.add(this.registerEventHandler(this.Event.Scroll,()=>n.validViewportScrollInfo$.subscribe(E=>{E&&this.fireEvent(this.Event.Scroll,{workbook:a,worksheet:a.getActiveSheet(),...E})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveStart,()=>c.selectionMoveStart$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveStart,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoving,()=>c.selectionMoving$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoving,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionMoveEnd,()=>c.selectionMoveEnd$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionMoveEnd,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),u.add(this.registerEventHandler(this.Event.SelectionChanged,()=>c.selectionChanged$.subscribe(E=>{var w;this.fireEvent(this.Event.SelectionChanged,{workbook:a,worksheet:a.getActiveSheet(),selections:(w=E==null?void 0:E.map(k=>k.range))!=null?w:[]})}))),s=null,this.disposeWithMe(u)})),this.disposeWithMe(r.disposed$.subscribe(v=>{var g;(g=o.get(v))==null||g.dispose(),o.delete(v)})),this.disposeWithMe(()=>{o.forEach(v=>{v.dispose()})})}_initialize(e){this._initSheetUIEvent(e),this._initObserverListener(e);const r=e.get(h.ICommandService);this.registerEventHandler(this.Event.BeforeClipboardChange,()=>r.beforeCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._beforeClipboardChange();break}})),this.registerEventHandler(this.Event.ClipboardChanged,()=>r.onCommandExecuted(t=>{switch(t.id){case C.CopyCommand.id:case C.CutCommand.id:this._clipboardChanged();break}})),this.registerEventHandler(this.Event.BeforeClipboardPaste,()=>r.beforeCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._beforeClipboardPaste(t.params);break;case C.PasteCommand.id:this._beforeClipboardPasteAsync();break}})),this.registerEventHandler(this.Event.ClipboardPasted,()=>r.onCommandExecuted(t=>{switch(t.id){case d.SheetPasteShortKeyCommand.id:this._clipboardPaste(t.params);break;case C.PasteCommand.id:this._clipboardPasteAsync();break}})),this.registerEventHandler(this.Event.SheetSkeletonChanged,()=>r.onCommandExecuted(t=>{if(I.COMMAND_LISTENER_SKELETON_CHANGE.indexOf(t.id)>-1){const i=this.getActiveSheet();if(!i)return;const o=I.getSkeletonChangedEffectedRange(t,i.worksheet.getMaxColumns()).map(s=>{var l,v;return(v=(l=this.getWorkbook(s.unitId))==null?void 0:l.getSheetBySheetId(s.subUnitId))==null?void 0:v.getRange(s.range)}).filter(Boolean);if(!o.length)return;this.fireEvent(this.Event.SheetSkeletonChanged,{workbook:i.workbook,worksheet:i.worksheet,payload:t,skeleton:i.worksheet.getSkeleton(),effectedRanges:o})}}))}_generateClipboardCopyParam(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet(),t=e==null?void 0:e.getActiveRange();if(!e||!r||!t)return;const o=this._injector.get(d.ISheetClipboardService).generateCopyContent(e.getId(),r.getSheetId(),t.getRange());if(!o)return;const{html:s,plain:l}=o;return{workbook:e,worksheet:r,text:l,html:s,fromSheet:r,fromRange:t}}_beforeClipboardChange(){const e=this._generateClipboardCopyParam();if(e&&(this.fireEvent(this.Event.BeforeClipboardChange,e),e.cancel))throw new h.CanceledError}_clipboardChanged(){const e=this._generateClipboardCopyParam();e&&this.fireEvent(this.Event.ClipboardChanged,e)}_generateClipboardPasteParam(e){if(!e)return;const{htmlContent:r,textContent:t}=e,i=this.getActiveWorkbook(),o=i==null?void 0:i.getActiveSheet();return!i||!o?void 0:{workbook:i,worksheet:o,text:t,html:r}}async _generateClipboardPasteParamAsync(){const e=this.getActiveWorkbook(),r=e==null?void 0:e.getActiveSheet();if(!e||!r)return;const o=(await this._injector.get(C.IClipboardInterfaceService).read())[0];let s;if(o){const l=o.types,v=l.indexOf(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.PLAIN_TEXT_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"",g=l.indexOf(C.HTML_CLIPBOARD_MIME_TYPE)!==-1?await o.getType(C.HTML_CLIPBOARD_MIME_TYPE).then(u=>u&&u.text()):"";s={workbook:e,worksheet:r,text:v,html:g}}return s}_beforeClipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.BeforeClipboardPaste,r),r.cancel))throw new h.CanceledError}_clipboardPaste(e){const r=this._generateClipboardPasteParam(e);if(r&&(this.fireEvent(this.Event.ClipboardPasted,r),r.cancel))throw new h.CanceledError}async _beforeClipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.BeforeClipboardPaste,e),e.cancel))throw new h.CanceledError}async _clipboardPasteAsync(){if(!C.supportClipboardAPI()){this._injector.get(h.ILogService).warn("[Facade]: The navigator object only supports the browser environment");return}const e=await this._generateClipboardPasteParamAsync();if(e&&(this.fireEvent(this.Event.ClipboardPasted,e),e.cancel))throw new h.CanceledError}customizeColumnHeader(e){var g,u;const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId(),i=this._injector.get(S.IRenderManagerService),o=r.getActiveSheet(),s=o.getSheetId(),l=i.getRenderById(t);l&&((g=e.headerStyle)!=null&&g.size)&&(l.with(d.SheetSkeletonManagerService).setColumnHeaderSize(l,s,(u=e.headerStyle)==null?void 0:u.size),o==null||o.refreshCanvas()),this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e),o==null||o.refreshCanvas()}customizeRowHeader(e){const r=this.getActiveWorkbook();if(!r){console.error("WorkBook not exist");return}const t=r==null?void 0:r.getId();this._getSheetRenderComponent(t,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}registerSheetRowHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.ROW),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetColumnHeaderExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.COLUMN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}registerSheetMainExtension(e,...r){const t=this._getSheetRenderComponent(e,d.SHEET_VIEW_KEY.MAIN),i=t.register(...r);return h.toDisposable(()=>{i.dispose(),t.makeDirty(!0)})}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}getSheetHooks(){return this._injector.createInstance(b.FSheetHooks)}pasteIntoSheet(e,r,t){return this._commandService.executeCommand(d.SheetPasteShortKeyCommand.id,{htmlContent:e,textContent:r,files:t})}}P.FUniver.extend(y);class D extends b.FWorkbook{openSiderbar(e){return this._logDeprecation("openSiderbar"),this._injector.get(C.ISidebarService).open(e)}openDialog(e){this._logDeprecation("openDialog");const t=this._injector.get(C.IDialogService).open({...e,onClose:()=>{t.dispose()}});return t}customizeColumnHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e)}customizeRowHeader(e){const r=this._workbook.getUnitId();this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e)}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}_logDeprecation(e){this._injector.get(h.ILogService).warn("[FWorkbook]",`${e} is deprecated. Please use the function of the same name on "FUniver".`)}generateCellParams(e){const r=this.getActiveSheet();return{row:e.row,column:e.col,workbook:this,worksheet:r}}onCellClick(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentClickedCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onCellHover(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentRichText$.pipe(m.filter(t=>!!t)).subscribe(e))}onCellPointerDown(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerDownCell$.subscribe(e))}onCellPointerUp(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentPointerUpCell$.subscribe(e))}onCellPointerMove(e){const r=this._injector.get(d.HoverManagerService);return h.toDisposable(r.currentCellPosWithEvent$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t,t.event)}))}onDragOver(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.currentCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}onDrop(e){const r=this._injector.get(d.DragManagerService);return h.toDisposable(r.endCell$.pipe(m.filter(t=>!!t)).subscribe(t=>{e(t)}))}startEditing(){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Dblclick,unitId:this._workbook.getUnitId(),visible:!0})}async endEditing(e){return this._injector.get(h.ICommandService).syncExecuteCommand(d.SetCellEditVisibleOperation.id,{eventType:S.DeviceInputEventType.Keyboard,keycode:e?C.KeyCode.ENTER:C.KeyCode.ESC,visible:!1,unitId:this._workbook.getUnitId()}),await h.awaitTime(0),!0}endEditingAsync(e=!0){return this.endEditing(e)}abortEditingAsync(){return this.endEditingAsync(!1)}getScrollStateBySheetId(e){const r=this._workbook.getUnitId(),i=this._injector.get(S.IRenderManagerService).getRenderById(r);return i?i.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:e}):null}disableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).disableSelection(),this}enableSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).enableSelection(),this}transparentSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).transparentSelection(),this}showSelection(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);return t&&t.with(d.ISheetSelectionRenderService).showSelection(),this}}b.FWorkbook.extend(D);class T extends b.FWorksheet{refreshCanvas(){const e=this._injector.get(S.IRenderManagerService),r=this._fWorkbook.id,t=e.getRenderById(r);if(!t)throw new Error(`Render Unit with unitId ${r} not found`);t.with(d.SheetSkeletonManagerService).reCalculate();const i=t.mainComponent;if(!i)throw new Error("Main component not found");return i.makeDirty(),this}zoom(e){const r=this._injector.get(h.ICommandService),t=Math.min(Math.max(e,.1),4);return r.executeCommand(d.SetZoomRatioCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),zoomRatio:t}),this}getZoom(){return this._worksheet.getZoomRatio()}getVisibleRange(){const e=this._workbook.getUnitId(),t=this._injector.get(S.IRenderManagerService).getRenderById(e);let i={startColumn:0,startRow:0,endColumn:0,endRow:0};if(!t)return i;const s=t.with(d.SheetSkeletonManagerService).getCurrentSkeleton();if(!s)return i;const l=s==null?void 0:s.getVisibleRanges();if(!l)return i;i=s.getVisibleRangeByViewport(S.SHEET_VIEWPORT_KEY.VIEW_MAIN);for(const[v,g]of l)S.sheetContentViewportKeys.indexOf(v)!==-1&&(i.startColumn=Math.min(i.startColumn,g.startColumn),i.startRow=Math.min(i.startRow,g.startRow),i.endColumn=Math.max(i.endColumn,g.endColumn),i.endRow=Math.max(i.endRow,g.endRow));return i}scrollToCell(e,r,t){const i=this._workbook.getUnitId(),s=this._injector.get(S.IRenderManagerService).getRenderById(i);return s&&(s==null?void 0:s.with(d.SheetsScrollRenderController)).scrollToCell(e,r,t),this}getScrollState(){const e={offsetX:0,offsetY:0,sheetViewStartColumn:0,sheetViewStartRow:0},r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);return o&&o.with(d.SheetScrollManagerService).getScrollStateByParam({unitId:r,sheetId:t})||e}onScroll(e){var o;const r=this._workbook.getUnitId(),i=(o=this._injector.get(S.IRenderManagerService).getRenderById(r))==null?void 0:o.with(d.SheetScrollManagerService);if(i){const s=i.validViewportScrollInfo$.subscribe(l=>{e(l)});return h.toDisposable(s)}return h.toDisposable(()=>{})}getSkeleton(){var r,t;const e=(r=this._injector.get(S.IRenderManagerService).getRenderById(this._workbook.getUnitId()))==null?void 0:r.with(d.SheetSkeletonManagerService);return(t=e==null?void 0:e.getWorksheetSkeleton(this._worksheet.getSheetId()))==null?void 0:t.skeleton}autoResizeColumn(e){return this.autoResizeColumns(e,1)}autoResizeColumns(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startColumn:e,endColumn:e+r-1,startRow:0,endRow:this._worksheet.getRowCount()-1}];return this._commandService.syncExecuteCommand(d.SetWorksheetColAutoWidthCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}setColumnAutoWidth(e,r){return this.autoResizeColumns(e,r)}autoResizeRows(e,r){const t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=[{startRow:e,endRow:e+r-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}];return this._commandService.syncExecuteCommand(I.SetWorksheetRowIsAutoHeightCommand.id,{unitId:t,subUnitId:i,ranges:o}),this}customizeColumnHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setColumnHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.COLUMN).setCustomHeader(e,t)}customizeRowHeader(e){var l,v;const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId(),o=this._injector.get(S.IRenderManagerService).getRenderById(r);o&&((l=e.headerStyle)!=null&&l.size)&&o.with(d.SheetSkeletonManagerService).setRowHeaderSize(o,t,(v=e.headerStyle)==null?void 0:v.size),this._getSheetRenderComponent(r,d.SHEET_VIEW_KEY.ROW).setCustomHeader(e,t)}setColumnHeaderHeight(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetColumnHeaderHeightCommand.id,{unitId:r,subUnitId:t,size:e}),this}setRowHeaderWidth(e){const r=this._workbook.getUnitId(),t=this._worksheet.getSheetId();return this._commandService.executeCommand(d.SetRowHeaderWidthCommand.id,{unitId:r,subUnitId:t,size:e}),this}_getSheetRenderComponent(e,r){const i=this._injector.get(S.IRenderManagerService).getRenderById(e);if(!i)throw new Error(`Render Unit with unitId ${e} not found`);const{components:o}=i,s=o.get(r);if(!s)throw new Error("Render component not found");return s}}b.FWorksheet.extend(T);class x extends b.FPermission{setPermissionDialogVisible(e){this._permissionService.setShowComponents(e)}}b.FPermission.extend(x);class B extends b.FSheetHooks{onCellPointerMove(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentPosition$.subscribe(e))}onCellPointerOver(e){return h.toDisposable(this._injector.get(d.HoverManagerService).currentCell$.subscribe(e))}onCellDragOver(e){return h.toDisposable(this._injector.get(d.DragManagerService).currentCell$.subscribe(e))}onCellDrop(e){return h.toDisposable(this._injector.get(d.DragManagerService).endCell$.subscribe(e))}onCellRender(e,r=h.InterceptorEffectEnum.Style,t=I.InterceptCellContentPriority.DATA_VALIDATION){return this._injector.get(I.SheetInterceptorService).intercept(I.INTERCEPTOR_POINT.CELL_CONTENT,{effect:r,handler:(i,o,s)=>(i&&!i.customRender&&e&&(i.customRender=[...e]),s(i)),priority:t})}onBeforeCellEdit(e){return this._injector.get(h.ICommandService).beforeCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&t.visible&&e(t)})}onAfterCellEdit(e){return this._injector.get(h.ICommandService).onCommandExecuted(r=>{const t=r.params;r.id===d.SetCellEditVisibleOperation.id&&!t.visible&&e(t)})}}b.FSheetHooks.extend(B);const _={CellClicked:"CellClicked",CellPointerDown:"CellPointerDown",CellPointerUp:"CellPointerUp",CellPointerMove:"CellPointerMove",CellHover:"CellHover"};class A{get BeforeClipboardChange(){return"BeforeClipboardChange"}get ClipboardChanged(){return"ClipboardChanged"}get BeforeClipboardPaste(){return"BeforeClipboardPaste"}get ClipboardPasted(){return"ClipboardPasted"}get BeforeSheetEditStart(){return"BeforeSheetEditStart"}get SheetEditStarted(){return"SheetEditStarted"}get SheetEditChanging(){return"SheetEditChanging"}get BeforeSheetEditEnd(){return"BeforeSheetEditEnd"}get SheetEditEnded(){return"SheetEditEnded"}get CellClicked(){return _.CellClicked}get CellHover(){return _.CellHover}get CellPointerDown(){return _.CellPointerDown}get CellPointerUp(){return _.CellPointerUp}get CellPointerMove(){return _.CellPointerMove}get DragOver(){return"DragOver"}get Drop(){return"Drop"}get Scroll(){return"Scroll"}get SelectionMoveStart(){return"SelectionMoveStart"}get SelectionChanged(){return"SelectionChanged"}get SelectionMoving(){return"SelectionMoving"}get SelectionMoveEnd(){return"SelectionMoveEnd"}get RowHeaderClick(){return"RowHeaderClick"}get RowHeaderPointerDown(){return"RowHeaderPointerDown"}get RowHeaderPointerUp(){return"RowHeaderPointerUp"}get RowHeaderHover(){return"RowHeaderHover"}get ColumnHeaderClick(){return"ColumnHeaderClick"}get ColumnHeaderPointerDown(){return"ColumnHeaderPointerDown"}get ColumnHeaderPointerUp(){return"ColumnHeaderPointerUp"}get ColumnHeaderHover(){return"ColumnHeaderHover"}get SheetSkeletonChanged(){return"SheetSkeletonChanged"}get BeforeSheetZoomChange(){return"BeforeSheetZoomChange"}get SheetZoomChanged(){return"SheetZoomChanged"}}P.FEventName.extend(A);class O extends b.FRange{getCell(){var l;const e=this._injector.get(S.IRenderManagerService),r=this._injector.get(h.ILogService),t=this._workbook.getUnitId(),i=this._worksheet.getSheetId(),o=e.getRenderById(t),s=(l=o==null?void 0:o.with(d.SheetSkeletonManagerService).getSkeletonParam(i))==null?void 0:l.skeleton;if(!s)throw r.error("[Facade]: `FRange.getCell` can only be called in current worksheet"),new Error("`FRange.getCell` can only be called in current worksheet");return s.getCellWithCoordByIndex(this._range.startRow,this._range.startColumn)}getCellRect(){const{startX:e,startY:r,endX:t,endY:i}=this.getCell(),o={x:e,y:r,width:t-e,height:i-r,top:r,left:e,bottom:i,right:t};return{...o,toJSON:()=>JSON.stringify(o)}}generateHTML(){var t;const r=this._injector.get(d.ISheetClipboardService).generateCopyContent(this._workbook.getUnitId(),this._worksheet.getSheetId(),this._range);return(t=r==null?void 0:r.html)!=null?t:""}attachPopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"horizontal",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachPopupToCell(this._range.startRow,this._range.startColumn,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}attachAlertPopup(e){const r=this._injector.get(d.CellAlertManagerService),t={workbook:this._workbook,worksheet:this._worksheet,row:this._range.startRow,col:this._range.startColumn,unitId:this.getUnitId(),subUnitId:this._worksheet.getSheetId()};return r.showAlert({...e,location:t}),{dispose:()=>{r.removeAlert(e.key)}}}attachRangePopup(e){var s,l,v;e.direction=(s=e.direction)!=null?s:"top-center",e.extraProps=(l=e.extraProps)!=null?l:{},e.offset=(v=e.offset)!=null?v:[0,0];const{key:r,disposableCollection:t}=R(e,this._injector.get(C.ComponentManager)),o=this._injector.get(d.SheetCanvasPopManagerService).attachRangePopup(this._range,{...e,componentKey:r},this.getUnitId(),this._worksheet.getSheetId());return o?(t.add(o),t):(t.dispose(),null)}highlight(e,r){const t=this._injector.get(d.IMarkSelectionService),i=t.addShape({range:this._range,style:e,primary:r});if(!i)throw new Error("Failed to highlight current range");return h.toDisposable(()=>{t.removeShape(i)})}showDropdown(e){return this._injector.get(d.ISheetCellDropdownManagerService).showDropdown(e)}}b.FRange.extend(O);function R(f,e){const{componentKey:r,isVue3:t}=f;let i;const o=new h.DisposableCollection;return typeof r=="string"?i=r:(i=`External_${h.generateRandomId(6)}`,o.add(e.register(i,r,{framework:t?"vue3":"react"}))),{key:i,disposableCollection:o}}p.transformComponentKey=R,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));