@xuda.io/runtime-bundle 1.0.364 → 1.0.366

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.
@@ -28149,12 +28149,19 @@ func.UI.worker.find_job_index = function (SESSION_ID, jobNoP) {
28149
28149
  };
28150
28150
 
28151
28151
  func.UI.ds_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0], re_check) {
28152
+ // return;
28152
28153
  let _session = SESSION_OBJ[SESSION_ID];
28153
28154
 
28154
28155
  const _data_system = _session?.DS_GLB?.[0]?.data_system;
28155
28156
  if (_data_system?.SYS_GLOBAL_BOL_AJAX_BUSY) return;
28156
28157
  if (!_data_system?.SYS_GLOBAL_BOL_IDLE) return;
28157
28158
 
28159
+ // for (const [key, val] of Object.entries(_data_system?.SYS_GLOBAL_OBJ_REFS || {})) {
28160
+ // if (!$(`[xu-ui-id='${val?.$el.attr('xu-ui-id')}'`)?.length) {
28161
+ // delete _data_system.SYS_GLOBAL_OBJ_REFS[key];
28162
+ // }
28163
+ // }
28164
+
28158
28165
  let abort;
28159
28166
 
28160
28167
  for (const [dsP, _ds] of Object.entries(_session.DS_GLB)) {
@@ -28201,7 +28208,7 @@ func.UI.ds_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0
28201
28208
  func.datasource.del(SESSION_ID, val);
28202
28209
  }
28203
28210
  };
