@xuda.io/runtime-bundle 1.0.480 → 1.0.481

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.
@@ -28256,15 +28256,6 @@ func.UI.update_xu_ref = function (SESSION_ID, dsSessionP, ref_field_id, $elm) {
28256
28256
  SYS_GLOBAL_OBJ_REFS[ref_field_id].props = _ds.in_parameters || {};
28257
28257
 
28258
28258
  if ($elm) {
28259
- // const get_attributes = function (retry = 0) {
28260
- // if (retry > 500) return;
28261
- // $elm?.data()?.xuPanelWrapper?.panelXuAttributes ||
28262
- // $elm?.data()?.xuData?.debug_info?.attribute_stat ||
28263
- // setTimeout(() => {
28264
- // get_attributes(retry + 1);
28265
- // }, 500);
28266
- // };
28267
-
28268
28259
  const attributes = $elm?.data()?.xuData?.xuPanelProps || $elm?.data()?.xuData?.debug_info?.attribute_stat || {};
28269
28260
  SYS_GLOBAL_OBJ_REFS[ref_field_id].attributes = attributes;
28270
28261
  SYS_GLOBAL_OBJ_REFS[ref_field_id].xu_ui_id = $elm.attr('xu-ui-id');
@@ -28413,7 +28404,7 @@ func.datasource.create = async function (
28413
28404
  }
28414
28405
  }
28415
28406
 
28416
- var datasource_changes = {
28407
+ const datasource_changes = {
28417
28408
  [dsSessionP]: {
28418
28409
  ['datasource_main']: {
28419
28410
  stat: 'idle',
@@ -31925,31 +31916,32 @@ func.UI.screen.refresh_screen_old = async function (SESSION_ID, fields_changed_a
31925
31916
  }
31926
31917
  };
31927
31918
 
31928
- const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
31929
- const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
31930
- if (!_prog) {
31931
- return;
31932
- }
31919
+ // const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
31920
+ // const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
31921
+ // if (!_prog) {
31922
+ // return;
31923
+ // }
31924
+
31925
+ // // get in parameters
31926
+ // var params_obj = {};
31927
+ // if (_prog?.properties?.progParams) {
31928
+ // for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
31929
+ // if (!val.data.dir === 'in') continue;
31930
+ // if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
31931
+ // if (parameters_obj_inP?.[val.data.parameter].fx) {
31932
+ // let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
31933
+ // params_obj[val.data.parameter] = ret.result;
31934
+ // } else {
31935
+ // params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
31936
+ // }
31937
+ // continue;
31938
+ // }
31939
+ // console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
31940
+ // }
31941
+ // }
31942
+ // return params_obj;
31943
+ // };
31933
31944
 
31934
- // get in parameters
31935
- var params_obj = {};
31936
- if (_prog?.properties?.progParams) {
31937
- for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
31938
- if (!val.data.dir === 'in') continue;
31939
- if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
31940
- if (parameters_obj_inP?.[val.data.parameter].fx) {
31941
- let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
31942
- params_obj[val.data.parameter] = ret.result;
31943
- } else {
31944
- params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
31945
- }
31946
- continue;
31947
- }
31948
- console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
31949
- }
31950
- }
31951
- return params_obj;
31952
- };
31953
31945
  const get_params_obj_new = async function (SESSION_ID, prog_id, nodeP, dsSession) {
31954
31946
  const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
31955
31947
  if (!_prog) return;
@@ -35256,99 +35248,157 @@ func.expression.get = async function (SESSION_ID, valP, dsSessionP, sourceP, row
35256
35248
  return new_class.get();
35257
35249
  };
35258
35250
 
35251
+ // func.expression.parse = function (strP) {
35252
+ // var extract_str = function (strP, posP) {
35253
+ // if (!posP) posP = 0;
35254
+ // var clean_split_str = function (arrP) {
35255
+ // var arr = [];
35256
+ // if (arrP && arrP.length > 1 && arrP[0] === '' && arrP[1].indexOf('@') > -1) {
35257
+ // for (var i = 1; i <= arrP.length; i++) {
35258
+ // arr.push(arrP[i]);
35259
+ // }
35260
+ // return arr;
35261
+ // } else return arrP;
35262
+ // };
35263
+ // var nonLettersPatt = /\W/; // non letters
35264
+ // var validSymbolsNoArray = /[^.@\[]/; //valid symbols no array /[^.@\[\]\]]/
35265
+ // var validSymbolsWithArray = /[^.@"'\[\]]/; //valid symbols with array
35266
+ // var validSymbols = validSymbolsNoArray;
35267
+ // var splitTmp = strP.replace(/@/g, '^^@').split('^^');
35268
+ // var split = clean_split_str(splitTmp);
35269
+ // var obj = [];
35270
+ // if (split) {
35271
+ // for (let val of split) {
35272
+ // // run on @ segments
35273
+ // if (val) {
35274
+ // var pos = strP.indexOf(val);
35275
+ // if (val && val.substr(0, 1) === '@') {
35276
+ // var tmpStr = '';
35277
+ // var word_start_pos = undefined;
35278
+ // var word_end_pos = undefined;
35279
+ // // run on @ segment string
35280
+ // for (var i = 0; i <= val.length; i++) {
35281
+ // var key1 = i;
35282
+ // var val1 = val.substr(i, 1);
35283
+ // if (
35284
+ // val1 === '.' &&
35285
+ // !word_start_pos // find first dot
35286
+ // )
35287
+ // word_start_pos = key1;
35288
+ // if (
35289
+ // word_start_pos &&
35290
+ // key1 > word_start_pos &&
35291
+ // nonLettersPatt.test(val1) // find any sign character to mark the end of word
35292
+ // )
35293
+ // word_end_pos = key1;
35294
+ // if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
35295
+ // // find the word
35296
+ // var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
35297
+ // // if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
35298
+ // // compare with internal properties
35299
+ // tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
35300
+ // // }
35301
+ // if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
35302
+ // else word_start_pos = null;
35303
+ // word_end_pos = null;
35304
+ // }
35305
+ // if (val1 === '[') validSymbols = validSymbolsWithArray;
35306
+ // if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
35307
+ // tmpStr += '^^' + val1;
35308
+ // } else tmpStr += val1;
35309
+ // }
35310
+ // // });
35311
+ // if (tmpStr.indexOf('^^') > -1) {
35312
+ // var obj1 = extract_str(tmpStr, pos);
35313
+ // obj = obj.concat(obj1);
35314
+ // } else {
35315
+ // // push clean @var
35316
+ // var fieldId = undefined;
35317
+ // if (val) {
35318
+ // fieldId = val.substr(1, val.length);
35319
+ // if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
35320
+ // if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
35321
+ // //
35322
+ // // if (val.indexOf("]") > -1)
35323
+ // // fieldId = val.substr(1, val.indexOf("]") - 1);
35324
+ // }
35325
+ // obj.push({
35326
+ // value: val,
35327
+ // fieldId: fieldId,
35328
+ // pos: pos + posP,
35329
+ // });
35330
+ // }
35331
+ // } else {
35332
+ // obj.push({
35333
+ // value: val,
35334
+ // pos: pos + posP,
35335
+ // });
35336
+ // }
35337
+ // }
35338
+ // }
35339
+ // return obj;
35340
+ // }
35341
+ // };
35342
+ // var res = extract_str(strP);
35343
+ // return res;
35344
+ // };
35345
+
35259
35346
  func.expression.parse = function (strP) {
35260
- var extract_str = function (strP, posP) {
35261
- if (!posP) posP = 0;
35262
- var clean_split_str = function (arrP) {
35263
- var arr = [];
35264
- if (arrP && arrP.length > 1 && arrP[0] === '' && arrP[1].indexOf('@') > -1) {
35265
- for (var i = 1; i <= arrP.length; i++) {
35266
- arr.push(arrP[i]);
35267
- }
35268
- return arr;
35269
- } else return arrP;
35270
- };
35271
- var nonLettersPatt = /\W/; // non letters
35272
- var validSymbolsNoArray = /[^.@\[]/; //valid symbols no array /[^.@\[\]\]]/
35273
- var validSymbolsWithArray = /[^.@"'\[\]]/; //valid symbols with array
35274
- var validSymbols = validSymbolsNoArray;
35275
- var splitTmp = strP.replace(/@/g, '^^@').split('^^');
35276
- var split = clean_split_str(splitTmp);
35277
- var obj = [];
35278
- if (split) {
35279
- for (let val of split) {
35280
- // run on @ segments
35281
- if (val) {
35282
- var pos = strP.indexOf(val);
35283
- if (val && val.substr(0, 1) === '@') {
35284
- var tmpStr = '';
35285
- var word_start_pos = undefined;
35286
- var word_end_pos = undefined;
35287
- // run on @ segment string
35288
- for (var i = 0; i <= val.length; i++) {
35289
- var key1 = i;
35290
- var val1 = val.substr(i, 1);
35291
- if (
35292
- val1 === '.' &&
35293
- !word_start_pos // find first dot
35294
- )
35295
- word_start_pos = key1;
35296
- if (
35297
- word_start_pos &&
35298
- key1 > word_start_pos &&
35299
- nonLettersPatt.test(val1) // find any sign character to mark the end of word
35300
- )
35301
- word_end_pos = key1;
35302
- if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
35303
- // find the word
35304
- var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
35305
- // if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
35306
- // compare with internal properties
35307
- tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
35308
- // }
35309
- if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
35310
- else word_start_pos = null;
35311
- word_end_pos = null;
35312
- }
35313
- if (val1 === '[') validSymbols = validSymbolsWithArray;
35314
- if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
35315
- tmpStr += '^^' + val1;
35316
- } else tmpStr += val1;
35317
- }
35318
- // });
35319
- if (tmpStr.indexOf('^^') > -1) {
35320
- var obj1 = extract_str(tmpStr, pos);
35321
- obj = obj.concat(obj1);
35322
- } else {
35323
- // push clean @var
35324
- var fieldId = undefined;
35325
- if (val) {
35326
- fieldId = val.substr(1, val.length);
35327
- if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
35328
- if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
35329
- //
35330
- // if (val.indexOf("]") > -1)
35331
- // fieldId = val.substr(1, val.indexOf("]") - 1);
35332
- }
35333
- obj.push({
35334
- value: val,
35335
- fieldId: fieldId,
35336
- pos: pos + posP,
35337
- });
35338
- }
35339
- } else {
35340
- obj.push({
35341
- value: val,
35342
- pos: pos + posP,
35343
- });
35347
+ const nonLettersPatt = /\W/;
35348
+ const validSymbolsNoArray = /[^.@\[]/;
35349
+ const validSymbolsWithArray = /[^.@"'\[\]]/;
35350
+
35351
+ function extractStr(str, startPos = 0) {
35352
+ const cleanSplit = (arr) => (arr?.length > 1 && arr[0] === '' && arr[1].includes('@') ? arr.slice(1) : arr);
35353
+
35354
+ const segments = cleanSplit(str.replace(/@/g, '^^@').split('^^'));
35355
+ const result = [];
35356
+
35357
+ for (const val of segments || []) {
35358
+ if (!val) continue;
35359
+ const pos = str.indexOf(val) + startPos;
35360
+
35361
+ if (val.startsWith('@')) {
35362
+ let tmpStr = '';
35363
+ let wordStart = null;
35364
+ let wordEnd = null;
35365
+ let validSymbols = validSymbolsNoArray;
35366
+
35367
+ for (let i = 0; i < val.length; i++) {
35368
+ const char = val[i];
35369
+
35370
+ if (char === '[') validSymbols = validSymbolsWithArray;
35371
+ if (char === '.' && wordStart === null) wordStart = i;
35372
+ else if (wordStart !== null && nonLettersPatt.test(char)) wordEnd = i;
35373
+
35374
+ if (wordStart !== null && wordEnd !== null) {
35375
+ const word = val.slice(wordStart + 1, wordEnd);
35376
+ tmpStr = tmpStr.slice(0, wordStart) + '^^' + tmpStr.slice(wordStart, wordEnd);
35377
+ wordStart = char === '.' ? wordEnd : null;
35378
+ wordEnd = null;
35344
35379
  }
35380
+
35381
+ tmpStr += nonLettersPatt.test(char) && validSymbols.test(char) && !tmpStr.includes('^^') ? '^^' + char : char;
35345
35382
  }
35383
+
35384
+ if (tmpStr.includes('^^')) {
35385
+ result.push(...extractStr(tmpStr, pos));
35386
+ } else {
35387
+ const fieldIdMatch = val.match(/^@([^.\[]+)/);
35388
+ result.push({
35389
+ value: val,
35390
+ fieldId: fieldIdMatch ? fieldIdMatch[1] : undefined,
35391
+ pos,
35392
+ });
35393
+ }
35394
+ } else {
35395
+ result.push({ value: val, pos });
35346
35396
  }
35347
- return obj;
35348
35397
  }
35349
- };
35350
- var res = extract_str(strP);
35351
- return res;
35398
+ return result;
35399
+ }
35400
+
35401
+ return extractStr(strP);
35352
35402
  };
35353
35403
 
35354
35404
  func.expression.get_property = async function (valP) {