@dshtrading/client-ui-knowledge 0.6.0 → 0.6.2
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/lib/client/contract.d.ts +1 -1
- package/lib/client/locales.js +2 -14
- package/lib/client.js +118 -82
- package/lib/client.js.map +1 -1
- package/package.json +4 -5
package/lib/client/contract.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* client-ui-knowledge 的 locale 契约:独立 namespace「dshtrading.knowledge」
|
|
4
4
|
* (P5 拆包后文案随视图包走)。key 前缀 kv.*(stage view knowledge)。
|
|
5
5
|
*/
|
|
6
|
-
type KnowledgeLocaleKey = 'kv.search.placeholder' | 'kv.filter.tag' | 'kv.filter.allTags' | 'kv.filter.
|
|
6
|
+
type KnowledgeLocaleKey = 'kv.search.placeholder' | 'kv.filter.tag' | 'kv.filter.allTags' | 'kv.filter.allAuthors' | 'kv.filter.allCredibility' | 'kv.filter.allSourceTypes' | 'kv.filter.reset' | 'kv.credibility.high' | 'kv.credibility.medium' | 'kv.credibility.low' | 'kv.sourceType.bilibili' | 'kv.sourceType.wechat' | 'kv.sourceType.manual' | 'kv.empty.hint' | 'kv.empty.filtered' | 'kv.stats.cards' | 'kv.stats.clusters' | 'kv.drawer.coreClaims' | 'kv.drawer.factCheck' | 'kv.drawer.verified' | 'kv.drawer.discrepancies' | 'kv.drawer.unverifiable' | 'kv.drawer.takeaways' | 'kv.drawer.boundaries' | 'kv.drawer.tickers' | 'kv.drawer.related' | 'kv.drawer.openSource';
|
|
7
7
|
declare module '@deepseek-ai/dsh-client-locale/client' {
|
|
8
8
|
interface LocaleNamespaceMap {
|
|
9
9
|
/** 知识库视图词典(client-ui-knowledge 包私有)。 */
|
package/lib/client/locales.js
CHANGED
|
@@ -3,11 +3,8 @@ const zh = {
|
|
|
3
3
|
"kv.search.placeholder": "搜索卡片标题、摘要、标签...",
|
|
4
4
|
"kv.filter.tag": "主题标签",
|
|
5
5
|
"kv.filter.allTags": "全部标签",
|
|
6
|
-
"kv.filter.author": "来源作者",
|
|
7
6
|
"kv.filter.allAuthors": "全部作者",
|
|
8
|
-
"kv.filter.credibility": "可信度",
|
|
9
7
|
"kv.filter.allCredibility": "全部评级",
|
|
10
|
-
"kv.filter.sourceType": "来源平台",
|
|
11
8
|
"kv.filter.allSourceTypes": "全部平台",
|
|
12
9
|
"kv.filter.reset": "重置筛选",
|
|
13
10
|
"kv.credibility.high": "高可信度 (High)",
|
|
@@ -20,7 +17,6 @@ const zh = {
|
|
|
20
17
|
"kv.empty.filtered": "未找到匹配当前筛选条件的知识卡片",
|
|
21
18
|
"kv.stats.cards": "张卡片",
|
|
22
19
|
"kv.stats.clusters": "个主题簇",
|
|
23
|
-
"kv.drawer.title": "知识卡片详情",
|
|
24
20
|
"kv.drawer.coreClaims": "核心论点",
|
|
25
21
|
"kv.drawer.factCheck": "事实核查 (三桶分类)",
|
|
26
22
|
"kv.drawer.verified": "经核实真实 (Verified)",
|
|
@@ -30,19 +26,14 @@ const zh = {
|
|
|
30
26
|
"kv.drawer.boundaries": "适用边界与避坑",
|
|
31
27
|
"kv.drawer.tickers": "关联标的",
|
|
32
28
|
"kv.drawer.related": "关联卡片",
|
|
33
|
-
"kv.drawer.openSource": "打开原始链接"
|
|
34
|
-
"kv.drawer.publishedAt": "发布日期",
|
|
35
|
-
"kv.drawer.author": "来源作者"
|
|
29
|
+
"kv.drawer.openSource": "打开原始链接"
|
|
36
30
|
};
|
|
37
31
|
const en = {
|
|
38
32
|
"kv.search.placeholder": "Search title, summary, tags...",
|
|
39
33
|
"kv.filter.tag": "Topic Tag",
|
|
40
34
|
"kv.filter.allTags": "All Tags",
|
|
41
|
-
"kv.filter.author": "Author",
|
|
42
35
|
"kv.filter.allAuthors": "All Authors",
|
|
43
|
-
"kv.filter.credibility": "Credibility",
|
|
44
36
|
"kv.filter.allCredibility": "All Credibility",
|
|
45
|
-
"kv.filter.sourceType": "Platform",
|
|
46
37
|
"kv.filter.allSourceTypes": "All Platforms",
|
|
47
38
|
"kv.filter.reset": "Reset",
|
|
48
39
|
"kv.credibility.high": "High",
|
|
@@ -55,7 +46,6 @@ const en = {
|
|
|
55
46
|
"kv.empty.filtered": "No knowledge cards match the current filter criteria",
|
|
56
47
|
"kv.stats.cards": "Cards",
|
|
57
48
|
"kv.stats.clusters": "Clusters",
|
|
58
|
-
"kv.drawer.title": "Knowledge Card Details",
|
|
59
49
|
"kv.drawer.coreClaims": "Core Claims",
|
|
60
50
|
"kv.drawer.factCheck": "Fact Check (3 Buckets)",
|
|
61
51
|
"kv.drawer.verified": "Verified",
|
|
@@ -65,9 +55,7 @@ const en = {
|
|
|
65
55
|
"kv.drawer.boundaries": "Boundaries & Pitfalls",
|
|
66
56
|
"kv.drawer.tickers": "Related Tickers",
|
|
67
57
|
"kv.drawer.related": "Related Cards",
|
|
68
|
-
"kv.drawer.openSource": "Open Original URL"
|
|
69
|
-
"kv.drawer.publishedAt": "Published At",
|
|
70
|
-
"kv.drawer.author": "Author"
|
|
58
|
+
"kv.drawer.openSource": "Open Original URL"
|
|
71
59
|
};
|
|
72
60
|
//#endregion
|
|
73
61
|
export { en, zh };
|
package/lib/client.js
CHANGED
|
@@ -185,6 +185,52 @@ window.__ModuleLoader__.load({
|
|
|
185
185
|
} catch {}
|
|
186
186
|
}
|
|
187
187
|
//#endregion
|
|
188
|
+
//#region src/client/filter-state.ts
|
|
189
|
+
/** 可信度下拉的候选(值 + i18n 键,渲染与校验同源)。 */
|
|
190
|
+
const CREDIBILITY_OPTIONS = [
|
|
191
|
+
{
|
|
192
|
+
value: "high",
|
|
193
|
+
labelKey: "kv.credibility.high"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
value: "medium",
|
|
197
|
+
labelKey: "kv.credibility.medium"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
value: "low",
|
|
201
|
+
labelKey: "kv.credibility.low"
|
|
202
|
+
}
|
|
203
|
+
];
|
|
204
|
+
/** 来源平台下拉的候选(值 + i18n 键,渲染与校验同源)。 */
|
|
205
|
+
const SOURCE_TYPE_OPTIONS = [
|
|
206
|
+
{
|
|
207
|
+
value: "bilibili",
|
|
208
|
+
labelKey: "kv.sourceType.bilibili"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
value: "wechat",
|
|
212
|
+
labelKey: "kv.sourceType.wechat"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
value: "manual",
|
|
216
|
+
labelKey: "kv.sourceType.manual"
|
|
217
|
+
}
|
|
218
|
+
];
|
|
219
|
+
/**
|
|
220
|
+
* 挑出候选集里已不存在的筛选字段(保持传入顺序)。
|
|
221
|
+
* 空字符串表示「不过滤」,不是失效值。
|
|
222
|
+
*/
|
|
223
|
+
function staleFilterFields(values, candidates) {
|
|
224
|
+
const stale = [];
|
|
225
|
+
if (values.selectedTag && !candidates.tags.includes(values.selectedTag)) stale.push("selectedTag");
|
|
226
|
+
if (values.selectedAuthor && !candidates.authors.includes(values.selectedAuthor)) stale.push("selectedAuthor");
|
|
227
|
+
const credibility = CREDIBILITY_OPTIONS.map((option) => option.value);
|
|
228
|
+
if (values.selectedCredibility && !credibility.includes(values.selectedCredibility)) stale.push("selectedCredibility");
|
|
229
|
+
const sourceTypes = SOURCE_TYPE_OPTIONS.map((option) => option.value);
|
|
230
|
+
if (values.selectedSourceType && !sourceTypes.includes(values.selectedSourceType)) stale.push("selectedSourceType");
|
|
231
|
+
return stale;
|
|
232
|
+
}
|
|
233
|
+
//#endregion
|
|
188
234
|
//#region src/client/icons.tsx
|
|
189
235
|
/** 放大镜搜索图标。 */
|
|
190
236
|
function IconSearch({ size = 14 }) {
|
|
@@ -10121,47 +10167,47 @@ window.__ModuleLoader__.load({
|
|
|
10121
10167
|
document.head.appendChild(tag);
|
|
10122
10168
|
}
|
|
10123
10169
|
var KnowledgeView_module_css_default = {
|
|
10124
|
-
"
|
|
10125
|
-
"
|
|
10126
|
-
"tagPill": "bZAtrq_tagPill",
|
|
10127
|
-
"searchIcon": "bZAtrq_searchIcon",
|
|
10128
|
-
"graphCanvas": "bZAtrq_graphCanvas",
|
|
10170
|
+
"filterSelect": "bZAtrq_filterSelect",
|
|
10171
|
+
"metaRow": "bZAtrq_metaRow",
|
|
10129
10172
|
"badgeMedium": "bZAtrq_badgeMedium",
|
|
10130
|
-
"drawer": "bZAtrq_drawer",
|
|
10131
|
-
"slideIn": "bZAtrq_slideIn",
|
|
10132
10173
|
"drawerHeader": "bZAtrq_drawerHeader",
|
|
10133
|
-
"
|
|
10134
|
-
"drawerTitleGroup": "bZAtrq_drawerTitleGroup",
|
|
10135
|
-
"drawerBody": "bZAtrq_drawerBody",
|
|
10136
|
-
"searchInput": "bZAtrq_searchInput",
|
|
10137
|
-
"badgePlatform": "bZAtrq_badgePlatform",
|
|
10138
|
-
"toolbar": "bZAtrq_toolbar",
|
|
10174
|
+
"badgeLow": "bZAtrq_badgeLow",
|
|
10139
10175
|
"bucketTitle": "bZAtrq_bucketTitle",
|
|
10140
|
-
"
|
|
10141
|
-
"
|
|
10142
|
-
"
|
|
10143
|
-
"
|
|
10144
|
-
"
|
|
10176
|
+
"root": "bZAtrq_root",
|
|
10177
|
+
"graphCanvas": "bZAtrq_graphCanvas",
|
|
10178
|
+
"badge": "bZAtrq_badge",
|
|
10179
|
+
"searchIcon": "bZAtrq_searchIcon",
|
|
10180
|
+
"emptyState": "bZAtrq_emptyState",
|
|
10145
10181
|
"resetBtn": "bZAtrq_resetBtn",
|
|
10146
|
-
"claimsList": "bZAtrq_claimsList",
|
|
10147
10182
|
"factUnverifiable": "bZAtrq_factUnverifiable",
|
|
10148
|
-
"
|
|
10149
|
-
"
|
|
10150
|
-
"
|
|
10151
|
-
"emptyHint": "bZAtrq_emptyHint",
|
|
10152
|
-
"factBucket": "bZAtrq_factBucket",
|
|
10153
|
-
"bucketList": "bZAtrq_bucketList",
|
|
10154
|
-
"root": "bZAtrq_root",
|
|
10155
|
-
"closeBtn": "bZAtrq_closeBtn",
|
|
10156
|
-
"factDiscrepancies": "bZAtrq_factDiscrepancies",
|
|
10157
|
-
"relatedItem": "bZAtrq_relatedItem",
|
|
10183
|
+
"badgePlatform": "bZAtrq_badgePlatform",
|
|
10184
|
+
"emptyIcon": "bZAtrq_emptyIcon",
|
|
10185
|
+
"statsText": "bZAtrq_statsText",
|
|
10158
10186
|
"factVerified": "bZAtrq_factVerified",
|
|
10187
|
+
"slideIn": "bZAtrq_slideIn",
|
|
10188
|
+
"closeBtn": "bZAtrq_closeBtn",
|
|
10189
|
+
"section": "bZAtrq_section",
|
|
10159
10190
|
"openSourceBtn": "bZAtrq_openSourceBtn",
|
|
10191
|
+
"factDiscrepancies": "bZAtrq_factDiscrepancies",
|
|
10192
|
+
"drawerFooter": "bZAtrq_drawerFooter",
|
|
10193
|
+
"emptyHint": "bZAtrq_emptyHint",
|
|
10194
|
+
"tagPills": "bZAtrq_tagPills",
|
|
10195
|
+
"searchInput": "bZAtrq_searchInput",
|
|
10196
|
+
"searchBox": "bZAtrq_searchBox",
|
|
10160
10197
|
"badgeHigh": "bZAtrq_badgeHigh",
|
|
10161
|
-
"
|
|
10198
|
+
"drawerBody": "bZAtrq_drawerBody",
|
|
10162
10199
|
"filtersGroup": "bZAtrq_filtersGroup",
|
|
10163
|
-
"
|
|
10164
|
-
"
|
|
10200
|
+
"sectionLabel": "bZAtrq_sectionLabel",
|
|
10201
|
+
"tagPill": "bZAtrq_tagPill",
|
|
10202
|
+
"relatedItem": "bZAtrq_relatedItem",
|
|
10203
|
+
"drawer": "bZAtrq_drawer",
|
|
10204
|
+
"mainArea": "bZAtrq_mainArea",
|
|
10205
|
+
"drawerTitle": "bZAtrq_drawerTitle",
|
|
10206
|
+
"drawerTitleGroup": "bZAtrq_drawerTitleGroup",
|
|
10207
|
+
"toolbar": "bZAtrq_toolbar",
|
|
10208
|
+
"claimsList": "bZAtrq_claimsList",
|
|
10209
|
+
"factBucket": "bZAtrq_factBucket",
|
|
10210
|
+
"bucketList": "bZAtrq_bucketList"
|
|
10165
10211
|
};
|
|
10166
10212
|
//#endregion
|
|
10167
10213
|
//#region src/client/KnowledgeView.tsx
|
|
@@ -10242,6 +10288,30 @@ window.__ModuleLoader__.load({
|
|
|
10242
10288
|
allAuthors: Array.from(authorsSet).sort()
|
|
10243
10289
|
};
|
|
10244
10290
|
}, [cards]);
|
|
10291
|
+
(0, react.useEffect)(() => {
|
|
10292
|
+
if (cards.length === 0) return;
|
|
10293
|
+
const stale = staleFilterFields({
|
|
10294
|
+
selectedTag,
|
|
10295
|
+
selectedAuthor,
|
|
10296
|
+
selectedCredibility,
|
|
10297
|
+
selectedSourceType
|
|
10298
|
+
}, {
|
|
10299
|
+
tags: allTags,
|
|
10300
|
+
authors: allAuthors
|
|
10301
|
+
});
|
|
10302
|
+
for (const field of stale) if (field === "selectedTag") setSelectedTag("");
|
|
10303
|
+
else if (field === "selectedAuthor") setSelectedAuthor("");
|
|
10304
|
+
else if (field === "selectedCredibility") setSelectedCredibility("");
|
|
10305
|
+
else setSelectedSourceType("");
|
|
10306
|
+
}, [
|
|
10307
|
+
cards,
|
|
10308
|
+
allTags,
|
|
10309
|
+
allAuthors,
|
|
10310
|
+
selectedTag,
|
|
10311
|
+
selectedAuthor,
|
|
10312
|
+
selectedCredibility,
|
|
10313
|
+
selectedSourceType
|
|
10314
|
+
]);
|
|
10245
10315
|
const filteredCards = (0, react.useMemo)(() => {
|
|
10246
10316
|
const q = query.trim().toLowerCase();
|
|
10247
10317
|
return cards.filter((card) => {
|
|
@@ -10349,47 +10419,25 @@ window.__ModuleLoader__.load({
|
|
|
10349
10419
|
className: KnowledgeView_module_css_default.filterSelect,
|
|
10350
10420
|
value: selectedCredibility,
|
|
10351
10421
|
onChange: (e) => setSelectedCredibility(e.target.value),
|
|
10352
|
-
children: [
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
children: t("kv.credibility.high")
|
|
10360
|
-
}),
|
|
10361
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10362
|
-
value: "medium",
|
|
10363
|
-
children: t("kv.credibility.medium")
|
|
10364
|
-
}),
|
|
10365
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10366
|
-
value: "low",
|
|
10367
|
-
children: t("kv.credibility.low")
|
|
10368
|
-
})
|
|
10369
|
-
]
|
|
10422
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10423
|
+
value: "",
|
|
10424
|
+
children: t("kv.filter.allCredibility")
|
|
10425
|
+
}), CREDIBILITY_OPTIONS.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10426
|
+
value: option.value,
|
|
10427
|
+
children: t(option.labelKey)
|
|
10428
|
+
}, option.value))]
|
|
10370
10429
|
}),
|
|
10371
10430
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
10372
10431
|
className: KnowledgeView_module_css_default.filterSelect,
|
|
10373
10432
|
value: selectedSourceType,
|
|
10374
10433
|
onChange: (e) => setSelectedSourceType(e.target.value),
|
|
10375
|
-
children: [
|
|
10376
|
-
|
|
10377
|
-
|
|
10378
|
-
|
|
10379
|
-
|
|
10380
|
-
|
|
10381
|
-
|
|
10382
|
-
children: t("kv.sourceType.bilibili")
|
|
10383
|
-
}),
|
|
10384
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10385
|
-
value: "wechat",
|
|
10386
|
-
children: t("kv.sourceType.wechat")
|
|
10387
|
-
}),
|
|
10388
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10389
|
-
value: "manual",
|
|
10390
|
-
children: t("kv.sourceType.manual")
|
|
10391
|
-
})
|
|
10392
|
-
]
|
|
10434
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10435
|
+
value: "",
|
|
10436
|
+
children: t("kv.filter.allSourceTypes")
|
|
10437
|
+
}), SOURCE_TYPE_OPTIONS.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
10438
|
+
value: option.value,
|
|
10439
|
+
children: t(option.labelKey)
|
|
10440
|
+
}, option.value))]
|
|
10393
10441
|
}),
|
|
10394
10442
|
hasActiveFilters && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
10395
10443
|
type: "button",
|
|
@@ -10618,11 +10666,8 @@ window.__ModuleLoader__.load({
|
|
|
10618
10666
|
"kv.search.placeholder": "搜索卡片标题、摘要、标签...",
|
|
10619
10667
|
"kv.filter.tag": "主题标签",
|
|
10620
10668
|
"kv.filter.allTags": "全部标签",
|
|
10621
|
-
"kv.filter.author": "来源作者",
|
|
10622
10669
|
"kv.filter.allAuthors": "全部作者",
|
|
10623
|
-
"kv.filter.credibility": "可信度",
|
|
10624
10670
|
"kv.filter.allCredibility": "全部评级",
|
|
10625
|
-
"kv.filter.sourceType": "来源平台",
|
|
10626
10671
|
"kv.filter.allSourceTypes": "全部平台",
|
|
10627
10672
|
"kv.filter.reset": "重置筛选",
|
|
10628
10673
|
"kv.credibility.high": "高可信度 (High)",
|
|
@@ -10635,7 +10680,6 @@ window.__ModuleLoader__.load({
|
|
|
10635
10680
|
"kv.empty.filtered": "未找到匹配当前筛选条件的知识卡片",
|
|
10636
10681
|
"kv.stats.cards": "张卡片",
|
|
10637
10682
|
"kv.stats.clusters": "个主题簇",
|
|
10638
|
-
"kv.drawer.title": "知识卡片详情",
|
|
10639
10683
|
"kv.drawer.coreClaims": "核心论点",
|
|
10640
10684
|
"kv.drawer.factCheck": "事实核查 (三桶分类)",
|
|
10641
10685
|
"kv.drawer.verified": "经核实真实 (Verified)",
|
|
@@ -10645,19 +10689,14 @@ window.__ModuleLoader__.load({
|
|
|
10645
10689
|
"kv.drawer.boundaries": "适用边界与避坑",
|
|
10646
10690
|
"kv.drawer.tickers": "关联标的",
|
|
10647
10691
|
"kv.drawer.related": "关联卡片",
|
|
10648
|
-
"kv.drawer.openSource": "打开原始链接"
|
|
10649
|
-
"kv.drawer.publishedAt": "发布日期",
|
|
10650
|
-
"kv.drawer.author": "来源作者"
|
|
10692
|
+
"kv.drawer.openSource": "打开原始链接"
|
|
10651
10693
|
};
|
|
10652
10694
|
const en = {
|
|
10653
10695
|
"kv.search.placeholder": "Search title, summary, tags...",
|
|
10654
10696
|
"kv.filter.tag": "Topic Tag",
|
|
10655
10697
|
"kv.filter.allTags": "All Tags",
|
|
10656
|
-
"kv.filter.author": "Author",
|
|
10657
10698
|
"kv.filter.allAuthors": "All Authors",
|
|
10658
|
-
"kv.filter.credibility": "Credibility",
|
|
10659
10699
|
"kv.filter.allCredibility": "All Credibility",
|
|
10660
|
-
"kv.filter.sourceType": "Platform",
|
|
10661
10700
|
"kv.filter.allSourceTypes": "All Platforms",
|
|
10662
10701
|
"kv.filter.reset": "Reset",
|
|
10663
10702
|
"kv.credibility.high": "High",
|
|
@@ -10670,7 +10709,6 @@ window.__ModuleLoader__.load({
|
|
|
10670
10709
|
"kv.empty.filtered": "No knowledge cards match the current filter criteria",
|
|
10671
10710
|
"kv.stats.cards": "Cards",
|
|
10672
10711
|
"kv.stats.clusters": "Clusters",
|
|
10673
|
-
"kv.drawer.title": "Knowledge Card Details",
|
|
10674
10712
|
"kv.drawer.coreClaims": "Core Claims",
|
|
10675
10713
|
"kv.drawer.factCheck": "Fact Check (3 Buckets)",
|
|
10676
10714
|
"kv.drawer.verified": "Verified",
|
|
@@ -10680,9 +10718,7 @@ window.__ModuleLoader__.load({
|
|
|
10680
10718
|
"kv.drawer.boundaries": "Boundaries & Pitfalls",
|
|
10681
10719
|
"kv.drawer.tickers": "Related Tickers",
|
|
10682
10720
|
"kv.drawer.related": "Related Cards",
|
|
10683
|
-
"kv.drawer.openSource": "Open Original URL"
|
|
10684
|
-
"kv.drawer.publishedAt": "Published At",
|
|
10685
|
-
"kv.drawer.author": "Author"
|
|
10721
|
+
"kv.drawer.openSource": "Open Original URL"
|
|
10686
10722
|
};
|
|
10687
10723
|
//#endregion
|
|
10688
10724
|
//#region src/client/index.ts
|