@skedulo/mex-types 1.15.3 → 1.16.0

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.
@@ -1,5 +1,6 @@
1
1
  import { BaseFlatPageViewComponentModel, SkedButtonTheme } from '../view/FlatPageViewComponentModel';
2
2
  import { SelectPageOnlineSource } from '../view';
3
+ export type DollarExpressionType = string;
3
4
  export type DataExpressionType = string;
4
5
  export type ValueExpressionType = string | ValueExpressionLogic[];
5
6
  export type LocalizedKey = string;
@@ -134,3 +135,32 @@ export interface OpenSelectorButtonBehaviorComponentModel extends ButtonBehavior
134
135
  };
135
136
  }
136
137
  export type IconName = 'copy' | 'logout' | 'search' | 'searchFilter' | 'alert' | 'attachment' | 'calendar' | 'camera' | 'clock' | 'check' | 'checkCircle' | 'date' | 'debug' | 'delete' | 'edit' | 'email' | 'fieldClear' | 'fieldSearch' | 'file' | 'filter' | 'info' | 'job' | 'launch' | 'location' | 'map' | 'mapLayers' | 'mapPin' | 'mobile' | 'more' | 'newMessage' | 'offline' | 'person' | 'phone' | 'photo' | 'select' | 'settings' | 'shareAndroid' | 'shareIOS' | 'shifts' | 'signature' | 'sms' | 'target' | 'travelDistance';
138
+ /**
139
+ * @version 1.10.0
140
+ */
141
+ export type OnlineModeFilter = DollarExpressionType;
142
+ /**
143
+ * @version 1.10.0
144
+ */
145
+ export type OnlineModeFields = string[];
146
+ export interface BaseOnlineDataQuery {
147
+ type: 'default' | 'custom';
148
+ requestKey: string;
149
+ }
150
+ export interface DefaultOnlineDataQuery extends BaseOnlineDataQuery {
151
+ type: 'default';
152
+ fields: OnlineModeFields;
153
+ objectName: string;
154
+ filter: OnlineModeFilter;
155
+ }
156
+ /**
157
+ * @version 1.10.0
158
+ */
159
+ export interface CustomOnlineDataQuery extends BaseOnlineDataQuery {
160
+ type: 'custom';
161
+ function: DataExpressionType;
162
+ }
163
+ /**
164
+ * @version 1.10.0
165
+ */
166
+ export type OnlineDataQuery = DefaultOnlineDataQuery | CustomOnlineDataQuery;
@@ -1,4 +1,4 @@
1
- import { ButtonGroupItemComponentModel, DataExpressionType, FunctionExpressionType, GroupByFeatureModel, ListPageAddNewDefaultDataType, LocalizedKey, OneLevelBindingObject, OrderByModel, RoutingType, ValueExpressionType } from '../common/CommonTypes';
1
+ import { ButtonGroupItemComponentModel, DataExpressionType, FunctionExpressionType, GroupByFeatureModel, ListPageAddNewDefaultDataType, LocalizedKey, OneLevelBindingObject, OnlineDataQuery, OrderByModel, RoutingType, ValueExpressionType } from '../common/CommonTypes';
2
2
  import { BaseListPageViewComponentModel } from '../view/ListPageViewComponentModel';
3
3
  import { BaseComponentModel } from '../common/BaseComponentModel';
4
4
  import { BaseFlatPageViewComponentModel } from '../view/FlatPageViewComponentModel';
@@ -22,6 +22,12 @@ export type UIDefinition = {
22
22
  events?: {
23
23
  onDataInitialized?: FunctionExpressionType;
24
24
  };
25
+ /**
26
+ * @version 1.10.0
27
+ */
28
+ settings?: {
29
+ fullOnlineMode: boolean;
30
+ };
25
31
  };
