@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.
- package/js/xuda-runtime-bundle.js +172 -122
- package/js/xuda-runtime-bundle.min.js +1 -1
- package/js/xuda-runtime-slim.js +172 -122
- package/js/xuda-runtime-slim.min.es.js +172 -122
- package/js/xuda-runtime-slim.min.js +2 -2
- package/js/xuda-server-bundle.min.mjs +2 -2
- package/js/xuda-server-bundle.mjs +147 -89
- package/js/xuda-worker-bundle.js +147 -89
- package/js/xuda-worker-bundle.min.js +2 -2
- package/package.json +1 -1
package/js/xuda-runtime-slim.js
CHANGED
|
@@ -3320,7 +3320,7 @@ func.datasource.create = async function (
|
|
|
3320
3320
|
}
|
|
3321
3321
|
}
|
|
3322
3322
|
|
|
3323
|
-
|
|
3323
|
+
const datasource_changes = {
|
|
3324
3324
|
[dsSessionP]: {
|
|
3325
3325
|
['datasource_main']: {
|
|
3326
3326
|
stat: 'idle',
|
|
@@ -9097,15 +9097,6 @@ func.UI.update_xu_ref = function (SESSION_ID, dsSessionP, ref_field_id, $elm) {
|
|
|
9097
9097
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].props = _ds.in_parameters || {};
|
|
9098
9098
|
|
|
9099
9099
|
if ($elm) {
|
|
9100
|
-
// const get_attributes = function (retry = 0) {
|
|
9101
|
-
// if (retry > 500) return;
|
|
9102
|
-
// $elm?.data()?.xuPanelWrapper?.panelXuAttributes ||
|
|
9103
|
-
// $elm?.data()?.xuData?.debug_info?.attribute_stat ||
|
|
9104
|
-
// setTimeout(() => {
|
|
9105
|
-
// get_attributes(retry + 1);
|
|
9106
|
-
// }, 500);
|
|
9107
|
-
// };
|
|
9108
|
-
|
|
9109
9100
|
const attributes = $elm?.data()?.xuData?.xuPanelProps || $elm?.data()?.xuData?.debug_info?.attribute_stat || {};
|
|
9110
9101
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].attributes = attributes;
|
|
9111
9102
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].xu_ui_id = $elm.attr('xu-ui-id');
|
|
@@ -10825,99 +10816,157 @@ func.expression.get = async function (SESSION_ID, valP, dsSessionP, sourceP, row
|
|
|
10825
10816
|
return new_class.get();
|
|
10826
10817
|
};
|
|
10827
10818
|
|
|
10819
|
+
// func.expression.parse = function (strP) {
|
|
10820
|
+
// var extract_str = function (strP, posP) {
|
|
10821
|
+
// if (!posP) posP = 0;
|
|
10822
|
+
// var clean_split_str = function (arrP) {
|
|
10823
|
+
// var arr = [];
|
|
10824
|
+
// if (arrP && arrP.length > 1 && arrP[0] === '' && arrP[1].indexOf('@') > -1) {
|
|
10825
|
+
// for (var i = 1; i <= arrP.length; i++) {
|
|
10826
|
+
// arr.push(arrP[i]);
|
|
10827
|
+
// }
|
|
10828
|
+
// return arr;
|
|
10829
|
+
// } else return arrP;
|
|
10830
|
+
// };
|
|
10831
|
+
// var nonLettersPatt = /\W/; // non letters
|
|
10832
|
+
// var validSymbolsNoArray = /[^.@\[]/; //valid symbols no array /[^.@\[\]\]]/
|
|
10833
|
+
// var validSymbolsWithArray = /[^.@"'\[\]]/; //valid symbols with array
|
|
10834
|
+
// var validSymbols = validSymbolsNoArray;
|
|
10835
|
+
// var splitTmp = strP.replace(/@/g, '^^@').split('^^');
|
|
10836
|
+
// var split = clean_split_str(splitTmp);
|
|
10837
|
+
// var obj = [];
|
|
10838
|
+
// if (split) {
|
|
10839
|
+
// for (let val of split) {
|
|
10840
|
+
// // run on @ segments
|
|
10841
|
+
// if (val) {
|
|
10842
|
+
// var pos = strP.indexOf(val);
|
|
10843
|
+
// if (val && val.substr(0, 1) === '@') {
|
|
10844
|
+
// var tmpStr = '';
|
|
10845
|
+
// var word_start_pos = undefined;
|
|
10846
|
+
// var word_end_pos = undefined;
|
|
10847
|
+
// // run on @ segment string
|
|
10848
|
+
// for (var i = 0; i <= val.length; i++) {
|
|
10849
|
+
// var key1 = i;
|
|
10850
|
+
// var val1 = val.substr(i, 1);
|
|
10851
|
+
// if (
|
|
10852
|
+
// val1 === '.' &&
|
|
10853
|
+
// !word_start_pos // find first dot
|
|
10854
|
+
// )
|
|
10855
|
+
// word_start_pos = key1;
|
|
10856
|
+
// if (
|
|
10857
|
+
// word_start_pos &&
|
|
10858
|
+
// key1 > word_start_pos &&
|
|
10859
|
+
// nonLettersPatt.test(val1) // find any sign character to mark the end of word
|
|
10860
|
+
// )
|
|
10861
|
+
// word_end_pos = key1;
|
|
10862
|
+
// if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
|
|
10863
|
+
// // find the word
|
|
10864
|
+
// var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
|
|
10865
|
+
// // if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
|
|
10866
|
+
// // compare with internal properties
|
|
10867
|
+
// tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
|
|
10868
|
+
// // }
|
|
10869
|
+
// if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
|
|
10870
|
+
// else word_start_pos = null;
|
|
10871
|
+
// word_end_pos = null;
|
|
10872
|
+
// }
|
|
10873
|
+
// if (val1 === '[') validSymbols = validSymbolsWithArray;
|
|
10874
|
+
// if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
|
|
10875
|
+
// tmpStr += '^^' + val1;
|
|
10876
|
+
// } else tmpStr += val1;
|
|
10877
|
+
// }
|
|
10878
|
+
// // });
|
|
10879
|
+
// if (tmpStr.indexOf('^^') > -1) {
|
|
10880
|
+
// var obj1 = extract_str(tmpStr, pos);
|
|
10881
|
+
// obj = obj.concat(obj1);
|
|
10882
|
+
// } else {
|
|
10883
|
+
// // push clean @var
|
|
10884
|
+
// var fieldId = undefined;
|
|
10885
|
+
// if (val) {
|
|
10886
|
+
// fieldId = val.substr(1, val.length);
|
|
10887
|
+
// if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
|
|
10888
|
+
// if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
|
|
10889
|
+
// //
|
|
10890
|
+
// // if (val.indexOf("]") > -1)
|
|
10891
|
+
// // fieldId = val.substr(1, val.indexOf("]") - 1);
|
|
10892
|
+
// }
|
|
10893
|
+
// obj.push({
|
|
10894
|
+
// value: val,
|
|
10895
|
+
// fieldId: fieldId,
|
|
10896
|
+
// pos: pos + posP,
|
|
10897
|
+
// });
|
|
10898
|
+
// }
|
|
10899
|
+
// } else {
|
|
10900
|
+
// obj.push({
|
|
10901
|
+
// value: val,
|
|
10902
|
+
// pos: pos + posP,
|
|
10903
|
+
// });
|
|
10904
|
+
// }
|
|
10905
|
+
// }
|
|
10906
|
+
// }
|
|
10907
|
+
// return obj;
|
|
10908
|
+
// }
|
|
10909
|
+
// };
|
|
10910
|
+
// var res = extract_str(strP);
|
|
10911
|
+
// return res;
|
|
10912
|
+
// };
|
|
10913
|
+
|
|
10828
10914
|
func.expression.parse = function (strP) {
|
|
10829
|
-
|
|
10830
|
-
|
|
10831
|
-
|
|
10832
|
-
|
|
10833
|
-
|
|
10834
|
-
|
|
10835
|
-
|
|
10836
|
-
|
|
10837
|
-
|
|
10838
|
-
|
|
10839
|
-
|
|
10840
|
-
|
|
10841
|
-
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
if (
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
|
|
10856
|
-
|
|
10857
|
-
|
|
10858
|
-
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
val1 === '.' &&
|
|
10862
|
-
!word_start_pos // find first dot
|
|
10863
|
-
)
|
|
10864
|
-
word_start_pos = key1;
|
|
10865
|
-
if (
|
|
10866
|
-
word_start_pos &&
|
|
10867
|
-
key1 > word_start_pos &&
|
|
10868
|
-
nonLettersPatt.test(val1) // find any sign character to mark the end of word
|
|
10869
|
-
)
|
|
10870
|
-
word_end_pos = key1;
|
|
10871
|
-
if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
|
|
10872
|
-
// find the word
|
|
10873
|
-
var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
|
|
10874
|
-
// if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
|
|
10875
|
-
// compare with internal properties
|
|
10876
|
-
tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
|
|
10877
|
-
// }
|
|
10878
|
-
if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
|
|
10879
|
-
else word_start_pos = null;
|
|
10880
|
-
word_end_pos = null;
|
|
10881
|
-
}
|
|
10882
|
-
if (val1 === '[') validSymbols = validSymbolsWithArray;
|
|
10883
|
-
if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
|
|
10884
|
-
tmpStr += '^^' + val1;
|
|
10885
|
-
} else tmpStr += val1;
|
|
10886
|
-
}
|
|
10887
|
-
// });
|
|
10888
|
-
if (tmpStr.indexOf('^^') > -1) {
|
|
10889
|
-
var obj1 = extract_str(tmpStr, pos);
|
|
10890
|
-
obj = obj.concat(obj1);
|
|
10891
|
-
} else {
|
|
10892
|
-
// push clean @var
|
|
10893
|
-
var fieldId = undefined;
|
|
10894
|
-
if (val) {
|
|
10895
|
-
fieldId = val.substr(1, val.length);
|
|
10896
|
-
if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
|
|
10897
|
-
if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
|
|
10898
|
-
//
|
|
10899
|
-
// if (val.indexOf("]") > -1)
|
|
10900
|
-
// fieldId = val.substr(1, val.indexOf("]") - 1);
|
|
10901
|
-
}
|
|
10902
|
-
obj.push({
|
|
10903
|
-
value: val,
|
|
10904
|
-
fieldId: fieldId,
|
|
10905
|
-
pos: pos + posP,
|
|
10906
|
-
});
|
|
10907
|
-
}
|
|
10908
|
-
} else {
|
|
10909
|
-
obj.push({
|
|
10910
|
-
value: val,
|
|
10911
|
-
pos: pos + posP,
|
|
10912
|
-
});
|
|
10915
|
+
const nonLettersPatt = /\W/;
|
|
10916
|
+
const validSymbolsNoArray = /[^.@\[]/;
|
|
10917
|
+
const validSymbolsWithArray = /[^.@"'\[\]]/;
|
|
10918
|
+
|
|
10919
|
+
function extractStr(str, startPos = 0) {
|
|
10920
|
+
const cleanSplit = (arr) => (arr?.length > 1 && arr[0] === '' && arr[1].includes('@') ? arr.slice(1) : arr);
|
|
10921
|
+
|
|
10922
|
+
const segments = cleanSplit(str.replace(/@/g, '^^@').split('^^'));
|
|
10923
|
+
const result = [];
|
|
10924
|
+
|
|
10925
|
+
for (const val of segments || []) {
|
|
10926
|
+
if (!val) continue;
|
|
10927
|
+
const pos = str.indexOf(val) + startPos;
|
|
10928
|
+
|
|
10929
|
+
if (val.startsWith('@')) {
|
|
10930
|
+
let tmpStr = '';
|
|
10931
|
+
let wordStart = null;
|
|
10932
|
+
let wordEnd = null;
|
|
10933
|
+
let validSymbols = validSymbolsNoArray;
|
|
10934
|
+
|
|
10935
|
+
for (let i = 0; i < val.length; i++) {
|
|
10936
|
+
const char = val[i];
|
|
10937
|
+
|
|
10938
|
+
if (char === '[') validSymbols = validSymbolsWithArray;
|
|
10939
|
+
if (char === '.' && wordStart === null) wordStart = i;
|
|
10940
|
+
else if (wordStart !== null && nonLettersPatt.test(char)) wordEnd = i;
|
|
10941
|
+
|
|
10942
|
+
if (wordStart !== null && wordEnd !== null) {
|
|
10943
|
+
const word = val.slice(wordStart + 1, wordEnd);
|
|
10944
|
+
tmpStr = tmpStr.slice(0, wordStart) + '^^' + tmpStr.slice(wordStart, wordEnd);
|
|
10945
|
+
wordStart = char === '.' ? wordEnd : null;
|
|
10946
|
+
wordEnd = null;
|
|
10913
10947
|
}
|
|
10948
|
+
|
|
10949
|
+
tmpStr += nonLettersPatt.test(char) && validSymbols.test(char) && !tmpStr.includes('^^') ? '^^' + char : char;
|
|
10914
10950
|
}
|
|
10951
|
+
|
|
10952
|
+
if (tmpStr.includes('^^')) {
|
|
10953
|
+
result.push(...extractStr(tmpStr, pos));
|
|
10954
|
+
} else {
|
|
10955
|
+
const fieldIdMatch = val.match(/^@([^.\[]+)/);
|
|
10956
|
+
result.push({
|
|
10957
|
+
value: val,
|
|
10958
|
+
fieldId: fieldIdMatch ? fieldIdMatch[1] : undefined,
|
|
10959
|
+
pos,
|
|
10960
|
+
});
|
|
10961
|
+
}
|
|
10962
|
+
} else {
|
|
10963
|
+
result.push({ value: val, pos });
|
|
10915
10964
|
}
|
|
10916
|
-
return obj;
|
|
10917
10965
|
}
|
|
10918
|
-
|
|
10919
|
-
|
|
10920
|
-
|
|
10966
|
+
return result;
|
|
10967
|
+
}
|
|
10968
|
+
|
|
10969
|
+
return extractStr(strP);
|
|
10921
10970
|
};
|
|
10922
10971
|
|
|
10923
10972
|
func.expression.get_property = async function (valP) {
|
|
@@ -11893,31 +11942,32 @@ func.UI.screen.refresh_screen_old = async function (SESSION_ID, fields_changed_a
|
|
|
11893
11942
|
}
|
|
11894
11943
|
};
|
|
11895
11944
|
|
|
11896
|
-
const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11900
|
-
|
|
11945
|
+
// const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
|
|
11946
|
+
// const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
|
|
11947
|
+
// if (!_prog) {
|
|
11948
|
+
// return;
|
|
11949
|
+
// }
|
|
11950
|
+
|
|
11951
|
+
// // get in parameters
|
|
11952
|
+
// var params_obj = {};
|
|
11953
|
+
// if (_prog?.properties?.progParams) {
|
|
11954
|
+
// for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
|
|
11955
|
+
// if (!val.data.dir === 'in') continue;
|
|
11956
|
+
// if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
|
|
11957
|
+
// if (parameters_obj_inP?.[val.data.parameter].fx) {
|
|
11958
|
+
// let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
|
|
11959
|
+
// params_obj[val.data.parameter] = ret.result;
|
|
11960
|
+
// } else {
|
|
11961
|
+
// params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
|
|
11962
|
+
// }
|
|
11963
|
+
// continue;
|
|
11964
|
+
// }
|
|
11965
|
+
// console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
|
|
11966
|
+
// }
|
|
11967
|
+
// }
|
|
11968
|
+
// return params_obj;
|
|
11969
|
+
// };
|
|
11901
11970
|
|
|
11902
|
-
// get in parameters
|
|
11903
|
-
var params_obj = {};
|
|
11904
|
-
if (_prog?.properties?.progParams) {
|
|
11905
|
-
for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
|
|
11906
|
-
if (!val.data.dir === 'in') continue;
|
|
11907
|
-
if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
|
|
11908
|
-
if (parameters_obj_inP?.[val.data.parameter].fx) {
|
|
11909
|
-
let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
|
|
11910
|
-
params_obj[val.data.parameter] = ret.result;
|
|
11911
|
-
} else {
|
|
11912
|
-
params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
|
|
11913
|
-
}
|
|
11914
|
-
continue;
|
|
11915
|
-
}
|
|
11916
|
-
console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
|
|
11917
|
-
}
|
|
11918
|
-
}
|
|
11919
|
-
return params_obj;
|
|
11920
|
-
};
|
|
11921
11971
|
const get_params_obj_new = async function (SESSION_ID, prog_id, nodeP, dsSession) {
|
|
11922
11972
|
const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
|
|
11923
11973
|
if (!_prog) return;
|
|
@@ -3321,7 +3321,7 @@ func.datasource.create = async function (
|
|
|
3321
3321
|
}
|
|
3322
3322
|
}
|
|
3323
3323
|
|
|
3324
|
-
|
|
3324
|
+
const datasource_changes = {
|
|
3325
3325
|
[dsSessionP]: {
|
|
3326
3326
|
['datasource_main']: {
|
|
3327
3327
|
stat: 'idle',
|
|
@@ -9098,15 +9098,6 @@ func.UI.update_xu_ref = function (SESSION_ID, dsSessionP, ref_field_id, $elm) {
|
|
|
9098
9098
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].props = _ds.in_parameters || {};
|
|
9099
9099
|
|
|
9100
9100
|
if ($elm) {
|
|
9101
|
-
// const get_attributes = function (retry = 0) {
|
|
9102
|
-
// if (retry > 500) return;
|
|
9103
|
-
// $elm?.data()?.xuPanelWrapper?.panelXuAttributes ||
|
|
9104
|
-
// $elm?.data()?.xuData?.debug_info?.attribute_stat ||
|
|
9105
|
-
// setTimeout(() => {
|
|
9106
|
-
// get_attributes(retry + 1);
|
|
9107
|
-
// }, 500);
|
|
9108
|
-
// };
|
|
9109
|
-
|
|
9110
9101
|
const attributes = $elm?.data()?.xuData?.xuPanelProps || $elm?.data()?.xuData?.debug_info?.attribute_stat || {};
|
|
9111
9102
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].attributes = attributes;
|
|
9112
9103
|
SYS_GLOBAL_OBJ_REFS[ref_field_id].xu_ui_id = $elm.attr('xu-ui-id');
|
|
@@ -9966,31 +9957,32 @@ func.UI.screen.refresh_screen_old = async function (SESSION_ID, fields_changed_a
|
|
|
9966
9957
|
}
|
|
9967
9958
|
};
|
|
9968
9959
|
|
|
9969
|
-
const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
|
|
9970
|
-
|
|
9971
|
-
|
|
9972
|
-
|
|
9973
|
-
|
|
9960
|
+
// const get_params_obj = async function (SESSION_ID, prog_id, parameters_obj_inP) {
|
|
9961
|
+
// const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
|
|
9962
|
+
// if (!_prog) {
|
|
9963
|
+
// return;
|
|
9964
|
+
// }
|
|
9965
|
+
|
|
9966
|
+
// // get in parameters
|
|
9967
|
+
// var params_obj = {};
|
|
9968
|
+
// if (_prog?.properties?.progParams) {
|
|
9969
|
+
// for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
|
|
9970
|
+
// if (!val.data.dir === 'in') continue;
|
|
9971
|
+
// if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
|
|
9972
|
+
// if (parameters_obj_inP?.[val.data.parameter].fx) {
|
|
9973
|
+
// let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
|
|
9974
|
+
// params_obj[val.data.parameter] = ret.result;
|
|
9975
|
+
// } else {
|
|
9976
|
+
// params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
|
|
9977
|
+
// }
|
|
9978
|
+
// continue;
|
|
9979
|
+
// }
|
|
9980
|
+
// console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
|
|
9981
|
+
// }
|
|
9982
|
+
// }
|
|
9983
|
+
// return params_obj;
|
|
9984
|
+
// };
|
|
9974
9985
|
|
|
9975
|
-
// get in parameters
|
|
9976
|
-
var params_obj = {};
|
|
9977
|
-
if (_prog?.properties?.progParams) {
|
|
9978
|
-
for await (const [key, val] of Object.entries(_prog.properties.progParams)) {
|
|
9979
|
-
if (!val.data.dir === 'in') continue;
|
|
9980
|
-
if (typeof parameters_obj_inP?.[val.data.parameter] !== 'undefined') {
|
|
9981
|
-
if (parameters_obj_inP?.[val.data.parameter].fx) {
|
|
9982
|
-
let ret = await func.expression.get(SESSION_ID, parameters_obj_inP?.[val.data.parameter].fx, dsSession, 'parameters');
|
|
9983
|
-
params_obj[val.data.parameter] = ret.result;
|
|
9984
|
-
} else {
|
|
9985
|
-
params_obj[val.data.parameter] = parameters_obj_inP?.[val.data.parameter].value;
|
|
9986
|
-
}
|
|
9987
|
-
continue;
|
|
9988
|
-
}
|
|
9989
|
-
console.warn(`Warning: Program ${_prog.properties.menuName} expected In parameter: ${val.data.parameter} but received null instead`);
|
|
9990
|
-
}
|
|
9991
|
-
}
|
|
9992
|
-
return params_obj;
|
|
9993
|
-
};
|
|
9994
9986
|
const get_params_obj_new = async function (SESSION_ID, prog_id, nodeP, dsSession) {
|
|
9995
9987
|
const _prog = await func.utils.VIEWS_OBJ.get(SESSION_ID, prog_id);
|
|
9996
9988
|
if (!_prog) return;
|
|
@@ -14621,99 +14613,157 @@ func.expression.get = async function (SESSION_ID, valP, dsSessionP, sourceP, row
|
|
|
14621
14613
|
return new_class.get();
|
|
14622
14614
|
};
|
|
14623
14615
|
|
|
14616
|
+
// func.expression.parse = function (strP) {
|
|
14617
|
+
// var extract_str = function (strP, posP) {
|
|
14618
|
+
// if (!posP) posP = 0;
|
|
14619
|
+
// var clean_split_str = function (arrP) {
|
|
14620
|
+
// var arr = [];
|
|
14621
|
+
// if (arrP && arrP.length > 1 && arrP[0] === '' && arrP[1].indexOf('@') > -1) {
|
|
14622
|
+
// for (var i = 1; i <= arrP.length; i++) {
|
|
14623
|
+
// arr.push(arrP[i]);
|
|
14624
|
+
// }
|
|
14625
|
+
// return arr;
|
|
14626
|
+
// } else return arrP;
|
|
14627
|
+
// };
|
|
14628
|
+
// var nonLettersPatt = /\W/; // non letters
|
|
14629
|
+
// var validSymbolsNoArray = /[^.@\[]/; //valid symbols no array /[^.@\[\]\]]/
|
|
14630
|
+
// var validSymbolsWithArray = /[^.@"'\[\]]/; //valid symbols with array
|
|
14631
|
+
// var validSymbols = validSymbolsNoArray;
|
|
14632
|
+
// var splitTmp = strP.replace(/@/g, '^^@').split('^^');
|
|
14633
|
+
// var split = clean_split_str(splitTmp);
|
|
14634
|
+
// var obj = [];
|
|
14635
|
+
// if (split) {
|
|
14636
|
+
// for (let val of split) {
|
|
14637
|
+
// // run on @ segments
|
|
14638
|
+
// if (val) {
|
|
14639
|
+
// var pos = strP.indexOf(val);
|
|
14640
|
+
// if (val && val.substr(0, 1) === '@') {
|
|
14641
|
+
// var tmpStr = '';
|
|
14642
|
+
// var word_start_pos = undefined;
|
|
14643
|
+
// var word_end_pos = undefined;
|
|
14644
|
+
// // run on @ segment string
|
|
14645
|
+
// for (var i = 0; i <= val.length; i++) {
|
|
14646
|
+
// var key1 = i;
|
|
14647
|
+
// var val1 = val.substr(i, 1);
|
|
14648
|
+
// if (
|
|
14649
|
+
// val1 === '.' &&
|
|
14650
|
+
// !word_start_pos // find first dot
|
|
14651
|
+
// )
|
|
14652
|
+
// word_start_pos = key1;
|
|
14653
|
+
// if (
|
|
14654
|
+
// word_start_pos &&
|
|
14655
|
+
// key1 > word_start_pos &&
|
|
14656
|
+
// nonLettersPatt.test(val1) // find any sign character to mark the end of word
|
|
14657
|
+
// )
|
|
14658
|
+
// word_end_pos = key1;
|
|
14659
|
+
// if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
|
|
14660
|
+
// // find the word
|
|
14661
|
+
// var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
|
|
14662
|
+
// // if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
|
|
14663
|
+
// // compare with internal properties
|
|
14664
|
+
// tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
|
|
14665
|
+
// // }
|
|
14666
|
+
// if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
|
|
14667
|
+
// else word_start_pos = null;
|
|
14668
|
+
// word_end_pos = null;
|
|
14669
|
+
// }
|
|
14670
|
+
// if (val1 === '[') validSymbols = validSymbolsWithArray;
|
|
14671
|
+
// if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
|
|
14672
|
+
// tmpStr += '^^' + val1;
|
|
14673
|
+
// } else tmpStr += val1;
|
|
14674
|
+
// }
|
|
14675
|
+
// // });
|
|
14676
|
+
// if (tmpStr.indexOf('^^') > -1) {
|
|
14677
|
+
// var obj1 = extract_str(tmpStr, pos);
|
|
14678
|
+
// obj = obj.concat(obj1);
|
|
14679
|
+
// } else {
|
|
14680
|
+
// // push clean @var
|
|
14681
|
+
// var fieldId = undefined;
|
|
14682
|
+
// if (val) {
|
|
14683
|
+
// fieldId = val.substr(1, val.length);
|
|
14684
|
+
// if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
|
|
14685
|
+
// if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
|
|
14686
|
+
// //
|
|
14687
|
+
// // if (val.indexOf("]") > -1)
|
|
14688
|
+
// // fieldId = val.substr(1, val.indexOf("]") - 1);
|
|
14689
|
+
// }
|
|
14690
|
+
// obj.push({
|
|
14691
|
+
// value: val,
|
|
14692
|
+
// fieldId: fieldId,
|
|
14693
|
+
// pos: pos + posP,
|
|
14694
|
+
// });
|
|
14695
|
+
// }
|
|
14696
|
+
// } else {
|
|
14697
|
+
// obj.push({
|
|
14698
|
+
// value: val,
|
|
14699
|
+
// pos: pos + posP,
|
|
14700
|
+
// });
|
|
14701
|
+
// }
|
|
14702
|
+
// }
|
|
14703
|
+
// }
|
|
14704
|
+
// return obj;
|
|
14705
|
+
// }
|
|
14706
|
+
// };
|
|
14707
|
+
// var res = extract_str(strP);
|
|
14708
|
+
// return res;
|
|
14709
|
+
// };
|
|
14710
|
+
|
|
14624
14711
|
func.expression.parse = function (strP) {
|
|
14625
|
-
|
|
14626
|
-
|
|
14627
|
-
|
|
14628
|
-
|
|
14629
|
-
|
|
14630
|
-
|
|
14631
|
-
|
|
14632
|
-
|
|
14633
|
-
|
|
14634
|
-
|
|
14635
|
-
|
|
14636
|
-
|
|
14637
|
-
|
|
14638
|
-
|
|
14639
|
-
|
|
14640
|
-
|
|
14641
|
-
|
|
14642
|
-
|
|
14643
|
-
|
|
14644
|
-
|
|
14645
|
-
|
|
14646
|
-
|
|
14647
|
-
|
|
14648
|
-
if (
|
|
14649
|
-
|
|
14650
|
-
|
|
14651
|
-
|
|
14652
|
-
|
|
14653
|
-
|
|
14654
|
-
|
|
14655
|
-
|
|
14656
|
-
|
|
14657
|
-
val1 === '.' &&
|
|
14658
|
-
!word_start_pos // find first dot
|
|
14659
|
-
)
|
|
14660
|
-
word_start_pos = key1;
|
|
14661
|
-
if (
|
|
14662
|
-
word_start_pos &&
|
|
14663
|
-
key1 > word_start_pos &&
|
|
14664
|
-
nonLettersPatt.test(val1) // find any sign character to mark the end of word
|
|
14665
|
-
)
|
|
14666
|
-
word_end_pos = key1;
|
|
14667
|
-
if (word_start_pos && word_start_pos >= 0 && word_end_pos && word_end_pos >= 0) {
|
|
14668
|
-
// find the word
|
|
14669
|
-
var word = val.substr(word_start_pos + 1, word_end_pos - word_start_pos - 1); // get the word
|
|
14670
|
-
// if (glb.ALL_PROPERTIES_ARR.indexOf(word) === -1) {
|
|
14671
|
-
// compare with internal properties
|
|
14672
|
-
tmpStr = tmpStr.substr(0, word_start_pos) + '^^' + tmpStr.substr(word_start_pos, word_end_pos);
|
|
14673
|
-
// }
|
|
14674
|
-
if (val.substr(word_end_pos, 1) === '.') word_start_pos = word_end_pos;
|
|
14675
|
-
else word_start_pos = null;
|
|
14676
|
-
word_end_pos = null;
|
|
14677
|
-
}
|
|
14678
|
-
if (val1 === '[') validSymbols = validSymbolsWithArray;
|
|
14679
|
-
if (nonLettersPatt.test(val1) && validSymbols.test(val1) && tmpStr.indexOf('^^') === -1) {
|
|
14680
|
-
tmpStr += '^^' + val1;
|
|
14681
|
-
} else tmpStr += val1;
|
|
14682
|
-
}
|
|
14683
|
-
// });
|
|
14684
|
-
if (tmpStr.indexOf('^^') > -1) {
|
|
14685
|
-
var obj1 = extract_str(tmpStr, pos);
|
|
14686
|
-
obj = obj.concat(obj1);
|
|
14687
|
-
} else {
|
|
14688
|
-
// push clean @var
|
|
14689
|
-
var fieldId = undefined;
|
|
14690
|
-
if (val) {
|
|
14691
|
-
fieldId = val.substr(1, val.length);
|
|
14692
|
-
if (val.indexOf('.') > -1) fieldId = val.substr(1, val.indexOf('.') - 1);
|
|
14693
|
-
if (val.indexOf('[') > -1) fieldId = val.substr(1, val.indexOf('[') - 1);
|
|
14694
|
-
//
|
|
14695
|
-
// if (val.indexOf("]") > -1)
|
|
14696
|
-
// fieldId = val.substr(1, val.indexOf("]") - 1);
|
|
14697
|
-
}
|
|
14698
|
-
obj.push({
|
|
14699
|
-
value: val,
|
|
14700
|
-
fieldId: fieldId,
|
|
14701
|
-
pos: pos + posP,
|
|
14702
|
-
});
|
|
14703
|
-
}
|
|
14704
|
-
} else {
|
|
14705
|
-
obj.push({
|
|
14706
|
-
value: val,
|
|
14707
|
-
pos: pos + posP,
|
|
14708
|
-
});
|
|
14712
|
+
const nonLettersPatt = /\W/;
|
|
14713
|
+
const validSymbolsNoArray = /[^.@\[]/;
|
|
14714
|
+
const validSymbolsWithArray = /[^.@"'\[\]]/;
|
|
14715
|
+
|
|
14716
|
+
function extractStr(str, startPos = 0) {
|
|
14717
|
+
const cleanSplit = (arr) => (arr?.length > 1 && arr[0] === '' && arr[1].includes('@') ? arr.slice(1) : arr);
|
|
14718
|
+
|
|
14719
|
+
const segments = cleanSplit(str.replace(/@/g, '^^@').split('^^'));
|
|
14720
|
+
const result = [];
|
|
14721
|
+
|
|
14722
|
+
for (const val of segments || []) {
|
|
14723
|
+
if (!val) continue;
|
|
14724
|
+
const pos = str.indexOf(val) + startPos;
|
|
14725
|
+
|
|
14726
|
+
if (val.startsWith('@')) {
|
|
14727
|
+
let tmpStr = '';
|
|
14728
|
+
let wordStart = null;
|
|
14729
|
+
let wordEnd = null;
|
|
14730
|
+
let validSymbols = validSymbolsNoArray;
|
|
14731
|
+
|
|
14732
|
+
for (let i = 0; i < val.length; i++) {
|
|
14733
|
+
const char = val[i];
|
|
14734
|
+
|
|
14735
|
+
if (char === '[') validSymbols = validSymbolsWithArray;
|
|
14736
|
+
if (char === '.' && wordStart === null) wordStart = i;
|
|
14737
|
+
else if (wordStart !== null && nonLettersPatt.test(char)) wordEnd = i;
|
|
14738
|
+
|
|
14739
|
+
if (wordStart !== null && wordEnd !== null) {
|
|
14740
|
+
const word = val.slice(wordStart + 1, wordEnd);
|
|
14741
|
+
tmpStr = tmpStr.slice(0, wordStart) + '^^' + tmpStr.slice(wordStart, wordEnd);
|
|
14742
|
+
wordStart = char === '.' ? wordEnd : null;
|
|
14743
|
+
wordEnd = null;
|
|
14709
14744
|
}
|
|
14745
|
+
|
|
14746
|
+
tmpStr += nonLettersPatt.test(char) && validSymbols.test(char) && !tmpStr.includes('^^') ? '^^' + char : char;
|
|
14747
|
+
}
|
|
14748
|
+
|
|
14749
|
+
if (tmpStr.includes('^^')) {
|
|
14750
|
+
result.push(...extractStr(tmpStr, pos));
|
|
14751
|
+
} else {
|
|
14752
|
+
const fieldIdMatch = val.match(/^@([^.\[]+)/);
|
|
14753
|
+
result.push({
|
|
14754
|
+
value: val,
|
|
14755
|
+
fieldId: fieldIdMatch ? fieldIdMatch[1] : undefined,
|
|
14756
|
+
pos,
|
|
14757
|
+
});
|
|
14710
14758
|
}
|
|
14759
|
+
} else {
|
|
14760
|
+
result.push({ value: val, pos });
|
|
14711
14761
|
}
|
|
14712
|
-
return obj;
|
|
14713
14762
|
}
|
|
14714
|
-
|
|
14715
|
-
|
|
14716
|
-
|
|
14763
|
+
return result;
|
|
14764
|
+
}
|
|
14765
|
+
|
|
14766
|
+
return extractStr(strP);
|
|
14717
14767
|
};
|
|
14718
14768
|
|
|
14719
14769
|
func.expression.get_property = async function (valP) {
|