@univerjs-pro/shape-editor-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 (115) 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 +79 -56
  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/components/fill-style-tabs-editor/FillStyleTabsEditor.d.ts +2 -0
  63. package/lib/types/config/config.d.ts +26 -7
  64. package/lib/types/index.d.ts +22 -6
  65. package/lib/types/locale/en-US.d.ts +34 -1
  66. package/lib/types/services/formula-binding-editor.d.ts +23 -0
  67. package/lib/types/services/{shape-formula-reference.d.ts → formula-binding-reference.d.ts} +4 -4
  68. package/lib/types/services/{shape-formula-unit-viewer.service.d.ts → formula-binding-unit-viewer.service.d.ts} +10 -10
  69. package/lib/types/utils/activate-drawing-object.d.ts +1 -1
  70. package/lib/types/utils/drawing-type-name.d.ts +3 -0
  71. package/lib/types/views/FormulaBindingEditorDialog.d.ts +11 -0
  72. package/lib/types/views/FormulaBindingNumberFormat.d.ts +23 -0
  73. package/lib/types/views/formula-binding-number-format-utils.d.ts +17 -0
  74. package/lib/types/views/shape-floating-toolbar/ShapeFillControls.d.ts +12 -0
  75. package/lib/types/views/shape-floating-toolbar/ShapeFloatingToolbar.d.ts +6 -131
  76. package/lib/types/views/shape-floating-toolbar/ShapeFloatingToolbarPrimitives.d.ts +39 -0
  77. package/lib/types/views/shape-floating-toolbar/ShapeStrokeControls.d.ts +36 -0
  78. package/lib/types/views/shape-floating-toolbar/ShapeTextControls.d.ts +30 -0
  79. package/lib/types/views/shape-floating-toolbar/floating-toolbar-interaction.d.ts +4 -0
  80. package/lib/types/views/shape-floating-toolbar/shape-floating-toolbar-constants.d.ts +11 -0
  81. package/lib/types/views/shape-floating-toolbar/shape-floating-toolbar-types.d.ts +12 -0
  82. package/lib/types/views/shape-text-editor/ShapeTextEditor.d.ts +2 -193
  83. package/lib/types/views/shape-text-editor/ShapeTextEditorSurface.d.ts +16 -0
  84. package/lib/types/views/shape-text-editor/ShapeTextPositionWrapper.d.ts +2 -1
  85. package/lib/types/views/shape-text-editor/shape-text-document.d.ts +17 -2
  86. package/lib/types/views/shape-text-editor/shape-text-keyboard.d.ts +27 -0
  87. package/lib/types/views/shape-text-editor/shape-text-layout.d.ts +190 -1
  88. package/lib/types/views/shape-text-editor/types.d.ts +1 -1
  89. package/lib/umd/index.js +1 -1
  90. package/lib/umd/locale/ar-SA.js +1 -1
  91. package/lib/umd/locale/ca-ES.js +1 -1
  92. package/lib/umd/locale/de-DE.js +1 -1
  93. package/lib/umd/locale/en-US.js +1 -1
  94. package/lib/umd/locale/es-ES.js +1 -1
  95. package/lib/umd/locale/fa-IR.js +1 -1
  96. package/lib/umd/locale/fr-FR.js +1 -1
  97. package/lib/umd/locale/id-ID.js +1 -1
  98. package/lib/umd/locale/it-IT.js +1 -1
  99. package/lib/umd/locale/ja-JP.js +1 -1
  100. package/lib/umd/locale/ko-KR.js +1 -1
  101. package/lib/umd/locale/pl-PL.js +1 -1
  102. package/lib/umd/locale/pt-BR.js +1 -1
  103. package/lib/umd/locale/ru-RU.js +1 -1
  104. package/lib/umd/locale/sk-SK.js +1 -1
  105. package/lib/umd/locale/vi-VN.js +1 -1
  106. package/lib/umd/locale/zh-CN.js +1 -1
  107. package/lib/umd/locale/zh-HK.js +1 -1
  108. package/lib/umd/locale/zh-TW.js +1 -1
  109. package/package.json +25 -26
  110. package/lib/cjs/formula-shape-en-us-B0fVf3OO.js +0 -1
  111. package/lib/es/formula-shape-en-us-BbvC914f.js +0 -1
  112. package/lib/formula-shape-en-us-BbvC914f.js +0 -1
  113. package/lib/types/services/shape-formula-editor.d.ts +0 -20
  114. package/lib/types/views/formula-shape/FormulaShapeNumberFormat.d.ts +0 -23
  115. package/lib/types/views/formula-shape/formula-shape-number-format-utils.d.ts +0 -17
