@morndream/mihomo-tui 0.5.0-rc.0

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.
Files changed (145) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/LICENSE +21 -0
  3. package/README.md +462 -0
  4. package/bin/mihomo-tui +34 -0
  5. package/dist/App.js +161 -0
  6. package/dist/App.js.map +1 -0
  7. package/dist/api/client.js +239 -0
  8. package/dist/api/client.js.map +1 -0
  9. package/dist/api/status.js +43 -0
  10. package/dist/api/status.js.map +1 -0
  11. package/dist/api/stream.js +139 -0
  12. package/dist/api/stream.js.map +1 -0
  13. package/dist/api/types.js +6 -0
  14. package/dist/api/types.js.map +1 -0
  15. package/dist/cli.js +221 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/commands/conn.js +122 -0
  18. package/dist/commands/conn.js.map +1 -0
  19. package/dist/commands/logs.js +99 -0
  20. package/dist/commands/logs.js.map +1 -0
  21. package/dist/commands/output.js +177 -0
  22. package/dist/commands/output.js.map +1 -0
  23. package/dist/commands/provider.js +140 -0
  24. package/dist/commands/provider.js.map +1 -0
  25. package/dist/commands/proxy.js +161 -0
  26. package/dist/commands/proxy.js.map +1 -0
  27. package/dist/commands/proxyEnv.js +193 -0
  28. package/dist/commands/proxyEnv.js.map +1 -0
  29. package/dist/commands/rules.js +87 -0
  30. package/dist/commands/rules.js.map +1 -0
  31. package/dist/commands/status.js +75 -0
  32. package/dist/commands/status.js.map +1 -0
  33. package/dist/components/ConfirmDialog.js +31 -0
  34. package/dist/components/ConfirmDialog.js.map +1 -0
  35. package/dist/components/DelayBadge.js +27 -0
  36. package/dist/components/DelayBadge.js.map +1 -0
  37. package/dist/components/InputDialog.js +325 -0
  38. package/dist/components/InputDialog.js.map +1 -0
  39. package/dist/components/ListDialog.js +86 -0
  40. package/dist/components/ListDialog.js.map +1 -0
  41. package/dist/components/ProgressDialog.js +34 -0
  42. package/dist/components/ProgressDialog.js.map +1 -0
  43. package/dist/components/ScrollList.js +26 -0
  44. package/dist/components/ScrollList.js.map +1 -0
  45. package/dist/components/StatusBar.js +58 -0
  46. package/dist/components/StatusBar.js.map +1 -0
  47. package/dist/components/TextEditor.js +112 -0
  48. package/dist/components/TextEditor.js.map +1 -0
  49. package/dist/components/textEditorModel.js +154 -0
  50. package/dist/components/textEditorModel.js.map +1 -0
  51. package/dist/config/manager.js +296 -0
  52. package/dist/config/manager.js.map +1 -0
  53. package/dist/config/preserveGroups.js +9 -0
  54. package/dist/config/preserveGroups.js.map +1 -0
  55. package/dist/config/ruleDocument.js +88 -0
  56. package/dist/config/ruleDocument.js.map +1 -0
  57. package/dist/config/ruleService.js +256 -0
  58. package/dist/config/ruleService.js.map +1 -0
  59. package/dist/config/ruleValidation.js +98 -0
  60. package/dist/config/ruleValidation.js.map +1 -0
  61. package/dist/config/service.js +63 -0
  62. package/dist/config/service.js.map +1 -0
  63. package/dist/config/settingsService.js +162 -0
  64. package/dist/config/settingsService.js.map +1 -0
  65. package/dist/config/skeleton.js +324 -0
  66. package/dist/config/skeleton.js.map +1 -0
  67. package/dist/config/subscriptionService.js +284 -0
  68. package/dist/config/subscriptionService.js.map +1 -0
  69. package/dist/config/subscriptions.js +200 -0
  70. package/dist/config/subscriptions.js.map +1 -0
  71. package/dist/config/types.js +5 -0
  72. package/dist/config/types.js.map +1 -0
  73. package/dist/config.js +101 -0
  74. package/dist/config.js.map +1 -0
  75. package/dist/hooks/useProviders.js +138 -0
  76. package/dist/hooks/useProviders.js.map +1 -0
  77. package/dist/hooks/useProxies.js +298 -0
  78. package/dist/hooks/useProxies.js.map +1 -0
  79. package/dist/hooks/useStream.js +127 -0
  80. package/dist/hooks/useStream.js.map +1 -0
  81. package/dist/kernel/installer.js +317 -0
  82. package/dist/kernel/installer.js.map +1 -0
  83. package/dist/kernel/releases.js +111 -0
  84. package/dist/kernel/releases.js.map +1 -0
  85. package/dist/kernel/sources.js +98 -0
  86. package/dist/kernel/sources.js.map +1 -0
  87. package/dist/rules/editor.js +181 -0
  88. package/dist/rules/editor.js.map +1 -0
  89. package/dist/rules/matcher.js +83 -0
  90. package/dist/rules/matcher.js.map +1 -0
  91. package/dist/rules/model.js +25 -0
  92. package/dist/rules/model.js.map +1 -0
  93. package/dist/rules/runtime.js +46 -0
  94. package/dist/rules/runtime.js.map +1 -0
  95. package/dist/rules/types.js +10 -0
  96. package/dist/rules/types.js.map +1 -0
  97. package/dist/ui/FooterLine.js +62 -0
  98. package/dist/ui/FooterLine.js.map +1 -0
  99. package/dist/ui/Panel.js +47 -0
  100. package/dist/ui/Panel.js.map +1 -0
  101. package/dist/ui/RowIndicator.js +25 -0
  102. package/dist/ui/RowIndicator.js.map +1 -0
  103. package/dist/ui/SectionHeader.js +14 -0
  104. package/dist/ui/SectionHeader.js.map +1 -0
  105. package/dist/ui/StatusDot.js +15 -0
  106. package/dist/ui/StatusDot.js.map +1 -0
  107. package/dist/ui/TopBar.js +81 -0
  108. package/dist/ui/TopBar.js.map +1 -0
  109. package/dist/ui/exitGuard.js +20 -0
  110. package/dist/ui/exitGuard.js.map +1 -0
  111. package/dist/ui/keyCapture.js +28 -0
  112. package/dist/ui/keyCapture.js.map +1 -0
  113. package/dist/ui/layout.js +32 -0
  114. package/dist/ui/layout.js.map +1 -0
  115. package/dist/ui/rowIndicator.js +42 -0
  116. package/dist/ui/rowIndicator.js.map +1 -0
  117. package/dist/ui/tableHeader.js +33 -0
  118. package/dist/ui/tableHeader.js.map +1 -0
  119. package/dist/ui/theme.js +47 -0
  120. package/dist/ui/theme.js.map +1 -0
  121. package/dist/ui/tone.js +131 -0
  122. package/dist/ui/tone.js.map +1 -0
  123. package/dist/version.js +27 -0
  124. package/dist/version.js.map +1 -0
  125. package/dist/views/Conns.js +107 -0
  126. package/dist/views/Conns.js.map +1 -0
  127. package/dist/views/Logs.js +89 -0
  128. package/dist/views/Logs.js.map +1 -0
  129. package/dist/views/Providers.js +392 -0
  130. package/dist/views/Providers.js.map +1 -0
  131. package/dist/views/Proxies.js +233 -0
  132. package/dist/views/Proxies.js.map +1 -0
  133. package/dist/views/RuleEditor.js +356 -0
  134. package/dist/views/RuleEditor.js.map +1 -0
  135. package/dist/views/Rules.js +286 -0
  136. package/dist/views/Rules.js.map +1 -0
  137. package/dist/views/Settings.js +734 -0
  138. package/dist/views/Settings.js.map +1 -0
  139. package/dist/views/groupDisplay.js +53 -0
  140. package/dist/views/groupDisplay.js.map +1 -0
  141. package/dist/views/subscriptionFields.js +59 -0
  142. package/dist/views/subscriptionFields.js.map +1 -0
  143. package/dist/views/yamlFile.js +32 -0
  144. package/dist/views/yamlFile.js.map +1 -0
  145. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleEditor.js","sourceRoot":"","sources":["../../src/views/RuleEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /** 规则页:API 数据、保守本地测试与可回读确认的运行时禁用。 */
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
+ import { Box, Text, useInput } from 'ink';
5
+ import { MihomoClient } from '../api/client.js';
6
+ import { ScrollList } from '../components/ScrollList.js';
7
+ import { InputDialog } from '../components/InputDialog.js';
8
+ import { FooterLine } from '../ui/FooterLine.js';
9
+ import { Panel, TOP_PREFIX, panelTopParts } from '../ui/Panel.js';
10
+ import { colors, styles } from '../ui/theme.js';
11
+ import { useKeyCapture } from '../ui/keyCapture.js';
12
+ import { truncateDisplay, formatRelativeTime } from '../commands/output.js';
13
+ import { buildRulesTestResult, normalizeTarget } from '../rules/matcher.js';
14
+ import { buildRuleRows, isSelectableRow, ruleTypes } from '../rules/model.js';
15
+ import { normalizeRuleType } from '../rules/types.js';
16
+ import { canDisableRule, isUnsupportedApi, ruleSequence, toggleRule } from '../rules/runtime.js';
17
+ import { RuleEditor } from './RuleEditor.js';
18
+ const messageOf = (err) => err instanceof Error ? err.message : String(err);
19
+ export function RulesView({ config, height, width, active, onMessage, client }) {
20
+ const api = useMemo(() => client ?? new MihomoClient(config), [client, config]);
21
+ const [rules, setRules] = useState([]);
22
+ const [providers, setProviders] = useState([]);
23
+ const [ruleError, setRuleError] = useState('');
24
+ const [providerError, setProviderError] = useState('');
25
+ const [rulesLoading, setRulesLoading] = useState(true);
26
+ const [providersLoading, setProvidersLoading] = useState(true);
27
+ const [typeFilter, setTypeFilter] = useState('');
28
+ const [keyword, setKeyword] = useState('');
29
+ const [index, setIndex] = useState(0);
30
+ const [dialog, setDialog] = useState('none');
31
+ const [result, setResult] = useState();
32
+ const [notice, setNotice] = useState('');
33
+ const [busy, setBusy] = useState(false);
34
+ const [unsupported, setUnsupported] = useState(false);
35
+ const [marks, setMarks] = useState(new Set());
36
+ const sequence = useRef('');
37
+ const request = useRef(0);
38
+ const operation = useRef(false);
39
+ const mounted = useRef(false);
40
+ useEffect(() => {
41
+ mounted.current = true;
42
+ return () => { mounted.current = false; request.current++; };
43
+ }, []);
44
+ const acceptRules = useCallback((next) => {
45
+ const signature = ruleSequence(next);
46
+ if (sequence.current !== signature)
47
+ setMarks(new Set());
48
+ sequence.current = signature;
49
+ setRules(next);
50
+ setResult(undefined);
51
+ }, []);
52
+ const reload = useCallback(() => {
53
+ if (operation.current)
54
+ return;
55
+ const id = ++request.current;
56
+ setRulesLoading(true);
57
+ setProvidersLoading(true);
58
+ void api.rules().then((next) => {
59
+ if (!mounted.current || id !== request.current)
60
+ return;
61
+ acceptRules(next);
62
+ setRuleError('');
63
+ }).catch((err) => {
64
+ if (!mounted.current || id !== request.current)
65
+ return;
66
+ acceptRules([]);
67
+ setRuleError(isUnsupportedApi(err) ? '内核不支持规则接口' : '规则加载失败:' + messageOf(err));
68
+ }).finally(() => {
69
+ if (mounted.current && id === request.current)
70
+ setRulesLoading(false);
71
+ });
72
+ void api.ruleProviders().then((next) => {
73
+ if (!mounted.current || id !== request.current)
74
+ return;
75
+ setProviders(Object.values(next));
76
+ setProviderError('');
77
+ }).catch((err) => {
78
+ if (!mounted.current || id !== request.current)
79
+ return;
80
+ setProviders([]);
81
+ setProviderError(isUnsupportedApi(err) ? '内核不支持规则集接口' : '规则集加载失败:' + messageOf(err));
82
+ }).finally(() => {
83
+ if (mounted.current && id === request.current)
84
+ setProvidersLoading(false);
85
+ });
86
+ }, [api, acceptRules]);
87
+ useEffect(() => {
88
+ if (active)
89
+ reload();
90
+ }, [active, reload]);
91
+ // 忙碌期间同样捕获:否则 ESC 会越过本页直达全局退出确认,随后 Enter 直接退掉 TUI
92
+ // (对齐订阅页「忙碌不弹退出」语义:更新/禁用进行中按键一律吞掉)
93
+ useKeyCapture(active && (dialog === 'detail' || busy));
94
+ const rows = useMemo(() => buildRuleRows(rules, providers, { type: typeFilter, keyword }), [rules, providers, typeFilter, keyword]);
95
+ const selectable = rows.flatMap((row, position) => isSelectableRow(row) ? [position] : []);
96
+ const safeIndex = Math.max(0, Math.min(index, selectable.length - 1));
97
+ const currentRow = rows[selectable[safeIndex] ?? -1];
98
+ const markOnly = currentRow?.kind === 'rule' && (unsupported || !canDisableRule(currentRow.rule));
99
+ useEffect(() => { setIndex((value) => Math.max(0, Math.min(value, selectable.length - 1))); }, [selectable.length]);
100
+ const announce = (text) => { setNotice(text); onMessage(text); };
101
+ const runTest = (target) => {
102
+ const next = buildRulesTestResult(rules, target);
103
+ setResult(next);
104
+ setDialog('none');
105
+ setNotice('');
106
+ if (next.index !== null) {
107
+ setTypeFilter('');
108
+ setKeyword('');
109
+ setIndex(next.index - 1);
110
+ }
111
+ };
112
+ const updateProvider = async () => {
113
+ if (operation.current || providersLoading || currentRow?.kind !== 'provider')
114
+ return;
115
+ operation.current = true;
116
+ setBusy(true);
117
+ const name = currentRow.provider.name;
118
+ announce('正在更新规则集 ' + name);
119
+ try {
120
+ await api.updateRuleProvider(name);
121
+ if (mounted.current)
122
+ announce('已更新规则集 ' + name);
123
+ }
124
+ catch (err) {
125
+ if (mounted.current)
126
+ announce('更新失败:' + messageOf(err));
127
+ }
128
+ finally {
129
+ operation.current = false;
130
+ if (mounted.current) {
131
+ setBusy(false);
132
+ reload();
133
+ }
134
+ }
135
+ };
136
+ const disableRule = async () => {
137
+ if (operation.current || rulesLoading || ruleError || currentRow?.kind !== 'rule')
138
+ return;
139
+ if (markOnly) {
140
+ announce('内核不支持此规则的禁用;可按 m 本地标记(不影响分流)');
141
+ return;
142
+ }
143
+ operation.current = true;
144
+ setBusy(true);
145
+ try {
146
+ const changed = await toggleRule(api, rules, currentRow.index - 1);
147
+ if (!mounted.current)
148
+ return;
149
+ acceptRules(changed.rules);
150
+ if (changed.status === 'unsupported') {
151
+ setUnsupported(true);
152
+ announce('内核不支持禁用;可按 m 本地标记(不影响分流)');
153
+ }
154
+ else if (changed.status === 'stale') {
155
+ announce('规则列表或状态已变化,已刷新,请重新选择后重试');
156
+ }
157
+ else if (changed.status === 'unconfirmed') {
158
+ announce('结果未确认,请刷新检查;未自动重试' + (changed.detail ? ':' + changed.detail : ''));
159
+ }
160
+ else {
161
+ announce('已确认规则' + (changed.rules[currentRow.index - 1]?.extra?.disabled ? '临时禁用' : '启用') + ';重载或重启后可能恢复');
162
+ }
163
+ }
164
+ catch (err) {
165
+ if (mounted.current)
166
+ announce('规则操作失败:' + messageOf(err));
167
+ }
168
+ finally {
169
+ operation.current = false;
170
+ if (mounted.current)
171
+ setBusy(false);
172
+ }
173
+ };
174
+ useInput((input, key) => {
175
+ if (dialog === 'detail') {
176
+ if (key.escape || key.return)
177
+ setDialog('none');
178
+ return;
179
+ }
180
+ if (dialog !== 'none' || operation.current)
181
+ return;
182
+ if (key.upArrow || input === 'k')
183
+ setIndex(Math.max(0, safeIndex - 1));
184
+ else if (key.downArrow || input === 'j')
185
+ setIndex(Math.min(Math.max(0, selectable.length - 1), safeIndex + 1));
186
+ else if (input === 'l') {
187
+ const types = ruleTypes(rules);
188
+ setTypeFilter(types[types.indexOf(typeFilter) + 1] ?? '');
189
+ setIndex(0);
190
+ }
191
+ else if (input === '/')
192
+ setDialog('filter');
193
+ else if (input === 'e') {
194
+ request.current++;
195
+ setDialog('editor');
196
+ }
197
+ else if (key.return && currentRow)
198
+ setDialog('detail');
199
+ else if (input === 't') {
200
+ if (rulesLoading || ruleError)
201
+ announce('规则尚未就绪,请先刷新');
202
+ else
203
+ setDialog('test');
204
+ }
205
+ else if (input === 'u')
206
+ void updateProvider();
207
+ else if (input === 'd')
208
+ void disableRule();
209
+ else if (input === 'm' && markOnly && currentRow?.kind === 'rule') {
210
+ setMarks((before) => {
211
+ const next = new Set(before);
212
+ if (next.has(currentRow.index))
213
+ next.delete(currentRow.index);
214
+ else
215
+ next.add(currentRow.index);
216
+ return next;
217
+ });
218
+ announce('仅本地标记,不影响内核分流或规则测试');
219
+ }
220
+ else if (input === 'r')
221
+ reload();
222
+ }, { isActive: active });
223
+ const hints = [
224
+ { key: '↑↓', label: '移动' }, { key: 'l', label: '切类型' }, { key: '/', label: '过滤' },
225
+ { key: 'Enter', label: '详情' }, { key: 't', label: '测试' }, { key: 'u', label: '更新规则集' },
226
+ { key: 'e', label: '编辑配置' },
227
+ { key: markOnly ? 'm' : 'd', label: markOnly ? '本地标记' : '禁用/启用' }, { key: 'r', label: '刷新' },
228
+ ];
229
+ const columns = Math.max(1, width - 6);
230
+ const clip = (value) => truncateDisplay(value, columns);
231
+ const renderRow = (row, selected) => {
232
+ if (row.kind === 'header')
233
+ return _jsx(Text, { color: colors.muted, children: clip('─ ' + row.label) });
234
+ const cursor = selected ? '▌ ' : ' ';
235
+ if (row.kind === 'provider')
236
+ return _jsx(Text, { children: clip(cursor + row.provider.name + ' ' + row.provider.vehicleType +
237
+ ' ' + (row.provider.ruleCount ?? '---') + ' 条 ' + formatRelativeTime(row.provider.updatedAt)) });
238
+ const state = row.rule.extra?.disabled ? ' [已禁用]' : '';
239
+ const marked = marks.has(row.index) ? ' [标记]' : '';
240
+ const highlight = result?.index === row.index ? (result.outcome === 'hit' ? colors.success : colors.warning) : undefined;
241
+ return _jsx(Text, { color: highlight, children: clip(cursor + '#' + row.index + state + marked + ' ' +
242
+ normalizeRuleType(row.rule.type) + ' ' + (row.rule.payload || '—') + ' → ' + row.rule.proxy) });
243
+ };
244
+ const summary = result?.outcome === 'hit'
245
+ ? result.target + ' 本地命中 #' + result.index + ' → 目标 ' + result.rule?.proxy + '(非最终节点)'
246
+ : result?.outcome === 'unsupported'
247
+ ? '需内核判定,未确定出口:#' + result.index + ' ' + result.rule?.type + ' · ' + result.target
248
+ : result ? result.target + ' 未命中任何规则' : '';
249
+ const statusLines = [ruleError, providerError, notice, summary].filter(Boolean).length;
250
+ const loading = rulesLoading || providersLoading;
251
+ // 标题、底框、筛选栏、页脚各占一行;仅在列表溢出时给滚动计数留一行。
252
+ const listSpace = Math.max(1, height - 4 - statusLines - Number(loading) - Number(busy));
253
+ const listHeight = Math.max(1, listSpace - Number(rows.length > listSpace));
254
+ const detailWidth = Math.min(width, 64);
255
+ const detailTop = panelTopParts(currentRow?.kind === 'provider' ? '规则集详情' : '规则详情', detailWidth);
256
+ return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [dialog === 'editor' ? _jsx(RuleEditor, { config: config, width: width, height: height, onClose: () => { setDialog('none'); reload(); }, onSaved: (saved) => {
257
+ setMarks(new Set());
258
+ setResult(undefined);
259
+ setIndex(0);
260
+ setKeyword('');
261
+ setTypeFilter('');
262
+ setUnsupported(false);
263
+ if (saved.rules)
264
+ acceptRules(saved.rules);
265
+ announce(saved.message);
266
+ } }) : dialog === 'filter' || dialog === 'test' ? (_jsx(InputDialog, { title: dialog === 'filter' ? '按关键字过滤' : '规则测试(保守本地匹配)', width: width, fields: dialog === 'filter'
267
+ ? [{ label: '关键字(留空清除)', key: 'keyword', value: keyword }]
268
+ : [{ label: '域名或 IP', key: 'target', required: true, validate: (value) => {
269
+ try {
270
+ normalizeTarget(value);
271
+ return undefined;
272
+ }
273
+ catch (err) {
274
+ return messageOf(err);
275
+ }
276
+ } }], onSubmit: (values) => {
277
+ if (dialog === 'filter') {
278
+ setKeyword(values['keyword'] ?? '');
279
+ setIndex(0);
280
+ setDialog('none');
281
+ }
282
+ else
283
+ runTest(values['target'] ?? '');
284
+ }, onCancel: () => setDialog('none') })) : dialog === 'detail' && currentRow ? (_jsx(Box, { flexDirection: "column", flexGrow: 1, justifyContent: "center", alignItems: "center", children: _jsxs(Box, { flexDirection: "column", width: detailWidth, children: [_jsxs(Text, { children: [_jsx(Text, { color: colors.accent, children: TOP_PREFIX }), _jsx(Text, { ...styles.panelTitle, children: detailTop.title }), _jsx(Text, { color: colors.accent, children: detailTop.tail })] }), _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderTop: false, borderColor: colors.accent, paddingX: 1, children: [currentRow.kind === 'rule' ? _jsxs(_Fragment, { children: [_jsx(Text, { children: '#' + currentRow.index + ' ' + normalizeRuleType(currentRow.rule.type) }), _jsx(Text, { wrap: "wrap", children: '内容:' + (currentRow.rule.payload || '—') }), _jsx(Text, { wrap: "wrap", children: '目标:' + currentRow.rule.proxy }), _jsx(Text, { children: '状态:' + (currentRow.rule.extra?.disabled === undefined ? '内核未提供' : currentRow.rule.extra.disabled ? '临时禁用' : '启用') }), normalizeRuleType(currentRow.rule.type) === 'RULE-SET' && _jsx(Text, { wrap: "wrap", children: '来源规则集:' + currentRow.rule.payload })] }) : currentRow.kind === 'provider' ? _jsxs(_Fragment, { children: [_jsx(Text, { wrap: "wrap", children: '规则集:' + currentRow.provider.name }), _jsx(Text, { children: '类型:' + currentRow.provider.vehicleType + ' / ' + (currentRow.provider.behavior ?? '未知') }), _jsx(Text, { children: '条数:' + (currentRow.provider.ruleCount ?? '未知') }), _jsx(Text, { wrap: "wrap", children: '更新:' + (currentRow.provider.updatedAt ?? '未知') })] }) : null, _jsx(Box, { marginTop: 1, children: _jsx(FooterLine, { hints: [{ key: 'Enter', label: '返回' }, { key: 'ESC', label: '返回' }], width: Math.max(1, detailWidth - 4) }) })] })] }) })) : (_jsx(Box, { flexDirection: "row", flexGrow: 1, children: _jsxs(Panel, { title: '规则 · ' + rules.length + ' 规则集 · ' + providers.length, width: width, fillHeight: true, children: [_jsx(Text, { dimColor: true, children: clip('类型 ' + (typeFilter || '全部') + (keyword ? ' · ' + keyword : '')) }), loading && _jsx(Text, { dimColor: true, children: "\u52A0\u8F7D\u4E2D ..." }), busy && _jsx(Text, { color: colors.info, children: "\u64CD\u4F5C\u4E2D ..." }), ruleError && _jsx(Text, { color: colors.danger, children: clip(ruleError) }), providerError && _jsx(Text, { color: colors.danger, children: clip(providerError) }), notice && _jsx(Text, { color: colors.warning, children: clip(notice) }), summary && _jsx(Text, { color: result?.outcome === 'hit' ? colors.success : colors.warning, children: clip(summary) }), _jsx(ScrollList, { items: rows, selected: selectable[safeIndex] ?? 0, height: listHeight, emptyText: loading ? '等待规则与规则集' : '当前没有匹配的规则或规则集', renderItem: (row, position) => renderRow(row, position === selectable[safeIndex]) })] }) })), dialog === 'none' && _jsx(Box, { paddingLeft: 1, children: _jsx(FooterLine, { hints: hints, width: width - 2 }) })] }));
285
+ }
286
+ //# sourceMappingURL=Rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rules.js","sourceRoot":"","sources":["../../src/views/Rules.tsx"],"names":[],"mappings":"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"}