imxc 0.5.4 → 0.6.1
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/compile.d.ts +8 -0
- package/dist/compile.js +285 -25
- package/dist/components.js +597 -45
- package/dist/diagnostics.js +3 -2
- package/dist/emitter.d.ts +6 -3
- package/dist/emitter.js +1454 -322
- package/dist/index.js +34 -7
- package/dist/init.d.ts +7 -1
- package/dist/init.js +43 -455
- package/dist/ir.d.ts +437 -5
- package/dist/lowering.d.ts +4 -3
- package/dist/lowering.js +770 -57
- package/dist/parser.d.ts +1 -0
- package/dist/templates/async.d.ts +1 -0
- package/dist/templates/async.js +228 -0
- package/dist/templates/custom.d.ts +15 -0
- package/dist/templates/custom.js +945 -0
- package/dist/templates/filedialog.d.ts +1 -0
- package/dist/templates/filedialog.js +216 -0
- package/dist/templates/hotreload.d.ts +1 -0
- package/dist/templates/hotreload.js +400 -0
- package/dist/templates/index.d.ts +16 -0
- package/dist/templates/index.js +553 -0
- package/dist/templates/minimal.d.ts +1 -0
- package/dist/templates/minimal.js +165 -0
- package/dist/templates/networking.d.ts +1 -0
- package/dist/templates/networking.js +244 -0
- package/dist/templates/persistence.d.ts +1 -0
- package/dist/templates/persistence.js +238 -0
- package/dist/validator.d.ts +1 -0
- package/dist/validator.js +51 -22
- package/dist/watch.d.ts +2 -1
- package/dist/watch.js +21 -4
- package/package.json +2 -4
package/dist/ir.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type IRType = 'int' | 'float' | 'bool' | 'string' | 'color';
|
|
1
|
+
export type IRType = 'int' | 'float' | 'bool' | 'string' | 'color' | 'int_array';
|
|
2
2
|
export interface SourceLoc {
|
|
3
3
|
file: string;
|
|
4
4
|
line: number;
|
|
@@ -7,6 +7,17 @@ export interface IRExpr {
|
|
|
7
7
|
code: string;
|
|
8
8
|
type: IRType;
|
|
9
9
|
}
|
|
10
|
+
export interface IRItemInteraction {
|
|
11
|
+
autoFocus?: string;
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
scrollToHere?: string;
|
|
14
|
+
cursor?: string;
|
|
15
|
+
onHover?: string[];
|
|
16
|
+
onActive?: string[];
|
|
17
|
+
onFocused?: string[];
|
|
18
|
+
onClicked?: string[];
|
|
19
|
+
onDoubleClicked?: string[];
|
|
20
|
+
}
|
|
10
21
|
export interface IRComponent {
|
|
11
22
|
name: string;
|
|
12
23
|
stateSlots: IRStateSlot[];
|
|
@@ -24,24 +35,103 @@ export interface IRStateSlot {
|
|
|
24
35
|
}
|
|
25
36
|
export interface IRPropParam {
|
|
26
37
|
name: string;
|
|
27
|
-
type:
|
|
38
|
+
type: string | 'callback';
|
|
28
39
|
}
|
|
29
|
-
export type IRNode = IRBeginContainer | IREndContainer | IRText | IRButton | IRTextInput | IRCheckbox | IRSeparator | IRBeginPopup | IREndPopup | IROpenPopup | IRConditional | IRListMap | IRCustomComponent | IRMenuItem | IRSliderFloat | IRSliderInt | IRDragFloat | IRDragInt | IRCombo | IRInputInt | IRInputFloat | IRColorEdit | IRListBox | IRProgressBar | IRTooltip | IRDockLayout | IRNativeWidget | IRBulletText | IRLabelText | IRSelectable | IRRadio | IRInputTextMultiline | IRColorPicker | IRPlotLines | IRPlotHistogram | IRImage | IRDrawLine | IRDrawRect | IRDrawCircle | IRDrawText;
|
|
40
|
+
export type IRNode = IRBeginContainer | IREndContainer | IRText | IRButton | IRTextInput | IRCheckbox | IRSeparator | IRSpacing | IRDummy | IRSameLine | IRNewLine | IRCursor | IRBeginPopup | IREndPopup | IROpenPopup | IRConditional | IRListMap | IRCustomComponent | IRMenuItem | IRBeginTable | IREndTable | IRBeginTableRow | IREndTableRow | IRBeginTableCell | IREndTableCell | IRBeginTreeNode | IREndTreeNode | IRBeginCollapsingHeader | IREndCollapsingHeader | IRSliderFloat | IRSliderInt | IRDragFloat | IRDragInt | IRCombo | IRInputInt | IRInputFloat | IRColorEdit | IRListBox | IRProgressBar | IRTooltip | IRShortcut | IRDockLayout | IRNativeWidget | IRBulletText | IRLabelText | IRSelectable | IRRadio | IRInputTextMultiline | IRColorPicker | IRColorEdit3 | IRColorPicker3 | IRPlotLines | IRPlotHistogram | IRImage | IRDrawLine | IRDrawRect | IRDrawCircle | IRDrawText | IRDrawBezierCubic | IRDrawBezierQuadratic | IRDrawPolyline | IRDrawConvexPolyFilled | IRDrawNgon | IRDrawNgonFilled | IRDrawTriangle | IRInputFloatN | IRInputIntN | IRDragFloatN | IRDragIntN | IRSliderFloatN | IRSliderIntN | IRSmallButton | IRArrowButton | IRInvisibleButton | IRImageButton | IRVSliderFloat | IRVSliderInt | IRSliderAngle | IRBeginCombo | IREndCombo | IRBullet | IRBeginListBox | IREndListBox;
|
|
30
41
|
export interface IRBeginContainer {
|
|
31
42
|
kind: 'begin_container';
|
|
32
|
-
tag: 'Window' | 'View' | '
|
|
43
|
+
tag: 'Window' | 'View' | 'Indent' | 'TextWrap' | 'Row' | 'Column' | 'DockSpace' | 'MainMenuBar' | 'MenuBar' | 'Menu' | 'TabBar' | 'TabItem' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child' | 'Font' | 'ContextMenu' | 'MultiSelect';
|
|
33
44
|
props: Record<string, string>;
|
|
34
45
|
style?: string;
|
|
35
46
|
loc?: SourceLoc;
|
|
36
47
|
}
|
|
37
48
|
export interface IREndContainer {
|
|
38
49
|
kind: 'end_container';
|
|
39
|
-
tag: 'Window' | 'View' | '
|
|
50
|
+
tag: 'Window' | 'View' | 'Indent' | 'TextWrap' | 'Row' | 'Column' | 'DockSpace' | 'MainMenuBar' | 'MenuBar' | 'Menu' | 'TabBar' | 'TabItem' | 'Theme' | 'DockLayout' | 'DockSplit' | 'DockPanel' | 'Modal' | 'Group' | 'ID' | 'StyleColor' | 'StyleVar' | 'DragDropSource' | 'DragDropTarget' | 'Canvas' | 'Disabled' | 'Child' | 'Font' | 'ContextMenu' | 'MultiSelect';
|
|
51
|
+
}
|
|
52
|
+
export interface IRTableColumn {
|
|
53
|
+
label: string;
|
|
54
|
+
defaultHide?: string;
|
|
55
|
+
preferSortAscending?: string;
|
|
56
|
+
preferSortDescending?: string;
|
|
57
|
+
noResize?: string;
|
|
58
|
+
fixedWidth?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface IRBeginTable {
|
|
61
|
+
kind: 'begin_table';
|
|
62
|
+
columns: IRTableColumn[];
|
|
63
|
+
sortable?: string;
|
|
64
|
+
hideable?: string;
|
|
65
|
+
multiSortable?: string;
|
|
66
|
+
noClip?: string;
|
|
67
|
+
padOuterX?: string;
|
|
68
|
+
scrollX?: string;
|
|
69
|
+
scrollY?: string;
|
|
70
|
+
noBorders?: string;
|
|
71
|
+
noRowBg?: string;
|
|
72
|
+
onSortBody?: string;
|
|
73
|
+
onSortParam?: string;
|
|
74
|
+
style?: string;
|
|
75
|
+
loc?: SourceLoc;
|
|
76
|
+
}
|
|
77
|
+
export interface IREndTable {
|
|
78
|
+
kind: 'end_table';
|
|
79
|
+
}
|
|
80
|
+
export interface IRBeginTableRow {
|
|
81
|
+
kind: 'begin_table_row';
|
|
82
|
+
bgColor?: string;
|
|
83
|
+
loc?: SourceLoc;
|
|
84
|
+
}
|
|
85
|
+
export interface IREndTableRow {
|
|
86
|
+
kind: 'end_table_row';
|
|
87
|
+
}
|
|
88
|
+
export interface IRBeginTableCell {
|
|
89
|
+
kind: 'begin_table_cell';
|
|
90
|
+
columnIndex?: string;
|
|
91
|
+
bgColor?: string;
|
|
92
|
+
loc?: SourceLoc;
|
|
93
|
+
}
|
|
94
|
+
export interface IREndTableCell {
|
|
95
|
+
kind: 'end_table_cell';
|
|
96
|
+
}
|
|
97
|
+
export interface IRBeginTreeNode {
|
|
98
|
+
kind: 'begin_tree_node';
|
|
99
|
+
label: string;
|
|
100
|
+
defaultOpen?: string;
|
|
101
|
+
forceOpen?: string;
|
|
102
|
+
openOnArrow?: string;
|
|
103
|
+
openOnDoubleClick?: string;
|
|
104
|
+
leaf?: string;
|
|
105
|
+
bullet?: string;
|
|
106
|
+
noTreePushOnOpen?: string;
|
|
107
|
+
item?: IRItemInteraction;
|
|
108
|
+
loc?: SourceLoc;
|
|
109
|
+
}
|
|
110
|
+
export interface IREndTreeNode {
|
|
111
|
+
kind: 'end_tree_node';
|
|
112
|
+
noTreePushOnOpen?: string;
|
|
113
|
+
}
|
|
114
|
+
export interface IRBeginCollapsingHeader {
|
|
115
|
+
kind: 'begin_collapsing_header';
|
|
116
|
+
label: string;
|
|
117
|
+
defaultOpen?: string;
|
|
118
|
+
forceOpen?: string;
|
|
119
|
+
closable?: string;
|
|
120
|
+
onCloseBody?: string;
|
|
121
|
+
item?: IRItemInteraction;
|
|
122
|
+
loc?: SourceLoc;
|
|
123
|
+
}
|
|
124
|
+
export interface IREndCollapsingHeader {
|
|
125
|
+
kind: 'end_collapsing_header';
|
|
126
|
+
closable?: string;
|
|
40
127
|
}
|
|
41
128
|
export interface IRText {
|
|
42
129
|
kind: 'text';
|
|
43
130
|
format: string;
|
|
44
131
|
args: string[];
|
|
132
|
+
color?: string;
|
|
133
|
+
disabled?: boolean;
|
|
134
|
+
wrapped?: boolean;
|
|
45
135
|
loc?: SourceLoc;
|
|
46
136
|
}
|
|
47
137
|
export interface IRButton {
|
|
@@ -50,6 +140,7 @@ export interface IRButton {
|
|
|
50
140
|
action: string[];
|
|
51
141
|
disabled?: boolean;
|
|
52
142
|
style?: string;
|
|
143
|
+
item?: IRItemInteraction;
|
|
53
144
|
loc?: SourceLoc;
|
|
54
145
|
}
|
|
55
146
|
export interface IRTextInput {
|
|
@@ -60,7 +151,9 @@ export interface IRTextInput {
|
|
|
60
151
|
valueExpr?: string;
|
|
61
152
|
onChangeExpr?: string;
|
|
62
153
|
directBind?: boolean;
|
|
154
|
+
width?: string;
|
|
63
155
|
style?: string;
|
|
156
|
+
item?: IRItemInteraction;
|
|
64
157
|
loc?: SourceLoc;
|
|
65
158
|
}
|
|
66
159
|
export interface IRCheckbox {
|
|
@@ -71,12 +164,39 @@ export interface IRCheckbox {
|
|
|
71
164
|
onChangeExpr?: string;
|
|
72
165
|
directBind?: boolean;
|
|
73
166
|
style?: string;
|
|
167
|
+
item?: IRItemInteraction;
|
|
74
168
|
loc?: SourceLoc;
|
|
75
169
|
}
|
|
76
170
|
export interface IRSeparator {
|
|
77
171
|
kind: 'separator';
|
|
78
172
|
loc?: SourceLoc;
|
|
79
173
|
}
|
|
174
|
+
export interface IRSpacing {
|
|
175
|
+
kind: 'spacing';
|
|
176
|
+
loc?: SourceLoc;
|
|
177
|
+
}
|
|
178
|
+
export interface IRDummy {
|
|
179
|
+
kind: 'dummy';
|
|
180
|
+
width: string;
|
|
181
|
+
height: string;
|
|
182
|
+
loc?: SourceLoc;
|
|
183
|
+
}
|
|
184
|
+
export interface IRSameLine {
|
|
185
|
+
kind: 'same_line';
|
|
186
|
+
offset: string;
|
|
187
|
+
spacing: string;
|
|
188
|
+
loc?: SourceLoc;
|
|
189
|
+
}
|
|
190
|
+
export interface IRNewLine {
|
|
191
|
+
kind: 'new_line';
|
|
192
|
+
loc?: SourceLoc;
|
|
193
|
+
}
|
|
194
|
+
export interface IRCursor {
|
|
195
|
+
kind: 'cursor';
|
|
196
|
+
x: string;
|
|
197
|
+
y: string;
|
|
198
|
+
loc?: SourceLoc;
|
|
199
|
+
}
|
|
80
200
|
export interface IRBeginPopup {
|
|
81
201
|
kind: 'begin_popup';
|
|
82
202
|
id: string;
|
|
@@ -125,6 +245,7 @@ export interface IRMenuItem {
|
|
|
125
245
|
label: string;
|
|
126
246
|
shortcut?: string;
|
|
127
247
|
action: string[];
|
|
248
|
+
item?: IRItemInteraction;
|
|
128
249
|
loc?: SourceLoc;
|
|
129
250
|
}
|
|
130
251
|
export interface IRSliderFloat {
|
|
@@ -136,7 +257,9 @@ export interface IRSliderFloat {
|
|
|
136
257
|
directBind?: boolean;
|
|
137
258
|
min: string;
|
|
138
259
|
max: string;
|
|
260
|
+
width?: string;
|
|
139
261
|
style?: string;
|
|
262
|
+
item?: IRItemInteraction;
|
|
140
263
|
loc?: SourceLoc;
|
|
141
264
|
}
|
|
142
265
|
export interface IRSliderInt {
|
|
@@ -148,7 +271,9 @@ export interface IRSliderInt {
|
|
|
148
271
|
directBind?: boolean;
|
|
149
272
|
min: string;
|
|
150
273
|
max: string;
|
|
274
|
+
width?: string;
|
|
151
275
|
style?: string;
|
|
276
|
+
item?: IRItemInteraction;
|
|
152
277
|
loc?: SourceLoc;
|
|
153
278
|
}
|
|
154
279
|
export interface IRDragFloat {
|
|
@@ -159,7 +284,9 @@ export interface IRDragFloat {
|
|
|
159
284
|
onChangeExpr?: string;
|
|
160
285
|
directBind?: boolean;
|
|
161
286
|
speed: string;
|
|
287
|
+
width?: string;
|
|
162
288
|
style?: string;
|
|
289
|
+
item?: IRItemInteraction;
|
|
163
290
|
loc?: SourceLoc;
|
|
164
291
|
}
|
|
165
292
|
export interface IRDragInt {
|
|
@@ -170,7 +297,9 @@ export interface IRDragInt {
|
|
|
170
297
|
onChangeExpr?: string;
|
|
171
298
|
directBind?: boolean;
|
|
172
299
|
speed: string;
|
|
300
|
+
width?: string;
|
|
173
301
|
style?: string;
|
|
302
|
+
item?: IRItemInteraction;
|
|
174
303
|
loc?: SourceLoc;
|
|
175
304
|
}
|
|
176
305
|
export interface IRCombo {
|
|
@@ -181,7 +310,9 @@ export interface IRCombo {
|
|
|
181
310
|
onChangeExpr?: string;
|
|
182
311
|
directBind?: boolean;
|
|
183
312
|
items: string;
|
|
313
|
+
width?: string;
|
|
184
314
|
style?: string;
|
|
315
|
+
item?: IRItemInteraction;
|
|
185
316
|
loc?: SourceLoc;
|
|
186
317
|
}
|
|
187
318
|
export interface IRInputInt {
|
|
@@ -191,7 +322,9 @@ export interface IRInputInt {
|
|
|
191
322
|
valueExpr?: string;
|
|
192
323
|
onChangeExpr?: string;
|
|
193
324
|
directBind?: boolean;
|
|
325
|
+
width?: string;
|
|
194
326
|
style?: string;
|
|
327
|
+
item?: IRItemInteraction;
|
|
195
328
|
loc?: SourceLoc;
|
|
196
329
|
}
|
|
197
330
|
export interface IRInputFloat {
|
|
@@ -201,7 +334,9 @@ export interface IRInputFloat {
|
|
|
201
334
|
valueExpr?: string;
|
|
202
335
|
onChangeExpr?: string;
|
|
203
336
|
directBind?: boolean;
|
|
337
|
+
width?: string;
|
|
204
338
|
style?: string;
|
|
339
|
+
item?: IRItemInteraction;
|
|
205
340
|
loc?: SourceLoc;
|
|
206
341
|
}
|
|
207
342
|
export interface IRColorEdit {
|
|
@@ -211,7 +346,9 @@ export interface IRColorEdit {
|
|
|
211
346
|
valueExpr?: string;
|
|
212
347
|
onChangeExpr?: string;
|
|
213
348
|
directBind?: boolean;
|
|
349
|
+
width?: string;
|
|
214
350
|
style?: string;
|
|
351
|
+
item?: IRItemInteraction;
|
|
215
352
|
loc?: SourceLoc;
|
|
216
353
|
}
|
|
217
354
|
export interface IRListBox {
|
|
@@ -222,7 +359,9 @@ export interface IRListBox {
|
|
|
222
359
|
onChangeExpr?: string;
|
|
223
360
|
directBind?: boolean;
|
|
224
361
|
items: string;
|
|
362
|
+
width?: string;
|
|
225
363
|
style?: string;
|
|
364
|
+
item?: IRItemInteraction;
|
|
226
365
|
loc?: SourceLoc;
|
|
227
366
|
}
|
|
228
367
|
export interface IRProgressBar {
|
|
@@ -237,6 +376,12 @@ export interface IRTooltip {
|
|
|
237
376
|
text: string;
|
|
238
377
|
loc?: SourceLoc;
|
|
239
378
|
}
|
|
379
|
+
export interface IRShortcut {
|
|
380
|
+
kind: 'shortcut';
|
|
381
|
+
keys: string;
|
|
382
|
+
action: string[];
|
|
383
|
+
loc?: SourceLoc;
|
|
384
|
+
}
|
|
240
385
|
export interface IRNativeWidget {
|
|
241
386
|
kind: 'native_widget';
|
|
242
387
|
name: string;
|
|
@@ -262,7 +407,10 @@ export interface IRSelectable {
|
|
|
262
407
|
label: string;
|
|
263
408
|
selected: string;
|
|
264
409
|
action: string[];
|
|
410
|
+
selectionIndex?: string;
|
|
411
|
+
flags?: string;
|
|
265
412
|
style?: string;
|
|
413
|
+
item?: IRItemInteraction;
|
|
266
414
|
loc?: SourceLoc;
|
|
267
415
|
}
|
|
268
416
|
export interface IRRadio {
|
|
@@ -274,6 +422,7 @@ export interface IRRadio {
|
|
|
274
422
|
directBind?: boolean;
|
|
275
423
|
index: string;
|
|
276
424
|
style?: string;
|
|
425
|
+
item?: IRItemInteraction;
|
|
277
426
|
loc?: SourceLoc;
|
|
278
427
|
}
|
|
279
428
|
export interface IRInputTextMultiline {
|
|
@@ -281,7 +430,12 @@ export interface IRInputTextMultiline {
|
|
|
281
430
|
label: string;
|
|
282
431
|
bufferIndex: number;
|
|
283
432
|
stateVar: string;
|
|
433
|
+
valueExpr?: string;
|
|
434
|
+
onChangeExpr?: string;
|
|
435
|
+
directBind?: boolean;
|
|
436
|
+
width?: string;
|
|
284
437
|
style?: string;
|
|
438
|
+
item?: IRItemInteraction;
|
|
285
439
|
loc?: SourceLoc;
|
|
286
440
|
}
|
|
287
441
|
export interface IRColorPicker {
|
|
@@ -292,6 +446,31 @@ export interface IRColorPicker {
|
|
|
292
446
|
onChangeExpr?: string;
|
|
293
447
|
directBind?: boolean;
|
|
294
448
|
style?: string;
|
|
449
|
+
item?: IRItemInteraction;
|
|
450
|
+
loc?: SourceLoc;
|
|
451
|
+
}
|
|
452
|
+
export interface IRColorEdit3 {
|
|
453
|
+
kind: 'color_edit3';
|
|
454
|
+
label: string;
|
|
455
|
+
stateVar: string;
|
|
456
|
+
valueExpr?: string;
|
|
457
|
+
onChangeExpr?: string;
|
|
458
|
+
directBind?: boolean;
|
|
459
|
+
width?: string;
|
|
460
|
+
style?: string;
|
|
461
|
+
item?: IRItemInteraction;
|
|
462
|
+
loc?: SourceLoc;
|
|
463
|
+
}
|
|
464
|
+
export interface IRColorPicker3 {
|
|
465
|
+
kind: 'color_picker3';
|
|
466
|
+
label: string;
|
|
467
|
+
stateVar: string;
|
|
468
|
+
valueExpr?: string;
|
|
469
|
+
onChangeExpr?: string;
|
|
470
|
+
directBind?: boolean;
|
|
471
|
+
width?: string;
|
|
472
|
+
style?: string;
|
|
473
|
+
item?: IRItemInteraction;
|
|
295
474
|
loc?: SourceLoc;
|
|
296
475
|
}
|
|
297
476
|
export interface IRPlotLines {
|
|
@@ -353,6 +532,259 @@ export interface IRDrawText {
|
|
|
353
532
|
color: string;
|
|
354
533
|
loc?: SourceLoc;
|
|
355
534
|
}
|
|
535
|
+
export interface IRDrawBezierCubic {
|
|
536
|
+
kind: 'draw_bezier_cubic';
|
|
537
|
+
p1: string;
|
|
538
|
+
p2: string;
|
|
539
|
+
p3: string;
|
|
540
|
+
p4: string;
|
|
541
|
+
color: string;
|
|
542
|
+
thickness: string;
|
|
543
|
+
segments: string;
|
|
544
|
+
loc?: SourceLoc;
|
|
545
|
+
}
|
|
546
|
+
export interface IRDrawBezierQuadratic {
|
|
547
|
+
kind: 'draw_bezier_quadratic';
|
|
548
|
+
p1: string;
|
|
549
|
+
p2: string;
|
|
550
|
+
p3: string;
|
|
551
|
+
color: string;
|
|
552
|
+
thickness: string;
|
|
553
|
+
segments: string;
|
|
554
|
+
loc?: SourceLoc;
|
|
555
|
+
}
|
|
556
|
+
export interface IRDrawPolyline {
|
|
557
|
+
kind: 'draw_polyline';
|
|
558
|
+
points: string;
|
|
559
|
+
color: string;
|
|
560
|
+
thickness: string;
|
|
561
|
+
closed: string;
|
|
562
|
+
loc?: SourceLoc;
|
|
563
|
+
}
|
|
564
|
+
export interface IRDrawConvexPolyFilled {
|
|
565
|
+
kind: 'draw_convex_poly_filled';
|
|
566
|
+
points: string;
|
|
567
|
+
color: string;
|
|
568
|
+
loc?: SourceLoc;
|
|
569
|
+
}
|
|
570
|
+
export interface IRDrawNgon {
|
|
571
|
+
kind: 'draw_ngon';
|
|
572
|
+
center: string;
|
|
573
|
+
radius: string;
|
|
574
|
+
color: string;
|
|
575
|
+
numSegments: string;
|
|
576
|
+
thickness: string;
|
|
577
|
+
loc?: SourceLoc;
|
|
578
|
+
}
|
|
579
|
+
export interface IRDrawNgonFilled {
|
|
580
|
+
kind: 'draw_ngon_filled';
|
|
581
|
+
center: string;
|
|
582
|
+
radius: string;
|
|
583
|
+
color: string;
|
|
584
|
+
numSegments: string;
|
|
585
|
+
loc?: SourceLoc;
|
|
586
|
+
}
|
|
587
|
+
export interface IRDrawTriangle {
|
|
588
|
+
kind: 'draw_triangle';
|
|
589
|
+
p1: string;
|
|
590
|
+
p2: string;
|
|
591
|
+
p3: string;
|
|
592
|
+
color: string;
|
|
593
|
+
filled: string;
|
|
594
|
+
thickness: string;
|
|
595
|
+
loc?: SourceLoc;
|
|
596
|
+
}
|
|
597
|
+
export interface IRInputFloatN {
|
|
598
|
+
kind: 'input_float_n';
|
|
599
|
+
label: string;
|
|
600
|
+
count: number;
|
|
601
|
+
stateVar?: string;
|
|
602
|
+
valueExpr?: string;
|
|
603
|
+
directBind?: boolean;
|
|
604
|
+
onChangeExpr?: string;
|
|
605
|
+
width?: string;
|
|
606
|
+
style?: string;
|
|
607
|
+
item?: IRItemInteraction;
|
|
608
|
+
loc?: SourceLoc;
|
|
609
|
+
}
|
|
610
|
+
export interface IRInputIntN {
|
|
611
|
+
kind: 'input_int_n';
|
|
612
|
+
label: string;
|
|
613
|
+
count: number;
|
|
614
|
+
stateVar?: string;
|
|
615
|
+
valueExpr?: string;
|
|
616
|
+
directBind?: boolean;
|
|
617
|
+
onChangeExpr?: string;
|
|
618
|
+
width?: string;
|
|
619
|
+
style?: string;
|
|
620
|
+
item?: IRItemInteraction;
|
|
621
|
+
loc?: SourceLoc;
|
|
622
|
+
}
|
|
623
|
+
export interface IRDragFloatN {
|
|
624
|
+
kind: 'drag_float_n';
|
|
625
|
+
label: string;
|
|
626
|
+
count: number;
|
|
627
|
+
stateVar?: string;
|
|
628
|
+
valueExpr?: string;
|
|
629
|
+
directBind?: boolean;
|
|
630
|
+
onChangeExpr?: string;
|
|
631
|
+
speed: string;
|
|
632
|
+
width?: string;
|
|
633
|
+
style?: string;
|
|
634
|
+
item?: IRItemInteraction;
|
|
635
|
+
loc?: SourceLoc;
|
|
636
|
+
}
|
|
637
|
+
export interface IRDragIntN {
|
|
638
|
+
kind: 'drag_int_n';
|
|
639
|
+
label: string;
|
|
640
|
+
count: number;
|
|
641
|
+
stateVar?: string;
|
|
642
|
+
valueExpr?: string;
|
|
643
|
+
directBind?: boolean;
|
|
644
|
+
onChangeExpr?: string;
|
|
645
|
+
speed: string;
|
|
646
|
+
width?: string;
|
|
647
|
+
style?: string;
|
|
648
|
+
item?: IRItemInteraction;
|
|
649
|
+
loc?: SourceLoc;
|
|
650
|
+
}
|
|
651
|
+
export interface IRSliderFloatN {
|
|
652
|
+
kind: 'slider_float_n';
|
|
653
|
+
label: string;
|
|
654
|
+
count: number;
|
|
655
|
+
stateVar?: string;
|
|
656
|
+
valueExpr?: string;
|
|
657
|
+
directBind?: boolean;
|
|
658
|
+
onChangeExpr?: string;
|
|
659
|
+
min: string;
|
|
660
|
+
max: string;
|
|
661
|
+
width?: string;
|
|
662
|
+
style?: string;
|
|
663
|
+
item?: IRItemInteraction;
|
|
664
|
+
loc?: SourceLoc;
|
|
665
|
+
}
|
|
666
|
+
export interface IRSliderIntN {
|
|
667
|
+
kind: 'slider_int_n';
|
|
668
|
+
label: string;
|
|
669
|
+
count: number;
|
|
670
|
+
stateVar?: string;
|
|
671
|
+
valueExpr?: string;
|
|
672
|
+
directBind?: boolean;
|
|
673
|
+
onChangeExpr?: string;
|
|
674
|
+
min: string;
|
|
675
|
+
max: string;
|
|
676
|
+
width?: string;
|
|
677
|
+
style?: string;
|
|
678
|
+
item?: IRItemInteraction;
|
|
679
|
+
loc?: SourceLoc;
|
|
680
|
+
}
|
|
681
|
+
export interface IRVSliderFloat {
|
|
682
|
+
kind: 'vslider_float';
|
|
683
|
+
label: string;
|
|
684
|
+
stateVar: string;
|
|
685
|
+
valueExpr?: string;
|
|
686
|
+
onChangeExpr?: string;
|
|
687
|
+
directBind?: boolean;
|
|
688
|
+
width: string;
|
|
689
|
+
height: string;
|
|
690
|
+
min: string;
|
|
691
|
+
max: string;
|
|
692
|
+
style?: string;
|
|
693
|
+
item?: IRItemInteraction;
|
|
694
|
+
loc?: SourceLoc;
|
|
695
|
+
}
|
|
696
|
+
export interface IRVSliderInt {
|
|
697
|
+
kind: 'vslider_int';
|
|
698
|
+
label: string;
|
|
699
|
+
stateVar: string;
|
|
700
|
+
valueExpr?: string;
|
|
701
|
+
onChangeExpr?: string;
|
|
702
|
+
directBind?: boolean;
|
|
703
|
+
width: string;
|
|
704
|
+
height: string;
|
|
705
|
+
min: string;
|
|
706
|
+
max: string;
|
|
707
|
+
style?: string;
|
|
708
|
+
item?: IRItemInteraction;
|
|
709
|
+
loc?: SourceLoc;
|
|
710
|
+
}
|
|
711
|
+
export interface IRSliderAngle {
|
|
712
|
+
kind: 'slider_angle';
|
|
713
|
+
label: string;
|
|
714
|
+
stateVar: string;
|
|
715
|
+
valueExpr?: string;
|
|
716
|
+
onChangeExpr?: string;
|
|
717
|
+
directBind?: boolean;
|
|
718
|
+
min: string;
|
|
719
|
+
max: string;
|
|
720
|
+
width?: string;
|
|
721
|
+
style?: string;
|
|
722
|
+
item?: IRItemInteraction;
|
|
723
|
+
loc?: SourceLoc;
|
|
724
|
+
}
|
|
725
|
+
export interface IRBeginCombo {
|
|
726
|
+
kind: 'begin_combo';
|
|
727
|
+
label: string;
|
|
728
|
+
preview: string;
|
|
729
|
+
flags: string[];
|
|
730
|
+
width?: string;
|
|
731
|
+
style?: string;
|
|
732
|
+
item?: IRItemInteraction;
|
|
733
|
+
loc?: SourceLoc;
|
|
734
|
+
}
|
|
735
|
+
export interface IREndCombo {
|
|
736
|
+
kind: 'end_combo';
|
|
737
|
+
}
|
|
738
|
+
export interface IRBeginListBox {
|
|
739
|
+
kind: 'begin_list_box';
|
|
740
|
+
label: string;
|
|
741
|
+
width?: string;
|
|
742
|
+
height?: string;
|
|
743
|
+
style?: string;
|
|
744
|
+
item?: IRItemInteraction;
|
|
745
|
+
loc?: SourceLoc;
|
|
746
|
+
}
|
|
747
|
+
export interface IREndListBox {
|
|
748
|
+
kind: 'end_list_box';
|
|
749
|
+
}
|
|
750
|
+
export interface IRBullet {
|
|
751
|
+
kind: 'bullet';
|
|
752
|
+
loc?: SourceLoc;
|
|
753
|
+
}
|
|
754
|
+
export interface IRSmallButton {
|
|
755
|
+
kind: 'small_button';
|
|
756
|
+
label: string;
|
|
757
|
+
action: string[];
|
|
758
|
+
item?: IRItemInteraction;
|
|
759
|
+
loc?: SourceLoc;
|
|
760
|
+
}
|
|
761
|
+
export interface IRArrowButton {
|
|
762
|
+
kind: 'arrow_button';
|
|
763
|
+
id: string;
|
|
764
|
+
direction: string;
|
|
765
|
+
action: string[];
|
|
766
|
+
item?: IRItemInteraction;
|
|
767
|
+
loc?: SourceLoc;
|
|
768
|
+
}
|
|
769
|
+
export interface IRInvisibleButton {
|
|
770
|
+
kind: 'invisible_button';
|
|
771
|
+
id: string;
|
|
772
|
+
width: string;
|
|
773
|
+
height: string;
|
|
774
|
+
action: string[];
|
|
775
|
+
item?: IRItemInteraction;
|
|
776
|
+
loc?: SourceLoc;
|
|
777
|
+
}
|
|
778
|
+
export interface IRImageButton {
|
|
779
|
+
kind: 'image_button';
|
|
780
|
+
id: string;
|
|
781
|
+
src: string;
|
|
782
|
+
width?: string;
|
|
783
|
+
height?: string;
|
|
784
|
+
action: string[];
|
|
785
|
+
item?: IRItemInteraction;
|
|
786
|
+
loc?: SourceLoc;
|
|
787
|
+
}
|
|
356
788
|
export interface IRDockLayout {
|
|
357
789
|
kind: 'dock_layout';
|
|
358
790
|
children: (IRDockSplit | IRDockPanel)[];
|
package/dist/lowering.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import type { ParsedFile } from './parser.js';
|
|
3
3
|
import type { ValidationResult } from './validator.js';
|
|
4
|
-
import type { IRComponent, IRStateSlot
|
|
4
|
+
import type { IRComponent, IRStateSlot } from './ir.js';
|
|
5
5
|
interface LoweringContext {
|
|
6
6
|
stateVars: Map<string, IRStateSlot>;
|
|
7
7
|
setterMap: Map<string, string>;
|
|
8
8
|
propsParam: string | null;
|
|
9
|
-
propsFieldTypes: Map<string,
|
|
9
|
+
propsFieldTypes: Map<string, string | 'callback'>;
|
|
10
|
+
externalInterfaces?: Map<string, Map<string, string | 'callback'>>;
|
|
10
11
|
bufferIndex: number;
|
|
11
12
|
mapCounter: number;
|
|
12
13
|
sourceFile: ts.SourceFile;
|
|
13
14
|
customComponents: Map<string, string>;
|
|
14
15
|
}
|
|
15
|
-
export declare function lowerComponent(parsed: ParsedFile, validation: ValidationResult, externalInterfaces?: Map<string, Map<string,
|
|
16
|
+
export declare function lowerComponent(parsed: ParsedFile, validation: ValidationResult, externalInterfaces?: Map<string, Map<string, string | 'callback'>>): IRComponent;
|
|
16
17
|
/**
|
|
17
18
|
* Convert a TypeScript expression to C++ code string.
|
|
18
19
|
*/
|