@univerjs-pro/embed-ui 1.0.0-alpha.7 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/cjs/locale/ar-SA.js +1 -1
  3. package/lib/cjs/locale/ca-ES.js +1 -1
  4. package/lib/cjs/locale/de-DE.js +1 -1
  5. package/lib/cjs/locale/en-US.js +1 -1
  6. package/lib/cjs/locale/es-ES.js +1 -1
  7. package/lib/cjs/locale/fa-IR.js +1 -1
  8. package/lib/cjs/locale/fr-FR.js +1 -1
  9. package/lib/cjs/locale/id-ID.js +1 -1
  10. package/lib/cjs/locale/it-IT.js +1 -1
  11. package/lib/cjs/locale/ja-JP.js +1 -1
  12. package/lib/cjs/locale/ko-KR.js +1 -1
  13. package/lib/cjs/locale/pl-PL.js +1 -1
  14. package/lib/cjs/locale/pt-BR.js +1 -1
  15. package/lib/cjs/locale/ru-RU.js +1 -1
  16. package/lib/cjs/locale/sk-SK.js +1 -1
  17. package/lib/cjs/locale/vi-VN.js +1 -1
  18. package/lib/cjs/locale/zh-CN.js +1 -1
  19. package/lib/cjs/locale/zh-HK.js +1 -1
  20. package/lib/cjs/locale/zh-TW.js +1 -1
  21. package/lib/es/index.js +1 -1
  22. package/lib/es/locale/ar-SA.js +1 -1
  23. package/lib/es/locale/ca-ES.js +1 -1
  24. package/lib/es/locale/de-DE.js +1 -1
  25. package/lib/es/locale/en-US.js +1 -1
  26. package/lib/es/locale/es-ES.js +1 -1
  27. package/lib/es/locale/fa-IR.js +1 -1
  28. package/lib/es/locale/fr-FR.js +1 -1
  29. package/lib/es/locale/id-ID.js +1 -1
  30. package/lib/es/locale/it-IT.js +1 -1
  31. package/lib/es/locale/ja-JP.js +1 -1
  32. package/lib/es/locale/ko-KR.js +1 -1
  33. package/lib/es/locale/pl-PL.js +1 -1
  34. package/lib/es/locale/pt-BR.js +1 -1
  35. package/lib/es/locale/ru-RU.js +1 -1
  36. package/lib/es/locale/sk-SK.js +1 -1
  37. package/lib/es/locale/vi-VN.js +1 -1
  38. package/lib/es/locale/zh-CN.js +1 -1
  39. package/lib/es/locale/zh-HK.js +1 -1
  40. package/lib/es/locale/zh-TW.js +1 -1
  41. package/lib/index.css +15 -62
  42. package/lib/index.js +1 -1
  43. package/lib/locale/ar-SA.js +1 -1
  44. package/lib/locale/ca-ES.js +1 -1
  45. package/lib/locale/de-DE.js +1 -1
  46. package/lib/locale/en-US.js +1 -1
  47. package/lib/locale/es-ES.js +1 -1
  48. package/lib/locale/fa-IR.js +1 -1
  49. package/lib/locale/fr-FR.js +1 -1
  50. package/lib/locale/id-ID.js +1 -1
  51. package/lib/locale/it-IT.js +1 -1
  52. package/lib/locale/ja-JP.js +1 -1
  53. package/lib/locale/ko-KR.js +1 -1
  54. package/lib/locale/pl-PL.js +1 -1
  55. package/lib/locale/pt-BR.js +1 -1
  56. package/lib/locale/ru-RU.js +1 -1
  57. package/lib/locale/sk-SK.js +1 -1
  58. package/lib/locale/vi-VN.js +1 -1
  59. package/lib/locale/zh-CN.js +1 -1
  60. package/lib/locale/zh-HK.js +1 -1
  61. package/lib/locale/zh-TW.js +1 -1
  62. package/lib/types/common/embed-float-interaction-policy.d.ts +0 -2
  63. package/lib/types/common/embed-overlay-layers.d.ts +4 -0
  64. package/lib/types/components/EmbedFloatDomRenderer.d.ts +4 -37
  65. package/lib/types/components/EmbedHostToolbarMenu.d.ts +0 -26
  66. package/lib/types/components/embed-float-dom-data.d.ts +10 -0
  67. package/lib/types/components/embed-float-dom-geometry.d.ts +95 -0
  68. package/lib/types/components/embed-float-dom-interaction.d.ts +114 -0
  69. package/lib/types/plugin.d.ts +4 -2
  70. package/lib/types/products/bases/BaseFullscreenTableSidebar.d.ts +31 -0
  71. package/lib/types/products/bases/EmbedChildView.d.ts +5 -2
  72. package/lib/types/products/bases/EmbedFloatingMenu.d.ts +1 -6
  73. package/lib/types/products/bases/embed-content-size.d.ts +13 -7
  74. package/lib/types/products/bases/embed-passive-viewport.d.ts +2 -3
  75. package/lib/types/products/bases/register.d.ts +1 -0
  76. package/lib/types/products/docs/EmbedDocsCustomBlockRenderer.d.ts +3 -10
  77. package/lib/types/products/docs/docs-custom-block-layout.d.ts +2 -1
  78. package/lib/types/products/docs/embed-docs-custom-block-bleed.render-controller.d.ts +6 -1
  79. package/lib/types/products/product-ui-contributions.d.ts +1 -0
  80. package/lib/types/products/sheets/EmbedBlock.d.ts +4 -1
  81. package/lib/types/products/sheets/EmbedFloatingMenu.d.ts +2 -33
  82. package/lib/types/products/sheets/SheetEmbedFloatingMenuControls.d.ts +92 -0
  83. package/lib/types/products/sheets/SheetEmbedFloatingMenuPrimitives.d.ts +85 -0
  84. package/lib/types/products/sheets/embed-content-size.d.ts +2 -0
  85. package/lib/types/products/sheets/embed-passive-viewport.d.ts +2 -3
  86. package/lib/types/products/slides/EmbedChildView.d.ts +5 -1
  87. package/lib/types/services/embed-display-target-sync.d.ts +4 -0
  88. package/lib/types/services/embed-dom-wheel.d.ts +40 -0
  89. package/lib/types/services/embed-floating-menu-root.d.ts +4 -0
  90. package/lib/types/services/embed-fullscreen-runtime.d.ts +26 -0
  91. package/lib/types/types/embed-ui.d.ts +3 -0
  92. package/lib/umd/index.js +1 -1
  93. package/lib/umd/locale/ar-SA.js +1 -1
  94. package/lib/umd/locale/ca-ES.js +1 -1
  95. package/lib/umd/locale/de-DE.js +1 -1
  96. package/lib/umd/locale/en-US.js +1 -1
  97. package/lib/umd/locale/es-ES.js +1 -1
  98. package/lib/umd/locale/fa-IR.js +1 -1
  99. package/lib/umd/locale/fr-FR.js +1 -1
  100. package/lib/umd/locale/id-ID.js +1 -1
  101. package/lib/umd/locale/it-IT.js +1 -1
  102. package/lib/umd/locale/ja-JP.js +1 -1
  103. package/lib/umd/locale/ko-KR.js +1 -1
  104. package/lib/umd/locale/pl-PL.js +1 -1
  105. package/lib/umd/locale/pt-BR.js +1 -1
  106. package/lib/umd/locale/ru-RU.js +1 -1
  107. package/lib/umd/locale/sk-SK.js +1 -1
  108. package/lib/umd/locale/vi-VN.js +1 -1
  109. package/lib/umd/locale/zh-CN.js +1 -1
  110. package/lib/umd/locale/zh-HK.js +1 -1
  111. package/lib/umd/locale/zh-TW.js +1 -1
  112. package/package.json +36 -34
  113. package/lib/types/products/slides/components/embed-floating-preview/SlideEmbedFloatingPreview.d.ts +0 -24
