@univerjs/sheets-ui
Version:
Spreadsheet UI layer for Univer Sheets.
53 lines (52 loc) • 2.52 kB
TypeScript
/**
* Copyright 2023-present DreamNum Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { ICommandInfo, IDisposable, IRange } from '@univerjs/core';
import { Disposable, ICommandService } from '@univerjs/core';
export type RepeatableCommandHandler<T = any> = (selections: IRange[], params?: T) => T | undefined;
export declare enum RepeatLastActionPermission {
None = "none",
Editable = "editable",
CellStyle = "cellStyle",
CellValue = "cellValue",
RowStyle = "rowStyle",
ColumnStyle = "columnStyle"
}
export declare const SHEETS_BASIC_REPEATABLE_COMMANDS: string[];
export interface IRepeatLastActionService {
setAction(commandInfo: ICommandInfo | null): void;
getAction(): ICommandInfo | null;
getRepeatableCommands(): Set<string>;
getActionPermission(): RepeatLastActionPermission | RepeatLastActionPermission[];
registerRepeatableCommand(commandId: string, handler: RepeatableCommandHandler, permissionType?: RepeatLastActionPermission): IDisposable;
runWithoutRecording(selections: IRange[]): Promise<boolean>;
}
export declare const IRepeatLastActionService: import("@wendellhu/redi").IdentifierDecorator<IRepeatLastActionService>;
export declare class RepeatLastActionService extends Disposable implements IRepeatLastActionService {
private readonly _commandService;
private _action;
private _recordingDepth;
private _repeatableCommands;
private _customCommandHandlers;
private _permissionCheckMap;
constructor(_commandService: ICommandService);
dispose(): void;
setAction(commandInfo: ICommandInfo | null): void;
getAction(): ICommandInfo | null;
getRepeatableCommands(): Set<string>;
getActionPermission(): RepeatLastActionPermission | RepeatLastActionPermission[];
registerRepeatableCommand(commandId: string, handler: RepeatableCommandHandler, permissionType?: RepeatLastActionPermission): IDisposable;
runWithoutRecording(selections: IRange[]): Promise<boolean>;
}