@fses/workbench-app 0.2.16 → 0.2.17
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/WORKBENCH-CLOSURE.json +18 -12
- package/dist/Workspace-r8ayksVF.js +23176 -0
- package/dist/canvas/api/index.js +1 -1
- package/dist/{canvasFacade-B2EHgdqA.js → canvasFacade-B8jYm_aO.js} +748 -748
- package/dist/cardFactory-DmEBcCf4.js +1460 -0
- package/dist/extensions/index.js +1 -1
- package/dist/fses-workbench-app.js +5 -5
- package/dist/{index-CMM-5ObU.js → index-DEOR_GPc.js} +350 -346
- package/dist/internal/personal-workbench/fde-skill-cards/runtime/fdeSkillProtocolChartDisplayData.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/assistantPersonaProfiles.d.ts +6 -6
- package/dist/internal/personal-workbench/lib/cardStyleConfig.d.ts +26 -26
- package/dist/internal/personal-workbench/lib/echartsOptionEditorBridge.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/historyCardBindingRestore.fixture.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/runtimePrimitiveRegistry.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/vueRuntimeAdapters.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/workbenchCanvasBusinessGapChecklist.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchCardRecommendationFallback.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchCardRecommendationReturnItemUpsert.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/workbenchDataBindingBadge.d.ts +0 -5
- package/dist/internal/personal-workbench/lib/workbenchImageComposeEntry.d.ts +1 -1
- package/dist/internal/personal-workbench/lib/workbenchLayout.d.ts +0 -5
- package/dist/runtime/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/{useWorkbenchRuntime-DLf_FgC7.js → useWorkbenchRuntime-DDD22mdF.js} +7817 -7813
- package/dist/version.d.ts +1 -1
- package/dist/{workbenchCustomComponentRegistry-Bt94Lgko.js → workbenchCustomComponentRegistry-CWUPjCnJ.js} +74 -74
- package/node_modules/@byteluck-fe/locale-message/README.md +2 -0
- package/node_modules/@byteluck-fe/locale-message/dist/index.d.ts +37 -0
- package/node_modules/@byteluck-fe/locale-message/dist/locale-message.js +55 -0
- package/node_modules/@byteluck-fe/locale-message/package.json +37 -0
- package/node_modules/@fses/ai-chat/dist/components/ContextUsageRing.vue.d.ts +5 -0
- package/node_modules/@fses/ai-chat/dist/components/FsesAiChat.vue.d.ts +5 -0
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.js +5446 -5321
- package/node_modules/@fses/ai-chat/dist/fses-ai-chat.umd.cjs +16 -18
- package/node_modules/@fses/ai-chat/dist/style.css +1 -1
- package/node_modules/@fses/ai-chat/dist/utils/attachment-upload.d.ts +0 -5
- package/node_modules/@fses/ai-chat/package.json +6 -5
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card-renderers.js +10144 -9914
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card.js +1517 -1503
- package/node_modules/@fses/workbench-card/dist/fses-workbench-card.umd.cjs +1 -1
- package/node_modules/@fses/workbench-card/dist/renderers/chart/chartRendererRegistry.d.ts +97 -97
- package/node_modules/@fses/workbench-card/dist/renderers/style.css +1 -1
- package/node_modules/@fses/workbench-card/package.json +4 -1
- package/node_modules/@fses/workbench-card/src/registry/cardRegistry.ts +99 -98
- package/node_modules/@fses/workbench-card/src/registry/compositeCardPatterns.ts +31 -30
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateCategories.ts +24 -23
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.js +765 -764
- package/node_modules/@fses/workbench-card/src/registry/echartsTemplateRegistry.generated.ts +765 -764
- package/node_modules/@fses/workbench-card/src/renderers/WorkbenchBlockRenderer.vue +143 -129
- package/node_modules/@fses/workbench-card/src/renderers/chart/ChartRegistry.vue +4 -3
- package/node_modules/@fses/workbench-card/src/renderers/chart/EChartsProtocolRenderer.vue +2 -1
- package/node_modules/@fses/workbench-card/src/renderers/chart/chartRendererRegistry.ts +99 -98
- package/node_modules/@fses/workbench-card/src/renderers/chart/useEchart.ts +30 -29
- package/node_modules/@fses/workbench-card/src/renderers/native/nativeBindings.ts +11 -10
- package/node_modules/@fses/workbench-card/src/renderers/nested/nestedBlockBindings.ts +102 -101
- package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceCompositeBindings.ts +364 -363
- package/node_modules/@fses/workbench-card/src/renderers/reference-composite/referenceRiskAndStrategyBindings.ts +90 -89
- package/node_modules/@fses/workbench-card/src/renderers/useWorkbenchBlockRendererBindings.ts +33 -32
- package/package.json +4 -3
- package/dist/Workspace-CfKvji6S.js +0 -22896
- package/dist/cardFactory-BK3CA-Gn.js +0 -1443
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import { getLocaleText } from '@byteluck-fe/locale-message'
|
|
2
3
|
import { computed, ref, shallowRef, watch } from 'vue';
|
|
3
4
|
import type { DisplayBlockData, EchartsScriptData, RoleId } from '@fses/workbench-card/types';
|
|
4
5
|
import { buildDynamicEchartOption, normalizeDynamicEchartFieldMapping } from './dynamicEchartOption';
|
|
@@ -153,7 +154,7 @@ watch(
|
|
|
153
154
|
result.errorMessage || result.errorCode || 'Data binding refresh failed',
|
|
154
155
|
);
|
|
155
156
|
}
|
|
156
|
-
throw new Error(result.errorCode || result.errorMessage || '
|
|
157
|
+
throw new Error(result.errorCode || result.errorMessage || getLocaleText('FWC.f1c51787580015248'));
|
|
157
158
|
}
|
|
158
159
|
nextOption = buildDynamicEchartOption(data.optionTemplate, {
|
|
159
160
|
rows: Array.isArray(result.rows) ? result.rows : [],
|
|
@@ -162,7 +163,7 @@ watch(
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
await prepareWorkbenchChartOption(data, nextOption);
|
|
165
|
-
if (!nextOption && !nextScript && !renderError.value) renderError.value = '
|
|
166
|
+
if (!nextOption && !nextScript && !renderError.value) renderError.value = getLocaleText('FWC.58fd1787579105656');
|
|
166
167
|
theme.value = chartTheme(data, nextOption);
|
|
167
168
|
script.value = nextScript;
|
|
168
169
|
option.value = hideDuplicateEchartsTitle(nextOption, cardTitle);
|
|
@@ -189,7 +190,7 @@ watch(
|
|
|
189
190
|
theme.value = undefined;
|
|
190
191
|
script.value = null;
|
|
191
192
|
option.value = null;
|
|
192
|
-
renderError.value = error instanceof Error ? error.message : '
|
|
193
|
+
renderError.value = error instanceof Error ? error.message : getLocaleText('FWC.40d81787580015251');
|
|
193
194
|
}
|
|
194
195
|
},
|
|
195
196
|
{ immediate: true, deep: true },
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
<script setup lang="ts">
|
|
9
|
+
import { getLocaleText } from '@byteluck-fe/locale-message'
|
|
9
10
|
import { onBeforeUnmount, ref, watch, type Ref } from 'vue';
|
|
10
11
|
import type { EChartsOption } from 'echarts';
|
|
11
12
|
import type { DisplayBlockData, RoleId } from '@fses/workbench-card/types';
|
|
@@ -189,7 +190,7 @@ async function renderProtocolChart(data: ProtocolDataPayload | undefined): Promi
|
|
|
189
190
|
if (sequence !== renderSequence) return;
|
|
190
191
|
errorRef.value = error instanceof Error
|
|
191
192
|
? error.message
|
|
192
|
-
: '
|
|
193
|
+
: getLocaleText('FWC.c7161787580015253');
|
|
193
194
|
}
|
|
194
195
|
}
|
|
195
196
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getLocaleText } from '@byteluck-fe/locale-message'
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview Chart renderer registry - shared chart renderer keys, prompt labels, and intent detection helpers.
|
|
3
4
|
* @author seadon
|
|
@@ -45,201 +46,201 @@ export const CHART_RENDERER_DEFINITIONS = [
|
|
|
45
46
|
{
|
|
46
47
|
key: 'network',
|
|
47
48
|
title: '网络关系图',
|
|
48
|
-
subtitle: '
|
|
49
|
-
label: '
|
|
50
|
-
aliases: ['
|
|
49
|
+
subtitle: getLocaleText('FWC.220a1787579151842'),
|
|
50
|
+
label: getLocaleText('FWC.29361787581560553'),
|
|
51
|
+
aliases: [getLocaleText('FWC.29361787581560553'), getLocaleText('FWC.b4701787581333612'), 'network'],
|
|
51
52
|
defaultResourceKey: (roleId) => `${roleId}.network_graph`,
|
|
52
53
|
},
|
|
53
54
|
{
|
|
54
55
|
key: 'drilldownTree',
|
|
55
|
-
title: '
|
|
56
|
-
subtitle: '
|
|
57
|
-
label: '
|
|
58
|
-
aliases: ['
|
|
56
|
+
title: getLocaleText('FWC.19721787580566799'),
|
|
57
|
+
subtitle: getLocaleText('FWC.5a9f1787579239410'),
|
|
58
|
+
label: getLocaleText('FWC.d6821787581115752'),
|
|
59
|
+
aliases: [getLocaleText('FWC.d6821787581115752'), 'drilldownTree'],
|
|
59
60
|
defaultResourceKey: (roleId) => `${roleId}.drilldown_tree`,
|
|
60
61
|
},
|
|
61
62
|
{
|
|
62
63
|
key: 'pareto',
|
|
63
|
-
title: '
|
|
64
|
-
subtitle: '
|
|
65
|
-
label: '
|
|
66
|
-
aliases: ['
|
|
64
|
+
title: getLocaleText('FWC.ec6a1787580015258'),
|
|
65
|
+
subtitle: getLocaleText('FWC.e8541787579337181'),
|
|
66
|
+
label: getLocaleText('FWC.a10d1787581115230'),
|
|
67
|
+
aliases: [getLocaleText('FWC.a10d1787581115230'), 'pareto'],
|
|
67
68
|
defaultResourceKey: (roleId) => `${roleId}.pareto`,
|
|
68
69
|
},
|
|
69
70
|
{
|
|
70
71
|
key: 'stackedBar',
|
|
71
72
|
title: '堆叠柱状图',
|
|
72
|
-
subtitle: '
|
|
73
|
+
subtitle: getLocaleText('FWC.8b3c1787579239416'),
|
|
73
74
|
label: '堆叠柱状图',
|
|
74
|
-
aliases: ['堆叠柱状图', '
|
|
75
|
+
aliases: ['堆叠柱状图', getLocaleText('FWC.1fbe1787581070492'), 'stackedBar'],
|
|
75
76
|
defaultResourceKey: (roleId) => `${roleId}.stacked_bar`,
|
|
76
77
|
},
|
|
77
78
|
{
|
|
78
79
|
key: 'area',
|
|
79
|
-
title: '
|
|
80
|
-
subtitle: '
|
|
81
|
-
label: '
|
|
82
|
-
aliases: ['
|
|
80
|
+
title: getLocaleText('FWC.ddd91787581070501'),
|
|
81
|
+
subtitle: getLocaleText('FWC.ef5b1787579239421'),
|
|
82
|
+
label: getLocaleText('FWC.1ecf1787581477809'),
|
|
83
|
+
aliases: [getLocaleText('FWC.1ecf1787581477809'), 'area'],
|
|
83
84
|
defaultResourceKey: (roleId) => `${roleId}.area_trend`,
|
|
84
85
|
},
|
|
85
86
|
{
|
|
86
87
|
key: 'boxplot',
|
|
87
|
-
title: '
|
|
88
|
-
subtitle: '
|
|
89
|
-
label: '
|
|
90
|
-
aliases: ['
|
|
88
|
+
title: getLocaleText('FWC.bc971787580397609'),
|
|
89
|
+
subtitle: getLocaleText('FWC.c0551787579337188'),
|
|
90
|
+
label: getLocaleText('FWC.669f1787581477771'),
|
|
91
|
+
aliases: [getLocaleText('FWC.669f1787581477771'), 'boxplot'],
|
|
91
92
|
defaultResourceKey: (roleId) => `${roleId}.boxplot`,
|
|
92
93
|
},
|
|
93
94
|
{
|
|
94
95
|
key: 'geoGlobe',
|
|
95
|
-
title: '
|
|
96
|
-
subtitle: '
|
|
97
|
-
label: '
|
|
98
|
-
aliases: ['
|
|
96
|
+
title: getLocaleText('FWC.0f851787580015265'),
|
|
97
|
+
subtitle: getLocaleText('FWC.c9961787579168989'),
|
|
98
|
+
label: getLocaleText('FWC.673d1787581333620'),
|
|
99
|
+
aliases: [getLocaleText('FWC.673d1787581333620'), getLocaleText('FWC.07311787581560574'), 'geoGlobe'],
|
|
99
100
|
defaultResourceKey: (roleId) => `${roleId}.geo_globe`,
|
|
100
101
|
},
|
|
101
102
|
{
|
|
102
103
|
key: 'donut',
|
|
103
|
-
title: '
|
|
104
|
-
subtitle: '
|
|
105
|
-
label: '
|
|
106
|
-
aliases: ['
|
|
104
|
+
title: getLocaleText('FWC.16891787580397616'),
|
|
105
|
+
subtitle: getLocaleText('FWC.48991787579239427'),
|
|
106
|
+
label: getLocaleText('FWC.77471787581453523'),
|
|
107
|
+
aliases: [getLocaleText('FWC.77471787581453523'), 'donut'],
|
|
107
108
|
defaultResourceKey: 'sales.region_mix',
|
|
108
109
|
},
|
|
109
110
|
{
|
|
110
111
|
key: 'pie',
|
|
111
|
-
title: '
|
|
112
|
-
subtitle: '
|
|
113
|
-
label: '
|
|
114
|
-
aliases: ['
|
|
112
|
+
title: getLocaleText('FWC.427d1787580567360'),
|
|
113
|
+
subtitle: getLocaleText('FWC.8b5a1787579239433'),
|
|
114
|
+
label: getLocaleText('FWC.03ce1787581593924'),
|
|
115
|
+
aliases: [getLocaleText('FWC.03ce1787581593924'), 'pie'],
|
|
115
116
|
defaultResourceKey: 'sales.region_mix',
|
|
116
117
|
},
|
|
117
118
|
{
|
|
118
119
|
key: 'radar',
|
|
119
|
-
title: '
|
|
120
|
-
subtitle: '
|
|
121
|
-
label: '
|
|
122
|
-
aliases: ['
|
|
120
|
+
title: getLocaleText('FWC.89cb1787580397623'),
|
|
121
|
+
subtitle: getLocaleText('FWC.d97e1787579139130'),
|
|
122
|
+
label: getLocaleText('FWC.a9ce1787581453630'),
|
|
123
|
+
aliases: [getLocaleText('FWC.a9ce1787581453630'), 'radar'],
|
|
123
124
|
defaultResourceKey: (roleId) => `${roleId}.radar_profile`,
|
|
124
125
|
},
|
|
125
126
|
{
|
|
126
127
|
key: 'bubble',
|
|
127
|
-
title: '
|
|
128
|
-
subtitle: '
|
|
129
|
-
label: '
|
|
130
|
-
aliases: ['
|
|
128
|
+
title: getLocaleText('FWC.1cc71787580397629'),
|
|
129
|
+
subtitle: getLocaleText('FWC.4c121787579337194'),
|
|
130
|
+
label: getLocaleText('FWC.feb91787581461765'),
|
|
131
|
+
aliases: [getLocaleText('FWC.feb91787581461765'), 'bubble'],
|
|
131
132
|
defaultResourceKey: (roleId) => `${roleId}.bubble_distribution`,
|
|
132
133
|
},
|
|
133
134
|
{
|
|
134
135
|
key: 'scatter',
|
|
135
|
-
title: '
|
|
136
|
-
subtitle: '
|
|
137
|
-
label: '
|
|
138
|
-
aliases: ['
|
|
136
|
+
title: getLocaleText('FWC.01841787580397636'),
|
|
137
|
+
subtitle: getLocaleText('FWC.1e261787579282037'),
|
|
138
|
+
label: getLocaleText('FWC.4af01787581453671'),
|
|
139
|
+
aliases: [getLocaleText('FWC.4af01787581453671'), 'scatter'],
|
|
139
140
|
defaultResourceKey: (roleId) => `${roleId}.scatter_distribution`,
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
143
|
key: 'funnel',
|
|
143
|
-
title: '
|
|
144
|
-
subtitle: '
|
|
145
|
-
label: '
|
|
146
|
-
aliases: ['
|
|
144
|
+
title: getLocaleText('FWC.c2191787581070508'),
|
|
145
|
+
subtitle: getLocaleText('FWC.2d321787579240370'),
|
|
146
|
+
label: getLocaleText('FWC.f1ae1787581477594'),
|
|
147
|
+
aliases: [getLocaleText('FWC.f1ae1787581477594'), 'funnel'],
|
|
147
148
|
defaultResourceKey: (roleId) => (roleId === 'sales_leader' ? 'sales.funnel' : `${roleId}.process_funnel`),
|
|
148
149
|
},
|
|
149
150
|
{
|
|
150
151
|
key: 'gauge',
|
|
151
|
-
title: '
|
|
152
|
-
subtitle: '
|
|
153
|
-
label: '
|
|
154
|
-
aliases: ['
|
|
152
|
+
title: getLocaleText('FWC.b3a01787580015271'),
|
|
153
|
+
subtitle: getLocaleText('FWC.5be61787579241138'),
|
|
154
|
+
label: getLocaleText('FWC.24e21787581477651'),
|
|
155
|
+
aliases: [getLocaleText('FWC.24e21787581477651'), 'gauge'],
|
|
155
156
|
defaultResourceKey: (roleId) => `${roleId}.health_gauge`,
|
|
156
157
|
},
|
|
157
158
|
{
|
|
158
159
|
key: 'map',
|
|
159
|
-
title: '
|
|
160
|
-
subtitle: '
|
|
161
|
-
label: '
|
|
162
|
-
aliases: ['
|
|
160
|
+
title: getLocaleText('FWC.17af1787580567848'),
|
|
161
|
+
subtitle: getLocaleText('FWC.88a01787579242144'),
|
|
162
|
+
label: getLocaleText('FWC.80e61787581593965'),
|
|
163
|
+
aliases: [getLocaleText('FWC.80e61787581593965'), 'map'],
|
|
163
164
|
defaultResourceKey: 'sales.region_map',
|
|
164
165
|
},
|
|
165
166
|
{
|
|
166
167
|
key: 'sankey',
|
|
167
|
-
title: '
|
|
168
|
-
subtitle: '
|
|
169
|
-
label: '
|
|
170
|
-
aliases: ['
|
|
168
|
+
title: getLocaleText('FWC.5e501787580397643'),
|
|
169
|
+
subtitle: getLocaleText('FWC.2cc41787579139135'),
|
|
170
|
+
label: getLocaleText('FWC.b9681787581477697'),
|
|
171
|
+
aliases: [getLocaleText('FWC.b9681787581477697'), 'sankey'],
|
|
171
172
|
defaultResourceKey: (roleId) => `${roleId}.sankey_flow`,
|
|
172
173
|
},
|
|
173
174
|
{
|
|
174
175
|
key: 'tree',
|
|
175
|
-
title: '
|
|
176
|
-
subtitle: '
|
|
177
|
-
label: '
|
|
178
|
-
aliases: ['
|
|
176
|
+
title: getLocaleText('FWC.a1391787580568370'),
|
|
177
|
+
subtitle: getLocaleText('FWC.a5421787579243027'),
|
|
178
|
+
label: getLocaleText('FWC.29f21787581594443'),
|
|
179
|
+
aliases: [getLocaleText('FWC.29f21787581594443'), 'tree'],
|
|
179
180
|
defaultResourceKey: (roleId) => `${roleId}.tree_breakdown`,
|
|
180
181
|
},
|
|
181
182
|
{
|
|
182
183
|
key: 'gantt',
|
|
183
|
-
title: '
|
|
184
|
-
subtitle: '
|
|
185
|
-
label: '
|
|
186
|
-
aliases: ['
|
|
184
|
+
title: getLocaleText('FWC.5f5b1787580397649'),
|
|
185
|
+
subtitle: getLocaleText('FWC.e97d1787579151847'),
|
|
186
|
+
label: getLocaleText('FWC.37e61787581477734'),
|
|
187
|
+
aliases: [getLocaleText('FWC.37e61787581477734'), 'gantt'],
|
|
187
188
|
defaultResourceKey: (roleId) => `${roleId}.gantt_schedule`,
|
|
188
189
|
},
|
|
189
190
|
{
|
|
190
191
|
key: 'kline',
|
|
191
|
-
title: '
|
|
192
|
-
subtitle: '
|
|
193
|
-
label: '
|
|
194
|
-
aliases: ['
|
|
192
|
+
title: getLocaleText('FWC.5aff1787579902646'),
|
|
193
|
+
subtitle: getLocaleText('FWC.1f3a1787579337200'),
|
|
194
|
+
label: getLocaleText('FWC.ef301787581560583'),
|
|
195
|
+
aliases: [getLocaleText('FWC.ef301787581560583'), getLocaleText('FWC.ee861787581560617'), 'kline', 'candlestick'],
|
|
195
196
|
defaultResourceKey: (roleId) => `${roleId}.business_index_kline`,
|
|
196
197
|
},
|
|
197
198
|
{
|
|
198
199
|
key: 'candlestick',
|
|
199
|
-
title: '
|
|
200
|
-
subtitle: '
|
|
201
|
-
label: '
|
|
200
|
+
title: getLocaleText('FWC.5aff1787579902646'),
|
|
201
|
+
subtitle: getLocaleText('FWC.1f3a1787579337200'),
|
|
202
|
+
label: getLocaleText('FWC.ef301787581560583'),
|
|
202
203
|
aliases: ['candlestick'],
|
|
203
204
|
defaultResourceKey: (roleId) => `${roleId}.business_index_kline`,
|
|
204
205
|
},
|
|
205
206
|
{
|
|
206
207
|
key: 'heatmap',
|
|
207
|
-
title: '
|
|
208
|
-
subtitle: '
|
|
209
|
-
label: '
|
|
210
|
-
aliases: ['
|
|
208
|
+
title: getLocaleText('FWC.d39c1787581070526'),
|
|
209
|
+
subtitle: getLocaleText('FWC.b6941787579282043'),
|
|
210
|
+
label: getLocaleText('FWC.6c811787581445014'),
|
|
211
|
+
aliases: [getLocaleText('FWC.6c811787581445014'), 'heatmap'],
|
|
211
212
|
defaultResourceKey: (roleId) => `${roleId}.heatmap_matrix`,
|
|
212
213
|
},
|
|
213
214
|
{
|
|
214
215
|
key: 'waterfall',
|
|
215
|
-
title: '
|
|
216
|
-
subtitle: '
|
|
217
|
-
label: '
|
|
218
|
-
aliases: ['
|
|
216
|
+
title: getLocaleText('FWC.ea891787580397656'),
|
|
217
|
+
subtitle: getLocaleText('FWC.6b0f1787579169009'),
|
|
218
|
+
label: getLocaleText('FWC.04671787581444486'),
|
|
219
|
+
aliases: [getLocaleText('FWC.04671787581444486'), 'waterfall'],
|
|
219
220
|
defaultResourceKey: 'finance.cashflow_trend',
|
|
220
221
|
},
|
|
221
222
|
{
|
|
222
223
|
key: 'mixedBarLine',
|
|
223
|
-
title: '
|
|
224
|
-
subtitle: '
|
|
225
|
-
label: '
|
|
226
|
-
aliases: ['
|
|
224
|
+
title: getLocaleText('FWC.247f1787580397662'),
|
|
225
|
+
subtitle: getLocaleText('FWC.feb91787579518980'),
|
|
226
|
+
label: getLocaleText('FWC.123f1787581560639'),
|
|
227
|
+
aliases: [getLocaleText('FWC.123f1787581560639'), getLocaleText('FWC.e21c1787581560659'), getLocaleText('FWC.f8371787581560628'), 'mixed', 'mixedbarline'],
|
|
227
228
|
defaultResourceKey: 'sales.trend',
|
|
228
229
|
},
|
|
229
230
|
{
|
|
230
231
|
key: 'line',
|
|
231
|
-
title: '
|
|
232
|
-
subtitle: '
|
|
233
|
-
label: '
|
|
234
|
-
aliases: ['
|
|
232
|
+
title: getLocaleText('FWC.31191787581070533'),
|
|
233
|
+
subtitle: getLocaleText('FWC.ad1b1787579518988'),
|
|
234
|
+
label: getLocaleText('FWC.c2221787581443965'),
|
|
235
|
+
aliases: [getLocaleText('FWC.c2221787581443965'), 'line'],
|
|
235
236
|
defaultResourceKey: 'sales.trend',
|
|
236
237
|
},
|
|
237
238
|
{
|
|
238
239
|
key: 'bar',
|
|
239
|
-
title: '
|
|
240
|
-
subtitle: '
|
|
241
|
-
label: '
|
|
242
|
-
aliases: ['
|
|
240
|
+
title: getLocaleText('FWC.e82d1787581070542'),
|
|
241
|
+
subtitle: getLocaleText('FWC.8c321787579201549'),
|
|
242
|
+
label: getLocaleText('FWC.05241787581443478'),
|
|
243
|
+
aliases: [getLocaleText('FWC.05241787581443478'), getLocaleText('FWC.6bad1787581560670'), 'bar'],
|
|
243
244
|
defaultResourceKey: 'sales.trend',
|
|
244
245
|
},
|
|
245
246
|
] as const satisfies readonly ChartRendererDefinition[];
|
|
@@ -252,7 +253,7 @@ export const CHART_RENDERER_PROMPT_LABELS = CHART_RENDERER_DEFINITIONS
|
|
|
252
253
|
.filter((item) => ['pie', 'donut', 'radar', 'scatter', 'bubble', 'funnel', 'gauge', 'map', 'sankey', 'tree', 'gantt'].includes(item.key))
|
|
253
254
|
.map((item) => `${item.key}=${item.label}`)
|
|
254
255
|
.join(', ')
|
|
255
|
-
.concat('
|
|
256
|
+
.concat(getLocaleText('FWC.92de1787579033650'));
|
|
256
257
|
|
|
257
258
|
/**
|
|
258
259
|
* Normalizes legacy chart renderer aliases to the keys used by option builders.
|
|
@@ -303,7 +304,7 @@ export function detectChartRenderer(text: string, roleId: RoleId) {
|
|
|
303
304
|
return {
|
|
304
305
|
rendererKey: definition.key,
|
|
305
306
|
title: roleId === 'sales_leader' && definition.key === 'funnel'
|
|
306
|
-
? '
|
|
307
|
+
? getLocaleText('FWC.b73b1787581070550')
|
|
307
308
|
: definition.title,
|
|
308
309
|
subtitle: definition.subtitle,
|
|
309
310
|
resourceKey: resolveChartResourceKey(definition, roleId),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getLocaleText } from '@byteluck-fe/locale-message'
|
|
1
2
|
import { nextTick, onBeforeUnmount, shallowRef, watch, type Ref } from 'vue';
|
|
2
3
|
import * as echarts from 'echarts';
|
|
3
4
|
import type { ECharts, EChartsOption } from 'echarts';
|
|
@@ -97,13 +98,13 @@ const donutHoverCenterBindings = new WeakMap<ECharts, { option: EChartsOption }>
|
|
|
97
98
|
const regionMap = {
|
|
98
99
|
type: 'FeatureCollection',
|
|
99
100
|
features: [
|
|
100
|
-
{ type: 'Feature', properties: { name: '
|
|
101
|
-
{ type: 'Feature', properties: { name: '
|
|
102
|
-
{ type: 'Feature', properties: { name: '
|
|
103
|
-
{ type: 'Feature', properties: { name: '
|
|
104
|
-
{ type: 'Feature', properties: { name: '
|
|
105
|
-
{ type: 'Feature', properties: { name: '
|
|
106
|
-
{ type: 'Feature', properties: { name: '
|
|
101
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.bd281787581616997') }, geometry: { type: 'Polygon', coordinates: [[[118, 42], [134, 42], [134, 53], [118, 53], [118, 42]]] } },
|
|
102
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.4fb71787581617038') }, geometry: { type: 'Polygon', coordinates: [[[108, 36], [122, 36], [122, 44], [108, 44], [108, 36]]] } },
|
|
103
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.e76f1787581617857') }, geometry: { type: 'Polygon', coordinates: [[[116, 28], [124, 28], [124, 36], [116, 36], [116, 28]]] } },
|
|
104
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.7c461787581618518') }, geometry: { type: 'Polygon', coordinates: [[[108, 28], [116, 28], [116, 36], [108, 36], [108, 28]]] } },
|
|
105
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.f5bb1787581618560') }, geometry: { type: 'Polygon', coordinates: [[[108, 20], [122, 20], [122, 28], [108, 28], [108, 20]]] } },
|
|
106
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.6ab11787581618603') }, geometry: { type: 'Polygon', coordinates: [[[78, 28], [108, 28], [108, 48], [78, 48], [78, 28]]] } },
|
|
107
|
+
{ type: 'Feature', properties: { name: getLocaleText('FWC.b1f61787581618652') }, geometry: { type: 'Polygon', coordinates: [[[124, 18], [136, 18], [136, 26], [124, 26], [124, 18]]] } },
|
|
107
108
|
],
|
|
108
109
|
};
|
|
109
110
|
|
|
@@ -116,11 +117,11 @@ function ensureMapRegistered() {
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
function assertRecord(value: unknown, shape: string): asserts value is Record<string, unknown> {
|
|
119
|
-
if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(
|
|
120
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error(getLocaleText('FWC.c0021787579201555', {p0: shape}));
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
function assertArray(value: unknown, name: string): asserts value is unknown[] {
|
|
123
|
-
if (!Array.isArray(value)) throw new Error(
|
|
124
|
+
if (!Array.isArray(value)) throw new Error(getLocaleText('FWC.088c1787579139141', {p0: name}));
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
function objectValue(value: unknown, key: string) {
|
|
@@ -536,7 +537,7 @@ function categoryLabelsFromProtocolPayload(payload: unknown): string[] {
|
|
|
536
537
|
if (!Array.isArray(xAxis)) return [];
|
|
537
538
|
return xAxis.map((item, index) => {
|
|
538
539
|
const label = String(item ?? '').trim();
|
|
539
|
-
return label ||
|
|
540
|
+
return label || getLocaleText('FWC.98ff1787579719338', {p0: index + 1});
|
|
540
541
|
});
|
|
541
542
|
}
|
|
542
543
|
|
|
@@ -1010,7 +1011,7 @@ function fallbackSeriesType(rendererKey: string): 'bar' | 'line' {
|
|
|
1010
1011
|
function seriesOption(data: MultiSeriesData, rendererKey = ''): EChartsOption {
|
|
1011
1012
|
assertArray(data.categories, 'categories');
|
|
1012
1013
|
assertArray(data.series, 'series');
|
|
1013
|
-
const stacked = data.series.some((item) => item.name.includes('
|
|
1014
|
+
const stacked = data.series.some((item) => item.name.includes(getLocaleText('FWC.d65c1787581618694'))) || data.narrative?.includes(getLocaleText('FWC.92421787581618741'));
|
|
1014
1015
|
const layout = buildCartesianResponsiveLayout(data.categories, data.series.length);
|
|
1015
1016
|
return {
|
|
1016
1017
|
...baseOption(paletteColorsFromData(data)),
|
|
@@ -1032,7 +1033,7 @@ function seriesOption(data: MultiSeriesData, rendererKey = ''): EChartsOption {
|
|
|
1032
1033
|
itemStyle: item.itemStyle,
|
|
1033
1034
|
smooth: item.type === 'line',
|
|
1034
1035
|
stack: stacked && item.type === 'bar' ? 'total' : undefined,
|
|
1035
|
-
areaStyle: data.unit === '
|
|
1036
|
+
areaStyle: data.unit === getLocaleText('FWC.051e1787581333635') && item.type === 'line' ? { opacity: 0.18 } : undefined,
|
|
1036
1037
|
data: item.data,
|
|
1037
1038
|
barMaxWidth: 34,
|
|
1038
1039
|
symbolSize: 7,
|
|
@@ -1122,7 +1123,7 @@ function radarOption(data: RadarMetricsData): EChartsOption {
|
|
|
1122
1123
|
return {
|
|
1123
1124
|
...baseOption(),
|
|
1124
1125
|
radar: { radius: '68%', indicator: data.axes.map((axis) => ({ name: axis.label, max: data.max })), splitArea: { areaStyle: { color: ['#f8fafc', '#eef2ff'] } } },
|
|
1125
|
-
series: [{ type: 'radar', areaStyle: { opacity: 0.18 }, data: [{ name: '
|
|
1126
|
+
series: [{ type: 'radar', areaStyle: { opacity: 0.18 }, data: [{ name: getLocaleText('FWC.4afb1787581618789'), value: data.axes.map((axis) => axis.value) }] }],
|
|
1126
1127
|
};
|
|
1127
1128
|
}
|
|
1128
1129
|
|
|
@@ -1171,7 +1172,7 @@ function mapOption(data: MapRegionsData): EChartsOption {
|
|
|
1171
1172
|
const values = finiteValues(data.regions.map((region) => region.value));
|
|
1172
1173
|
return {
|
|
1173
1174
|
...baseOption(),
|
|
1174
|
-
visualMap: { min: Math.min(...values), max: Math.max(...values), left: 0, bottom: 0, text: ['
|
|
1175
|
+
visualMap: { min: Math.min(...values), max: Math.max(...values), left: 0, bottom: 0, text: [getLocaleText('FWC.f33f1787581662762'), getLocaleText('FWC.47591787581662815')], inRange: { color: ['#dbeafe', '#93c5fd', '#1f4fd4'] } },
|
|
1175
1176
|
series: [{ type: 'map', map: 'workbench-regions', roam: false, label: { show: true, color: '#0f172a' }, data: data.regions.map((region) => ({ name: region.name, value: region.value })) }],
|
|
1176
1177
|
};
|
|
1177
1178
|
}
|
|
@@ -1253,15 +1254,15 @@ function paretoOption(data: ParetoSeriesData): EChartsOption {
|
|
|
1253
1254
|
assertArray(data.categories, 'categories');
|
|
1254
1255
|
assertArray(data.bars, 'bars');
|
|
1255
1256
|
assertArray(data.cumulative, 'cumulative');
|
|
1256
|
-
const barName = '
|
|
1257
|
-
const cumulativeName = '
|
|
1257
|
+
const barName = getLocaleText('FWC.f4161787581560681');
|
|
1258
|
+
const cumulativeName = getLocaleText('FWC.5d5e1787580397679');
|
|
1258
1259
|
return {
|
|
1259
1260
|
...baseOption(),
|
|
1260
1261
|
legend: { bottom: 0, data: [barName, cumulativeName] },
|
|
1261
1262
|
xAxis: { type: 'category', data: data.categories, axisTick: { show: false } },
|
|
1262
1263
|
yAxis: [
|
|
1263
1264
|
{ type: 'value', name: barName, splitLine: { lineStyle: { color: '#eef2f7' } } },
|
|
1264
|
-
{ type: 'value', name: '
|
|
1265
|
+
{ type: 'value', name: getLocaleText('FWC.94431787581333676'), min: 0, max: 100, axisLabel: { formatter: '{value}%' } },
|
|
1265
1266
|
],
|
|
1266
1267
|
tooltip: { trigger: 'axis', confine: true, formatter: paretoTooltipFormatter },
|
|
1267
1268
|
series: [{ name: barName, type: 'bar', barMaxWidth: 34, data: data.bars }, { name: cumulativeName, type: 'line', yAxisIndex: 1, smooth: true, data: data.cumulative }],
|
|
@@ -1276,12 +1277,12 @@ function paretoTooltipFormatter(params: unknown): string {
|
|
|
1276
1277
|
const marker = typeof item.marker === 'string' ? item.marker : '';
|
|
1277
1278
|
const name = String(item.seriesName ?? '');
|
|
1278
1279
|
const value = typeof item.value === 'number' ? item.value : Number(item.value);
|
|
1279
|
-
if (name.includes('
|
|
1280
|
-
return
|
|
1280
|
+
if (name.includes(getLocaleText('FWC.94431787581333676'))) {
|
|
1281
|
+
return getLocaleText('FWC.a2b21787579127467', {p0: marker,p1: formatParetoPercent(value)});
|
|
1281
1282
|
}
|
|
1282
1283
|
return `${marker}${name}:${Number.isFinite(value) ? value : ''}`;
|
|
1283
1284
|
});
|
|
1284
|
-
return [title, ...lines,
|
|
1285
|
+
return [title, ...lines, getLocaleText('FWC.be1d1787579139903', {p0: dataIndex + 1})].filter(Boolean).join('<br/>');
|
|
1285
1286
|
}
|
|
1286
1287
|
|
|
1287
1288
|
function formatParetoPercent(value: number): string {
|
|
@@ -1292,13 +1293,13 @@ function formatParetoPercent(value: number): string {
|
|
|
1292
1293
|
function networkOption(data: NetworkGraphData): EChartsOption {
|
|
1293
1294
|
assertArray(data.nodes, 'nodes');
|
|
1294
1295
|
assertArray(data.links, 'links');
|
|
1295
|
-
const categoryNames: string[] = Array.from(new Set(data.nodes.map((node) => node.category || '
|
|
1296
|
+
const categoryNames: string[] = Array.from(new Set(data.nodes.map((node) => node.category || getLocaleText('FWC.6f1e1787581618840'))));
|
|
1296
1297
|
const categories = categoryNames.map((name) => ({ name }));
|
|
1297
1298
|
return {
|
|
1298
1299
|
...baseOption(),
|
|
1299
1300
|
tooltip: { trigger: 'item', confine: true },
|
|
1300
1301
|
legend: { bottom: 0, data: categories.map((item) => item.name) },
|
|
1301
|
-
series: [{ type: 'graph', layout: 'force', roam: false, draggable: false, categories, force: { repulsion: 160, edgeLength: 88 }, label: { show: true, formatter: '{b}' }, lineStyle: { color: '#94a3b8', opacity: 0.8 }, data: data.nodes.map((node) => ({ id: node.id, name: node.label, value: node.value, category: node.category || '
|
|
1302
|
+
series: [{ type: 'graph', layout: 'force', roam: false, draggable: false, categories, force: { repulsion: 160, edgeLength: 88 }, label: { show: true, formatter: '{b}' }, lineStyle: { color: '#94a3b8', opacity: 0.8 }, data: data.nodes.map((node) => ({ id: node.id, name: node.label, value: node.value, category: node.category || getLocaleText('FWC.6f1e1787581618840'), symbolSize: Math.max(24, Math.min(56, node.value || 28)) })), links: data.links.map((link) => ({ source: link.source, target: link.target, value: link.value || 1 })) }],
|
|
1302
1303
|
};
|
|
1303
1304
|
}
|
|
1304
1305
|
|
|
@@ -1386,10 +1387,10 @@ async function ensureEchartsMapRegistered(mapName: string, rootPath: string | un
|
|
|
1386
1387
|
const resourceUrl = resolveEchartsResourceUrl(`/data/asset/geo/${encodeURIComponent(mapName)}.json`, normalizedRootPath);
|
|
1387
1388
|
echartsMapLoadPromises.set(cacheKey, window.fetch(resourceUrl)
|
|
1388
1389
|
.then(async (response) => {
|
|
1389
|
-
if (!response.ok) throw new Error(
|
|
1390
|
+
if (!response.ok) throw new Error(getLocaleText('FWC.7a3d1787578051375', {p0: response.status,p1: resourceUrl}));
|
|
1390
1391
|
const geoJson = await response.json();
|
|
1391
1392
|
if (!geoJson || typeof geoJson !== 'object' || !Array.isArray((geoJson as Record<string, unknown>).features)) {
|
|
1392
|
-
throw new Error(
|
|
1393
|
+
throw new Error(getLocaleText('FWC.48531787578636689', {p0: mapName}));
|
|
1393
1394
|
}
|
|
1394
1395
|
echarts.registerMap(mapName, geoJson as never);
|
|
1395
1396
|
})
|
|
@@ -1416,7 +1417,7 @@ function createJQueryCompat(rootPath: string, isActive: () => boolean, onError:
|
|
|
1416
1417
|
const resourceUrl = resolveEchartsResourceUrl(String(url), rootPath);
|
|
1417
1418
|
const basePromise = window.fetch(resourceUrl)
|
|
1418
1419
|
.then((response) => {
|
|
1419
|
-
if (!response.ok) throw new Error(
|
|
1420
|
+
if (!response.ok) throw new Error(getLocaleText('FWC.24d51787578052307', {p0: response.status,p1: resourceUrl}));
|
|
1420
1421
|
return read(response);
|
|
1421
1422
|
});
|
|
1422
1423
|
const handledPromise = basePromise
|
|
@@ -1561,7 +1562,7 @@ function runEchartsScript(script: string, rootPath: string | undefined, myChart:
|
|
|
1561
1562
|
) as (scope: EchartsScriptScope) => unknown;
|
|
1562
1563
|
const option = runner(scope);
|
|
1563
1564
|
if (!option) return null;
|
|
1564
|
-
if (typeof option !== 'object' || Array.isArray(option)) throw new Error('
|
|
1565
|
+
if (typeof option !== 'object' || Array.isArray(option)) throw new Error(getLocaleText('FWC.a2221787578345186'));
|
|
1565
1566
|
const nextOption = option as EChartsOption;
|
|
1566
1567
|
if (optionUsesEchartsGl(nextOption) && !objectValue(nextOption, 'backgroundColor')) {
|
|
1567
1568
|
return removeRuntimeEchartsChrome({ backgroundColor: '#000', ...nextOption });
|
|
@@ -1778,11 +1779,11 @@ export function useEchart(
|
|
|
1778
1779
|
}
|
|
1779
1780
|
if (scriptData) {
|
|
1780
1781
|
const onScriptError = (error: unknown) => {
|
|
1781
|
-
errorRef && (errorRef.value = error instanceof Error ? error.message : '
|
|
1782
|
+
errorRef && (errorRef.value = error instanceof Error ? error.message : getLocaleText('FWC.18d31787579337212'));
|
|
1782
1783
|
};
|
|
1783
1784
|
const scriptChart = createScopedChart(chart, scriptData.rootPath, isActive, onScriptError);
|
|
1784
1785
|
const jquery = createJQueryCompat(scriptData.rootPath || '', isActive, (error) => {
|
|
1785
|
-
errorRef && (errorRef.value = error instanceof Error ? error.message : '
|
|
1786
|
+
errorRef && (errorRef.value = error instanceof Error ? error.message : getLocaleText('FWC.b78f1787579244042'));
|
|
1786
1787
|
});
|
|
1787
1788
|
const scriptOption = runEchartsScript(scriptData.script, scriptData.rootPath, scriptChart, jquery);
|
|
1788
1789
|
if (scriptOption && isActive()) {
|
|
@@ -1799,7 +1800,7 @@ export function useEchart(
|
|
|
1799
1800
|
errorRef && (errorRef.value = '');
|
|
1800
1801
|
} catch (error) {
|
|
1801
1802
|
dispose();
|
|
1802
|
-
errorRef && (errorRef.value = error instanceof Error ? error.message : '
|
|
1803
|
+
errorRef && (errorRef.value = error instanceof Error ? error.message : getLocaleText('FWC.a1e91787580568932'));
|
|
1803
1804
|
}
|
|
1804
1805
|
};
|
|
1805
1806
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getLocaleText } from '@byteluck-fe/locale-message'
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview 原生卡片绑定 - 提供表单、问卷、指标、列表、天气和普通图表 helper。
|
|
3
4
|
* @author seadon
|
|
@@ -108,7 +109,7 @@ export function tableColumnsFromRows(columns: unknown, rows: unknown): string[]
|
|
|
108
109
|
&& rowColumns.every((column, index) => column === firstColumns[index]);
|
|
109
110
|
});
|
|
110
111
|
// 异构对象行无法共享真实列头,统一降级为逐行键值摘要,避免后续行错列或整行空白。
|
|
111
|
-
return usesStableColumns ? firstColumns.slice(0, 3) : ['
|
|
112
|
+
return usesStableColumns ? firstColumns.slice(0, 3) : [getLocaleText('FWC.65361787581618934'), getLocaleText('FWC.0a901787581619226')];
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
/**
|
|
@@ -124,8 +125,8 @@ export function tableRowCells(row: unknown, columns: string[]): string[] {
|
|
|
124
125
|
return cells.slice(0, columns.length).map(tableCellText);
|
|
125
126
|
}
|
|
126
127
|
const usesKeyValueFallback = columns.length === 2
|
|
127
|
-
&& columns[0] === '
|
|
128
|
-
&& columns[1] === '
|
|
128
|
+
&& columns[0] === getLocaleText('FWC.65361787581618934')
|
|
129
|
+
&& columns[1] === getLocaleText('FWC.0a901787581619226')
|
|
129
130
|
&& !columns.every((column) => Object.prototype.hasOwnProperty.call(record, column));
|
|
130
131
|
const entries = Object.entries(record)
|
|
131
132
|
.filter(([key]) => imageTableColumnVisible(key))
|
|
@@ -314,11 +315,11 @@ export function createNativeBindings(context: NativeBindingsContext) {
|
|
|
314
315
|
}
|
|
315
316
|
|
|
316
317
|
function taskTypeLabel(type: TaskSummaryData['items'][number]['type']) {
|
|
317
|
-
return { form: '
|
|
318
|
+
return { form: getLocaleText('FWC.e62b1787581619362'), survey: getLocaleText('FWC.a1ef1787581619383'), notice: getLocaleText('FWC.ea991787581619404'), document: getLocaleText('FWC.35761787581619427'), workflow: getLocaleText('FWC.d9821787581619451'), custom: getLocaleText('FWC.8b301787581619473') }[type] || type;
|
|
318
319
|
}
|
|
319
320
|
|
|
320
321
|
function taskStatusLabel(status: TaskSummaryData['items'][number]['status']) {
|
|
321
|
-
return { pending: '
|
|
322
|
+
return { pending: getLocaleText('FWC.0cdc1787581560720'), reading: getLocaleText('FWC.7fe41787581560936'), submitted: getLocaleText('FWC.76de1787581559828'), overdue: getLocaleText('FWC.f7991787581611854'), done: getLocaleText('FWC.6cd81787581612159') }[status] || status;
|
|
322
323
|
}
|
|
323
324
|
|
|
324
325
|
const TABLE_ROWS_PREVIEW_VISUAL_KINDS = new Set([
|
|
@@ -774,7 +775,7 @@ export function createNativeBindings(context: NativeBindingsContext) {
|
|
|
774
775
|
* @returns Stable business-input hint without claiming successful data binding.
|
|
775
776
|
*/
|
|
776
777
|
function imageComposeEmptyRankingDetail(block: WorkbenchBlock): string {
|
|
777
|
-
return dataBindingNeedsHumanIntervention()(block) ? '
|
|
778
|
+
return dataBindingNeedsHumanIntervention()(block) ? getLocaleText('FWC.27ab1787579719378') : getLocaleText('FWC.dc671787580569519');
|
|
778
779
|
}
|
|
779
780
|
|
|
780
781
|
/**
|
|
@@ -877,10 +878,10 @@ export function createNativeBindings(context: NativeBindingsContext) {
|
|
|
877
878
|
const overview = metaRecord(block, 'showcaseOverview');
|
|
878
879
|
const activeTab = activeTabFor(block);
|
|
879
880
|
return [
|
|
880
|
-
{ label: '
|
|
881
|
-
{ label: '
|
|
882
|
-
{ label: '
|
|
883
|
-
{ label: '
|
|
881
|
+
{ label: getLocaleText('FWC.0d2a1787581333759'), value: numberValue(overview.totalCount), icon: LayoutDashboard },
|
|
882
|
+
{ label: getLocaleText('FWC.f47d1787581333778'), value: numberValue(overview.acceptanceCount), icon: CircleCheck },
|
|
883
|
+
{ label: getLocaleText('FWC.057d1787581333797'), value: numberValue(overview.categoryCount), icon: UserRound },
|
|
884
|
+
{ label: getLocaleText('FWC.0dd01787581333816'), value: numberValue(activeTab.count), icon: Bot },
|
|
884
885
|
];
|
|
885
886
|
}
|
|
886
887
|
|