@fugood/bricks-ctor 2.24.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/compile/action-name-map.ts +988 -0
  2. package/compile/index.ts +1245 -0
  3. package/compile/util.ts +358 -0
  4. package/index.ts +6 -0
  5. package/package.json +28 -0
  6. package/skills/bricks-design/LICENSE.txt +180 -0
  7. package/skills/bricks-design/SKILL.md +66 -0
  8. package/skills/bricks-project/SKILL.md +32 -0
  9. package/skills/bricks-project/rules/animation.md +159 -0
  10. package/skills/bricks-project/rules/architecture-patterns.md +69 -0
  11. package/skills/bricks-project/rules/automations.md +221 -0
  12. package/skills/bricks-project/rules/buttress.md +156 -0
  13. package/skills/bricks-project/rules/data-calculation.md +208 -0
  14. package/skills/bricks-project/rules/local-sync.md +129 -0
  15. package/skills/bricks-project/rules/media-flow.md +158 -0
  16. package/skills/bricks-project/rules/remote-data-bank.md +196 -0
  17. package/skills/bricks-project/rules/standby-transition.md +124 -0
  18. package/skills/rive-marketplace/SKILL.md +99 -0
  19. package/tools/deploy.ts +151 -0
  20. package/tools/icons/.gitattributes +1 -0
  21. package/tools/icons/fa6pro-glyphmap.json +4686 -0
  22. package/tools/icons/fa6pro-meta.json +3671 -0
  23. package/tools/mcp-server.ts +28 -0
  24. package/tools/mcp-tools/compile.ts +91 -0
  25. package/tools/mcp-tools/huggingface.ts +762 -0
  26. package/tools/mcp-tools/icons.ts +70 -0
  27. package/tools/mcp-tools/lottie.ts +102 -0
  28. package/tools/mcp-tools/media.ts +110 -0
  29. package/tools/postinstall.ts +229 -0
  30. package/tools/preview-main.mjs +293 -0
  31. package/tools/preview.ts +143 -0
  32. package/tools/pull.ts +116 -0
  33. package/tsconfig.json +16 -0
  34. package/types/animation.ts +100 -0
  35. package/types/automation.ts +235 -0
  36. package/types/brick-base.ts +80 -0
  37. package/types/bricks/Camera.ts +246 -0
  38. package/types/bricks/Chart.ts +372 -0
  39. package/types/bricks/GenerativeMedia.ts +276 -0
  40. package/types/bricks/Icon.ts +98 -0
  41. package/types/bricks/Image.ts +114 -0
  42. package/types/bricks/Items.ts +476 -0
  43. package/types/bricks/Lottie.ts +168 -0
  44. package/types/bricks/Maps.ts +262 -0
  45. package/types/bricks/QrCode.ts +117 -0
  46. package/types/bricks/Rect.ts +150 -0
  47. package/types/bricks/RichText.ts +128 -0
  48. package/types/bricks/Rive.ts +220 -0
  49. package/types/bricks/Slideshow.ts +201 -0
  50. package/types/bricks/Svg.ts +99 -0
  51. package/types/bricks/Text.ts +148 -0
  52. package/types/bricks/TextInput.ts +242 -0
  53. package/types/bricks/Video.ts +175 -0
  54. package/types/bricks/VideoStreaming.ts +112 -0
  55. package/types/bricks/WebRtcStream.ts +65 -0
  56. package/types/bricks/WebView.ts +168 -0
  57. package/types/bricks/index.ts +21 -0
  58. package/types/canvas.ts +82 -0
  59. package/types/common.ts +144 -0
  60. package/types/data-calc-command.ts +7005 -0
  61. package/types/data-calc-script.ts +21 -0
  62. package/types/data-calc.ts +11 -0
  63. package/types/data.ts +95 -0
  64. package/types/generators/AlarmClock.ts +110 -0
  65. package/types/generators/Assistant.ts +621 -0
  66. package/types/generators/BleCentral.ts +247 -0
  67. package/types/generators/BlePeripheral.ts +208 -0
  68. package/types/generators/CanvasMap.ts +74 -0
  69. package/types/generators/CastlesPay.ts +87 -0
  70. package/types/generators/DataBank.ts +160 -0
  71. package/types/generators/File.ts +432 -0
  72. package/types/generators/GraphQl.ts +132 -0
  73. package/types/generators/Http.ts +222 -0
  74. package/types/generators/HttpServer.ts +176 -0
  75. package/types/generators/Information.ts +103 -0
  76. package/types/generators/Intent.ts +168 -0
  77. package/types/generators/Iterator.ts +108 -0
  78. package/types/generators/Keyboard.ts +105 -0
  79. package/types/generators/LlmAnthropicCompat.ts +212 -0
  80. package/types/generators/LlmAppleBuiltin.ts +159 -0
  81. package/types/generators/LlmGgml.ts +861 -0
  82. package/types/generators/LlmMediaTekNeuroPilot.ts +235 -0
  83. package/types/generators/LlmMlx.ts +227 -0
  84. package/types/generators/LlmOnnx.ts +213 -0
  85. package/types/generators/LlmOpenAiCompat.ts +244 -0
  86. package/types/generators/LlmQualcommAiEngine.ts +247 -0
  87. package/types/generators/Mcp.ts +637 -0
  88. package/types/generators/McpServer.ts +289 -0
  89. package/types/generators/MediaFlow.ts +170 -0
  90. package/types/generators/MqttBroker.ts +141 -0
  91. package/types/generators/MqttClient.ts +141 -0
  92. package/types/generators/Question.ts +408 -0
  93. package/types/generators/RealtimeTranscription.ts +279 -0
  94. package/types/generators/RerankerGgml.ts +191 -0
  95. package/types/generators/SerialPort.ts +151 -0
  96. package/types/generators/SoundPlayer.ts +94 -0
  97. package/types/generators/SoundRecorder.ts +130 -0
  98. package/types/generators/SpeechToTextGgml.ts +415 -0
  99. package/types/generators/SpeechToTextOnnx.ts +236 -0
  100. package/types/generators/SpeechToTextPlatform.ts +85 -0
  101. package/types/generators/SqLite.ts +159 -0
  102. package/types/generators/Step.ts +107 -0
  103. package/types/generators/SttAppleBuiltin.ts +130 -0
  104. package/types/generators/Tcp.ts +126 -0
  105. package/types/generators/TcpServer.ts +147 -0
  106. package/types/generators/TextToSpeechAppleBuiltin.ts +127 -0
  107. package/types/generators/TextToSpeechGgml.ts +221 -0
  108. package/types/generators/TextToSpeechOnnx.ts +178 -0
  109. package/types/generators/TextToSpeechOpenAiLike.ts +121 -0
  110. package/types/generators/ThermalPrinter.ts +191 -0
  111. package/types/generators/Tick.ts +83 -0
  112. package/types/generators/Udp.ts +120 -0
  113. package/types/generators/VadGgml.ts +250 -0
  114. package/types/generators/VadOnnx.ts +231 -0
  115. package/types/generators/VadTraditional.ts +138 -0
  116. package/types/generators/VectorStore.ts +257 -0
  117. package/types/generators/Watchdog.ts +107 -0
  118. package/types/generators/WebCrawler.ts +103 -0
  119. package/types/generators/WebRtc.ts +181 -0
  120. package/types/generators/WebSocket.ts +148 -0
  121. package/types/generators/index.ts +57 -0
  122. package/types/index.ts +13 -0
  123. package/types/subspace.ts +59 -0
  124. package/types/switch.ts +51 -0
  125. package/types/system.ts +707 -0
  126. package/utils/calc.ts +126 -0
  127. package/utils/data.ts +497 -0
  128. package/utils/event-props.ts +836 -0
  129. package/utils/id.ts +80 -0