28204
- func.UI.refs_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0]) {
28211
+ func.UI.refs_garbage_collector = function (SESSION_ID = Object.keys(SESSION_OBJ)[0], re_check) {
28205
28212
  let _session = SESSION_OBJ[SESSION_ID];
28206
28213
  const _data_system = _session?.DS_GLB?.[0]?.data_system;
28207
28214
 
@@ -31432,6 +31439,9 @@ func.UI.screen.refresh_xu_attributes = async function (SESSION_ID, fields_arr, j
31432
31439
 
31433
31440
  if (!elem_val?.$elm?.data()?.xuData?.ui_type) continue;
31434
31441
 
31442
+ // // already rended
31443
+ // if (elem_val.$elm[0].tagName !== 'XURENDER' && elem_val?.$elm?.length) continue;
31444
+
31435
31445
  new_job = await func.UI.worker.add_to_queue(
31436
31446
  SESSION_ID,
31437
31447
  'gui event',
@@ -31947,20 +31957,16 @@ func.UI.screen.execute_xu_functions = async function (SESSION_ID, is_skeleton, $
31947
31957
 
31948
31958
  const common_fx = {
31949
31959
  'xu-ref': async function ($elm, val) {
31960
+ // console.log('xu-ref', $elm, val);
31950
31961
  const _session = SESSION_OBJ[SESSION_ID];
31951
31962
  let _ds_0 = _session.DS_GLB[0];
31952
-
31963
+ // if (!_ds_0.data_system['SYS_GLOBAL_OBJ_REFS']) {
31964
+ // _ds_0.data_system['SYS_GLOBAL_OBJ_REFS'] = {};
31965
+ // }
31966
+ // if (!_ds_0.data_system['SYS_GLOBAL_OBJ_REFS'][val]) {
31953
31967
  const _ds = _session.DS_GLB[paramsP.dsSessionP];
31954
-
31955
- const row_idx = func.common.find_ROWID_idx(_ds, _ds.currentRecordId);
31956
- const data = _ds?.data_feed?.rows?.[row_idx] || {};
31957
-
31958
- const props = _ds.in_parameters || {};
31959
- const attributes = $elm?.data()?.xuData?.properties || {};
31960
-
31961
- // _ds_0.data_system['SYS_GLOBAL_OBJ_REFS'][val.value] = { $el: $elm, ds: _ds, data, attributes, props };
31962
- _ds_0.data_system['SYS_GLOBAL_OBJ_REFS'][val.value] = { $el: $elm, data, attributes, props };
31963
-
31968
+ _ds_0.data_system['SYS_GLOBAL_OBJ_REFS'][val.value] = { $el: $elm, ds: _ds, data: _ds?.data_feed?.rows || {}, props: $elm?.data()?.xuData?.properties };
31969
+ // }
31964
31970
  return {};
31965
31971
  },
31966
31972
  'xu-bind': async function ($elm, val) {
@@ -32293,12 +32299,14 @@ func.UI.screen.execute_xu_functions = async function (SESSION_ID, is_skeleton, $
32293
32299
  if (!custom_iterator_key) {
32294
32300
  is_key_dynamic_field = true;
32295
32301
 
32302
+ // iterator_key = $elm.data().xuData.node_org.id.replaceAll("-", "_") + "_FOR_KEY";
32296
32303
  iterator_key = '_FOR_KEY';
32297
32304
  }
32298
32305
 
32299
32306
  if (!custom_iterator_val) {
32300
32307
  is_val_dynamic_field = true;
32301
32308
 
32309
+ // iterator_val = $elm.data().xuData.node_org.id.replaceAll("-", "_") + "_FOR_VAL";
32302
32310
  iterator_val = '_FOR_VAL';
32303
32311
  }
32304
32312
 
@@ -32345,7 +32353,13 @@ func.UI.screen.execute_xu_functions = async function (SESSION_ID, is_skeleton, $
32345
32353
  };
32346
32354
  let _parent_info = _.cloneDeep(parent_infoP) || {};
32347
32355
  _parent_info.iterate_info = iterate_info;
32348
-
32356
+ // if (parent_infoP) {
32357
+ // _parent_info = iterate_info;
32358
+ // } else {
32359
+ // _parent_info = {
32360
+ // iterate_info,
32361
+ // };
32362
+ // }
32349
32363
  const $divP = await func.UI.screen.render_ui_tree(
32350
32364
  SESSION_ID,
32351
32365
  $container,
@@ -32411,6 +32425,13 @@ func.UI.screen.execute_xu_functions = async function (SESSION_ID, is_skeleton, $
32411
32425
  },
32412
32426
  'xu-exp': async function ($elm, val) {
32413
32427
  let exp = val.value === null ? true : val.value;
32428
+ // if (val.value.includes("@_FOR_KEY")) {
32429
+ // exp = exp.replaceAll("@_FOR_KEY", "@" + $elm.data().xuData.iterate_info.iterator_key);
32430
+ // }
32431
+
32432
+ // if (val.value.includes("@_FOR_VAL")) {
32433
+ // exp = exp.replaceAll("@_FOR_VAL", "@" + $elm.data().xuData.iterate_info.iterator_val);
32434
+ // }
32414
32435
 
32415
32436
  let exp_ret = await func.expression.get(SESSION_ID, exp, paramsP.dsSessionP, 'UI Attr EXP', SESSION_OBJ[SESSION_ID].DS_GLB[paramsP.dsSessionP].currentRecordId);
32416
32437
 
@@ -32819,6 +32840,10 @@ func.UI.screen.set_attributes_new = async function (SESSION_ID, is_skeleton, $ro
32819
32840
  _ret = _.assignIn(_ret, ret);
32820
32841
  }
32821
32842
 
32843
+ // if (nodeP.tagName === "svg") {
32844
+ // console.log(svg_attributes_str);
32845
+ // }
32846
+
32822
32847
  // EXP for
32823
32848
 
32824
32849
  for await (const [key, val] of Object.entries(nodeP.attributes)) {
@@ -32927,6 +32952,20 @@ func.UI.screen.panel_post_render_handler = async function (
32927
32952
  if ($old_panel_div?.length) {
32928
32953
  $($old_panel_div[0]).after($wrapper.children());
32929
32954
  } else {
32955
+ // $container.append($wrapper.children());
32956
+
32957
+ // find existing xurender
32958
+ // $.each($wrapper.children(), function (key, val) {
32959
+ // console.log(">", `[xu-ui-id=${$(val).attr("xu-ui-id")}]`);
32960
+ // const $elm = $container.find(`[xu-ui-id=${$(val).attr("xu-ui-id")}]`);
32961
+ // if (
32962
+ // // $(val).data().xuData.key_path === cloned_$div.data().xuData.key_path
32963
+ // $elm.length
32964
+ // ) {
32965
+ // $elm.remove();
32966
+ // }
32967
+ // $container.append($(val));
32968
+ // });
32930
32969
  $.each($wrapper.children(), function (key, child) {
32931
32970
  $.each($container.children(), function (key, elm) {
32932
32971
  if ($(elm).data().xuData.elem_key === $(child).data().xuData.elem_key) {
@@ -33054,7 +33093,59 @@ func.UI.screen.create_container = function (SESSION_ID, $root_container, nodeP,
33054
33093
  },
33055
33094
  xuAttributes: {},
33056
33095
  });
33096
+ // }
33057
33097
 
33098
+ // $div.appendTo($appendTo);
33099
+
33100
+ ////////////////////////
33101
+
33102
+ // let svg_attributes_str = ""
33103
+ // if (div_typeP === "svg") {
33104
+ // for (const [key, val] of Object.entries(nodeP.attributes)) {
33105
+ // svg_attributes_str += `${key}="${val}" `
33106
+ // }
33107
+ // }
33108
+
33109
+ // var $div =
33110
+ // // $(`<${div} ${attr_str ? attr_str : ""} ${svg_attributes_str}>`)
33111
+ // $(`<${div} ${attr_str ? attr_str : ""}>`)
33112
+ // .attr("xu-ui-id", ui_id)
33113
+ // .data({
33114
+ // xuData: {
33115
+ // prog_id: _paramsP.prog_id,
33116
+ // nodeid: nodeP.id,
33117
+ // ui_type: nodeP.tagName,
33118
+ // xu_id: xu_id,
33119
+ // recordid: currentRecordId,
33120
+ // paramsP: _paramsP,
33121
+ // key: keyP,
33122
+ // key_path, //:($container?.data()?.xuData?.key || "0") + "-" + (keyP || "0"),
33123
+ // screenId: _paramsP.screenId,
33124
+ // parent_container: $container?.attr("id"),
33125
+ // elem_key,
33126
+ // ui_id,
33127
+ // properties: prop,
33128
+ // node: nodeP,
33129
+ // node_org: _.cloneDeep(nodeP),
33130
+ // is_panelP: _paramsP.is_panelP,
33131
+
33132
+ // elem_prop: elem_propP,
33133
+ // debug_info: {
33134
+ // id: nodeP.id,
33135
+ // parent_id: $container?.data()?.xuData?.ui_id,
33136
+ // items: items,
33137
+ // },
33138
+ // parent_node: parent_nodeP,
33139
+ // currentRecordId: currentRecordId,
33140
+ // $root_container: $root_container,
33141
+ // parent_element_ui_id: $container?.data()?.xuData?.ui_id,
33142
+ // },
33143
+ // xuAttributes: {},
33144
+ // })
33145
+
33146
+ // if (div_typeP === "svg") {
33147
+ // $div.removeAttr("xu-ui-id")
33148
+ // }
33058
33149
  if (div_typeP !== 'svg') {
33059
33150
  $div.appendTo($appendTo);
33060
33151
  }
@@ -33617,8 +33708,20 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33617
33708
  await func.UI.component.create_app_page_component(SESSION_ID, paramsP.dsSessionP);
33618
33709
  const page = new UI_FRAMEWORK_PLUGIN.page();
33619
33710
  await set_call_screen_properties_values(page);
33620
- await page.create(params);
33621
- await page.init(params);
33711
+ await page.create(
33712
+ params,
33713
+ // SESSION_ID,
33714
+ // paramsP.dsSessionP,
33715
+ // nav,
33716
+ // $nav.data().xuData.nav_params[paramsP.dsSessionP]
33717
+ );
33718
+ await page.init(
33719
+ params,
33720
+ // SESSION_ID,
33721
+ // paramsP.dsSessionP,
33722
+ // nav,
33723
+ // $nav.data().xuData.nav_params[paramsP.dsSessionP]
33724
+ );
33622
33725
  nav.push(component_name, { params });
33623
33726
  } else {
33624
33727
  debugger;
@@ -33854,6 +33957,20 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33854
33957
  } catch (err) {
33855
33958
  func.utils.debug_report(SESSION_ID, `${plugin_name} widget`, err.message, 'E');
33856
33959
  }
33960
+
33961
+ // glb.lifecycle.plugins[plugin_name] = {
33962
+ // plugin_script: fx,
33963
+ // setup_data: plugin_setup_ret.data,
33964
+ // fields,
33965
+ // params,
33966
+ // };
33967
+
33968
+ // await glb.lifecycle.execute(SESSION_ID, "initialized");
33969
+ // await glb.lifecycle.execute(SESSION_ID, method);
33970
+
33971
+ // } catch (err) {
33972
+ // report_error(err);
33973
+ // }
33857
33974
  }
33858
33975
  return $div;
33859
33976
  },
@@ -33865,6 +33982,10 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33865
33982
  var $wrapper = $('<div>');
33866
33983
  $div = func.UI.screen.create_container(SESSION_ID, $root_container, nodeP, $container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, prop, null, null, 'div', $wrapper, '');
33867
33984
 
33985
+ // if (paramsP.is_panelP) {
33986
+ // var id = $div.attr('id');
33987
+ // }
33988
+
33868
33989
  if (!$div) return;
33869
33990
 
33870
33991
  if (!REFRESHER_IN_PROGRESS && (paramsP.is_mobile_popover || paramsP.is_mobile_page)) {
@@ -33893,7 +34014,107 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33893
34014
  $container.data().xuAttributes[key] = _.cloneDeep(val);
33894
34015
  });
33895
34016
 
34017
+ // var $div_content = $div.children();
34018
+
34019
+ // $.each($div_content, function (key, val) {
34020
+ // $(val).data().xuData.parent_container =
34021
+ // $div.data().xuData.parent_container;
34022
+ // });
34023
+
33896
34024
  return await render_screen_type($div);
34025
+
34026
+ // if (paramsP.is_mobile_modal) {
34027
+ // return await open_modal($div);
34028
+ // }
34029
+ // if (paramsP.is_mobile_popover) {
34030
+ // open_popover($div);
34031
+ // func.UI.utils.screen_blocker(
34032
+ // false,
34033
+ // paramsP.prog_id + "_" + paramsP.sourceScreenP
34034
+ // );
34035
+ // return;
34036
+ // }
34037
+
34038
+ // if (paramsP.is_mobile_page) {
34039
+ // const $nav = $(SESSION_OBJ[SESSION_ID].root_element).find("xu-nav");
34040
+ // const nav = $nav[0];
34041
+
34042
+ // var params = {
34043
+ // div: $div_content,
34044
+ // name: paramsP.screenInfo.properties?.menuTitle,
34045
+ // screenId: paramsP.screenId,
34046
+ // $container: $container,
34047
+ // // icon: $div.data().xuData.paramsP.screenInfo.rICN,
34048
+ // dsSession: paramsP.dsSessionP,
34049
+ // };
34050
+ // var component_name = "xu-page-component-" + paramsP.dsSessionP;
34051
+ // if (!$(nav).data().xuData.nav_params) {
34052
+ // $(nav).data().xuData.nav_params = {};
34053
+ // }
34054
+
34055
+ // //restore validate
34056
+ // if ($(nav)?.data()?.xuData?.params?.[paramsP.dsSessionP]) {
34057
+ // params.$container.data().xuData.validate_screen_ready = $(nav)
34058
+ // .data()
34059
+ // .xuData.params[
34060
+ // paramsP.dsSessionP
34061
+ // ].$container.data().xuData.validate_screen_ready;
34062
+ // }
34063
+
34064
+ // if (!$(nav)?.data()?.xuData) return;
34065
+ // $(nav).data().xuData.nav_params[paramsP.dsSessionP] = params;
34066
+ // if (!$(component_name).length) {
34067
+ // await func.UI.component.create_app_page_component(
34068
+ // SESSION_ID,
34069
+ // paramsP.dsSessionP
34070
+ // );
34071
+ // const page = new UI_FRAMEWORK_PLUGIN.page();
34072
+ // await page.create(
34073
+ // SESSION_ID,
34074
+ // paramsP.dsSessionP,
34075
+ // nav,
34076
+ // $nav.data().xuData.nav_params[paramsP.dsSessionP]
34077
+ // );
34078
+ // await page.init(
34079
+ // SESSION_ID,
34080
+ // paramsP.dsSessionP,
34081
+ // nav,
34082
+ // $nav.data().xuData.nav_params[paramsP.dsSessionP]
34083
+ // );
34084
+ // nav.push(component_name, { params });
34085
+ // } else {
34086
+ // debugger;
34087
+ // $(component_name).empty();
34088
+
34089
+ // await UI_FRAMEWORK_PLUGIN.page(SESSION_ID, paramsP.dsSessionP);
34090
+ // }
34091
+ // $div.data().xuData.paramsP = $container.data().xuData.paramsP;
34092
+
34093
+ // return $div;
34094
+ // }
34095
+
34096
+ // if (
34097
+ // !paramsP.is_mobile_page &&
34098
+ // !paramsP.is_mobile_modal &&
34099
+ // !paramsP.is_mobile_popover &&
34100
+ // !paramsP.is_panelP
34101
+ // ) {
34102
+ // var $nav = $(SESSION_OBJ[SESSION_ID].root_element).find("xu-nav");
34103
+ // if ($nav && $nav.length) {
34104
+ // // refresh made
34105
+ // } else {
34106
+ // $nav = $("<xu-nav>");
34107
+ // $container.append($nav);
34108
+ // func.UI.component.init_xu_nav($container, $nav);
34109
+ // }
34110
+
34111
+ // $nav.data().xuData.$div = $div_content; // set data to nav to use in the component
34112
+
34113
+ // await $nav[0].setRoot("xu-root-component-" + SESSION_ID);
34114
+ // } else {
34115
+ // $container.append($div_content);
34116
+ // }
34117
+ // return $container;
33897
34118
  },
33898
34119
  [`xu-multi-view`]: async function () {
33899
34120
  var $div = $container;
@@ -33910,26 +34131,60 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33910
34131
  }
33911
34132
 
33912
34133
  const done = async function (continuous_idx) {
33913
- // const do_callback = async function ($div) {
33914
- // // if ($root_container.data().xuData.progress_bar_circle) {
33915
- // // setTimeout(function () {
33916
- // // $.each(
33917
- // // $root_container.data().xuData.progress_bar_circle,
33918
- // // function (key, val) {
33919
- // // val.bar.set(parseFloat(val.value)); // Number from 0.0 to 1.0
33920
- // // }
33921
- // // );
33922
- // // }, 2000);
33923
- // // }
33924
-
33925
- // if (paramsP.screenInfo.properties?.rtl) {
33926
- // $div_content.attr('dir', 'rtl');
33927
- // }
34134
+ const do_callback = async function ($div) {
34135
+ // if ($root_container.data().xuData.progress_bar_circle) {
34136
+ // setTimeout(function () {
34137
+ // $.each(
34138
+ // $root_container.data().xuData.progress_bar_circle,
34139
+ // function (key, val) {
34140
+ // val.bar.set(parseFloat(val.value)); // Number from 0.0 to 1.0
34141
+ // }
34142
+ // );
34143
+ // }, 2000);
34144
+ // }
33928
34145
 
33929
- // return $div;
33930
- // };
34146
+ if (paramsP.screenInfo.properties?.rtl) {
34147
+ $div_content.attr('dir', 'rtl');
34148
+ }
34149
+
34150
+ return $div;
34151
+ };
33931
34152
  await func.UI.screen.set_attributes_new(SESSION_ID, is_skeleton, $root_container, nodeP, $container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, $container, true);
34153
+ // var $div_content = $div.children();
34154
+
34155
+ // if (continuous_idx !== null || !prop.app_items_per_page) {
34156
+ // $.each($div.data().xuData, function (key, val) {
34157
+ // $container.data().xuData[key] = val;
34158
+ // });
34159
+ // $.each($div.data().xuAttributes, function (key, val) {
34160
+ // $container.data().xuAttributes[key] = val;
34161
+ // });
34162
+
34163
+ // if (!$container.data().xuData.node) {
34164
+ // $container.data().xuData.node = {};
34165
+ // }
33932
34166
 
34167
+ // $container.data().xuData.node.children = [];
34168
+
34169
+ // $.each($div_content, function (key, val) {
34170
+ // if (!$(val)?.data()?.xuData) return;
34171
+ // if (
34172
+ // continuous_idx === null ||
34173
+ // (continuous_idx && key > continuous_idx)
34174
+ // ) {
34175
+ // $(val).data().xuData.parent_container =
34176
+ // $div.data().xuData.parent_container;
34177
+ // $container
34178
+ // .data()
34179
+ // .xuData.node.children.push($(val).data().xuData.node);
34180
+ // }
34181
+ // });
34182
+ // }
34183
+
34184
+ // if (continuous_idx !== null) {
34185
+ // if (glb.CURRENT_APP_LOADING === 1) glb.CURRENT_APP_LOADING = 0; // re-activate loader
34186
+ // return;
34187
+ // }
33933
34188
  return await render_screen_type($div);
33934
34189
  };
33935
34190
 
@@ -33963,6 +34218,38 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33963
34218
  const ret = await func.UI.screen.render_ui_tree(SESSION_ID, $container, empty_result_node, parent_infoP, paramsP, jobNoP, null, 0, null, nodeP, null, $root_container);
33964
34219
  await func.events.validate(SESSION_ID, 'record_not_found', paramsP.dsSessionP);
33965
34220
  return await done(null);
34221
+
34222
+ // var text = "";
34223
+ // if (prop?.app_empty_result_text !== "undefined") {
34224
+ // text = prop.app_empty_result_text;
34225
+ // }
34226
+ // if (
34227
+ // prop.app_empty_result_text_EXP &&
34228
+ // prop.app_empty_result_text_EXP !== "undefined"
34229
+ // ) {
34230
+ // let exp = prop.app_empty_result_text_EXP;
34231
+ // if (exp && exp !== "undefined") {
34232
+ // var res = func.expression.get(
34233
+ // SESSION_ID,
34234
+ // exp,
34235
+ // paramsP.dsSessionP,
34236
+ // "app_empty_result_text_EXP",
34237
+ // _ds.currentRecordId
34238
+ // );
34239
+ // text = res.result;
34240
+ // }
34241
+ // }
34242
+ // if (icon || text) {
34243
+ // $container.append(
34244
+ // `<div style="width: 100%;" >${img}<h6 style="text-align: center;">${text}</h6></div>`
34245
+ // );
34246
+ // }
34247
+ // await func.events.validate(
34248
+ // SESSION_ID,
34249
+ // "record_not_found",
34250
+ // paramsP.dsSessionP
34251
+ // );
34252
+ // return await done(null);
33966
34253
  };
33967
34254
  var _ds = SESSION_OBJ[SESSION_ID].DS_GLB[paramsP.dsSessionP];
33968
34255
 
@@ -33975,7 +34262,25 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
33975
34262
  var i = 0;
33976
34263
  for await (const [key, val] of Object.entries(_ds.data_feed.rows)) {
33977
34264
  var node = JSON.parse(JSON.stringify(nodeP));
33978
-
34265
+ // TO FIX
34266
+ // if (
34267
+ // continuous_idx === null &&
34268
+ // prop.app_items_per_page &&
34269
+ // i >= Number(prop.app_items_per_page)
34270
+ // ) {
34271
+ // continuous_idx = i;
34272
+ // await done(null);
34273
+
34274
+ // setTimeout(async function () {
34275
+ // await run_item(continuous_idx);
34276
+ // if (!glb.CURRENT_APP_LOADING) {
34277
+ // glb.CURRENT_APP_LOADING = 1;
34278
+ // } // deactivate loader
34279
+ // }, 1000);
34280
+
34281
+ // continue;
34282
+ // }
34283
+ ////////
33979
34284
  _ds.currentRecordId = val._ROWID;
33980
34285
  const ret = await iterate_child($div, node, { continuous_idx }, null, $root_container);
33981
34286
 
@@ -34027,6 +34332,46 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
34027
34332
  };
34028
34333
  if (!element || element === 'script') return await done();
34029
34334
  let str = '';
34335
+ // var $div
34336
+ // const draw_svg = function () {
34337
+ // const get_tag_str = function (element, prop, val) {
34338
+ // let class_str = "";
34339
+ // let attr_str = "";
34340
+ // for (const [key, val] of Object.entries(prop)) {
34341
+ // if (key.substr(0, 2) !== "xu") {
34342
+ // attr_str += ` ${key}="${val}" `;
34343
+ // }
34344
+ // }
34345
+ // if (element === "svg") {
34346
+ // return `<${element} ${attr_str} > `;
34347
+ // }
34348
+ // let ret = "";
34349
+ // if (val?.children?.length) {
34350
+ // ret = iterate_svg(val);
34351
+ // }
34352
+
34353
+ // return `<${element} ${class_str} ${attr_str} > ${ret} </${element}>`;
34354
+ // };
34355
+ // let svg_str = get_tag_str(element, prop);
34356
+ // let inner_str = "";
34357
+ // const iterate_svg = function (node) {
34358
+ // let ret = "";
34359
+ // if (node.children) {
34360
+ // for (let val of node.children) {
34361
+ // let prop = val.attributes;
34362
+ // ret += get_tag_str(val.tagName, prop, val);
34363
+ // }
34364
+ // }
34365
+ // return ret;
34366
+ // };
34367
+ // inner_str = iterate_svg(nodeP);
34368
+
34369
+ // $div = $(svg_str + inner_str + "</svg>").appendTo($container);
34370
+ // };
34371
+ // if (element === "svg") {
34372
+ // draw_svg();
34373
+ // // return await done();
34374
+ // }
34030
34375
 
34031
34376
  var $div = func.UI.screen.create_container(SESSION_ID, $root_container, nodeP, $container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, prop, null, null, element, null, str);
34032
34377