@univerjs/core 0.1.5 → 0.1.7

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 (30) hide show
  1. package/README.md +22 -0
  2. package/lib/cjs/index.js +8 -8
  3. package/lib/es/index.js +2746 -2641
  4. package/lib/types/common/const.d.ts +2 -0
  5. package/lib/types/common/equal.d.ts +20 -0
  6. package/lib/types/index.d.ts +11 -2
  7. package/lib/types/services/command/command.service.d.ts +9 -1
  8. package/lib/types/services/context/context.d.ts +1 -0
  9. package/lib/types/services/lifecycle/lifecycle.d.ts +31 -1
  10. package/lib/types/services/undoredo/undoredo.service.d.ts +10 -0
  11. package/lib/types/shared/common.d.ts +10 -0
  12. package/lib/types/shared/index.d.ts +1 -0
  13. package/lib/types/shared/object-matrix-query.d.ts +4 -0
  14. package/lib/types/shared/object-matrix.d.ts +2 -1
  15. package/lib/types/shared/tools.d.ts +2 -0
  16. package/lib/types/sheets/empty-snapshot.d.ts +4 -0
  17. package/lib/types/sheets/view-model.d.ts +6 -6
  18. package/lib/types/types/const/const.d.ts +0 -5
  19. package/lib/types/types/enum/data-validation-error-style.d.ts +20 -0
  20. package/lib/types/types/enum/data-validation-ime-mode.d.ts +28 -0
  21. package/lib/types/types/enum/data-validation-operator.d.ts +25 -0
  22. package/lib/types/types/enum/data-validation-render-mode.d.ts +20 -0
  23. package/lib/types/types/enum/data-validation-status.d.ts +20 -0
  24. package/lib/types/types/enum/data-validation-type.d.ts +36 -0
  25. package/lib/types/types/interfaces/i-cell-custom-render.d.ts +28 -0
  26. package/lib/types/types/interfaces/i-cell-data.d.ts +16 -0
  27. package/lib/types/types/interfaces/i-cell-validation-data.d.ts +9 -0
  28. package/lib/types/types/interfaces/i-data-validation.d.ts +44 -0
  29. package/lib/umd/index.js +8 -8
  30. package/package.json +6 -6
@@ -16,3 +16,5 @@
16
16
  export declare const DOCS_NORMAL_EDITOR_UNIT_ID_KEY = "__defaultDocumentNormalEditorSpecialUnitId_20231006__";
17
17
  export declare const DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY = "__defaultDocumentFormulaBarEditorSpecialUnitId_20231012__";
18
18
  export declare const DEFAULT_EMPTY_DOCUMENT_VALUE = "\r\n";