@@ -1,11 +1,9 @@
1
1
  import type { EmbedFloatingStage, EmbedInteractionFlow } from '../types/embed-ui';
2
2
  export interface IEmbedFloatInteractionPolicy {
3
3
  allowHostBodyDrag: boolean;
4
- allowHostDragHandle: boolean;
5
4
  disableLiveHostPointerEvents: boolean;
6
5
  passThroughInteractionGate: boolean;
7
6
  runtimeOwnsInteraction: boolean;
8
- showHostDragHandle: boolean;
9
7
  }
10
8
  export declare function resolveEmbedFloatInteractionPolicy(params: {
11
9
  stage: EmbedFloatingStage;
@@ -0,0 +1,4 @@
1
+ /** Embed chrome sits above the embedded block while remaining below product overlays. */
2
+ export declare const EMBED_CHROME_Z_INDEX = 800;
3
+ /** Fullscreen covers other embed chrome while remaining below product overlays. */
4
+ export declare const EMBED_FULLSCREEN_Z_INDEX = 810;
@@ -1,27 +1,6 @@
1
- import type { IDisposable } from '@univerjs/core';
2
1
  import type { Observable } from 'rxjs';
3
2
  import type { EmbedFloatingStage, EmbedInteractionFlow, IEmbedChildContainerContext } from '../types/embed-ui';
4
- import { UniverInstanceType } from '@univerjs/core';
5
- import { ILayoutService } from '@univerjs/ui';
6
- import { EmbedRuntimeFocusCoordinator } from '../services/embed-runtime-focus-coordinator.service';
7
- export declare const EMBED_FLOAT_DRAG_HANDLE_POINTER_DOWN_EVENT = "univer:embed-float-drag-handle:pointerdown";
8
- export interface IEmbedFloatDragHandlePointerDownDetail {
9
- embedId: string;
10
- hostUnitId: string;
11
- hostAnchorId: string;
12
- pointerId?: number;
13
- clientX: number;
14
- clientY: number;
15
- button?: number;
16
- }
17
- export interface IEmbedFloatDomData {
18
- version: 1;
19
- embedId: string;
20
- hostUnitId?: string;
21
- hostAnchorId: string;
22
- childUnitId?: string;
23
- childType?: UniverInstanceType;
24
- }
3
+ import type { IEmbedFloatDomData } from './embed-float-dom-data';
25
4
  export type IEmbedDocsCustomBlockLayout = {
26
5
  floatingMenuInsetTop: number;
27
6
  sheetLike: false;
@@ -29,8 +8,11 @@ export type IEmbedDocsCustomBlockLayout = {
29
8
  bleedLeft: number;
30
9
  bleedWidth: number;
31
10
  contentHeight: number;
11
+ contentWidth: number;
32
12
  floatingMenuInsetTop: number;
13
+ pageContentWidth: number;
33
14
  sheetLike: true;
15
+ viewScale: number;
34
16
  viewportHeight: number;
35
17
  };
36
18
  export declare function EmbedFloatDomRenderer(props: {
@@ -55,18 +37,3 @@ export declare function EmbedFloatDomRenderer(props: {
55
37
  resolveHostWheelGestureRoot?: (container: HTMLElement) => HTMLElement | null | undefined;
56
38
  isExternalHostInteraction?: (event: PointerEvent) => boolean;
57
39
  }): import("react").JSX.Element;
58
- export declare function syncRuntimeInteractionVisibility(container: HTMLElement, chrome: HTMLElement | undefined, visible: boolean, _stage: 'inactive' | 'stage1' | 'stage2'): void;
59
- export declare function syncChromeControlsVisibility(container: HTMLElement, chrome: HTMLElement | undefined, visible: boolean, dragHandleVisible: boolean, stage: 'inactive' | 'stage1' | 'stage2'): void;
60
- export declare function syncDocsSheetLikeChromePageArea(chrome: HTMLElement, chromeRect: DOMRect, pageRect: DOMRect): void;
61
- export declare function resolveChromeAnchorRect(container: HTMLElement): DOMRect;
62
- export declare function registerEmbedStage2LayoutContainers(layoutService: Pick<ILayoutService, 'checkElementInCurrentContainers' | 'registerContainerElement'>, focusCoordinator: Pick<EmbedRuntimeFocusCoordinator, 'listElements' | 'runtimeFocusChanged$'>, embedId: string | undefined, container: HTMLElement | null, stage: EmbedFloatingStage): IDisposable | undefined;
63
- export declare function shouldAcquireOwnedInteractionPointerLease(options: {
64
- stage: EmbedFloatingStage;
65
- target: EventTarget | null;
66
- liveRoot: HTMLElement;
67
- isOwnedChildInteraction: boolean;
68
- }): boolean;
69
- export declare function shouldPreserveFocusAfterOwnedPointerInteraction(options: {
70
- now: number;
71
- ownedPointerInteractionUntil: number;
72
- }): boolean;
@@ -1,6 +1,3 @@
1
- import type { EmbedLayout, IEmbedDescriptor } from '@univerjs-pro/embed';
2
- import type { IDisposable } from '@univerjs/core';
3
- import type { IEmbedChildContainerContext, IEmbedRenderScope } from '../types/embed-ui';
4
1
  import { Injector } from '@univerjs/core';
5
2
  export declare function EmbedHostToolbarMenu(): import("react").JSX.Element | null;
6
3
  interface IEmbedFullscreenRuntimeParts {
@@ -11,27 +8,4 @@ interface IEmbedFullscreenRuntimeParts {
11
8
  }
12
9
  export declare function EmbedFullscreenPopupParts(props: IEmbedFullscreenRuntimeParts): import("react").JSX.Element;
13
10
  export declare function EmbedFullscreenRightSidebarParts(props: IEmbedFullscreenRuntimeParts): import("react").JSX.Element;
14
- export declare function createFullscreenRenderScope(descriptor: IEmbedDescriptor, layout: EmbedLayout, roots: {
15
- viewport: HTMLElement;
16
- menuSlot: HTMLElement;
17
- popupSlot?: HTMLElement;
18
- footerSlot: HTMLElement;
19
- }): IEmbedRenderScope;
20
- export declare function registerFullscreenRuntimeOwnership(params: {
21
- injector: Injector;
22
- descriptor: IEmbedDescriptor;
23
- renderScope: IEmbedRenderScope;
24
- menuRoot: HTMLElement | null;
25
- menuSlot: HTMLElement;
26
- popupSlot: HTMLElement;
27
- sidebarSlot: HTMLElement;
28
- rightSidebarSlot: HTMLElement;
29
- footerSlot: HTMLElement;
30
- }): IDisposable;
31
- export declare function mountFullscreenWorkbenchMenus(params: {
32
- injector: Injector;
33
- descriptor: IEmbedDescriptor;
34
- childContext: IEmbedChildContainerContext;
35
- menuContainer: HTMLElement;
36
- }): IDisposable | undefined;
37
11
  export {};
@@ -0,0 +1,10 @@
1
+ import type { UniverInstanceType } from '@univerjs/core';
2
+ export interface IEmbedFloatDomData {
3
+ childType?: UniverInstanceType;
4
+ childUnitId?: string;
5
+ embedId: string;
6
+ hostAnchorId: string;
7
+ hostUnitId?: string;
8
+ version: 1;
9
+ }
10
+ export declare function normalizeEmbedFloatDomData(data: unknown): IEmbedFloatDomData | undefined;
@@ -0,0 +1,95 @@
1
+ import type { IDisposable } from '@univerjs/core';
2
+ import type { Observable } from 'rxjs';
3
+ import type { EmbedFloatingGeometryService } from '../services/embed-floating-geometry.service';
4
+ import type { EmbedFloatingStage, IEmbedChildContainerContext, IEmbedPassiveViewportProvider } from '../types/embed-ui';
5
+ interface IEmbedFloatDomRect {
6
+ height: number;
7
+ left: number;
8
+ top: number;
9
+ width: number;
10
+ }
11
+ export declare const MIN_DOCS_SHEET_LIKE_RUNTIME_INTERACTION_HEIGHT = 24;
12
+ export declare const MIN_EMBED_FLOATING_CHROME_CONTROLS_HEIGHT = 40;
13
+ export type EmbedVerticalScrollOwner = 'host' | 'child' | undefined;
14
+ interface IDocsEmbedVerticalScrollState {
15
+ childOffset: number;
16
+ clipBottom: number;
17
+ visualOffset: number;
18
+ }
19
+ export interface IEmbedHostVerticalScrollSyncOptions {
20
+ container: HTMLElement;
21
+ content: HTMLElement;
22
+ contentHeight?: number;
23
+ enabled?: boolean;
24
+ getChildContext: () => IEmbedChildContainerContext | undefined;
25
+ getProvider: (context: IEmbedChildContainerContext) => IEmbedPassiveViewportProvider | undefined;
26
+ getStage: () => EmbedFloatingStage;
27
+ hostLayout$?: Observable<unknown>;
28
+ invalidate: () => void;
29
+ offset: {
30
+ current: number;
31
+ };
32
+ onHostWheel?: (event: WheelEvent, context: IEmbedChildContainerContext) => boolean | void;
33
+ owner: {
34
+ current: EmbedVerticalScrollOwner;
35
+ };
36
+ syncingChildFromHost: {
37
+ current: boolean;
38
+ };
39
+ syncingHostFromChild: {
40
+ current: boolean;
41
+ };
42
+ viewScale?: number;
43
+ viewportHeight?: number;
44
+ }
45
+ export declare function registerEmbedHostVerticalScrollSync(options: IEmbedHostVerticalScrollSyncOptions): IDisposable;
46
+ export declare function canWriteDocsEmbedVerticalScroll(owner: EmbedVerticalScrollOwner, writer: Exclude<EmbedVerticalScrollOwner, undefined>): boolean;
47
+ export declare function resolveDocsEmbedHostScrollDelta(targetOffset: number, currentOffset: number, distanceToSticky: number): number;
48
+ export declare function resolveDocsEmbedVerticalScrollState(params: {
49
+ contentHeight: number;
50
+ hostOffset: number;
51
+ stickyHeaderHeight: number;
52
+ viewportHeight: number;
53
+ }): IDocsEmbedVerticalScrollState;
54
+ export declare function resolveDocsSheetLikeHorizontalMetrics(layout: {
55
+ bleedLeft: number;
56
+ bleedWidth: number;
57
+ contentWidth: number;
58
+ }): {
59
+ initialWidth: number;
60
+ maxExpansion: number;
61
+ };
62
+ export declare function clampNumber(value: number, min: number, max: number): number;
63
+ export declare function resetEmbedChromeLayoutStyles(chrome: HTMLElement): void;
64
+ export declare function cacheEmbedFloatDomRect(container: HTMLElement, rect?: IEmbedFloatDomRect): void;
65
+ export declare function registerEmbedChromeLayout(options: {
66
+ chrome: HTMLElement;
67
+ container: HTMLElement;
68
+ deferInactive?: boolean;
69
+ docsSheetLikeLayout?: {
70
+ contentWidth: number;
71
+ pageContentWidth: number;
72
+ };
73
+ embedId?: string;
74
+ geometryService: EmbedFloatingGeometryService;
75
+ hostLayout$?: Observable<unknown>;
76
+ stage: EmbedFloatingStage;
77
+ }): IDisposable;
78
+ export declare function isPointInsideFloatBlock(container: HTMLElement, event: MouseEvent): boolean;
79
+ export declare function syncRuntimeInteractionVisibility(container: HTMLElement, chrome: HTMLElement | undefined, visible: boolean, _stage: EmbedFloatingStage): void;
80
+ export declare function syncChromeControlsVisibility(container: HTMLElement, chrome: HTMLElement | undefined, visible: boolean, stage: EmbedFloatingStage): void;
81
+ export declare function syncDocsSheetLikeChromePageArea(chrome: HTMLElement, chromeRect: DOMRect, pageRect: DOMRect): void;
82
+ export declare function resolveDocsSheetLikePageAreaRect(containerRect: DOMRect, layout?: {
83
+ contentWidth: number;
84
+ pageContentWidth: number;
85
+ }): DOMRect;
86
+ export declare function clearDocsSheetLikeChromePageArea(chrome: HTMLElement): void;
87
+ export declare function resolveChromeAnchorRect(container: HTMLElement): DOMRect;
88
+ export declare function isDocsSheetLikeChrome(container: HTMLElement): boolean;
89
+ export declare function isDocsCustomBlockChrome(container: HTMLElement): boolean;
90
+ export declare function invalidateGeometryAfterRuntimeScroll(geometryService: EmbedFloatingGeometryService, embedId: string | undefined, reason: 'child-scroll' | 'host-scroll' | 'wheel', framesRef: {
91
+ current: number[];
92
+ }): void;
93
+ export declare function shouldSyncChromeRectForGlobalEvent(container: HTMLElement, event: Event | undefined, cachedRect: Partial<IEmbedFloatDomRect>): boolean;
94
+ export declare function isVerticalWheelOrScrollEvent(event: Event | undefined): boolean;
95
+ export {};
@@ -0,0 +1,114 @@
1
+ import type { EmbedModelService } from '@univerjs-pro/embed';
2
+ import type { IDisposable } from '@univerjs/core';
3
+ import type { ILayoutService } from '@univerjs/ui';
4
+ import type { EmbedActivationService } from '../services/embed-activation.service';
5
+ import type { EmbedFloatingActiveService } from '../services/embed-floating-active.service';
6
+ import type { EmbedInteractionBoundaryService } from '../services/embed-interaction-boundary.service';
7
+ import type { EmbedRuntimeFocusCoordinator, EmbedRuntimeFocusRole } from '../services/embed-runtime-focus-coordinator.service';
8
+ import type { EmbedFloatingStage, EmbedInteractionFlow } from '../types/embed-ui';
9
+ import type { EmbedVerticalScrollOwner } from './embed-float-dom-geometry';
10
+ import { UniverInstanceType } from '@univerjs/core';
11
+ export declare const EMBED_FLOAT_CHROME_CONTROL_SELECTOR = "[data-embed-floating-menu=\"true\"], [data-embed-floating-menu-popup=\"true\"], [data-embed-ribbon-override=\"true\"]";
12
+ export declare const EMBED_FLOAT_DRAG_HANDLE_POINTER_DOWN_EVENT = "univer:embed-float-drag-handle:pointerdown";
13
+ export interface IEmbedFloatDragHandlePointerDownDetail {
14
+ button?: number;
15
+ clientX: number;
16
+ clientY: number;
17
+ embedId: string;
18
+ hostAnchorId: string;
19
+ hostUnitId: string;
20
+ pointerId?: number;
21
+ }
22
+ export declare function getRuntimeRootElements(...roots: Array<HTMLElement | null | undefined>): HTMLElement[];
23
+ export declare function findRuntimeCanvas(roots: HTMLElement[], target?: EventTarget | null): HTMLCanvasElement | null;
24
+ export declare function shouldAutoFocusRuntimeCanvas(childType: UniverInstanceType | undefined, allowBase?: boolean): boolean;
25
+ export declare function isChildEditorOrPopupRuntimeElement(target: EventTarget | null): boolean;
26
+ export declare function getRuntimeFocusRole(target: EventTarget | null): EmbedRuntimeFocusRole | undefined;
27
+ export declare function registerEmbedStage2LayoutContainers(layoutService: Pick<ILayoutService, 'checkElementInCurrentContainers' | 'registerContainerElement'>, focusCoordinator: Pick<EmbedRuntimeFocusCoordinator, 'listElements' | 'runtimeFocusChanged$'>, embedId: string | undefined, container: HTMLElement | null, stage: EmbedFloatingStage): IDisposable | undefined;
28
+ export declare function shouldAcquireOwnedInteractionPointerLease(options: {
29
+ stage: EmbedFloatingStage;
30
+ target: EventTarget | null;
31
+ liveRoot: HTMLElement;
32
+ isOwnedChildInteraction: boolean;
33
+ }): boolean;
34
+ export declare function shouldPreserveFocusAfterOwnedPointerInteraction(options: {
35
+ now: number;
36
+ ownedPointerInteractionUntil: number;
37
+ }): boolean;
38
+ export declare function registerEmbedOutsideInteraction(options: {
39
+ activationService: EmbedActivationService;
40
+ chrome: HTMLElement | null;
41
+ container: HTMLElement;
42
+ embedId: string;
43
+ externalHostInteractionUntil: {
44
+ current: number;
45
+ };
46
+ floatingActiveService: EmbedFloatingActiveService;
47
+ focusCoordinator: EmbedRuntimeFocusCoordinator;
48
+ graceMs: number;
49
+ hostUnitId?: string;
50
+ interactionBoundaryService: EmbedInteractionBoundaryService;
51
+ isExternalHostInteraction?: (event: PointerEvent) => boolean;
52
+ ownedPointerInteractionUntil: {
53
+ current: number;
54
+ };
55
+ runtimeFocusOwners: string[];
56
+ }): IDisposable;
57
+ export declare function registerEmbedActivationInteraction(options: {
58
+ acquireStage2SessionLease: () => void;
59
+ activationService: EmbedActivationService;
60
+ data: {
61
+ embedId: string;
62
+ hostAnchorId: string;
63
+ hostUnitId: string;
64
+ };
65
+ embedModelService: EmbedModelService;
66
+ enableStage1BodyDrag?: boolean;
67
+ floatingActiveService: EmbedFloatingActiveService;
68
+ gate: HTMLElement;
69
+ interactionFlow: EmbedInteractionFlow;
70
+ popupRoot: HTMLElement | null;
71
+ releaseStage2SessionLeaseIfActivationDoesNotStick: () => void;
72
+ }): IDisposable;
73
+ export declare function registerEmbedCanvasFocus(options: {
74
+ acquireStage2SessionLease: () => void;
75
+ activationService: EmbedActivationService;
76
+ data: {
77
+ childType?: UniverInstanceType;
78
+ embedId?: string;
79
+ hostUnitId?: string;
80
+ };
81
+ embedModelService: EmbedModelService;
82
+ floatingActiveService: EmbedFloatingActiveService;
83
+ focusCoordinator: EmbedRuntimeFocusCoordinator;
84
+ getRuntimeRoots: () => HTMLElement[];
85
+ interactionFlow: EmbedInteractionFlow;
86
+ liveRoot: HTMLElement;
87
+ popupRoot: HTMLElement | null;
88
+ releaseStage2SessionLeaseIfActivationDoesNotStick: () => void;
89
+ runtimeFocusOwners: string[];
90
+ }): IDisposable;
91
+ export declare function registerEmbedPointerLease(options: {
92
+ data: {
93
+ childType?: UniverInstanceType;
94
+ childUnitId?: string;
95
+ embedId: string;
96
+ hostUnitId?: string;
97
+ };
98
+ floatingActiveService: EmbedFloatingActiveService;
99
+ focusCoordinator: EmbedRuntimeFocusCoordinator;
100
+ graceMs: number;
101
+ interactionBoundaryService: EmbedInteractionBoundaryService;
102
+ liveRoot: HTMLElement;
103
+ ownedPointerInteractionUntil: {
104
+ current: number;
105
+ };
106
+ pointerLease: {
107
+ current: IDisposable | undefined;
108
+ };
109
+ verticalScrollOwner: {
110
+ current: EmbedVerticalScrollOwner;
111
+ };
112
+ }): IDisposable;
113
+ export declare function isHostFocusSurface(target: HTMLElement): boolean;
114
+ export declare function blurRuntimeFocusIfOwnedByBlock(embedId: string | undefined, roots: HTMLElement[]): void;
@@ -1,19 +1,21 @@
1
1
  import type { IUniverEmbedUIPluginConfig } from './config/config';
2
- import { IConfigService, Injector, Plugin, UniverInstanceType } from '@univerjs/core';
2
+ import { IConfigService, Injector, IUniverInstanceService, Plugin, UniverInstanceType } from '@univerjs/core';
3
3
  export declare class UniverEmbedUIPlugin extends Plugin {
4
4
  private readonly _config;
5
5
  protected readonly _injector: Injector;
6
6
  private readonly _configService;
7
+ private readonly _univerInstanceService;
7
8
  static pluginName: string;
8
9
  static packageName: string;
9
10
  static version: string;
10
11
  static type: UniverInstanceType;
11
- constructor(_config: Partial<IUniverEmbedUIPluginConfig> | undefined, _injector: Injector, _configService: IConfigService);
12
+ constructor(_config: Partial<IUniverEmbedUIPluginConfig> | undefined, _injector: Injector, _configService: IConfigService, _univerInstanceService: IUniverInstanceService);
12
13
  onStarting(): void;
13
14
  onReady(): void;
14
15
  private _registerServices;
15
16
  private _registerProductMenus;
16
17
  private _registerProductUIContributions;
18
+ private _registerLateProductUIContributions;
17
19
  private _flushPendingContributions;
18
20
  private _registerFloatingMenus;
19
21
  private _touchServices;
@@ -0,0 +1,31 @@
1
+ import type { BaseDataModel, BaseViewType, ITableSnapshot, IViewSnapshot } from '@univerjs/core';
2
+ export declare function BaseFullscreenTablePanelPortal(props: {
3
+ embedId: string;
4
+ childUnitId: string;
5
+ base: BaseDataModel;
6
+ activeTable: ITableSnapshot;
7
+ }): import("react").ReactPortal | null;
8
+ export declare function BaseEmbedFullscreenViewTabs(props: {
9
+ embedId: string;
10
+ activeView: IViewSnapshot;
11
+ views: IViewSnapshot[];
12
+ addViewOpen: boolean;
13
+ onAddViewOpenChange: (open: boolean) => void;
14
+ onActivateView: (viewId: string) => void;
15
+ onAddView: (type: BaseViewType) => void;
16
+ onSetViewAsFirst: (viewId: string) => void;
17
+ onMoveView: (viewId: string, target: {
18
+ beforeViewId?: string;
19
+ afterViewId?: string;
20
+ }) => void;
21
+ onRenameView: (viewId: string, name: string) => void;
22
+ onDuplicateView: (viewId: string) => void;
23
+ onConfigureView: (anchor: HTMLElement, viewId: string) => void;
24
+ onDeleteView: (viewId: string) => void;
25
+ }): import("react").JSX.Element;
26
+ export declare function getVisibleBaseTables(snapshot: ReturnType<BaseDataModel['getSnapshot']> | undefined): ITableSnapshot[];
27
+ export declare function createBaseFullscreenTableSidebarItems(snapshot: ReturnType<BaseDataModel['getSnapshot']> | undefined, activeTableId: string | null | undefined): {
28
+ id: string;
29
+ name: string;
30
+ active: boolean;
31
+ }[];
@@ -1,13 +1,16 @@
1
1
  import type { IUniverBaseUIConfig } from '@univerjs-pro/bases-ui';
2
+ import type { EmbedDisplayTarget, IEmbedBaseDisplayTarget } from '@univerjs-pro/embed';
2
3
  import type { BaseDataModel, Injector } from '@univerjs/core';
3
4
  import type { IEmbedChildContainerContext, IEmbedChildViewContribution } from '../../types/embed-ui';
4
5
  import { BaseEditorService, BaseUIPopupService, BaseUIStateService, IBaseUIPopupService, IBaseViewWheelScrollService } from '@univerjs-pro/bases-ui';
6
+ import { ICommandService } from '@univerjs/core';
5
7
  export type BaseEmbedChromeMode = 'workbench' | 'content-only' | 'fullscreen';
6
- export declare function createBasesEmbedChildViewContribution(): IEmbedChildViewContribution;
8
+ export declare function createBasesEmbedChildViewContribution(commandService: ICommandService): IEmbedChildViewContribution;
7
9
  export declare function isBaseCanvasRootReady(canvasRoot: HTMLElement | null): canvasRoot is HTMLElement;
8
10
  export declare function shouldActivateBasesEmbedRender(_context: Pick<IEmbedChildContainerContext, 'renderScope'>): boolean;
9
11
  export declare function createBasesEmbedChildUnitScopedInjector(context: IEmbedChildContainerContext, baseStateService: BaseUIStateService, basePopupService: IBaseUIPopupService, baseEditorService: BaseEditorService): Injector | undefined;
10
- export declare function initializeBasesEmbedState(stateService: BaseUIStateService, childUnit: BaseDataModel, chromeMode?: BaseEmbedChromeMode): void;
12
+ export declare function initializeBasesEmbedState(stateService: BaseUIStateService, childUnit: BaseDataModel, chromeMode?: BaseEmbedChromeMode, displayTarget?: EmbedDisplayTarget): void;
13
+ export declare function resolveBasesDisplayTarget(childUnit: BaseDataModel, displayTarget?: EmbedDisplayTarget): IEmbedBaseDisplayTarget;
11
14
  export declare function resolveBasesEmbedChromeMode(context: Pick<IEmbedChildContainerContext, 'renderScope'>): BaseEmbedChromeMode;
12
15
  export declare function createBasesEmbedScopedInjector(rootInjector: Injector, childScopedInjector: Injector, baseStateService: BaseUIStateService, basePopupService?: BaseUIPopupService, baseEditorService?: BaseEditorService, chromeMode?: BaseEmbedChromeMode, baseWheelScrollService?: IBaseViewWheelScrollService, readOnly?: boolean, globalPortalContainer?: HTMLElement | null): Injector;
13
16
  export declare function resolveEmbeddedBaseUIConfig(baseConfig: IUniverBaseUIConfig, chromeMode?: BaseEmbedChromeMode): IUniverBaseUIConfig;
@@ -1,5 +1,5 @@
1
1
  import type { IBaseToolbarState } from '@univerjs-pro/bases-ui';
2
- import type { BaseDataModel, IViewSnapshot } from '@univerjs/core';
2
+ import type { IViewSnapshot } from '@univerjs/core';
3
3
  import type { IEmbedFloatingMenuContribution } from '../../types/embed-ui';
4
4
  export declare const BASE_EMBED_VIEW_PANEL_WIDTH = 208;
5
5
  export declare function createBasesFloatingMenuContributions(): IEmbedFloatingMenuContribution[];
@@ -19,11 +19,6 @@ export declare function createBaseFloatingToolbarState(view: IViewSnapshot, undo
19
19
  undos?: number;
20
20
  redos?: number;
21
21
  }): IBaseToolbarState;
22
- export declare function createBaseFullscreenTableSidebarItems(snapshot: ReturnType<BaseDataModel['getSnapshot']> | undefined, activeTableId: string | null | undefined): {
23
- id: string;
24
- name: string;
25
- active: boolean;
26
- }[];
27
22
  export declare function viewPanelStyle(anchor: DOMRect): {
28
23
  top: number;
29
24
  left: number;
@@ -1,9 +1,15 @@
1
1
  import type { IEmbedContentSizeProvider } from '../../types/embed-ui';
2
- interface IBaseContentSizeActiveState {
3
- activeTableId?: string;
4
- activeViewId?: string;
2
+ import { IBaseProjectionService } from '@univerjs-pro/bases';
3
+ import { IBaseUIStateService, IBaseViewWheelScrollService } from '@univerjs-pro/bases-ui';
4
+ import { UniverInstanceType } from '@univerjs/core';
5
+ export declare class BasesEmbedContentSizeProvider implements IEmbedContentSizeProvider {
6
+ private readonly _baseUIStateService;
7
+ private readonly _projectionService;
8
+ private readonly _wheelScrollService;
9
+ readonly childType = UniverInstanceType.UNIVER_BASE;
10
+ constructor(_baseUIStateService: IBaseUIStateService, _projectionService: IBaseProjectionService, _wheelScrollService: IBaseViewWheelScrollService);
11
+ measureContentSize(context: Parameters<IEmbedContentSizeProvider['measureContentSize']>[0]): {
12
+ height: number | undefined;
13
+ width: number | undefined;
14
+ } | undefined;
5
15
  }
6
- export declare function createBasesContentSizeProvider(baseUIStateService?: {
7
- getState?: () => IBaseContentSizeActiveState | undefined;
8
- }): IEmbedContentSizeProvider;
9
- export {};
@@ -1,3 +1,2 @@
1
- import type { Injector } from '@univerjs/core';
2
- import type { IEmbedPassiveViewportProvider } from '../../types/embed-ui';
3
- export declare function createBasesPassiveViewportProvider(rootInjector: Injector): IEmbedPassiveViewportProvider;
1
+ import type { IEmbedChildContainerContext, IEmbedPassiveViewportProvider } from '../../types/embed-ui';
2
+ export declare function createBasesPassiveViewportProvider(rootInjector: IEmbedChildContainerContext['injector']): IEmbedPassiveViewportProvider;
@@ -5,6 +5,7 @@ import { EmbedActivationService } from '../../services/embed-activation.service'
5
5
  import { EmbedHostRestoreService } from '../../services/embed-host-restore.service';
6
6
  import { EmbedMountService } from '../../services/embed-mount.service';
7
7
  export declare function registerBasesEmbedUIContributions(injector: Injector): void;
8
+ export declare function registerBasesEmbedContentSizeProvider(injector: Injector): void;
8
9
  export declare function createBasesEmbedRuntimeService(params: {
9
10
  embedModelService: EmbedModelService;
10
11
  restoreService: EmbedHostRestoreService;
@@ -1,4 +1,4 @@
1
- import type { IEmbedFloatDomData } from '../../components/EmbedFloatDomRenderer';
1
+ import type { IEmbedFloatDomData } from '../../components/embed-float-dom-data';
2
2
  import { IRenderManagerService } from '@univerjs/engine-render';
3
3
  export interface IEmbedDocsCustomBlockRuntimeProps {
4
4
  customBlockRenderViewport?: {
@@ -7,22 +7,15 @@ export interface IEmbedDocsCustomBlockRuntimeProps {
7
7
  contentHeight?: number;
8
8
  contentWidth?: number;
9
9
  height?: number;
10
+ pageContentWidth?: number;
11
+ viewScale?: number;
10
12
  viewportHeight?: number;
11
13
  };
12
14
  }
13
- export interface IDocsTableLikeCustomBlockWheelHandlerOptions {
14
- getLive: () => HTMLElement | null;
15
- getMaxScrollLeft?: () => number | undefined;
16
- }
17
- export interface IDocsTableLikeCustomBlockStage2WheelHandlerOptions extends IDocsTableLikeCustomBlockWheelHandlerOptions {
18
- getStage: () => 'inactive' | 'stage1' | 'stage2' | undefined;
19
- }
20
15
  export declare function EmbedDocsCustomBlockRenderer(props: {
21
16
  data?: IEmbedFloatDomData;
22
17
  } & IEmbedDocsCustomBlockRuntimeProps): import("react").JSX.Element;
23
18
  export declare function blurHostDocSelectionWhenEmbedRuntimeEntersStage(renderManagerService: IRenderManagerService, hostUnitId: string | undefined, stage: 'inactive' | 'stage1' | 'stage2'): void;
24
- export declare function createDocsTableLikeCustomBlockWheelHandler(options: IDocsTableLikeCustomBlockWheelHandlerOptions): (event: WheelEvent) => void;
25
- export declare function createDocsTableLikeCustomBlockStage2WheelHandler(options: IDocsTableLikeCustomBlockStage2WheelHandlerOptions): (event: WheelEvent) => void;
26
19
  export declare function resolveDocsTableLikeCustomBlockRuntimeContentHeight(authoritativeContentHeight: number | undefined): number;
27
20
  export declare function resolveDocsCustomBlockRuntimeViewportHeight(params: {
28
21
  contentHeight: number;
@@ -1,5 +1,6 @@
1
1
  export declare const DOCS_CUSTOM_BLOCK_FLOATING_MENU_INSET_TOP = 52;
2
+ export declare function resolveDocsSheetCustomBlockContentHeight(contentHeight: number): number;
2
3
  export declare function resolveDocsCustomBlockLayoutHeight(params: {
3
4
  contentHeight: number;
4
- tableLike: boolean;
5
+ floatingMenuInsetTop: number;
5
6
  }): number;
@@ -2,6 +2,7 @@ import type { DocumentDataModel } from '@univerjs/core';
2
2
  import type { IRenderContext, IRenderModule } from '@univerjs/engine-render';
3
3
  import { EmbedModelService } from '@univerjs-pro/embed';
4
4
  import { Disposable, ICommandService, IUniverInstanceService } from '@univerjs/core';
5
+ import { DocViewScaleService } from '@univerjs/docs-ui';
5
6
  import { IRenderManagerService } from '@univerjs/engine-render';
6
7
  import { EmbedContentSizeRegistryService } from '../../services/embed-content-size-registry.service';
7
8
  export declare class EmbedDocsCustomBlockBleedRenderController extends Disposable implements IRenderModule {
@@ -11,9 +12,10 @@ export declare class EmbedDocsCustomBlockBleedRenderController extends Disposabl
11
12
  private readonly _contentSizeRegistry;
12
13
  private readonly _embedModelService;
13
14
  private readonly _renderManagerService;
15
+ private readonly _docViewScaleService;
14
16
  private readonly _resolvedChildUnits;
15
17
  private readonly _pendingChildUnits;
16
- constructor(_context: IRenderContext<DocumentDataModel>, _univerInstanceService: IUniverInstanceService, _commandService: ICommandService, _contentSizeRegistry: EmbedContentSizeRegistryService, _embedModelService: EmbedModelService, _renderManagerService: IRenderManagerService);
18
+ constructor(_context: IRenderContext<DocumentDataModel>, _univerInstanceService: IUniverInstanceService, _commandService: ICommandService, _contentSizeRegistry: EmbedContentSizeRegistryService, _embedModelService: EmbedModelService, _renderManagerService: IRenderManagerService, _docViewScaleService: DocViewScaleService);
17
19
  private _getHostUnit;
18
20
  private _getHostSnapshot;
19
21
  private _rerenderHostDoc;
@@ -23,3 +25,6 @@ export declare class EmbedDocsCustomBlockBleedRenderController extends Disposabl
23
25
  private _getDocsLeft;
24
26
  private _getVisibleCanvasDocumentRect;
25
27
  }
28
+ export declare function observeDocsCustomBlockCanvasResize(canvas: Element | null | undefined, onResize: () => void): {
29
+ dispose: () => void;
30
+ } | undefined;
@@ -1,2 +1,3 @@
1
1
  import type { Injector } from '@univerjs/core';
2
2
  export declare function registerDefaultEmbedProductUIContributions(injector: Injector): void;
3
+ export declare function registerDefaultEmbedProductUILateContributions(injector: Injector): void;
@@ -1,6 +1,9 @@
1
+ import type { EmbedDisplayTarget } from '@univerjs-pro/embed';
2
+ import type { ICommandService, Workbook } from '@univerjs/core';
1
3
  import type { IEmbedBlockContribution, IEmbedChildContainerContext, IEmbedChildViewContribution } from '../../types/embed-ui';
2
4
  export declare function createSheetsEmbedBlockContribution(): IEmbedBlockContribution;
3
- export declare function createSheetsEmbedChildViewContribution(): IEmbedChildViewContribution;
5
+ export declare function createSheetsEmbedChildViewContribution(commandService: ICommandService): IEmbedChildViewContribution;
6
+ export declare function applySheetDisplayTarget(workbook: Workbook, target: EmbedDisplayTarget | undefined): void;
4
7
  export declare function shouldShowEmbeddedSheetChrome(context: Pick<IEmbedChildContainerContext, 'renderScope'>): boolean;
5
8
  export declare function applyEmbeddedSheetChromeInset(canvasRoot: HTMLElement, chrome: {
6
9
  formulaBar: boolean;
@@ -1,7 +1,6 @@
1
- import type { IMenuItem, IMenuSchema, IValueOption } from '@univerjs/ui';
1
+ import type { IMenuItem, IMenuSchema } from '@univerjs/ui';
2
2
  import type { IEmbedFloatingMenuContribution } from '../../types/embed-ui';
3
- import { BORDER_LINE_CHILDREN } from '@univerjs/sheets-ui';
4
- import { FONT_SIZE_LIST } from '@univerjs/ui';
3
+ import type { IResolvedSheetsFloatingToolbarMenuItems } from './SheetEmbedFloatingMenuControls';
5
4
  export type SheetFloatingToolbarItem = {
6
5
  id: string;
7
6
  type: 'button' | 'dropdown';
@@ -10,41 +9,11 @@ export type SheetFloatingToolbarItem = {
10
9
  type: 'divider';
11
10
  };
12
11
  export declare function createSheetsFloatingToolbarItems(): SheetFloatingToolbarItem[];
13
- export declare function createSheetsFloatingBorderLineItems(): typeof BORDER_LINE_CHILDREN;
14
- export declare function createSheetsFloatingFontSizeItems(): typeof FONT_SIZE_LIST;
15
- export interface IResolvedSheetsFloatingToolbarMenuItems {
16
- formatPainter?: IMenuItem;
17
- numberFormat?: IMenuItem;
18
- fontFamily?: IMenuItem;
19
- fontSize?: IMenuItem;
20
- bold?: IMenuItem;
21
- textColor?: IMenuItem;
22
- backgroundColor?: IMenuItem;
23
- borderComposite?: IMenuItem;
24
- merge?: {
25
- root?: IMenuItem;
26
- all?: IMenuItem;
27
- vertical?: IMenuItem;
28
- horizontal?: IMenuItem;
29
- unmerge?: IMenuItem;
30
- };
31
- horizontalAlign?: IMenuItem;
32
- verticalAlign?: IMenuItem;
33
- wrap?: IMenuItem;
34
- filter?: IMenuItem;
35
- deleteBlock?: true;
36
- }
37
12
  export declare function resolveSheetsFloatingToolbarMenuItems(menuSchemas: IMenuSchema[]): IResolvedSheetsFloatingToolbarMenuItems;
38
13
  export declare function createVisibleSheetsFloatingToolbarItems(resolved: IResolvedSheetsFloatingToolbarMenuItems): SheetFloatingToolbarItem[];
39
- export declare function getStaticMenuSelections(item: IMenuItem | undefined): IValueOption[];
40
14
  export declare function resolveMenuCommandRequest(item: IMenuItem | undefined, params?: object): {
41
15
  commandId: string;
42
16
  params?: object;
43
17
  } | undefined;
44
18
  export declare function createSheetsFloatingMenuContributions(): IEmbedFloatingMenuContribution[];
45
19
  export declare function shouldUseSheetsFloatingMenuDomStage(_entry: string): boolean;
46
- export declare function isFloatingDropdownOwnSurfaceTarget(target: EventTarget | null, embedId: string): boolean;
47
- export declare function keepFloatingDropdownOpenForOwnSurface(event: {
48
- target: EventTarget | null;
49
- preventDefault: () => void;
50
- }, embedId: string): void;