keli-ui 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalRecord-4ohFAtSZ.js → ApprovalRecord-vVZRlsOq.js} +2 -2
- package/dist/{ApprovalRecord-4ohFAtSZ.js.map → ApprovalRecord-vVZRlsOq.js.map} +1 -1
- package/dist/{api-Gtg77a-p.js → api-CgGVcbfG.js} +114 -110
- package/dist/api-CgGVcbfG.js.map +1 -0
- package/dist/components/QueryComponent/QueryBar/QueryBar.vue.d.ts +3 -34
- package/dist/config/appRouter.config.d.ts +3 -1
- package/dist/config/index.d.ts +11 -0
- package/dist/java-BrZSNBDG.js.map +1 -1
- package/dist/keli-ui.css +1 -1
- package/dist/keli-ui.js +4896 -4902
- package/dist/keli-ui.js.map +1 -1
- package/dist/keli-ui.umd.cjs +142 -142
- package/dist/keli-ui.umd.cjs.map +1 -1
- package/dist/postgresql-CLVUxiA0.js.map +1 -1
- package/package.json +4 -4
- package/dist/api-Gtg77a-p.js.map +0 -1
|
@@ -1,36 +1,13 @@
|
|
|
1
1
|
import { TableQueryFrame } from '../../../types';
|
|
2
2
|
|
|
3
|
-
interface I18nText {
|
|
4
|
-
search: string;
|
|
5
|
-
reset: string;
|
|
6
|
-
fold: string;
|
|
7
|
-
unfold: string;
|
|
8
|
-
}
|
|
9
3
|
interface Props {
|
|
10
4
|
frame: TableQueryFrame[];
|
|
11
|
-
i18nText?: I18nText;
|
|
12
5
|
}
|
|
13
|
-
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<
|
|
14
|
-
i18nText: () => {
|
|
15
|
-
search: string;
|
|
16
|
-
reset: string;
|
|
17
|
-
fold: string;
|
|
18
|
-
unfold: string;
|
|
19
|
-
};
|
|
20
|
-
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
6
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
21
7
|
queryClick: (...args: any[]) => void;
|
|
22
|
-
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<
|
|
23
|
-
i18nText: () => {
|
|
24
|
-
search: string;
|
|
25
|
-
reset: string;
|
|
26
|
-
fold: string;
|
|
27
|
-
unfold: string;
|
|
28
|
-
};
|
|
29
|
-
}>>> & Readonly<{
|
|
8
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & Readonly<{
|
|
30
9
|
onQueryClick?: ((...args: any[]) => any) | undefined;
|
|
31
|
-
}>, {
|
|
32
|
-
i18nText: I18nText;
|
|
33
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
34
11
|
export default _default;
|
|
35
12
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
36
13
|
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
@@ -41,11 +18,3 @@ type __VLS_TypePropsToRuntimeProps<T> = {
|
|
|
41
18
|
required: true;
|
|
42
19
|
};
|
|
43
20
|
};
|
|
44
|
-
type __VLS_WithDefaults<P, D> = {
|
|
45
|
-
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
46
|
-
default: D[K];
|
|
47
|
-
}> : P[K];
|
|
48
|
-
};
|
|
49
|
-
type __VLS_Prettify<T> = {
|
|
50
|
-
[K in keyof T]: T[K];
|
|
51
|
-
} & {};
|
package/dist/config/index.d.ts
CHANGED
|
@@ -116,6 +116,12 @@ export interface IconifyApiCallbacks {
|
|
|
116
116
|
getCollectionsApi: () => Promise<any>;
|
|
117
117
|
searchPageApi: (params: any) => Promise<any>;
|
|
118
118
|
}
|
|
119
|
+
export type RouterName = 'AppTableRender' | 'AppFormRender';
|
|
120
|
+
export interface RouterOptions {
|
|
121
|
+
id: string | number;
|
|
122
|
+
tagsViewName: string;
|
|
123
|
+
[key: string]: any;
|
|
124
|
+
}
|
|
119
125
|
/**
|
|
120
126
|
* KeliUI 组件库配置
|
|
121
127
|
*
|
|
@@ -144,9 +150,14 @@ export interface KeliUiConfig {
|
|
|
144
150
|
fileApi: FileApiCallbacks;
|
|
145
151
|
flowRecordApi: FlowRecordApiCallbacks;
|
|
146
152
|
iconifyApi: IconifyApiCallbacks;
|
|
153
|
+
/**
|
|
154
|
+
* 页面跳转(可选)
|
|
155
|
+
*/
|
|
156
|
+
router?: (name: RouterName, options: RouterOptions) => Promise<any>;
|
|
147
157
|
}
|
|
148
158
|
export declare function setKeliUiConfig(userConfig: KeliUiConfig): void;
|
|
149
159
|
export declare function getKeliUiConfig(): KeliUiConfig;
|
|
160
|
+
export declare function getRouterCallback(name: RouterName, options: RouterOptions): Promise<any>;
|
|
150
161
|
export declare function getAppApiCallbacks(): AppApiCallbacks;
|
|
151
162
|
export declare function getAppTableApiCallbacks(): AppTableApiCallbacks;
|
|
152
163
|
export declare function getAppEmbeddedApiCallbacks(): AppEmbeddedApiCallbacks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"java-BrZSNBDG.js","names":[],"sources":["../src/components/FormComponent/FormCodeEditor/language/java.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nconst conf = {\n // the default separators except `@$`\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n comments: {\n lineComment: \"//\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" }\n ],\n surroundingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: \"<\", close: \">\" }\n ],\n folding: {\n markers: {\n start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n }\n }\n};\nconst language = {\n defaultToken: \"\",\n tokenPostfix: \".java\",\n keywords: [\n \"abstract\",\n \"continue\",\n \"for\",\n \"new\",\n \"switch\",\n \"assert\",\n \"default\",\n \"goto\",\n \"package\",\n \"synchronized\",\n \"boolean\",\n \"do\",\n \"if\",\n \"private\",\n \"this\",\n \"break\",\n \"double\",\n \"implements\",\n \"protected\",\n \"throw\",\n \"byte\",\n \"else\",\n \"import\",\n \"public\",\n \"throws\",\n \"case\",\n \"enum\",\n \"instanceof\",\n \"return\",\n \"transient\",\n \"catch\",\n \"extends\",\n \"int\",\n \"short\",\n \"try\",\n \"char\",\n \"final\",\n \"interface\",\n \"static\",\n \"void\",\n \"class\",\n \"finally\",\n \"long\",\n \"strictfp\",\n \"volatile\",\n \"const\",\n \"float\",\n \"native\",\n \"super\",\n \"while\",\n \"true\",\n \"false\",\n \"yield\",\n \"record\",\n \"sealed\",\n \"non-sealed\",\n \"permits\"\n ],\n operators: [\n \"=\",\n \">\",\n \"<\",\n \"!\",\n \"~\",\n \"?\",\n \":\",\n \"==\",\n \"<=\",\n \">=\",\n \"!=\",\n \"&&\",\n \"||\",\n \"++\",\n \"--\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"&\",\n \"|\",\n \"^\",\n \"%\",\n \"<<\",\n \">>\",\n \">>>\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"&=\",\n \"|=\",\n \"^=\",\n \"%=\",\n \"<<=\",\n \">>=\",\n \">>>=\"\n ],\n // 常用类型\n typeKeywords: [\n 'String', 'Integer', 'Long', 'Double', 'Float', 'Boolean', 'Character', 'Byte', 'Short',\n 'Object', 'Class', 'System', 'Math', 'StringBuilder', 'StringBuffer',\n 'List', 'ArrayList', 'LinkedList', 'Map', 'HashMap', 'TreeMap', 'LinkedHashMap',\n 'Set', 'HashSet', 'TreeSet', 'LinkedHashSet', 'Queue', 'Deque', 'Stack',\n 'Collection', 'Collections', 'Arrays', 'Optional', 'Stream', 'Collectors',\n 'Exception', 'RuntimeException', 'Error', 'Throwable',\n 'Thread', 'Runnable', 'Callable', 'Future', 'CompletableFuture',\n 'Date', 'LocalDate', 'LocalTime', 'LocalDateTime', 'Instant', 'Duration',\n 'File', 'Path', 'Files', 'InputStream', 'OutputStream', 'Reader', 'Writer',\n 'Pattern', 'Matcher', 'Scanner', 'Random', 'UUID',\n 'BigDecimal', 'BigInteger', 'AtomicInteger', 'AtomicLong',\n 'Comparator', 'Comparable', 'Iterator', 'Iterable',\n 'Function', 'Consumer', 'Supplier', 'Predicate', 'BiFunction',\n ],\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n digits: /\\d+(_+\\d+)*/,\n octaldigits: /[0-7]+(_+[0-7]+)*/,\n binarydigits: /[0-1]+(_+[0-1]+)*/,\n hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // Special keyword with a dash\n [\"non-sealed\", \"keyword.non-sealed\"],\n // 方法调用 - xxx.method() 中的 method 显示为函数色\n [/([a-zA-Z_$][\\w$]*)(\\s*)(\\()/, [\n {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"function\"\n }\n },\n \"\",\n \"@brackets\"\n ]],\n // 类名 - 大写开头的标识符\n [/[A-Z][\\w$]*/, {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"type\"\n }\n }],\n // identifiers and keywords\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n \"@keywords\": { token: \"keyword.$0\" },\n \"@default\": \"identifier\"\n }\n }\n ],\n // whitespace\n { include: \"@whitespace\" },\n // delimiters and operators\n [/[{}()\\[\\]]/, \"@brackets\"],\n [/[<>](?!@symbols)/, \"@brackets\"],\n [\n /@symbols/,\n {\n cases: {\n \"@operators\": \"delimiter\",\n \"@default\": \"\"\n }\n }\n ],\n // @ annotations.\n [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n // numbers\n [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/0[xX](@hexdigits)[Ll]?/, \"number.hex\"],\n [/0(@octaldigits)[Ll]?/, \"number.octal\"],\n [/0[bB](@binarydigits)[Ll]?/, \"number.binary\"],\n [/(@digits)[fFdD]/, \"number.float\"],\n [/(@digits)[lL]?/, \"number\"],\n // delimiter: after number because of .\\d floats\n [/[;,.]/, \"delimiter\"],\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n // non-teminated string\n [/\"\"\"/, \"string\", \"@multistring\"],\n [/\"/, \"string\", \"@string\"],\n // characters\n [/'[^\\\\']'/, \"string\"],\n [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n [/'/, \"string.invalid\"]\n ],\n whitespace: [\n [/[ \\t\\r\\n]+/, \"\"],\n [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@javadoc\"],\n [/\\/\\*/, \"comment\", \"@comment\"],\n [/\\/\\/.*$/, \"comment\"]\n ],\n comment: [\n [/[^\\/*]+/, \"comment\"],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/\n [/\\*\\//, \"comment\", \"@pop\"],\n [/[\\/*]/, \"comment\"]\n ],\n //Identical copy of comment above, except for the addition of .doc\n javadoc: [\n [/[^\\/*]+/, \"comment.doc\"],\n // [/\\/\\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, \"comment.doc.invalid\"],\n [/\\*\\//, \"comment.doc\", \"@pop\"],\n [/[\\/*]/, \"comment.doc\"]\n ],\n string: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, \"string\", \"@pop\"]\n ],\n multistring: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"\"\"/, \"string\", \"@pop\"],\n [/./, \"string\"]\n ]\n }\n};\nexport {\n conf,\n language,\n registerJavaCompletion,\n defineJavaThemes\n};\n\nfunction defineJavaThemes() {\n // Java 暗色主题\n monaco.editor.defineTheme('java-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.package', foreground: 'C586C0' },\n { token: 'keyword.import', foreground: 'C586C0' },\n { token: 'keyword.class', foreground: '569CD6' },\n { token: 'keyword.interface', foreground: '569CD6' },\n { token: 'keyword.public', foreground: '569CD6' },\n { token: 'keyword.private', foreground: '569CD6' },\n { token: 'keyword.protected', foreground: '569CD6' },\n { token: 'keyword.static', foreground: '569CD6' },\n { token: 'keyword.final', foreground: '569CD6' },\n { token: 'keyword.void', foreground: '569CD6' },\n { token: 'keyword.return', foreground: 'C586C0' },\n { token: 'keyword.new', foreground: '569CD6' },\n { token: 'keyword.if', foreground: 'C586C0' },\n { token: 'keyword.else', foreground: 'C586C0' },\n { token: 'keyword.for', foreground: 'C586C0' },\n { token: 'keyword.while', foreground: 'C586C0' },\n { token: 'keyword.try', foreground: 'C586C0' },\n { token: 'keyword.catch', foreground: 'C586C0' },\n { token: 'keyword.throw', foreground: 'C586C0' },\n { token: 'keyword.throws', foreground: 'C586C0' },\n { token: 'type', foreground: '4EC9B0' }, // 青色 - 类型/类名\n { token: 'function', foreground: 'DCDCAA' }, // 黄色 - 方法名\n { token: 'annotation', foreground: 'D7BA7D' }, // 金色 - 注解\n { token: 'string', foreground: 'CE9178' }, // 橙色 - 字符串\n { token: 'number', foreground: 'B5CEA8' }, // 浅绿 - 数字\n { token: 'comment', foreground: '6A9955' }, // 绿色 - 注释\n { token: 'comment.doc', foreground: '6A9955' },\n { token: 'identifier', foreground: '9CDCFE' }, // 浅蓝 - 变量\n { token: 'delimiter', foreground: 'D4D4D4' },\n ],\n colors: {},\n });\n\n // Java 亮色主题\n monaco.editor.defineTheme('java-light', {\n base: 'vs',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.package', foreground: 'AF00DB' },\n { token: 'keyword.import', foreground: 'AF00DB' },\n { token: 'keyword.return', foreground: 'AF00DB' },\n { token: 'keyword.if', foreground: 'AF00DB' },\n { token: 'keyword.else', foreground: 'AF00DB' },\n { token: 'keyword.for', foreground: 'AF00DB' },\n { token: 'keyword.while', foreground: 'AF00DB' },\n { token: 'keyword.try', foreground: 'AF00DB' },\n { token: 'keyword.catch', foreground: 'AF00DB' },\n { token: 'keyword.throw', foreground: 'AF00DB' },\n { token: 'type', foreground: '267F99' }, // 青色 - 类型/类名\n { token: 'function', foreground: '795E26' }, // 棕黄 - 方法名\n { token: 'annotation', foreground: '808000' }, // 橄榄 - 注解\n { token: 'string', foreground: 'A31515' }, // 红色 - 字符串\n { token: 'number', foreground: '098658' }, // 绿色 - 数字\n { token: 'comment', foreground: '008000' }, // 绿色 - 注释\n { token: 'identifier', foreground: '001080' }, // 深蓝 - 变量\n ],\n colors: {},\n });\n}\n\nlet javaCompletionRegistered = false;\n\nfunction registerJavaCompletion() {\n if (javaCompletionRegistered) return;\n javaCompletionRegistered = true;\n\n monaco.languages.registerCompletionItemProvider('java', {\n triggerCharacters: ['.', '@', ' '],\n provideCompletionItems: (model, position) => {\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n const line = model.getLineContent(position.lineNumber);\n const before = line.substring(0, position.column - 1);\n const currentWord = word.word.toLowerCase();\n const suggestions: monaco.languages.CompletionItem[] = [];\n\n // Java 关键字和类型 - 只要有输入就提示\n if (currentWord.length >= 1) {\n const keywords: [string, string, string][] = [\n // 访问修饰符\n ['public', '公共访问', 'public '],\n ['private', '私有访问', 'private '],\n ['protected', '受保护访问', 'protected '],\n // 修饰符\n ['static', '静态', 'static '],\n ['final', '最终', 'final '],\n ['abstract', '抽象', 'abstract '],\n ['native', '本地方法', 'native '],\n ['strictfp', '严格浮点', 'strictfp '],\n ['synchronized', '同步', 'synchronized '],\n ['volatile', '易变', 'volatile '],\n ['transient', '瞬态', 'transient '],\n // 类型声明\n ['class', '类', 'class $1 {\\n $2\\n}'],\n ['interface', '接口', 'interface $1 {\\n $2\\n}'],\n ['enum', '枚举', 'enum $1 {\\n $2\\n}'],\n ['record', '记录类', 'record $1($2) {}'],\n ['@interface', '注解定义', '@interface $1 {\\n $2\\n}'],\n // 继承实现\n ['extends', '继承', 'extends '],\n ['implements', '实现', 'implements '],\n ['permits', '允许', 'permits '],\n ['sealed', '密封类', 'sealed '],\n ['non-sealed', '非密封', 'non-sealed '],\n // 包和导入\n ['package', '包声明', 'package $1;'],\n ['import', '导入', 'import $1;'],\n ['import static', '静态导入', 'import static $1;'],\n // 控制流\n ['if', '条件判断', 'if ($1) {\\n $2\\n}'],\n ['else', '否则', 'else {\\n $1\\n}'],\n ['else if', '否则如果', 'else if ($1) {\\n $2\\n}'],\n ['switch', 'switch语句', 'switch ($1) {\\n case $2 -> $3;\\n default -> $4;\\n}'],\n ['case', 'case分支', 'case $1 -> $2;'],\n ['default', '默认', 'default -> $1;'],\n ['for', 'for循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['do', 'do-while', 'do {\\n $1\\n} while ($2);'],\n ['break', '跳出循环', 'break;'],\n ['continue', '继续循环', 'continue;'],\n ['return', '返回', 'return $1;'],\n ['yield', 'yield返回', 'yield $1;'],\n // 异常处理\n ['try', 'try块', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['catch', 'catch块', 'catch ($1 e) {\\n $2\\n}'],\n ['finally', 'finally块', 'finally {\\n $1\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n ['throws', '声明异常', 'throws $1'],\n // 对象操作\n ['new', '创建对象', 'new $1($2)'],\n ['this', '当前对象', 'this'],\n ['super', '父类引用', 'super'],\n ['instanceof', '类型检查', 'instanceof $1'],\n ['var', '类型推断', 'var $1 = $2;'],\n // 断言\n ['assert', '断言', 'assert $1 : \"$2\";'],\n // 常量\n ['null', '空值', 'null'],\n ['true', '真', 'true'],\n ['false', '假', 'false'],\n \n // 基本类型\n ['void', '无返回值', 'void'],\n ['boolean', '布尔型', 'boolean'],\n ['byte', '字节型', 'byte'],\n ['short', '短整型', 'short'],\n ['int', '整型', 'int'],\n ['long', '长整型', 'long'],\n ['float', '单精度浮点', 'float'],\n ['double', '双精度浮点', 'double'],\n ['char', '字符型', 'char'],\n \n // 包装类\n ['Boolean', '布尔包装类', 'Boolean'],\n ['Byte', '字节包装类', 'Byte'],\n ['Short', '短整型包装类', 'Short'],\n ['Integer', '整型包装类', 'Integer'],\n ['Long', '长整型包装类', 'Long'],\n ['Float', '单精度包装类', 'Float'],\n ['Double', '双精度包装类', 'Double'],\n ['Character', '字符包装类', 'Character'],\n ['Number', '数字基类', 'Number'],\n \n // 常用类\n ['String', '字符串', 'String'],\n ['StringBuilder', '字符串构建器', 'StringBuilder'],\n ['StringBuffer', '线程安全字符串', 'StringBuffer'],\n ['Object', '对象基类', 'Object'],\n ['Class', '类对象', 'Class<$1>'],\n ['System', '系统类', 'System'],\n ['Math', '数学类', 'Math'],\n ['Arrays', '数组工具', 'Arrays'],\n ['Objects', '对象工具', 'Objects'],\n ['Collections', '集合工具', 'Collections'],\n \n // 集合类\n ['List', '列表接口', 'List<$1>'],\n ['ArrayList', '数组列表', 'new ArrayList<$1>()'],\n ['LinkedList', '链表', 'new LinkedList<$1>()'],\n ['Set', '集合接口', 'Set<$1>'],\n ['HashSet', '哈希集合', 'new HashSet<$1>()'],\n ['TreeSet', '树集合', 'new TreeSet<$1>()'],\n ['LinkedHashSet', '有序哈希集合', 'new LinkedHashSet<$1>()'],\n ['Map', '映射接口', 'Map<$1, $2>'],\n ['HashMap', '哈希映射', 'new HashMap<$1, $2>()'],\n ['TreeMap', '树映射', 'new TreeMap<$1, $2>()'],\n ['LinkedHashMap', '有序哈希映射', 'new LinkedHashMap<$1, $2>()'],\n ['ConcurrentHashMap', '并发哈希映射', 'new ConcurrentHashMap<$1, $2>()'],\n ['Queue', '队列接口', 'Queue<$1>'],\n ['Deque', '双端队列', 'Deque<$1>'],\n ['Stack', '栈', 'new Stack<$1>()'],\n ['Vector', '向量', 'new Vector<$1>()'],\n ['Collection', '集合接口', 'Collection<$1>'],\n ['Iterable', '可迭代接口', 'Iterable<$1>'],\n ['Iterator', '迭代器', 'Iterator<$1>'],\n \n // Optional\n ['Optional', 'Optional容器', 'Optional<$1>'],\n ['OptionalInt', 'int的Optional', 'OptionalInt'],\n ['OptionalLong', 'long的Optional', 'OptionalLong'],\n ['OptionalDouble', 'double的Optional', 'OptionalDouble'],\n \n // Stream\n ['Stream', '流', 'Stream<$1>'],\n ['IntStream', 'int流', 'IntStream'],\n ['LongStream', 'long流', 'LongStream'],\n ['DoubleStream', 'double流', 'DoubleStream'],\n ['Collectors', '收集器', 'Collectors'],\n \n // 函数式接口\n ['Function', '函数接口', 'Function<$1, $2>'],\n ['BiFunction', '双参数函数', 'BiFunction<$1, $2, $3>'],\n ['Consumer', '消费者接口', 'Consumer<$1>'],\n ['BiConsumer', '双参数消费者', 'BiConsumer<$1, $2>'],\n ['Supplier', '供应者接口', 'Supplier<$1>'],\n ['Predicate', '断言接口', 'Predicate<$1>'],\n ['BiPredicate', '双参数断言', 'BiPredicate<$1, $2>'],\n ['UnaryOperator', '一元操作符', 'UnaryOperator<$1>'],\n ['BinaryOperator', '二元操作符', 'BinaryOperator<$1>'],\n ['Comparator', '比较器', 'Comparator<$1>'],\n ['Comparable', '可比较接口', 'Comparable<$1>'],\n ['Runnable', '可运行接口', 'Runnable'],\n ['Callable', '可调用接口', 'Callable<$1>'],\n \n // 异常类\n ['Exception', '异常', 'Exception'],\n ['RuntimeException', '运行时异常', 'RuntimeException'],\n ['NullPointerException', '空指针异常', 'NullPointerException'],\n ['IllegalArgumentException', '非法参数异常', 'IllegalArgumentException'],\n ['IllegalStateException', '非法状态异常', 'IllegalStateException'],\n ['IndexOutOfBoundsException', '索引越界异常', 'IndexOutOfBoundsException'],\n ['IOException', 'IO异常', 'IOException'],\n ['FileNotFoundException', '文件未找到异常', 'FileNotFoundException'],\n ['SQLException', 'SQL异常', 'SQLException'],\n ['ClassNotFoundException', '类未找到异常', 'ClassNotFoundException'],\n ['NoSuchMethodException', '方法未找到异常', 'NoSuchMethodException'],\n ['Error', '错误', 'Error'],\n ['Throwable', '可抛出', 'Throwable'],\n \n // 并发类\n ['Thread', '线程', 'Thread'],\n ['Future', 'Future接口', 'Future<$1>'],\n ['CompletableFuture', '可完成Future', 'CompletableFuture<$1>'],\n ['ExecutorService', '执行器服务', 'ExecutorService'],\n ['Executors', '执行器工厂', 'Executors'],\n ['ThreadPoolExecutor', '线程池执行器', 'ThreadPoolExecutor'],\n ['CountDownLatch', '倒计时门闩', 'CountDownLatch'],\n ['CyclicBarrier', '循环屏障', 'CyclicBarrier'],\n ['Semaphore', '信号量', 'Semaphore'],\n ['ReentrantLock', '可重入锁', 'ReentrantLock'],\n ['AtomicInteger', '原子整数', 'AtomicInteger'],\n ['AtomicLong', '原子长整数', 'AtomicLong'],\n ['AtomicBoolean', '原子布尔', 'AtomicBoolean'],\n ['AtomicReference', '原子引用', 'AtomicReference<$1>'],\n \n // 日期时间\n ['Date', '日期(旧)', 'Date'],\n ['Calendar', '日历(旧)', 'Calendar'],\n ['LocalDate', '本地日期', 'LocalDate'],\n ['LocalTime', '本地时间', 'LocalTime'],\n ['LocalDateTime', '本地日期时间', 'LocalDateTime'],\n ['ZonedDateTime', '带时区日期时间', 'ZonedDateTime'],\n ['Instant', '时间戳', 'Instant'],\n ['Duration', '时间段', 'Duration'],\n ['Period', '日期段', 'Period'],\n ['DateTimeFormatter', '日期格式化', 'DateTimeFormatter'],\n \n // IO类\n ['File', '文件', 'File'],\n ['Path', '路径', 'Path'],\n ['Paths', '路径工具', 'Paths'],\n ['Files', '文件工具', 'Files'],\n ['InputStream', '输入流', 'InputStream'],\n ['OutputStream', '输出流', 'OutputStream'],\n ['FileInputStream', '文件输入流', 'FileInputStream'],\n ['FileOutputStream', '文件输出流', 'FileOutputStream'],\n ['BufferedReader', '缓冲读取器', 'BufferedReader'],\n ['BufferedWriter', '缓冲写入器', 'BufferedWriter'],\n ['Reader', '读取器', 'Reader'],\n ['Writer', '写入器', 'Writer'],\n \n // 其他常用\n ['BigDecimal', '高精度小数', 'BigDecimal'],\n ['BigInteger', '高精度整数', 'BigInteger'],\n ['UUID', 'UUID', 'UUID'],\n ['Random', '随机数', 'Random'],\n ['Pattern', '正则模式', 'Pattern'],\n ['Matcher', '正则匹配器', 'Matcher'],\n ['Scanner', '扫描器', 'Scanner'],\n ['Enum', '枚举基类', 'Enum'],\n ['Annotation', '注解接口', 'Annotation'],\n ['Override', '重写注解', '@Override'],\n ['Deprecated', '弃用注解', '@Deprecated'],\n ['SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ];\n keywords.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Keyword, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '0' + label, // 优先显示\n });\n });\n }\n\n // 注解\n if (before.endsWith('@') || /@\\w*$/.test(before)) {\n const annotations: [string, string, string][] = [\n ['@Override', '重写方法', '@Override'],\n ['@Deprecated', '已弃用', '@Deprecated'],\n ['@SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ['@FunctionalInterface', '函数式接口', '@FunctionalInterface'],\n ['@SafeVarargs', '安全可变参数', '@SafeVarargs'],\n ['@Autowired', 'Spring自动注入', '@Autowired'],\n ['@Component', 'Spring组件', '@Component'],\n ['@Service', 'Spring服务', '@Service'],\n ['@Repository', 'Spring仓库', '@Repository'],\n ['@Controller', 'Spring控制器', '@Controller'],\n ['@RestController', 'REST控制器', '@RestController'],\n ['@RequestMapping', '请求映射', '@RequestMapping(\"$1\")'],\n ['@GetMapping', 'GET请求', '@GetMapping(\"$1\")'],\n ['@PostMapping', 'POST请求', '@PostMapping(\"$1\")'],\n ['@PutMapping', 'PUT请求', '@PutMapping(\"$1\")'],\n ['@DeleteMapping', 'DELETE请求', '@DeleteMapping(\"$1\")'],\n ['@PathVariable', '路径变量', '@PathVariable'],\n ['@RequestParam', '请求参数', '@RequestParam'],\n ['@RequestBody', '请求体', '@RequestBody'],\n ['@ResponseBody', '响应体', '@ResponseBody'],\n ['@Bean', 'Spring Bean', '@Bean'],\n ['@Configuration', '配置类', '@Configuration'],\n ['@Value', '注入值', '@Value(\"${$1}\")'],\n ['@Transactional', '事务', '@Transactional'],\n ['@Slf4j', 'Lombok日志', '@Slf4j'],\n ['@Data', 'Lombok数据类', '@Data'],\n ['@Getter', 'Lombok Getter', '@Getter'],\n ['@Setter', 'Lombok Setter', '@Setter'],\n ['@NoArgsConstructor', '无参构造', '@NoArgsConstructor'],\n ['@AllArgsConstructor', '全参构造', '@AllArgsConstructor'],\n ['@Builder', 'Lombok Builder', '@Builder'],\n ['@ToString', 'Lombok ToString', '@ToString'],\n ['@EqualsAndHashCode', 'Lombok Equals/HashCode', '@EqualsAndHashCode'],\n ['@Test', 'JUnit测试', '@Test'],\n ['@BeforeEach', 'JUnit前置', '@BeforeEach'],\n ['@AfterEach', 'JUnit后置', '@AfterEach'],\n ['@Nullable', '可空', '@Nullable'],\n ['@NotNull', '非空', '@NotNull'],\n ['@Valid', '验证', '@Valid'],\n ];\n const atIndex = before.lastIndexOf('@');\n const typed = before.substring(atIndex + 1).toLowerCase();\n const annotationRange = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: atIndex + 1,\n endColumn: position.column,\n };\n annotations.filter(([label]) => typed.length === 0 || label.toLowerCase().includes(typed)).forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range: annotationRange, kind: monaco.languages.CompletionItemKind.Interface, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 常用方法 - 在 . 后触发\n if (before.endsWith('.')) {\n const methods: [string, string, string][] = [\n // Object 方法\n ['toString()', '转字符串', 'toString()'],\n ['equals()', '比较相等', 'equals($1)'],\n ['hashCode()', '哈希码', 'hashCode()'],\n ['getClass()', '获取类', 'getClass()'],\n // String 方法\n ['length()', '字符串长度', 'length()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['isBlank()', '是否空白', 'isBlank()'],\n ['trim()', '去除空格', 'trim()'],\n ['strip()', '去除空白', 'strip()'],\n ['toLowerCase()', '转小写', 'toLowerCase()'],\n ['toUpperCase()', '转大写', 'toUpperCase()'],\n ['substring()', '截取子串', 'substring($1, $2)'],\n ['charAt()', '获取字符', 'charAt($1)'],\n ['indexOf()', '查找索引', 'indexOf($1)'],\n ['lastIndexOf()', '最后索引', 'lastIndexOf($1)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['startsWith()', '是否开头', 'startsWith($1)'],\n ['endsWith()', '是否结尾', 'endsWith($1)'],\n ['replace()', '替换', 'replace($1, $2)'],\n ['replaceAll()', '正则替换', 'replaceAll($1, $2)'],\n ['split()', '分割', 'split($1)'],\n ['join()', '连接', 'join($1, $2)'],\n ['format()', '格式化', 'format($1)'],\n ['matches()', '正则匹配', 'matches($1)'],\n // Collection 方法\n ['add()', '添加元素', 'add($1)'],\n ['addAll()', '添加所有', 'addAll($1)'],\n ['remove()', '移除元素', 'remove($1)'],\n ['removeAll()', '移除所有', 'removeAll($1)'],\n ['clear()', '清空', 'clear()'],\n ['size()', '大小', 'size()'],\n ['get()', '获取元素', 'get($1)'],\n ['set()', '设置元素', 'set($1, $2)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['containsAll()', '是否包含所有', 'containsAll($1)'],\n ['iterator()', '迭代器', 'iterator()'],\n ['toArray()', '转数组', 'toArray()'],\n ['stream()', '流', 'stream()'],\n ['forEach()', '遍历', 'forEach($1 -> $2)'],\n // Map 方法\n ['put()', '放入', 'put($1, $2)'],\n ['putAll()', '放入所有', 'putAll($1)'],\n ['get()', '获取', 'get($1)'],\n ['getOrDefault()', '获取或默认', 'getOrDefault($1, $2)'],\n ['containsKey()', '包含键', 'containsKey($1)'],\n ['containsValue()', '包含值', 'containsValue($1)'],\n ['keySet()', '键集合', 'keySet()'],\n ['values()', '值集合', 'values()'],\n ['entrySet()', '条目集合', 'entrySet()'],\n // Stream 方法\n ['filter()', '过滤', 'filter($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['sorted()', '排序', 'sorted()'],\n ['distinct()', '去重', 'distinct()'],\n ['limit()', '限制', 'limit($1)'],\n ['skip()', '跳过', 'skip($1)'],\n ['collect()', '收集', 'collect(Collectors.$1)'],\n ['toList()', '转列表', 'toList()'],\n ['findFirst()', '查找第一个', 'findFirst()'],\n ['findAny()', '查找任意', 'findAny()'],\n ['anyMatch()', '任意匹配', 'anyMatch($1 -> $2)'],\n ['allMatch()', '全部匹配', 'allMatch($1 -> $2)'],\n ['noneMatch()', '无匹配', 'noneMatch($1 -> $2)'],\n ['count()', '计数', 'count()'],\n ['reduce()', '归约', 'reduce($1, ($2, $3) -> $4)'],\n // Optional 方法\n ['isPresent()', '是否存在', 'isPresent()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['get()', '获取值', 'get()'],\n ['orElse()', '或者', 'orElse($1)'],\n ['orElseGet()', '或者获取', 'orElseGet(() -> $1)'],\n ['orElseThrow()', '或者抛出', 'orElseThrow(() -> new $1())'],\n ['ifPresent()', '如果存在', 'ifPresent($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['filter()', '过滤', 'filter($1 -> $2)'],\n // 打印\n ['println()', '打印换行', 'println($1)'],\n ['print()', '打印', 'print($1)'],\n ['printf()', '格式化打印', 'printf($1)'],\n ];\n methods.forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range, kind: monaco.languages.CompletionItemKind.Method, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 代码片段\n if (currentWord.length >= 1) {\n const snippets: [string, string, string][] = [\n // 输出\n ['sout', 'System.out.println', 'System.out.println($1);'],\n ['soutv', '打印变量', 'System.out.println(\"$1 = \" + $1);'],\n ['serr', 'System.err.println', 'System.err.println($1);'],\n ['souf', 'System.out.printf', 'System.out.printf(\"$1%n\", $2);'],\n \n // main方法\n ['psvm', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n ['main', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n \n // 方法定义\n ['pub', 'public方法', 'public $1 $2($3) {\\n $4\\n}'],\n ['priv', 'private方法', 'private $1 $2($3) {\\n $4\\n}'],\n ['prot', 'protected方法', 'protected $1 $2($3) {\\n $4\\n}'],\n ['pubsf', 'public static final', 'public static final $1 $2 = $3;'],\n ['privsf', 'private static final', 'private static final $1 $2 = $3;'],\n \n // 循环\n ['fori', 'for i循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['forr', 'for 倒序循环', 'for (int i = $1 - 1; i >= 0; i--) {\\n $2\\n}'],\n ['fore', '增强for循环', 'for ($1 $2 : $3) {\\n $4\\n}'],\n ['iter', '迭代器循环', 'for (Iterator<$1> it = $2.iterator(); it.hasNext(); ) {\\n $1 $3 = it.next();\\n $4\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['dowhile', 'do-while循环', 'do {\\n $1\\n} while ($2);'],\n \n // 条件\n ['ife', 'if-else', 'if ($1) {\\n $2\\n} else {\\n $3\\n}'],\n ['ifn', 'if null', 'if ($1 == null) {\\n $2\\n}'],\n ['ifnn', 'if not null', 'if ($1 != null) {\\n $2\\n}'],\n ['tern', '三元表达式', '$1 ? $2 : $3'],\n \n // 异常\n ['tryc', 'try-catch', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['trycf', 'try-catch-finally', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n} finally {\\n $3\\n}'],\n ['tryr', 'try-with-resources', 'try ($1) {\\n $2\\n} catch (Exception e) {\\n $3\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n \n // 集合创建\n ['lst', 'new ArrayList', 'List<$1> $2 = new ArrayList<>();'],\n ['lstaof', 'List.of', 'List.of($1)'],\n ['map', 'new HashMap', 'Map<$1, $2> $3 = new HashMap<>();'],\n ['mapof', 'Map.of', 'Map.of($1, $2)'],\n ['set', 'new HashSet', 'Set<$1> $2 = new HashSet<>();'],\n ['setof', 'Set.of', 'Set.of($1)'],\n \n // Stream\n ['stream', 'stream操作', '$1.stream()\\n .filter($2 -> $3)\\n .map($4 -> $5)\\n .collect(Collectors.toList())'],\n ['streamf', 'stream filter', '$1.stream().filter($2 -> $3).collect(Collectors.toList())'],\n ['streamm', 'stream map', '$1.stream().map($2 -> $3).collect(Collectors.toList())'],\n ['foreach', 'forEach', '$1.forEach($2 -> {\\n $3\\n});'],\n \n // Optional\n ['opt', 'Optional.of', 'Optional.of($1)'],\n ['optn', 'Optional.ofNullable', 'Optional.ofNullable($1)'],\n ['opte', 'Optional.empty', 'Optional.empty()'],\n \n // 日志\n ['log', 'log.info', 'log.info(\"$1\");'],\n ['logd', 'log.debug', 'log.debug(\"$1\");'],\n ['logw', 'log.warn', 'log.warn(\"$1\");'],\n ['loge', 'log.error', 'log.error(\"$1\", $2);'],\n ['logt', 'log.trace', 'log.trace(\"$1\");'],\n ['logv', 'log变量', 'log.info(\"$1 = {}\", $1);'],\n \n // 测试\n ['test', '@Test方法', '@Test\\nvoid $1() {\\n $2\\n}'],\n ['testd', '@Test带DisplayName', '@Test\\n@DisplayName(\"$1\")\\nvoid $2() {\\n $3\\n}'],\n ['before', '@BeforeEach', '@BeforeEach\\nvoid setUp() {\\n $1\\n}'],\n ['after', '@AfterEach', '@AfterEach\\nvoid tearDown() {\\n $1\\n}'],\n ['aseq', 'assertEquals', 'assertEquals($1, $2);'],\n ['asne', 'assertNotEquals', 'assertNotEquals($1, $2);'],\n ['ast', 'assertTrue', 'assertTrue($1);'],\n ['asf', 'assertFalse', 'assertFalse($1);'],\n ['asn', 'assertNull', 'assertNull($1);'],\n ['asnn', 'assertNotNull', 'assertNotNull($1);'],\n ['asth', 'assertThrows', 'assertThrows($1.class, () -> {\\n $2\\n});'],\n \n // Lambda\n ['lam', 'lambda表达式', '($1) -> $2'],\n ['lamb', 'lambda块', '($1) -> {\\n $2\\n}'],\n ['mr', '方法引用', '$1::$2'],\n \n // 构造器\n ['ctor', '构造方法', 'public $1($2) {\\n $3\\n}'],\n ['ctord', '默认构造方法', 'public $1() {\\n}'],\n \n // getter/setter\n ['get', 'getter方法', 'public $1 get$2() {\\n return this.$3;\\n}'],\n ['set', 'setter方法', 'public void set$1($2 $3) {\\n this.$3 = $3;\\n}'],\n ['getset', 'getter和setter', 'public $1 get$2() {\\n return this.$3;\\n}\\n\\npublic void set$2($1 $3) {\\n this.$3 = $3;\\n}'],\n \n // toString/equals/hashCode\n ['tostr', 'toString方法', '@Override\\npublic String toString() {\\n return \"$1{\" +\\n \"$2=\" + $2 +\\n \\'}\\';\\n}'],\n ['eqhc', 'equals和hashCode', '@Override\\npublic boolean equals(Object o) {\\n if (this == o) return true;\\n if (o == null || getClass() != o.getClass()) return false;\\n $1 that = ($1) o;\\n return Objects.equals($2, that.$2);\\n}\\n\\n@Override\\npublic int hashCode() {\\n return Objects.hash($2);\\n}'],\n \n // 单例\n ['singleton', '单例模式', 'private static final $1 INSTANCE = new $1();\\n\\nprivate $1() {}\\n\\npublic static $1 getInstance() {\\n return INSTANCE;\\n}'],\n \n // 日期时间\n ['now', 'LocalDateTime.now', 'LocalDateTime.now()'],\n ['today', 'LocalDate.now', 'LocalDate.now()'],\n ['dtf', 'DateTimeFormatter', 'DateTimeFormatter.ofPattern(\"$1\")'],\n ];\n snippets.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Snippet, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '1' + label, // 片段稍后显示\n });\n });\n }\n\n return { suggestions };\n },\n });\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"java-BrZSNBDG.js","names":[],"sources":["../src/components/FormComponent/FormCodeEditor/language/java.ts"],"sourcesContent":["import * as monaco from 'monaco-editor';\n\nconst conf = {\n // the default separators except `@$`\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n comments: {\n lineComment: \"//\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" }\n ],\n surroundingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: \"<\", close: \">\" }\n ],\n folding: {\n markers: {\n start: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))\"),\n end: new RegExp(\"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))\")\n }\n }\n};\nconst language = {\n defaultToken: \"\",\n tokenPostfix: \".java\",\n keywords: [\n \"abstract\",\n \"continue\",\n \"for\",\n \"new\",\n \"switch\",\n \"assert\",\n \"default\",\n \"goto\",\n \"package\",\n \"synchronized\",\n \"boolean\",\n \"do\",\n \"if\",\n \"private\",\n \"this\",\n \"break\",\n \"double\",\n \"implements\",\n \"protected\",\n \"throw\",\n \"byte\",\n \"else\",\n \"import\",\n \"public\",\n \"throws\",\n \"case\",\n \"enum\",\n \"instanceof\",\n \"return\",\n \"transient\",\n \"catch\",\n \"extends\",\n \"int\",\n \"short\",\n \"try\",\n \"char\",\n \"final\",\n \"interface\",\n \"static\",\n \"void\",\n \"class\",\n \"finally\",\n \"long\",\n \"strictfp\",\n \"volatile\",\n \"const\",\n \"float\",\n \"native\",\n \"super\",\n \"while\",\n \"true\",\n \"false\",\n \"yield\",\n \"record\",\n \"sealed\",\n \"non-sealed\",\n \"permits\"\n ],\n operators: [\n \"=\",\n \">\",\n \"<\",\n \"!\",\n \"~\",\n \"?\",\n \":\",\n \"==\",\n \"<=\",\n \">=\",\n \"!=\",\n \"&&\",\n \"||\",\n \"++\",\n \"--\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"&\",\n \"|\",\n \"^\",\n \"%\",\n \"<<\",\n \">>\",\n \">>>\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"&=\",\n \"|=\",\n \"^=\",\n \"%=\",\n \"<<=\",\n \">>=\",\n \">>>=\"\n ],\n // 常用类型\n typeKeywords: [\n 'String', 'Integer', 'Long', 'Double', 'Float', 'Boolean', 'Character', 'Byte', 'Short',\n 'Object', 'Class', 'System', 'Math', 'StringBuilder', 'StringBuffer',\n 'List', 'ArrayList', 'LinkedList', 'Map', 'HashMap', 'TreeMap', 'LinkedHashMap',\n 'Set', 'HashSet', 'TreeSet', 'LinkedHashSet', 'Queue', 'Deque', 'Stack',\n 'Collection', 'Collections', 'Arrays', 'Optional', 'Stream', 'Collectors',\n 'Exception', 'RuntimeException', 'Error', 'Throwable',\n 'Thread', 'Runnable', 'Callable', 'Future', 'CompletableFuture',\n 'Date', 'LocalDate', 'LocalTime', 'LocalDateTime', 'Instant', 'Duration',\n 'File', 'Path', 'Files', 'InputStream', 'OutputStream', 'Reader', 'Writer',\n 'Pattern', 'Matcher', 'Scanner', 'Random', 'UUID',\n 'BigDecimal', 'BigInteger', 'AtomicInteger', 'AtomicLong',\n 'Comparator', 'Comparable', 'Iterator', 'Iterable',\n 'Function', 'Consumer', 'Supplier', 'Predicate', 'BiFunction',\n ],\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n digits: /\\d+(_+\\d+)*/,\n octaldigits: /[0-7]+(_+[0-7]+)*/,\n binarydigits: /[0-1]+(_+[0-1]+)*/,\n hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // Special keyword with a dash\n [\"non-sealed\", \"keyword.non-sealed\"],\n // 方法调用 - xxx.method() 中的 method 显示为函数色\n [/([a-zA-Z_$][\\w$]*)(\\s*)(\\()/, [\n {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"function\"\n }\n },\n \"\",\n \"@brackets\"\n ]],\n // 类名 - 大写开头的标识符\n [/[A-Z][\\w$]*/, {\n cases: {\n \"@keywords\": \"keyword.$0\",\n \"@typeKeywords\": \"type\",\n \"@default\": \"type\"\n }\n }],\n // identifiers and keywords\n [\n /[a-z_$][\\w$]*/,\n {\n cases: {\n \"@keywords\": { token: \"keyword.$0\" },\n \"@default\": \"identifier\"\n }\n }\n ],\n // whitespace\n { include: \"@whitespace\" },\n // delimiters and operators\n [/[{}()\\[\\]]/, \"@brackets\"],\n [/[<>](?!@symbols)/, \"@brackets\"],\n [\n /@symbols/,\n {\n cases: {\n \"@operators\": \"delimiter\",\n \"@default\": \"\"\n }\n }\n ],\n // @ annotations.\n [/@\\s*[a-zA-Z_\\$][\\w\\$]*/, \"annotation\"],\n // numbers\n [/(@digits)[eE]([\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?[fFdD]?/, \"number.float\"],\n [/0[xX](@hexdigits)[Ll]?/, \"number.hex\"],\n [/0(@octaldigits)[Ll]?/, \"number.octal\"],\n [/0[bB](@binarydigits)[Ll]?/, \"number.binary\"],\n [/(@digits)[fFdD]/, \"number.float\"],\n [/(@digits)[lL]?/, \"number\"],\n // delimiter: after number because of .\\d floats\n [/[;,.]/, \"delimiter\"],\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n // non-teminated string\n [/\"\"\"/, \"string\", \"@multistring\"],\n [/\"/, \"string\", \"@string\"],\n // characters\n [/'[^\\\\']'/, \"string\"],\n [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n [/'/, \"string.invalid\"]\n ],\n whitespace: [\n [/[ \\t\\r\\n]+/, \"\"],\n [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@javadoc\"],\n [/\\/\\*/, \"comment\", \"@comment\"],\n [/\\/\\/.*$/, \"comment\"]\n ],\n comment: [\n [/[^\\/*]+/, \"comment\"],\n // [/\\/\\*/, 'comment', '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, 'comment.invalid' ], // this breaks block comments in the shape of /* //*/\n [/\\*\\//, \"comment\", \"@pop\"],\n [/[\\/*]/, \"comment\"]\n ],\n //Identical copy of comment above, except for the addition of .doc\n javadoc: [\n [/[^\\/*]+/, \"comment.doc\"],\n // [/\\/\\*/, 'comment.doc', '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, \"comment.doc.invalid\"],\n [/\\*\\//, \"comment.doc\", \"@pop\"],\n [/[\\/*]/, \"comment.doc\"]\n ],\n string: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, \"string\", \"@pop\"]\n ],\n multistring: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"\"\"/, \"string\", \"@pop\"],\n [/./, \"string\"]\n ]\n }\n};\nexport {\n conf,\n language,\n registerJavaCompletion,\n defineJavaThemes\n};\n\nfunction defineJavaThemes() {\n // Java 暗色主题\n monaco.editor.defineTheme('java-dark', {\n base: 'vs-dark',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.package', foreground: 'C586C0' },\n { token: 'keyword.import', foreground: 'C586C0' },\n { token: 'keyword.class', foreground: '569CD6' },\n { token: 'keyword.interface', foreground: '569CD6' },\n { token: 'keyword.public', foreground: '569CD6' },\n { token: 'keyword.private', foreground: '569CD6' },\n { token: 'keyword.protected', foreground: '569CD6' },\n { token: 'keyword.static', foreground: '569CD6' },\n { token: 'keyword.final', foreground: '569CD6' },\n { token: 'keyword.void', foreground: '569CD6' },\n { token: 'keyword.return', foreground: 'C586C0' },\n { token: 'keyword.new', foreground: '569CD6' },\n { token: 'keyword.if', foreground: 'C586C0' },\n { token: 'keyword.else', foreground: 'C586C0' },\n { token: 'keyword.for', foreground: 'C586C0' },\n { token: 'keyword.while', foreground: 'C586C0' },\n { token: 'keyword.try', foreground: 'C586C0' },\n { token: 'keyword.catch', foreground: 'C586C0' },\n { token: 'keyword.throw', foreground: 'C586C0' },\n { token: 'keyword.throws', foreground: 'C586C0' },\n { token: 'type', foreground: '4EC9B0' }, // 青色 - 类型/类名\n { token: 'function', foreground: 'DCDCAA' }, // 黄色 - 方法名\n { token: 'annotation', foreground: 'D7BA7D' }, // 金色 - 注解\n { token: 'string', foreground: 'CE9178' }, // 橙色 - 字符串\n { token: 'number', foreground: 'B5CEA8' }, // 浅绿 - 数字\n { token: 'comment', foreground: '6A9955' }, // 绿色 - 注释\n { token: 'comment.doc', foreground: '6A9955' },\n { token: 'identifier', foreground: '9CDCFE' }, // 浅蓝 - 变量\n { token: 'delimiter', foreground: 'D4D4D4' },\n ],\n colors: {},\n });\n\n // Java 亮色主题\n monaco.editor.defineTheme('java-light', {\n base: 'vs',\n inherit: true,\n rules: [\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.package', foreground: 'AF00DB' },\n { token: 'keyword.import', foreground: 'AF00DB' },\n { token: 'keyword.return', foreground: 'AF00DB' },\n { token: 'keyword.if', foreground: 'AF00DB' },\n { token: 'keyword.else', foreground: 'AF00DB' },\n { token: 'keyword.for', foreground: 'AF00DB' },\n { token: 'keyword.while', foreground: 'AF00DB' },\n { token: 'keyword.try', foreground: 'AF00DB' },\n { token: 'keyword.catch', foreground: 'AF00DB' },\n { token: 'keyword.throw', foreground: 'AF00DB' },\n { token: 'type', foreground: '267F99' }, // 青色 - 类型/类名\n { token: 'function', foreground: '795E26' }, // 棕黄 - 方法名\n { token: 'annotation', foreground: '808000' }, // 橄榄 - 注解\n { token: 'string', foreground: 'A31515' }, // 红色 - 字符串\n { token: 'number', foreground: '098658' }, // 绿色 - 数字\n { token: 'comment', foreground: '008000' }, // 绿色 - 注释\n { token: 'identifier', foreground: '001080' }, // 深蓝 - 变量\n ],\n colors: {},\n });\n}\n\nlet javaCompletionRegistered = false;\n\nfunction registerJavaCompletion() {\n if (javaCompletionRegistered) return;\n javaCompletionRegistered = true;\n\n monaco.languages.registerCompletionItemProvider('java', {\n triggerCharacters: ['.', '@', ' '],\n provideCompletionItems: (model, position) => {\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n const line = model.getLineContent(position.lineNumber);\n const before = line.substring(0, position.column - 1);\n const currentWord = word.word.toLowerCase();\n const suggestions: monaco.languages.CompletionItem[] = [];\n\n // Java 关键字和类型 - 只要有输入就提示\n if (currentWord.length >= 1) {\n const keywords: [string, string, string][] = [\n // 访问修饰符\n ['public', '公共访问', 'public '],\n ['private', '私有访问', 'private '],\n ['protected', '受保护访问', 'protected '],\n // 修饰符\n ['static', '静态', 'static '],\n ['final', '最终', 'final '],\n ['abstract', '抽象', 'abstract '],\n ['native', '本地方法', 'native '],\n ['strictfp', '严格浮点', 'strictfp '],\n ['synchronized', '同步', 'synchronized '],\n ['volatile', '易变', 'volatile '],\n ['transient', '瞬态', 'transient '],\n // 类型声明\n ['class', '类', 'class $1 {\\n $2\\n}'],\n ['interface', '接口', 'interface $1 {\\n $2\\n}'],\n ['enum', '枚举', 'enum $1 {\\n $2\\n}'],\n ['record', '记录类', 'record $1($2) {}'],\n ['@interface', '注解定义', '@interface $1 {\\n $2\\n}'],\n // 继承实现\n ['extends', '继承', 'extends '],\n ['implements', '实现', 'implements '],\n ['permits', '允许', 'permits '],\n ['sealed', '密封类', 'sealed '],\n ['non-sealed', '非密封', 'non-sealed '],\n // 包和导入\n ['package', '包声明', 'package $1;'],\n ['import', '导入', 'import $1;'],\n ['import static', '静态导入', 'import static $1;'],\n // 控制流\n ['if', '条件判断', 'if ($1) {\\n $2\\n}'],\n ['else', '否则', 'else {\\n $1\\n}'],\n ['else if', '否则如果', 'else if ($1) {\\n $2\\n}'],\n ['switch', 'switch语句', 'switch ($1) {\\n case $2 -> $3;\\n default -> $4;\\n}'],\n ['case', 'case分支', 'case $1 -> $2;'],\n ['default', '默认', 'default -> $1;'],\n ['for', 'for循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['do', 'do-while', 'do {\\n $1\\n} while ($2);'],\n ['break', '跳出循环', 'break;'],\n ['continue', '继续循环', 'continue;'],\n ['return', '返回', 'return $1;'],\n ['yield', 'yield返回', 'yield $1;'],\n // 异常处理\n ['try', 'try块', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['catch', 'catch块', 'catch ($1 e) {\\n $2\\n}'],\n ['finally', 'finally块', 'finally {\\n $1\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n ['throws', '声明异常', 'throws $1'],\n // 对象操作\n ['new', '创建对象', 'new $1($2)'],\n ['this', '当前对象', 'this'],\n ['super', '父类引用', 'super'],\n ['instanceof', '类型检查', 'instanceof $1'],\n ['var', '类型推断', 'var $1 = $2;'],\n // 断言\n ['assert', '断言', 'assert $1 : \"$2\";'],\n // 常量\n ['null', '空值', 'null'],\n ['true', '真', 'true'],\n ['false', '假', 'false'],\n \n // 基本类型\n ['void', '无返回值', 'void'],\n ['boolean', '布尔型', 'boolean'],\n ['byte', '字节型', 'byte'],\n ['short', '短整型', 'short'],\n ['int', '整型', 'int'],\n ['long', '长整型', 'long'],\n ['float', '单精度浮点', 'float'],\n ['double', '双精度浮点', 'double'],\n ['char', '字符型', 'char'],\n \n // 包装类\n ['Boolean', '布尔包装类', 'Boolean'],\n ['Byte', '字节包装类', 'Byte'],\n ['Short', '短整型包装类', 'Short'],\n ['Integer', '整型包装类', 'Integer'],\n ['Long', '长整型包装类', 'Long'],\n ['Float', '单精度包装类', 'Float'],\n ['Double', '双精度包装类', 'Double'],\n ['Character', '字符包装类', 'Character'],\n ['Number', '数字基类', 'Number'],\n \n // 常用类\n ['String', '字符串', 'String'],\n ['StringBuilder', '字符串构建器', 'StringBuilder'],\n ['StringBuffer', '线程安全字符串', 'StringBuffer'],\n ['Object', '对象基类', 'Object'],\n ['Class', '类对象', 'Class<$1>'],\n ['System', '系统类', 'System'],\n ['Math', '数学类', 'Math'],\n ['Arrays', '数组工具', 'Arrays'],\n ['Objects', '对象工具', 'Objects'],\n ['Collections', '集合工具', 'Collections'],\n \n // 集合类\n ['List', '列表接口', 'List<$1>'],\n ['ArrayList', '数组列表', 'new ArrayList<$1>()'],\n ['LinkedList', '链表', 'new LinkedList<$1>()'],\n ['Set', '集合接口', 'Set<$1>'],\n ['HashSet', '哈希集合', 'new HashSet<$1>()'],\n ['TreeSet', '树集合', 'new TreeSet<$1>()'],\n ['LinkedHashSet', '有序哈希集合', 'new LinkedHashSet<$1>()'],\n ['Map', '映射接口', 'Map<$1, $2>'],\n ['HashMap', '哈希映射', 'new HashMap<$1, $2>()'],\n ['TreeMap', '树映射', 'new TreeMap<$1, $2>()'],\n ['LinkedHashMap', '有序哈希映射', 'new LinkedHashMap<$1, $2>()'],\n ['ConcurrentHashMap', '并发哈希映射', 'new ConcurrentHashMap<$1, $2>()'],\n ['Queue', '队列接口', 'Queue<$1>'],\n ['Deque', '双端队列', 'Deque<$1>'],\n ['Stack', '栈', 'new Stack<$1>()'],\n ['Vector', '向量', 'new Vector<$1>()'],\n ['Collection', '集合接口', 'Collection<$1>'],\n ['Iterable', '可迭代接口', 'Iterable<$1>'],\n ['Iterator', '迭代器', 'Iterator<$1>'],\n \n // Optional\n ['Optional', 'Optional容器', 'Optional<$1>'],\n ['OptionalInt', 'int的Optional', 'OptionalInt'],\n ['OptionalLong', 'long的Optional', 'OptionalLong'],\n ['OptionalDouble', 'double的Optional', 'OptionalDouble'],\n \n // Stream\n ['Stream', '流', 'Stream<$1>'],\n ['IntStream', 'int流', 'IntStream'],\n ['LongStream', 'long流', 'LongStream'],\n ['DoubleStream', 'double流', 'DoubleStream'],\n ['Collectors', '收集器', 'Collectors'],\n \n // 函数式接口\n ['Function', '函数接口', 'Function<$1, $2>'],\n ['BiFunction', '双参数函数', 'BiFunction<$1, $2, $3>'],\n ['Consumer', '消费者接口', 'Consumer<$1>'],\n ['BiConsumer', '双参数消费者', 'BiConsumer<$1, $2>'],\n ['Supplier', '供应者接口', 'Supplier<$1>'],\n ['Predicate', '断言接口', 'Predicate<$1>'],\n ['BiPredicate', '双参数断言', 'BiPredicate<$1, $2>'],\n ['UnaryOperator', '一元操作符', 'UnaryOperator<$1>'],\n ['BinaryOperator', '二元操作符', 'BinaryOperator<$1>'],\n ['Comparator', '比较器', 'Comparator<$1>'],\n ['Comparable', '可比较接口', 'Comparable<$1>'],\n ['Runnable', '可运行接口', 'Runnable'],\n ['Callable', '可调用接口', 'Callable<$1>'],\n \n // 异常类\n ['Exception', '异常', 'Exception'],\n ['RuntimeException', '运行时异常', 'RuntimeException'],\n ['NullPointerException', '空指针异常', 'NullPointerException'],\n ['IllegalArgumentException', '非法参数异常', 'IllegalArgumentException'],\n ['IllegalStateException', '非法状态异常', 'IllegalStateException'],\n ['IndexOutOfBoundsException', '索引越界异常', 'IndexOutOfBoundsException'],\n ['IOException', 'IO异常', 'IOException'],\n ['FileNotFoundException', '文件未找到异常', 'FileNotFoundException'],\n ['SQLException', 'SQL异常', 'SQLException'],\n ['ClassNotFoundException', '类未找到异常', 'ClassNotFoundException'],\n ['NoSuchMethodException', '方法未找到异常', 'NoSuchMethodException'],\n ['Error', '错误', 'Error'],\n ['Throwable', '可抛出', 'Throwable'],\n \n // 并发类\n ['Thread', '线程', 'Thread'],\n ['Future', 'Future接口', 'Future<$1>'],\n ['CompletableFuture', '可完成Future', 'CompletableFuture<$1>'],\n ['ExecutorService', '执行器服务', 'ExecutorService'],\n ['Executors', '执行器工厂', 'Executors'],\n ['ThreadPoolExecutor', '线程池执行器', 'ThreadPoolExecutor'],\n ['CountDownLatch', '倒计时门闩', 'CountDownLatch'],\n ['CyclicBarrier', '循环屏障', 'CyclicBarrier'],\n ['Semaphore', '信号量', 'Semaphore'],\n ['ReentrantLock', '可重入锁', 'ReentrantLock'],\n ['AtomicInteger', '原子整数', 'AtomicInteger'],\n ['AtomicLong', '原子长整数', 'AtomicLong'],\n ['AtomicBoolean', '原子布尔', 'AtomicBoolean'],\n ['AtomicReference', '原子引用', 'AtomicReference<$1>'],\n \n // 日期时间\n ['Date', '日期(旧)', 'Date'],\n ['Calendar', '日历(旧)', 'Calendar'],\n ['LocalDate', '本地日期', 'LocalDate'],\n ['LocalTime', '本地时间', 'LocalTime'],\n ['LocalDateTime', '本地日期时间', 'LocalDateTime'],\n ['ZonedDateTime', '带时区日期时间', 'ZonedDateTime'],\n ['Instant', '时间戳', 'Instant'],\n ['Duration', '时间段', 'Duration'],\n ['Period', '日期段', 'Period'],\n ['DateTimeFormatter', '日期格式化', 'DateTimeFormatter'],\n \n // IO类\n ['File', '文件', 'File'],\n ['Path', '路径', 'Path'],\n ['Paths', '路径工具', 'Paths'],\n ['Files', '文件工具', 'Files'],\n ['InputStream', '输入流', 'InputStream'],\n ['OutputStream', '输出流', 'OutputStream'],\n ['FileInputStream', '文件输入流', 'FileInputStream'],\n ['FileOutputStream', '文件输出流', 'FileOutputStream'],\n ['BufferedReader', '缓冲读取器', 'BufferedReader'],\n ['BufferedWriter', '缓冲写入器', 'BufferedWriter'],\n ['Reader', '读取器', 'Reader'],\n ['Writer', '写入器', 'Writer'],\n \n // 其他常用\n ['BigDecimal', '高精度小数', 'BigDecimal'],\n ['BigInteger', '高精度整数', 'BigInteger'],\n ['UUID', 'UUID', 'UUID'],\n ['Random', '随机数', 'Random'],\n ['Pattern', '正则模式', 'Pattern'],\n ['Matcher', '正则匹配器', 'Matcher'],\n ['Scanner', '扫描器', 'Scanner'],\n ['Enum', '枚举基类', 'Enum'],\n ['Annotation', '注解接口', 'Annotation'],\n ['Override', '重写注解', '@Override'],\n ['Deprecated', '弃用注解', '@Deprecated'],\n ['SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ];\n keywords.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Keyword, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '0' + label, // 优先显示\n });\n });\n }\n\n // 注解\n if (before.endsWith('@') || /@\\w*$/.test(before)) {\n const annotations: [string, string, string][] = [\n ['@Override', '重写方法', '@Override'],\n ['@Deprecated', '已弃用', '@Deprecated'],\n ['@SuppressWarnings', '抑制警告', '@SuppressWarnings(\"$1\")'],\n ['@FunctionalInterface', '函数式接口', '@FunctionalInterface'],\n ['@SafeVarargs', '安全可变参数', '@SafeVarargs'],\n ['@Autowired', 'Spring自动注入', '@Autowired'],\n ['@Component', 'Spring组件', '@Component'],\n ['@Service', 'Spring服务', '@Service'],\n ['@Repository', 'Spring仓库', '@Repository'],\n ['@Controller', 'Spring控制器', '@Controller'],\n ['@RestController', 'REST控制器', '@RestController'],\n ['@RequestMapping', '请求映射', '@RequestMapping(\"$1\")'],\n ['@GetMapping', 'GET请求', '@GetMapping(\"$1\")'],\n ['@PostMapping', 'POST请求', '@PostMapping(\"$1\")'],\n ['@PutMapping', 'PUT请求', '@PutMapping(\"$1\")'],\n ['@DeleteMapping', 'DELETE请求', '@DeleteMapping(\"$1\")'],\n ['@PathVariable', '路径变量', '@PathVariable'],\n ['@RequestParam', '请求参数', '@RequestParam'],\n ['@RequestBody', '请求体', '@RequestBody'],\n ['@ResponseBody', '响应体', '@ResponseBody'],\n ['@Bean', 'Spring Bean', '@Bean'],\n ['@Configuration', '配置类', '@Configuration'],\n ['@Value', '注入值', '@Value(\"${$1}\")'],\n ['@Transactional', '事务', '@Transactional'],\n ['@Slf4j', 'Lombok日志', '@Slf4j'],\n ['@Data', 'Lombok数据类', '@Data'],\n ['@Getter', 'Lombok Getter', '@Getter'],\n ['@Setter', 'Lombok Setter', '@Setter'],\n ['@NoArgsConstructor', '无参构造', '@NoArgsConstructor'],\n ['@AllArgsConstructor', '全参构造', '@AllArgsConstructor'],\n ['@Builder', 'Lombok Builder', '@Builder'],\n ['@ToString', 'Lombok ToString', '@ToString'],\n ['@EqualsAndHashCode', 'Lombok Equals/HashCode', '@EqualsAndHashCode'],\n ['@Test', 'JUnit测试', '@Test'],\n ['@BeforeEach', 'JUnit前置', '@BeforeEach'],\n ['@AfterEach', 'JUnit后置', '@AfterEach'],\n ['@Nullable', '可空', '@Nullable'],\n ['@NotNull', '非空', '@NotNull'],\n ['@Valid', '验证', '@Valid'],\n ];\n const atIndex = before.lastIndexOf('@');\n const typed = before.substring(atIndex + 1).toLowerCase();\n const annotationRange = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: atIndex + 1,\n endColumn: position.column,\n };\n annotations.filter(([label]) => typed.length === 0 || label.toLowerCase().includes(typed)).forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range: annotationRange, kind: monaco.languages.CompletionItemKind.Interface, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 常用方法 - 在 . 后触发\n if (before.endsWith('.')) {\n const methods: [string, string, string][] = [\n // Object 方法\n ['toString()', '转字符串', 'toString()'],\n ['equals()', '比较相等', 'equals($1)'],\n ['hashCode()', '哈希码', 'hashCode()'],\n ['getClass()', '获取类', 'getClass()'],\n // String 方法\n ['length()', '字符串长度', 'length()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['isBlank()', '是否空白', 'isBlank()'],\n ['trim()', '去除空格', 'trim()'],\n ['strip()', '去除空白', 'strip()'],\n ['toLowerCase()', '转小写', 'toLowerCase()'],\n ['toUpperCase()', '转大写', 'toUpperCase()'],\n ['substring()', '截取子串', 'substring($1, $2)'],\n ['charAt()', '获取字符', 'charAt($1)'],\n ['indexOf()', '查找索引', 'indexOf($1)'],\n ['lastIndexOf()', '最后索引', 'lastIndexOf($1)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['startsWith()', '是否开头', 'startsWith($1)'],\n ['endsWith()', '是否结尾', 'endsWith($1)'],\n ['replace()', '替换', 'replace($1, $2)'],\n ['replaceAll()', '正则替换', 'replaceAll($1, $2)'],\n ['split()', '分割', 'split($1)'],\n ['join()', '连接', 'join($1, $2)'],\n ['format()', '格式化', 'format($1)'],\n ['matches()', '正则匹配', 'matches($1)'],\n // Collection 方法\n ['add()', '添加元素', 'add($1)'],\n ['addAll()', '添加所有', 'addAll($1)'],\n ['remove()', '移除元素', 'remove($1)'],\n ['removeAll()', '移除所有', 'removeAll($1)'],\n ['clear()', '清空', 'clear()'],\n ['size()', '大小', 'size()'],\n ['get()', '获取元素', 'get($1)'],\n ['set()', '设置元素', 'set($1, $2)'],\n ['contains()', '是否包含', 'contains($1)'],\n ['containsAll()', '是否包含所有', 'containsAll($1)'],\n ['iterator()', '迭代器', 'iterator()'],\n ['toArray()', '转数组', 'toArray()'],\n ['stream()', '流', 'stream()'],\n ['forEach()', '遍历', 'forEach($1 -> $2)'],\n // Map 方法\n ['put()', '放入', 'put($1, $2)'],\n ['putAll()', '放入所有', 'putAll($1)'],\n ['get()', '获取', 'get($1)'],\n ['getOrDefault()', '获取或默认', 'getOrDefault($1, $2)'],\n ['containsKey()', '包含键', 'containsKey($1)'],\n ['containsValue()', '包含值', 'containsValue($1)'],\n ['keySet()', '键集合', 'keySet()'],\n ['values()', '值集合', 'values()'],\n ['entrySet()', '条目集合', 'entrySet()'],\n // Stream 方法\n ['filter()', '过滤', 'filter($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['sorted()', '排序', 'sorted()'],\n ['distinct()', '去重', 'distinct()'],\n ['limit()', '限制', 'limit($1)'],\n ['skip()', '跳过', 'skip($1)'],\n ['collect()', '收集', 'collect(Collectors.$1)'],\n ['toList()', '转列表', 'toList()'],\n ['findFirst()', '查找第一个', 'findFirst()'],\n ['findAny()', '查找任意', 'findAny()'],\n ['anyMatch()', '任意匹配', 'anyMatch($1 -> $2)'],\n ['allMatch()', '全部匹配', 'allMatch($1 -> $2)'],\n ['noneMatch()', '无匹配', 'noneMatch($1 -> $2)'],\n ['count()', '计数', 'count()'],\n ['reduce()', '归约', 'reduce($1, ($2, $3) -> $4)'],\n // Optional 方法\n ['isPresent()', '是否存在', 'isPresent()'],\n ['isEmpty()', '是否为空', 'isEmpty()'],\n ['get()', '获取值', 'get()'],\n ['orElse()', '或者', 'orElse($1)'],\n ['orElseGet()', '或者获取', 'orElseGet(() -> $1)'],\n ['orElseThrow()', '或者抛出', 'orElseThrow(() -> new $1())'],\n ['ifPresent()', '如果存在', 'ifPresent($1 -> $2)'],\n ['map()', '映射', 'map($1 -> $2)'],\n ['flatMap()', '扁平映射', 'flatMap($1 -> $2)'],\n ['filter()', '过滤', 'filter($1 -> $2)'],\n // 打印\n ['println()', '打印换行', 'println($1)'],\n ['print()', '打印', 'print($1)'],\n ['printf()', '格式化打印', 'printf($1)'],\n ];\n methods.forEach(([label, detail, text]) => {\n suggestions.push({ label, detail, insertText: text, range, kind: monaco.languages.CompletionItemKind.Method, insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet });\n });\n }\n\n // 代码片段\n if (currentWord.length >= 1) {\n const snippets: [string, string, string][] = [\n // 输出\n ['sout', 'System.out.println', 'System.out.println($1);'],\n ['soutv', '打印变量', 'System.out.println(\"$1 = \" + $1);'],\n ['serr', 'System.err.println', 'System.err.println($1);'],\n ['souf', 'System.out.printf', 'System.out.printf(\"$1%n\", $2);'],\n \n // main方法\n ['psvm', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n ['main', 'main方法', 'public static void main(String[] args) {\\n $1\\n}'],\n \n // 方法定义\n ['pub', 'public方法', 'public $1 $2($3) {\\n $4\\n}'],\n ['priv', 'private方法', 'private $1 $2($3) {\\n $4\\n}'],\n ['prot', 'protected方法', 'protected $1 $2($3) {\\n $4\\n}'],\n ['pubsf', 'public static final', 'public static final $1 $2 = $3;'],\n ['privsf', 'private static final', 'private static final $1 $2 = $3;'],\n \n // 循环\n ['fori', 'for i循环', 'for (int i = 0; i < $1; i++) {\\n $2\\n}'],\n ['forr', 'for 倒序循环', 'for (int i = $1 - 1; i >= 0; i--) {\\n $2\\n}'],\n ['fore', '增强for循环', 'for ($1 $2 : $3) {\\n $4\\n}'],\n ['iter', '迭代器循环', 'for (Iterator<$1> it = $2.iterator(); it.hasNext(); ) {\\n $1 $3 = it.next();\\n $4\\n}'],\n ['while', 'while循环', 'while ($1) {\\n $2\\n}'],\n ['dowhile', 'do-while循环', 'do {\\n $1\\n} while ($2);'],\n \n // 条件\n ['ife', 'if-else', 'if ($1) {\\n $2\\n} else {\\n $3\\n}'],\n ['ifn', 'if null', 'if ($1 == null) {\\n $2\\n}'],\n ['ifnn', 'if not null', 'if ($1 != null) {\\n $2\\n}'],\n ['tern', '三元表达式', '$1 ? $2 : $3'],\n \n // 异常\n ['tryc', 'try-catch', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n}'],\n ['trycf', 'try-catch-finally', 'try {\\n $1\\n} catch (Exception e) {\\n $2\\n} finally {\\n $3\\n}'],\n ['tryr', 'try-with-resources', 'try ($1) {\\n $2\\n} catch (Exception e) {\\n $3\\n}'],\n ['throw', '抛出异常', 'throw new $1(\"$2\");'],\n \n // 集合创建\n ['lst', 'new ArrayList', 'List<$1> $2 = new ArrayList<>();'],\n ['lstaof', 'List.of', 'List.of($1)'],\n ['map', 'new HashMap', 'Map<$1, $2> $3 = new HashMap<>();'],\n ['mapof', 'Map.of', 'Map.of($1, $2)'],\n ['set', 'new HashSet', 'Set<$1> $2 = new HashSet<>();'],\n ['setof', 'Set.of', 'Set.of($1)'],\n \n // Stream\n ['stream', 'stream操作', '$1.stream()\\n .filter($2 -> $3)\\n .map($4 -> $5)\\n .collect(Collectors.toList())'],\n ['streamf', 'stream filter', '$1.stream().filter($2 -> $3).collect(Collectors.toList())'],\n ['streamm', 'stream map', '$1.stream().map($2 -> $3).collect(Collectors.toList())'],\n ['foreach', 'forEach', '$1.forEach($2 -> {\\n $3\\n});'],\n \n // Optional\n ['opt', 'Optional.of', 'Optional.of($1)'],\n ['optn', 'Optional.ofNullable', 'Optional.ofNullable($1)'],\n ['opte', 'Optional.empty', 'Optional.empty()'],\n \n // 日志\n ['log', 'log.info', 'log.info(\"$1\");'],\n ['logd', 'log.debug', 'log.debug(\"$1\");'],\n ['logw', 'log.warn', 'log.warn(\"$1\");'],\n ['loge', 'log.error', 'log.error(\"$1\", $2);'],\n ['logt', 'log.trace', 'log.trace(\"$1\");'],\n ['logv', 'log变量', 'log.info(\"$1 = {}\", $1);'],\n \n // 测试\n ['test', '@Test方法', '@Test\\nvoid $1() {\\n $2\\n}'],\n ['testd', '@Test带DisplayName', '@Test\\n@DisplayName(\"$1\")\\nvoid $2() {\\n $3\\n}'],\n ['before', '@BeforeEach', '@BeforeEach\\nvoid setUp() {\\n $1\\n}'],\n ['after', '@AfterEach', '@AfterEach\\nvoid tearDown() {\\n $1\\n}'],\n ['aseq', 'assertEquals', 'assertEquals($1, $2);'],\n ['asne', 'assertNotEquals', 'assertNotEquals($1, $2);'],\n ['ast', 'assertTrue', 'assertTrue($1);'],\n ['asf', 'assertFalse', 'assertFalse($1);'],\n ['asn', 'assertNull', 'assertNull($1);'],\n ['asnn', 'assertNotNull', 'assertNotNull($1);'],\n ['asth', 'assertThrows', 'assertThrows($1.class, () -> {\\n $2\\n});'],\n \n // Lambda\n ['lam', 'lambda表达式', '($1) -> $2'],\n ['lamb', 'lambda块', '($1) -> {\\n $2\\n}'],\n ['mr', '方法引用', '$1::$2'],\n \n // 构造器\n ['ctor', '构造方法', 'public $1($2) {\\n $3\\n}'],\n ['ctord', '默认构造方法', 'public $1() {\\n}'],\n \n // getter/setter\n ['get', 'getter方法', 'public $1 get$2() {\\n return this.$3;\\n}'],\n ['set', 'setter方法', 'public void set$1($2 $3) {\\n this.$3 = $3;\\n}'],\n ['getset', 'getter和setter', 'public $1 get$2() {\\n return this.$3;\\n}\\n\\npublic void set$2($1 $3) {\\n this.$3 = $3;\\n}'],\n \n // toString/equals/hashCode\n ['tostr', 'toString方法', '@Override\\npublic String toString() {\\n return \"$1{\" +\\n \"$2=\" + $2 +\\n \\'}\\';\\n}'],\n ['eqhc', 'equals和hashCode', '@Override\\npublic boolean equals(Object o) {\\n if (this == o) return true;\\n if (o == null || getClass() != o.getClass()) return false;\\n $1 that = ($1) o;\\n return Objects.equals($2, that.$2);\\n}\\n\\n@Override\\npublic int hashCode() {\\n return Objects.hash($2);\\n}'],\n \n // 单例\n ['singleton', '单例模式', 'private static final $1 INSTANCE = new $1();\\n\\nprivate $1() {}\\n\\npublic static $1 getInstance() {\\n return INSTANCE;\\n}'],\n \n // 日期时间\n ['now', 'LocalDateTime.now', 'LocalDateTime.now()'],\n ['today', 'LocalDate.now', 'LocalDate.now()'],\n ['dtf', 'DateTimeFormatter', 'DateTimeFormatter.ofPattern(\"$1\")'],\n ];\n snippets.filter(([label]) => label.toLowerCase().startsWith(currentWord)).forEach(([label, detail, text]) => {\n suggestions.push({ \n label, \n detail, \n insertText: text, \n range, \n kind: monaco.languages.CompletionItemKind.Snippet, \n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n sortText: '1' + label, // 片段稍后显示\n });\n });\n }\n\n return { suggestions };\n },\n });\n}"],"mappings":"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"}
|
package/dist/keli-ui.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.el-col-plus[data-v-57329ddf],.el-row-plus[data-v-c207f87e]{box-sizing:border-box}.tool-bar[data-v-c1f98d58]{background:var(--el-fill-color-blank);padding:8px}.tool-bar[data-v-c1f98d58] .el-scrollbar__view{flex-direction:row-reverse;justify-content:flex-start;gap:8px;display:flex}.query-bar-client{background:var(--el-fill-color-blank);padding:8px 8px 0}.min-width[data-v-e02acf5d]{min-width:120px}.filterBoard[data-v-7e102fe5]{background:var(--el-fill-color-blank);flex-direction:column;height:calc(100% - 12px);margin:6px 6px 6px 0;padding:12px 8px 8px;display:flex}.filterBoard .tree-container[data-v-7e102fe5]{flex-grow:1;height:0;margin-top:12px}.custom-tree-node[data-v-7e102fe5]{border-radius:calc(var(--el-border-radius-base) - 1px);flex:1;justify-content:space-between;align-items:center;padding:4px 4px 4px 6px;font-size:14px;display:flex}.is-checked[data-v-7e102fe5]{color:#fff;background-color:var(--el-color-primary)!important}.text[data-v-b9d89f3c]{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;display:inline-block;overflow:hidden}.text[data-v-9da76d44]{cursor:pointer;width:100%}.table-check-box-async[data-v-e263854d]{width:100%}.table-check-box-async .text[data-v-e263854d]{cursor:pointer}.dialog-header[data-v-e263854d]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.ke-table-render-client{background:var(--overlay-content);flex-direction:column;height:100%;display:flex}.ke-query-bar-client{margin-top:6px}.ke-table-tool-button{margin:6px 2px}.ke-query-bar-client,.ke-table-tool-button,.ke-pagination-div{flex-shrink:0}.ke-vxe-grid-container{flex-grow:1;height:0;overflow:hidden}.ke-vxe-grid-container .vxe-grid{height:100%;overflow:auto}.ke-pagination-div{background:var(--el-fill-color-blank);border-radius:4px;margin-top:10px;padding:6px}.vxe-grid{-webkit-user-select:none;user-select:none}[data-v-607ab83a] .el-scrollbar__wrap{overflow-x:hidden!important}[data-v-607ab83a] .el-scrollbar__bar.is-horizontal{height:0!important}[data-v-607ab83a] .el-form-item{margin-bottom:0!important}.table-card-render-client[data-v-607ab83a]{flex-direction:column;height:100%;display:flex}.title-wrapper[data-v-607ab83a]{justify-content:space-between;align-items:center;display:flex}.title-wrapper .title-text[data-v-607ab83a]{flex:1}.title-wrapper .dropdown-wrapper[data-v-607ab83a]{margin-left:auto}.table-tool-button[data-v-607ab83a]{margin-top:6px}.card-container[data-v-607ab83a]{flex-grow:1;height:0;overflow:hidden}.pagination-div[data-v-607ab83a]{background:var(--el-fill-color-blank);margin-top:10px;padding:6px}.full[data-v-8f2c6d44]{width:100%}td.current .dateCell[data-v-4a6233e0]{color:#fff;background-color:var(--el-color-primary);border-radius:calc(var(--el-border-radius-base) - 1px)}td.today .dateCell[data-v-4a6233e0]{color:var(--el-color-primary)}.dateCell[data-v-4a6233e0]{width:48px;height:42px}.dateCell span[data-v-4a6233e0]{display:block}.dateCell .solar_calendar[data-v-4a6233e0]{font-size:16px;font-weight:400}.dateCell .lunar_calendar[data-v-4a6233e0]{text-overflow:ellipsis;white-space:nowrap;margin-top:-14px;margin-bottom:-6px;font-size:10px;overflow:hidden}td.current .dateCell[data-v-cb054933]{color:#fff;background-color:var(--el-color-primary);border-radius:calc(var(--el-border-radius-base) - 1px)}td.today .dateCell[data-v-cb054933]{color:var(--el-color-primary)}.dateCell[data-v-cb054933]{width:48px;height:42px}.dateCell span[data-v-cb054933]{display:block}.dateCell .solar_calendar[data-v-cb054933]{font-size:16px;font-weight:400}.dateCell .lunar_calendar[data-v-cb054933]{text-overflow:ellipsis;white-space:nowrap;margin-top:-14px;margin-bottom:-6px;font-size:10px;overflow:hidden}.dict-selector[data-v-8a055f0c]{width:100%}.dict-selector[data-v-8a055f0c] .el-input__inner{cursor:pointer}[data-v-8a055f0c] .dict-selector-dialog .el-dialog{flex-direction:column;max-height:90vh;display:flex}[data-v-8a055f0c] .dict-selector-dialog .el-dialog__body{flex:1;height:70vh;padding:0;overflow:hidden}.dict-selector-content[data-v-8a055f0c]{gap:16px;height:100%;padding:16px;display:flex}.dict-list[data-v-8a055f0c]{border:1px solid var(--el-border-color);border-radius:4px;flex-direction:column;flex:0 0 300px;display:flex;overflow:hidden}.dict-list-header[data-v-8a055f0c]{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dict-list-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-search[data-v-8a055f0c]{border-bottom:1px solid var(--el-border-color-lighter);padding:12px 16px}.dict-list-body[data-v-8a055f0c]{flex:1;overflow-y:auto}.empty-result[data-v-8a055f0c]{text-align:center;padding:20px}.dict-item[data-v-8a055f0c]{border-bottom:1px solid var(--el-border-color-lighter);cursor:pointer;padding:12px 16px;transition:all .2s}.dict-item[data-v-8a055f0c]:hover{background-color:var(--el-fill-color-light)}.dict-item.active[data-v-8a055f0c]{background-color:var(--el-color-primary-light-9);border-left:3px solid var(--el-color-primary)}.dict-item[data-v-8a055f0c]:last-child{border-bottom:none}.dict-item-content[data-v-8a055f0c]{margin-bottom:8px}.dict-item-content .dict-name[data-v-8a055f0c]{margin-bottom:4px;font-size:14px;font-weight:500}.dict-item-content .dict-code[data-v-8a055f0c]{color:var(--el-text-color-secondary);font-size:12px}.dict-item-actions[data-v-8a055f0c]{gap:8px;display:flex}.dict-detail[data-v-8a055f0c]{border:1px solid var(--el-border-color);border-radius:4px;flex-direction:column;flex:1;display:flex;overflow:hidden}.dict-detail-header[data-v-8a055f0c]{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color);padding:12px 16px}.dict-detail-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-info[data-v-8a055f0c]{padding:16px}.dict-items[data-v-8a055f0c]{flex-direction:column;flex:1;padding:16px;display:flex;overflow:hidden}.dict-items .dict-items-header[data-v-8a055f0c]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dict-items .dict-items-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-items[data-v-8a055f0c] .el-table{flex:1}.empty-state[data-v-8a055f0c]{flex:1;justify-content:center;align-items:center;display:flex}.cursor-pointer[data-v-8a055f0c]{cursor:pointer}.icon-picker[data-v-dbe424e4]{width:100%}.icon-picker .clear-icon[data-v-dbe424e4]{cursor:pointer}.icon-picker .clear-icon[data-v-dbe424e4]:hover{color:var(--el-color-primary)}.picker-content[data-v-dbe424e4]{padding:8px}.picker-header[data-v-dbe424e4]{gap:8px;margin-bottom:12px;display:flex}.icon-grid[data-v-dbe424e4]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:4px;grid-template-columns:repeat(6,1fr);gap:8px;max-height:400px;padding:8px;display:grid;position:relative;overflow-y:auto}.icon-grid .icon-item[data-v-dbe424e4]{cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-height:70px;padding:8px 4px;transition:all .2s;display:flex}.icon-grid .icon-item .icon-wrapper[data-v-dbe424e4]{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.icon-grid .icon-item .icon-wrapper .icon-name[data-v-dbe424e4]{color:var(--el-text-color-secondary);text-align:center;word-break:break-all;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:10px;line-height:1.2;display:-webkit-box;overflow:hidden}.icon-grid .icon-item[data-v-dbe424e4]:hover{background:var(--el-fill-color-light);border-color:var(--el-color-primary-light-5);transform:scale(1.05)}.icon-grid .icon-item:hover .icon-name[data-v-dbe424e4]{color:var(--el-text-color-primary)}.icon-grid .icon-item.selected[data-v-dbe424e4]{background:var(--el-color-primary-light-9);border-color:var(--el-color-primary)}.icon-grid .icon-item.selected .icon-name[data-v-dbe424e4]{color:var(--el-color-primary);font-weight:500}.icon-grid .loading-more[data-v-dbe424e4],.icon-grid .no-more[data-v-dbe424e4]{color:var(--el-text-color-secondary);grid-column:1/-1;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.icon-grid[data-v-dbe424e4]:has(.el-empty){justify-content:center;align-items:center;display:flex}.picker-footer[data-v-dbe424e4]{justify-content:center;margin-top:8px;padding-top:8px;display:flex}.icon-picker-popover{padding:12px!important}.container[data-v-83cc0aef]{width:100%;height:100%;padding:0}.code-preview[data-v-83cc0aef]{width:100%;height:100%;position:relative}.code-prefix[data-v-83cc0aef],.code-suffix[data-v-83cc0aef]{color:var(--el-text-color-secondary);background:var(--el-fill-color-light);border:1px solid var(--el-border-color);white-space:pre-wrap;margin:0;padding:4px 8px;font-family:monospace;font-size:12px}.code-prefix[data-v-83cc0aef]{border-radius:var(--el-border-radius-base) var(--el-border-radius-base) 0 0;border-bottom:none}.code-suffix[data-v-83cc0aef]{border-radius:0 0 var(--el-border-radius-base) var(--el-border-radius-base);border-top:none}.main-editor[data-v-83cc0aef]{border-radius:var(--el-border-radius-base);border:1px solid var(--el-border-color);width:100%;overflow:hidden}.code-prefix+.main-editor[data-v-83cc0aef]{border-radius:0}.main-editor[data-v-83cc0aef]:has(+.code-suffix){border-radius:var(--el-border-radius-base) var(--el-border-radius-base) 0 0}.code-prefix+.main-editor[data-v-83cc0aef]:has(+.code-suffix){border-radius:0}.expand-btn[data-v-83cc0aef]{z-index:10;position:absolute;top:4px;right:4px}.dialog-container[data-v-83cc0aef]{width:100%;height:100%;padding:0}.dialog-editor[data-v-83cc0aef]{border-radius:var(--el-border-radius-base);border:1px solid var(--el-border-color);width:100%;height:80vh;overflow:hidden}.code-editor-dialog .el-dialog__body{padding:8px 12px 12px}.fieldset[data-v-87bc4b57]{border:none;min-width:0;margin:0;padding:0}.fieldset--bordered[data-v-87bc4b57]{border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);padding:12px}.fieldset--collapsed.fieldset--bordered[data-v-87bc4b57]{padding-bottom:0}.fieldset-legend[data-v-87bc4b57]{color:var(--el-text-color-primary);align-items:center;gap:4px;padding:0 8px;font-size:14px;font-weight:500;display:inline-flex}.fieldset-legend--collapsible[data-v-87bc4b57]{cursor:pointer;-webkit-user-select:none;user-select:none}.fieldset-legend--collapsible[data-v-87bc4b57]:hover{color:var(--el-color-primary)}.fieldset-legend--disabled[data-v-87bc4b57]{cursor:not-allowed;color:var(--el-text-color-disabled)}.fieldset-legend--disabled[data-v-87bc4b57]:hover{color:var(--el-text-color-disabled)}.fieldset-arrow[data-v-87bc4b57]{align-items:center;transition:transform .3s;display:inline-flex}.fieldset-content[data-v-87bc4b57]{overflow:hidden}t-collapse-enter-active[data-v-87bc4b57],.fieldset-collapse-leave-active[data-v-87bc4b57]{transition:all .3s}.fieldset-collapse-enter-from[data-v-87bc4b57],.fieldset-collapse-leave-to[data-v-87bc4b57]{opacity:0;max-height:0}.fieldset-collapse-enter-to[data-v-87bc4b57],.fieldset-collapse-leave-from[data-v-87bc4b57]{opacity:1;max-height:1000px}.form-item-label[data-v-c65b59d2] .el-form-item__label{font-weight:400}.label-question[data-v-c65b59d2]{justify-content:center;align-items:center;height:100%;display:flex}.dia-container[data-v-b852c20c]{height:calc(100vh - 220px)}.board[data-v-b76d3ed9]{background:var(--overlay-content);flex-direction:column;height:100%;min-height:0;display:flex}.query-tree[data-v-b76d3ed9]{width:240px}.page-root[data-v-b76d3ed9]{flex:1;min-width:0;max-width:100%;transition:width .1s linear}.upload-container[data-v-9dd8588e]{justify-content:space-between;align-items:center;display:flex}.upload-container .el-select[data-v-9dd8588e]{max-width:300px}.right-button[data-v-9dd8588e]{justify-content:flex-end;align-items:center;display:flex}.my-header[data-v-f62a6fa0]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.app-form-render[data-v-c6b6dbc1]{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-header[data-v-c6b6dbc1]{border-bottom:2px solid var(--el-border-color);flex-wrap:wrap;padding-bottom:6px;display:flex}.app-header .left[data-v-c6b6dbc1]{flex-grow:1}.app-header .right[data-v-c6b6dbc1]{flex-shrink:0;width:auto}.form-buttons[data-v-c6b6dbc1]{margin-top:8px}.form-container[data-v-c6b6dbc1]{flex:1 1 0;min-height:0;overflow:hidden}.form-container[data-v-c6b6dbc1] .el-tabs__content,.form-container[data-v-c6b6dbc1] .el-tab-pane{height:100%}.form-container[data-v-c6b6dbc1] .el-tab-pane>div{flex-direction:column;height:100%;display:flex}.form-container[data-v-c6b6dbc1] .el-tabs__header{margin:0}[data-v-c6b6dbc1] .el-tab-pane{scrollbar-width:none;-ms-overflow-style:none;height:100%;overflow:auto}[data-v-c6b6dbc1] .el-table__body-wrapper{scrollbar-width:auto;-ms-overflow-style:auto}[data-v-c6b6dbc1] .el-table__body-wrapper::-webkit-scrollbar{width:6px;display:block}[data-v-c6b6dbc1] .el-table__body-wrapper::-webkit-scrollbar-thumb{background-color:#0006;border-radius:3px}[data-v-c6b6dbc1] .el-table__body-wrapper::-webkit-scrollbar-track{background-color:#0000}.chart-container[data-v-891683ec]{height:calc(100vh - 320px)}.my-header[data-v-818a7f26]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.dialog-form-container[data-v-d7b7586f]{height:80vh}.board[data-v-3d71a274]{height:100%;padding:0 .4rem;display:flex;position:relative}.query-tree[data-v-3d71a274]{width:240px}.page-root[data-v-3d71a274]{flex:1;min-width:0;max-width:100%;transition:width .1s linear}.drawer-container[data-v-3d71a274]{z-index:100;pointer-events:none;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.drawer-container[data-v-3d71a274] .el-drawer__container,.drawer-container[data-v-3d71a274] .el-overlay{pointer-events:auto}.form-item-label[data-v-61ea67ec] .el-form-item__label{font-weight:400}.label-question[data-v-61ea67ec]{justify-content:center;align-items:center;height:100%;display:flex}
|
|
1
|
+
.el-col-plus[data-v-57329ddf],.el-row-plus[data-v-c207f87e]{box-sizing:border-box}.tool-bar[data-v-c1f98d58]{background:var(--el-fill-color-blank);padding:8px}.tool-bar[data-v-c1f98d58] .el-scrollbar__view{flex-direction:row-reverse;justify-content:flex-start;gap:8px;display:flex}.query-bar-client{background:var(--el-fill-color-blank);padding:8px 8px 0}.min-width[data-v-e02acf5d]{min-width:120px}.filterBoard[data-v-7e102fe5]{background:var(--el-fill-color-blank);flex-direction:column;height:calc(100% - 12px);margin:6px 6px 6px 0;padding:12px 8px 8px;display:flex}.filterBoard .tree-container[data-v-7e102fe5]{flex-grow:1;height:0;margin-top:12px}.custom-tree-node[data-v-7e102fe5]{border-radius:calc(var(--el-border-radius-base) - 1px);flex:1;justify-content:space-between;align-items:center;padding:4px 4px 4px 6px;font-size:14px;display:flex}.is-checked[data-v-7e102fe5]{color:#fff;background-color:var(--el-color-primary)!important}.text[data-v-b9d89f3c]{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;display:inline-block;overflow:hidden}.text[data-v-9da76d44]{cursor:pointer;width:100%}.table-check-box-async[data-v-e263854d]{width:100%}.table-check-box-async .text[data-v-e263854d]{cursor:pointer}.dialog-header[data-v-e263854d]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.ke-table-render-client{background:var(--overlay-content);flex-direction:column;height:100%;display:flex}.ke-query-bar-client{margin-top:6px}.ke-table-tool-button{margin:6px 2px}.ke-query-bar-client,.ke-table-tool-button,.ke-pagination-div{flex-shrink:0}.ke-vxe-grid-container{flex-grow:1;height:0;overflow:hidden}.ke-vxe-grid-container .vxe-grid{height:100%;overflow:auto}.ke-pagination-div{background:var(--el-fill-color-blank);border-radius:4px;margin-top:10px;padding:6px}.vxe-grid{-webkit-user-select:none;user-select:none}[data-v-607ab83a] .el-scrollbar__wrap{overflow-x:hidden!important}[data-v-607ab83a] .el-scrollbar__bar.is-horizontal{height:0!important}[data-v-607ab83a] .el-form-item{margin-bottom:0!important}.table-card-render-client[data-v-607ab83a]{flex-direction:column;height:100%;display:flex}.title-wrapper[data-v-607ab83a]{justify-content:space-between;align-items:center;display:flex}.title-wrapper .title-text[data-v-607ab83a]{flex:1}.title-wrapper .dropdown-wrapper[data-v-607ab83a]{margin-left:auto}.table-tool-button[data-v-607ab83a]{margin-top:6px}.card-container[data-v-607ab83a]{flex-grow:1;height:0;overflow:hidden}.pagination-div[data-v-607ab83a]{background:var(--el-fill-color-blank);margin-top:10px;padding:6px}.full[data-v-8f2c6d44]{width:100%}td.current .dateCell[data-v-4a6233e0]{color:#fff;background-color:var(--el-color-primary);border-radius:calc(var(--el-border-radius-base) - 1px)}td.today .dateCell[data-v-4a6233e0]{color:var(--el-color-primary)}.dateCell[data-v-4a6233e0]{width:48px;height:42px}.dateCell span[data-v-4a6233e0]{display:block}.dateCell .solar_calendar[data-v-4a6233e0]{font-size:16px;font-weight:400}.dateCell .lunar_calendar[data-v-4a6233e0]{text-overflow:ellipsis;white-space:nowrap;margin-top:-14px;margin-bottom:-6px;font-size:10px;overflow:hidden}td.current .dateCell[data-v-cb054933]{color:#fff;background-color:var(--el-color-primary);border-radius:calc(var(--el-border-radius-base) - 1px)}td.today .dateCell[data-v-cb054933]{color:var(--el-color-primary)}.dateCell[data-v-cb054933]{width:48px;height:42px}.dateCell span[data-v-cb054933]{display:block}.dateCell .solar_calendar[data-v-cb054933]{font-size:16px;font-weight:400}.dateCell .lunar_calendar[data-v-cb054933]{text-overflow:ellipsis;white-space:nowrap;margin-top:-14px;margin-bottom:-6px;font-size:10px;overflow:hidden}.dict-selector[data-v-8a055f0c]{width:100%}.dict-selector[data-v-8a055f0c] .el-input__inner{cursor:pointer}[data-v-8a055f0c] .dict-selector-dialog .el-dialog{flex-direction:column;max-height:90vh;display:flex}[data-v-8a055f0c] .dict-selector-dialog .el-dialog__body{flex:1;height:70vh;padding:0;overflow:hidden}.dict-selector-content[data-v-8a055f0c]{gap:16px;height:100%;padding:16px;display:flex}.dict-list[data-v-8a055f0c]{border:1px solid var(--el-border-color);border-radius:4px;flex-direction:column;flex:0 0 300px;display:flex;overflow:hidden}.dict-list-header[data-v-8a055f0c]{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dict-list-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-search[data-v-8a055f0c]{border-bottom:1px solid var(--el-border-color-lighter);padding:12px 16px}.dict-list-body[data-v-8a055f0c]{flex:1;overflow-y:auto}.empty-result[data-v-8a055f0c]{text-align:center;padding:20px}.dict-item[data-v-8a055f0c]{border-bottom:1px solid var(--el-border-color-lighter);cursor:pointer;padding:12px 16px;transition:all .2s}.dict-item[data-v-8a055f0c]:hover{background-color:var(--el-fill-color-light)}.dict-item.active[data-v-8a055f0c]{background-color:var(--el-color-primary-light-9);border-left:3px solid var(--el-color-primary)}.dict-item[data-v-8a055f0c]:last-child{border-bottom:none}.dict-item-content[data-v-8a055f0c]{margin-bottom:8px}.dict-item-content .dict-name[data-v-8a055f0c]{margin-bottom:4px;font-size:14px;font-weight:500}.dict-item-content .dict-code[data-v-8a055f0c]{color:var(--el-text-color-secondary);font-size:12px}.dict-item-actions[data-v-8a055f0c]{gap:8px;display:flex}.dict-detail[data-v-8a055f0c]{border:1px solid var(--el-border-color);border-radius:4px;flex-direction:column;flex:1;display:flex;overflow:hidden}.dict-detail-header[data-v-8a055f0c]{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color);padding:12px 16px}.dict-detail-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-info[data-v-8a055f0c]{padding:16px}.dict-items[data-v-8a055f0c]{flex-direction:column;flex:1;padding:16px;display:flex;overflow:hidden}.dict-items .dict-items-header[data-v-8a055f0c]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dict-items .dict-items-header .title[data-v-8a055f0c]{font-size:14px;font-weight:600}.dict-items[data-v-8a055f0c] .el-table{flex:1}.empty-state[data-v-8a055f0c]{flex:1;justify-content:center;align-items:center;display:flex}.cursor-pointer[data-v-8a055f0c]{cursor:pointer}.icon-picker[data-v-dbe424e4]{width:100%}.icon-picker .clear-icon[data-v-dbe424e4]{cursor:pointer}.icon-picker .clear-icon[data-v-dbe424e4]:hover{color:var(--el-color-primary)}.picker-content[data-v-dbe424e4]{padding:8px}.picker-header[data-v-dbe424e4]{gap:8px;margin-bottom:12px;display:flex}.icon-grid[data-v-dbe424e4]{border:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank);border-radius:4px;grid-template-columns:repeat(6,1fr);gap:8px;max-height:400px;padding:8px;display:grid;position:relative;overflow-y:auto}.icon-grid .icon-item[data-v-dbe424e4]{cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;min-height:70px;padding:8px 4px;transition:all .2s;display:flex}.icon-grid .icon-item .icon-wrapper[data-v-dbe424e4]{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.icon-grid .icon-item .icon-wrapper .icon-name[data-v-dbe424e4]{color:var(--el-text-color-secondary);text-align:center;word-break:break-all;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:10px;line-height:1.2;display:-webkit-box;overflow:hidden}.icon-grid .icon-item[data-v-dbe424e4]:hover{background:var(--el-fill-color-light);border-color:var(--el-color-primary-light-5);transform:scale(1.05)}.icon-grid .icon-item:hover .icon-name[data-v-dbe424e4]{color:var(--el-text-color-primary)}.icon-grid .icon-item.selected[data-v-dbe424e4]{background:var(--el-color-primary-light-9);border-color:var(--el-color-primary)}.icon-grid .icon-item.selected .icon-name[data-v-dbe424e4]{color:var(--el-color-primary);font-weight:500}.icon-grid .loading-more[data-v-dbe424e4],.icon-grid .no-more[data-v-dbe424e4]{color:var(--el-text-color-secondary);grid-column:1/-1;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.icon-grid[data-v-dbe424e4]:has(.el-empty){justify-content:center;align-items:center;display:flex}.picker-footer[data-v-dbe424e4]{justify-content:center;margin-top:8px;padding-top:8px;display:flex}.icon-picker-popover{padding:12px!important}.container[data-v-83cc0aef]{width:100%;height:100%;padding:0}.code-preview[data-v-83cc0aef]{width:100%;height:100%;position:relative}.code-prefix[data-v-83cc0aef],.code-suffix[data-v-83cc0aef]{color:var(--el-text-color-secondary);background:var(--el-fill-color-light);border:1px solid var(--el-border-color);white-space:pre-wrap;margin:0;padding:4px 8px;font-family:monospace;font-size:12px}.code-prefix[data-v-83cc0aef]{border-radius:var(--el-border-radius-base) var(--el-border-radius-base) 0 0;border-bottom:none}.code-suffix[data-v-83cc0aef]{border-radius:0 0 var(--el-border-radius-base) var(--el-border-radius-base);border-top:none}.main-editor[data-v-83cc0aef]{border-radius:var(--el-border-radius-base);border:1px solid var(--el-border-color);width:100%;overflow:hidden}.code-prefix+.main-editor[data-v-83cc0aef]{border-radius:0}.main-editor[data-v-83cc0aef]:has(+.code-suffix){border-radius:var(--el-border-radius-base) var(--el-border-radius-base) 0 0}.code-prefix+.main-editor[data-v-83cc0aef]:has(+.code-suffix){border-radius:0}.expand-btn[data-v-83cc0aef]{z-index:10;position:absolute;top:4px;right:4px}.dialog-container[data-v-83cc0aef]{width:100%;height:100%;padding:0}.dialog-editor[data-v-83cc0aef]{border-radius:var(--el-border-radius-base);border:1px solid var(--el-border-color);width:100%;height:80vh;overflow:hidden}.code-editor-dialog .el-dialog__body{padding:8px 12px 12px}.fieldset[data-v-87bc4b57]{border:none;min-width:0;margin:0;padding:0}.fieldset--bordered[data-v-87bc4b57]{border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);padding:12px}.fieldset--collapsed.fieldset--bordered[data-v-87bc4b57]{padding-bottom:0}.fieldset-legend[data-v-87bc4b57]{color:var(--el-text-color-primary);align-items:center;gap:4px;padding:0 8px;font-size:14px;font-weight:500;display:inline-flex}.fieldset-legend--collapsible[data-v-87bc4b57]{cursor:pointer;-webkit-user-select:none;user-select:none}.fieldset-legend--collapsible[data-v-87bc4b57]:hover{color:var(--el-color-primary)}.fieldset-legend--disabled[data-v-87bc4b57]{cursor:not-allowed;color:var(--el-text-color-disabled)}.fieldset-legend--disabled[data-v-87bc4b57]:hover{color:var(--el-text-color-disabled)}.fieldset-arrow[data-v-87bc4b57]{align-items:center;transition:transform .3s;display:inline-flex}.fieldset-content[data-v-87bc4b57]{overflow:hidden}t-collapse-enter-active[data-v-87bc4b57],.fieldset-collapse-leave-active[data-v-87bc4b57]{transition:all .3s}.fieldset-collapse-enter-from[data-v-87bc4b57],.fieldset-collapse-leave-to[data-v-87bc4b57]{opacity:0;max-height:0}.fieldset-collapse-enter-to[data-v-87bc4b57],.fieldset-collapse-leave-from[data-v-87bc4b57]{opacity:1;max-height:1000px}.form-item-label[data-v-603225e6] .el-form-item__label{font-weight:400}.label-question[data-v-603225e6]{justify-content:center;align-items:center;height:100%;display:flex}.dia-container[data-v-b852c20c]{height:calc(100vh - 220px)}.board[data-v-b76d3ed9]{background:var(--overlay-content);flex-direction:column;height:100%;min-height:0;display:flex}.query-tree[data-v-b76d3ed9]{width:240px}.page-root[data-v-b76d3ed9]{flex:1;min-width:0;max-width:100%;transition:width .1s linear}.upload-container[data-v-9dd8588e]{justify-content:space-between;align-items:center;display:flex}.upload-container .el-select[data-v-9dd8588e]{max-width:300px}.right-button[data-v-9dd8588e]{justify-content:flex-end;align-items:center;display:flex}.my-header[data-v-f62a6fa0]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.app-form-render[data-v-1c0eda6b]{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-header[data-v-1c0eda6b]{border-bottom:2px solid var(--el-border-color);flex-wrap:wrap;padding-bottom:6px;display:flex}.app-header .left[data-v-1c0eda6b]{flex-grow:1}.app-header .right[data-v-1c0eda6b]{flex-shrink:0;width:auto}.form-buttons[data-v-1c0eda6b]{margin-top:8px}.form-container[data-v-1c0eda6b]{flex:1 1 0;min-height:0;overflow:hidden}.form-container[data-v-1c0eda6b] .el-tabs__content,.form-container[data-v-1c0eda6b] .el-tab-pane{height:100%}.form-container[data-v-1c0eda6b] .el-tab-pane>div{flex-direction:column;height:100%;display:flex}.form-container[data-v-1c0eda6b] .el-tabs__header{margin:0}[data-v-1c0eda6b] .el-tab-pane{scrollbar-width:none;-ms-overflow-style:none;height:100%;overflow:auto}[data-v-1c0eda6b] .el-table__body-wrapper{scrollbar-width:auto;-ms-overflow-style:auto}[data-v-1c0eda6b] .el-table__body-wrapper::-webkit-scrollbar{width:6px;display:block}[data-v-1c0eda6b] .el-table__body-wrapper::-webkit-scrollbar-thumb{background-color:#0006;border-radius:3px}[data-v-1c0eda6b] .el-table__body-wrapper::-webkit-scrollbar-track{background-color:#0000}.chart-container[data-v-891683ec]{height:calc(100vh - 320px)}.my-header[data-v-818a7f26]{flex-direction:row;justify-content:space-between;gap:16px;display:flex}.dialog-form-container[data-v-d7b7586f]{height:80vh}.app-table-render-container[data-v-5be32d7e]{height:100%;padding:0 .4rem;display:flex;position:relative}.query-tree[data-v-5be32d7e]{width:240px}.page-root[data-v-5be32d7e]{flex:1;min-width:0;max-width:100%;transition:width .1s linear}.drawer-container[data-v-5be32d7e]{z-index:100;pointer-events:none;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.drawer-container[data-v-5be32d7e] .el-drawer__container,.drawer-container[data-v-5be32d7e] .el-overlay{pointer-events:auto}.form-item-label[data-v-81e733bd] .el-form-item__label{font-weight:400}.label-question[data-v-81e733bd]{justify-content:center;align-items:center;height:100%;display:flex}
|
|
2
2
|
/*$vite$:1*/
|