19
+ export declare function createInternalEditorID(id: string): string;
20
+ export declare function isInternalEditorID(id: string): boolean;
@@ -0,0 +1,20 @@
1
+ import { IRange, IUnitRange } from '../types/interfaces';
2
+
3
+ /**
4
+ * Copyright 2023-present DreamNum Inc.
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ export declare const isRangesEqual: (oldRanges: IRange[], ranges: IRange[]) => boolean;
19
+ export declare const isUnitRangesEqual: (oldRanges: IUnitRange[], ranges: IUnitRange[]) => boolean;
20
+ export declare function shallowEqual(objA: any, objB: any): boolean;
@@ -13,15 +13,17 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ export { shallowEqual, isRangesEqual, isUnitRangesEqual } from './common/equal';
16
17
  export * from './basics';
17
18
  export { dedupe, remove, rotate, groupBy } from './common/array';
18
- export { DEFAULT_EMPTY_DOCUMENT_VALUE, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, } from './common/const';
19
+ export { DEFAULT_EMPTY_DOCUMENT_VALUE, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, createInternalEditorID, isInternalEditorID, } from './common/const';
19
20
  export { throttle } from './common/function';
20
21
  export { MemoryCursor } from './common/memory-cursor';
21
22
  export { requestImmediateMacroTask } from './common/request-immediate-macro-task';
22
23
  export { type ISequenceExecuteResult, sequence, sequenceAsync } from './common/sequence';
23
24
  export * from './docs/data-model';
24
25
  export { TextXActionType, type TextXAction, type IDeleteAction, type IInsertAction, type IRetainAction, } from './docs/data-model/action-types';
26
+ export { DataValidationRenderMode } from './types/enum/data-validation-render-mode';
25
27
  export { ActionIterator } from './docs/data-model/text-x/action-iterator';
26
28
  export { getBodySlice, composeBody } from './docs/data-model/text-x/utils';
27
29
  export { TextX } from './docs/data-model/text-x/text-x';
@@ -46,7 +48,7 @@ export { ResourceManagerService } from './services/resource-manager/resource-man
46
48
  export type { IResourceHook } from './services/resource-manager/type';
47
49
  export { IResourceManagerService, ISnapshotPersistenceService } from './services/resource-manager/type';
48
50
  export { type IStyleSheet, ThemeService } from './services/theme/theme.service';
49
- export { type IUndoRedoCommandInfos, type IUndoRedoItem, IUndoRedoService, type IUndoRedoStatus, LocalUndoRedoService, RedoCommand, UndoCommand, RedoCommandId, UndoCommandId, } from './services/undoredo/undoredo.service';
51
+ export { type IUndoRedoCommandInfos, type IUndoRedoCommandInfosByInterceptor, type IUndoRedoItem, IUndoRedoService, type IUndoRedoStatus, LocalUndoRedoService, RedoCommand, UndoCommand, RedoCommandId, UndoCommandId, } from './services/undoredo/undoredo.service';
50
52
  export * from './shared';
51
53
  export { fromCallback } from './shared/rxjs';
52
54
  export type { IComposeInterceptors, IInterceptor, InterceptorHandler } from './common/interceptor';
@@ -75,3 +77,10 @@ export { ClientSnapshotServerService } from './services/snapshot/snapshot-server
75
77
  export { getSheetBlocksFromSnapshot } from './services/snapshot/snapshot-transform';
76
78
  export { isBlackColor, isWhiteColor } from './shared/color/color-kit';
77
79
  export { cellToRange } from './shared/common';
80
+ export type { IDataValidationRule, IDataValidationRuleBase, IDataValidationRuleInfo, IDataValidationRuleOptions, ISheetDataValidationRule } from './types/interfaces/i-data-validation';
81
+ export type { ICellCustomRender, ICellRenderContext } from './types/interfaces/i-cell-custom-render';
82
+ export { DataValidationErrorStyle } from './types/enum/data-validation-error-style';
83
+ export { DataValidationImeMode } from './types/enum/data-validation-ime-mode';
84
+ export { DataValidationOperator } from './types/enum/data-validation-operator';
85
+ export { DataValidationType } from './types/enum/data-validation-type';
86
+ export { DataValidationStatus } from './types/enum/data-validation-status';
@@ -88,6 +88,12 @@ export interface IExecutionOptions {
88
88
  }
89
89
  export type CommandListener = (commandInfo: Readonly<ICommandInfo>, options?: IExecutionOptions) => void;
90
90
  export interface ICommandService {
91
+ /**
92
+ * Check if a command is already registered at the current command service.
93
+ *
94
+ * @param commandId The id of the command.
95
+ */
96
+ hasCommand(commandId: string): boolean;
91
97
  registerCommand(command: ICommand<object, unknown>): IDisposable;
92
98
  registerMultipleCommand(command: ICommand<object, unknown>): IDisposable;
93
99
  executeCommand<P extends object = object, R = boolean>(id: string, params?: P, options?: IExecutionOptions): Promise<R>;
@@ -109,8 +115,10 @@ export declare const ICommandService: import('@wendellhu/redi').IdentifierDecora
109
115
  export declare class CommandRegistry {
110
116
  private readonly _commands;
111
117
  registerCommand(command: ICommand): IDisposable;
118
+ hasCommand(id: string): boolean;
112
119
  getCommand(id: string): [ICommand] | null;
113
120
  }
