313 lines
8.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { newVarInputVal } from "js/composer/varInputValManager";
const SAVE_DIALOG_PROPERTIES = {
component: "CheckGroup",
icon: "settings",
label: "选项",
width: 12,
options: [
{ label: "显示隐藏文件", value: "showHiddenFiles" },
{ label: "允许创建文件夹Mac", value: "createDirectory" },
{
label: "将.App作为目录Mac",
value: "treatPackageAsDirectory",
},
{
label: "显示覆盖确认Linux",
value: "showOverwriteConfirmation",
},
{ label: "不添加到最近Win", value: "dontAddToRecent" },
],
};
const OPEN_DIALOG_PROPERTIES = {
...SAVE_DIALOG_PROPERTIES,
options: [
{ label: "选择文件", value: "openFile" },
{ label: "选择文件夹", value: "openDirectory" },
{ label: "允许多选", value: "multiSelections" },
{ label: "显示隐藏文件", value: "showHiddenFiles" },
{ label: "提示新建路径Win", value: "promptToCreate" },
{ label: "不添加到最近Win", value: "dontAddToRecent" },
{ label: "允许创建文件夹Mac", value: "createDirectory" },
{ label: "不解析符号链接Mac", value: "noResolveAliases" },
{
label: "将.App作为目录Mac",
value: "treatPackageAsDirectory",
},
],
};
const DIALOG_CONFIG = {
options: {
title: {
label: "标题",
component: "VariableInput",
icon: "title",
width: 6,
},
defaultPath: {
label: "默认路径",
component: "VariableInput",
icon: "folder",
width: 6,
},
buttonLabel: {
label: "按钮文本",
component: "VariableInput",
icon: "text_fields",
width: 6,
},
message: {
label: "提示信息",
component: "VariableInput",
icon: "info",
width: 6,
},
filters: {
topLabel: "过滤器",
component: "ArrayEditor",
icon: "filter_list",
width: 12,
defaultRowValue: [newVarInputVal("str"), newVarInputVal("var", "")],
columns: {
name: {
label: "文件类型",
noIcon: true,
width: 4,
},
extensions: {
label: "扩展名",
noIcon: true,
width: 7,
disableToggleType: true,
options: {
items: ["*", "jpg", "png", "gif", "txt", "json", "exe"],
multiSelect: true,
},
},
},
},
},
defaultValue: {
title: newVarInputVal("str", "请选择"),
defaultPath: newVarInputVal("str"),
buttonLabel: newVarInputVal("str", "选择"),
message: newVarInputVal("str", "请选择"),
filters: [
{
name: newVarInputVal("str", "file"),
extensions: newVarInputVal("var", '["*"]'),
},
],
properties: ["openFile", "showHiddenFiles"],
},
};
export const uiCommands = {
label: "用户交互",
icon: "web",
defaultOpened: false,
commands: [
{
value: "quickcommand.showButtonBox",
label: "按钮组",
isAsync: true,
outputVariable: "{id,text}",
saveOutput: true,
width: 12,
config: [
{
label: "按钮",
component: "ArrayEditor",
defaultValue: [
newVarInputVal("str", "是"),
newVarInputVal("str", "否"),
],
defaultRowValue: newVarInputVal("str"),
},
],
},
{
value: "quickcommand.showInputBox",
label: "输入框",
isAsync: true,
outputVariable: "[inputValue1]",
saveOutput: true,
width: 12,
config: [
{
label: "输入框",
component: "ArrayEditor",
width: 12,
columns: {
label: {
label: "标签",
},
value: {
label: "默认值",
},
},
defaultValue: [
{
label: newVarInputVal("str", "请输入"),
value: newVarInputVal("str"),
},
],
},
{
label: "标题",
component: "VariableInput",
defaultValue: newVarInputVal("str"),
width: 12,
},
],
},
{
value: "quickcommand.showSelectList",
label: "选择列表",
desc: "显示一个支持搜索的选项列表,可以动态更新选项",
component: "SelectListEditor",
isAsync: true,
},
{
value: "quickcommand.showTextArea",
label: "文本框",
desc: "显示一个文本框,可以输入多行文本",
isAsync: true,
outputVariable: "textareaValue",
saveOutput: true,
config: [
{
label: "文本框占位符",
component: "VariableInput",
defaultValue: newVarInputVal("str", "请输入"),
width: 6,
},
{
label: "文本框默认值",
component: "VariableInput",
defaultValue: newVarInputVal("str"),
width: 6,
},
],
},
{
value: "quickcommand.showMessageBox",
label: "消息提示",
desc: "显示一个自动消失的提示框",
isAsync: true,
config: [
{
label: "提示内容",
component: "VariableInput",
icon: "info",
defaultValue: newVarInputVal("str", "这是一条提示消息"),
width: 12,
},
{
label: "图标类型",
component: "q-select",
defaultValue: "success",
icon: "lightbulb",
width: 6,
options: [
{ label: "成功", value: "success" },
{ label: "错误", value: "error" },
{ label: "警告", value: "warning" },
{ label: "信息", value: "info" },
],
},
{
label: "显示时间(ms)",
component: "NumberInput",
min: 0,
step: 100,
width: 6,
placeholder: "0为手动关闭留空按文本长度调整",
},
],
},
{
value: "quickcommand.showConfirmBox",
label: "确认框",
desc: "显示一个确认框,返回是否点击了确认",
isAsync: true,
outputVariable: "confirmed",
saveOutput: true,
config: [
{
label: "提示内容",
component: "VariableInput",
defaultValue: newVarInputVal("str", "确认要执行此操作吗?"),
width: 12,
},
{
label: "标题",
component: "VariableInput",
defaultValue: newVarInputVal("str", "提示"),
width: 7,
},
{
label: "支持HTML",
component: "q-toggle",
defaultValue: false,
width: 2,
},
{
label: "宽度",
component: "NumberInput",
min: 0,
step: 100,
defaultValue: 450,
width: 3,
placeholder: "对话框宽度",
},
],
},
{
value: "utools.showOpenDialog",
label: "文件选择框",
desc: "显示一个文件选择框,返回选择的文件路径",
outputVariable: "filePaths",
saveOutput: true,
subCommands: [
{
value: "utools.showOpenDialog",
label: "打开文件对话框",
desc: "打开文件对话框",
icon: "folder_open",
config: [
{
label: "选项",
component: "OptionEditor",
defaultValue: DIALOG_CONFIG.defaultValue,
options: {
...DIALOG_CONFIG.options,
properties: OPEN_DIALOG_PROPERTIES,
},
},
],
},
{
value: "utools.showSaveDialog",
label: "保存文件对话框",
desc: "保存文件对话框",
icon: "save",
config: [
{
label: "选项",
component: "OptionEditor",
defaultValue: DIALOG_CONFIG.defaultValue,
options: {
...DIALOG_CONFIG.options,
properties: SAVE_DIALOG_PROPERTIES,
},
},
],
},
],
},
],
};