@wavemaker/react-codegen 11.14.2-rc.6311 → 12.0.0-next.28533

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 (100) hide show
  1. package/build-react-web.js +0 -19
  2. package/build-react-web.js.map +1 -1
  3. package/package-lock.json +151 -144
  4. package/package.json +2 -2
  5. package/src/app.generator.js +176 -18
  6. package/src/app.generator.js.map +1 -1
  7. package/src/gen-app-override-css.js +1 -1
  8. package/src/gen-app-override-css.js.map +1 -1
  9. package/src/handlebar-helpers.js +116 -19
  10. package/src/handlebar-helpers.js.map +1 -1
  11. package/src/project.service.js +47 -5
  12. package/src/project.service.js.map +1 -1
  13. package/src/transpile/bind.ex.transformer.js +11 -1
  14. package/src/transpile/bind.ex.transformer.js.map +1 -1
  15. package/src/transpile/components/basic/richtexteditor.transformer.js +3 -2
  16. package/src/transpile/components/basic/richtexteditor.transformer.js.map +1 -1
  17. package/src/transpile/components/basic/search.transformer.js +4 -6
  18. package/src/transpile/components/basic/search.transformer.js.map +1 -1
  19. package/src/transpile/components/container/tabpane.transformer.js +1 -1
  20. package/src/transpile/components/container/tabpane.transformer.js.map +1 -1
  21. package/src/transpile/components/container/tabs.transformer.js +4 -0
  22. package/src/transpile/components/container/tabs.transformer.js.map +1 -1
  23. package/src/transpile/components/data/card/card-content.transformer.js +5 -1
  24. package/src/transpile/components/data/card/card-content.transformer.js.map +1 -1
  25. package/src/transpile/components/data/form/form-action.transformer.js +73 -18
  26. package/src/transpile/components/data/form/form-action.transformer.js.map +1 -1
  27. package/src/transpile/components/data/form/form-field.transformer.js +46 -11
  28. package/src/transpile/components/data/form/form-field.transformer.js.map +1 -1
  29. package/src/transpile/components/data/form/form.transformer.js +53 -17
  30. package/src/transpile/components/data/form/form.transformer.js.map +1 -1
  31. package/src/transpile/components/data/list/list-transformer.js +64 -33
  32. package/src/transpile/components/data/list/list-transformer.js.map +1 -1
  33. package/src/transpile/components/data/live-filter-field.transformer.js +65 -10
  34. package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -1
  35. package/src/transpile/components/data/liveform.transformer.js +11 -4
  36. package/src/transpile/components/data/liveform.transformer.js.map +1 -1
  37. package/src/transpile/components/data/table/table-action.transformer.js +6 -2
  38. package/src/transpile/components/data/table/table-action.transformer.js.map +1 -1
  39. package/src/transpile/components/data/table/table-column.transformer.js +95 -20
  40. package/src/transpile/components/data/table/table-column.transformer.js.map +1 -1
  41. package/src/transpile/components/data/table/table-group.transformer.js +16 -0
  42. package/src/transpile/components/data/table/table-group.transformer.js.map +1 -0
  43. package/src/transpile/components/data/table/table-row-action.transformer.js +6 -2
  44. package/src/transpile/components/data/table/table-row-action.transformer.js.map +1 -1
  45. package/src/transpile/components/data/table/table-row.transformer.js +7 -4
  46. package/src/transpile/components/data/table/table-row.transformer.js.map +1 -1
  47. package/src/transpile/components/data/table/table.transformer.js +29 -1
  48. package/src/transpile/components/data/table/table.transformer.js.map +1 -1
  49. package/src/transpile/components/data/table/utils.js +3 -1
  50. package/src/transpile/components/data/table/utils.js.map +1 -1
  51. package/src/transpile/components/form/button.transformer.js +12 -1
  52. package/src/transpile/components/form/button.transformer.js.map +1 -1
  53. package/src/transpile/components/input/checkbox-set.transformer.js +1 -1
  54. package/src/transpile/components/input/checkbox-set.transformer.js.map +1 -1
  55. package/src/transpile/components/input/chips.transformer.js +2 -1
  56. package/src/transpile/components/input/chips.transformer.js.map +1 -1
  57. package/src/transpile/components/input/color-picker.transformer.js +2 -1
  58. package/src/transpile/components/input/color-picker.transformer.js.map +1 -1
  59. package/src/transpile/components/input/rating.transformer.js +1 -1
  60. package/src/transpile/components/input/rating.transformer.js.map +1 -1
  61. package/src/transpile/components/input/select.transformer.js +1 -1
  62. package/src/transpile/components/input/select.transformer.js.map +1 -1
  63. package/src/transpile/components/input/text.transformer.js +3 -1
  64. package/src/transpile/components/input/text.transformer.js.map +1 -1
  65. package/src/transpile/components/input/upload.transformer.js +19 -0
  66. package/src/transpile/components/input/upload.transformer.js.map +1 -0
  67. package/src/transpile/components/nav/navbar.transformer.js +84 -0
  68. package/src/transpile/components/nav/navbar.transformer.js.map +1 -1
  69. package/src/transpile/components/navigation/popover.transformer.js +1 -1
  70. package/src/transpile/components/navigation/popover.transformer.js.map +1 -1
  71. package/src/transpile/components/page/partial-container.transformer.js +15 -6
  72. package/src/transpile/components/page/partial-container.transformer.js.map +1 -1
  73. package/src/transpile/components/prefab/prefab.transformer.js +23 -2
  74. package/src/transpile/components/prefab/prefab.transformer.js.map +1 -1
  75. package/src/transpile/components/transform-register.js +4 -0
  76. package/src/transpile/components/transform-register.js.map +1 -1
  77. package/src/transpile/components/utils.js +176 -15
  78. package/src/transpile/components/utils.js.map +1 -1
  79. package/src/transpile/property/property-parser.js +12 -0
  80. package/src/transpile/property/property-parser.js.map +1 -1
  81. package/src/transpile/style.transformer.js +7 -1
  82. package/src/transpile/style.transformer.js.map +1 -1
  83. package/src/transpile/transpile.js +370 -25
  84. package/src/transpile/transpile.js.map +1 -1
  85. package/src/utils.js +343 -36
  86. package/src/utils.js.map +1 -1
  87. package/src/utils.test.js +703 -0
  88. package/src/utils.test.js.map +1 -0
  89. package/src/variables/variable.transformer.js +302 -135
  90. package/src/variables/variable.transformer.js.map +1 -1
  91. package/templates/component/app.template.hbs +1 -0
  92. package/templates/component/component.hbs +12 -1
  93. package/templates/component/partial.hbs +8 -0
  94. package/templates/project/.env +1 -1
  95. package/templates/project/app/components.css +16 -15
  96. package/templates/project/app/globals.css +39 -0
  97. package/templates/project/app/loading.tsx +1 -1
  98. package/templates/project/package.json +8 -8
  99. package/templates/variables.template +21 -2
  100. package/templates/project/.npmrc +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/utils.test.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ function transformDataItem(d, scope) {
17
17
  const arrayIndexMatch = v.match(/\[(\$i|\d+)\]/);
18
18
  if (arrayIndexMatch) {
19
19
  // Extract the index (convert $i to 0 for now, or use the number)
20
- arrayIndex = arrayIndexMatch[1] === '$i' ? 0 : parseInt(arrayIndexMatch[1], 10);
20
+ arrayIndex = arrayIndexMatch[1] === "$i" ? 0 : parseInt(arrayIndexMatch[1], 10);
21
21
  }
22
22
  // Remove trailing semicolons and trim whitespace from binding expressions
23
23
  v = (v || "").trim().replace(/;+\s*$/, "");
@@ -28,7 +28,7 @@ function transformDataItem(d, scope) {
28
28
  const transformed = (0, bind_ex_transformer_1.default)(v, scope, "attr").replace(/\\n/g, "");
29
29
  // If the expression starts with '{', it's an object literal and needs to be wrapped in ()
30
30
  // to distinguish it from a block statement in arrow functions
31
- if (transformed.trim().startsWith('{')) {
31
+ if (transformed.trim().startsWith("{")) {
32
32
  v = `${scope}.eval(() => (${transformed}))`;
33
33
  }
34
34
  else {
@@ -69,6 +69,7 @@ function checkEmptyObject(obj) {
69
69
  return isVariableEmpty;
70
70
  }
71
71
  function transformVariable(variable, scope) {
72
+ var _a;
72
73
  let params = {}, filters = {};
73
74
  if (variable.category !== "wm.DeviceVariable") {
74
75
  if ((0, lodash_1.isArray)(variable.dataSet)) {
@@ -91,151 +92,281 @@ function transformVariable(variable, scope) {
91
92
  }
92
93
  }
93
94
  if (variable.dataBinding) {
94
- // First pass: collect all bindings and identify conflicts
95
- const bindings = [];
96
- const parentKeys = new Set(); // Keys that have direct bindings
97
- const nestedKeys = new Map(); // Parent -> array of nested bindings
98
- variable.dataBinding.forEach((d) => {
99
- // Capture the original bind value BEFORE transformation
100
- const originalValue = d.value && d.value.startsWith && d.value.startsWith("bind:") ? d.value.substr(5) : d.value;
101
- const { name, value, arrayIndex } = transformDataItem(d, scope);
102
- bindings.push({ name, value, arrayIndex, originalValue });
103
- const parts = name.split('.');
104
- if (parts.length === 1) {
105
- // Direct binding for a key
106
- parentKeys.add(name);
107
- }
108
- else {
109
- // Nested binding
110
- const parentKey = parts[0];
111
- if (!nestedKeys.has(parentKey)) {
112
- nestedKeys.set(parentKey, []);
113
- }
114
- nestedKeys.get(parentKey).push({ name, value, arrayIndex, originalValue });
115
- }
116
- });
117
- // Helper to check if nested bindings involve arrays
118
- const hasArrayBindings = (key) => {
119
- const nested = nestedKeys.get(key);
120
- if (!nested)
121
- return false;
122
- // Check if any nested binding has an array index
123
- return nested.some(n => n.arrayIndex !== null);
124
- };
125
- // Helper to check if nested bindings are complex (deep nesting > 2 levels)
126
- const hasComplexNesting = (key) => {
127
- const nested = nestedKeys.get(key);
128
- if (!nested)
129
- return false;
130
- // Check if any nested path has more than 2 levels (e.g., RequestBody.serviceQualificationItem.resource)
131
- return nested.some(n => n.name.split('.').length > 2);
132
- };
133
- // Helper to group array bindings by their array path
134
- const groupArrayBindings = (key) => {
135
- const nested = nestedKeys.get(key) || [];
136
- const arrayGroups = new Map();
137
- // First, identify which paths have array bindings (have [$i] in their values)
138
- const arrayPaths = new Set();
139
- nested.forEach(n => {
140
- if (n.arrayIndex !== null) {
141
- const parts = n.name.split('.');
142
- if (parts.length >= 3) {
143
- const arrayPath = `${parts[0]}.${parts[1]}`;
144
- arrayPaths.add(arrayPath);
95
+ if (Array.isArray(variable.dataBinding)) {
96
+ // First pass: collect all bindings and identify conflicts
97
+ const bindings = [];
98
+ const parentKeys = new Set(); // Keys that have direct bindings
99
+ const nestedKeys = new Map(); // Parent -> array of nested bindings
100
+ (_a = variable.dataBinding) === null || _a === void 0 ? void 0 : _a.forEach((d) => {
101
+ // Capture the original bind value BEFORE transformation
102
+ const originalValue = d.value && d.value.startsWith && d.value.startsWith("bind:")
103
+ ? d.value.substr(5)
104
+ : d.value;
105
+ const { name, value, arrayIndex } = transformDataItem(d, scope);
106
+ let finalValue = value;
107
+ if (variable.dataSet &&
108
+ !(0, lodash_1.isArray)(variable.dataSet) &&
109
+ variable.dataSet.hasOwnProperty(name)) {
110
+ const defaultValue = (0, lodash_1.get)(variable.dataSet, name);
111
+ // Only add fallback if:
112
+ // 1. The binding is an expression (not a static value)
113
+ // 2. There's a default value (including empty strings and arrays)
114
+ if (d.value && d.value.startsWith && d.value.startsWith("bind:")) {
115
+ // Format default value appropriately
116
+ let formattedDefault;
117
+ if (typeof defaultValue === "string") {
118
+ formattedDefault = `"${defaultValue}"`;
119
+ }
120
+ else if ((0, lodash_1.isArray)(defaultValue)) {
121
+ formattedDefault = JSON.stringify(defaultValue);
122
+ }
123
+ else if ((0, lodash_1.isObject)(defaultValue)) {
124
+ formattedDefault = JSON.stringify(defaultValue);
125
+ }
126
+ else if (defaultValue === null) {
127
+ formattedDefault = "null";
128
+ }
129
+ else if (defaultValue === undefined) {
130
+ formattedDefault = "undefined";
131
+ }
132
+ else {
133
+ formattedDefault = String(defaultValue);
134
+ }
135
+ // Append fallback: value || defaultValue
136
+ finalValue = `${value} || ${formattedDefault}`;
145
137
  }
146
138
  }
147
- });
148
- // Now group ALL bindings that go through these array paths
149
- nested.forEach(n => {
150
- const parts = n.name.split('.');
151
- if (parts.length >= 3) {
152
- // Check if this path goes through any identified array path
153
- const potentialArrayPath = `${parts[0]}.${parts[1]}`;
154
- // Include if: either has arrayIndex OR goes through an array path
155
- if (n.arrayIndex !== null || arrayPaths.has(potentialArrayPath)) {
156
- if (!arrayGroups.has(potentialArrayPath)) {
157
- arrayGroups.set(potentialArrayPath, []);
158
- }
159
- // Remaining path after the array (e.g., resource.id from RequestBody.serviceQualificationItem.resource.id)
160
- const remainingPath = parts.slice(2).join('.');
161
- arrayGroups.get(potentialArrayPath).push({ path: remainingPath, value: n.value, originalValue: n.originalValue });
139
+ bindings.push({ name, value: finalValue, arrayIndex, originalValue });
140
+ const parts = name.split(".");
141
+ if (parts.length === 1) {
142
+ // Direct binding for a key
143
+ parentKeys.add(name);
144
+ }
145
+ else {
146
+ // Nested binding
147
+ const parentKey = parts[0];
148
+ if (!nestedKeys.has(parentKey)) {
149
+ nestedKeys.set(parentKey, []);
162
150
  }
151
+ nestedKeys.get(parentKey).push({ name, value, arrayIndex, originalValue });
163
152
  }
164
153
  });
165
- return arrayGroups;
166
- };
167
- // Helper to generate map expression for array bindings
168
- const generateMapExpression = (arrayPath, items, parentValue) => {
169
- // Build the nested object structure for map
170
- const structure = {};
171
- items.forEach(item => {
172
- (0, lodash_1.set)(structure, item.path, { __isOverride: true, value: item.value, originalValue: item.originalValue });
173
- });
174
- // Generate map expression
175
- const arrayPathParts = arrayPath.split('.');
176
- const arraySourcePath = arrayPathParts.join('.');
177
- return `__MAP__${arraySourcePath}__STRUCTURE__${JSON.stringify(structure)}__PARENT__${parentValue}__ENDMAP__`;
178
- };
179
- // Second pass: process bindings based on conflicts
180
- bindings.forEach(({ name, value, arrayIndex, originalValue }) => {
181
- const parts = name.split('.');
182
- if (parts.length === 1) {
183
- // This is a direct binding
184
- const hasNestedBindings = nestedKeys.has(name);
185
- if (hasNestedBindings && !hasComplexNesting(name) && !hasArrayBindings(name)) {
186
- // Simple case: There are nested bindings but they're not deep and no arrays
187
- // We can safely merge with spread operator
188
- // Example: RequestBody -> RequestBody.state
189
- const parentValue = value;
190
- (0, lodash_1.set)(params, name, { '__base__': parentValue });
191
- // Set nested properties
192
- nestedKeys.get(name).forEach(nested => {
193
- (0, lodash_1.set)(params, nested.name, nested.value);
194
- });
195
- }
196
- else if (hasNestedBindings && (hasComplexNesting(name) || hasArrayBindings(name))) {
197
- // Complex case with arrays - use map expression
198
- const parentObj = { '__base__': value };
199
- // Group array bindings and create map expressions
200
- const arrayGroups = groupArrayBindings(name);
201
- arrayGroups.forEach((items, arrayPath) => {
202
- const mapExpr = generateMapExpression(arrayPath, items, value);
203
- // Extract the array property name (last part of the path)
204
- const arrayProp = arrayPath.split('.').pop();
205
- if (arrayProp) {
206
- // Store map marker directly in parent object, not using set()
207
- parentObj[arrayProp] = mapExpr;
154
+ // Helper to check if nested bindings involve arrays
155
+ const hasArrayBindings = (key) => {
156
+ const nested = nestedKeys.get(key);
157
+ if (!nested)
158
+ return false;
159
+ // Check if any nested binding has an array index
160
+ return nested.some(n => n.arrayIndex !== null);
161
+ };
162
+ // Helper to check if nested bindings are complex (deep nesting > 2 levels)
163
+ const hasComplexNesting = (key) => {
164
+ const nested = nestedKeys.get(key);
165
+ if (!nested)
166
+ return false;
167
+ // Check if any nested path has more than 2 levels (e.g., RequestBody.serviceQualificationItem.resource)
168
+ return nested.some(n => n.name.split(".").length > 2);
169
+ };
170
+ // Helper to group array bindings by their array path
171
+ const groupArrayBindings = (key) => {
172
+ const nested = nestedKeys.get(key) || [];
173
+ const arrayGroups = new Map();
174
+ // First, identify which paths have array bindings (have [$i] in their values)
175
+ const arrayPaths = new Set();
176
+ nested.forEach(n => {
177
+ if (n.arrayIndex !== null) {
178
+ const parts = n.name.split(".");
179
+ if (parts.length >= 3) {
180
+ const arrayPath = `${parts[0]}.${parts[1]}`;
181
+ arrayPaths.add(arrayPath);
208
182
  }
209
- });
210
- // Handle non-array nested bindings (like @type at parent level)
211
- nestedKeys.get(name).forEach(nested => {
212
- if (nested.arrayIndex === null) {
213
- // Extract the direct property name (second part of path like RequestBody.@type -> @type)
214
- const nestedParts = nested.name.split('.');
215
- if (nestedParts.length === 2 && nestedParts[0] === name) {
216
- parentObj[nestedParts[1]] = nested.value;
183
+ }
184
+ });
185
+ // Now group ALL bindings that go through these array paths
186
+ nested.forEach(n => {
187
+ const parts = n.name.split(".");
188
+ if (parts.length >= 3) {
189
+ // Check if this path goes through any identified array path
190
+ const potentialArrayPath = `${parts[0]}.${parts[1]}`;
191
+ // Include if: either has arrayIndex OR goes through an array path
192
+ if (n.arrayIndex !== null || arrayPaths.has(potentialArrayPath)) {
193
+ if (!arrayGroups.has(potentialArrayPath)) {
194
+ arrayGroups.set(potentialArrayPath, []);
217
195
  }
196
+ // Remaining path after the array (e.g., resource.id from RequestBody.serviceQualificationItem.resource.id)
197
+ const remainingPath = parts.slice(2).join(".");
198
+ arrayGroups
199
+ .get(potentialArrayPath)
200
+ .push({ path: remainingPath, value: n.value, originalValue: n.originalValue });
218
201
  }
202
+ }
203
+ });
204
+ return arrayGroups;
205
+ };
206
+ // Helper to generate map expression for array bindings
207
+ const generateMapExpression = (arrayPath, items, parentValue) => {
208
+ // Build the nested object structure for map
209
+ const structure = {};
210
+ items.forEach(item => {
211
+ (0, lodash_1.set)(structure, item.path, {
212
+ __isOverride: true,
213
+ value: item.value,
214
+ originalValue: item.originalValue,
219
215
  });
220
- // Set the parent object with all properties
221
- (0, lodash_1.set)(params, name, parentObj);
216
+ });
217
+ // Generate map expression
218
+ const arrayPathParts = arrayPath.split(".");
219
+ const arraySourcePath = arrayPathParts.join(".");
220
+ return `__MAP__${arraySourcePath}__STRUCTURE__${JSON.stringify(structure)}__PARENT__${parentValue}__ENDMAP__`;
221
+ };
222
+ // Second pass: process bindings based on conflicts
223
+ bindings.forEach(({ name, value, arrayIndex, originalValue }) => {
224
+ const parts = name.split(".");
225
+ if (parts.length === 1) {
226
+ // This is a direct binding
227
+ const hasNestedBindings = nestedKeys.has(name);
228
+ if (hasNestedBindings && !hasComplexNesting(name) && !hasArrayBindings(name)) {
229
+ // Simple case: There are nested bindings but they're not deep and no arrays
230
+ // We can safely merge with spread operator
231
+ // Example: RequestBody -> RequestBody.state
232
+ const parentValue = value;
233
+ (0, lodash_1.set)(params, name, { __base__: parentValue });
234
+ // Set nested properties
235
+ nestedKeys.get(name).forEach(nested => {
236
+ (0, lodash_1.set)(params, nested.name, nested.value);
237
+ });
238
+ }
239
+ else if (hasNestedBindings && (hasComplexNesting(name) || hasArrayBindings(name))) {
240
+ // Complex case with arrays - use map expression
241
+ const parentObj = { __base__: value };
242
+ // Group array bindings and create map expressions
243
+ const arrayGroups = groupArrayBindings(name);
244
+ arrayGroups.forEach((items, arrayPath) => {
245
+ const mapExpr = generateMapExpression(arrayPath, items, value);
246
+ // Extract the array property name (last part of the path)
247
+ const arrayProp = arrayPath.split(".").pop();
248
+ if (arrayProp) {
249
+ // Store map marker directly in parent object, not using set()
250
+ parentObj[arrayProp] = mapExpr;
251
+ }
252
+ });
253
+ // Handle non-array nested bindings (like @type at parent level)
254
+ nestedKeys.get(name).forEach(nested => {
255
+ if (nested.arrayIndex === null) {
256
+ // Extract the direct property name (second part of path like RequestBody.@type -> @type)
257
+ const nestedParts = nested.name.split(".");
258
+ if (nestedParts.length === 2 && nestedParts[0] === name) {
259
+ parentObj[nestedParts[1]] = nested.value;
260
+ }
261
+ }
262
+ });
263
+ // Set the parent object with all properties
264
+ (0, lodash_1.set)(params, name, parentObj);
265
+ }
266
+ else {
267
+ // No conflicts, just set the value
268
+ (0, lodash_1.set)(params, name, value);
269
+ }
222
270
  }
223
271
  else {
224
- // No conflicts, just set the value
225
- (0, lodash_1.set)(params, name, value);
272
+ // This is a nested binding - already handled in parent block for array cases
273
+ const parentKey = parts[0];
274
+ if (!parentKeys.has(parentKey)) {
275
+ // No parent binding, set normally
276
+ (0, lodash_1.set)(params, name, value);
277
+ }
226
278
  }
279
+ });
280
+ if (params.dataBinding) {
281
+ params = params.dataBinding;
227
282
  }
228
- else {
229
- // This is a nested binding - already handled in parent block for array cases
230
- const parentKey = parts[0];
231
- if (!parentKeys.has(parentKey)) {
232
- // No parent binding, set normally
233
- (0, lodash_1.set)(params, name, value);
283
+ }
284
+ else if (variable.category === "wm.CrudVariable" &&
285
+ (0, lodash_1.isObject)(variable.dataBinding) &&
286
+ !(0, lodash_1.isArray)(variable.dataBinding)) {
287
+ // Transform dataBinding object for CrudVariable
288
+ // Input: { list: [...], create: [...], update: [...], delete: [...] }
289
+ // Output: dataBinding: () => ({ list: [...], create: [...], update: [...], delete: [...] })
290
+ // Helper function to format value for JavaScript object literal
291
+ const formatValue = (value) => {
292
+ if (value === null) {
293
+ return "null";
294
+ }
295
+ if (value === undefined) {
296
+ return "undefined";
297
+ }
298
+ if (typeof value === "string") {
299
+ // If it's already a transformed expression (contains .eval), return as-is without quotes
300
+ if (value.includes(".eval(")) {
301
+ return value;
302
+ }
303
+ // Otherwise, quote it as a string
304
+ return JSON.stringify(value);
305
+ }
306
+ if (typeof value === "number" || typeof value === "boolean") {
307
+ return String(value);
308
+ }
309
+ return JSON.stringify(value);
310
+ };
311
+ // Build array of binding objects
312
+ const buildBindingArray = (bindings) => {
313
+ return bindings
314
+ .map((binding) => {
315
+ const transformed = transformDataItem(binding, scope);
316
+ const props = [];
317
+ // Always include target
318
+ props.push(`"target" : ${JSON.stringify(binding.target)}`);
319
+ // Format value - use transformed value if it's an expression, otherwise use original
320
+ let finalValue;
321
+ if (transformed.value !== undefined && transformed.value !== null) {
322
+ // If transformed value is a template literal (wrapped in backticks), extract the inner value
323
+ if (typeof transformed.value === "string" &&
324
+ transformed.value.startsWith("`") &&
325
+ transformed.value.endsWith("`")) {
326
+ finalValue = transformed.value.slice(1, -1);
327
+ }
328
+ else if (typeof transformed.value === "string" &&
329
+ transformed.value.includes(".eval(")) {
330
+ // It's a transformed expression, use as-is
331
+ finalValue = transformed.value;
332
+ }
333
+ else {
334
+ // Use transformed value, but check if we should preserve original type
335
+ finalValue = transformed.value;
336
+ }
337
+ }
338
+ else {
339
+ finalValue = binding.value || "";
340
+ }
341
+ props.push(`"value" : ${formatValue(finalValue)}`);
342
+ // Always include type
343
+ props.push(`"type" : ${JSON.stringify(binding.type)}`);
344
+ // Include isList if it exists
345
+ if (binding.hasOwnProperty("isList")) {
346
+ props.push(`"isList" : ${binding.isList}`);
347
+ }
348
+ return `{\n ${props.join(`,\n `)}\n }`;
349
+ })
350
+ .join(" , ");
351
+ };
352
+ // Build the object string
353
+ const objectParts = [];
354
+ Object.keys(variable.dataBinding).forEach((operationKey) => {
355
+ const operationBindings = variable.dataBinding[operationKey];
356
+ if ((0, lodash_1.isArray)(operationBindings)) {
357
+ objectParts.push(`"${operationKey}" : [ ${buildBindingArray(operationBindings)} ]`);
234
358
  }
359
+ else {
360
+ objectParts.push(`"${operationKey}" : ${formatValue(operationBindings)}`);
361
+ }
362
+ });
363
+ // Store transformed dataBinding on variable object for use in transformCrudVariable
364
+ // Don't add it to params so it doesn't end up in paramProvider
365
+ variable._transformedDataBinding = `() => ({\n ${objectParts.join(`,\n `)}\n })`;
366
+ // Remove dataBinding from params if it exists to prevent it from going into paramProvider
367
+ if (params.dataBinding) {
368
+ delete params.dataBinding;
235
369
  }
236
- });
237
- if (params.dataBinding) {
238
- params = params.dataBinding;
239
370
  }
240
371
  }
241
372
  const filterProvider = (rules) => {
@@ -302,6 +433,9 @@ function transformModelVariable(variable, scope) {
302
433
  checkEmptyObject(variable.dataSet[0])) {
303
434
  variable.dataSet = [];
304
435
  }
436
+ if (variable.dataBinding) {
437
+ delete variable.dataBinding;
438
+ }
305
439
  const tv = transformVariable(variable, scope);
306
440
  tv.classname = "ModelVariable";
307
441
  tv.twoWayBinding = variable.twoWayBinding;
@@ -322,6 +456,7 @@ function transformServiceVariable(variable, scope) {
322
456
  tv.serviceType = variable.serviceType;
323
457
  tv.controller = variable.controller;
324
458
  tv.autoUpdate = variable.autoUpdate;
459
+ tv.orderBy = variable.orderBy;
325
460
  return tv;
326
461
  }
327
462
  function transformNavigationAction(variable, scope) {
@@ -351,9 +486,11 @@ function transformNotificationAction(variable, scope, imports) {
351
486
  tv.classname = "NotificationAction";
352
487
  tv.group = "action";
353
488
  tv.operation = variable.operation;
354
- const partialContent = variable.dataBinding.filter((binding) => {
355
- return binding.target === "page";
356
- })[0];
489
+ const partialContent = Array.isArray(variable.dataBinding)
490
+ ? variable.dataBinding.filter((binding) => {
491
+ return binding.target === "page";
492
+ })[0]
493
+ : null;
357
494
  if (variable.onOk || variable.onClick) {
358
495
  tv.onOk = appendIfNotEmpty((0, bind_ex_transformer_1.default)(variable.onOk || variable.onClick, scope, "event"), ";");
359
496
  }
@@ -431,6 +568,34 @@ function transformLiveVariable(variable, scope) {
431
568
  tv._id = variable._id;
432
569
  return tv;
433
570
  }
571
+ function transformCrudVariable(variable, scope) {
572
+ const tv = transformVariable(variable, scope);
573
+ tv._id = variable._id;
574
+ tv.name = variable.name;
575
+ tv.owner = variable.owner;
576
+ tv.category = variable.category;
577
+ tv.type = variable.type;
578
+ tv.service = variable.service;
579
+ tv.operation = variable.operation;
580
+ tv.operationId = variable.operationId;
581
+ tv.crudOperationId = variable.crudOperationId;
582
+ tv.operationType = variable.operationType;
583
+ tv.serviceType = variable.serviceType;
584
+ tv.dataSet = variable.dataSet;
585
+ tv.isList = variable.isList;
586
+ tv.maxResults = variable.maxResults;
587
+ tv.startUpdate = variable.startUpdate;
588
+ tv.autoUpdate = variable.autoUpdate;
589
+ tv.inFlightBehavior = variable.inFlightBehavior;
590
+ tv.transformationRequired = variable.transformationRequired;
591
+ tv.saveInPhonegap = variable.saveInPhonegap;
592
+ tv.controller = variable.controller;
593
+ // Use transformed dataBinding if available, otherwise use original
594
+ tv.dataBinding = variable._transformedDataBinding || variable.dataBinding;
595
+ tv.classname = "CrudVariable";
596
+ tv.group = "variable";
597
+ return tv;
598
+ }
434
599
  exports.default = (variable, scope, appUrl, imports) => {
435
600
  switch (variable.category) {
436
601
  case "wm.Variable":
@@ -451,6 +616,8 @@ exports.default = (variable, scope, appUrl, imports) => {
451
616
  return transformLogoutVariable(variable, scope);
452
617
  case "wm.LiveVariable":
453
618
  return transformLiveVariable(variable, scope);
619
+ case "wm.CrudVariable":
620
+ return transformCrudVariable(variable, scope);
454
621
  }
455
622
  return null;
456
623
  };