@univerjs-pro/slides-table-ui 1.0.0-alpha.2 → 1.0.0-alpha.3
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/README.md +4 -2
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/locale/ar-SA.js +1 -1
- package/lib/cjs/locale/ca-ES.js +1 -1
- package/lib/cjs/locale/de-DE.js +1 -1
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/es-ES.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/id-ID.js +1 -1
- package/lib/cjs/locale/it-IT.js +1 -1
- package/lib/cjs/locale/ja-JP.js +1 -1
- package/lib/cjs/locale/ko-KR.js +1 -1
- package/lib/cjs/locale/pl-PL.js +1 -1
- package/lib/cjs/locale/pt-BR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/sk-SK.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-HK.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/es/locale/ar-SA.js +1 -1
- package/lib/es/locale/ca-ES.js +1 -1
- package/lib/es/locale/de-DE.js +1 -1
- package/lib/es/locale/en-US.js +1 -1
- package/lib/es/locale/es-ES.js +1 -1
- package/lib/es/locale/fa-IR.js +1 -1
- package/lib/es/locale/fr-FR.js +1 -1
- package/lib/es/locale/id-ID.js +1 -1
- package/lib/es/locale/it-IT.js +1 -1
- package/lib/es/locale/ja-JP.js +1 -1
- package/lib/es/locale/ko-KR.js +1 -1
- package/lib/es/locale/pl-PL.js +1 -1
- package/lib/es/locale/pt-BR.js +1 -1
- package/lib/es/locale/ru-RU.js +1 -1
- package/lib/es/locale/sk-SK.js +1 -1
- package/lib/es/locale/vi-VN.js +1 -1
- package/lib/es/locale/zh-CN.js +1 -1
- package/lib/es/locale/zh-HK.js +1 -1
- package/lib/es/locale/zh-TW.js +1 -1
- package/lib/index.css +184 -0
- package/lib/index.js +1 -1
- package/lib/locale/ar-SA.js +1 -1
- package/lib/locale/ca-ES.js +1 -1
- package/lib/locale/de-DE.js +1 -1
- package/lib/locale/en-US.js +1 -1
- package/lib/locale/es-ES.js +1 -1
- package/lib/locale/fa-IR.js +1 -1
- package/lib/locale/fr-FR.js +1 -1
- package/lib/locale/id-ID.js +1 -1
- package/lib/locale/it-IT.js +1 -1
- package/lib/locale/ja-JP.js +1 -1
- package/lib/locale/ko-KR.js +1 -1
- package/lib/locale/pl-PL.js +1 -1
- package/lib/locale/pt-BR.js +1 -1
- package/lib/locale/ru-RU.js +1 -1
- package/lib/locale/sk-SK.js +1 -1
- package/lib/locale/vi-VN.js +1 -1
- package/lib/locale/zh-CN.js +1 -1
- package/lib/locale/zh-HK.js +1 -1
- package/lib/locale/zh-TW.js +1 -1
- package/lib/types/commands/operations/table-contextmenu.operation.d.ts +22 -36
- package/lib/types/controllers/slide-table-interaction.render-controller.d.ts +9 -4
- package/lib/types/index.d.ts +28 -8
- package/lib/types/locale/en-US.d.ts +17 -0
- package/lib/types/menu/contextmenu.menu.d.ts +0 -3
- package/lib/types/render-objects/slide-table-document-render-resources.util.d.ts +42 -0
- package/lib/types/render-objects/slide-table-document-text-render.util.d.ts +26 -0
- package/lib/types/render-objects/slide-table-object.d.ts +127 -0
- package/lib/types/services/slide-table-cell-editor.service.d.ts +50 -0
- package/lib/types/services/slide-table-keyboard.service.d.ts +7 -21
- package/lib/types/services/table-keyboard.service-base.d.ts +18 -0
- package/lib/types/utils/slide-table-clipboard-model.d.ts +7 -0
- package/lib/types/utils/slide-table-contextmenu-model.d.ts +69 -0
- package/lib/types/utils/slide-table-editor-model.d.ts +78 -0
- package/lib/types/utils/slide-table-keyboard-input.d.ts +13 -0
- package/lib/types/utils/slide-table-keyboard-model.d.ts +43 -0
- package/lib/types/utils/slide-table-object-selection-model.d.ts +7 -0
- package/lib/types/utils/slide-table-structural-insert.util.d.ts +15 -0
- package/lib/types/utils/slide-table-toolbar-model.d.ts +17 -0
- package/lib/types/utils/slide-table-toolbar-shared-model.d.ts +70 -0
- package/lib/types/utils/slide-table-toolbar-values.d.ts +33 -0
- package/lib/types/views/TableThemeGallery.d.ts +10 -0
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ar-SA.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/de-DE.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/id-ID.js +1 -1
- package/lib/umd/locale/it-IT.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/pl-PL.js +1 -1
- package/lib/umd/locale/pt-BR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-HK.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +17 -18
- /package/lib/types/{views → utils}/slide-table-hit-test.d.ts +0 -0
package/lib/types/index.d.ts
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import './global.css';
|
|
2
|
-
export { SLIDES_TABLE_UI_PLUGIN_CONFIG_KEY } from './config/config';
|
|
3
|
-
export type { IUniverSlidesTableUIConfig } from './config/config';
|
|
4
|
-
export { SlideTableInteractionRenderController } from './controllers/slide-table-interaction.render-controller';
|
|
5
2
|
export { UniverSlidesTableUIPlugin } from './plugin';
|
|
6
|
-
export type {
|
|
7
|
-
export {
|
|
8
|
-
export type {
|
|
3
|
+
export type { ISlideTableObjectControlState, ISlideTableObjectProps, } from './render-objects/slide-table-object';
|
|
4
|
+
export { SlideTableObject } from './render-objects/slide-table-object';
|
|
5
|
+
export type { ISlideTableCellEditorSession } from './services/slide-table-cell-editor.service';
|
|
6
|
+
export { SlideTableCellEditorService } from './services/slide-table-cell-editor.service';
|
|
7
|
+
export type { ISlideTableSelection } from './services/slide-table-selection.service';
|
|
9
8
|
export { SlideTableSelectionService } from './services/slide-table-selection.service';
|
|
10
|
-
export
|
|
11
|
-
export {
|
|
9
|
+
export { TableKeyboardServiceBase } from './services/table-keyboard.service-base';
|
|
10
|
+
export { buildSlideTableClearTextPatch, buildSlideTablePasteTextPatch, serializeSlideTableSelectionToText, } from './utils/slide-table-clipboard-model';
|
|
11
|
+
export { SLIDE_TABLE_CONTEXT_MENU_ACTIONS } from './utils/slide-table-contextmenu-model';
|
|
12
|
+
export type { ISlideTableContextMenuAction, ISlideTableContextMenuCommand, SlideTableContextMenuActionId, } from './utils/slide-table-contextmenu-model';
|
|
13
|
+
export { buildSlideTableBackgroundColorPatch, buildSlideTableBackgroundFillPatch, buildSlideTableBorderPresetPatch, buildSlideTableBorderStylePatch, buildSlideTableFontFamilyPatch, buildSlideTableFontSizePatch, buildSlideTableTextAlignPatch, buildSlideTableTextColorPatch, buildSlideTableTextFillPatch, buildSlideTableTextStylePatch, getSlideTableSelectionContext, } from './utils/slide-table-contextmenu-model';
|
|
14
|
+
export type { ISlideTableContextMenuCommandIds, SlideTableTextAlignPreset, } from './utils/slide-table-contextmenu-model';
|
|
15
|
+
export { buildSlideTableContextMenuCommand, resolveSlideTableContextMenuActions, } from './utils/slide-table-contextmenu-model';
|
|
16
|
+
export { buildSlideTableCellEditorCommitCommand, normalizeSlideTableCellDocumentData, replaceSlideTableCellDocumentText, resolveSlideTableCellEditorLayout, resolveSlideTableCellEditorTarget, } from './utils/slide-table-editor-model';
|
|
17
|
+
export type { ISlideTableCellEditorLayout, } from './utils/slide-table-editor-model';
|
|
18
|
+
export { isSlideTableDocumentEditorTarget, isSlideTableEditableTarget, } from './utils/slide-table-keyboard-input';
|
|
19
|
+
export type { SlideTableKeyboardInput, } from './utils/slide-table-keyboard-input';
|
|
20
|
+
export type { SlideTableKeyboardAction } from './utils/slide-table-keyboard-model';
|
|
21
|
+
export { buildSlideTableKeyboardShortcutBindings, resolveNextSlideTableKeyboardCell, resolveSlideTableKeyboardMovement, SLIDE_TABLE_KEYBOARD_SHORTCUT_DESCRIPTORS, } from './utils/slide-table-keyboard-model';
|
|
22
|
+
export type { SlideTableKeyboardShortcutKey, } from './utils/slide-table-keyboard-model';
|
|
23
|
+
export { resolveFirstSlideTableSelectionCell, resolveSlideTableObjectSelection, } from './utils/slide-table-object-selection-model';
|
|
24
|
+
export { buildSlideTableInsertDotControlState, isSlideTableInsertDotTrigger, } from './utils/slide-table-structural-insert.util';
|
|
25
|
+
export type { ISlideTableInsertDotTrigger, } from './utils/slide-table-structural-insert.util';
|
|
26
|
+
export { buildSlideTableBorderPresetCommandParams, buildSlideTableCellStyleCommandParams, buildSlideTableMergeCellsCommandParams, buildSlideTableUnmergeCellsCommandParams, resolveSlideTableMergeToolbarAction, SLIDE_TABLE_TOOLBAR_ACTIONS, } from './utils/slide-table-toolbar-shared-model';
|
|
27
|
+
export type { ISlideTableMergeToolbarState, ISlideTableToolbarAction, SlideTableToolbarActionId, } from './utils/slide-table-toolbar-shared-model';
|
|
28
|
+
export { buildSlideTableDeleteToolbarCommand, buildSlideTableMergeToolbarCommand, resolveSlideTableToolbarActions, } from './utils/slide-table-toolbar-shared-model';
|
|
29
|
+
export { getSlideTableFillType, resolveSlideTableDocumentHorizontalAlign, resolveSlideTableSelectionValues, SLIDE_TABLE_DEFAULT_BACKGROUND_COLOR, toCoreVerticalAlign, } from './utils/slide-table-toolbar-values';
|
|
30
|
+
export type { ISlideTableToolbarCellValues, SlideTableFillType, } from './utils/slide-table-toolbar-values';
|
|
31
|
+
export { TableThemeGallery } from './views/TableThemeGallery';
|
|
@@ -3,6 +3,11 @@ declare const locale: {
|
|
|
3
3
|
editorToolbar: {
|
|
4
4
|
fontFamily: string;
|
|
5
5
|
fontSize: string;
|
|
6
|
+
textFormat: string;
|
|
7
|
+
bold: string;
|
|
8
|
+
italic: string;
|
|
9
|
+
underline: string;
|
|
10
|
+
strikethrough: string;
|
|
6
11
|
textColor: string;
|
|
7
12
|
textBackgroundColor: string;
|
|
8
13
|
tableBackgroundColor: string;
|
|
@@ -36,6 +41,18 @@ declare const locale: {
|
|
|
36
41
|
alignBottom: string;
|
|
37
42
|
mergeCells: string;
|
|
38
43
|
unmergeCells: string;
|
|
44
|
+
tableTheme: string;
|
|
45
|
+
tableLook: string;
|
|
46
|
+
headerRow: string;
|
|
47
|
+
footerRow: string;
|
|
48
|
+
bandedRows: string;
|
|
49
|
+
bandedColumns: string;
|
|
50
|
+
firstColumn: string;
|
|
51
|
+
lastColumn: string;
|
|
52
|
+
bestMatch: string;
|
|
53
|
+
light: string;
|
|
54
|
+
medium: string;
|
|
55
|
+
minimal: string;
|
|
39
56
|
};
|
|
40
57
|
shapePanel: {
|
|
41
58
|
fill: {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IAccessor } from '@univerjs/core';
|
|
2
2
|
import type { IMenuButtonItem, IMenuSelectorItem } from '@univerjs/ui';
|
|
3
|
-
import type { SlideTablePresetOperation } from '../commands/operations/table-contextmenu.operation';
|
|
4
3
|
import type { LocaleKey } from '../locale/types';
|
|
5
4
|
export declare const SLIDE_TABLE_INSERT_MENU_ID = "slide-table.menu.insert";
|
|
6
5
|
export declare const SLIDE_TABLE_DELETE_MENU_ID = "slide-table.menu.delete";
|
|
@@ -37,8 +36,6 @@ export declare function SlideTableBorderAllFactory(): IMenuButtonItem<LocaleKey>
|
|
|
37
36
|
export declare function SlideTableBorderOuterFactory(): IMenuButtonItem<LocaleKey>;
|
|
38
37
|
export declare function SlideTableBorderInnerFactory(): IMenuButtonItem<LocaleKey>;
|
|
39
38
|
export declare function SlideTableBorderNoneFactory(): IMenuButtonItem<LocaleKey>;
|
|
40
|
-
export declare function getSlideTableBackgroundColorMenuItems(): SlideTablePresetOperation[];
|
|
41
|
-
export declare function getSlideTableTextColorMenuItems(): SlideTablePresetOperation[];
|
|
42
39
|
export declare function SlideTableAlignLeftFactory(): IMenuButtonItem<LocaleKey>;
|
|
43
40
|
export declare function SlideTableAlignCenterFactory(): IMenuButtonItem<LocaleKey>;
|
|
44
41
|
export declare function SlideTableAlignRightFactory(): IMenuButtonItem<LocaleKey>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { BooleanNumber, HorizontalAlign, IDocumentData, LocaleService } from '@univerjs/core';
|
|
2
|
+
import type { UniverRenderingContext } from '@univerjs/engine-render';
|
|
3
|
+
import { DocumentDataModel, VerticalAlign, WrapStrategy } from '@univerjs/core';
|
|
4
|
+
import { Documents, DocumentSkeleton, DocumentViewModel } from '@univerjs/engine-render';
|
|
5
|
+
export interface ICreateSlideTableDocumentRenderResourcesOptions {
|
|
6
|
+
documentData: IDocumentData;
|
|
7
|
+
id?: string;
|
|
8
|
+
isHorizontal?: boolean;
|
|
9
|
+
horizontalAlign?: HorizontalAlign;
|
|
10
|
+
verticalAlign?: VerticalAlign;
|
|
11
|
+
localeService: LocaleService;
|
|
12
|
+
shapeTextOpticalVerticalAlign?: BooleanNumber | boolean;
|
|
13
|
+
size: {
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
};
|
|
17
|
+
wrapStrategy?: WrapStrategy;
|
|
18
|
+
}
|
|
19
|
+
export interface ISlideTableDocumentRenderResources {
|
|
20
|
+
actualHeight: number;
|
|
21
|
+
contentHeight: number;
|
|
22
|
+
dispose: () => void;
|
|
23
|
+
documents: Documents;
|
|
24
|
+
docModel: DocumentDataModel;
|
|
25
|
+
docViewModel: DocumentViewModel;
|
|
26
|
+
marginTop: number;
|
|
27
|
+
minHeight: number;
|
|
28
|
+
opticalVerticalOffset: number;
|
|
29
|
+
skeleton: DocumentSkeleton;
|
|
30
|
+
width: number;
|
|
31
|
+
}
|
|
32
|
+
export declare function getSlideTableTextOpticalVerticalOffset(skeleton: DocumentSkeleton, targetHeight: number, verticalAlign?: VerticalAlign): number;
|
|
33
|
+
export declare function prepareSlideTableDocumentRenderData(documentData: IDocumentData, options: {
|
|
34
|
+
height: number;
|
|
35
|
+
horizontalAlign?: HorizontalAlign;
|
|
36
|
+
isHorizontal?: boolean;
|
|
37
|
+
verticalAlign?: VerticalAlign;
|
|
38
|
+
width: number;
|
|
39
|
+
wrapStrategy?: WrapStrategy;
|
|
40
|
+
}): IDocumentData;
|
|
41
|
+
export declare function createSlideTableDocumentRenderResources(options: ICreateSlideTableDocumentRenderResourcesOptions): ISlideTableDocumentRenderResources;
|
|
42
|
+
export declare function drawSlideTableDocumentRenderResources(context: UniverRenderingContext, resources: ISlideTableDocumentRenderResources, left: number, top: number, clip: boolean): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BooleanNumber, HorizontalAlign, IDocumentData, LocaleService, VerticalAlign } from '@univerjs/core';
|
|
2
|
+
import type { UniverRenderingContext } from '@univerjs/engine-render';
|
|
3
|
+
import type { ISlideTableDocumentRenderResources } from './slide-table-document-render-resources.util';
|
|
4
|
+
import { WrapStrategy } from '@univerjs/core';
|
|
5
|
+
export interface IRenderSlideTableDocumentTextOptions {
|
|
6
|
+
clip?: boolean;
|
|
7
|
+
documentData?: IDocumentData;
|
|
8
|
+
height: number;
|
|
9
|
+
horizontalAlign?: HorizontalAlign;
|
|
10
|
+
isHorizontal?: boolean;
|
|
11
|
+
key: string;
|
|
12
|
+
left: number;
|
|
13
|
+
localeService?: LocaleService;
|
|
14
|
+
shapeTextOpticalVerticalAlign?: BooleanNumber | boolean;
|
|
15
|
+
text?: string;
|
|
16
|
+
top: number;
|
|
17
|
+
verticalAlign?: VerticalAlign;
|
|
18
|
+
width: number;
|
|
19
|
+
wrapStrategy?: WrapStrategy;
|
|
20
|
+
}
|
|
21
|
+
export interface ISlideTableDocumentTextRenderCache {
|
|
22
|
+
resources?: ISlideTableDocumentRenderResources;
|
|
23
|
+
signature?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function disposeSlideTableDocumentTextRenderCache(cache?: ISlideTableDocumentTextRenderCache): void;
|
|
26
|
+
export declare function renderSlideTableTextWithDocumentModel(ctx: UniverRenderingContext, options: IRenderSlideTableDocumentTextOptions, cache?: ISlideTableDocumentTextRenderCache): boolean;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { ISlideTableCellRange, ISlideTableControl, ISlideTableResolvedCell, ISlideTableSnapshot, ISlideTableThemePalette, ISlideTableTrigger } from '@univerjs-pro/slides-table';
|
|
2
|
+
import type { LocaleService } from '@univerjs/core';
|
|
3
|
+
import type { IRectProps, IViewportInfo, UniverRenderingContext, Vector2 } from '@univerjs/engine-render';
|
|
4
|
+
import type { SlideTableHit } from '../utils/slide-table-hit-test';
|
|
5
|
+
import { Rect } from '@univerjs/engine-render';
|
|
6
|
+
export interface ISlideTableObjectProps extends IRectProps {
|
|
7
|
+
controlButtonMode?: 'all' | 'table-handle';
|
|
8
|
+
localeService?: LocaleService;
|
|
9
|
+
table?: ISlideTableSnapshot | null;
|
|
10
|
+
tableThemePalette?: ISlideTableThemePalette;
|
|
11
|
+
}
|
|
12
|
+
export interface ISlideTableCellTextRect {
|
|
13
|
+
left: number;
|
|
14
|
+
top: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
row: number;
|
|
18
|
+
column: number;
|
|
19
|
+
}
|
|
20
|
+
export interface ISlideTableObjectSelection {
|
|
21
|
+
kind?: 'table' | 'cell' | 'range' | 'row' | 'column' | 'text';
|
|
22
|
+
ranges: ISlideTableCellRange[];
|
|
23
|
+
active?: {
|
|
24
|
+
row: number;
|
|
25
|
+
column: number;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface ISlideTableObjectControlHover {
|
|
29
|
+
kind?: ISlideTableControl['kind'];
|
|
30
|
+
row?: number | null;
|
|
31
|
+
column?: number | null;
|
|
32
|
+
}
|
|
33
|
+
export interface ISlideTableObjectCellHover {
|
|
34
|
+
row: number;
|
|
35
|
+
column: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ISlideTableObjectEditingCell {
|
|
38
|
+
row: number;
|
|
39
|
+
column: number;
|
|
40
|
+
}
|
|
41
|
+
export interface ISlideTableObjectStructuralRange {
|
|
42
|
+
kind: 'row' | 'column';
|
|
43
|
+
start: number;
|
|
44
|
+
end: number;
|
|
45
|
+
}
|
|
46
|
+
export interface ISlideTableObjectStructuralGuide {
|
|
47
|
+
kind: 'row' | 'column';
|
|
48
|
+
index: number;
|
|
49
|
+
}
|
|
50
|
+
export interface ISlideTableObjectControlState {
|
|
51
|
+
visible?: boolean;
|
|
52
|
+
hoveredTrigger?: ISlideTableTrigger | null;
|
|
53
|
+
selectedStructuralRange?: ISlideTableObjectStructuralRange | null;
|
|
54
|
+
insertGuide?: ISlideTableObjectStructuralGuide | null;
|
|
55
|
+
reorderGuide?: ISlideTableObjectStructuralGuide | null;
|
|
56
|
+
}
|
|
57
|
+
export declare function isSlideTableRenderCellIntersectingSelection(cell: Pick<ISlideTableResolvedCell, 'row' | 'column' | 'rowSpan' | 'columnSpan'>, ranges: ISlideTableCellRange[]): boolean;
|
|
58
|
+
export declare class SlideTableObject extends Rect<ISlideTableObjectProps> {
|
|
59
|
+
isDrawingObject: boolean;
|
|
60
|
+
private readonly _controlButtonMode;
|
|
61
|
+
private _table;
|
|
62
|
+
private _previewTable;
|
|
63
|
+
private _selection;
|
|
64
|
+
private _cellHover;
|
|
65
|
+
private _editingCell;
|
|
66
|
+
private _controlHover;
|
|
67
|
+
private _controlState;
|
|
68
|
+
private _localeService?;
|
|
69
|
+
private _tableThemePalette?;
|
|
70
|
+
private _textRenderCaches;
|
|
71
|
+
constructor(key: string, props: ISlideTableObjectProps);
|
|
72
|
+
setTable(table: ISlideTableSnapshot | null | undefined): void;
|
|
73
|
+
getTable(): ISlideTableSnapshot | null;
|
|
74
|
+
setPreviewTable(table: ISlideTableSnapshot | null): void;
|
|
75
|
+
setLocaleService(localeService: LocaleService | undefined): void;
|
|
76
|
+
setTableThemePalette(palette: ISlideTableThemePalette | undefined): void;
|
|
77
|
+
setTableSelection(selection: ISlideTableObjectSelection | null): void;
|
|
78
|
+
getTableSelection(): ISlideTableObjectSelection | null;
|
|
79
|
+
setEditingCell(cell: ISlideTableObjectEditingCell | null): void;
|
|
80
|
+
getEditingCell(): ISlideTableObjectEditingCell | null;
|
|
81
|
+
setTableControlHover(hover: ISlideTableObjectControlHover | null): boolean;
|
|
82
|
+
setTableCellHover(hover: ISlideTableObjectCellHover | null): boolean;
|
|
83
|
+
setTableControlState(state: ISlideTableObjectControlState | null): boolean;
|
|
84
|
+
getInverseCoord(coord: Vector2): Vector2;
|
|
85
|
+
isHit(coord: Vector2): boolean;
|
|
86
|
+
getCellTextRect(row: number, column: number, width?: number, height?: number): ISlideTableCellTextRect | null;
|
|
87
|
+
hitTestCellAtScenePoint(scenePoint: Vector2, width?: number, height?: number): SlideTableHit | null;
|
|
88
|
+
hitTestControlAtScenePoint(scenePoint: Vector2, width?: number, height?: number): ISlideTableControl | null;
|
|
89
|
+
hitTestStructuralTriggerAtScenePoint(scenePoint: Vector2, width?: number, height?: number): ISlideTableTrigger | null;
|
|
90
|
+
hitTestFloatingStructuralTriggerAtScenePoint(scenePoint: Vector2, width?: number, height?: number): ISlideTableTrigger | null;
|
|
91
|
+
render(mainCtx: UniverRenderingContext, bounds: IViewportInfo): this;
|
|
92
|
+
_draw(ctx: UniverRenderingContext, _bounds?: IViewportInfo, renderWidth?: number, renderHeight?: number): void;
|
|
93
|
+
private _getRenderTable;
|
|
94
|
+
private _resolveRenderModel;
|
|
95
|
+
private _drawRowFills;
|
|
96
|
+
private _drawCellFills;
|
|
97
|
+
private _drawCellTexts;
|
|
98
|
+
private _isEditingCell;
|
|
99
|
+
private _getTextRenderCache;
|
|
100
|
+
private _disposeTextRenderCaches;
|
|
101
|
+
private _drawCellBorders;
|
|
102
|
+
private _drawGrid;
|
|
103
|
+
private _drawTableOutline;
|
|
104
|
+
private _drawSelection;
|
|
105
|
+
private _drawCellHover;
|
|
106
|
+
private _drawControls;
|
|
107
|
+
private _drawStructuralHeaders;
|
|
108
|
+
private _drawStructuralHeaderRect;
|
|
109
|
+
private _drawInsertDots;
|
|
110
|
+
private _drawInsertGuide;
|
|
111
|
+
private _drawReorderGuide;
|
|
112
|
+
private _drawGuideLine;
|
|
113
|
+
private _drawTableHandle;
|
|
114
|
+
private _shouldDrawControls;
|
|
115
|
+
private _shouldDrawStructuralHeaders;
|
|
116
|
+
private _shouldDrawInsertDots;
|
|
117
|
+
private _isActiveOuterChromeHit;
|
|
118
|
+
private _buildControlButtons;
|
|
119
|
+
private _isPointInStructuralTriggerEnvelope;
|
|
120
|
+
private _isControlHovered;
|
|
121
|
+
private _isControlSelected;
|
|
122
|
+
private _isStructuralHeaderHovered;
|
|
123
|
+
private _isHoveredStructuralTrigger;
|
|
124
|
+
private _isStructuralRangeSelected;
|
|
125
|
+
private _buildStructuralTriggers;
|
|
126
|
+
private _getStructuralControlZoom;
|
|
127
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { HorizontalAlign, IDisposable, IDocumentData, ITransformState, VerticalAlign } from '@univerjs/core';
|
|
2
|
+
import { Disposable } from '@univerjs/core';
|
|
3
|
+
export interface ISlideTableCellEditorRect {
|
|
4
|
+
height: number;
|
|
5
|
+
left: number;
|
|
6
|
+
top: number;
|
|
7
|
+
width: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ISlideTableCellEditorMeasurement {
|
|
10
|
+
width: number;
|
|
11
|
+
minHeight: number;
|
|
12
|
+
actualHeight: number;
|
|
13
|
+
contentHeight: number;
|
|
14
|
+
marginTop: number;
|
|
15
|
+
}
|
|
16
|
+
export interface ISlideTableCellEditorSession {
|
|
17
|
+
column: number;
|
|
18
|
+
documentData: IDocumentData;
|
|
19
|
+
elementId: string;
|
|
20
|
+
horizontalAlign?: HorizontalAlign;
|
|
21
|
+
isHorizontal?: boolean;
|
|
22
|
+
measurement?: ISlideTableCellEditorMeasurement;
|
|
23
|
+
rect: ISlideTableCellEditorRect;
|
|
24
|
+
row: number;
|
|
25
|
+
subUnitId: string;
|
|
26
|
+
tableId: string;
|
|
27
|
+
tableTransform: ITransformState;
|
|
28
|
+
unitId: string;
|
|
29
|
+
verticalAlign?: VerticalAlign;
|
|
30
|
+
onCancel?: (session: ISlideTableCellEditorSession) => void;
|
|
31
|
+
onChange?: (session: ISlideTableCellEditorSession) => void;
|
|
32
|
+
onComplete?: (session: ISlideTableCellEditorSession) => void;
|
|
33
|
+
}
|
|
34
|
+
export type IOpenSlideTableCellEditorSession = Omit<ISlideTableCellEditorSession, 'onCancel' | 'onChange' | 'onComplete'> & {
|
|
35
|
+
onCancel?: (session: ISlideTableCellEditorSession) => void;
|
|
36
|
+
onChange?: (session: ISlideTableCellEditorSession) => void;
|
|
37
|
+
onComplete?: (session: ISlideTableCellEditorSession) => void;
|
|
38
|
+
};
|
|
39
|
+
export declare class SlideTableCellEditorService extends Disposable {
|
|
40
|
+
private readonly _session$;
|
|
41
|
+
readonly session$: import("rxjs").Observable<ISlideTableCellEditorSession | null>;
|
|
42
|
+
open(session: IOpenSlideTableCellEditorSession): IDisposable;
|
|
43
|
+
update(params: Partial<Pick<ISlideTableCellEditorSession, 'documentData' | 'measurement' | 'rect' | 'tableTransform'>>): void;
|
|
44
|
+
complete(documentData?: IDocumentData): void;
|
|
45
|
+
cancel(): void;
|
|
46
|
+
close(): void;
|
|
47
|
+
getSession(): ISlideTableCellEditorSession | null;
|
|
48
|
+
subscribe(listener: (session: ISlideTableCellEditorSession | null) => void): IDisposable;
|
|
49
|
+
dispose(): void;
|
|
50
|
+
}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { SlideTableKeyboardAction } from '../utils/slide-table-keyboard-model';
|
|
2
|
+
import { IContextService } from '@univerjs/core';
|
|
3
|
+
import { TableKeyboardServiceBase } from './table-keyboard.service-base';
|
|
3
4
|
export declare const FOCUSING_SLIDE_TABLE = "FOCUSING_SLIDE_TABLE";
|
|
4
|
-
export type SlideTableKeyboardAction = 'move-left' | 'move-right' | 'move-up' | 'move-down' | 'extend-left' | 'extend-right' | 'extend-up' | 'extend-down' | 'tab-forward' | 'tab-backward' | 'edit-cell' | 'clear-cells';
|
|
5
|
-
export type SlideTableKeyboardInput = {
|
|
6
|
-
kind: 'text';
|
|
7
|
-
text: string;
|
|
8
|
-
} | {
|
|
9
|
-
kind: 'composition-start';
|
|
10
|
-
} | {
|
|
11
|
-
kind: 'composition';
|
|
12
|
-
text?: string;
|
|
13
|
-
};
|
|
14
5
|
export interface ISlideTableKeyboardCommandParams {
|
|
15
6
|
action: SlideTableKeyboardAction;
|
|
16
7
|
}
|
|
17
|
-
export declare class SlideTableKeyboardService extends
|
|
8
|
+
export declare class SlideTableKeyboardService extends TableKeyboardServiceBase {
|
|
18
9
|
private readonly _contextService?;
|
|
19
|
-
private _handler;
|
|
20
|
-
private _inputHandler;
|
|
21
10
|
constructor(_contextService?: IContextService | undefined);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
handleInput(input: SlideTableKeyboardInput): boolean;
|
|
26
|
-
private _initNativeInputListeners;
|
|
27
|
-
private _canHandleNativeInput;
|
|
11
|
+
protected canHandleNativeInput(event: Event, options?: {
|
|
12
|
+
allowDocsEditor?: boolean;
|
|
13
|
+
}): boolean;
|
|
28
14
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IDisposable } from '@univerjs/core';
|
|
2
|
+
import type { SlideTableKeyboardInput } from '../utils/slide-table-keyboard-input';
|
|
3
|
+
import type { SlideTableKeyboardAction } from '../utils/slide-table-keyboard-model';
|
|
4
|
+
import { Disposable } from '@univerjs/core';
|
|
5
|
+
export type TableKeyboardHandlerResult = boolean | Promise<boolean>;
|
|
6
|
+
export declare abstract class TableKeyboardServiceBase extends Disposable {
|
|
7
|
+
private _handler;
|
|
8
|
+
private _inputHandler;
|
|
9
|
+
constructor();
|
|
10
|
+
setHandler(handler: (action: SlideTableKeyboardAction) => TableKeyboardHandlerResult): IDisposable;
|
|
11
|
+
setInputHandler(handler: (input: SlideTableKeyboardInput) => boolean): IDisposable;
|
|
12
|
+
handle(action: SlideTableKeyboardAction): TableKeyboardHandlerResult;
|
|
13
|
+
handleInput(input: SlideTableKeyboardInput): boolean;
|
|
14
|
+
protected abstract canHandleNativeInput(event: Event, options?: {
|
|
15
|
+
allowDocsEditor?: boolean;
|
|
16
|
+
}): boolean;
|
|
17
|
+
private _initNativeInputListeners;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ISlideTableSnapshot } from '@univerjs-pro/slides-table';
|
|
2
|
+
import type { IDocumentData } from '@univerjs/core';
|
|
3
|
+
import type { ISlideTableSelection } from '../services/slide-table-selection.service';
|
|
4
|
+
export declare function serializeSlideTableSelectionToText(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null | undefined): string;
|
|
5
|
+
export declare function buildSlideTablePasteTextPatch(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null | undefined, text: string): Partial<ISlideTableSnapshot> | null;
|
|
6
|
+
export declare function buildSlideTableClearTextPatch(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null | undefined): Partial<ISlideTableSnapshot> | null;
|
|
7
|
+
export declare function extractSlideTableCellPlainText(documentData: IDocumentData | undefined): string;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ISlideTableBorder, ISlideTableCellRange, ISlideTableFill, ISlideTableSnapshot, SlideTableBorderPresetEnum } from '@univerjs-pro/slides-table';
|
|
2
|
+
import type { HorizontalAlign, IDocTextFill } from '@univerjs/core';
|
|
3
|
+
import type { ISlideTableSelection } from '../services/slide-table-selection.service';
|
|
4
|
+
import { VerticalAlign } from '@univerjs/core';
|
|
5
|
+
export type SlideTableDistributeAxis = 'row' | 'column';
|
|
6
|
+
export type SlideTableTextAlignPreset = {
|
|
7
|
+
axis: 'horizontal';
|
|
8
|
+
value: HorizontalAlign;
|
|
9
|
+
} | {
|
|
10
|
+
axis: 'vertical';
|
|
11
|
+
value: VerticalAlign;
|
|
12
|
+
};
|
|
13
|
+
export declare const SLIDE_TABLE_CONTEXT_MENU_ACTIONS: {
|
|
14
|
+
readonly InsertRowAbove: "insert-row-above";
|
|
15
|
+
readonly InsertRowBelow: "insert-row-below";
|
|
16
|
+
readonly InsertColumnLeft: "insert-column-left";
|
|
17
|
+
readonly InsertColumnRight: "insert-column-right";
|
|
18
|
+
readonly DeleteRows: "delete-rows";
|
|
19
|
+
readonly DeleteColumns: "delete-columns";
|
|
20
|
+
readonly MergeCells: "merge-cells";
|
|
21
|
+
readonly UnmergeCells: "unmerge-cells";
|
|
22
|
+
readonly DistributeRows: "distribute-rows";
|
|
23
|
+
readonly DistributeColumns: "distribute-columns";
|
|
24
|
+
};
|
|
25
|
+
export type SlideTableContextMenuActionId = typeof SLIDE_TABLE_CONTEXT_MENU_ACTIONS[keyof typeof SLIDE_TABLE_CONTEXT_MENU_ACTIONS];
|
|
26
|
+
export interface ISlideTableContextMenuCommandIds {
|
|
27
|
+
insertRows: string;
|
|
28
|
+
insertColumns: string;
|
|
29
|
+
deleteRows: string;
|
|
30
|
+
deleteColumns: string;
|
|
31
|
+
mergeCells: string;
|
|
32
|
+
unmergeCells: string;
|
|
33
|
+
updateTable: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ISlideTableContextMenuAction {
|
|
36
|
+
id: SlideTableContextMenuActionId;
|
|
37
|
+
commandId: string;
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface ISlideTableContextMenuCommand {
|
|
41
|
+
commandId: string;
|
|
42
|
+
params: object;
|
|
43
|
+
}
|
|
44
|
+
export declare function getSlideTableSelectionContext(selection: ISlideTableSelection | null): {
|
|
45
|
+
elementId: string;
|
|
46
|
+
range: ISlideTableCellRange;
|
|
47
|
+
subUnitId: string;
|
|
48
|
+
tableId: string;
|
|
49
|
+
unitId: string;
|
|
50
|
+
} | null;
|
|
51
|
+
export declare function resolveSlideTableContextMenuActions(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null, commandIds: ISlideTableContextMenuCommandIds): ISlideTableContextMenuAction[];
|
|
52
|
+
export declare function buildSlideTableContextMenuCommand(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null, actionId: SlideTableContextMenuActionId, commandIds: ISlideTableContextMenuCommandIds): ISlideTableContextMenuCommand | null;
|
|
53
|
+
export declare function buildSlideTableDistributePatch(table: ISlideTableSnapshot, axis: SlideTableDistributeAxis, sourceRange?: ISlideTableCellRange): Partial<ISlideTableSnapshot>;
|
|
54
|
+
export declare function buildSlideTableTextAlignPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, preset: SlideTableTextAlignPreset): Partial<ISlideTableSnapshot>;
|
|
55
|
+
export declare function buildSlideTableBackgroundColorPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, color: string | undefined): Partial<ISlideTableSnapshot>;
|
|
56
|
+
export declare function buildSlideTableBackgroundFillPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, fill: ISlideTableFill | undefined): Partial<ISlideTableSnapshot>;
|
|
57
|
+
export declare function buildSlideTableTextColorPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, color: string | undefined): Partial<ISlideTableSnapshot>;
|
|
58
|
+
export declare function buildSlideTableTextFillPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, fill: IDocTextFill | undefined): Partial<ISlideTableSnapshot>;
|
|
59
|
+
export declare function buildSlideTableBorderStylePatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, borderPatch: Partial<ISlideTableBorder>): Partial<ISlideTableSnapshot>;
|
|
60
|
+
export declare function buildSlideTableBorderPresetPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, preset: SlideTableBorderPresetEnum, border?: ISlideTableBorder): Partial<ISlideTableSnapshot>;
|
|
61
|
+
export declare function buildSlideTableFontFamilyPatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, fontFamily: string): Partial<ISlideTableSnapshot>;
|
|
62
|
+
export declare function buildSlideTableFontSizePatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, fontSize: number): Partial<ISlideTableSnapshot>;
|
|
63
|
+
export declare function canMergeSlideTableSelection(selection: ISlideTableSelection | null): boolean;
|
|
64
|
+
export declare function canUnmergeSlideTableSelection(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null): boolean;
|
|
65
|
+
export declare function canDeleteSlideTableRows(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null): boolean;
|
|
66
|
+
export declare function canDeleteSlideTableColumns(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null): boolean;
|
|
67
|
+
export declare function canDistributeSlideTableRows(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null): boolean;
|
|
68
|
+
export declare function canDistributeSlideTableColumns(table: ISlideTableSnapshot | null | undefined, selection: ISlideTableSelection | null): boolean;
|
|
69
|
+
export declare function buildSlideTableTextStylePatch(table: ISlideTableSnapshot, sourceRange: ISlideTableCellRange, textStylePatch: Record<string, unknown>): Partial<ISlideTableSnapshot>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { ISlideTableCellStyle, ISlideTableSnapshot } from '@univerjs-pro/slides-table';
|
|
2
|
+
import type { HorizontalAlign, IDocumentData, ITransformState, VerticalAlign } from '@univerjs/core';
|
|
3
|
+
import type { ISlideTableCellEditorSession } from '../services/slide-table-cell-editor.service';
|
|
4
|
+
import type { ISlideTableSelection } from '../services/slide-table-selection.service';
|
|
5
|
+
export interface IResolveSlideTableCellEditorTargetParams {
|
|
6
|
+
selection: ISlideTableSelection | null;
|
|
7
|
+
table: ISlideTableSnapshot | null | undefined;
|
|
8
|
+
tableHeight: number;
|
|
9
|
+
tableWidth: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ISlideTableCellEditorTarget {
|
|
12
|
+
column: number;
|
|
13
|
+
documentData: IDocumentData;
|
|
14
|
+
cellStyle?: ISlideTableCellStyle;
|
|
15
|
+
rect: {
|
|
16
|
+
height: number;
|
|
17
|
+
left: number;
|
|
18
|
+
top: number;
|
|
19
|
+
width: number;
|
|
20
|
+
};
|
|
21
|
+
row: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ISlideTableCellEditorLayout {
|
|
24
|
+
rect: {
|
|
25
|
+
height: number;
|
|
26
|
+
left: number;
|
|
27
|
+
top: number;
|
|
28
|
+
width: number;
|
|
29
|
+
};
|
|
30
|
+
scale: {
|
|
31
|
+
scaleX: number;
|
|
32
|
+
scaleY: number;
|
|
33
|
+
};
|
|
34
|
+
transform: {
|
|
35
|
+
angle: number;
|
|
36
|
+
flipX: boolean;
|
|
37
|
+
flipY?: boolean;
|
|
38
|
+
};
|
|
39
|
+
horizontalAlign?: HorizontalAlign;
|
|
40
|
+
verticalAlign?: VerticalAlign;
|
|
41
|
+
isHorizontal?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface IResolveSlideTableCellEditorLayoutParams {
|
|
44
|
+
rect: {
|
|
45
|
+
height: number;
|
|
46
|
+
left: number;
|
|
47
|
+
top: number;
|
|
48
|
+
width: number;
|
|
49
|
+
};
|
|
50
|
+
scale?: {
|
|
51
|
+
scaleX?: number;
|
|
52
|
+
scaleY?: number;
|
|
53
|
+
};
|
|
54
|
+
scenePointToViewportPoint: (point: {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
}) => {
|
|
58
|
+
x: number;
|
|
59
|
+
y: number;
|
|
60
|
+
};
|
|
61
|
+
tableTransform: ITransformState;
|
|
62
|
+
}
|
|
63
|
+
export interface ISlideTableCellEditorCommitCommand {
|
|
64
|
+
commandId: string;
|
|
65
|
+
params: {
|
|
66
|
+
column: number;
|
|
67
|
+
row: number;
|
|
68
|
+
tableId: string;
|
|
69
|
+
textData: IDocumentData;
|
|
70
|
+
unitId: string;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export declare function resolveSlideTableCellEditorTarget(params: IResolveSlideTableCellEditorTargetParams): ISlideTableCellEditorTarget | null;
|
|
74
|
+
export declare function createSlideTableCellDocumentData(tableId: string, row: number, column: number, text?: string): IDocumentData;
|
|
75
|
+
export declare function replaceSlideTableCellDocumentText(documentData: IDocumentData, text: string): IDocumentData;
|
|
76
|
+
export declare function resolveSlideTableCellEditorLayout(params: IResolveSlideTableCellEditorLayoutParams): ISlideTableCellEditorLayout;
|
|
77
|
+
export declare function buildSlideTableCellEditorCommitCommand(session: ISlideTableCellEditorSession | null, documentData: IDocumentData, commandId: string): ISlideTableCellEditorCommitCommand | null;
|
|
78
|
+
export declare function normalizeSlideTableCellDocumentData(documentData: IDocumentData | undefined, fallbackId: string): IDocumentData;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type SlideTableKeyboardInput = {
|
|
2
|
+
kind: 'text';
|
|
3
|
+
text: string;
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'composition-start';
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'composition';
|
|
8
|
+
text?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function isSlideTablePlainTextKeyEvent(event: Pick<KeyboardEvent, 'altKey' | 'ctrlKey' | 'key' | 'metaKey'>): boolean;
|
|
11
|
+
export declare function isSlideTableInsertTextInputType(inputType: string): boolean;
|
|
12
|
+
export declare function isSlideTableEditableTarget(target: EventTarget | null): boolean;
|
|
13
|
+
export declare function isSlideTableDocumentEditorTarget(target: EventTarget | null): boolean;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type SlideTableKeyboardAction = 'move-left' | 'move-right' | 'move-up' | 'move-down' | 'extend-left' | 'extend-right' | 'extend-up' | 'extend-down' | 'tab-forward' | 'tab-backward' | 'edit-cell' | 'clear-cells' | 'copy-cells' | 'paste-cells';
|
|
2
|
+
export type SlideTableKeyboardShortcutKey = 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-down' | 'shift-arrow-left' | 'shift-arrow-right' | 'shift-arrow-up' | 'shift-arrow-down' | 'tab' | 'shift-tab' | 'enter' | 'f2' | 'delete' | 'backspace' | 'copy' | 'paste';
|
|
3
|
+
export interface ISlideTableKeyboardMovement {
|
|
4
|
+
rowDelta: number;
|
|
5
|
+
columnDelta: number;
|
|
6
|
+
extend: boolean;
|
|
7
|
+
wrap?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ISlideTableKeyboardShortcutDescriptor {
|
|
10
|
+
action: SlideTableKeyboardAction;
|
|
11
|
+
key: SlideTableKeyboardShortcutKey;
|
|
12
|
+
}
|
|
13
|
+
export interface ISlideTableKeyboardShortcutBinding {
|
|
14
|
+
action: SlideTableKeyboardAction;
|
|
15
|
+
binding: number;
|
|
16
|
+
}
|
|
17
|
+
export type SlideTableKeyboardCellMovement = Pick<ISlideTableKeyboardMovement, 'rowDelta' | 'columnDelta' | 'wrap'> & {
|
|
18
|
+
extend?: boolean;
|
|
19
|
+
};
|
|
20
|
+
export declare const SLIDE_TABLE_KEYBOARD_SHORTCUT_DESCRIPTORS: readonly ISlideTableKeyboardShortcutDescriptor[];
|
|
21
|
+
export declare function buildSlideTableKeyboardShortcutBindings(bindings: Record<SlideTableKeyboardShortcutKey, number>): ISlideTableKeyboardShortcutBinding[];
|
|
22
|
+
export declare function resolveSlideTableKeyboardMovement(action: SlideTableKeyboardAction): ISlideTableKeyboardMovement | null;
|
|
23
|
+
export declare function resolveNextSlideTableKeyboardCell(focus: {
|
|
24
|
+
row: number;
|
|
25
|
+
column: number;
|
|
26
|
+
}, movement: SlideTableKeyboardCellMovement, rowCount: number, columnCount: number): {
|
|
27
|
+
row: number;
|
|
28
|
+
column: number;
|
|
29
|
+
};
|
|
30
|
+
export declare function clampSlideTableCellPosition(position: {
|
|
31
|
+
row: number;
|
|
32
|
+
column: number;
|
|
33
|
+
}, rowCount: number, columnCount: number): {
|
|
34
|
+
row: number;
|
|
35
|
+
column: number;
|
|
36
|
+
};
|
|
37
|
+
export declare function wrapSlideTableCellPosition(focus: {
|
|
38
|
+
row: number;
|
|
39
|
+
column: number;
|
|
40
|
+
}, movement: Pick<SlideTableKeyboardCellMovement, 'rowDelta' | 'columnDelta'>, rowCount: number, columnCount: number): {
|
|
41
|
+
row: number;
|
|
42
|
+
column: number;
|
|
43
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ISlideTableObjectSelection } from '../render-objects/slide-table-object';
|
|
2
|
+
import type { ISlideTableSelection } from '../services/slide-table-selection.service';
|
|
3
|
+
export declare function resolveSlideTableObjectSelection(selection: ISlideTableSelection | null): ISlideTableObjectSelection | null;
|
|
4
|
+
export declare function resolveFirstSlideTableSelectionCell(selection: Pick<ISlideTableSelection, 'ranges'>): {
|
|
5
|
+
row: number;
|
|
6
|
+
column: number;
|
|
7
|
+
} | undefined;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ISlideTableTrigger } from '@univerjs-pro/slides-table';
|
|
2
|
+
import type { ISlideTableObjectControlState } from '../render-objects/slide-table-object';
|
|
3
|
+
export type ISlideTableInsertDotTrigger = ISlideTableTrigger & ({
|
|
4
|
+
kind: 'row-insert-dot';
|
|
5
|
+
row: number;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'column-insert-dot';
|
|
8
|
+
column: number;
|
|
9
|
+
});
|
|
10
|
+
export declare function isSlideTableInsertDotTrigger(trigger: {
|
|
11
|
+
kind?: string;
|
|
12
|
+
row?: number;
|
|
13
|
+
column?: number;
|
|
14
|
+
} | null | undefined): trigger is ISlideTableInsertDotTrigger;
|
|
15
|
+
export declare function buildSlideTableInsertDotControlState(trigger: ISlideTableInsertDotTrigger): ISlideTableObjectControlState;
|