26
32
  export interface BasePageComponentModel extends BaseComponentModel {
27
33
  /**
@@ -32,7 +38,7 @@ export interface BasePageComponentModel extends BaseComponentModel {
32
38
  /**
33
39
  * @label Page data expression
34
40
  */
35
- pageDataExpression?: DataExpressionType;
41
+ pageDataExpression?: DataExpressionType | AdvancedPageDataExpression;
36
42
  /**
37
43
  * @label Wipe existing data
38
44
  */
@@ -46,6 +52,67 @@ export interface BasePageComponentModel extends BaseComponentModel {
46
52
  onPreDataSave?: FunctionExpressionType;
47
53
  onPreDataLoad?: FunctionExpressionType;
48
54
  };
55
+ /**
56
+ * @version: 1.10.0
57
+ */
58
+ dataObserver: DataObserverObject[];
59
+ }
60
+ /**
61
+ * @version: 1.10.0
62
+ */
63
+ export interface DataObserverObject {
64
+ dataExpression: DataExpressionType[];
65
+ request: DataObserverObjectRequestType;
66
+ }
67
+ /**
68
+ * @version: 1.10.0
69
+ */
70
+ type DataObserverObjectRequestType = OnlineDataObserverObjectHandler | LocalDataObserverObjectHandler;
71
+ /**
72
+ * @version: 1.10.0
73
+ */
74
+ export interface BaseDataObserverObjectRequest {
75
+ handler: FunctionExpressionType;
76
+ type: 'online' | 'local';
77
+ }
78
+ /**
79
+ * @version: 1.10.0
80
+ */
81
+ export interface OnlineDataObserverObjectHandler extends BaseDataObserverObjectRequest {
82
+ query: OnlineDataQuery;
83
+ type: 'online';
84
+ }
85
+ /**
86
+ * @version: 1.10.0
87
+ */
88
+ export interface LocalDataObserverObjectHandler extends BaseDataObserverObjectRequest {
89
+ type: 'local';
90
+ }
91
+ export interface AdvancedPageDataExpression {
92
+ requests: (BaseAdvancedPageDataExpressionRequestType)[];
93
+ }
94
+ export type BaseAdvancedPageDataExpressionRequestType = LocalAdvancedPageDataExpressionRequest | OnlineAdvancedPageDataExpressionRequest;
95
+ /**
96
+ * @version 1.10.0
97
+ */
98
+ export interface BaseAdvancedPageDataExpressionRequest {
99
+ type: 'local' | 'online';
100
+ target: DataExpressionType;
101
+ condition?: ValueExpressionType;
102
+ }
103
+ /**
104
+ * @version 1.10.0
105
+ */
106
+ export interface LocalAdvancedPageDataExpressionRequest extends BaseAdvancedPageDataExpressionRequest {
107
+ type: 'local';
108
+ expression: DataExpressionType;
109
+ }
110
+ /**
111
+ * @version 1.10.0
112
+ */
113
+ export interface OnlineAdvancedPageDataExpressionRequest extends BaseAdvancedPageDataExpressionRequest {
114
+ type: 'online';
115
+ query: OnlineDataQuery;
49
116
  }
50
117
  export type DefaultPageData = {
51
118
  /**
@@ -120,8 +187,9 @@ export interface ListPageComponentModel extends BasePageComponentModel {
120
187
  buttonGroup?: ButtonGroupViewComponentModel;
121
188
  /**
122
189
  * @label Data Source
190
+ * @description Define only when using offline mode
123
191
  */
124
- sourceExpression: DataExpressionType;
192
+ sourceExpression?: DataExpressionType;
125
193
  /**
126
194
  * @label Enable Search
127
195
  */
@@ -150,6 +218,28 @@ export interface ListPageComponentModel extends BasePageComponentModel {
150
218
  * @label Order by
151
219
  */
152
220
  orderBy?: OrderByModel;
221
+ /**
222
+ * @label Online mode definition
223
+ * @version 1.10.0
224
+ */
225
+ onlineMode?: ListPageOnlineModeModel;
226
+ }
227
+ /**
228
+ * @version 1.10.0
229
+ */
230
+ export interface ListPageOnlineModeModel {
231
+ /**
232
+ * @label List query to get list
233
+ */
234
+ list: OnlineDataQuery;
235
+ /**
236
+ * @label Item query to get an item
237
+ */
238
+ item: OnlineDataQuery;
239
+ /**
240
+ * @label Reload requests when user pull to refresh
241
+ */
242
+ reloadRequests?: ReloadRequest[];
153
243
  }
154
244
  export interface ListPageSearchComponentModel {
155
245
  /**
@@ -220,6 +310,10 @@ export interface FlatPageComponentModel extends BasePageComponentModel {
220
310
  */
221
311
  noBtn?: LocalizedKey;
222
312
  };
313
+ /**
314
+ * @version 1.10.0
315
+ */
316
+ onlineMode?: CrudRequestOnlineMode;
223
317
  };
