mirror of
https://github.com/dream-num/univer.git
synced 2026-10-29 18:06:28 +08:00
chore: cleanup code
This commit is contained in:
@@ -153,10 +153,13 @@ export const enum CommandType {
|
||||
* `COMMAND` 负责根据特定的业务逻辑创建、编排和执行 `MUTATION` 或 `OPERATION`,例如一个 **删除行 `COMMAND`** 会生成一个 **删除行 `MUTATION`** 和用于 undo 的一个 **插入行 `MUTATION`** 及一个 **设置单元格内容 `MUTATION`**
|
||||
* `COMMAND` 是业务逻辑的主要承载者,如果对于一个 _用户操作行为_ 需要根据应用的状态来触发不同的 _底层行为_ —— 例如 _用户点击加粗文字按钮_ 时 需要根据当前选区范围来决定 _加粗操作的生效范围_ —— 相应的判断应该由 `COMMAND` 完成
|
||||
* 可以派发其他 `COMMAND` `OPERATION` `MUTATION`
|
||||
* 允许异步执行
|
||||
* `MUTATION` 是对落盘数据所做的变更,涉及协同编辑的冲突处理,例如插入行列,修改单元格内容,修改筛选范围等等操作
|
||||
* 不可以再派发其他任何命令
|
||||
* **必须同步执行**
|
||||
* `OPERATION` 是对不落盘数据(或称应用状态)所做的变更,不涉及冲突处理,例如修改滚动位置、修改侧边栏状态等等
|
||||
* 不可以再派发其他任何命令
|
||||
* **必须同步执行**
|
||||
|
||||
### 协同编辑
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// TODO@wzhudev: not all commands / mutations / operations depend on this interface
|
||||
export interface ISheetCommandSharedParams {
|
||||
workbookId: string;
|
||||
worksheetId: string;
|
||||
}
|
||||
@@ -116,107 +116,98 @@ export class BasicWorksheetController extends Disposable implements IDisposable
|
||||
super();
|
||||
|
||||
[
|
||||
AddWorksheetMergeCommand,
|
||||
AddWorksheetMergeMutation,
|
||||
AddWorksheetMergeAllCommand,
|
||||
AddWorksheetMergeVerticalCommand,
|
||||
AddWorksheetMergeCommand,
|
||||
AddWorksheetMergeHorizontalCommand,
|
||||
RemoveWorksheetMergeCommand,
|
||||
RemoveWorksheetMergeMutation,
|
||||
AddWorksheetMergeMutation,
|
||||
AddWorksheetMergeVerticalCommand,
|
||||
ClearSelectionAllCommand,
|
||||
ClearSelectionContentCommand,
|
||||
ClearSelectionFormatCommand,
|
||||
ClearSelectionAllCommand,
|
||||
SetRangeValuesMutation,
|
||||
SetWorksheetNameCommand,
|
||||
SetWorksheetNameMutation,
|
||||
SetWorksheetActivateCommand,
|
||||
SetWorksheetActivateMutation,
|
||||
SetStyleCommand,
|
||||
SetRangeStyleMutation,
|
||||
SetWorksheetHideCommand,
|
||||
SetWorksheetHideMutation,
|
||||
|
||||
// #region row col commands & mutations
|
||||
|
||||
InsertRowCommand,
|
||||
InsertRowBeforeCommand,
|
||||
InsertRowAfterCommand,
|
||||
InsertRowMutation,
|
||||
RemoveRowCommand,
|
||||
RemoveRowMutation,
|
||||
InsertColCommand,
|
||||
InsertColBeforeCommand,
|
||||
InsertColAfterCommand,
|
||||
InsertColMutation,
|
||||
RemoveColCommand,
|
||||
RemoveColMutation,
|
||||
MoveRowsCommand,
|
||||
MoveColsCommand,
|
||||
MoveRowsMutation,
|
||||
MoveColsMutation,
|
||||
|
||||
SetColWidthCommand,
|
||||
SetWorksheetColWidthMutation,
|
||||
SetWorksheetRowIsAutoHeightCommand,
|
||||
SetRowHeightCommand,
|
||||
SetWorksheetRowHeightMutation,
|
||||
SetWorksheetRowIsAutoHeightMutation,
|
||||
SetWorksheetRowAutoHeightMutation,
|
||||
SetRowHiddenCommand,
|
||||
SetRowHiddenMutation,
|
||||
SetColHiddenCommand,
|
||||
SetColHiddenMutation,
|
||||
SetSelectedColsVisibleCommand,
|
||||
SetColVisibleMutation,
|
||||
SetSelectedRowsVisibleCommand,
|
||||
SetSpecificRowsVisibleCommand,
|
||||
SetSpecificColsVisibleCommand,
|
||||
SetRowVisibleMutation,
|
||||
SetWorksheetOrderCommand,
|
||||
SetWorksheetOrderMutation,
|
||||
|
||||
DeltaRowHeightCommand,
|
||||
DeltaColumnWidthCommand,
|
||||
|
||||
// #endregion
|
||||
|
||||
SetRangeValuesCommand,
|
||||
TrimWhitespaceCommand,
|
||||
InsertRangeMoveRightCommand,
|
||||
InsertRangeMoveDownCommand,
|
||||
InsertRangeMutation,
|
||||
CopySheetCommand,
|
||||
DeleteRangeMoveLeftCommand,
|
||||
DeleteRangeMoveUpCommand,
|
||||
DeleteRangeMutation,
|
||||
SetRangeFormattedValueCommand,
|
||||
SetRangeFormattedValueMutation,
|
||||
|
||||
SetTextColorCommand,
|
||||
SetBackgroundColorCommand,
|
||||
SetTextWrapCommand,
|
||||
SetTextRotationCommand,
|
||||
ResetTextColorCommand,
|
||||
ResetBackgroundColorCommand,
|
||||
SetHorizontalTextAlignCommand,
|
||||
SetVerticalTextAlignCommand,
|
||||
SetBorderCommand,
|
||||
SetBorderColorCommand,
|
||||
SetBorderStyleCommand,
|
||||
SetBorderPositionCommand,
|
||||
SetBorderStylesMutation,
|
||||
CopySheetCommand,
|
||||
SetTabColorCommand,
|
||||
SetTabColorMutation,
|
||||
SetWorksheetShowCommand,
|
||||
RemoveSheetCommand,
|
||||
RemoveSheetMutation,
|
||||
DeltaColumnWidthCommand,
|
||||
DeltaRowHeightCommand,
|
||||
InsertColAfterCommand,
|
||||
InsertColBeforeCommand,
|
||||
InsertColCommand,
|
||||
InsertColMutation,
|
||||
InsertRangeMoveDownCommand,
|
||||
InsertRangeMoveRightCommand,
|
||||
InsertRangeMutation,
|
||||
InsertRowAfterCommand,
|
||||
InsertRowBeforeCommand,
|
||||
InsertRowCommand,
|
||||
InsertRowMutation,
|
||||
InsertSheetCommand,
|
||||
InsertSheetMutation,
|
||||
SetFrozenCommand,
|
||||
SetFrozenMutation,
|
||||
SetFrozenCancelCommand,
|
||||
MoveColsCommand,
|
||||
MoveColsMutation,
|
||||
MoveRangeCommand,
|
||||
MoveRangeMutation,
|
||||
MoveRowsCommand,
|
||||
MoveRowsMutation,
|
||||
RemoveColCommand,
|
||||
RemoveColMutation,
|
||||
RemoveRowCommand,
|
||||
RemoveRowMutation,
|
||||
RemoveSheetCommand,
|
||||
RemoveSheetMutation,
|
||||
RemoveWorksheetMergeCommand,
|
||||
RemoveWorksheetMergeMutation,
|
||||
ResetBackgroundColorCommand,
|
||||
ResetTextColorCommand,
|
||||
SetBackgroundColorCommand,
|
||||
SetBorderColorCommand,
|
||||
SetBorderCommand,
|
||||
SetBorderPositionCommand,
|
||||
SetBorderStyleCommand,
|
||||
SetBorderStylesMutation,
|
||||
SetColHiddenCommand,
|
||||
SetColHiddenMutation,
|
||||
SetColVisibleMutation,
|
||||
SetColWidthCommand,
|
||||
SetFrozenCancelCommand,
|
||||
SetFrozenCommand,
|
||||
SetFrozenMutation,
|
||||
SetHorizontalTextAlignCommand,
|
||||
SetRangeFormattedValueCommand,
|
||||
SetRangeFormattedValueMutation,
|
||||
SetRangeStyleMutation,
|
||||
SetRangeValuesCommand,
|
||||
SetRangeValuesMutation,
|
||||
SetRowHeightCommand,
|
||||
SetRowHiddenCommand,
|
||||
SetRowHiddenMutation,
|
||||
SetRowVisibleMutation,
|
||||
SetSelectedColsVisibleCommand,
|
||||
SetSelectedRowsVisibleCommand,
|
||||
SetSpecificColsVisibleCommand,
|
||||
SetSpecificRowsVisibleCommand,
|
||||
SetStyleCommand,
|
||||
SetTabColorCommand,
|
||||
SetTabColorMutation,
|
||||
SetTextColorCommand,
|
||||
SetTextRotationCommand,
|
||||
SetTextWrapCommand,
|
||||
SetVerticalTextAlignCommand,
|
||||
SetWorksheetActivateCommand,
|
||||
SetWorksheetActivateMutation,
|
||||
SetWorksheetColWidthMutation,
|
||||
SetWorksheetHideCommand,
|
||||
SetWorksheetHideMutation,
|
||||
SetWorksheetNameCommand,
|
||||
SetWorksheetNameMutation,
|
||||
SetWorksheetOrderCommand,
|
||||
SetWorksheetOrderMutation,
|
||||
SetWorksheetRowAutoHeightMutation,
|
||||
SetWorksheetRowHeightMutation,
|
||||
SetWorksheetRowIsAutoHeightCommand,
|
||||
SetWorksheetRowIsAutoHeightMutation,
|
||||
SetWorksheetShowCommand,
|
||||
TrimWhitespaceCommand,
|
||||
].forEach((command) => this.disposeWithMe(this._commandService.registerCommand(command)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,4 +177,5 @@ export {
|
||||
SetWorksheetRowIsAutoHeightMutation,
|
||||
} from './commands/mutations/set-worksheet-row-height.mutation';
|
||||
export { type ISetSelectionsOperationParams, SetSelectionsOperation } from './commands/operations/selection.operation';
|
||||
export { type ISheetCommandSharedParams } from './commands/utils/interface';
|
||||
export { RefRangeService } from './services/ref-range.service';
|
||||
|
||||
@@ -283,22 +283,23 @@ export class Tools {
|
||||
return diffValue(one, tow);
|
||||
}
|
||||
|
||||
static deepClone(value: any): any {
|
||||
static deepClone<T = unknown>(value: T): T {
|
||||
if (!this.isDefine(value)) {
|
||||
return value;
|
||||
}
|
||||
if (this.isRegExp(value)) {
|
||||
return new RegExp(value);
|
||||
return new RegExp(value) as T;
|
||||
}
|
||||
// @ts-ignore
|
||||
if (this.isDate(value)) {
|
||||
return new Date(value);
|
||||
return new Date(value) as T;
|
||||
}
|
||||
if (this.isArray(value)) {
|
||||
const clone: any[] = [];
|
||||
value.forEach((item, index) => {
|
||||
clone[index] = Tools.deepClone(item);
|
||||
});
|
||||
return clone;
|
||||
return clone as T;
|
||||
}
|
||||
if (this.isObject(value)) {
|
||||
const clone: IKeyValue = {};
|
||||
@@ -307,7 +308,7 @@ export class Tools {
|
||||
clone[key] = Tools.deepClone(item);
|
||||
});
|
||||
Object.setPrototypeOf(clone, Object.getPrototypeOf(value));
|
||||
return clone;
|
||||
return clone as T;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ export {
|
||||
type IExecutionOptions,
|
||||
type IMultiCommand,
|
||||
type IMutation,
|
||||
type IMutationInfo,
|
||||
type IOperation,
|
||||
sequenceExecute,
|
||||
} from './services/command/command.service';
|
||||
|
||||
@@ -80,6 +80,12 @@ export interface ICommandInfo<T extends object = object> {
|
||||
params?: T;
|
||||
}
|
||||
|
||||
export interface IMutationInfo<T extends object = object> {
|
||||
id: string;
|
||||
type?: CommandType.MUTATION;
|
||||
params: T;
|
||||
}
|
||||
|
||||
export interface IExecutionOptions {
|
||||
local?: boolean;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user