菜单组件和命令结果组件异步加载

This commit is contained in:
fofolee 2024-01-23 01:03:15 +08:00
parent 5f00c125d9
commit 6ecf292581
3 changed files with 439 additions and 435 deletions

View File

@ -231,7 +231,7 @@ import CommandSideBar from "components/CommandSideBar";
import CommandRunResult from "components/CommandRunResult"; import CommandRunResult from "components/CommandRunResult";
import QuickAction from "components/popup/QuickAction"; import QuickAction from "components/popup/QuickAction";
import KeyRecorder from "components/popup/KeyRecorder"; import KeyRecorder from "components/popup/KeyRecorder";
// Monaco // Performance Scripting > 500ms
const MonacoEditor = defineAsyncComponent(() => const MonacoEditor = defineAsyncComponent(() =>
import("components/MonacoEditor") import("components/MonacoEditor")
); );

View File

@ -1,437 +1,428 @@
<template> <template>
<div class="flex"> <q-menu
<q-btn stretch color="primary" flat size="xs" max-height="480px"
><q-spinner-bars color="primary" size="1.5em" /> max-width="300px"
<q-menu transition-show="jump-up"
max-height="480px" transition-hide="jump-down"
max-width="300px" >
transition-show="jump-up" <!-- 用户信息 -->
transition-hide="jump-down" <UserInfo
> ref="user"
<!-- 用户信息 --> :allQuickCommandsLength="allQuickCommandsLength"
<UserInfo :allFeaturesLength="allFeaturesLength"
ref="user" />
:allQuickCommandsLength="allQuickCommandsLength" <!-- 菜单 -->
:allFeaturesLength="allFeaturesLength" <q-list>
/> <!-- 实用功能 -->
<!-- 菜单 --> <q-item clickable>
<q-list> <q-item-section side>
<!-- 实用功能 --> <q-icon name="keyboard_arrow_left" />
<q-item clickable> </q-item-section>
<q-item-section side> <q-item-section>实用功能</q-item-section>
<q-icon name="keyboard_arrow_left" /> <q-menu anchor="top end" self="top start">
</q-item-section> <q-list>
<q-item-section>实用功能</q-item-section> <q-item>
<q-menu anchor="top end" self="top start"> <q-item-section side>
<q-list> <q-icon name="folder_special" />
<q-item> </q-item-section>
<q-item-section side> <q-input
<q-icon name="folder_special" /> dense
</q-item-section> prefix="快速收藏文件至"
<q-input suffix="标签"
dense outlined
prefix="快速收藏文件至" input-class="text-center"
suffix="标签" style="width: 280px"
outlined autofocus
input-class="text-center" v-model="$root.profile.quickFileTag"
style="width: 280px" @blur="
autofocus $root.profile.quickFileTag ||
v-model="$root.profile.quickFileTag" ($root.profile.quickFileTag = '文件')
@blur="$root.profile.quickFileTag || ($root.profile.quickFileTag = '文件')" "
type="text" type="text"
> >
<template v-slot:append> <template v-slot:append>
<q-toggle <q-toggle
@update:model-value=" @update:model-value="
(val, e) => toggleFeature('favFile', val) (val, e) => toggleFeature('favFile', val)
" "
v-model="$root.profile.quickFileEnable" v-model="$root.profile.quickFileEnable"
checked-icon="check" checked-icon="check"
color="primary" color="primary"
/> />
</template> </template>
<q-tooltip <q-tooltip
>启用后选中文件可以通过超级面板快速将文件收藏到{{ >启用后选中文件可以通过超级面板快速将文件收藏到{{
$root.profile.quickFileTag $root.profile.quickFileTag
}}标签 }}标签
</q-tooltip> </q-tooltip>
</q-input> </q-input>
</q-item> </q-item>
<q-item> <q-item>
<q-item-section side> <q-item-section side>
<q-icon name="bookmarks" /> <q-icon name="bookmarks" />
</q-item-section> </q-item-section>
<q-input <q-input
dense dense
prefix="快速收藏网址至" prefix="快速收藏网址至"
suffix="标签" suffix="标签"
outlined outlined
input-class="text-center" input-class="text-center"
style="width: 280px" style="width: 280px"
v-model="$root.profile.quickUrlTag" v-model="$root.profile.quickUrlTag"
@blur="$root.profile.quickUrlTag || ($root.profile.quickUrlTag = '网址')" @blur="
$root.profile.quickUrlTag ||
type="text" ($root.profile.quickUrlTag = '网址')
> "
<template v-slot:append> type="text"
<q-toggle >
@update:model-value=" <template v-slot:append>
(val, e) => toggleFeature('favUrl', val) <q-toggle
" @update:model-value="
v-model="$root.profile.quickUrlEnable" (val, e) => toggleFeature('favUrl', val)
checked-icon="check" "
color="primary" v-model="$root.profile.quickUrlEnable"
/> checked-icon="check"
</template> color="primary"
<q-tooltip />
>启用后在浏览器界面可以通过超级面板快速将网址收藏到{{ </template>
$root.profile.quickUrlTag <q-tooltip
}}标签 >启用后在浏览器界面可以通过超级面板快速将网址收藏到{{
</q-tooltip> $root.profile.quickUrlTag
</q-input> }}标签
</q-item> </q-tooltip>
<q-item> </q-input>
<q-item-section side> </q-item>
<q-icon name="drive_file_rename_outline" /> <q-item>
</q-item-section> <q-item-section side>
<q-input <q-icon name="drive_file_rename_outline" />
dense </q-item-section>
prefix="新建插件别名至" <q-input
suffix="标签" dense
outlined prefix="新建插件别名至"
input-class="text-center" suffix="标签"
style="width: 280px" outlined
autofocus input-class="text-center"
v-model="$root.profile.pluNickNameTag" style="width: 280px"
type="text" autofocus
> v-model="$root.profile.pluNickNameTag"
<template v-slot:append> type="text"
<q-toggle >
@update:model-value=" <template v-slot:append>
(val, e) => toggleFeature('pluNickName', val) <q-toggle
" @update:model-value="
v-model="$root.profile.pluNickNameEnable" (val, e) => toggleFeature('pluNickName', val)
checked-icon="check" "
color="primary" v-model="$root.profile.pluNickNameEnable"
/> checked-icon="check"
</template> color="primary"
<q-tooltip />
>启用后在主输入框输入插件别名可以快速设置插件别名<br /> </template>
并将所有设置的别名保存至{{ <q-tooltip
$root.profile.pluNickNameTag >启用后在主输入框输入插件别名可以快速设置插件别名<br />
}}标签 并将所有设置的别名保存至{{
</q-tooltip> $root.profile.pluNickNameTag
</q-input> }}标签
</q-item> </q-tooltip>
<q-item> </q-input>
<q-item-section side> </q-item>
<q-icon name="api" /> <q-item>
</q-item-section> <q-item-section side>
<q-field dense outlined style="width: 280px"> <q-icon name="api" />
<template v-slot:control> </q-item-section>
<div <q-field dense outlined style="width: 280px">
class="self-center full-width no-outline" <template v-slot:control>
tabindex="0" <div class="self-center full-width no-outline" tabindex="0">
> 快捷命令服务
快捷命令服务 </div>
</div> </template>
</template> <template v-slot:append>
<template v-slot:append> <q-btn
<q-btn flat
flat @click="$router.push('server')"
@click="$router.push('server')" icon="open_in_new"
icon="open_in_new" />
/> </template>
</template> <q-tooltip
<q-tooltip >通过本地监听
>通过本地监听 {{ $root.nativeProfile.serverPort }}
{{ $root.nativeProfile.serverPort }} 端口的形式接收用户传送过来的参数然后根据参数执行不同的操作
端口的形式接收用户传送过来的参数然后根据参数执行不同的操作 <br />
<br /> 需要配置插件跟随 utools 启动和保留后台<br />
需要配置插件跟随 utools 启动和保留后台<br /> 也可在主输入框通过关键字快捷命令服务配置进入
也可在主输入框通过关键字快捷命令服务配置进入 </q-tooltip>
</q-tooltip> </q-field>
</q-field> </q-item>
</q-item> <q-item>
<q-item> <q-item-section side>
<q-item-section side> <q-icon name="code" />
<q-icon name="code" /> </q-item-section>
</q-item-section> <q-field dense outlined style="width: 280px">
<q-field dense outlined style="width: 280px"> <template v-slot:control>
<template v-slot:control> <div class="self-center full-width no-outline" tabindex="0">
<div 运行代码
class="self-center full-width no-outline" </div>
tabindex="0" </template>
> <template v-slot:append>
运行代码 <q-btn
</div> flat
</template> @click="$router.push('code')"
<template v-slot:append> icon="open_in_new"
<q-btn />
flat </template>
@click="$router.push('code')" <q-tooltip
icon="open_in_new" >一个可以直接运行代码的代码编辑器<br />
/> 也可在主输入框输入关键字RunCode进入
</template> </q-tooltip>
<q-tooltip </q-field>
>一个可以直接运行代码的代码编辑器<br /> </q-item>
也可在主输入框输入关键字RunCode进入 </q-list>
</q-tooltip> </q-menu>
</q-field> </q-item>
</q-item> <!-- 导入 -->
</q-list> <q-item clickable>
</q-menu> <q-item-section side>
</q-item> <q-icon name="keyboard_arrow_left" />
<!-- 导入 --> </q-item-section>
<q-item clickable> <q-item-section>命令管理</q-item-section>
<q-item-section side> <q-menu anchor="top end" self="top start">
<q-icon name="keyboard_arrow_left" /> <q-list>
</q-item-section> <q-item clickable v-close-popup @click="importCommand">
<q-item-section>命令管理</q-item-section> <q-item-section side>
<q-menu anchor="top end" self="top start"> <q-icon name="text_snippet" />
<q-list> </q-item-section>
<q-item clickable v-close-popup @click="importCommand"> <q-item-section>从文件导入命令</q-item-section>
<q-item-section side> </q-item>
<q-icon name="text_snippet" /> <q-item clickable v-close-popup @click="importCommand(false)">
</q-item-section> <q-item-section side>
<q-item-section>从文件导入命令</q-item-section> <q-icon name="content_paste" />
</q-item> </q-item-section>
<q-item clickable v-close-popup @click="importCommand(false)"> <q-item-section>从剪贴板导入命令</q-item-section>
<q-item-section side> </q-item>
<q-icon name="content_paste" /> <!-- 导出 -->
</q-item-section> <q-item clickable v-close-popup @click="exportAllCommands">
<q-item-section>从剪贴板导入命令</q-item-section> <q-item-section side>
</q-item> <q-icon name="file_upload" />
<!-- 导出 --> </q-item-section>
<q-item clickable v-close-popup @click="exportAllCommands"> <q-item-section>导出所有命令</q-item-section>
<q-item-section side> </q-item>
<q-icon name="file_upload" /> <q-item clickable v-close-popup @click="enableAllCommands">
</q-item-section> <q-item-section side>
<q-item-section>导出所有命令</q-item-section> <q-icon name="checklist_rtl" />
</q-item> </q-item-section>
<q-item clickable v-close-popup @click="enableAllCommands"> <q-item-section>启用本页所有命令</q-item-section>
<q-item-section side> </q-item>
<q-icon name="checklist_rtl" /> <q-item clickable v-close-popup @click="disableAllCommands">
</q-item-section> <q-item-section side>
<q-item-section>启用本页所有命令</q-item-section> <q-icon name="remove_done" />
</q-item> </q-item-section>
<q-item clickable v-close-popup @click="disableAllCommands"> <q-item-section>禁用本页所有命令</q-item-section>
<q-item-section side> </q-item>
<q-icon name="remove_done" /> <!-- 清空 -->
</q-item-section> <q-item
<q-item-section>禁用本页所有命令</q-item-section> style="color: red"
</q-item> clickable
<!-- 清空 --> v-close-popup
<q-item @click="clearAllCommands"
style="color: red" >
clickable <q-item-section side>
v-close-popup <q-icon name="delete" />
@click="clearAllCommands" </q-item-section>
<q-item-section>清空数据</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-item>
<q-item clickable>
<q-item-section side>
<q-icon name="keyboard_arrow_left" />
</q-item-section>
<q-item-section>环境配置</q-item-section>
<q-menu anchor="bottom end" self="bottom start">
<q-list>
<q-item clickable @click="showUserDara = true">
<q-item-section side>
<q-icon name="manage_accounts" />
</q-item-section>
<q-item-section>用户特殊变量</q-item-section>
<q-tooltip
>用户设置的变量类似一个全局配置项<br />
配置好后可选择特殊变量中的usr:插入<br />
也可直接在特殊变量中配置</q-tooltip
>
</q-item>
<q-item>
<q-item-section side>
<q-icon name="dvr" />
</q-item-section>
<q-input
dense
outlined
autogrow
style="width: 280px"
autofocus
v-model="$root.nativeProfile.envPath"
type="text"
label="环境变量 PATH"
>
<q-tooltip
>修改本插件环境变量中的 PATH直接覆盖而非追加
<br />将会影响到除 quickcommandhtml
以外的所有环境</q-tooltip
> >
<q-item-section side> </q-input>
<q-icon name="delete" /> </q-item>
</q-item-section> <q-item v-if="showAlias">
<q-item-section>清空数据</q-item-section> <q-item-section side>
</q-item> <q-icon name="code" />
</q-list> </q-item-section>
</q-menu> <q-input
</q-item> dense
<q-item clickable> outlined
<q-item-section side> autogrow
<q-icon name="keyboard_arrow_left" /> style="width: 280px"
</q-item-section> v-model="$root.nativeProfile.alias"
<q-item-section>环境配置</q-item-section> type="text"
<q-menu anchor="bottom end" self="bottom start"> label="Alias"
<q-list> >
<q-item clickable @click="showUserDara = true"> <q-tooltip
<q-item-section side> >一行一条配置方法和 shell 的语法一样<br /> alias
<q-icon name="manage_accounts" /> python="/home/user/.bin/python"<br />将会影响到除
</q-item-section> quickcommandhtml 以外的所有环境</q-tooltip
<q-item-section>用户特殊变量</q-item-section> >
<q-tooltip </q-input>
>用户设置的变量类似一个全局配置项<br /> </q-item>
配置好后可选择特殊变量中的usr:插入<br /> </q-list>
也可直接在特殊变量中配置</q-tooltip </q-menu>
> </q-item>
</q-item> <q-item clickable>
<q-item> <q-item-section side>
<q-item-section side> <q-icon name="keyboard_arrow_left" />
<q-icon name="dvr" /> </q-item-section>
</q-item-section> <q-item-section>个性化设置</q-item-section>
<q-input <q-menu anchor="top end" self="top start">
<q-list>
<q-item clickable :disable="!$refs.user.isVIP">
<q-item-section side>
<q-icon name="color_lens" />
</q-item-section>
<q-item-section>主颜色</q-item-section>
<q-tooltip>你可以更改界面的主题色会员限定</q-tooltip>
<q-menu
v-if="$refs.user.isVIP"
nchor="top left"
self="bottom end"
>
<q-card>
<q-color
@change="setPrimaryColor"
v-model="$root.profile.primaryColor"
/>
<q-btn
color="primary"
label="重置为默认"
class="full-width"
@click="resetPrimary"
/>
</q-card>
</q-menu>
</q-item>
<q-item clickable :disable="!$refs.user.isVIP">
<q-item-section side>
<q-icon name="image" />
</q-item-section>
<q-item-section>面板视图背景图片</q-item-section>
<q-tooltip
>为面板视图设置一张背景图片会员限定<br />请不要选择尺寸太大的图片将影响插件载入速度</q-tooltip
>
<q-menu
v-if="$refs.user.isVIP"
nchor="top left"
self="bottom end"
>
<q-card>
<q-file
dense dense
outlined standout="bg-primary text-white"
autogrow v-model="selectFile"
style="width: 280px"
autofocus autofocus
v-model="$root.nativeProfile.envPath" @update:model-value="changeBackground()"
type="text" accept="image/*"
label="环境变量 PATH" label="请选择一张图片"
> >
<q-tooltip <template v-slot:prepend>
>修改本插件环境变量中的 PATH直接覆盖而非追加 <q-icon name="attach_file" />
<br />将会影响到除 quickcommandhtml </template>
以外的所有环境</q-tooltip </q-file>
> <q-btn
</q-input> color="negative"
</q-item> label="取消背景"
<q-item v-if="showAlias"> class="full-width"
<q-item-section side> @click="changeBackground(1)"
<q-icon name="code" /> />
</q-item-section> </q-card>
<q-input </q-menu>
dense </q-item>
outlined <q-item clickable :disable="!$refs.user.isVIP">
autogrow <q-item-section side>
style="width: 280px" <q-icon name="label" />
v-model="$root.nativeProfile.alias" </q-item-section>
type="text" <q-item-section class="flex">紧凑标签栏 </q-item-section>
label="Alias" <q-tooltip>更为紧凑的标签栏适用于标签非常多的情形</q-tooltip>
> <q-item-section side
<q-tooltip ><q-toggle
>一行一条配置方法和 shell 的语法一样<br /> alias v-model="$root.profile.denseTagBar"
python="/home/user/.bin/python"<br />将会影响到除 :disable="!$refs.user.isVIP"
quickcommandhtml 以外的所有环境</q-tooltip color="primary"
> /></q-item-section>
</q-input> </q-item>
</q-item> <q-item clickable>
</q-list> <q-item-section side>
</q-menu> <q-icon name="search" />
</q-item> </q-item-section>
<q-item clickable> <q-item-section class="flex">自动聚焦搜索 </q-item-section>
<q-item-section side> <q-tooltip>进入插件时自动聚焦搜索</q-tooltip>
<q-icon name="keyboard_arrow_left" /> <q-item-section side
</q-item-section> ><q-toggle
<q-item-section>个性化设置</q-item-section> v-model="$root.profile.autofocusSearch"
<q-menu anchor="top end" self="top start"> color="primary"
<q-list> /></q-item-section>
<q-item clickable :disable="!$refs.user.isVIP"> </q-item>
<q-item-section side> </q-list>
<q-icon name="color_lens" /> </q-menu>
</q-item-section> </q-item>
<q-item-section>主颜色</q-item-section> <!-- <q-item clickable to="/share">
<q-tooltip>你可以更改界面的主题色会员限定</q-tooltip>
<q-menu
v-if="$refs.user.isVIP"
nchor="top left"
self="bottom end"
>
<q-card>
<q-color
@change="setPrimaryColor"
v-model="$root.profile.primaryColor"
/>
<q-btn
color="primary"
label="重置为默认"
class="full-width"
@click="resetPrimary"
/>
</q-card>
</q-menu>
</q-item>
<q-item clickable :disable="!$refs.user.isVIP">
<q-item-section side>
<q-icon name="image" />
</q-item-section>
<q-item-section>面板视图背景图片</q-item-section>
<q-tooltip
>为面板视图设置一张背景图片会员限定<br />请不要选择尺寸太大的图片将影响插件载入速度</q-tooltip
>
<q-menu
v-if="$refs.user.isVIP"
nchor="top left"
self="bottom end"
>
<q-card>
<q-file
dense
standout="bg-primary text-white"
v-model="selectFile"
autofocus
@update:model-value="changeBackground()"
accept="image/*"
label="请选择一张图片"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
</template>
</q-file>
<q-btn
color="negative"
label="取消背景"
class="full-width"
@click="changeBackground(1)"
/>
</q-card>
</q-menu>
</q-item>
<q-item clickable :disable="!$refs.user.isVIP">
<q-item-section side>
<q-icon name="label" />
</q-item-section>
<q-item-section class="flex">紧凑标签栏 </q-item-section>
<q-tooltip
>更为紧凑的标签栏适用于标签非常多的情形</q-tooltip
>
<q-item-section side
><q-toggle
v-model="$root.profile.denseTagBar"
:disable="!$refs.user.isVIP"
color="primary"
/></q-item-section>
</q-item>
<q-item clickable>
<q-item-section side>
<q-icon name="search" />
</q-item-section>
<q-item-section class="flex">自动聚焦搜索 </q-item-section>
<q-tooltip>进入插件时自动聚焦搜索</q-tooltip>
<q-item-section side
><q-toggle
v-model="$root.profile.autofocusSearch"
color="primary"
/></q-item-section>
</q-item>
</q-list>
</q-menu>
</q-item>
<!-- <q-item clickable to="/share">
<q-item-section side> <q-item-section side>
<q-icon name="groups" /> <q-icon name="groups" />
</q-item-section> </q-item-section>
<q-item-section>分享中心</q-item-section> <q-item-section>分享中心</q-item-section>
</q-item> --> </q-item> -->
<!-- 收藏 --> <!-- 收藏 -->
<q-item v-if="isTagStared" clickable @click="unMarkTag" v-close-popup> <q-item v-if="isTagStared" clickable @click="unMarkTag">
<q-item-section side> <q-item-section side>
<q-icon name="star_border" /> <q-icon name="star_border" />
</q-item-section> </q-item-section>
<q-item-section>取消收藏</q-item-section> <q-item-section>取消收藏</q-item-section>
</q-item> </q-item>
<q-item v-else clickable @click="showPanelConf = true" v-close-popup> <q-item v-else clickable @click="showPanelConf = true">
<q-item-section side> <q-item-section side>
<q-icon name="star" /> <q-icon name="star" />
</q-item-section> </q-item-section>
<q-item-section>收藏标签</q-item-section> <q-item-section>收藏标签</q-item-section>
<q-tooltip <q-tooltip
>收藏后会将当前标签名作为全局关键字可在 uTools >收藏后会将当前标签名作为全局关键字可在 uTools 的主输入框进行搜索
的主输入框进行搜索 <br />
<br /> 搜索进入后默认进入当前标签的面板视图 <br />
搜索进入后默认进入当前标签的面板视图 <br /> 类似于旧版本的快捷面板</q-tooltip
类似于旧版本的快捷面板</q-tooltip >
> </q-item>
</q-item> <!-- 关于 -->
<!-- 关于 --> <q-item clickable @click="showAbout = true">
<q-item clickable @click="showAbout = true" v-close-popup> <q-item-section side>
<q-item-section side> <q-icon name="info" />
<q-icon name="info" /> </q-item-section>
</q-item-section> <q-item-section>关于和帮助</q-item-section></q-item
<q-item-section>关于和帮助</q-item-section></q-item >
> </q-list>
</q-list>
</q-menu>
</q-btn>
<!-- 关于弹窗 --> <!-- 关于弹窗 -->
<q-dialog v-model="showAbout"> <q-dialog v-model="showAbout">
<AboutThis /> <AboutThis />
@ -443,7 +434,7 @@
<q-dialog v-model="showUserDara"> <q-dialog v-model="showUserDara">
<UserData :showInsertBtn="false" /> <UserData :showInsertBtn="false" />
</q-dialog> </q-dialog>
</div> </q-menu>
</template> </template>
<script> <script>