224
318
  /**
225
319
  * @label Add Upsert page
@@ -234,6 +328,10 @@ export interface FlatPageComponentModel extends BasePageComponentModel {
234
328
  * @label Read Only condition
235
329
  */
236
330
  readonly?: DataExpressionType | boolean;
331
+ /**
332
+ * @version 1.10.0
333
+ */
334
+ onlineMode?: CrudRequestOnlineMode;
237
335
  };
238
336
  /**
239
337
  * @label Items
@@ -253,6 +351,20 @@ export interface FlatPageComponentModel extends BasePageComponentModel {
253
351
  mode?: FlatPageMode;
254
352
  stepDef?: FlatPageStepModeDefModel;
255
353
  }
354
+ /**
355
+ * @version 1.10.0
356
+ */
357
+ export type CrudRequestOnlineMode = {
358
+ query: OnlineDataQuery;
359
+ reloadRequests: ReloadRequest[];
360
+ };
361
+ /**
362
+ * @version 1.10.0
363
+ */
364
+ export type ReloadRequest = {
365
+ key: string;
366
+ args: OneLevelBindingObject;
367
+ };
256
368
  export type FlatPageStepModeDefModel = {
257
369
  stepValue: DataExpressionType;
258
370
  autoSubmit?: DataExpressionType | boolean;
@@ -283,6 +395,10 @@ export type FlatPageMode = 'single' | 'steps';
283
395
  export interface BasePageHeaderModel {
284
396
  title?: LocalizedKey;
285
397
  description?: LocalizedKey;
398
+ /**
399
+ * @version: 1.10.0
400
+ */
401
+ messageAlert?: MessageAlertModel;
286
402
  }
287
403
  export interface ListPageHeaderModel extends BasePageHeaderModel {
288
404
  buttonGroup?: ButtonGroupViewComponentModel;
@@ -290,5 +406,16 @@ export interface ListPageHeaderModel extends BasePageHeaderModel {
290
406
  export interface FlatPageHeaderModel extends BasePageHeaderModel {
291
407
  tags?: TagModel;
292
408
  }
409
+ /**
410
+ * @version: 1.10.0
411
+ */
412
+ export interface MessageAlertModel {
413
+ text: LocalizedKey;
414
+ showIfExpression?: ValueExpressionType;
415
+ /**
416
+ * @values: 'Warning' | 'Danger' | 'Default'
417
+ */
418
+ theme: ValueExpressionType;
419
+ }
293
420
  export type AllPageComponentModel = ListPageComponentModel | FlatPageComponentModel;
294
421
  export {};
@@ -9,6 +9,13 @@ export interface BaseFlatPageViewComponentModel extends BaseComponentModel {
9
9
  */
10
10
  showIfExpression?: DataExpressionType;
11
11
  }
12
+ /**
13
+ * @area Components
14
+ * @value textView
15
+ * @description Content for users to read
16
+ * @label Text view
17
+ * @fieldOrders ['title', 'text', 'showIfExpression']
18
+ */
12
19
  export interface TextViewComponentModel extends BaseFlatPageViewComponentModel {
13
20
  title?: LocalizedKey;
14
21
  text: LocalizedKey;
@@ -59,7 +66,7 @@ export interface CommonEditorWithPlaceholder {
59
66
  * @value textEditor
60
67
  * @description Enable users to input data from mobile app
61
68
  * @label Text input
62
- * @fieldOrders ['title', 'keyboardType', 'placeholder', 'mandatory', 'multiline']
69
+ * @fieldOrders ['title', 'keyboardType', 'placeholder', 'mandatory', 'multiline', 'showIfExpression']
63
70
  */
64
71
  export interface TextEditorViewComponentModel extends CommonEditorViewComponentModel, CommonEditorWithPlaceholder {
65
72
  /**
@@ -104,7 +111,7 @@ export interface TextEditorFeaturesModel {
104
111
  * @value readonlyTextView
105
112
  * @description Content for users to read
106
113
  * @label Read-only label
107
- * @fieldOrders ['title', 'text']
114
+ * @fieldOrders ['title', 'text', 'showIfExpression']
108
115
  */
109
116
  export interface ReadonlyTextViewComponentModel extends CommonEditorViewComponentModel, CommonEditorWithPlaceholder {
110
117
  /**
@@ -167,7 +174,7 @@ export interface SubListEditorViewComponentModel extends CommonEditorViewCompone
167
174
  * @value attachmentsEditor
168
175
  * @description Add a file or photo from a mobile device
169
176
  * @label Attachment
170
- * @fieldOrders ['title', 'mandatory']
177
+ * @fieldOrders ['title', 'mandatory', 'showIfExpression']
171
178
  */
172
179
  export interface AttachmentsEditorViewComponentModel extends CommonEditorViewComponentModel {
173
180
  /**
@@ -203,7 +210,7 @@ export interface BodyMapViewComponentModel extends CommonEditorViewComponentMode
203
210
  * @value signatureEditor
204
211
  * @description Capture a signature on a mobile device
205
212
  * @label Signature
206
- * @fieldOrders ['title', 'enableFullName']
213
+ * @fieldOrders ['title', 'enableFullName', 'showIfExpression']
207
214
  */
208
215
  export interface SignatureEditorViewComponentModel extends CommonEditorViewComponentModel {
209
216
  /**
@@ -231,7 +238,7 @@ export interface SignatureEditorViewComponentModel extends CommonEditorViewCompo
231
238
  * @value toggleEditor
232
239
  * @description Switch between two opposing states
233
240
  * @label Toggle
234
- * @fieldOrders []
241
+ * @fieldOrders ['showIfExpression']
235
242
  */
236
243
  export interface ToggleEditorViewComponentModel extends CommonEditorViewComponentModel {
237
244
  /**
@@ -276,7 +283,7 @@ export interface ToggleEditorItemModel {
276
283
  * @value dateTimeEditor
277
284
  * @description Allow selecting date and time
278
285
  * @label Date & time
279
- * @fieldOrders ['title', 'placeholder' ,'mandatory']
286
+ * @fieldOrders ['title', 'placeholder' ,'mandatory', 'showIfExpression']
280
287
  */
281
288
  export interface DateTimePickerViewComponentModel extends CommonEditorViewComponentModel, CommonEditorWithPlaceholder {
282
289
  /**
@@ -364,6 +371,9 @@ export interface MenuListItem extends BaseFlatPageViewComponentModel {
364
371
  * @label Badge Text
365
372
  */
366
373
  badgeText: LocalizedKey;
374
+ /**
375
+ * @label Icon
376
+ */
367
377
  icon?: IconName;
368
378
  }
369
379
  export interface BaseSelectEditor {
@@ -441,7 +451,7 @@ export interface BaseSelectEditor {
441
451
  * @value selectEditor
442
452
  * @description Select a single item from a list
443
453
  * @label Drop down
444
- * @fieldOrders ['title', 'placeholder', 'mandatory', 'options']
454
+ * @fieldOrders ['title', 'placeholder', 'mandatory', 'options', 'showIfExpression']
445
455
  */
446
456
  export interface SelectEditorViewComponentModel extends CommonEditorViewComponentModel, CommonEditorWithPlaceholder, BaseSelectEditor {
447
457
  /**
@@ -465,7 +475,7 @@ export interface SelectEditorViewComponentModel extends CommonEditorViewComponen
465
475
  * @value multiSelectEditor
466
476
  * @description Select one or more items from a list
467
477
  * @label Multi-select drop down
468
- * @fieldOrders ['title', 'placeholder', 'mandatory', 'options']
478
+ * @fieldOrders ['title', 'placeholder', 'mandatory', 'options', 'showIfExpression']
469
479
  */
470
480
  export interface MultiSelectEditorViewComponentModel extends CommonEditorViewComponentModel, CommonEditorWithPlaceholder, BaseSelectEditor {
471
481
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skedulo/mex-types",
3
- "version": "1.15.3",
3
+ "version": "1.16.0",
4
4
  "engines": {
5
5
  "node": "18"
6
6
  },