@tx5dr/contracts 1.7.3 → 1.7.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/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/__tests__/ability.test.d.ts +2 -0
- package/dist/schema/__tests__/ability.test.d.ts.map +1 -0
- package/dist/schema/__tests__/ability.test.js +32 -0
- package/dist/schema/__tests__/ability.test.js.map +1 -0
- package/dist/schema/__tests__/cw-decoder.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/cw-decoder.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/cw-decoder.schema.test.js +114 -0
- package/dist/schema/__tests__/cw-decoder.schema.test.js.map +1 -0
- package/dist/schema/__tests__/device-ui.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/device-ui.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/device-ui.schema.test.js +111 -0
- package/dist/schema/__tests__/device-ui.schema.test.js.map +1 -0
- package/dist/schema/__tests__/process-monitor.schema.test.js +96 -0
- package/dist/schema/__tests__/process-monitor.schema.test.js.map +1 -1
- package/dist/schema/__tests__/radio.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/radio.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/radio.schema.test.js +143 -0
- package/dist/schema/__tests__/radio.schema.test.js.map +1 -0
- package/dist/schema/ability.d.ts +3 -1
- package/dist/schema/ability.d.ts.map +1 -1
- package/dist/schema/ability.js +11 -0
- package/dist/schema/ability.js.map +1 -1
- package/dist/schema/api-response.schema.d.ts +168 -1
- package/dist/schema/api-response.schema.d.ts.map +1 -1
- package/dist/schema/api-response.schema.js +22 -0
- package/dist/schema/api-response.schema.js.map +1 -1
- package/dist/schema/cpu-profile.schema.d.ts +6 -6
- package/dist/schema/cw-decoder.schema.d.ts +2501 -0
- package/dist/schema/cw-decoder.schema.d.ts.map +1 -0
- package/dist/schema/cw-decoder.schema.js +196 -0
- package/dist/schema/cw-decoder.schema.js.map +1 -0
- package/dist/schema/cw-keyer.schema.d.ts +368 -0
- package/dist/schema/cw-keyer.schema.d.ts.map +1 -0
- package/dist/schema/cw-keyer.schema.js +143 -0
- package/dist/schema/cw-keyer.schema.js.map +1 -0
- package/dist/schema/desktop-https.schema.js +1 -1
- package/dist/schema/desktop-https.schema.js.map +1 -1
- package/dist/schema/device-ui.schema.d.ts +1782 -0
- package/dist/schema/device-ui.schema.d.ts.map +1 -0
- package/dist/schema/device-ui.schema.js +156 -0
- package/dist/schema/device-ui.schema.js.map +1 -0
- package/dist/schema/mode.schema.d.ts +1 -0
- package/dist/schema/mode.schema.d.ts.map +1 -1
- package/dist/schema/mode.schema.js +8 -0
- package/dist/schema/mode.schema.js.map +1 -1
- package/dist/schema/plugin.schema.d.ts +905 -60
- package/dist/schema/plugin.schema.d.ts.map +1 -1
- package/dist/schema/plugin.schema.js +62 -2
- package/dist/schema/plugin.schema.js.map +1 -1
- package/dist/schema/process-monitor.schema.d.ts +1948 -261
- package/dist/schema/process-monitor.schema.d.ts.map +1 -1
- package/dist/schema/process-monitor.schema.js +11 -0
- package/dist/schema/process-monitor.schema.js.map +1 -1
- package/dist/schema/radio-capability.schema.d.ts +1 -1
- package/dist/schema/radio-capability.schema.d.ts.map +1 -1
- package/dist/schema/radio-capability.schema.js +41 -0
- package/dist/schema/radio-capability.schema.js.map +1 -1
- package/dist/schema/radio-power.schema.d.ts +6 -0
- package/dist/schema/radio-power.schema.d.ts.map +1 -1
- package/dist/schema/radio-profile.schema.d.ts +86 -0
- package/dist/schema/radio-profile.schema.d.ts.map +1 -1
- package/dist/schema/radio.schema.d.ts +160 -3
- package/dist/schema/radio.schema.d.ts.map +1 -1
- package/dist/schema/radio.schema.js +82 -0
- package/dist/schema/radio.schema.js.map +1 -1
- package/dist/schema/realtime.schema.d.ts +6 -6
- package/dist/schema/voice.schema.d.ts +1 -1
- package/dist/schema/voice.schema.d.ts.map +1 -1
- package/dist/schema/voice.schema.js +1 -1
- package/dist/schema/voice.schema.js.map +1 -1
- package/dist/schema/websocket.schema.d.ts +6071 -574
- package/dist/schema/websocket.schema.d.ts.map +1 -1
- package/dist/schema/websocket.schema.js +102 -2
- package/dist/schema/websocket.schema.js.map +1 -1
- package/dist/utils/__tests__/cwTiming.test.d.ts +2 -0
- package/dist/utils/__tests__/cwTiming.test.d.ts.map +1 -0
- package/dist/utils/__tests__/cwTiming.test.js +74 -0
- package/dist/utils/__tests__/cwTiming.test.js.map +1 -0
- package/dist/utils/cwTiming.d.ts +36 -0
- package/dist/utils/cwTiming.d.ts.map +1 -0
- package/dist/utils/cwTiming.js +155 -0
- package/dist/utils/cwTiming.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +8 -0
- package/src/schema/__tests__/ability.test.ts +40 -0
- package/src/schema/__tests__/cw-decoder.schema.test.ts +127 -0
- package/src/schema/__tests__/device-ui.schema.test.ts +122 -0
- package/src/schema/__tests__/process-monitor.schema.test.ts +99 -0
- package/src/schema/__tests__/radio.schema.test.ts +160 -0
- package/src/schema/ability.ts +13 -0
- package/src/schema/api-response.schema.ts +22 -0
- package/src/schema/cw-decoder.schema.ts +234 -0
- package/src/schema/cw-keyer.schema.ts +177 -0
- package/src/schema/desktop-https.schema.ts +1 -1
- package/src/schema/device-ui.schema.ts +182 -0
- package/src/schema/mode.schema.ts +8 -0
- package/src/schema/plugin.schema.ts +80 -2
- package/src/schema/process-monitor.schema.ts +18 -0
- package/src/schema/radio-capability.schema.ts +41 -0
- package/src/schema/radio.schema.ts +97 -0
- package/src/schema/voice.schema.ts +1 -1
- package/src/schema/websocket.schema.ts +131 -2
- package/src/utils/__tests__/cwTiming.test.ts +91 -0
- package/src/utils/cwTiming.ts +203 -0
- package/test/plugin-slot-schema.test.ts +52 -0
|
@@ -48,7 +48,7 @@ export type PluginPanelComponent = z.infer<typeof PluginPanelComponentSchema>;
|
|
|
48
48
|
* These values control both validation expectations and default frontend
|
|
49
49
|
* rendering in plugin settings UIs.
|
|
50
50
|
*/
|
|
51
|
-
export declare const PluginSettingTypeSchema: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
|
|
51
|
+
export declare const PluginSettingTypeSchema: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
|
|
52
52
|
/**
|
|
53
53
|
* Supported generated-form field types for plugin settings.
|
|
54
54
|
*/
|
|
@@ -93,6 +93,65 @@ export declare const PluginObjectArrayFieldSchema: z.ZodObject<{
|
|
|
93
93
|
required?: boolean | undefined;
|
|
94
94
|
}>;
|
|
95
95
|
export type PluginObjectArrayField = z.infer<typeof PluginObjectArrayFieldSchema>;
|
|
96
|
+
export declare const PluginKeyedStringArrayKeySchema: z.ZodObject<{
|
|
97
|
+
key: z.ZodString;
|
|
98
|
+
label: z.ZodString;
|
|
99
|
+
description: z.ZodOptional<z.ZodString>;
|
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
|
101
|
+
label: string;
|
|
102
|
+
key: string;
|
|
103
|
+
description?: string | undefined;
|
|
104
|
+
}, {
|
|
105
|
+
label: string;
|
|
106
|
+
key: string;
|
|
107
|
+
description?: string | undefined;
|
|
108
|
+
}>;
|
|
109
|
+
export type PluginKeyedStringArrayKey = z.infer<typeof PluginKeyedStringArrayKeySchema>;
|
|
110
|
+
export declare const PluginSettingConditionSchema: z.ZodObject<{
|
|
111
|
+
setting: z.ZodString;
|
|
112
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
113
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
114
|
+
}, "strip", z.ZodTypeAny, {
|
|
115
|
+
setting: string;
|
|
116
|
+
equals?: unknown;
|
|
117
|
+
notEquals?: unknown;
|
|
118
|
+
}, {
|
|
119
|
+
setting: string;
|
|
120
|
+
equals?: unknown;
|
|
121
|
+
notEquals?: unknown;
|
|
122
|
+
}>;
|
|
123
|
+
export type PluginSettingCondition = z.infer<typeof PluginSettingConditionSchema>;
|
|
124
|
+
export declare const PluginSettingConditionalDescriptionSchema: z.ZodObject<{
|
|
125
|
+
when: z.ZodObject<{
|
|
126
|
+
setting: z.ZodString;
|
|
127
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
128
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
129
|
+
}, "strip", z.ZodTypeAny, {
|
|
130
|
+
setting: string;
|
|
131
|
+
equals?: unknown;
|
|
132
|
+
notEquals?: unknown;
|
|
133
|
+
}, {
|
|
134
|
+
setting: string;
|
|
135
|
+
equals?: unknown;
|
|
136
|
+
notEquals?: unknown;
|
|
137
|
+
}>;
|
|
138
|
+
description: z.ZodString;
|
|
139
|
+
}, "strip", z.ZodTypeAny, {
|
|
140
|
+
description: string;
|
|
141
|
+
when: {
|
|
142
|
+
setting: string;
|
|
143
|
+
equals?: unknown;
|
|
144
|
+
notEquals?: unknown;
|
|
145
|
+
};
|
|
146
|
+
}, {
|
|
147
|
+
description: string;
|
|
148
|
+
when: {
|
|
149
|
+
setting: string;
|
|
150
|
+
equals?: unknown;
|
|
151
|
+
notEquals?: unknown;
|
|
152
|
+
};
|
|
153
|
+
}>;
|
|
154
|
+
export type PluginSettingConditionalDescription = z.infer<typeof PluginSettingConditionalDescriptionSchema>;
|
|
96
155
|
/**
|
|
97
156
|
* Persistence and UI scope for a plugin setting.
|
|
98
157
|
*
|
|
@@ -113,7 +172,7 @@ export type PluginSettingScope = z.infer<typeof PluginSettingScopeSchema>;
|
|
|
113
172
|
* and resolve default values before injecting them into `ctx.config`.
|
|
114
173
|
*/
|
|
115
174
|
export declare const PluginSettingDescriptorSchema: z.ZodObject<{
|
|
116
|
-
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
|
|
175
|
+
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
|
|
117
176
|
default: z.ZodUnknown;
|
|
118
177
|
label: z.ZodString;
|
|
119
178
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -152,14 +211,78 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
|
|
|
152
211
|
placeholder?: string | undefined;
|
|
153
212
|
required?: boolean | undefined;
|
|
154
213
|
}>, "many">>;
|
|
214
|
+
/** Fixed key list used by generated editors for `keyedStringArrays` settings. */
|
|
215
|
+
keys: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
216
|
+
key: z.ZodString;
|
|
217
|
+
label: z.ZodString;
|
|
218
|
+
description: z.ZodOptional<z.ZodString>;
|
|
219
|
+
}, "strip", z.ZodTypeAny, {
|
|
220
|
+
label: string;
|
|
221
|
+
key: string;
|
|
222
|
+
description?: string | undefined;
|
|
223
|
+
}, {
|
|
224
|
+
label: string;
|
|
225
|
+
key: string;
|
|
226
|
+
description?: string | undefined;
|
|
227
|
+
}>, "many">>;
|
|
228
|
+
/** Conditionally show the field based on another setting in the same form. */
|
|
229
|
+
visibleWhen: z.ZodOptional<z.ZodObject<{
|
|
230
|
+
setting: z.ZodString;
|
|
231
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
232
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
233
|
+
}, "strip", z.ZodTypeAny, {
|
|
234
|
+
setting: string;
|
|
235
|
+
equals?: unknown;
|
|
236
|
+
notEquals?: unknown;
|
|
237
|
+
}, {
|
|
238
|
+
setting: string;
|
|
239
|
+
equals?: unknown;
|
|
240
|
+
notEquals?: unknown;
|
|
241
|
+
}>>;
|
|
242
|
+
/** Conditionally override the field description based on another setting. */
|
|
243
|
+
descriptionWhen: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
244
|
+
when: z.ZodObject<{
|
|
245
|
+
setting: z.ZodString;
|
|
246
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
247
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
248
|
+
}, "strip", z.ZodTypeAny, {
|
|
249
|
+
setting: string;
|
|
250
|
+
equals?: unknown;
|
|
251
|
+
notEquals?: unknown;
|
|
252
|
+
}, {
|
|
253
|
+
setting: string;
|
|
254
|
+
equals?: unknown;
|
|
255
|
+
notEquals?: unknown;
|
|
256
|
+
}>;
|
|
257
|
+
description: z.ZodString;
|
|
258
|
+
}, "strip", z.ZodTypeAny, {
|
|
259
|
+
description: string;
|
|
260
|
+
when: {
|
|
261
|
+
setting: string;
|
|
262
|
+
equals?: unknown;
|
|
263
|
+
notEquals?: unknown;
|
|
264
|
+
};
|
|
265
|
+
}, {
|
|
266
|
+
description: string;
|
|
267
|
+
when: {
|
|
268
|
+
setting: string;
|
|
269
|
+
equals?: unknown;
|
|
270
|
+
notEquals?: unknown;
|
|
271
|
+
};
|
|
272
|
+
}>, "many">>;
|
|
155
273
|
/** Internal settings are persisted/injected but hidden from generated UIs. */
|
|
156
274
|
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
157
275
|
/** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
|
|
158
276
|
scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
|
|
159
277
|
}, "strip", z.ZodTypeAny, {
|
|
160
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
278
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
161
279
|
label: string;
|
|
162
280
|
scope: "operator" | "global";
|
|
281
|
+
keys?: {
|
|
282
|
+
label: string;
|
|
283
|
+
key: string;
|
|
284
|
+
description?: string | undefined;
|
|
285
|
+
}[] | undefined;
|
|
163
286
|
options?: {
|
|
164
287
|
value: string;
|
|
165
288
|
label: string;
|
|
@@ -176,10 +299,28 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
|
|
|
176
299
|
placeholder?: string | undefined;
|
|
177
300
|
required?: boolean | undefined;
|
|
178
301
|
}[] | undefined;
|
|
302
|
+
visibleWhen?: {
|
|
303
|
+
setting: string;
|
|
304
|
+
equals?: unknown;
|
|
305
|
+
notEquals?: unknown;
|
|
306
|
+
} | undefined;
|
|
307
|
+
descriptionWhen?: {
|
|
308
|
+
description: string;
|
|
309
|
+
when: {
|
|
310
|
+
setting: string;
|
|
311
|
+
equals?: unknown;
|
|
312
|
+
notEquals?: unknown;
|
|
313
|
+
};
|
|
314
|
+
}[] | undefined;
|
|
179
315
|
hidden?: boolean | undefined;
|
|
180
316
|
}, {
|
|
181
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
317
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
182
318
|
label: string;
|
|
319
|
+
keys?: {
|
|
320
|
+
label: string;
|
|
321
|
+
key: string;
|
|
322
|
+
description?: string | undefined;
|
|
323
|
+
}[] | undefined;
|
|
183
324
|
options?: {
|
|
184
325
|
value: string;
|
|
185
326
|
label: string;
|
|
@@ -196,6 +337,19 @@ export declare const PluginSettingDescriptorSchema: z.ZodObject<{
|
|
|
196
337
|
placeholder?: string | undefined;
|
|
197
338
|
required?: boolean | undefined;
|
|
198
339
|
}[] | undefined;
|
|
340
|
+
visibleWhen?: {
|
|
341
|
+
setting: string;
|
|
342
|
+
equals?: unknown;
|
|
343
|
+
notEquals?: unknown;
|
|
344
|
+
} | undefined;
|
|
345
|
+
descriptionWhen?: {
|
|
346
|
+
description: string;
|
|
347
|
+
when: {
|
|
348
|
+
setting: string;
|
|
349
|
+
equals?: unknown;
|
|
350
|
+
notEquals?: unknown;
|
|
351
|
+
};
|
|
352
|
+
}[] | undefined;
|
|
199
353
|
hidden?: boolean | undefined;
|
|
200
354
|
scope?: "operator" | "global" | undefined;
|
|
201
355
|
}>;
|
|
@@ -267,7 +421,7 @@ export type PluginCapability = z.infer<typeof PluginCapabilitySchema>;
|
|
|
267
421
|
* - `voice-left-top`: shown above the voice frequency control card.
|
|
268
422
|
* - `voice-right-top`: shown in the tabbed top area of the voice right panel.
|
|
269
423
|
*/
|
|
270
|
-
export declare const PluginPanelSlotSchema: z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>;
|
|
424
|
+
export declare const PluginPanelSlotSchema: z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>;
|
|
271
425
|
/**
|
|
272
426
|
* Rendering slot that determines where a panel appears in the UI.
|
|
273
427
|
*/
|
|
@@ -284,6 +438,22 @@ export declare const PluginPanelWidthSchema: z.ZodEnum<["half", "full"]>;
|
|
|
284
438
|
* Preferred width hint for plugin-owned panels.
|
|
285
439
|
*/
|
|
286
440
|
export type PluginPanelWidth = z.infer<typeof PluginPanelWidthSchema>;
|
|
441
|
+
/**
|
|
442
|
+
* How an iframe panel is opened when rendered as a toolbar entry.
|
|
443
|
+
*/
|
|
444
|
+
export declare const PluginPanelOpenModeSchema: z.ZodEnum<["popover", "modal"]>;
|
|
445
|
+
/**
|
|
446
|
+
* How an iframe panel is opened when rendered as a toolbar entry.
|
|
447
|
+
*/
|
|
448
|
+
export type PluginPanelOpenMode = z.infer<typeof PluginPanelOpenModeSchema>;
|
|
449
|
+
/**
|
|
450
|
+
* Controlled size hint for iframe panels rendered as popovers or modals.
|
|
451
|
+
*/
|
|
452
|
+
export declare const PluginPanelUISizeSchema: z.ZodEnum<["sm", "md", "lg"]>;
|
|
453
|
+
/**
|
|
454
|
+
* Controlled size hint for iframe panels rendered as popovers or modals.
|
|
455
|
+
*/
|
|
456
|
+
export type PluginPanelUISize = z.infer<typeof PluginPanelUISizeSchema>;
|
|
287
457
|
/**
|
|
288
458
|
* Declarative definition of a plugin-owned panel in the frontend.
|
|
289
459
|
*
|
|
@@ -292,7 +462,7 @@ export type PluginPanelWidth = z.infer<typeof PluginPanelWidthSchema>;
|
|
|
292
462
|
* the panel renders a custom UI page inside a sandboxed iframe instead. Static
|
|
293
463
|
* manifest panels and runtime UI contributions use this same descriptor.
|
|
294
464
|
*/
|
|
295
|
-
export declare const PluginPanelDescriptorSchema: z.ZodObject<{
|
|
465
|
+
export declare const PluginPanelDescriptorSchema: z.ZodEffects<z.ZodObject<{
|
|
296
466
|
id: z.ZodString;
|
|
297
467
|
title: z.ZodString;
|
|
298
468
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -301,25 +471,59 @@ export declare const PluginPanelDescriptorSchema: z.ZodObject<{
|
|
|
301
471
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
302
472
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
303
473
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
304
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
474
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
305
475
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
306
476
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
477
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
478
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
479
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
480
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
481
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
482
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
307
483
|
}, "strip", z.ZodTypeAny, {
|
|
308
484
|
id: string;
|
|
309
485
|
title: string;
|
|
310
486
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
311
487
|
params?: Record<string, string> | undefined;
|
|
488
|
+
icon?: string | undefined;
|
|
489
|
+
pageId?: string | undefined;
|
|
490
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
491
|
+
width?: "full" | "half" | undefined;
|
|
492
|
+
openMode?: "popover" | "modal" | undefined;
|
|
493
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
494
|
+
}, {
|
|
495
|
+
id: string;
|
|
496
|
+
title: string;
|
|
497
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
498
|
+
params?: Record<string, string> | undefined;
|
|
499
|
+
icon?: string | undefined;
|
|
500
|
+
pageId?: string | undefined;
|
|
501
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
502
|
+
width?: "full" | "half" | undefined;
|
|
503
|
+
openMode?: "popover" | "modal" | undefined;
|
|
504
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
505
|
+
}>, {
|
|
506
|
+
id: string;
|
|
507
|
+
title: string;
|
|
508
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
509
|
+
params?: Record<string, string> | undefined;
|
|
510
|
+
icon?: string | undefined;
|
|
312
511
|
pageId?: string | undefined;
|
|
313
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
512
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
314
513
|
width?: "full" | "half" | undefined;
|
|
514
|
+
openMode?: "popover" | "modal" | undefined;
|
|
515
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
315
516
|
}, {
|
|
316
517
|
id: string;
|
|
317
518
|
title: string;
|
|
318
519
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
319
520
|
params?: Record<string, string> | undefined;
|
|
521
|
+
icon?: string | undefined;
|
|
320
522
|
pageId?: string | undefined;
|
|
321
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
523
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
322
524
|
width?: "full" | "half" | undefined;
|
|
525
|
+
openMode?: "popover" | "modal" | undefined;
|
|
526
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
323
527
|
}>;
|
|
324
528
|
/**
|
|
325
529
|
* Declarative definition of a plugin-owned panel in the frontend.
|
|
@@ -370,7 +574,7 @@ export declare const PluginUIPanelContributionGroupSchema: z.ZodObject<{
|
|
|
370
574
|
operatorId: string;
|
|
371
575
|
kind: "operator";
|
|
372
576
|
}>]>>;
|
|
373
|
-
panels: z.ZodArray<z.ZodObject<{
|
|
577
|
+
panels: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
374
578
|
id: z.ZodString;
|
|
375
579
|
title: z.ZodString;
|
|
376
580
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -379,25 +583,59 @@ export declare const PluginUIPanelContributionGroupSchema: z.ZodObject<{
|
|
|
379
583
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
380
584
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
381
585
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
382
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
586
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
383
587
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
384
588
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
589
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
590
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
591
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
592
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
593
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
594
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
385
595
|
}, "strip", z.ZodTypeAny, {
|
|
386
596
|
id: string;
|
|
387
597
|
title: string;
|
|
388
598
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
389
599
|
params?: Record<string, string> | undefined;
|
|
600
|
+
icon?: string | undefined;
|
|
601
|
+
pageId?: string | undefined;
|
|
602
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
603
|
+
width?: "full" | "half" | undefined;
|
|
604
|
+
openMode?: "popover" | "modal" | undefined;
|
|
605
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
606
|
+
}, {
|
|
607
|
+
id: string;
|
|
608
|
+
title: string;
|
|
609
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
610
|
+
params?: Record<string, string> | undefined;
|
|
611
|
+
icon?: string | undefined;
|
|
612
|
+
pageId?: string | undefined;
|
|
613
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
614
|
+
width?: "full" | "half" | undefined;
|
|
615
|
+
openMode?: "popover" | "modal" | undefined;
|
|
616
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
617
|
+
}>, {
|
|
618
|
+
id: string;
|
|
619
|
+
title: string;
|
|
620
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
621
|
+
params?: Record<string, string> | undefined;
|
|
622
|
+
icon?: string | undefined;
|
|
390
623
|
pageId?: string | undefined;
|
|
391
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
624
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
392
625
|
width?: "full" | "half" | undefined;
|
|
626
|
+
openMode?: "popover" | "modal" | undefined;
|
|
627
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
393
628
|
}, {
|
|
394
629
|
id: string;
|
|
395
630
|
title: string;
|
|
396
631
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
397
632
|
params?: Record<string, string> | undefined;
|
|
633
|
+
icon?: string | undefined;
|
|
398
634
|
pageId?: string | undefined;
|
|
399
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
635
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
400
636
|
width?: "full" | "half" | undefined;
|
|
637
|
+
openMode?: "popover" | "modal" | undefined;
|
|
638
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
401
639
|
}>, "many">;
|
|
402
640
|
}, "strip", z.ZodTypeAny, {
|
|
403
641
|
pluginName: string;
|
|
@@ -408,9 +646,12 @@ export declare const PluginUIPanelContributionGroupSchema: z.ZodObject<{
|
|
|
408
646
|
title: string;
|
|
409
647
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
410
648
|
params?: Record<string, string> | undefined;
|
|
649
|
+
icon?: string | undefined;
|
|
411
650
|
pageId?: string | undefined;
|
|
412
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
651
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
413
652
|
width?: "full" | "half" | undefined;
|
|
653
|
+
openMode?: "popover" | "modal" | undefined;
|
|
654
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
414
655
|
}[];
|
|
415
656
|
instanceTarget?: {
|
|
416
657
|
kind: "global";
|
|
@@ -427,9 +668,12 @@ export declare const PluginUIPanelContributionGroupSchema: z.ZodObject<{
|
|
|
427
668
|
title: string;
|
|
428
669
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
429
670
|
params?: Record<string, string> | undefined;
|
|
671
|
+
icon?: string | undefined;
|
|
430
672
|
pageId?: string | undefined;
|
|
431
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
673
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
432
674
|
width?: "full" | "half" | undefined;
|
|
675
|
+
openMode?: "popover" | "modal" | undefined;
|
|
676
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
433
677
|
}[];
|
|
434
678
|
instanceTarget?: {
|
|
435
679
|
kind: "global";
|
|
@@ -575,7 +819,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
575
819
|
description: z.ZodOptional<z.ZodString>;
|
|
576
820
|
permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
|
|
577
821
|
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
578
|
-
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
|
|
822
|
+
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
|
|
579
823
|
default: z.ZodUnknown;
|
|
580
824
|
label: z.ZodString;
|
|
581
825
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -614,14 +858,78 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
614
858
|
placeholder?: string | undefined;
|
|
615
859
|
required?: boolean | undefined;
|
|
616
860
|
}>, "many">>;
|
|
861
|
+
/** Fixed key list used by generated editors for `keyedStringArrays` settings. */
|
|
862
|
+
keys: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
863
|
+
key: z.ZodString;
|
|
864
|
+
label: z.ZodString;
|
|
865
|
+
description: z.ZodOptional<z.ZodString>;
|
|
866
|
+
}, "strip", z.ZodTypeAny, {
|
|
867
|
+
label: string;
|
|
868
|
+
key: string;
|
|
869
|
+
description?: string | undefined;
|
|
870
|
+
}, {
|
|
871
|
+
label: string;
|
|
872
|
+
key: string;
|
|
873
|
+
description?: string | undefined;
|
|
874
|
+
}>, "many">>;
|
|
875
|
+
/** Conditionally show the field based on another setting in the same form. */
|
|
876
|
+
visibleWhen: z.ZodOptional<z.ZodObject<{
|
|
877
|
+
setting: z.ZodString;
|
|
878
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
879
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
880
|
+
}, "strip", z.ZodTypeAny, {
|
|
881
|
+
setting: string;
|
|
882
|
+
equals?: unknown;
|
|
883
|
+
notEquals?: unknown;
|
|
884
|
+
}, {
|
|
885
|
+
setting: string;
|
|
886
|
+
equals?: unknown;
|
|
887
|
+
notEquals?: unknown;
|
|
888
|
+
}>>;
|
|
889
|
+
/** Conditionally override the field description based on another setting. */
|
|
890
|
+
descriptionWhen: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
891
|
+
when: z.ZodObject<{
|
|
892
|
+
setting: z.ZodString;
|
|
893
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
894
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
895
|
+
}, "strip", z.ZodTypeAny, {
|
|
896
|
+
setting: string;
|
|
897
|
+
equals?: unknown;
|
|
898
|
+
notEquals?: unknown;
|
|
899
|
+
}, {
|
|
900
|
+
setting: string;
|
|
901
|
+
equals?: unknown;
|
|
902
|
+
notEquals?: unknown;
|
|
903
|
+
}>;
|
|
904
|
+
description: z.ZodString;
|
|
905
|
+
}, "strip", z.ZodTypeAny, {
|
|
906
|
+
description: string;
|
|
907
|
+
when: {
|
|
908
|
+
setting: string;
|
|
909
|
+
equals?: unknown;
|
|
910
|
+
notEquals?: unknown;
|
|
911
|
+
};
|
|
912
|
+
}, {
|
|
913
|
+
description: string;
|
|
914
|
+
when: {
|
|
915
|
+
setting: string;
|
|
916
|
+
equals?: unknown;
|
|
917
|
+
notEquals?: unknown;
|
|
918
|
+
};
|
|
919
|
+
}>, "many">>;
|
|
617
920
|
/** Internal settings are persisted/injected but hidden from generated UIs. */
|
|
618
921
|
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
619
922
|
/** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
|
|
620
923
|
scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
|
|
621
924
|
}, "strip", z.ZodTypeAny, {
|
|
622
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
925
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
623
926
|
label: string;
|
|
624
927
|
scope: "operator" | "global";
|
|
928
|
+
keys?: {
|
|
929
|
+
label: string;
|
|
930
|
+
key: string;
|
|
931
|
+
description?: string | undefined;
|
|
932
|
+
}[] | undefined;
|
|
625
933
|
options?: {
|
|
626
934
|
value: string;
|
|
627
935
|
label: string;
|
|
@@ -638,10 +946,28 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
638
946
|
placeholder?: string | undefined;
|
|
639
947
|
required?: boolean | undefined;
|
|
640
948
|
}[] | undefined;
|
|
949
|
+
visibleWhen?: {
|
|
950
|
+
setting: string;
|
|
951
|
+
equals?: unknown;
|
|
952
|
+
notEquals?: unknown;
|
|
953
|
+
} | undefined;
|
|
954
|
+
descriptionWhen?: {
|
|
955
|
+
description: string;
|
|
956
|
+
when: {
|
|
957
|
+
setting: string;
|
|
958
|
+
equals?: unknown;
|
|
959
|
+
notEquals?: unknown;
|
|
960
|
+
};
|
|
961
|
+
}[] | undefined;
|
|
641
962
|
hidden?: boolean | undefined;
|
|
642
963
|
}, {
|
|
643
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
964
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
644
965
|
label: string;
|
|
966
|
+
keys?: {
|
|
967
|
+
label: string;
|
|
968
|
+
key: string;
|
|
969
|
+
description?: string | undefined;
|
|
970
|
+
}[] | undefined;
|
|
645
971
|
options?: {
|
|
646
972
|
value: string;
|
|
647
973
|
label: string;
|
|
@@ -658,6 +984,19 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
658
984
|
placeholder?: string | undefined;
|
|
659
985
|
required?: boolean | undefined;
|
|
660
986
|
}[] | undefined;
|
|
987
|
+
visibleWhen?: {
|
|
988
|
+
setting: string;
|
|
989
|
+
equals?: unknown;
|
|
990
|
+
notEquals?: unknown;
|
|
991
|
+
} | undefined;
|
|
992
|
+
descriptionWhen?: {
|
|
993
|
+
description: string;
|
|
994
|
+
when: {
|
|
995
|
+
setting: string;
|
|
996
|
+
equals?: unknown;
|
|
997
|
+
notEquals?: unknown;
|
|
998
|
+
};
|
|
999
|
+
}[] | undefined;
|
|
661
1000
|
hidden?: boolean | undefined;
|
|
662
1001
|
scope?: "operator" | "global" | undefined;
|
|
663
1002
|
}>>>;
|
|
@@ -681,7 +1020,7 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
681
1020
|
}, {
|
|
682
1021
|
settingKey: string;
|
|
683
1022
|
}>, "many">>;
|
|
684
|
-
panels: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1023
|
+
panels: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
685
1024
|
id: z.ZodString;
|
|
686
1025
|
title: z.ZodString;
|
|
687
1026
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -690,25 +1029,59 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
690
1029
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
691
1030
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
692
1031
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
693
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
1032
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
694
1033
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
695
1034
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
1035
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
1036
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
1037
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
1038
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
1039
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
1040
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
696
1041
|
}, "strip", z.ZodTypeAny, {
|
|
697
1042
|
id: string;
|
|
698
1043
|
title: string;
|
|
699
1044
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
700
1045
|
params?: Record<string, string> | undefined;
|
|
1046
|
+
icon?: string | undefined;
|
|
701
1047
|
pageId?: string | undefined;
|
|
702
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1048
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
703
1049
|
width?: "full" | "half" | undefined;
|
|
1050
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1051
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
704
1052
|
}, {
|
|
705
1053
|
id: string;
|
|
706
1054
|
title: string;
|
|
707
1055
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
708
1056
|
params?: Record<string, string> | undefined;
|
|
1057
|
+
icon?: string | undefined;
|
|
709
1058
|
pageId?: string | undefined;
|
|
710
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1059
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
711
1060
|
width?: "full" | "half" | undefined;
|
|
1061
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1062
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1063
|
+
}>, {
|
|
1064
|
+
id: string;
|
|
1065
|
+
title: string;
|
|
1066
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1067
|
+
params?: Record<string, string> | undefined;
|
|
1068
|
+
icon?: string | undefined;
|
|
1069
|
+
pageId?: string | undefined;
|
|
1070
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1071
|
+
width?: "full" | "half" | undefined;
|
|
1072
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1073
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1074
|
+
}, {
|
|
1075
|
+
id: string;
|
|
1076
|
+
title: string;
|
|
1077
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1078
|
+
params?: Record<string, string> | undefined;
|
|
1079
|
+
icon?: string | undefined;
|
|
1080
|
+
pageId?: string | undefined;
|
|
1081
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1082
|
+
width?: "full" | "half" | undefined;
|
|
1083
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1084
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
712
1085
|
}>, "many">>;
|
|
713
1086
|
storage: z.ZodOptional<z.ZodObject<{
|
|
714
1087
|
scopes: z.ZodArray<z.ZodEnum<["global", "operator"]>, "many">;
|
|
@@ -781,9 +1154,12 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
781
1154
|
title: string;
|
|
782
1155
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
783
1156
|
params?: Record<string, string> | undefined;
|
|
1157
|
+
icon?: string | undefined;
|
|
784
1158
|
pageId?: string | undefined;
|
|
785
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1159
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
786
1160
|
width?: "full" | "half" | undefined;
|
|
1161
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1162
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
787
1163
|
}[] | undefined;
|
|
788
1164
|
ui?: {
|
|
789
1165
|
dir: string;
|
|
@@ -798,9 +1174,14 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
798
1174
|
} | undefined;
|
|
799
1175
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
800
1176
|
settings?: Record<string, {
|
|
801
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1177
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
802
1178
|
label: string;
|
|
803
1179
|
scope: "operator" | "global";
|
|
1180
|
+
keys?: {
|
|
1181
|
+
label: string;
|
|
1182
|
+
key: string;
|
|
1183
|
+
description?: string | undefined;
|
|
1184
|
+
}[] | undefined;
|
|
804
1185
|
options?: {
|
|
805
1186
|
value: string;
|
|
806
1187
|
label: string;
|
|
@@ -817,6 +1198,19 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
817
1198
|
placeholder?: string | undefined;
|
|
818
1199
|
required?: boolean | undefined;
|
|
819
1200
|
}[] | undefined;
|
|
1201
|
+
visibleWhen?: {
|
|
1202
|
+
setting: string;
|
|
1203
|
+
equals?: unknown;
|
|
1204
|
+
notEquals?: unknown;
|
|
1205
|
+
} | undefined;
|
|
1206
|
+
descriptionWhen?: {
|
|
1207
|
+
description: string;
|
|
1208
|
+
when: {
|
|
1209
|
+
setting: string;
|
|
1210
|
+
equals?: unknown;
|
|
1211
|
+
notEquals?: unknown;
|
|
1212
|
+
};
|
|
1213
|
+
}[] | undefined;
|
|
820
1214
|
hidden?: boolean | undefined;
|
|
821
1215
|
}> | undefined;
|
|
822
1216
|
quickActions?: {
|
|
@@ -840,9 +1234,12 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
840
1234
|
title: string;
|
|
841
1235
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
842
1236
|
params?: Record<string, string> | undefined;
|
|
1237
|
+
icon?: string | undefined;
|
|
843
1238
|
pageId?: string | undefined;
|
|
844
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1239
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
845
1240
|
width?: "full" | "half" | undefined;
|
|
1241
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1242
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
846
1243
|
}[] | undefined;
|
|
847
1244
|
ui?: {
|
|
848
1245
|
dir?: string | undefined;
|
|
@@ -858,8 +1255,13 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
858
1255
|
instanceScope?: "operator" | "global" | undefined;
|
|
859
1256
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
860
1257
|
settings?: Record<string, {
|
|
861
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1258
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
862
1259
|
label: string;
|
|
1260
|
+
keys?: {
|
|
1261
|
+
label: string;
|
|
1262
|
+
key: string;
|
|
1263
|
+
description?: string | undefined;
|
|
1264
|
+
}[] | undefined;
|
|
863
1265
|
options?: {
|
|
864
1266
|
value: string;
|
|
865
1267
|
label: string;
|
|
@@ -876,6 +1278,19 @@ export declare const PluginManifestSchema: z.ZodObject<{
|
|
|
876
1278
|
placeholder?: string | undefined;
|
|
877
1279
|
required?: boolean | undefined;
|
|
878
1280
|
}[] | undefined;
|
|
1281
|
+
visibleWhen?: {
|
|
1282
|
+
setting: string;
|
|
1283
|
+
equals?: unknown;
|
|
1284
|
+
notEquals?: unknown;
|
|
1285
|
+
} | undefined;
|
|
1286
|
+
descriptionWhen?: {
|
|
1287
|
+
description: string;
|
|
1288
|
+
when: {
|
|
1289
|
+
setting: string;
|
|
1290
|
+
equals?: unknown;
|
|
1291
|
+
notEquals?: unknown;
|
|
1292
|
+
};
|
|
1293
|
+
}[] | undefined;
|
|
879
1294
|
hidden?: boolean | undefined;
|
|
880
1295
|
scope?: "operator" | "global" | undefined;
|
|
881
1296
|
}> | undefined;
|
|
@@ -944,7 +1359,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
944
1359
|
/** 仅对 strategy 插件有意义:当前被哪些 operator 选中 */
|
|
945
1360
|
assignedOperatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
946
1361
|
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
947
|
-
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
|
|
1362
|
+
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
|
|
948
1363
|
default: z.ZodUnknown;
|
|
949
1364
|
label: z.ZodString;
|
|
950
1365
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -983,14 +1398,78 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
983
1398
|
placeholder?: string | undefined;
|
|
984
1399
|
required?: boolean | undefined;
|
|
985
1400
|
}>, "many">>;
|
|
1401
|
+
/** Fixed key list used by generated editors for `keyedStringArrays` settings. */
|
|
1402
|
+
keys: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1403
|
+
key: z.ZodString;
|
|
1404
|
+
label: z.ZodString;
|
|
1405
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1406
|
+
}, "strip", z.ZodTypeAny, {
|
|
1407
|
+
label: string;
|
|
1408
|
+
key: string;
|
|
1409
|
+
description?: string | undefined;
|
|
1410
|
+
}, {
|
|
1411
|
+
label: string;
|
|
1412
|
+
key: string;
|
|
1413
|
+
description?: string | undefined;
|
|
1414
|
+
}>, "many">>;
|
|
1415
|
+
/** Conditionally show the field based on another setting in the same form. */
|
|
1416
|
+
visibleWhen: z.ZodOptional<z.ZodObject<{
|
|
1417
|
+
setting: z.ZodString;
|
|
1418
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
1419
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
1420
|
+
}, "strip", z.ZodTypeAny, {
|
|
1421
|
+
setting: string;
|
|
1422
|
+
equals?: unknown;
|
|
1423
|
+
notEquals?: unknown;
|
|
1424
|
+
}, {
|
|
1425
|
+
setting: string;
|
|
1426
|
+
equals?: unknown;
|
|
1427
|
+
notEquals?: unknown;
|
|
1428
|
+
}>>;
|
|
1429
|
+
/** Conditionally override the field description based on another setting. */
|
|
1430
|
+
descriptionWhen: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1431
|
+
when: z.ZodObject<{
|
|
1432
|
+
setting: z.ZodString;
|
|
1433
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
1434
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
1435
|
+
}, "strip", z.ZodTypeAny, {
|
|
1436
|
+
setting: string;
|
|
1437
|
+
equals?: unknown;
|
|
1438
|
+
notEquals?: unknown;
|
|
1439
|
+
}, {
|
|
1440
|
+
setting: string;
|
|
1441
|
+
equals?: unknown;
|
|
1442
|
+
notEquals?: unknown;
|
|
1443
|
+
}>;
|
|
1444
|
+
description: z.ZodString;
|
|
1445
|
+
}, "strip", z.ZodTypeAny, {
|
|
1446
|
+
description: string;
|
|
1447
|
+
when: {
|
|
1448
|
+
setting: string;
|
|
1449
|
+
equals?: unknown;
|
|
1450
|
+
notEquals?: unknown;
|
|
1451
|
+
};
|
|
1452
|
+
}, {
|
|
1453
|
+
description: string;
|
|
1454
|
+
when: {
|
|
1455
|
+
setting: string;
|
|
1456
|
+
equals?: unknown;
|
|
1457
|
+
notEquals?: unknown;
|
|
1458
|
+
};
|
|
1459
|
+
}>, "many">>;
|
|
986
1460
|
/** Internal settings are persisted/injected but hidden from generated UIs. */
|
|
987
1461
|
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
988
1462
|
/** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
|
|
989
1463
|
scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
|
|
990
1464
|
}, "strip", z.ZodTypeAny, {
|
|
991
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1465
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
992
1466
|
label: string;
|
|
993
1467
|
scope: "operator" | "global";
|
|
1468
|
+
keys?: {
|
|
1469
|
+
label: string;
|
|
1470
|
+
key: string;
|
|
1471
|
+
description?: string | undefined;
|
|
1472
|
+
}[] | undefined;
|
|
994
1473
|
options?: {
|
|
995
1474
|
value: string;
|
|
996
1475
|
label: string;
|
|
@@ -1007,10 +1486,28 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1007
1486
|
placeholder?: string | undefined;
|
|
1008
1487
|
required?: boolean | undefined;
|
|
1009
1488
|
}[] | undefined;
|
|
1489
|
+
visibleWhen?: {
|
|
1490
|
+
setting: string;
|
|
1491
|
+
equals?: unknown;
|
|
1492
|
+
notEquals?: unknown;
|
|
1493
|
+
} | undefined;
|
|
1494
|
+
descriptionWhen?: {
|
|
1495
|
+
description: string;
|
|
1496
|
+
when: {
|
|
1497
|
+
setting: string;
|
|
1498
|
+
equals?: unknown;
|
|
1499
|
+
notEquals?: unknown;
|
|
1500
|
+
};
|
|
1501
|
+
}[] | undefined;
|
|
1010
1502
|
hidden?: boolean | undefined;
|
|
1011
1503
|
}, {
|
|
1012
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1504
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1013
1505
|
label: string;
|
|
1506
|
+
keys?: {
|
|
1507
|
+
label: string;
|
|
1508
|
+
key: string;
|
|
1509
|
+
description?: string | undefined;
|
|
1510
|
+
}[] | undefined;
|
|
1014
1511
|
options?: {
|
|
1015
1512
|
value: string;
|
|
1016
1513
|
label: string;
|
|
@@ -1027,6 +1524,19 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1027
1524
|
placeholder?: string | undefined;
|
|
1028
1525
|
required?: boolean | undefined;
|
|
1029
1526
|
}[] | undefined;
|
|
1527
|
+
visibleWhen?: {
|
|
1528
|
+
setting: string;
|
|
1529
|
+
equals?: unknown;
|
|
1530
|
+
notEquals?: unknown;
|
|
1531
|
+
} | undefined;
|
|
1532
|
+
descriptionWhen?: {
|
|
1533
|
+
description: string;
|
|
1534
|
+
when: {
|
|
1535
|
+
setting: string;
|
|
1536
|
+
equals?: unknown;
|
|
1537
|
+
notEquals?: unknown;
|
|
1538
|
+
};
|
|
1539
|
+
}[] | undefined;
|
|
1030
1540
|
hidden?: boolean | undefined;
|
|
1031
1541
|
scope?: "operator" | "global" | undefined;
|
|
1032
1542
|
}>>>;
|
|
@@ -1050,7 +1560,7 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1050
1560
|
}, {
|
|
1051
1561
|
settingKey: string;
|
|
1052
1562
|
}>, "many">>;
|
|
1053
|
-
panels: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1563
|
+
panels: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
1054
1564
|
id: z.ZodString;
|
|
1055
1565
|
title: z.ZodString;
|
|
1056
1566
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -1059,25 +1569,59 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1059
1569
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
1060
1570
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1061
1571
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
1062
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
1572
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
1063
1573
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
1064
1574
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
1575
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
1576
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
1577
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
1578
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
1579
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
1580
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
1065
1581
|
}, "strip", z.ZodTypeAny, {
|
|
1066
1582
|
id: string;
|
|
1067
1583
|
title: string;
|
|
1068
1584
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1069
1585
|
params?: Record<string, string> | undefined;
|
|
1586
|
+
icon?: string | undefined;
|
|
1587
|
+
pageId?: string | undefined;
|
|
1588
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1589
|
+
width?: "full" | "half" | undefined;
|
|
1590
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1591
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1592
|
+
}, {
|
|
1593
|
+
id: string;
|
|
1594
|
+
title: string;
|
|
1595
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1596
|
+
params?: Record<string, string> | undefined;
|
|
1597
|
+
icon?: string | undefined;
|
|
1070
1598
|
pageId?: string | undefined;
|
|
1071
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1599
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1072
1600
|
width?: "full" | "half" | undefined;
|
|
1601
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1602
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1603
|
+
}>, {
|
|
1604
|
+
id: string;
|
|
1605
|
+
title: string;
|
|
1606
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1607
|
+
params?: Record<string, string> | undefined;
|
|
1608
|
+
icon?: string | undefined;
|
|
1609
|
+
pageId?: string | undefined;
|
|
1610
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1611
|
+
width?: "full" | "half" | undefined;
|
|
1612
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1613
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1073
1614
|
}, {
|
|
1074
1615
|
id: string;
|
|
1075
1616
|
title: string;
|
|
1076
1617
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1077
1618
|
params?: Record<string, string> | undefined;
|
|
1619
|
+
icon?: string | undefined;
|
|
1078
1620
|
pageId?: string | undefined;
|
|
1079
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1621
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1080
1622
|
width?: "full" | "half" | undefined;
|
|
1623
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1624
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1081
1625
|
}>, "many">>;
|
|
1082
1626
|
permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
|
|
1083
1627
|
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
|
|
@@ -1181,9 +1725,12 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1181
1725
|
title: string;
|
|
1182
1726
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1183
1727
|
params?: Record<string, string> | undefined;
|
|
1728
|
+
icon?: string | undefined;
|
|
1184
1729
|
pageId?: string | undefined;
|
|
1185
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1730
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1186
1731
|
width?: "full" | "half" | undefined;
|
|
1732
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1733
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1187
1734
|
}[] | undefined;
|
|
1188
1735
|
ui?: {
|
|
1189
1736
|
dir: string;
|
|
@@ -1198,9 +1745,14 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1198
1745
|
} | undefined;
|
|
1199
1746
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
1200
1747
|
settings?: Record<string, {
|
|
1201
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1748
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1202
1749
|
label: string;
|
|
1203
1750
|
scope: "operator" | "global";
|
|
1751
|
+
keys?: {
|
|
1752
|
+
label: string;
|
|
1753
|
+
key: string;
|
|
1754
|
+
description?: string | undefined;
|
|
1755
|
+
}[] | undefined;
|
|
1204
1756
|
options?: {
|
|
1205
1757
|
value: string;
|
|
1206
1758
|
label: string;
|
|
@@ -1217,6 +1769,19 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1217
1769
|
placeholder?: string | undefined;
|
|
1218
1770
|
required?: boolean | undefined;
|
|
1219
1771
|
}[] | undefined;
|
|
1772
|
+
visibleWhen?: {
|
|
1773
|
+
setting: string;
|
|
1774
|
+
equals?: unknown;
|
|
1775
|
+
notEquals?: unknown;
|
|
1776
|
+
} | undefined;
|
|
1777
|
+
descriptionWhen?: {
|
|
1778
|
+
description: string;
|
|
1779
|
+
when: {
|
|
1780
|
+
setting: string;
|
|
1781
|
+
equals?: unknown;
|
|
1782
|
+
notEquals?: unknown;
|
|
1783
|
+
};
|
|
1784
|
+
}[] | undefined;
|
|
1220
1785
|
hidden?: boolean | undefined;
|
|
1221
1786
|
}> | undefined;
|
|
1222
1787
|
quickActions?: {
|
|
@@ -1252,9 +1817,12 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1252
1817
|
title: string;
|
|
1253
1818
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1254
1819
|
params?: Record<string, string> | undefined;
|
|
1820
|
+
icon?: string | undefined;
|
|
1255
1821
|
pageId?: string | undefined;
|
|
1256
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
1822
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1257
1823
|
width?: "full" | "half" | undefined;
|
|
1824
|
+
openMode?: "popover" | "modal" | undefined;
|
|
1825
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1258
1826
|
}[] | undefined;
|
|
1259
1827
|
ui?: {
|
|
1260
1828
|
dir?: string | undefined;
|
|
@@ -1270,8 +1838,13 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1270
1838
|
instanceScope?: "operator" | "global" | undefined;
|
|
1271
1839
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
1272
1840
|
settings?: Record<string, {
|
|
1273
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
1841
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1274
1842
|
label: string;
|
|
1843
|
+
keys?: {
|
|
1844
|
+
label: string;
|
|
1845
|
+
key: string;
|
|
1846
|
+
description?: string | undefined;
|
|
1847
|
+
}[] | undefined;
|
|
1275
1848
|
options?: {
|
|
1276
1849
|
value: string;
|
|
1277
1850
|
label: string;
|
|
@@ -1288,6 +1861,19 @@ export declare const PluginStatusSchema: z.ZodObject<{
|
|
|
1288
1861
|
placeholder?: string | undefined;
|
|
1289
1862
|
required?: boolean | undefined;
|
|
1290
1863
|
}[] | undefined;
|
|
1864
|
+
visibleWhen?: {
|
|
1865
|
+
setting: string;
|
|
1866
|
+
equals?: unknown;
|
|
1867
|
+
notEquals?: unknown;
|
|
1868
|
+
} | undefined;
|
|
1869
|
+
descriptionWhen?: {
|
|
1870
|
+
description: string;
|
|
1871
|
+
when: {
|
|
1872
|
+
setting: string;
|
|
1873
|
+
equals?: unknown;
|
|
1874
|
+
notEquals?: unknown;
|
|
1875
|
+
};
|
|
1876
|
+
}[] | undefined;
|
|
1291
1877
|
hidden?: boolean | undefined;
|
|
1292
1878
|
scope?: "operator" | "global" | undefined;
|
|
1293
1879
|
}> | undefined;
|
|
@@ -1388,7 +1974,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1388
1974
|
/** 仅对 strategy 插件有意义:当前被哪些 operator 选中 */
|
|
1389
1975
|
assignedOperatorIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1390
1976
|
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1391
|
-
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "info"]>;
|
|
1977
|
+
type: z.ZodEnum<["boolean", "number", "string", "string[]", "object[]", "keyedStringArrays", "info"]>;
|
|
1392
1978
|
default: z.ZodUnknown;
|
|
1393
1979
|
label: z.ZodString;
|
|
1394
1980
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -1427,14 +2013,78 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1427
2013
|
placeholder?: string | undefined;
|
|
1428
2014
|
required?: boolean | undefined;
|
|
1429
2015
|
}>, "many">>;
|
|
2016
|
+
/** Fixed key list used by generated editors for `keyedStringArrays` settings. */
|
|
2017
|
+
keys: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2018
|
+
key: z.ZodString;
|
|
2019
|
+
label: z.ZodString;
|
|
2020
|
+
description: z.ZodOptional<z.ZodString>;
|
|
2021
|
+
}, "strip", z.ZodTypeAny, {
|
|
2022
|
+
label: string;
|
|
2023
|
+
key: string;
|
|
2024
|
+
description?: string | undefined;
|
|
2025
|
+
}, {
|
|
2026
|
+
label: string;
|
|
2027
|
+
key: string;
|
|
2028
|
+
description?: string | undefined;
|
|
2029
|
+
}>, "many">>;
|
|
2030
|
+
/** Conditionally show the field based on another setting in the same form. */
|
|
2031
|
+
visibleWhen: z.ZodOptional<z.ZodObject<{
|
|
2032
|
+
setting: z.ZodString;
|
|
2033
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
2034
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
2035
|
+
}, "strip", z.ZodTypeAny, {
|
|
2036
|
+
setting: string;
|
|
2037
|
+
equals?: unknown;
|
|
2038
|
+
notEquals?: unknown;
|
|
2039
|
+
}, {
|
|
2040
|
+
setting: string;
|
|
2041
|
+
equals?: unknown;
|
|
2042
|
+
notEquals?: unknown;
|
|
2043
|
+
}>>;
|
|
2044
|
+
/** Conditionally override the field description based on another setting. */
|
|
2045
|
+
descriptionWhen: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2046
|
+
when: z.ZodObject<{
|
|
2047
|
+
setting: z.ZodString;
|
|
2048
|
+
equals: z.ZodOptional<z.ZodUnknown>;
|
|
2049
|
+
notEquals: z.ZodOptional<z.ZodUnknown>;
|
|
2050
|
+
}, "strip", z.ZodTypeAny, {
|
|
2051
|
+
setting: string;
|
|
2052
|
+
equals?: unknown;
|
|
2053
|
+
notEquals?: unknown;
|
|
2054
|
+
}, {
|
|
2055
|
+
setting: string;
|
|
2056
|
+
equals?: unknown;
|
|
2057
|
+
notEquals?: unknown;
|
|
2058
|
+
}>;
|
|
2059
|
+
description: z.ZodString;
|
|
2060
|
+
}, "strip", z.ZodTypeAny, {
|
|
2061
|
+
description: string;
|
|
2062
|
+
when: {
|
|
2063
|
+
setting: string;
|
|
2064
|
+
equals?: unknown;
|
|
2065
|
+
notEquals?: unknown;
|
|
2066
|
+
};
|
|
2067
|
+
}, {
|
|
2068
|
+
description: string;
|
|
2069
|
+
when: {
|
|
2070
|
+
setting: string;
|
|
2071
|
+
equals?: unknown;
|
|
2072
|
+
notEquals?: unknown;
|
|
2073
|
+
};
|
|
2074
|
+
}>, "many">>;
|
|
1430
2075
|
/** Internal settings are persisted/injected but hidden from generated UIs. */
|
|
1431
2076
|
hidden: z.ZodOptional<z.ZodBoolean>;
|
|
1432
2077
|
/** 设置作用域:global(所有操作员共享)或 operator(每操作员独立),默认 global */
|
|
1433
2078
|
scope: z.ZodDefault<z.ZodOptional<z.ZodEnum<["global", "operator"]>>>;
|
|
1434
2079
|
}, "strip", z.ZodTypeAny, {
|
|
1435
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2080
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1436
2081
|
label: string;
|
|
1437
2082
|
scope: "operator" | "global";
|
|
2083
|
+
keys?: {
|
|
2084
|
+
label: string;
|
|
2085
|
+
key: string;
|
|
2086
|
+
description?: string | undefined;
|
|
2087
|
+
}[] | undefined;
|
|
1438
2088
|
options?: {
|
|
1439
2089
|
value: string;
|
|
1440
2090
|
label: string;
|
|
@@ -1451,10 +2101,28 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1451
2101
|
placeholder?: string | undefined;
|
|
1452
2102
|
required?: boolean | undefined;
|
|
1453
2103
|
}[] | undefined;
|
|
2104
|
+
visibleWhen?: {
|
|
2105
|
+
setting: string;
|
|
2106
|
+
equals?: unknown;
|
|
2107
|
+
notEquals?: unknown;
|
|
2108
|
+
} | undefined;
|
|
2109
|
+
descriptionWhen?: {
|
|
2110
|
+
description: string;
|
|
2111
|
+
when: {
|
|
2112
|
+
setting: string;
|
|
2113
|
+
equals?: unknown;
|
|
2114
|
+
notEquals?: unknown;
|
|
2115
|
+
};
|
|
2116
|
+
}[] | undefined;
|
|
1454
2117
|
hidden?: boolean | undefined;
|
|
1455
2118
|
}, {
|
|
1456
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2119
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1457
2120
|
label: string;
|
|
2121
|
+
keys?: {
|
|
2122
|
+
label: string;
|
|
2123
|
+
key: string;
|
|
2124
|
+
description?: string | undefined;
|
|
2125
|
+
}[] | undefined;
|
|
1458
2126
|
options?: {
|
|
1459
2127
|
value: string;
|
|
1460
2128
|
label: string;
|
|
@@ -1471,6 +2139,19 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1471
2139
|
placeholder?: string | undefined;
|
|
1472
2140
|
required?: boolean | undefined;
|
|
1473
2141
|
}[] | undefined;
|
|
2142
|
+
visibleWhen?: {
|
|
2143
|
+
setting: string;
|
|
2144
|
+
equals?: unknown;
|
|
2145
|
+
notEquals?: unknown;
|
|
2146
|
+
} | undefined;
|
|
2147
|
+
descriptionWhen?: {
|
|
2148
|
+
description: string;
|
|
2149
|
+
when: {
|
|
2150
|
+
setting: string;
|
|
2151
|
+
equals?: unknown;
|
|
2152
|
+
notEquals?: unknown;
|
|
2153
|
+
};
|
|
2154
|
+
}[] | undefined;
|
|
1474
2155
|
hidden?: boolean | undefined;
|
|
1475
2156
|
scope?: "operator" | "global" | undefined;
|
|
1476
2157
|
}>>>;
|
|
@@ -1494,7 +2175,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1494
2175
|
}, {
|
|
1495
2176
|
settingKey: string;
|
|
1496
2177
|
}>, "many">>;
|
|
1497
|
-
panels: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2178
|
+
panels: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
1498
2179
|
id: z.ZodString;
|
|
1499
2180
|
title: z.ZodString;
|
|
1500
2181
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -1503,25 +2184,59 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1503
2184
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
1504
2185
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1505
2186
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
1506
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
2187
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
1507
2188
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
1508
2189
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
2190
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
2191
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
2192
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
2193
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
2194
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
2195
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
1509
2196
|
}, "strip", z.ZodTypeAny, {
|
|
1510
2197
|
id: string;
|
|
1511
2198
|
title: string;
|
|
1512
2199
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1513
2200
|
params?: Record<string, string> | undefined;
|
|
2201
|
+
icon?: string | undefined;
|
|
1514
2202
|
pageId?: string | undefined;
|
|
1515
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2203
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1516
2204
|
width?: "full" | "half" | undefined;
|
|
2205
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2206
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1517
2207
|
}, {
|
|
1518
2208
|
id: string;
|
|
1519
2209
|
title: string;
|
|
1520
2210
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1521
2211
|
params?: Record<string, string> | undefined;
|
|
2212
|
+
icon?: string | undefined;
|
|
1522
2213
|
pageId?: string | undefined;
|
|
1523
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2214
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1524
2215
|
width?: "full" | "half" | undefined;
|
|
2216
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2217
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2218
|
+
}>, {
|
|
2219
|
+
id: string;
|
|
2220
|
+
title: string;
|
|
2221
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2222
|
+
params?: Record<string, string> | undefined;
|
|
2223
|
+
icon?: string | undefined;
|
|
2224
|
+
pageId?: string | undefined;
|
|
2225
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2226
|
+
width?: "full" | "half" | undefined;
|
|
2227
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2228
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2229
|
+
}, {
|
|
2230
|
+
id: string;
|
|
2231
|
+
title: string;
|
|
2232
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2233
|
+
params?: Record<string, string> | undefined;
|
|
2234
|
+
icon?: string | undefined;
|
|
2235
|
+
pageId?: string | undefined;
|
|
2236
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2237
|
+
width?: "full" | "half" | undefined;
|
|
2238
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2239
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1525
2240
|
}>, "many">>;
|
|
1526
2241
|
permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "radio:read", "radio:control", "radio:power", "settings:ft8", "settings:decode-windows", "settings:realtime", "settings:frequency-presets", "settings:station", "settings:psk-reporter", "settings:ntp"]>, "many">>;
|
|
1527
2242
|
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<["auto_call_candidate", "auto_call_execution"]>, "many">>;
|
|
@@ -1625,9 +2340,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1625
2340
|
title: string;
|
|
1626
2341
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1627
2342
|
params?: Record<string, string> | undefined;
|
|
2343
|
+
icon?: string | undefined;
|
|
1628
2344
|
pageId?: string | undefined;
|
|
1629
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2345
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1630
2346
|
width?: "full" | "half" | undefined;
|
|
2347
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2348
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1631
2349
|
}[] | undefined;
|
|
1632
2350
|
ui?: {
|
|
1633
2351
|
dir: string;
|
|
@@ -1642,9 +2360,14 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1642
2360
|
} | undefined;
|
|
1643
2361
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
1644
2362
|
settings?: Record<string, {
|
|
1645
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2363
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1646
2364
|
label: string;
|
|
1647
2365
|
scope: "operator" | "global";
|
|
2366
|
+
keys?: {
|
|
2367
|
+
label: string;
|
|
2368
|
+
key: string;
|
|
2369
|
+
description?: string | undefined;
|
|
2370
|
+
}[] | undefined;
|
|
1648
2371
|
options?: {
|
|
1649
2372
|
value: string;
|
|
1650
2373
|
label: string;
|
|
@@ -1661,6 +2384,19 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1661
2384
|
placeholder?: string | undefined;
|
|
1662
2385
|
required?: boolean | undefined;
|
|
1663
2386
|
}[] | undefined;
|
|
2387
|
+
visibleWhen?: {
|
|
2388
|
+
setting: string;
|
|
2389
|
+
equals?: unknown;
|
|
2390
|
+
notEquals?: unknown;
|
|
2391
|
+
} | undefined;
|
|
2392
|
+
descriptionWhen?: {
|
|
2393
|
+
description: string;
|
|
2394
|
+
when: {
|
|
2395
|
+
setting: string;
|
|
2396
|
+
equals?: unknown;
|
|
2397
|
+
notEquals?: unknown;
|
|
2398
|
+
};
|
|
2399
|
+
}[] | undefined;
|
|
1664
2400
|
hidden?: boolean | undefined;
|
|
1665
2401
|
}> | undefined;
|
|
1666
2402
|
quickActions?: {
|
|
@@ -1696,9 +2432,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1696
2432
|
title: string;
|
|
1697
2433
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1698
2434
|
params?: Record<string, string> | undefined;
|
|
2435
|
+
icon?: string | undefined;
|
|
1699
2436
|
pageId?: string | undefined;
|
|
1700
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2437
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1701
2438
|
width?: "full" | "half" | undefined;
|
|
2439
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2440
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1702
2441
|
}[] | undefined;
|
|
1703
2442
|
ui?: {
|
|
1704
2443
|
dir?: string | undefined;
|
|
@@ -1714,8 +2453,13 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1714
2453
|
instanceScope?: "operator" | "global" | undefined;
|
|
1715
2454
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
1716
2455
|
settings?: Record<string, {
|
|
1717
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2456
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1718
2457
|
label: string;
|
|
2458
|
+
keys?: {
|
|
2459
|
+
label: string;
|
|
2460
|
+
key: string;
|
|
2461
|
+
description?: string | undefined;
|
|
2462
|
+
}[] | undefined;
|
|
1719
2463
|
options?: {
|
|
1720
2464
|
value: string;
|
|
1721
2465
|
label: string;
|
|
@@ -1732,6 +2476,19 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1732
2476
|
placeholder?: string | undefined;
|
|
1733
2477
|
required?: boolean | undefined;
|
|
1734
2478
|
}[] | undefined;
|
|
2479
|
+
visibleWhen?: {
|
|
2480
|
+
setting: string;
|
|
2481
|
+
equals?: unknown;
|
|
2482
|
+
notEquals?: unknown;
|
|
2483
|
+
} | undefined;
|
|
2484
|
+
descriptionWhen?: {
|
|
2485
|
+
description: string;
|
|
2486
|
+
when: {
|
|
2487
|
+
setting: string;
|
|
2488
|
+
equals?: unknown;
|
|
2489
|
+
notEquals?: unknown;
|
|
2490
|
+
};
|
|
2491
|
+
}[] | undefined;
|
|
1735
2492
|
hidden?: boolean | undefined;
|
|
1736
2493
|
scope?: "operator" | "global" | undefined;
|
|
1737
2494
|
}> | undefined;
|
|
@@ -1806,7 +2563,7 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1806
2563
|
operatorId: string;
|
|
1807
2564
|
kind: "operator";
|
|
1808
2565
|
}>]>>;
|
|
1809
|
-
panels: z.ZodArray<z.ZodObject<{
|
|
2566
|
+
panels: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
1810
2567
|
id: z.ZodString;
|
|
1811
2568
|
title: z.ZodString;
|
|
1812
2569
|
component: z.ZodEnum<["table", "key-value", "chart", "log", "iframe"]>;
|
|
@@ -1815,25 +2572,59 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1815
2572
|
/** Optional string params forwarded to iframe panels as URL/init params. */
|
|
1816
2573
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1817
2574
|
/** Where the panel renders. Defaults to `'operator'` (operator card live-panel area). */
|
|
1818
|
-
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top"]>>;
|
|
2575
|
+
slot: z.ZodOptional<z.ZodEnum<["operator", "automation", "main-right", "voice-left-top", "voice-right-top", "cw-right-top", "radio-control-toolbar"]>>;
|
|
1819
2576
|
/** Preferred width hint. Defaults to `'half'`. */
|
|
1820
2577
|
width: z.ZodOptional<z.ZodEnum<["half", "full"]>>;
|
|
2578
|
+
/** Optional FontAwesome Free icon name used by toolbar-style hosts. */
|
|
2579
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
2580
|
+
/** Optional toolbar opening mode. Defaults to host-specific behavior, typically `'popover'`. */
|
|
2581
|
+
openMode: z.ZodOptional<z.ZodEnum<["popover", "modal"]>>;
|
|
2582
|
+
/** Optional controlled UI size hint for toolbar popovers/modals. */
|
|
2583
|
+
uiSize: z.ZodOptional<z.ZodEnum<["sm", "md", "lg"]>>;
|
|
1821
2584
|
}, "strip", z.ZodTypeAny, {
|
|
1822
2585
|
id: string;
|
|
1823
2586
|
title: string;
|
|
1824
2587
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1825
2588
|
params?: Record<string, string> | undefined;
|
|
2589
|
+
icon?: string | undefined;
|
|
1826
2590
|
pageId?: string | undefined;
|
|
1827
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2591
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1828
2592
|
width?: "full" | "half" | undefined;
|
|
2593
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2594
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1829
2595
|
}, {
|
|
1830
2596
|
id: string;
|
|
1831
2597
|
title: string;
|
|
1832
2598
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1833
2599
|
params?: Record<string, string> | undefined;
|
|
2600
|
+
icon?: string | undefined;
|
|
1834
2601
|
pageId?: string | undefined;
|
|
1835
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2602
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1836
2603
|
width?: "full" | "half" | undefined;
|
|
2604
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2605
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2606
|
+
}>, {
|
|
2607
|
+
id: string;
|
|
2608
|
+
title: string;
|
|
2609
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2610
|
+
params?: Record<string, string> | undefined;
|
|
2611
|
+
icon?: string | undefined;
|
|
2612
|
+
pageId?: string | undefined;
|
|
2613
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2614
|
+
width?: "full" | "half" | undefined;
|
|
2615
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2616
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2617
|
+
}, {
|
|
2618
|
+
id: string;
|
|
2619
|
+
title: string;
|
|
2620
|
+
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2621
|
+
params?: Record<string, string> | undefined;
|
|
2622
|
+
icon?: string | undefined;
|
|
2623
|
+
pageId?: string | undefined;
|
|
2624
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2625
|
+
width?: "full" | "half" | undefined;
|
|
2626
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2627
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1837
2628
|
}>, "many">;
|
|
1838
2629
|
}, "strip", z.ZodTypeAny, {
|
|
1839
2630
|
pluginName: string;
|
|
@@ -1844,9 +2635,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1844
2635
|
title: string;
|
|
1845
2636
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1846
2637
|
params?: Record<string, string> | undefined;
|
|
2638
|
+
icon?: string | undefined;
|
|
1847
2639
|
pageId?: string | undefined;
|
|
1848
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2640
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1849
2641
|
width?: "full" | "half" | undefined;
|
|
2642
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2643
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1850
2644
|
}[];
|
|
1851
2645
|
instanceTarget?: {
|
|
1852
2646
|
kind: "global";
|
|
@@ -1863,9 +2657,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1863
2657
|
title: string;
|
|
1864
2658
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1865
2659
|
params?: Record<string, string> | undefined;
|
|
2660
|
+
icon?: string | undefined;
|
|
1866
2661
|
pageId?: string | undefined;
|
|
1867
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2662
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1868
2663
|
width?: "full" | "half" | undefined;
|
|
2664
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2665
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1869
2666
|
}[];
|
|
1870
2667
|
instanceTarget?: {
|
|
1871
2668
|
kind: "global";
|
|
@@ -1902,9 +2699,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1902
2699
|
title: string;
|
|
1903
2700
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1904
2701
|
params?: Record<string, string> | undefined;
|
|
2702
|
+
icon?: string | undefined;
|
|
1905
2703
|
pageId?: string | undefined;
|
|
1906
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2704
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1907
2705
|
width?: "full" | "half" | undefined;
|
|
2706
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2707
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1908
2708
|
}[] | undefined;
|
|
1909
2709
|
ui?: {
|
|
1910
2710
|
dir: string;
|
|
@@ -1919,9 +2719,14 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1919
2719
|
} | undefined;
|
|
1920
2720
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
1921
2721
|
settings?: Record<string, {
|
|
1922
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2722
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
1923
2723
|
label: string;
|
|
1924
2724
|
scope: "operator" | "global";
|
|
2725
|
+
keys?: {
|
|
2726
|
+
label: string;
|
|
2727
|
+
key: string;
|
|
2728
|
+
description?: string | undefined;
|
|
2729
|
+
}[] | undefined;
|
|
1925
2730
|
options?: {
|
|
1926
2731
|
value: string;
|
|
1927
2732
|
label: string;
|
|
@@ -1938,6 +2743,19 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1938
2743
|
placeholder?: string | undefined;
|
|
1939
2744
|
required?: boolean | undefined;
|
|
1940
2745
|
}[] | undefined;
|
|
2746
|
+
visibleWhen?: {
|
|
2747
|
+
setting: string;
|
|
2748
|
+
equals?: unknown;
|
|
2749
|
+
notEquals?: unknown;
|
|
2750
|
+
} | undefined;
|
|
2751
|
+
descriptionWhen?: {
|
|
2752
|
+
description: string;
|
|
2753
|
+
when: {
|
|
2754
|
+
setting: string;
|
|
2755
|
+
equals?: unknown;
|
|
2756
|
+
notEquals?: unknown;
|
|
2757
|
+
};
|
|
2758
|
+
}[] | undefined;
|
|
1941
2759
|
hidden?: boolean | undefined;
|
|
1942
2760
|
}> | undefined;
|
|
1943
2761
|
quickActions?: {
|
|
@@ -1972,9 +2790,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
1972
2790
|
title: string;
|
|
1973
2791
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
1974
2792
|
params?: Record<string, string> | undefined;
|
|
2793
|
+
icon?: string | undefined;
|
|
1975
2794
|
pageId?: string | undefined;
|
|
1976
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2795
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
1977
2796
|
width?: "full" | "half" | undefined;
|
|
2797
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2798
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
1978
2799
|
}[];
|
|
1979
2800
|
instanceTarget?: {
|
|
1980
2801
|
kind: "global";
|
|
@@ -2008,9 +2829,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
2008
2829
|
title: string;
|
|
2009
2830
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2010
2831
|
params?: Record<string, string> | undefined;
|
|
2832
|
+
icon?: string | undefined;
|
|
2011
2833
|
pageId?: string | undefined;
|
|
2012
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2834
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2013
2835
|
width?: "full" | "half" | undefined;
|
|
2836
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2837
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2014
2838
|
}[] | undefined;
|
|
2015
2839
|
ui?: {
|
|
2016
2840
|
dir?: string | undefined;
|
|
@@ -2026,8 +2850,13 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
2026
2850
|
instanceScope?: "operator" | "global" | undefined;
|
|
2027
2851
|
permissions?: ("network" | "radio:read" | "radio:control" | "radio:power" | "settings:ft8" | "settings:decode-windows" | "settings:realtime" | "settings:frequency-presets" | "settings:station" | "settings:psk-reporter" | "settings:ntp")[] | undefined;
|
|
2028
2852
|
settings?: Record<string, {
|
|
2029
|
-
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "info";
|
|
2853
|
+
type: "string" | "number" | "boolean" | "string[]" | "object[]" | "keyedStringArrays" | "info";
|
|
2030
2854
|
label: string;
|
|
2855
|
+
keys?: {
|
|
2856
|
+
label: string;
|
|
2857
|
+
key: string;
|
|
2858
|
+
description?: string | undefined;
|
|
2859
|
+
}[] | undefined;
|
|
2031
2860
|
options?: {
|
|
2032
2861
|
value: string;
|
|
2033
2862
|
label: string;
|
|
@@ -2044,6 +2873,19 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
2044
2873
|
placeholder?: string | undefined;
|
|
2045
2874
|
required?: boolean | undefined;
|
|
2046
2875
|
}[] | undefined;
|
|
2876
|
+
visibleWhen?: {
|
|
2877
|
+
setting: string;
|
|
2878
|
+
equals?: unknown;
|
|
2879
|
+
notEquals?: unknown;
|
|
2880
|
+
} | undefined;
|
|
2881
|
+
descriptionWhen?: {
|
|
2882
|
+
description: string;
|
|
2883
|
+
when: {
|
|
2884
|
+
setting: string;
|
|
2885
|
+
equals?: unknown;
|
|
2886
|
+
notEquals?: unknown;
|
|
2887
|
+
};
|
|
2888
|
+
}[] | undefined;
|
|
2047
2889
|
hidden?: boolean | undefined;
|
|
2048
2890
|
scope?: "operator" | "global" | undefined;
|
|
2049
2891
|
}> | undefined;
|
|
@@ -2082,9 +2924,12 @@ export declare const PluginSystemSnapshotSchema: z.ZodObject<{
|
|
|
2082
2924
|
title: string;
|
|
2083
2925
|
component: "table" | "key-value" | "chart" | "log" | "iframe";
|
|
2084
2926
|
params?: Record<string, string> | undefined;
|
|
2927
|
+
icon?: string | undefined;
|
|
2085
2928
|
pageId?: string | undefined;
|
|
2086
|
-
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | undefined;
|
|
2929
|
+
slot?: "operator" | "automation" | "main-right" | "voice-left-top" | "voice-right-top" | "cw-right-top" | "radio-control-toolbar" | undefined;
|
|
2087
2930
|
width?: "full" | "half" | undefined;
|
|
2931
|
+
openMode?: "popover" | "modal" | undefined;
|
|
2932
|
+
uiSize?: "sm" | "md" | "lg" | undefined;
|
|
2088
2933
|
}[];
|
|
2089
2934
|
instanceTarget?: {
|
|
2090
2935
|
kind: "global";
|