View File

@ -167,14 +167,21 @@
icon="add" icon="add"
/> />
<q-separator vertical /> <q-separator vertical />
<!-- 下拉菜单 --> <q-btn
<ConfigurationMenu stretch
color="primary"
flat
size="xs"
:style="{ :style="{
height: footerBarHeight, height: footerBarHeight,
}" }"
:isTagStared="activatedQuickPanels.includes(currentTag)" ><q-spinner-bars color="primary" size="1.5em" />
:currentTag="currentTag" <!-- 菜单 -->
></ConfigurationMenu> <ConfigurationMenu
:isTagStared="activatedQuickPanels.includes(currentTag)"
:currentTag="currentTag"
></ConfigurationMenu>
</q-btn>
</q-btn-group> </q-btn-group>
</div> </div>
</div> </div>
@ -202,13 +209,19 @@
</template> </template>
<script> <script>
import { defineAsyncComponent } from "vue";
import quickcommandParser from "../js/common/quickcommandParser.js"; import quickcommandParser from "../js/common/quickcommandParser.js";
import CommandCard from "components/CommandCard";
import ConfigurationMenu from "components/ConfigurationMenu.vue";
import CommandRunResult from "components/CommandRunResult.vue";
import importAll from "../js/common/importAll.js"; import importAll from "../js/common/importAll.js";
import pinyinMatch from "pinyin-match"; import pinyinMatch from "pinyin-match";
import CommandCard from "components/CommandCard";
import CommandEditor from "components/CommandEditor"; import CommandEditor from "components/CommandEditor";
const CommandRunResult = defineAsyncComponent(() =>
import("components/CommandRunResult.vue")
);
// Performance Rendering > 300ms
const ConfigurationMenu = defineAsyncComponent(() =>
import("components/ConfigurationMenu.vue")
);
// //
let defaultCommands = importAll(require.context("../json/", false, /\.json$/)); let defaultCommands = importAll(require.context("../json/", false, /\.json$/));
@ -216,8 +229,8 @@ let defaultCommands = importAll(require.context("../json/", false, /\.json$/));
export default { export default {
components: { components: {
CommandCard, CommandCard,
ConfigurationMenu,
CommandEditor, CommandEditor,
ConfigurationMenu,
CommandRunResult, CommandRunResult,
}, },
data() { data() {