@xuda.io/runtime-bundle 1.0.1426 → 1.0.1427
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 +70 -53
- package/js/xuda-runtime-bundle.min.js +1 -1
- package/js/xuda-runtime-slim.js +70 -53
- package/js/xuda-runtime-slim.min.es.js +70 -53
- package/js/xuda-runtime-slim.min.js +1 -1
- package/js/xuda-server-bundle.min.mjs +1 -1
- package/js/xuda-server-bundle.mjs +70 -53
- package/js/xuda-worker-bundle.js +70 -53
- package/js/xuda-worker-bundle.min.js +1 -1
- package/package.json +1 -1
package/js/xuda-runtime-slim.js
CHANGED
|
@@ -5888,6 +5888,58 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5888
5888
|
var datasource_changed = [];
|
|
5889
5889
|
let client_datasource_changes = {};
|
|
5890
5890
|
let server_datasource_changes = {};
|
|
5891
|
+
const mark_field_changed = async function (dataSource, field_id) {
|
|
5892
|
+
if (!fields_changed.includes(field_id)) {
|
|
5893
|
+
fields_changed.push(field_id);
|
|
5894
|
+
|
|
5895
|
+
// Refresh dependent in-parameters that reference this field.
|
|
5896
|
+
for (const [_dsSession, _ds] of Object.entries(_session.DS_GLB)) {
|
|
5897
|
+
if (_ds.args.parameters_raw_obj) {
|
|
5898
|
+
for (const [key, exp] of Object.entries(_ds.args.parameters_raw_obj)) {
|
|
5899
|
+
if (exp.includes(field_id)) {
|
|
5900
|
+
let ret = await func.expression.get(SESSION_ID, exp, _dsSession, 'parameters');
|
|
5901
|
+
_ds.in_parameters[key].value = ret.result;
|
|
5902
|
+
}
|
|
5903
|
+
}
|
|
5904
|
+
}
|
|
5905
|
+
}
|
|
5906
|
+
}
|
|
5907
|
+
if (!datasource_changed.includes(dataSource)) {
|
|
5908
|
+
datasource_changed.push(dataSource);
|
|
5909
|
+
}
|
|
5910
|
+
};
|
|
5911
|
+
const queue_remote_change = async function (dataSource, record_id, field_id, value, _ds) {
|
|
5912
|
+
if (update_local_scope_only) {
|
|
5913
|
+
return;
|
|
5914
|
+
}
|
|
5915
|
+
|
|
5916
|
+
let tree_ret = await func.utils.TREE_OBJ.get(SESSION_ID, _ds.prog_id);
|
|
5917
|
+
if (glb.IS_WORKER) {
|
|
5918
|
+
if (tree_ret.menuType === 'globals' || tree_ret.menuType === 'component') {
|
|
5919
|
+
const _progFields = await func.datasource.get_progFields(SESSION_ID, dataSource);
|
|
5920
|
+
let view_field_obj = func.common.find_item_by_key(_progFields, 'field_id', field_id);
|
|
5921
|
+
if (!view_field_obj?.data?.serverField && record_id !== 'data_system') {
|
|
5922
|
+
if (!client_datasource_changes[dataSource]) {
|
|
5923
|
+
client_datasource_changes[dataSource] = {};
|
|
5924
|
+
}
|
|
5925
|
+
if (!client_datasource_changes[dataSource][record_id]) {
|
|
5926
|
+
client_datasource_changes[dataSource][record_id] = {};
|
|
5927
|
+
}
|
|
5928
|
+
client_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5929
|
+
}
|
|
5930
|
+
}
|
|
5931
|
+
} else {
|
|
5932
|
+
if ((tree_ret.menuType === 'component' && _ds._run_at !== 'client') || tree_ret.menuType === 'globals') {
|
|
5933
|
+
if (!server_datasource_changes[dataSource]) {
|
|
5934
|
+
server_datasource_changes[dataSource] = {};
|
|
5935
|
+
}
|
|
5936
|
+
if (!server_datasource_changes[dataSource][record_id]) {
|
|
5937
|
+
server_datasource_changes[dataSource][record_id] = {};
|
|
5938
|
+
}
|
|
5939
|
+
server_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5940
|
+
}
|
|
5941
|
+
}
|
|
5942
|
+
};
|
|
5891
5943
|
|
|
5892
5944
|
const update_xu_ref = function (dataSource) {
|
|
5893
5945
|
let ret;
|
|
@@ -5958,6 +6010,18 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5958
6010
|
continue;
|
|
5959
6011
|
}
|
|
5960
6012
|
|
|
6013
|
+
const dynamic_field = _ds?.dynamic_fields?.[field_id];
|
|
6014
|
+
if (dynamic_field) {
|
|
6015
|
+
if (!xu_isEqual(dynamic_field.value, value)) {
|
|
6016
|
+
dynamic_field.value = value;
|
|
6017
|
+
await set_fieldComputed_dependencies(dataSource, field_id, null);
|
|
6018
|
+
update_xu_ref(dataSource);
|
|
6019
|
+
await queue_remote_change(dataSource, record_id, field_id, value, _ds);
|
|
6020
|
+
await mark_field_changed(dataSource, field_id);
|
|
6021
|
+
}
|
|
6022
|
+
continue;
|
|
6023
|
+
}
|
|
6024
|
+
|
|
5961
6025
|
try {
|
|
5962
6026
|
const row_idx = func.common.find_ROWID_idx(_ds, record_id);
|
|
5963
6027
|
// if (_ds.data_feed.rows[row_idx][field_id] !== value) {
|
|
@@ -5968,55 +6032,8 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5968
6032
|
// search the field in refs
|
|
5969
6033
|
update_xu_ref(dataSource);
|
|
5970
6034
|
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
if (glb.IS_WORKER) {
|
|
5974
|
-
// RUN AT SERVER
|
|
5975
|
-
if (tree_ret.menuType === 'globals' || tree_ret.menuType === 'component') {
|
|
5976
|
-
const _progFields = await func.datasource.get_progFields(SESSION_ID, dataSource);
|
|
5977
|
-
let view_field_obj = func.common.find_item_by_key(_progFields, 'field_id', field_id);
|
|
5978
|
-
if (!view_field_obj?.data?.serverField && record_id !== 'data_system') {
|
|
5979
|
-
if (!client_datasource_changes[dataSource]) {
|
|
5980
|
-
client_datasource_changes[dataSource] = {};
|
|
5981
|
-
}
|
|
5982
|
-
if (!client_datasource_changes[dataSource][record_id]) {
|
|
5983
|
-
client_datasource_changes[dataSource][record_id] = {};
|
|
5984
|
-
}
|
|
5985
|
-
client_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5986
|
-
}
|
|
5987
|
-
}
|
|
5988
|
-
} else {
|
|
5989
|
-
// RUN AT CLIENT
|
|
5990
|
-
if ((tree_ret.menuType === 'component' && _ds._run_at !== 'client') || tree_ret.menuType === 'globals') {
|
|
5991
|
-
if (!server_datasource_changes[dataSource]) {
|
|
5992
|
-
server_datasource_changes[dataSource] = {};
|
|
5993
|
-
}
|
|
5994
|
-
if (!server_datasource_changes[dataSource][record_id]) {
|
|
5995
|
-
server_datasource_changes[dataSource][record_id] = {};
|
|
5996
|
-
}
|
|
5997
|
-
server_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5998
|
-
}
|
|
5999
|
-
}
|
|
6000
|
-
}
|
|
6001
|
-
|
|
6002
|
-
if (!fields_changed.includes(field_id)) {
|
|
6003
|
-
fields_changed.push(field_id);
|
|
6004
|
-
|
|
6005
|
-
///// REFRESH PARAMETERS IN
|
|
6006
|
-
for (const [_dsSession, _ds] of Object.entries(_session.DS_GLB)) {
|
|
6007
|
-
if (_ds.args.parameters_raw_obj) {
|
|
6008
|
-
for (const [key, exp] of Object.entries(_ds.args.parameters_raw_obj)) {
|
|
6009
|
-
if (exp.includes(field_id)) {
|
|
6010
|
-
let ret = await func.expression.get(SESSION_ID, exp, _dsSession, 'parameters');
|
|
6011
|
-
_ds.in_parameters[key].value = ret.result;
|
|
6012
|
-
}
|
|
6013
|
-
}
|
|
6014
|
-
}
|
|
6015
|
-
}
|
|
6016
|
-
}
|
|
6017
|
-
if (!datasource_changed.includes(dataSource)) {
|
|
6018
|
-
datasource_changed.push(dataSource);
|
|
6019
|
-
}
|
|
6035
|
+
await queue_remote_change(dataSource, record_id, field_id, value, _ds);
|
|
6036
|
+
await mark_field_changed(dataSource, field_id);
|
|
6020
6037
|
|
|
6021
6038
|
if (!_ds.data_feed.rows_changed) {
|
|
6022
6039
|
_ds.data_feed.rows_changed = [];
|
|
@@ -6559,6 +6576,10 @@ func.datasource.get_value = async function (SESSION_ID, fieldIdP, dsSessionP, ro
|
|
|
6559
6576
|
if (_ds.alias) _field_id = _ds.alias[fieldIdP];
|
|
6560
6577
|
}
|
|
6561
6578
|
|
|
6579
|
+
if (typeof _ds?.dynamic_fields?.[_field_id] !== 'undefined') {
|
|
6580
|
+
return await return_dynamic_value(_field_id, _ds.dynamic_fields[_field_id]);
|
|
6581
|
+
}
|
|
6582
|
+
|
|
6562
6583
|
if (!org_dsSessionP && recordId) {
|
|
6563
6584
|
try {
|
|
6564
6585
|
const row_idx = func.common.find_ROWID_idx(_ds, recordId);
|
|
@@ -6584,10 +6605,6 @@ func.datasource.get_value = async function (SESSION_ID, fieldIdP, dsSessionP, ro
|
|
|
6584
6605
|
}
|
|
6585
6606
|
} catch (error) {}
|
|
6586
6607
|
|
|
6587
|
-
if (typeof _ds?.dynamic_fields?.[_field_id] !== 'undefined') {
|
|
6588
|
-
return await return_dynamic_value(_field_id, _ds.dynamic_fields[_field_id]);
|
|
6589
|
-
}
|
|
6590
|
-
|
|
6591
6608
|
return await search_in_parameters(fieldIdP);
|
|
6592
6609
|
};
|
|
6593
6610
|
|
|
@@ -5814,6 +5814,58 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5814
5814
|
var datasource_changed = [];
|
|
5815
5815
|
let client_datasource_changes = {};
|
|
5816
5816
|
let server_datasource_changes = {};
|
|
5817
|
+
const mark_field_changed = async function (dataSource, field_id) {
|
|
5818
|
+
if (!fields_changed.includes(field_id)) {
|
|
5819
|
+
fields_changed.push(field_id);
|
|
5820
|
+
|
|
5821
|
+
// Refresh dependent in-parameters that reference this field.
|
|
5822
|
+
for (const [_dsSession, _ds] of Object.entries(_session.DS_GLB)) {
|
|
5823
|
+
if (_ds.args.parameters_raw_obj) {
|
|
5824
|
+
for (const [key, exp] of Object.entries(_ds.args.parameters_raw_obj)) {
|
|
5825
|
+
if (exp.includes(field_id)) {
|
|
5826
|
+
let ret = await func.expression.get(SESSION_ID, exp, _dsSession, 'parameters');
|
|
5827
|
+
_ds.in_parameters[key].value = ret.result;
|
|
5828
|
+
}
|
|
5829
|
+
}
|
|
5830
|
+
}
|
|
5831
|
+
}
|
|
5832
|
+
}
|
|
5833
|
+
if (!datasource_changed.includes(dataSource)) {
|
|
5834
|
+
datasource_changed.push(dataSource);
|
|
5835
|
+
}
|
|
5836
|
+
};
|
|
5837
|
+
const queue_remote_change = async function (dataSource, record_id, field_id, value, _ds) {
|
|
5838
|
+
if (update_local_scope_only) {
|
|
5839
|
+
return;
|
|
5840
|
+
}
|
|
5841
|
+
|
|
5842
|
+
let tree_ret = await func.utils.TREE_OBJ.get(SESSION_ID, _ds.prog_id);
|
|
5843
|
+
if (glb.IS_WORKER) {
|
|
5844
|
+
if (tree_ret.menuType === 'globals' || tree_ret.menuType === 'component') {
|
|
5845
|
+
const _progFields = await func.datasource.get_progFields(SESSION_ID, dataSource);
|
|
5846
|
+
let view_field_obj = func.common.find_item_by_key(_progFields, 'field_id', field_id);
|
|
5847
|
+
if (!view_field_obj?.data?.serverField && record_id !== 'data_system') {
|
|
5848
|
+
if (!client_datasource_changes[dataSource]) {
|
|
5849
|
+
client_datasource_changes[dataSource] = {};
|
|
5850
|
+
}
|
|
5851
|
+
if (!client_datasource_changes[dataSource][record_id]) {
|
|
5852
|
+
client_datasource_changes[dataSource][record_id] = {};
|
|
5853
|
+
}
|
|
5854
|
+
client_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5855
|
+
}
|
|
5856
|
+
}
|
|
5857
|
+
} else {
|
|
5858
|
+
if ((tree_ret.menuType === 'component' && _ds._run_at !== 'client') || tree_ret.menuType === 'globals') {
|
|
5859
|
+
if (!server_datasource_changes[dataSource]) {
|
|
5860
|
+
server_datasource_changes[dataSource] = {};
|
|
5861
|
+
}
|
|
5862
|
+
if (!server_datasource_changes[dataSource][record_id]) {
|
|
5863
|
+
server_datasource_changes[dataSource][record_id] = {};
|
|
5864
|
+
}
|
|
5865
|
+
server_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
};
|
|
5817
5869
|
|
|
5818
5870
|
const update_xu_ref = function (dataSource) {
|
|
5819
5871
|
let ret;
|
|
@@ -5884,6 +5936,18 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5884
5936
|
continue;
|
|
5885
5937
|
}
|
|
5886
5938
|
|
|
5939
|
+
const dynamic_field = _ds?.dynamic_fields?.[field_id];
|
|
5940
|
+
if (dynamic_field) {
|
|
5941
|
+
if (!xu_isEqual(dynamic_field.value, value)) {
|
|
5942
|
+
dynamic_field.value = value;
|
|
5943
|
+
await set_fieldComputed_dependencies(dataSource, field_id, null);
|
|
5944
|
+
update_xu_ref(dataSource);
|
|
5945
|
+
await queue_remote_change(dataSource, record_id, field_id, value, _ds);
|
|
5946
|
+
await mark_field_changed(dataSource, field_id);
|
|
5947
|
+
}
|
|
5948
|
+
continue;
|
|
5949
|
+
}
|
|
5950
|
+
|
|
5887
5951
|
try {
|
|
5888
5952
|
const row_idx = func.common.find_ROWID_idx(_ds, record_id);
|
|
5889
5953
|
// if (_ds.data_feed.rows[row_idx][field_id] !== value) {
|
|
@@ -5894,55 +5958,8 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
|
|
|
5894
5958
|
// search the field in refs
|
|
5895
5959
|
update_xu_ref(dataSource);
|
|
5896
5960
|
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
if (glb.IS_WORKER) {
|
|
5900
|
-
// RUN AT SERVER
|
|
5901
|
-
if (tree_ret.menuType === 'globals' || tree_ret.menuType === 'component') {
|
|
5902
|
-
const _progFields = await func.datasource.get_progFields(SESSION_ID, dataSource);
|
|
5903
|
-
let view_field_obj = func.common.find_item_by_key(_progFields, 'field_id', field_id);
|
|
5904
|
-
if (!view_field_obj?.data?.serverField && record_id !== 'data_system') {
|
|
5905
|
-
if (!client_datasource_changes[dataSource]) {
|
|
5906
|
-
client_datasource_changes[dataSource] = {};
|
|
5907
|
-
}
|
|
5908
|
-
if (!client_datasource_changes[dataSource][record_id]) {
|
|
5909
|
-
client_datasource_changes[dataSource][record_id] = {};
|
|
5910
|
-
}
|
|
5911
|
-
client_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5912
|
-
}
|
|
5913
|
-
}
|
|
5914
|
-
} else {
|
|
5915
|
-
// RUN AT CLIENT
|
|
5916
|
-
if ((tree_ret.menuType === 'component' && _ds._run_at !== 'client') || tree_ret.menuType === 'globals') {
|
|
5917
|
-
if (!server_datasource_changes[dataSource]) {
|
|
5918
|
-
server_datasource_changes[dataSource] = {};
|
|
5919
|
-
}
|
|
5920
|
-
if (!server_datasource_changes[dataSource][record_id]) {
|
|
5921
|
-
server_datasource_changes[dataSource][record_id] = {};
|
|
5922
|
-
}
|
|
5923
|
-
server_datasource_changes[dataSource][record_id][field_id] = value;
|
|
5924
|
-
}
|
|
5925
|
-
}
|
|
5926
|
-
}
|
|
5927
|
-
|
|
5928
|
-
if (!fields_changed.includes(field_id)) {
|
|
5929
|
-
fields_changed.push(field_id);
|
|
5930
|
-
|
|
5931
|
-
///// REFRESH PARAMETERS IN
|
|
5932
|
-
for (const [_dsSession, _ds] of Object.entries(_session.DS_GLB)) {
|
|
5933
|
-
if (_ds.args.parameters_raw_obj) {
|
|
5934
|
-
for (const [key, exp] of Object.entries(_ds.args.parameters_raw_obj)) {
|
|
5935
|
-
if (exp.includes(field_id)) {
|
|
5936
|
-
let ret = await func.expression.get(SESSION_ID, exp, _dsSession, 'parameters');
|
|
5937
|
-
_ds.in_parameters[key].value = ret.result;
|
|
5938
|
-
}
|
|
5939
|
-
}
|
|
5940
|
-
}
|
|
5941
|
-
}
|
|
5942
|
-
}
|
|
5943
|
-
if (!datasource_changed.includes(dataSource)) {
|
|
5944
|
-
datasource_changed.push(dataSource);
|
|
5945
|
-
}
|
|
5961
|
+
await queue_remote_change(dataSource, record_id, field_id, value, _ds);
|
|
5962
|
+
await mark_field_changed(dataSource, field_id);
|
|
5946
5963
|
|
|
5947
5964
|
if (!_ds.data_feed.rows_changed) {
|
|
5948
5965
|
_ds.data_feed.rows_changed = [];
|
|
@@ -6485,6 +6502,10 @@ func.datasource.get_value = async function (SESSION_ID, fieldIdP, dsSessionP, ro
|
|
|
6485
6502
|
if (_ds.alias) _field_id = _ds.alias[fieldIdP];
|
|
6486
6503
|
}
|
|
6487
6504
|
|
|
6505
|
+
if (typeof _ds?.dynamic_fields?.[_field_id] !== 'undefined') {
|
|
6506
|
+
return await return_dynamic_value(_field_id, _ds.dynamic_fields[_field_id]);
|
|
6507
|
+
}
|
|
6508
|
+
|
|
6488
6509
|
if (!org_dsSessionP && recordId) {
|
|
6489
6510
|
try {
|
|
6490
6511
|
const row_idx = func.common.find_ROWID_idx(_ds, recordId);
|
|
@@ -6510,10 +6531,6 @@ func.datasource.get_value = async function (SESSION_ID, fieldIdP, dsSessionP, ro
|
|
|
6510
6531
|
}
|
|
6511
6532
|
} catch (error) {}
|
|
6512
6533
|
|
|
6513
|
-
if (typeof _ds?.dynamic_fields?.[_field_id] !== 'undefined') {
|
|
6514
|
-
return await return_dynamic_value(_field_id, _ds.dynamic_fields[_field_id]);
|
|
6515
|
-
}
|
|
6516
|
-
|
|
6517
6534
|
return await search_in_parameters(fieldIdP);
|
|
6518
6535
|
};
|
|
6519
6536
|
|