|
|
@ -1,105 +1,226 @@
|
|
|
|
|
|
|
|
// 导入 ConfigLocation 和 FileSystemConfig 类型,这些类型定义了文件系统配置的相关属性
|
|
|
|
import type { ConfigLocation, FileSystemConfig } from 'common/fileSystemConfig';
|
|
|
|
import type { ConfigLocation, FileSystemConfig } from 'common/fileSystemConfig';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一系列用于表示不同操作类型的常量
|
|
|
|
|
|
|
|
*/
|
|
|
|
export enum ActionType {
|
|
|
|
export enum ActionType {
|
|
|
|
// Startscreen
|
|
|
|
// Startscreen
|
|
|
|
|
|
|
|
// 打开开始屏幕的操作
|
|
|
|
OPEN_STARTSCREEN = 'OPEN_STARTSCREEN',
|
|
|
|
OPEN_STARTSCREEN = 'OPEN_STARTSCREEN',
|
|
|
|
// NewConfig
|
|
|
|
// NewConfig
|
|
|
|
|
|
|
|
// 打开新配置界面的操作
|
|
|
|
OPEN_NEWCONFIG = 'OPEN_NEWCONFIG',
|
|
|
|
OPEN_NEWCONFIG = 'OPEN_NEWCONFIG',
|
|
|
|
|
|
|
|
// 设置新配置名称的操作
|
|
|
|
NEWCONFIG_SETNAME = 'NEWCONFIG_SETNAME',
|
|
|
|
NEWCONFIG_SETNAME = 'NEWCONFIG_SETNAME',
|
|
|
|
|
|
|
|
// 设置新配置位置的操作
|
|
|
|
NEWCONFIG_SETLOCATION = 'NEWCONFIG_SETLOCATION',
|
|
|
|
NEWCONFIG_SETLOCATION = 'NEWCONFIG_SETLOCATION',
|
|
|
|
// ConfigEditor
|
|
|
|
// ConfigEditor
|
|
|
|
|
|
|
|
// 打开配置编辑器的操作
|
|
|
|
OPEN_CONFIGEDITOR = 'OPEN_CONFIGEDITOR',
|
|
|
|
OPEN_CONFIGEDITOR = 'OPEN_CONFIGEDITOR',
|
|
|
|
|
|
|
|
// 打开配置定位器的操作
|
|
|
|
OPEN_CONFIGLOCATOR = 'OPEN_CONFIGLOCATOR',
|
|
|
|
OPEN_CONFIGLOCATOR = 'OPEN_CONFIGLOCATOR',
|
|
|
|
|
|
|
|
// 在配置编辑器中设置新配置的操作
|
|
|
|
CONFIGEDITOR_SETNEWCONFIG = 'CONFIGEDITOR_SETNEWCONFIG',
|
|
|
|
CONFIGEDITOR_SETNEWCONFIG = 'CONFIGEDITOR_SETNEWCONFIG',
|
|
|
|
|
|
|
|
// 在配置编辑器中设置状态消息的操作
|
|
|
|
CONFIGEDITOR_SETSTATUSMESSAGE = 'CONFIGEDITOR_SETSTATUSMESSAGE',
|
|
|
|
CONFIGEDITOR_SETSTATUSMESSAGE = 'CONFIGEDITOR_SETSTATUSMESSAGE',
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface ActionTypes {
|
|
|
|
export interface ActionTypes {
|
|
|
|
// Startscreen
|
|
|
|
// Startscreen
|
|
|
|
|
|
|
|
// 打开开始屏幕的操作
|
|
|
|
OPEN_STARTSCREEN: IActionOpenStartscreen;
|
|
|
|
OPEN_STARTSCREEN: IActionOpenStartscreen;
|
|
|
|
// NewConfig
|
|
|
|
// NewConfig
|
|
|
|
|
|
|
|
// 打开新配置界面的操作
|
|
|
|
OPEN_NEWCONFIG: IActionOpenNewConfig;
|
|
|
|
OPEN_NEWCONFIG: IActionOpenNewConfig;
|
|
|
|
|
|
|
|
// 设置新配置名称的操作
|
|
|
|
NEWCONFIG_SETNAME: IActionNewConfigSetName;
|
|
|
|
NEWCONFIG_SETNAME: IActionNewConfigSetName;
|
|
|
|
|
|
|
|
// 设置新配置位置的操作
|
|
|
|
NEWCONFIG_SETLOCATION: IActionNewConfigSetLocation;
|
|
|
|
NEWCONFIG_SETLOCATION: IActionNewConfigSetLocation;
|
|
|
|
// ConfigEditor
|
|
|
|
// ConfigEditor
|
|
|
|
|
|
|
|
// 打开配置编辑器的操作
|
|
|
|
OPEN_CONFIGEDITOR: IActionOpenConfigEditor;
|
|
|
|
OPEN_CONFIGEDITOR: IActionOpenConfigEditor;
|
|
|
|
|
|
|
|
// 打开配置定位器的操作
|
|
|
|
OPEN_CONFIGLOCATOR: IActionOpenConfigLocator;
|
|
|
|
OPEN_CONFIGLOCATOR: IActionOpenConfigLocator;
|
|
|
|
|
|
|
|
// 在配置编辑器中设置新配置的操作
|
|
|
|
CONFIGEDITOR_SETNEWCONFIG: IActionConfigEditorSetNewConfig;
|
|
|
|
CONFIGEDITOR_SETNEWCONFIG: IActionConfigEditorSetNewConfig;
|
|
|
|
|
|
|
|
// 在配置编辑器中设置状态消息的操作
|
|
|
|
CONFIGEDITOR_SETSTATUSMESSAGE: IActionConfigEditorSetStatusMessage;
|
|
|
|
CONFIGEDITOR_SETSTATUSMESSAGE: IActionConfigEditorSetStatusMessage;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 定义了一个名为 `Action` 的类型别名,它表示 `ActionTypes` 接口中所有可能的操作类型
|
|
|
|
export type Action = ActionTypes[keyof ActionTypes];
|
|
|
|
export type Action = ActionTypes[keyof ActionTypes];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IAction` 的接口,它是所有操作对象的基类
|
|
|
|
|
|
|
|
* 包含一个必需的 `type` 属性,该属性表示操作的类型
|
|
|
|
|
|
|
|
*/
|
|
|
|
interface IAction {
|
|
|
|
interface IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值
|
|
|
|
type: ActionType;
|
|
|
|
type: ActionType;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Startscreen */
|
|
|
|
/* Startscreen */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionOpenStartscreen` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个可选的 `groupBy` 属性,用于表示打开开始屏幕的操作
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionOpenStartscreen extends IAction {
|
|
|
|
export interface IActionOpenStartscreen extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_STARTSCREEN
|
|
|
|
type: ActionType.OPEN_STARTSCREEN;
|
|
|
|
type: ActionType.OPEN_STARTSCREEN;
|
|
|
|
|
|
|
|
// 一个可选的属性,用于指定开始屏幕的分组方式
|
|
|
|
groupBy?: string;
|
|
|
|
groupBy?: string;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 打开开始屏幕的操作
|
|
|
|
|
|
|
|
* @param groupBy - 一个可选的字符串,用于指定开始屏幕的分组方式
|
|
|
|
|
|
|
|
* @returns 一个 IActionOpenStartscreen 对象,表示打开开始屏幕的操作
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function openStartScreen(groupBy?: string): IActionOpenStartscreen {
|
|
|
|
export function openStartScreen(groupBy?: string): IActionOpenStartscreen {
|
|
|
|
return { type: ActionType.OPEN_STARTSCREEN, groupBy };
|
|
|
|
return { type: ActionType.OPEN_STARTSCREEN, groupBy };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* NewConfig */
|
|
|
|
/* NewConfig */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionOpenNewConfig` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `name` 属性,用于表示新配置的名称
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionOpenNewConfig extends IAction {
|
|
|
|
export interface IActionOpenNewConfig extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_NEWCONFIG
|
|
|
|
type: ActionType.OPEN_NEWCONFIG;
|
|
|
|
type: ActionType.OPEN_NEWCONFIG;
|
|
|
|
|
|
|
|
// 新配置的名称,是一个字符串
|
|
|
|
name: string;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 打开新配置界面的操作
|
|
|
|
|
|
|
|
* @param name - 新配置的名称,默认为 'unnamed'
|
|
|
|
|
|
|
|
* @returns 一个 IActionOpenNewConfig 对象,表示打开新配置界面的操作
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function openNewConfig(name = 'unnamed'): IActionOpenNewConfig {
|
|
|
|
export function openNewConfig(name = 'unnamed'): IActionOpenNewConfig {
|
|
|
|
return { type: ActionType.OPEN_NEWCONFIG, name };
|
|
|
|
return { type: ActionType.OPEN_NEWCONFIG, name };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionNewConfigSetLocation` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `location` 属性,用于表示新配置的位置
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionNewConfigSetLocation extends IAction {
|
|
|
|
export interface IActionNewConfigSetLocation extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 NEWCONFIG_SETLOCATION
|
|
|
|
type: ActionType.NEWCONFIG_SETLOCATION;
|
|
|
|
type: ActionType.NEWCONFIG_SETLOCATION;
|
|
|
|
|
|
|
|
// 新配置的位置,是一个 ConfigLocation 对象
|
|
|
|
location: ConfigLocation;
|
|
|
|
location: ConfigLocation;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示设置新配置位置操作的动作对象
|
|
|
|
|
|
|
|
* @param location - 新配置的位置信息
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型和位置信息的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function newConfigSetLocation(location: ConfigLocation): IActionNewConfigSetLocation {
|
|
|
|
export function newConfigSetLocation(location: ConfigLocation): IActionNewConfigSetLocation {
|
|
|
|
return { type: ActionType.NEWCONFIG_SETLOCATION, location };
|
|
|
|
return { type: ActionType.NEWCONFIG_SETLOCATION, location };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionNewConfigSetName` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `name` 属性,用于表示新配置的名称
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionNewConfigSetName extends IAction {
|
|
|
|
export interface IActionNewConfigSetName extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 NEWCONFIG_SETNAME
|
|
|
|
type: ActionType.NEWCONFIG_SETNAME;
|
|
|
|
type: ActionType.NEWCONFIG_SETNAME;
|
|
|
|
|
|
|
|
// 新配置的名称,是一个字符串
|
|
|
|
name: string;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示设置新配置名称操作的动作对象
|
|
|
|
|
|
|
|
* @param name - 新配置的名称
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型和名称的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function newConfigSetName(name: string): IActionNewConfigSetName {
|
|
|
|
export function newConfigSetName(name: string): IActionNewConfigSetName {
|
|
|
|
return { type: ActionType.NEWCONFIG_SETNAME, name };
|
|
|
|
return { type: ActionType.NEWCONFIG_SETNAME, name };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ConfigEditor */
|
|
|
|
/* ConfigEditor */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionOpenConfigEditor` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `config` 属性,用于表示打开的配置编辑器的配置
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionOpenConfigEditor extends IAction {
|
|
|
|
export interface IActionOpenConfigEditor extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_CONFIGEDITOR
|
|
|
|
type: ActionType.OPEN_CONFIGEDITOR;
|
|
|
|
type: ActionType.OPEN_CONFIGEDITOR;
|
|
|
|
|
|
|
|
// 配置编辑器的配置,是一个 FileSystemConfig 对象
|
|
|
|
config: FileSystemConfig;
|
|
|
|
config: FileSystemConfig;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示打开配置编辑器操作的动作对象
|
|
|
|
|
|
|
|
* @param config - 要打开的配置编辑器的配置
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型和配置的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function openConfigEditor(config: FileSystemConfig): IActionOpenConfigEditor {
|
|
|
|
export function openConfigEditor(config: FileSystemConfig): IActionOpenConfigEditor {
|
|
|
|
return { type: ActionType.OPEN_CONFIGEDITOR, config };
|
|
|
|
return { type: ActionType.OPEN_CONFIGEDITOR, config };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionOpenConfigLocator` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了两个必需的属性:`configs` 和 `name`
|
|
|
|
|
|
|
|
* 该接口表示打开配置定位器的操作,其中 `configs` 是一个配置文件系统配置对象的数组,`name` 是要搜索的配置名称
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionOpenConfigLocator extends IAction {
|
|
|
|
export interface IActionOpenConfigLocator extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_CONFIGLOCATOR
|
|
|
|
type: ActionType.OPEN_CONFIGLOCATOR;
|
|
|
|
type: ActionType.OPEN_CONFIGLOCATOR;
|
|
|
|
|
|
|
|
// 一个 FileSystemConfig 对象的数组,表示要在配置定位器中显示的配置
|
|
|
|
configs: FileSystemConfig[];
|
|
|
|
configs: FileSystemConfig[];
|
|
|
|
|
|
|
|
// 一个字符串,表示要在配置定位器中搜索的配置名称
|
|
|
|
name: string;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示打开配置定位器操作的动作对象
|
|
|
|
|
|
|
|
* @param configs - 要在配置定位器中显示的配置文件系统配置对象的数组
|
|
|
|
|
|
|
|
* @param name - 要在配置定位器中搜索的配置名称
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型、配置和名称的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function openConfigLocator(configs: FileSystemConfig[], name: string): IActionOpenConfigLocator {
|
|
|
|
export function openConfigLocator(configs: FileSystemConfig[], name: string): IActionOpenConfigLocator {
|
|
|
|
return { type: ActionType.OPEN_CONFIGLOCATOR, configs, name };
|
|
|
|
return { type: ActionType.OPEN_CONFIGLOCATOR, configs, name };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionConfigEditorSetNewConfig` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `config` 属性,用于表示打开的配置编辑器的配置
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionConfigEditorSetNewConfig extends IAction {
|
|
|
|
export interface IActionConfigEditorSetNewConfig extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 CONFIGEDITOR_SETNEWCONFIG
|
|
|
|
type: ActionType.CONFIGEDITOR_SETNEWCONFIG;
|
|
|
|
type: ActionType.CONFIGEDITOR_SETNEWCONFIG;
|
|
|
|
|
|
|
|
// 配置编辑器的配置,是一个 FileSystemConfig 对象
|
|
|
|
config: FileSystemConfig;
|
|
|
|
config: FileSystemConfig;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示设置新配置操作的动作对象
|
|
|
|
|
|
|
|
* @param config - 要设置的新配置
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型和配置的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function configEditorSetNewConfig(config: FileSystemConfig): IActionConfigEditorSetNewConfig {
|
|
|
|
export function configEditorSetNewConfig(config: FileSystemConfig): IActionConfigEditorSetNewConfig {
|
|
|
|
return { type: ActionType.CONFIGEDITOR_SETNEWCONFIG, config };
|
|
|
|
return { type: ActionType.CONFIGEDITOR_SETNEWCONFIG, config };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定义了一个名为 `IActionConfigEditorSetStatusMessage` 的接口,它继承自 `IAction` 接口
|
|
|
|
|
|
|
|
* 并添加了一个必需的 `type` 属性和一个可选的 `message` 属性
|
|
|
|
|
|
|
|
* 该接口表示设置配置编辑器状态消息的操作,其中 `type` 是操作类型,`message` 是要设置的状态消息
|
|
|
|
|
|
|
|
*/
|
|
|
|
export interface IActionConfigEditorSetStatusMessage extends IAction {
|
|
|
|
export interface IActionConfigEditorSetStatusMessage extends IAction {
|
|
|
|
|
|
|
|
// 操作的类型,是 ActionType 枚举的一个值,这里是 CONFIGEDITOR_SETSTATUSMESSAGE
|
|
|
|
type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE,
|
|
|
|
type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE,
|
|
|
|
|
|
|
|
// 一个可选的字符串,表示要设置的状态消息
|
|
|
|
message?: string;
|
|
|
|
message?: string;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 创建一个表示设置配置编辑器状态消息操作的动作对象
|
|
|
|
|
|
|
|
* @param message - 要设置的状态消息,可选参数,默认为 undefined
|
|
|
|
|
|
|
|
* @returns 一个包含操作类型和状态消息的动作对象
|
|
|
|
|
|
|
|
*/
|
|
|
|
export function configEditorSetStatusMessage(message?: string): IActionConfigEditorSetStatusMessage {
|
|
|
|
export function configEditorSetStatusMessage(message?: string): IActionConfigEditorSetStatusMessage {
|
|
|
|
return { type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE, message };
|
|
|
|
return { type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE, message };
|
|
|
|
}
|
|
|
|
}
|
|
|
|