121
+ export declare const NilCommand: ICommand;
114
122
  export declare class CommandService implements ICommandService {
115
123
  private readonly _injector;
116
124
  private readonly _logService;
@@ -121,6 +129,7 @@ export declare class CommandService implements ICommandService {
121
129
  private _commandExecutingLevel;
122
130
  private _commandExecutionStack;
123
131
  constructor(_injector: Injector, _logService: ILogService);
132
+ hasCommand(commandId: string): boolean;
124
133
  registerCommand(command: ICommand): IDisposable;
125
134
  registerMultipleCommand(command: ICommand): IDisposable;
126
135
  beforeCommandExecuted(listener: CommandListener): IDisposable;
@@ -135,4 +144,3 @@ export declare class CommandService implements ICommandService {
135
144
  }
136
145
  export declare function sequenceExecute(tasks: ICommandInfo[], commandService: ICommandService, options?: IExecutionOptions): import('../../common/sequence').ISequenceExecuteResult;
137
146
  export declare function sequenceExecuteAsync(tasks: ICommandInfo[], commandService: ICommandService, options?: IExecutionOptions): Promise<import('../../common/sequence').ISequenceExecuteResult>;
138
- export declare const NilCommand: ICommand;
@@ -20,6 +20,7 @@ export declare const FOCUSING_SLIDE = "FOCUSING_SLIDE";
20
20
  export declare const FOCUSING_EDITOR_BUT_HIDDEN = "FOCUSING_EDITOR_BUT_HIDDEN";
21
21
  export declare const EDITOR_ACTIVATED = "EDITOR_ACTIVATED";
22
22
  export declare const FOCUSING_EDITOR_INPUT_FORMULA = "FOCUSING_EDITOR_INPUT_FORMULA";
23
+ /** The focusing state of the formula editor (Fx bar). */
23
24
  export declare const FOCUSING_FORMULA_EDITOR = "FOCUSING_FORMULA_EDITOR";
24
25
  export declare const FOCUSING_UNIVER_EDITOR = "FOCUSING_UNIVER_EDITOR";
25
26
  export declare const FOCUSING_EDITOR_STANDALONE = "FOCUSING_EDITOR_INPUT_FORMULA";
@@ -30,7 +30,37 @@ export declare const LifecycleNameMap: {
30
30
  };
31
31
  export declare const LifecycleToModules: Map<LifecycleStages, DependencyIdentifier<unknown>[]>;
32
32
  /**
33
- * Register some modules here that will automatically run when Univer progressed to a certain lifecycle stage
33
+ * Register the decorated class to be automatically instantiated when Univer progresses to the certain lifecycle stage.
34
+ *
35
+ * @param lifecycleStage The lifecycle stage to instantiate this class.
36
+ * @param identifier The dependency identifier of the class. Usually, it is the class itself unless you bind this class
37
+ * with another injection identifier.
38
+ *
39
+ *
40
+ * @example
41
+ * // Ignore the `\` below. This is JSDoc's bug.
42
+ * \@OnLifecycle(LifecycleStages.Ready, MyService)
43
+ * class MyService {
44
+ * }
45
+ *
46
+ * @example
47
+ * // Ignore the `\` below. This is JSDoc's bug.
48
+ * \@OnLifecycle(LifecycleStages.Rendered, IMyService)
49
+ * class MyService implements IMyService {
50
+ * }
34
51
  */
35
52
  export declare function OnLifecycle(lifecycleStage: LifecycleStages, identifier: DependencyIdentifier<unknown>): (_: Ctor<unknown>) => void;
53
+ /**
54
+ * Register a dependency to be automatically instantiated when Univer progresses to the certain lifecycle stage.
55
+ *
56
+ * @param lifecycleStage The lifecycle stage to instantiate this dependency.
57
+ * @param identifier The dependencies' identifier. **Beware** that if the dependency (e.g. a class) is bound to an
58
+ * identifier, you should register the identifier instead of the dependency itself.
59
+ *
60
+ * @example
61
+ * runOnLifecycle(LifecycleStages.Ready, MyService);
62
+ *
63
+ * @example
64
+ * runOnLifecycle(LifecycleStages.Rendered, IMyService);
65
+ */
36
66
  export declare function runOnLifecycle(lifecycleStage: LifecycleStages, identifier: DependencyIdentifier<unknown>): void;
@@ -30,6 +30,16 @@ export interface IUndoRedoService {
30
30
  */
31
31
  __tempBatchingUndoRedo(unitId: string): IDisposable;
32
32
  }
33
+ export interface IUndoRedoCommandInfosByInterceptor {
34
+ /**
35
+ * Sometimes, mutations generated by interceptors need to ensure a certain execution order
36
+ * PreMutations run before user's intent to make sure the undo/redo works correctly.
37
+ */
38
+ preUndos?: IMutationInfo[];
39
+ undos: IMutationInfo[];
40
+ redos: IMutationInfo[];
41
+ preRedos?: IMutationInfo[];
42
+ }
33
43
  export interface IUndoRedoCommandInfos {
34
44
  undos: IMutationInfo[];
35
45
  redos: IMutationInfo[];
@@ -9,7 +9,17 @@ export declare function makeCellToSelection(cellInfo: Nullable<ISelectionCellWit
9
9
  export declare function makeCellRangeToRangeData(cellInfo: Nullable<ISelectionCell>): Nullable<IRange>;
10
10
  export declare function isEmptyCell(cell: Nullable<ICellData>): boolean;
11
11
  export declare function getColorStyle(color: Nullable<IColorStyle>): Nullable<string>;
12
+ /**
13
+ * A string starting with an equal sign is a formula
14
+ * @param value
15
+ * @returns
16
+ */
12
17
  export declare function isFormulaString(value: any): boolean;
18
+ /**
19
+ * any string
20
+ * @param value
21
+ * @returns
22
+ */
13
23
  export declare function isFormulaId(value: any): boolean;
14
24
  /**
15
25
  * Convert rich text json to DOM
@@ -36,3 +36,4 @@ export * from './sort-rules';
36
36
  export * from './tools';
37
37
  export * from './types';
38
38
  export * from './debounce';
39
+ export { queryObjectMatrix } from './object-matrix-query';
@@ -0,0 +1,4 @@
1
+ import { ObjectMatrix } from './object-matrix';
2
+ import { IRange } from '../types/interfaces';
3
+
4
+ export declare function queryObjectMatrix<T>(matrix: ObjectMatrix<T>, match: (value: T) => boolean): IRange[];
@@ -12,7 +12,7 @@ export interface IObjectArrayPrimitiveType<T> {
12
12
  }
13
13
  export declare function getArrayLength<T>(o: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>): number;
14
14
  export declare function insertMatrixArray<T>(index: number, value: T, o: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>): void;
15
- export declare function spliceArray<T>(start: number, count: number, o: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>, insert?: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>): IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>;
15
+ export declare function spliceArray<T>(start: number, count: number, o: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>): void;
16
16
  export declare function concatMatrixArray<T>(source: IObjectArrayPrimitiveType<T>, target: IObjectArrayPrimitiveType<T>): IObjectArrayPrimitiveType<T>;
17
17
  export declare function sliceMatrixArray<T>(start: number, end: number, matrixArray: IObjectArrayPrimitiveType<T>): IObjectArrayPrimitiveType<T>;
18
18
  export declare function moveMatrixArray<T>(fromIndex: number, count: number, toIndex: number, o: IObjectArrayPrimitiveType<T> | IObjectMatrixPrimitiveType<T>): void;
@@ -81,6 +81,7 @@ export declare class ObjectMatrix<T> {
81
81
  getRange(): IRange;
82
82
  toNativeArray(): T[];
83
83
  toArray(): T[][];
84
+ toFullArray(): T[][];
84
85
  /**
85
86
  * @deprecated Use getMatrix as a substitute.
86
87
  */
@@ -95,4 +95,6 @@ export declare class Tools {
95
95
  static commonExtend1<T>(originJson: IKeyValue, extendJson: IKeyValue): T;
96
96
  static arrayToObject(array: IKeyValue[][]): IKeyValue;
97
97
  static hasIntersectionBetweenTwoRanges(range1Start: number, range1End: number, range2Start: number, range2End: number): boolean;
98
+ static isStartValidPosition(name: string): boolean;
99
+ static isValidParameter(name: string): boolean;
98
100
  }
@@ -0,0 +1,4 @@
1
+ import { IWorkbookData } from '../types/interfaces';
2
+ import { LocaleType } from '../types/enum/locale-type';
3
+
4
+ export declare function getEmptySnapshot(unitID?: string, locale?: LocaleType, name?: string): IWorkbookData;
@@ -4,7 +4,7 @@ import { Nullable } from '../common/type-utils';
4
4
  import { IDisposable } from '@wendellhu/redi';
5
5
 
6
6
  export interface ICellContentInterceptor {
7
- getCell(row: number, col: number): Nullable<ICellDataForSheetInterceptor>;
7
+ getCell: (row: number, col: number) => Nullable<ICellDataForSheetInterceptor>;
8
8
  }
9
9
  export interface IRowFilteredInterceptor {
10
10
  }
@@ -13,11 +13,11 @@ export interface IRowVisibleInterceptor {
13
13
  export interface IColVisibleInterceptor {
14
14
  }
15
15
  export interface ISheetViewModel {
16
- registerCellContentInterceptor(interceptor: ICellContentInterceptor): IDisposable;
17
- registerRowFilteredInterceptor(interceptor: IRowFilteredInterceptor): IDisposable;
18
- registerRowVisibleInterceptor(interceptor: IRowVisibleInterceptor): IDisposable;
19
- registerColVisibleInterceptor(interceptor: IColVisibleInterceptor): IDisposable;
20
- getCell(row: number, col: number): Nullable<ICellDataForSheetInterceptor>;
16
+ registerCellContentInterceptor: (interceptor: ICellContentInterceptor) => IDisposable;
17
+ registerRowFilteredInterceptor: (interceptor: IRowFilteredInterceptor) => IDisposable;
18
+ registerRowVisibleInterceptor: (interceptor: IRowVisibleInterceptor) => IDisposable;
19
+ registerColVisibleInterceptor: (interceptor: IColVisibleInterceptor) => IDisposable;
20
+ getCell: (row: number, col: number) => Nullable<ICellDataForSheetInterceptor>;
21
21
  }
22
22
  /**
23
23
  * SheetViewModel
@@ -1,4 +1,3 @@
1
- import { IWorkbookData } from '../interfaces';
2
1
  import { BooleanNumber, HorizontalAlign, TextDirection, VerticalAlign, WrapStrategy } from '../enum';
3
2
 
4
3
  /**
@@ -38,10 +37,6 @@ export declare const DEFAULT_CELL: {
38
37
  row: number;
39
38
  column: number;
40
39
  };
41
- /**
42
- * Used as an init workbook return value
43
- */
44
- export declare const DEFAULT_WORKBOOK: IWorkbookData;
45
40
  /**
46
41
  * Default styles.
47
42
  */
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationErrorStyle {
17
+ INFO = 0,
18
+ STOP = 1,
19
+ WARNING = 2
20
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationImeMode {
17
+ DISABLED = 0,
18
+ FULL_ALPHA = 1,
19
+ FULL_HANGUL = 2,
20
+ FULL_KATAKANA = 3,
21
+ HALF_ALPHA = 4,
22
+ HALF_HANGUL = 5,
23
+ HALF_KATAKANA = 6,
24
+ HIRAGANA = 7,
25
+ NO_CONTROL = 8,
26
+ OFF = 9,
27
+ ON = 10
28
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationOperator {
17
+ BETWEEN = "between",
18
+ EQUAL = "equal",
19
+ GREATER_THAN = "greaterThan",
20
+ GREATER_THAN_OR_EQUAL = "greaterThanOrEqual",
21
+ LESS_THAN = "lessThan",
22
+ LESS_THAN_OR_EQUAL = "lessThanOrEqual",
23
+ NOT_BETWEEN = "notBetween",
24
+ NOT_EQUAL = "notEqual"
25
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationRenderMode {
17
+ TEXT = 0,
18
+ ARROW = 1,
19
+ CUSTOM = 2
20
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationStatus {
17
+ VALID = "valid",
18
+ INVALID = "invalid",
19
+ VALIDATING = "validating"
20
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DataValidationType {
17
+ /**
18
+ * custom formula
19
+ */
20
+ CUSTOM = "custom",
21
+ LIST = "list",
22
+ LIST_MULTIPLE = "listMultiple",
23
+ NONE = "none",
24
+ TEXT_LENGTH = "textLength",
25
+ DATE = "date",
26
+ TIME = "time",
27
+ /**
28
+ * integer number
29
+ */
30
+ WHOLE = "whole",
31
+ /**
32
+ * decimal number
33
+ */
34
+ DECIMAL = "decimal",
35
+ CHECKBOX = "checkbox"
36
+ }
@@ -0,0 +1,28 @@
1
+ import { ICellDataForSheetInterceptor } from './i-cell-data';
2
+ import { IStyleData } from './i-style-data';
3
+ import { ISelectionCellWithCoord } from './i-selection-data';
4
+ import { Nullable } from '../../shared';
5
+
6
+ export interface ICellRenderContext {
7
+ data: ICellDataForSheetInterceptor;
8
+ style: Nullable<IStyleData>;
9
+ primaryWithCoord: ISelectionCellWithCoord;
10
+ unitId?: string;
11
+ subUnitId: string;
12
+ row: number;
13
+ col: number;
14
+ }
15
+ /**
16
+ * @debt This shouldn't exist in core package.
17
+ */
18
+ export interface ICellCustomRender {
19
+ drawWith(ctx: CanvasRenderingContext2D, info: ICellRenderContext, skeleton: any, spreadsheets: any): void;
20
+ zIndex?: number;
21
+ isHit?: (position: {
22
+ x: number;
23
+ y: number;
24
+ }, info: ICellRenderContext) => boolean;
25
+ onPointerDown?: (info: ICellRenderContext, evt: any) => void;
26
+ onPointerEnter?: (info: ICellRenderContext, evt: any) => void;
27
+ onPointerLeave?: (info: ICellRenderContext, evt: any) => void;
28
+ }
@@ -1,5 +1,7 @@
1
+ import { ICellValidationData } from './i-cell-validation-data';
1
2
  import { IStyleData } from './i-style-data';
2
3
  import { IDocumentData } from './i-document-data';
4
+ import { ICellCustomRender } from './i-cell-custom-render';
3
5
  import { CellValueType } from '../enum/text-style';
4
6
  import { Nullable } from '../../shared/types';
5
7
 
@@ -32,9 +34,23 @@ export interface ICellData {
32
34
  */
33
35
  si?: Nullable<string>;
34
36
  }
37
+ export interface ICellMarksStyle {
38
+ color: string;
39
+ size: number;
40
+ }
41
+ export interface ICellMarks {
42
+ tl?: ICellMarksStyle;
43
+ tr?: ICellMarksStyle;
44
+ bl?: ICellMarksStyle;
45
+ br?: ICellMarksStyle;
46
+ }
35
47
  export interface ICellDataForSheetInterceptor extends ICellData {
36
48
  interceptorStyle?: Nullable<IStyleData>;
37
49
  isInArrayFormulaRange?: Nullable<boolean>;
50
+ dataValidation?: Nullable<ICellValidationData>;
51
+ markers?: ICellMarks;
52
+ customRender?: Nullable<ICellCustomRender[]>;
53
+ interceptorAutoHeight?: number;
38
54
  }
39
55
  export declare function isICellData(value: any): value is ICellData;
40
56
  export declare function getCellValueType(cell: ICellData): CellValueType | null | undefined;
@@ -0,0 +1,9 @@
1
+ import { IDataValidationRule } from './i-data-validation';
2
+ import { DataValidationStatus } from '../enum/data-validation-status';
3
+
4
+ export interface ICellValidationData {
5
+ ruleId: string;
6
+ validStatus: DataValidationStatus;
7
+ rule: IDataValidationRule;
8
+ validator: any;
9
+ }
@@ -0,0 +1,44 @@
1
+ import { IRange } from './i-range';
2
+ import { DataValidationRenderMode } from '../enum/data-validation-render-mode';
3
+ import { DataValidationErrorStyle } from '../enum/data-validation-error-style';
4
+ import { DataValidationImeMode } from '../enum/data-validation-ime-mode';
5
+ import { DataValidationType } from '../enum/data-validation-type';
6
+ import { DataValidationOperator } from '../enum/data-validation-operator';
7
+
8
+ export interface IDataValidationRuleBase {
9
+ type: DataValidationType;
10
+ allowBlank?: boolean;
11
+ formula1?: string;
12
+ formula2?: string;
13
+ operator?: DataValidationOperator;
14
+ }
15
+ export interface IDataValidationRuleOptions {
16
+ error?: string;
17
+ errorStyle?: DataValidationErrorStyle;
18
+ errorTitle?: string;
19
+ imeMode?: DataValidationImeMode;
20
+ prompt?: string;
21
+ promptTitle?: string;
22
+ showDropDown?: boolean;
23
+ showErrorMessage?: boolean;
24
+ showInputMessage?: boolean;
25
+ /**
26
+ * cell render mode of data validation
27
+ */
28
+ renderMode?: DataValidationRenderMode;
29
+ }
30
+ export interface IDataValidationRule extends IDataValidationRuleBase, IDataValidationRuleOptions {
31
+ uid: string;
32
+ /**
33
+ * @debt should using specific type cover sheet、doc、slide range type
34
+ */
35
+ ranges: any;
36
+ }
37
+ export interface ISheetDataValidationRule extends IDataValidationRule {
38
+ ranges: IRange[];
39
+ }
40
+ export interface IDataValidationRuleInfo {
41
+ rule: IDataValidationRule;
42
+ unitId: string;
43
+ subUnitId: string;
44
+ }