@@ -0,0 +1,141 @@
1
+ /* Auto generated by build script
2
+ *
3
+ * MQTT client with topic subscribe/publish, QoS levels (0/1/2), auto-reconnect, and auth support. Connects via mqtt:// or wss://
4
+ */
5
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
6
+ import type { Data, DataLink } from '../data'
7
+ import type {
8
+ Brick,
9
+ Generator,
10
+ EventAction,
11
+ ActionWithDataParams,
12
+ ActionWithParams,
13
+ Action,
14
+ EventProperty,
15
+ } from '../common'
16
+ import type { TemplateEventPropsMap } from '../../utils/event-props'
17
+
18
+ /* Connect to MQTT broker */
19
+ export type GeneratorMQTTActionConnect = Action & {
20
+ __actionName: 'GENERATOR_MQTT_CONNECT'
21
+ }
22
+
23
+ /* Disconnect from MQTT broker */
24
+ export type GeneratorMQTTActionDisconnect = Action & {
25
+ __actionName: 'GENERATOR_MQTT_DISCONNECT'
26
+ }
27
+
28
+ /* Send message to MQTT broker */
29
+ export type GeneratorMQTTActionPublish = ActionWithParams & {
30
+ __actionName: 'GENERATOR_MQTT_PUBLISH'
31
+ params?: Array<
32
+ | {
33
+ input: 'topic'
34
+ value?: string | DataLink | EventProperty
35
+ mapping?: string
36
+ }
37
+ | {
38
+ input: 'payload'
39
+ value?: any | EventProperty
40
+ mapping?: string
41
+ }
42
+ | {
43
+ input: 'qos'
44
+ value?: '0' | '1' | '2' | DataLink | EventProperty
45
+ mapping?: string
46
+ }
47
+ | {
48
+ input: 'retain'
49
+ value?: boolean | DataLink | EventProperty
50
+ mapping?: string
51
+ }
52
+ >
53
+ }
54
+
55
+ interface GeneratorMQTTDef {
56
+ /*
57
+ Default property:
58
+ {
59
+ "init": false,
60
+ "auth": false,
61
+ "autoReconnect": true,
62
+ "autoReconnectAttemptTime": 1000,
63
+ "qos": "0",
64
+ "messageType": "text"
65
+ }
66
+ */
67
+ property?: {
68
+ /* Auto connect when generator start */
69
+ init?: boolean | DataLink
70
+ /* Broker endpoint (mqtt://) */
71
+ uri?: string | DataLink
72
+ /* Broker need auth or not, if set false will ignore username and password setting */
73
+ auth?: boolean | DataLink
74
+ /* Username */
75
+ username?: string | DataLink
76
+ /* Password */
77
+ password?: string | DataLink
78
+ /* Client ID */
79
+ clientId?: string | DataLink
80
+ /* Second */
81
+ keepAlive?: number | DataLink
82
+ /* If true, BRICKS will auto reconnect when connection lose */
83
+ autoReconnect?: boolean | DataLink
84
+ /* How many times BRICKS will try to reconnect */
85
+ autoReconnectAttemptTime?: number | DataLink
86
+ /* Topic name to subscribe */
87
+ topic?: string | DataLink
88
+ /* Setting the mode of quality of service mode */
89
+ qos?: '0' | '1' | '2' | DataLink
90
+ /* If set to text the outlet and event property will be string, if set to json will parse to object */
91
+ messageType?: 'text' | 'json' | DataLink
92
+ }
93
+ events?: {
94
+ /* When connected to MQTT broker */
95
+ onConnected?: Array<EventAction>
96
+ /* When disconnected from MQTT broker */
97
+ onDisconnected?: Array<EventAction>
98
+ /* When error occurred */
99
+ onError?: Array<EventAction<string & keyof TemplateEventPropsMap['Mqtt']['onError']>>
100
+ /* When received message from MQTT broker within subscribe topic */
101
+ onMessage?: Array<EventAction<string & keyof TemplateEventPropsMap['Mqtt']['onMessage']>>
102
+ }
103
+ outlets?: {
104
+ /* Connected or not */
105
+ connected?: () => Data<boolean>
106
+ /* Error Message */
107
+ error?: () => Data<string>
108
+ /* The receive message */
109
+ message?: () => Data<{
110
+ topic?: string
111
+ payload?: any
112
+ qos?: number
113
+ retain?: boolean
114
+ [key: string]: any
115
+ }>
116
+ /* The receive message (payload only) */
117
+ messagePayload?: () => Data<any>
118
+ }
119
+ }
120
+
121
+ /* MQTT client with topic subscribe/publish, QoS levels (0/1/2), auto-reconnect, and auth support. Connects via mqtt:// or wss:// */
122
+ export type GeneratorMQTT = Generator &
123
+ GeneratorMQTTDef & {
124
+ templateKey: 'GENERATOR_MQTT'
125
+ switches?: Array<
126
+ SwitchDef &
127
+ GeneratorMQTTDef & {
128
+ conds?: Array<{
129
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
130
+ cond:
131
+ | SwitchCondInnerStateCurrentCanvas
132
+ | SwitchCondData
133
+ | {
134
+ __typename: 'SwitchCondInnerStateOutlet'
135
+ outlet: 'connected' | 'error' | 'message' | 'messagePayload'
136
+ value: any
137
+ }
138
+ }>
139
+ }
140
+ >
141
+ }
@@ -0,0 +1,408 @@
1
+ /* Auto generated by build script
2
+ *
3
+ * Prompt user for input via dialog and return the response
4
+ */
5
+ import type { SwitchCondInnerStateCurrentCanvas, SwitchCondData, SwitchDef } from '../switch'
6
+ import type { Data, DataLink } from '../data'
7
+ import type {
8
+ Brick,
9
+ Generator,
10
+ EventAction,
11
+ ActionWithDataParams,
12
+ ActionWithParams,
13
+ Action,
14
+ EventProperty,
15
+ } from '../common'
16
+ import type { TemplateEventPropsMap } from '../../utils/event-props'
17
+
18
+ /* Start inquire */
19
+ export type GeneratorQuestionActionStart = Action & {
20
+ __actionName: 'GENERATOR_QUESTION_START'
21
+ }
22
+
23
+ /* Stop inquire */
24
+ export type GeneratorQuestionActionStop = Action & {
25
+ __actionName: 'GENERATOR_QUESTION_STOP'
26
+ }
27
+
28
+ /* Pause inquire */
29
+ export type GeneratorQuestionActionPause = Action & {
30
+ __actionName: 'GENERATOR_QUESTION_PAUSE'
31
+ }
32
+
33
+ interface GeneratorQuestionDef {
34
+ /*
35
+ Default property:
36
+ {
37
+ "modalMode": "root",
38
+ "showClose": true,
39
+ "showBack": true,
40
+ "cameraType": "back",
41
+ "cameraPosition": "top",
42
+ "selectColumns": 3,
43
+ "selectAutoColumns": true,
44
+ "sizeFactor": 1,
45
+ "containerBackgroundColor": "#ffffff",
46
+ "titleColor": "#000000",
47
+ "descriptionColor": "#2e2e2e",
48
+ "fieldBackgroundColor": "#E2E2E2",
49
+ "fieldTextColor": "#1e1e1e",
50
+ "fieldPlaceholderColor": "#333333",
51
+ "fieldActiveBackgroundColor": "#FDCB8F",
52
+ "fieldActiveTextColor": "#7D7D7D",
53
+ "fieldControlColor": "#f08400",
54
+ "primaryControlBtnBackgroundColor": "#1e1e1e",
55
+ "primaryControlBtnTextColor": "#ffffff",
56
+ "primaryControlBtnBorderColor": "#1e1e1e",
57
+ "secondaryControlBtnBackgroundColor": "#ffffff",
58
+ "secondaryControlBtnTextColor": "#1e1e1e",
59
+ "secondaryControlBtnBorderColor": "#1e1e1e",
60
+ "warnColor": "#ff4f00",
61
+ "errorColor": "#ff0000"
62
+ }
63
+ */
64
+ property?: {
65
+ /* Modal mode */
66
+ modalMode?: 'root' | 'in-subspace' | DataLink
67
+ /* Inquirer schema
68
+ `key`: Field key (unique, required)
69
+ `kind`: Field type (required)
70
+ `title`: Field or message title
71
+ `description`: Field or message description
72
+ `required`: Whether the field is required
73
+ `defaultValue`: Default value of the field
74
+ `[kind]Options`: Field configuration
75
+ `condition`: Condition to show field */
76
+ schema?:
77
+ | Array<
78
+ | DataLink
79
+ | {
80
+ key?: string | DataLink
81
+ title?: string | DataLink
82
+ description?: string | DataLink
83
+ kind?:
84
+ | 'language'
85
+ | 'number'
86
+ | 'numeric-string'
87
+ | 'text'
88
+ | 'phone'
89
+ | 'email'
90
+ | 'color'
91
+ | 'uri'
92
+ | 'select'
93
+ | 'multi-select'
94
+ | 'yesno'
95
+ | 'qty-list'
96
+ | 'cart'
97
+ | 'preference'
98
+ | 'voice-record'
99
+ | 'video-record'
100
+ | 'code-scan'
101
+ | 'message'
102
+ | DataLink
103
+ required?: boolean | DataLink
104
+ defaultValue?:
105
+ | string
106
+ | DataLink
107
+ | number
108
+ | DataLink
109
+ | boolean
110
+ | DataLink
111
+ | Array<string | DataLink>
112
+ | DataLink
113
+ | DataLink
114
+ languageOptions?:
115
+ | DataLink
116
+ | {
117
+ availableLangs?: Array<string | DataLink> | DataLink
118
+ }
119
+ numberOptions?:
120
+ | DataLink
121
+ | {
122
+ min?: number | DataLink
123
+ max?: number | DataLink
124
+ step?: number | DataLink
125
+ }
126
+ textOptions?:
127
+ | DataLink
128
+ | {
129
+ placeholder?: string | DataLink
130
+ }
131
+ phoneOptions?:
132
+ | DataLink
133
+ | {
134
+ placeholder?: string | DataLink
135
+ usePhysicalKeyboard?: boolean | DataLink
136
+ }
137
+ emailOptions?:
138
+ | DataLink
139
+ | {
140
+ placeholder?: string | DataLink
141
+ }
142
+ uriOptions?:
143
+ | DataLink
144
+ | {
145
+ placeholder?: string | DataLink
146
+ }
147
+ selectOptions?:
148
+ | DataLink
149
+ | {
150
+ withConfirmButton?: boolean | DataLink
151
+ options?:
152
+ | Array<
153
+ | DataLink
154
+ | {
155
+ value?: string | DataLink
156
+ image_uri?: string | DataLink
157
+ label?: string | DataLink
158
+ icon?: string | DataLink
159
+ }
160
+ >
161
+ | DataLink
162
+ }
163
+ multiSelectOptions?:
164
+ | DataLink
165
+ | {
166
+ options?:
167
+ | Array<
168
+ | DataLink
169
+ | {
170
+ value?: string | DataLink
171
+ image_uri?: string | DataLink
172
+ label?: string | DataLink
173
+ icon?: string | DataLink
174
+ }
175
+ >
176
+ | DataLink
177
+ minimum?: number | DataLink
178
+ maximum?: number | DataLink
179
+ }
180
+ yesnoOptions?:
181
+ | DataLink
182
+ | {
183
+ imageUri?: string | DataLink
184
+ withConfirmButton?: boolean | DataLink
185
+ yesBtnText?: string | DataLink
186
+ noBtnText?: string | DataLink
187
+ }
188
+ qtyListOptions?:
189
+ | DataLink
190
+ | {
191
+ items?:
192
+ | Array<
193
+ | DataLink
194
+ | {
195
+ id?: string | DataLink
196
+ title?: string | DataLink
197
+ description?: string | DataLink
198
+ imageUri?: string | DataLink
199
+ price?: number | DataLink
200
+ }
201
+ >
202
+ | DataLink
203
+ }
204
+ cartOptions?:
205
+ | DataLink
206
+ | {
207
+ items?:
208
+ | Array<
209
+ | DataLink
210
+ | {
211
+ id?: string | DataLink
212
+ title?: string | DataLink
213
+ description?: string | DataLink
214
+ imageUri?: string | DataLink
215
+ price?: number | DataLink
216
+ qty?: number | DataLink
217
+ }
218
+ >
219
+ | DataLink
220
+ }
221
+ preferenceOptions?:
222
+ | DataLink
223
+ | {
224
+ settings?:
225
+ | Array<
226
+ | DataLink
227
+ | {
228
+ key?: string | DataLink
229
+ title?: string | DataLink
230
+ options?:
231
+ | Array<
232
+ | DataLink
233
+ | {
234
+ label?: string | DataLink
235
+ value?: string | DataLink
236
+ }
237
+ >
238
+ | DataLink
239
+ multiple?: boolean | DataLink
240
+ required?: boolean | DataLink
241
+ maximum?: number | DataLink
242
+ minimum?: number | DataLink
243
+ }
244
+ >
245
+ | DataLink
246
+ }
247
+ voiceRecordOptions?:
248
+ | DataLink
249
+ | {
250
+ sampleRate?: number | DataLink
251
+ bitDepth?: '8bit' | '16bit' | DataLink
252
+ channels?: 'mono' | 'stereo' | DataLink
253
+ maxDuration?: number | DataLink
254
+ }
255
+ videoRecordOptions?:
256
+ | DataLink
257
+ | {
258
+ manuallyStart?: boolean | DataLink
259
+ recordDuration?: number | DataLink
260
+ }
261
+ codeScanOptions?:
262
+ | DataLink
263
+ | {
264
+ inputSource?: 'camera' | 'hid-barcode-scanner' | DataLink
265
+ hidFlushMode?: 'enter-key' | 'timeout' | DataLink
266
+ hidFlushTimeout?: number | DataLink
267
+ }
268
+ messageOptions?:
269
+ | DataLink
270
+ | {
271
+ symbol?: 'success' | DataLink
272
+ duration?: number | DataLink
273
+ }
274
+ condition?:
275
+ | DataLink
276
+ | {
277
+ key?: string | DataLink
278
+ operator?:
279
+ | 'eq'
280
+ | 'neq'
281
+ | 'contains'
282
+ | 'notContains'
283
+ | 'isTrue'
284
+ | 'isFalse'
285
+ | DataLink
286
+ value?: string | DataLink
287
+ }
288
+ }
289
+ >
290
+ | DataLink
291
+ /* Display language (RFC 3066) */
292
+ displayLang?: string | DataLink
293
+ /* Banner image */
294
+ bannerImage?: string | DataLink
295
+ /* Banner image md5 */
296
+ bannerImageMd5?: string | DataLink
297
+ /* Show AI transcribe tip on the bottom of the modal */
298
+ aiTranscribeTip?: boolean | DataLink
299
+ /* Show close button */
300
+ showClose?: boolean | DataLink
301
+ /* Show back button */
302
+ showBack?: boolean | DataLink
303
+ /* Camera type */
304
+ cameraType?: 'front' | 'back' | DataLink
305
+ /* Camera position */
306
+ cameraPosition?: 'top' | 'left' | 'bottom' | 'right' | DataLink
307
+ /* "Next" button text */
308
+ nextButtonText?: string | DataLink
309
+ /* "Skip" button text */
310
+ skipButtonText?: string | DataLink
311
+ /* "Done" button text */
312
+ doneButtonText?: string | DataLink
313
+ /* Select columns */
314
+ selectColumns?: number | DataLink
315
+ /* Select auto calculate columns */
316
+ selectAutoColumns?: boolean | DataLink
317
+ /* Fixed model width, default is auto */
318
+ fixedModelWidth?: number | DataLink
319
+ /* Fixed model height, default is auto */
320
+ fixedModelHeight?: number | DataLink
321
+ /* Size factor */
322
+ sizeFactor?: number | DataLink
323
+ /* Background color */
324
+ backgroundColor?: string | DataLink
325
+ /* Container background color */
326
+ containerBackgroundColor?: string | DataLink
327
+ /* Title color */
328
+ titleColor?: string | DataLink
329
+ /* Description color */
330
+ descriptionColor?: string | DataLink
331
+ /* Input field background color */
332
+ fieldBackgroundColor?: string | DataLink
333
+ /* Input field text color */
334
+ fieldTextColor?: string | DataLink
335
+ /* Input field placeholder color */
336
+ fieldPlaceholderColor?: string | DataLink
337
+ /* Selected option background color */
338
+ fieldActiveBackgroundColor?: string | DataLink
339
+ /* Selected option text color */
340
+ fieldActiveTextColor?: string | DataLink
341
+ /* Field control button color */
342
+ fieldControlColor?: string | DataLink
343
+ /* Primary control button background color */
344
+ primaryControlBtnBackgroundColor?: string | DataLink
345
+ /* Primary control button text color */
346
+ primaryControlBtnTextColor?: string | DataLink
347
+ /* Primary control button border color */
348
+ primaryControlBtnBorderColor?: string | DataLink
349
+ /* Secondary control button background color */
350
+ secondaryControlBtnBackgroundColor?: string | DataLink
351
+ /* Secondary control button text color */
352
+ secondaryControlBtnTextColor?: string | DataLink
353
+ /* Secondary control button border color */
354
+ secondaryControlBtnBorderColor?: string | DataLink
355
+ /* Warn color */
356
+ warnColor?: string | DataLink
357
+ /* Error color */
358
+ errorColor?: string | DataLink
359
+ }
360
+ events?: {
361
+ /* Event of go next */
362
+ onNextQuestion?: Array<EventAction>
363
+ /* Event of go back */
364
+ onBackQuestion?: Array<EventAction>
365
+ /* Event of change question */
366
+ onQuestionChange?: Array<EventAction>
367
+ /* Event of user close question modal */
368
+ onClose?: Array<EventAction>
369
+ /* Event of warning showed */
370
+ onWarning?: Array<EventAction>
371
+ /* Event of completed inquire */
372
+ onCompleted?: Array<EventAction>
373
+ /* Event of error occured */
374
+ onError?: Array<EventAction<string & keyof TemplateEventPropsMap['Question']['onError']>>
375
+ }
376
+ outlets?: {
377
+ /* Result data */
378
+ data?: () => Data<{ [key: string]: any }>
379
+ /* Currnet question */
380
+ currectKey?: () => Data<string>
381
+ /* Currnet input value */
382
+ currectValue?: () => Data<any>
383
+ /* Error message */
384
+ errorMessage?: () => Data<string>
385
+ }
386
+ }
387
+
388
+ /* Prompt user for input via dialog and return the response */
389
+ export type GeneratorQuestion = Generator &
390
+ GeneratorQuestionDef & {
391
+ templateKey: 'GENERATOR_QUESTION'
392
+ switches?: Array<
393
+ SwitchDef &
394
+ GeneratorQuestionDef & {
395
+ conds?: Array<{
396
+ method: '==' | '!=' | '>' | '<' | '>=' | '<='
397
+ cond:
398
+ | SwitchCondInnerStateCurrentCanvas
399
+ | SwitchCondData
400
+ | {
401
+ __typename: 'SwitchCondInnerStateOutlet'
402
+ outlet: 'data' | 'currectKey' | 'currectValue' | 'errorMessage'
403
+ value: any
404
+ }
405
+ }>
406
+ }
407
+ >
408
+ }