@@ -46,9 +46,10 @@ export declare function isShapeTextEditorPointerInsideContent(target: EventTarge
46
46
  export declare function resolveShapeTextEditorPositionTransform(options: {
47
47
  editingParams: Nullable<IShapeTextEditingParams>;
48
48
  positionOptions: IShapeTextEditorPositionOptions;
49
- renderUnit: Nullable<ReturnType<IRenderManagerService['getRenderById']>>;
49
+ renderUnit: Nullable<ReturnType<IRenderManagerService['getRenderUnitById']>>;
50
50
  scene: Nullable<Scene>;
51
51
  }): Nullable<IShapeObjectLike>;
52
+ export declare function resolveShapeTextEditorPositionRoot(editorElement: HTMLElement | null): Element | null;
52
53
  /**
53
54
  * Position wrapper component that handles shape positioning in DOM.
54
55
  * This is the first layer DOM that tracks shape position with scroll.
@@ -1,5 +1,7 @@
1
- import type { IShapeRect, IShapeText, IShapeTextBodyBehavior } from '@univerjs-pro/engine-shape';
2
- import type { IDocumentData } from '@univerjs/core';
1
+ import type { ICustomShapeTextData, IShapeRect, IShapeText, IShapeTextBodyBehavior, IShapeTextDataModel } from '@univerjs-pro/engine-shape';
2
+ import type { IDocumentData, Nullable } from '@univerjs/core';
3
+ import type { Editor } from '@univerjs/docs-ui';
4
+ import type { IShapeTextDataContext } from './types';
3
5
  import { HorizontalAlign, VerticalAlign, WrapStrategy } from '@univerjs/core';
4
6
  interface IPrepareShapeTextDocumentOptions {
5
7
  bodyBehavior?: IShapeTextBodyBehavior;
@@ -20,4 +22,17 @@ export declare function prepareShapeTextDocumentData(documentData: IDocumentData
20
22
  export declare function resolveShapeTextDocumentPageHeight(documentData: IDocumentData, viewportHeight: number): number;
21
23
  export declare function stripShapeTextDocumentLayout(documentData: IDocumentData, options?: IShapeTextDocumentAlignmentOptions): IDocumentData;
22
24
  export declare function createEditableShapeTextDocumentDataCopy(documentData: IDocumentData): IDocumentData;
25
+ export declare function buildShapeTextEditorCommitShapeText(options: {
26
+ dataModel?: IShapeTextDataModel;
27
+ isHorizontal?: boolean;
28
+ shapeText?: ICustomShapeTextData | null;
29
+ }): ICustomShapeTextData;
30
+ export declare function createEmptyShapeTextEditorDocument(editorUnitId: string, pageWidth: number): IDocumentData;
31
+ export declare function createShapeTextEditorInitialDocument(options: {
32
+ editorUnitId: string;
33
+ pageWidth: number;
34
+ shapeData: Nullable<IShapeTextDataContext>;
35
+ }): IDocumentData;
36
+ export declare function setShapeTextEditorDocumentData(editor: Pick<Editor, 'setDocumentData' | 'clearUndoRedoHistory'>, ...params: Parameters<Editor['setDocumentData']>): void;
37
+ export declare function getShapeTextEditorDocumentData(editor: Pick<Editor, 'getDocumentData' | 'getDocumentDataModel'>): IDocumentData | null;
23
38
  export {};
@@ -0,0 +1,27 @@
1
+ import type { ICommandService, Nullable } from '@univerjs/core';
2
+ import type { IKeyboardEventConfig } from '@univerjs/docs-ui';
3
+ import type { IShapeTextEditingParams } from './types';
4
+ interface IShapeTextEditorKeyboardRange {
5
+ startOffset?: number;
6
+ endOffset?: number;
7
+ collapsed?: boolean;
8
+ }
9
+ export declare function isShapeTextEditorKeyboardFocusActive(isInputFocusing: boolean, textRanges: readonly IShapeTextEditorKeyboardRange[] | null | undefined): boolean;
10
+ interface IShapeTextEditorKeyboardOptions {
11
+ commitOnEnter?: boolean;
12
+ cancel?: () => void;
13
+ commit?: () => void;
14
+ currentFontSize?: number;
15
+ }
16
+ export declare const DEFAULT_SHAPE_TEXT_EDITOR_FONT_SIZE = 14;
17
+ export declare function getShapeTextEditorFocusSessionKey(options: {
18
+ editorUnitId: string;
19
+ editingParams: Nullable<IShapeTextEditingParams>;
20
+ }): string | null;
21
+ export declare function shouldCompleteShapeTextEditingOnPointerDown(target: EventTarget | null, editorElement: HTMLElement | null): boolean;
22
+ export declare function getShapeTextEditorKeyboardConfig(commandService: Pick<ICommandService, 'executeCommand'>, executeUndoRedoCommand?: (commandId: string) => void, options?: IShapeTextEditorKeyboardOptions): IKeyboardEventConfig;
23
+ export {};
24
+ /**
25
+ * Shape editor component - second layer DOM.
26
+ * Handles document editing, content height tracking, and vertical alignment.
27
+ */
@@ -1,5 +1,9 @@
1
+ import type { IShapeRect } from '@univerjs-pro/engine-shape';
2
+ import type { IDocumentData, Nullable } from '@univerjs/core';
1
3
  import type { DocumentSkeleton } from '@univerjs/engine-render';
2
- import { VerticalAlign } from '@univerjs/core';
4
+ import type { CSSProperties } from 'react';
5
+ import type { IShapeTextEditingParams, IShapeTextEditorAdapter, IShapeTextEditorModel } from './types';
6
+ import { HorizontalAlign, VerticalAlign } from '@univerjs/core';
3
7
  export interface IResolveShapeTextVerticalOffsetOptions {
4
8
  contentHeight: number;
5
9
  verticalAlign?: VerticalAlign;
@@ -17,8 +21,193 @@ export interface IResolveShapeTextDocumentRenderLayoutOptions extends IResolveSh
17
21
  opticalVerticalOffset?: number;
18
22
  verticalOffset?: number;
19
23
  }
24
+ export declare function normalizeShapeTextRect(textRect: IShapeRect, fallbackRect: IShapeRect): IShapeRect;
20
25
  export declare function isShapeTextOpticalVerticalAlignEnabled(value: unknown): boolean;
26
+ export declare function getShapeTextVisibleInkHeight(skeleton: DocumentSkeleton): number | undefined;
21
27
  export declare function resolveShapeTextVerticalOffset(options: IResolveShapeTextVerticalOffsetOptions): number;
22
28
  export declare function resolveShapeTextDocumentRenderLayout(options: IResolveShapeTextDocumentRenderLayoutOptions): IShapeTextDocumentRenderLayout;
23
29
  export declare function getShapeTextContentHeight(skeleton: DocumentSkeleton, fallbackHeight?: number): number;
24
30
  export declare function getShapeTextOpticalVerticalOffset(skeleton: DocumentSkeleton, targetHeight: number, verticalAlign?: VerticalAlign): number;
31
+ export interface IContentLayout {
32
+ documentMarginTop: number;
33
+ editorLeft: number;
34
+ editorTop: number;
35
+ editorWidth: number;
36
+ editorHeight: number;
37
+ editorSurfaceWidth?: number;
38
+ }
39
+ export declare function resolveShapeTextEditingContentHeight(measuredContentHeight: number, caretHeight?: number): number;
40
+ export declare function getShapeTextEditingCaretHeight(activeRange?: {
41
+ getAbsolutePosition(): Nullable<{
42
+ height?: number;
43
+ }>;
44
+ }): number | undefined;
45
+ export declare function areShapeTextEditorLayoutsEqual(a: IContentLayout, b: IContentLayout): boolean;
46
+ interface IShapeTextEditorLayoutOptions {
47
+ actualHeight: number;
48
+ contentWidth?: number;
49
+ scaleX: number;
50
+ scaleY: number;
51
+ textRect: {
52
+ left: number;
53
+ top: number;
54
+ width: number;
55
+ height: number;
56
+ };
57
+ verticalAlign: VerticalAlign;
58
+ opticalVerticalOffset?: number;
59
+ }
60
+ interface IShapeTextEditorLayout {
61
+ documentMarginTop: number;
62
+ editorLeft: number;
63
+ editorTop: number;
64
+ editorWidth: number;
65
+ editorHeight: number;
66
+ pageHeight: number;
67
+ }
68
+ interface IShapeTextEditorHostHeightOptions {
69
+ hostHeight: number;
70
+ textRect: {
71
+ left: number;
72
+ top: number;
73
+ width: number;
74
+ height: number;
75
+ };
76
+ contentHeight: number;
77
+ }
78
+ interface IShapeTextEditorHostSizeOptions {
79
+ hostWidth: number;
80
+ hostHeight: number;
81
+ textRect: {
82
+ left: number;
83
+ top: number;
84
+ width: number;
85
+ height: number;
86
+ };
87
+ contentWidth: number;
88
+ contentHeight: number;
89
+ allowShrink?: boolean;
90
+ }
91
+ interface IShapeTextEditorHostSizeChangeOptions {
92
+ nextWidth: number;
93
+ nextHeight: number;
94
+ baselineWidth: number;
95
+ baselineHeight: number;
96
+ tolerance?: number;
97
+ }
98
+ export declare function resolveShapeTextEditorTextRect(options: {
99
+ shapeModel: Pick<IShapeTextEditorModel, 'getShapeTextRect'>;
100
+ hostRect: IShapeRect;
101
+ }): IShapeRect;
102
+ export declare function resolveShapeTextEditorRenderScale(options: {
103
+ ancestorScale?: {
104
+ scaleX?: number;
105
+ scaleY?: number;
106
+ };
107
+ canvasClientWidth: number;
108
+ declaredCanvasWidth: number;
109
+ fallbackScaleX: number;
110
+ fallbackScaleY: number;
111
+ }): {
112
+ scaleAdjust: number;
113
+ renderScaleX: number;
114
+ renderScaleY: number;
115
+ };
116
+ export declare function resolveShapeTextEditorEmptyTextBoxMinSize(options: {
117
+ isHorizontal: boolean;
118
+ placeholderWidth: number;
119
+ }): {
120
+ width: number;
121
+ height: number;
122
+ };
123
+ export declare function measureShapeTextEditorPlaceholderWidth(documentData: IDocumentData, placeholder: string): number;
124
+ export declare function resolveShapeTextEditorMeasurePageWidth(options: {
125
+ autoFitNoWrap: boolean;
126
+ maxAutoFitWidth?: number;
127
+ textRectWidth: number;
128
+ }): number;
129
+ export declare function measureShapeTextEditorNoWrapContentWidth(documentData: IDocumentData | null | undefined): number;
130
+ export declare function resolveShapeTextEditorRenderedContentWidth(options: {
131
+ actualWidth: number;
132
+ autoFitNoWrap: boolean;
133
+ measuredContentWidth?: number;
134
+ textRectWidth: number;
135
+ }): number;
136
+ export declare function resolveShapeTextEditorHostContentWidth(options: {
137
+ actualWidth: number;
138
+ allowShrink: boolean;
139
+ autoFitNoWrap: boolean;
140
+ measuredContentWidth?: number;
141
+ renderedContentWidth: number;
142
+ }): number;
143
+ export declare function resolveShapeTextEditorFinalPageWidth(options: {
144
+ autoFitNoWrap: boolean;
145
+ measurePageWidth?: number;
146
+ renderedContentWidth: number;
147
+ textRectWidth: number;
148
+ }): number;
149
+ export declare function resolveShapeTextEditorRenderSurfaceWidth(options: {
150
+ autoFitNoWrap: boolean;
151
+ editorWidth: number;
152
+ measurePageWidth: number;
153
+ renderedContentWidth?: number;
154
+ scaleX: number;
155
+ }): number;
156
+ export declare function hasShapeTextEditorHostSizeChanged(options: IShapeTextEditorHostSizeChangeOptions): boolean;
157
+ export declare function resolveShapeTextEditorShouldShrinkHostSize(options: {
158
+ adapter: Pick<IShapeTextEditorAdapter, 'allowHostSizeShrink' | 'updateHostSize'>;
159
+ editingParams: Nullable<IShapeTextEditingParams>;
160
+ }): boolean;
161
+ export declare function shouldDeferShapeTextEditorHostSizeUpdateDuringEditing(options: {
162
+ adapter: Pick<IShapeTextEditorAdapter, 'deferHostSizeUpdateDuringEditing'>;
163
+ editingParams: Nullable<IShapeTextEditingParams>;
164
+ }): boolean;
165
+ export declare function resolveShapeTextEditorDocumentVerticalAlign(options: {
166
+ opticalVerticalAlign: boolean;
167
+ verticalAlign: VerticalAlign;
168
+ }): VerticalAlign;
169
+ export declare function resolveShapeTextEditorLayout(options: IShapeTextEditorLayoutOptions): IShapeTextEditorLayout;
170
+ export declare function resolveShapeTextEditorPlaceholderLayout(options: {
171
+ documentMarginTop: number;
172
+ editorLeft: number;
173
+ editorSurfaceWidth?: number;
174
+ editorTop: number;
175
+ editorWidth: number;
176
+ horizontalAlign: HorizontalAlign;
177
+ }): {
178
+ left: number;
179
+ textAlign: 'center' | 'left' | 'right';
180
+ top: number;
181
+ width: number;
182
+ };
183
+ export declare function resolveShapeTextEditorHostHeight(options: IShapeTextEditorHostHeightOptions): number;
184
+ export declare function resolveShapeTextEditorHostSize(options: IShapeTextEditorHostSizeOptions): {
185
+ width: number;
186
+ height: number;
187
+ };
188
+ export declare function resolveShapeTextEditorPhysicalContentSize(options: {
189
+ crossAxisLength: number;
190
+ flowAxis: 'width' | 'height';
191
+ flowAxisLength: number;
192
+ }): {
193
+ height: number;
194
+ width: number;
195
+ };
196
+ export declare function getShapeTextEditorContentStyle(leftOrWidth: number, topOrHeight: number, width?: number, height?: number): CSSProperties;
197
+ export declare function applyShapeTextEditorContentLayout(element: HTMLElement | null | undefined, layout: IContentLayout): void;
198
+ export declare function applyShapeTextEditorCanvasTransparency(renderer: {
199
+ engine?: {
200
+ getCanvasElement?: () => HTMLElement | null;
201
+ };
202
+ } | null | undefined | void): void;
203
+ export declare function resetShapeTextEditorDocumentMargins(renderer: {
204
+ mainComponent?: unknown;
205
+ components?: {
206
+ forEach?: (callback: (component: unknown) => void) => void;
207
+ };
208
+ } | null | undefined | void): void;
209
+ export declare function refreshShapeTextEditorRenderer(renderer: {
210
+ mainComponent?: unknown;
211
+ scene?: unknown;
212
+ } | null | undefined | void): void;
213
+ export {};
@@ -83,5 +83,5 @@ export interface IShapeTextEditorPositionOptions {
83
83
  viewportKeys: IShapeTextEditorViewportKeys;
84
84
  getSkeleton?: (renderUnit: IRender, editingParams: IShapeTextEditingParams) => unknown;
85
85
  getHostTransform?: (renderUnit: IRender, editingParams: IShapeTextEditingParams) => Nullable<ITransformState>;
86
- getPositionOffset?: (renderUnit: IRender, editingParams: IShapeTextEditingParams) => Nullable<IShapeTextEditorPositionOffset>;
86
+ getPositionOffset?: (renderUnit: IRender, editingParams: IShapeTextEditingParams, positionRoot?: Element | null) => Nullable<IShapeTextEditorPositionOffset>;
87
87
  }