@xuda.io/runtime-bundle 1.0.520 → 1.0.522

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.
@@ -30440,7 +30440,7 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
30440
30440
  let client_datasource_changes = {};
30441
30441
  let server_datasource_changes = {};
30442
30442
 
30443
- const update_xu_ref = async function (dataSource, field_id) {
30443
+ const update_xu_ref = function (dataSource) {
30444
30444
  let ret;
30445
30445
  let _ds_0 = _session.DS_GLB[0];
30446
30446
  for ([ref_name, val] of Object.entries(_ds_0.data_system['SYS_GLOBAL_OBJ_REFS'])) {
@@ -30465,7 +30465,7 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
30465
30465
  // mechanism to make update directly on the datasource object
30466
30466
  if (record_id === 'datasource_main') {
30467
30467
  _.set(_ds, field_id, value);
30468
- const ret = update_xu_ref(dataSource, field_id);
30468
+ const ret = update_xu_ref(dataSource);
30469
30469
  if (ret) {
30470
30470
  fields_changed.push(field_id);
30471
30471
  datasource_changed.push(dataSource);
@@ -30486,7 +30486,7 @@ func.datasource.update = async function (SESSION_ID, datasource_changes, update_
30486
30486
  await set_fieldComputed_dependencies(dataSource, field_id, null);
30487
30487
 
30488
30488
  // search the field in refs
30489
- update_xu_ref(dataSource, field_id);
30489
+ update_xu_ref(dataSource);
30490
30490
 
30491
30491
  if (!update_local_scope_only) {
30492
30492
  let tree_ret = await func.utils.TREE_OBJ.get(SESSION_ID, _ds.prog_id);
@@ -32080,12 +32080,18 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
32080
32080
 
32081
32081
  try {
32082
32082
  // const panelDivData = panel_val.$panel_div.data().xuPanelWrapper.panelDivData;
32083
-
32083
+ const ts = Date.now();
32084
32084
  // remove old panel content
32085
32085
  $.each(panel_val.ids, async function (key, val) {
32086
- $("[xu-ui-id='" + val + "']").remove();
32086
+ $("[xu-ui-id='" + val + "']").attr('xu-ui-id', val + ts);
32087
32087
  });
32088
32088
 
32089
+ let refreshed_ds;
32090
+ // check if ds exist and deleted by garbage collector
32091
+ if (_session.DS_GLB[panel_val._ds.dsSession]) {
32092
+ refreshed_ds = panel_val._ds.dsSession;
32093
+ }
32094
+
32089
32095
  const new_$div = await func.UI.screen.render_ui_tree(
32090
32096
  SESSION_ID,
32091
32097
  $div_elm, // the wrapper
@@ -32095,11 +32101,16 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
32095
32101
  null,
32096
32102
  null,
32097
32103
  wrapper_data.xuData.key, // the wrapper key
32098
- panel_val._ds.dsSession, // the refreshed_ds
32104
+ refreshed_ds, // the refreshed_ds
32099
32105
  wrapper_data.xuData.parent_node, // the wrapper parent node
32100
32106
  null,
32101
32107
  wrapper_data.xuData.$root_container, // the wrapper root container
32102
32108
  );
32109
+
32110
+ // remove old panel content
32111
+ $.each(panel_val.ids, async function (key, val) {
32112
+ $("[xu-ui-id='" + val + ts + "']").remove();
32113
+ });
32103
32114
  } catch (error) {
32104
32115
  debugger;
32105
32116
  }