jitera_proto 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,466 @@
1
+ syntax = "proto3";
2
+ package schema.v1;
3
+
4
+ import "google/protobuf/struct.proto";
5
+
6
+ message Frontend {
7
+ repeated AppPage app_pages = 1;
8
+ }
9
+
10
+ message AppPage {
11
+ string id = 1;
12
+ string page_name = 2;
13
+ string slug = 3;
14
+ PageType page_type = 4;
15
+ repeated PageNode nodes = 5;
16
+
17
+ enum PageType {
18
+ SCREEN = 0;
19
+ MOLECULE = 1;
20
+ }
21
+ }
22
+
23
+ message PageNode {
24
+ string id = 1;
25
+ string display_name = 2;
26
+ string name = 3;
27
+ string parent = 4;
28
+ repeated string nodes = 5;
29
+ map<string, string> linked_nodes = 6;
30
+ string component_name = 7;
31
+ NodeCustom custom = 8;
32
+
33
+ oneof props {
34
+ WebNodeProps web_props = 9;
35
+ MobileNodeProps mobile_props = 10;
36
+ }
37
+ }
38
+
39
+ message WebNodeProps {
40
+ string element_key = 1;
41
+ optional string button_type = 2;
42
+ optional string span = 3;
43
+ optional string offset = 4;
44
+ optional string push_prop = 5;
45
+ optional string pull_prop = 6;
46
+ optional string order = 7;
47
+ repeated int32 gutter = 8;
48
+ optional string wrap = 9;
49
+ optional string justify = 10;
50
+ optional string align = 11;
51
+ optional int32 pin_count = 12;
52
+ optional bool auto_focus = 13;
53
+ optional string otp_input_type = 14;
54
+ optional string icon_name = 15;
55
+ optional string icon_position = 16;
56
+ optional string color = 17;
57
+ optional string active_color = 18;
58
+ optional string inactive_color = 19;
59
+ optional string check_color = 20;
60
+ optional string direction = 21;
61
+ optional string size = 22;
62
+ optional string label = 23;
63
+ optional string date_mode = 24;
64
+ optional string date_format = 25;
65
+ optional string week_format = 26;
66
+ optional string month_format = 27;
67
+ optional string time_format = 28;
68
+ optional string mode = 29;
69
+ optional int32 space_between = 30;
70
+ optional bool is_required_authentication = 31;
71
+ optional string redirect_url = 32;
72
+ optional string flex = 33;
73
+ optional string source_type = 34;
74
+ optional bool is_password_field = 35;
75
+ optional string align_items = 36;
76
+ optional string justify_content = 37;
77
+ optional int32 xs = 38;
78
+ optional int32 sm = 39;
79
+ optional int32 md = 40;
80
+ optional int32 lg = 41;
81
+ optional int32 xl = 42;
82
+ optional int32 xxl = 43;
83
+
84
+ // { gutter: number, xs: number, md: number, xl: number }
85
+ optional google.protobuf.Struct grid = 44;
86
+
87
+ // { slidesToShow: number }
88
+ optional google.protobuf.Struct xl_responsive = 45;
89
+ optional google.protobuf.Struct md_responsive = 46;
90
+ optional google.protobuf.Struct xs_responsive = 47;
91
+
92
+ optional string picker = 48;
93
+ optional bool show_time = 49;
94
+ optional string format = 50;
95
+ optional bool disabled_overflow = 51;
96
+ optional bool multiple = 52;
97
+ optional int32 max_count = 53;
98
+ optional string placement = 54;
99
+ optional int32 width = 55;
100
+ optional bool closable = 56;
101
+ optional bool header_visible = 57;
102
+ optional string type = 58;
103
+ optional string text_type = 59;
104
+ optional int32 slides_to_show = 60;
105
+ optional bool variable_width = 61;
106
+ optional bool infinity = 62;
107
+ optional bool infinite = 63;
108
+ optional bool centered = 64;
109
+ optional string tab_position = 65;
110
+ optional google.protobuf.Struct tabs = 66;
111
+ optional google.protobuf.Struct tab_label_style = 67;
112
+ optional string default_active_key = 68;
113
+ optional bool is_header_visible = 69;
114
+ optional bool is_footer_visible = 70;
115
+ optional bool is_data_sortable = 71;
116
+ optional bool is_pagination_enabled = 72;
117
+ optional string pagination_position = 73;
118
+ optional int32 page_size = 74;
119
+
120
+ optional google.protobuf.Struct body_style = 75;
121
+ optional google.protobuf.Struct placeholder_style = 76;
122
+ optional google.protobuf.Struct container_style = 77;
123
+ optional google.protobuf.Struct dropdown_style = 78;
124
+ optional google.protobuf.Struct option_style = 79;
125
+ optional google.protobuf.Struct cell_style = 80;
126
+ optional google.protobuf.Struct cell_text_style = 81;
127
+ optional google.protobuf.Struct style = 82;
128
+ optional google.protobuf.Struct button_style = 83;
129
+ optional google.protobuf.Struct header_style = 84;
130
+ optional google.protobuf.Struct wrapper_style = 85;
131
+ optional google.protobuf.Struct table_style = 86;
132
+ optional google.protobuf.Struct header_row_style = 87;
133
+ optional google.protobuf.Struct header_column_style = 88;
134
+ optional google.protobuf.Struct body_row_style = 89;
135
+ optional google.protobuf.Struct body_column_style = 90;
136
+ optional google.protobuf.Struct sort_column_style = 91;
137
+ optional google.protobuf.Struct footer_row_style = 92;
138
+ optional google.protobuf.Struct footer_column_style = 93;
139
+ optional google.protobuf.Struct pagination_wrapper_style = 94;
140
+ optional google.protobuf.Struct label_style = 95;
141
+ optional google.protobuf.Struct input_style = 96;
142
+
143
+ optional WebNodeProps ascending_icon_props = 97;
144
+ optional WebNodeProps descending_icon_props = 98;
145
+ optional WebNodeProps icon_props = 99;
146
+ optional WebNodeProps drawer_props = 100;
147
+ optional WebNodeProps button_props = 101;
148
+ optional WebNodeProps prefix_icon_props = 102;
149
+ optional WebNodeProps suffix_icon_props = 103;
150
+
151
+ optional RenderMolecule render_item = 109;
152
+ optional MoleculeComponent header = 110;
153
+ optional MoleculeComponent footer = 111;
154
+
155
+ repeated NodeVariable drawer_title = 112;
156
+ repeated NodeVariable placeholder = 113;
157
+ repeated NodeVariable input_label = 114;
158
+ repeated NodeVariable href = 115;
159
+ repeated NodeVariable action = 116;
160
+ repeated NodeVariable data = 117;
161
+ repeated NodeVariable total_page = 118;
162
+ repeated NodeVariable default_value = 119;
163
+ repeated NodeVariable source = 120;
164
+ repeated NodeVariable title = 121;
165
+ repeated NodeVariable children_data = 122;
166
+ repeated NodeVariable responsive_visibility = 123;
167
+ repeated NodeVariable data_source = 124;
168
+
169
+ repeated TableColumn table_columns = 125;
170
+ repeated TableColumn table_actions = 126;
171
+
172
+ repeated NodeAction on_pagination_change = 127;
173
+ repeated NodeAction on_data_sorting_change = 128;
174
+
175
+ message TableColumn {
176
+ RenderMolecule molecule = 1;
177
+ repeated bool sortable = 2;
178
+ repeated bool filterable = 3;
179
+ repeated int32 column_index = 4;
180
+ repeated string column_name = 5;
181
+ repeated string column_path = 6;
182
+ }
183
+ }
184
+
185
+ message MobileNodeProps {
186
+ string element_key = 1;
187
+ optional string background_color = 2;
188
+ optional string safe_area = 3;
189
+ optional string placeholder_text_color = 4;
190
+ optional bool secure_text_entry = 5;
191
+ optional bool auto_correct = 6;
192
+ optional bool show_clear_text = 7;
193
+ optional bool show_character_counter = 8;
194
+ optional int32 max_length = 9;
195
+ optional string clear_icon_color = 10;
196
+ optional string secure_eye_icon_color = 11;
197
+ optional bool editable = 12;
198
+ optional int32 number_of_lines = 13;
199
+ optional bool vertical = 14;
200
+ optional bool loop = 15;
201
+ optional int32 timeout = 16;
202
+ optional bool horizontal = 17;
203
+ optional int32 num_columns = 18;
204
+ optional string source_type = 19;
205
+ optional bool use_default_back_button = 20;
206
+ optional bool auto_focus = 21;
207
+ optional int32 pin_count = 22;
208
+ optional string position = 23;
209
+ optional string return_key_type = 24;
210
+ optional string resize_mode = 25;
211
+ optional string keyboard_type = 26;
212
+ optional string auto_capitalize = 27;
213
+ optional string date_mode = 28;
214
+ optional string mode = 29;
215
+ optional bool infinity = 30;
216
+ optional bool inverted = 31;
217
+ optional string name = 32;
218
+ optional int32 size = 33;
219
+ optional string color = 34;
220
+ optional string type = 35;
221
+ optional string left_icon_name = 36;
222
+ optional string left_icon_type = 37;
223
+ optional int32 left_icon_size = 38;
224
+ optional string left_icon_color = 39;
225
+ optional string right_icon_name = 40;
226
+ optional string right_icon_type = 41;
227
+ optional int32 right_icon_size = 42;
228
+ optional string right_icon_color = 43;
229
+ optional string launcher_type = 44;
230
+ optional string otp_input_type = 45;
231
+ optional float border_bottom_width = 46;
232
+ optional string border_bottom_color = 47;
233
+
234
+ optional google.protobuf.Struct style = 48;
235
+ optional google.protobuf.Struct content_container_style = 49;
236
+ optional google.protobuf.Struct input_style = 50;
237
+ optional google.protobuf.Struct label_style = 51;
238
+ optional google.protobuf.Struct character_counter_style = 52;
239
+ optional google.protobuf.Struct cell_style = 53;
240
+ optional google.protobuf.Struct cell_text_style = 54;
241
+ optional google.protobuf.Struct title_style = 55;
242
+
243
+ optional RenderMolecule render_item = 56;
244
+ optional RenderMolecule preview = 57;
245
+ optional RenderMolecule component = 58;
246
+
247
+ optional MoleculeComponent list_empty_component = 59;
248
+ optional MoleculeComponent list_header_component = 60;
249
+ optional MoleculeComponent list_footer_component = 61;
250
+ optional MoleculeComponent item_separator_component = 62;
251
+
252
+ optional NodeReference key_extractor = 63;
253
+
254
+ repeated NodeVariable placeholder = 64;
255
+ repeated NodeVariable data = 65;
256
+ repeated NodeVariable source = 66;
257
+ repeated NodeVariable title = 67;
258
+ repeated NodeVariable children_data = 68;
259
+ }
260
+
261
+ message RenderMolecule {
262
+ optional NodeReference reference = 1;
263
+ repeated FunctionArgument arguments = 2;
264
+ repeated NodeParam props = 3;
265
+ }
266
+
267
+ message NodeReference {
268
+ string name = 1;
269
+ string ref_id = 2;
270
+ google.protobuf.Struct ref_data = 3;
271
+ string value = 4;
272
+ ReferenceRefType ref_type = 5;
273
+
274
+ enum ReferenceRefType {
275
+ NONE = 0;
276
+ API_REQUEST = 1;
277
+ API_REQUEST_PARAM = 2;
278
+ API_BUSINESS_PROCESS = 3;
279
+ API_RESPONSE_DATA = 4;
280
+ COLUMN_DEFINITION = 5;
281
+ MOBILE_APP_ASSET = 6;
282
+ MOBILE_APP_PAGE = 7;
283
+ MOBILE_APP_PAGE_ACTION = 8;
284
+ MOBILE_APP_PAGE_NODE = 9;
285
+ MOBILE_APP_PAGE_PARAM = 10;
286
+ MOBILE_APP_PAGE_FORM = 11;
287
+ MOBILE_NAVIGATION = 12;
288
+ MOBILE_NAVIGATION_NODE = 13;
289
+ MOBILE_MOLECULE_PROP = 14;
290
+ TABLE_DEFINITION = 15;
291
+ }
292
+ }
293
+
294
+ message FunctionArgument {
295
+ string name = 1;
296
+ string argument_type = 2;
297
+ bool plural = 3;
298
+ NodeReference reference = 4;
299
+ }
300
+
301
+ message NodeParam {
302
+ string name = 1;
303
+ string param_type = 2;
304
+ repeated string param_type_enum = 3;
305
+ string default_value = 4;
306
+ bool plural = 5;
307
+ bool automated = 6;
308
+ NodeReference reference = 7;
309
+ NodeVariable value = 8;
310
+ repeated NodeAction actions = 9;
311
+ repeated FunctionArgument function_arguments = 10;
312
+ }
313
+
314
+ message NodeVariable {
315
+ string local_id = 1;
316
+ string name = 2;
317
+ string value = 3;
318
+ string value_path = 4;
319
+ string default_value = 5;
320
+ string value_type = 6;
321
+ VariableDefaultType default_type = 7;
322
+ VariableSource source = 8;
323
+ VariableType variable_type = 9;
324
+ repeated NodeReference values = 10;
325
+
326
+ enum VariableDefaultType {
327
+ STRING = 0;
328
+ VARIABLE = 1;
329
+ }
330
+
331
+ enum VariableSource {
332
+ PARAMS = 0;
333
+ FORM_VALUES = 1;
334
+ ACTION_RESPONSE = 2;
335
+ STORAGE = 3;
336
+ AUTHENTICATED_USER = 4;
337
+ MOLECULE_PROPS = 5;
338
+ PROJECT_ASSET = 6;
339
+ CONTEXT_VALUES = 7;
340
+ LOCAL_CONTEXT_RESPONSE = 8;
341
+ FORM_VALIDATION_ERROR_MESSAGE = 9;
342
+ }
343
+
344
+ enum VariableType {
345
+ STATIC = 0;
346
+ DYNAMIC = 1;
347
+ }
348
+ }
349
+
350
+ message NodeAction {
351
+ string action = 1;
352
+ string value = 2;
353
+ ActionType action_type = 3;
354
+ ActionSource source = 4;
355
+ repeated NodePayload payload = 5;
356
+ repeated NodePayload response = 6;
357
+ repeated NodeReference values = 7;
358
+ repeated NodeAction success_actions = 8;
359
+ repeated NodeAction error_actions = 9;
360
+
361
+ enum ActionType {
362
+ API = 0;
363
+ GENERAL = 1;
364
+ }
365
+
366
+ enum ActionSource {
367
+ AUTHENTICATION = 0;
368
+ BACKEND_CALL = 1;
369
+ FORM_SUBMIT = 2;
370
+ NAVIGATION = 3;
371
+ SHOW_TOAST_MESSAGE = 4;
372
+ MOLECULE_PROPS = 5;
373
+ MODAL = 6;
374
+ EVENT_LOG = 7;
375
+ REQUEST_NOTIFICATION_PERMISSION = 8;
376
+ DRAWER = 9;
377
+ }
378
+ }
379
+
380
+ message NodePayload {
381
+ NodeVariable value = 1;
382
+ NodeReference reference = 2;
383
+ repeated NodeAction actions = 3;
384
+ }
385
+
386
+ message MoleculeComponent {
387
+ NodeReference reference = 1;
388
+ repeated NodeParam props = 2;
389
+ }
390
+
391
+ message NodeCustom {
392
+ optional bool use_prop_style = 1;
393
+ optional bool ignore_prop_style = 2;
394
+ optional NodeReference form = 3;
395
+ optional NodeReference molecule = 4;
396
+ repeated NodeMediaQuery media_queries = 5;
397
+ optional NodeReference authentication = 6;
398
+ optional RenderCondition render_condition = 7;
399
+ repeated NodeVariable seo_title = 8;
400
+ repeated NodeVariable seo_description = 9;
401
+ repeated NodeAction actions = 10;
402
+ repeated NodeParam params = 11;
403
+ repeated NodeParam props = 12;
404
+ repeated NodeVariable children_data = 13;
405
+ repeated FormValidation form_validations = 14;
406
+ }
407
+
408
+ message NodeMediaQuery {
409
+ int32 lower = 1;
410
+ int32 upper = 2;
411
+ google.protobuf.Struct style = 3;
412
+ }
413
+
414
+ message RenderCondition {
415
+ bool enabled = 1;
416
+ repeated Condition conditions = 2;
417
+
418
+ message Condition {
419
+ Source source = 1;
420
+ Operator operator = 2;
421
+ NodeVariable left = 3;
422
+ NodeVariable right = 4;
423
+ }
424
+
425
+ enum Source {
426
+ BINARY = 0;
427
+ GLOBAL = 1;
428
+ }
429
+
430
+ enum Operator {
431
+ LESS_THAN = 0;
432
+ LESS_EQUAL_THAN = 1;
433
+ EQUAL = 2;
434
+ NOT_EQUAL = 3;
435
+ GREATER_THAN = 4;
436
+ GREATER_EQUAL_THAN = 5;
437
+ EXIST = 6;
438
+ NOT_EXIST = 7;
439
+ }
440
+ }
441
+
442
+ message FormValidation {
443
+ ValidationType validation_type = 1;
444
+ repeated FormValidationsRule validation_rules = 2;
445
+
446
+ message FormValidationsRule {
447
+ string value = 1;
448
+ string value_type = 2;
449
+ repeated NodeVariable error_messages = 3;
450
+ }
451
+
452
+ enum ValidationType {
453
+ TEXT = 0;
454
+ NUMBER = 1;
455
+ EMAIL = 2;
456
+ PASSWORD = 3;
457
+ PHONE_NUMBER = 4;
458
+ }
459
+
460
+ enum RuleType {
461
+ REQUIRED = 0;
462
+ MAXIMUM = 1;
463
+ MINIMUM = 2;
464
+ REGEX = 3;
465
+ }
466
+ }