chore: cleanup code

This commit is contained in:
Wenzhao Hu
2023-11-08 23:12:43 +08:00
parent a185f5537d
commit 777d6c6caf
7 changed files with 103 additions and 95 deletions
+3
View File
@@ -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)));
}
}
+1
View File
@@ -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';
+6 -5
View File
@@ -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;
}
+1
View File
@@ -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;
}