@xuda.io/runtime-bundle 1.0.579 → 1.0.581

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.
@@ -31704,7 +31704,7 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
31704
31704
  for await (const [parent_element_ui_id, panel_val] of Object.entries(panels_obj)) {
31705
31705
  const progDataSource_str = JSON.stringify(panel_val.prog_doc.progDataSource);
31706
31706
 
31707
- var found;
31707
+ var found, refresh_reason;
31708
31708
  if (fields_changed_arr) {
31709
31709
  if (fields_changed_datasource && panel_val._ds.dsSession < fields_changed_datasource) {
31710
31710
  continue;
@@ -31715,7 +31715,11 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
31715
31715
 
31716
31716
  // detect if program changed
31717
31717
  found = _attributes['xu-exp:program']?.includes('@' + field_id);
31718
- if (found) break;
31718
+
31719
+ if (found) {
31720
+ refresh_reason = 'program changed';
31721
+ break;
31722
+ }
31719
31723
 
31720
31724
  // _attributes holds also info of parameters in code_in: @code
31721
31725
  // search field changed in panel call send parameters exp
@@ -31733,11 +31737,19 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
31733
31737
  if (value.includes(field_id)) {
31734
31738
  // search parameter in field in the target program's progDataSource
31735
31739
  found = progDataSource_str?.includes('@' + parameter_in_field_id);
31736
- if (found) break;
31740
+
31741
+ if (found) {
31742
+ refresh_reason = 'field in progDataSource parameter_in changed';
31743
+ break;
31744
+ }
31737
31745
 
31738
31746
  // found = find_field_in_progUi(prog_doc.progUi, parameter_in_field_id, 'xu-for');
31739
31747
  found = func.UI.find_field_in_progUi_attributes(panel_val.prog_doc.progUi, parameter_in_field_id, 'xu-for').length;
31740
- if (found) break;
31748
+
31749
+ if (found) {
31750
+ refresh_reason = 'field in progUi xu-for parameter_in changed';
31751
+ break;
31752
+ }
31741
31753
  }
31742
31754
  }
31743
31755
 
@@ -31745,19 +31757,30 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
31745
31757
 
31746
31758
  // search field changed in the target program's progDataSource // @code
31747
31759
  found = progDataSource_str?.includes('@' + field_id);
31748
- if (found) break;
31760
+ if (found) {
31761
+ refresh_reason = 'field in progDataSource changed';
31762
+ break;
31763
+ }
31749
31764
 
31750
31765
  found = func.UI.find_field_in_progUi_attributes(panel_val.prog_doc.progUi, field_id, 'xu-for').length;
31751
- if (found) break;
31766
+ if (found) {
31767
+ refresh_reason = 'field in progUi xu-for changed';
31768
+ break;
31769
+ }
31752
31770
  }
31753
31771
  }
31754
31772
 
31755
31773
  if (datasource_changed) {
31756
31774
  if (panel_val._ds.dsSession == datasource_changed) {
31775
+ refresh_reason = 'panel datasource changed';
31757
31776
  found = true;
31758
31777
  }
31759
31778
  }
31760
31779
  if (found) {
31780
+ const _session = SESSION_OBJ[SESSION_ID];
31781
+ if (_session.engine_mode === 'live_preview') {
31782
+ console.log('refresh reason', refresh_reason);
31783
+ }
31761
31784
  const $div_elm = panel_val.$panel_div;
31762
31785
  const wrapper_data = $div_elm.data();
31763
31786
 
@@ -31776,7 +31799,8 @@ func.UI.screen.refresh_screen = async function (SESSION_ID, fields_changed_arr,
31776
31799
 
31777
31800
  let refreshed_ds;
31778
31801
  // check if ds exist and deleted by garbage collector
31779
- const _session = SESSION_OBJ[SESSION_ID];
31802
+
31803
+ // const _session = SESSION_OBJ[SESSION_ID];
31780
31804
  if (_session.DS_GLB[panel_val._ds.dsSession]) {
31781
31805
  refreshed_ds = panel_val._ds.dsSession;
31782
31806
  }
@@ -32059,7 +32083,7 @@ func.UI.screen.execute_xu_functions = async function (SESSION_ID, is_skeleton, $
32059
32083
  [`xu-teleport`]: {
32060
32084
  to: async function ($elm, val) {
32061
32085
  if (val.value) {
32062
- if ($elm.parent().data().xuData) {
32086
+ if ($elm?.parent()?.data()?.xuData?.length) {
32063
32087
  $elm.parent().data('xuTeleportData', []);
32064
32088
  for (const [key, node] of Object.entries(nodeP.children)) {
32065
32089
  const $teleport_elm = await func.UI.screen.render_ui_tree(SESSION_ID, $(val.value), node, parent_infoP, paramsP, jobNoP, is_skeleton, Number(key), null, node, null, $root_container);