@skedulo/mex-types 1.15.4 → 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 {};
@@ -371,6 +371,9 @@ export interface MenuListItem extends BaseFlatPageViewComponentModel {
371
371
  * @label Badge Text
372
372
  */
373
373
  badgeText: LocalizedKey;
374
+ /**
375
+ * @label Icon
376
+ */
374
377
  icon?: IconName;
375
378
  }
376
379
  export interface BaseSelectEditor {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skedulo/mex-types",
3
- "version": "1.15.4",
3
+ "version": "1.16.0",
4
4
  "engines": {
5
5
  "node": "18"
6
6
  },