@xuda.io/runtime-bundle 1.0.1090 → 1.0.1091
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 +156 -36
- package/js/xuda-runtime-bundle.min.js +1 -1
- package/js/xuda-runtime-slim.js +156 -36
- package/js/xuda-runtime-slim.min.es.js +156 -36
- package/js/xuda-runtime-slim.min.js +1 -1
- package/package.json +1 -1
|
@@ -34427,37 +34427,156 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
|
|
|
34427
34427
|
},
|
|
34428
34428
|
};
|
|
34429
34429
|
|
|
34430
|
-
const
|
|
34431
|
-
let temp_$container = $('<tmp>').data('xuData', $container.data().xuData);
|
|
34432
|
-
if (!glb.new_xu_render) {
|
|
34433
|
-
temp_$container = $container;
|
|
34434
|
-
}
|
|
34430
|
+
const draw_html_element_org = async function (element) {
|
|
34435
34431
|
const done = async function (ret = {}) {
|
|
34436
|
-
|
|
34437
|
-
|
|
34438
|
-
|
|
34439
|
-
|
|
34440
|
-
|
|
34441
|
-
|
|
34442
|
-
|
|
34443
|
-
|
|
34444
|
-
|
|
34445
|
-
|
|
34446
|
-
|
|
34447
|
-
|
|
34448
|
-
|
|
34449
|
-
|
|
34432
|
+
return $div;
|
|
34433
|
+
};
|
|
34434
|
+
if (!element || element === 'script') return await done();
|
|
34435
|
+
let str = '';
|
|
34436
|
+
|
|
34437
|
+
var $div = await func.UI.screen.create_container(SESSION_ID, $root_container, nodeP, $container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, prop, null, null, element, null, str);
|
|
34438
|
+
|
|
34439
|
+
$div.hover(
|
|
34440
|
+
function (e) {
|
|
34441
|
+
hover_in($div, e);
|
|
34442
|
+
},
|
|
34443
|
+
function (e) {
|
|
34444
|
+
hover_out();
|
|
34445
|
+
},
|
|
34446
|
+
);
|
|
34447
|
+
if (paramsP.paramsP === 'grid' || parent_infoP?.iterate_info) {
|
|
34448
|
+
$div.on('click contextmenu', function (e) {
|
|
34449
|
+
hover_in($div, e);
|
|
34450
|
+
});
|
|
34451
|
+
}
|
|
34452
|
+
|
|
34453
|
+
let ret = await func.UI.screen.set_attributes_new(SESSION_ID, is_skeleton, $container, nodeP, $div, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, $div, true);
|
|
34454
|
+
if (ret.abort || nodeP.tagName === 'svg' || !_.isEmpty(nodeP?.attributes?.['xu-text']) || !_.isEmpty(nodeP?.attributes?.['xu-html']) || !_.isEmpty(nodeP?.attributes?.['xu-exp:xu-text']) || !_.isEmpty(nodeP?.attributes?.['xu-exp:xu-html'])) {
|
|
34455
|
+
return await done(ret);
|
|
34456
|
+
}
|
|
34457
|
+
// check if iterator made to prevent children render
|
|
34458
|
+
|
|
34459
|
+
if (nodeP?.attributes?.['xu-viewport'] == 'true') {
|
|
34460
|
+
// const xu_viewport = async function () {
|
|
34461
|
+
// const data = { $div: $div.clone(true), nodeP, parent_infoP, $root_container, paramsP, jobNoP, is_skeleton, keyP, refreshed_ds, parent_nodeP, check_existP, $container };
|
|
34462
|
+
// const container_id = $container.attr('xu-ui-id');
|
|
34463
|
+
// if (!UI_WORKER_OBJ.pending_for_viewport_render[container_id]) {
|
|
34464
|
+
// UI_WORKER_OBJ.pending_for_viewport_render[container_id] = { base_$div: $div, data: [], $container };
|
|
34465
|
+
// await iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34466
|
+
// } else {
|
|
34467
|
+
// $div.remove();
|
|
34468
|
+
// }
|
|
34469
|
+
// UI_WORKER_OBJ.pending_for_viewport_render[container_id].data.push(data);
|
|
34470
|
+
|
|
34471
|
+
// // if (!$div.children().length) {
|
|
34472
|
+
// // // render the first element to determine height
|
|
34473
|
+
// // await iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34474
|
+
// // // hover_in($div);
|
|
34475
|
+
// // // func.UI.worker.add_to_queue(SESSION_ID, 'gui event', 'render_viewport', data, null, null, paramsP.dsSessionP);
|
|
34476
|
+
// // } else {
|
|
34477
|
+
// // }
|
|
34478
|
+
// };
|
|
34479
|
+
const xu_viewport = function () {
|
|
34480
|
+
const observer_inViewport = new IntersectionObserver(
|
|
34481
|
+
function (entries) {
|
|
34482
|
+
entries.forEach((entry) => {
|
|
34483
|
+
if (entry.isIntersecting) {
|
|
34484
|
+
$(entry.target).trigger('inViewport');
|
|
34485
|
+
|
|
34486
|
+
// Optional: stop observing once triggered
|
|
34487
|
+
observer_inViewport.unobserve(entry.target);
|
|
34488
|
+
}
|
|
34489
|
+
});
|
|
34490
|
+
},
|
|
34491
|
+
{
|
|
34492
|
+
threshold: 0.1, // Trigger when 10% of element is visible
|
|
34493
|
+
},
|
|
34494
|
+
);
|
|
34495
|
+
|
|
34496
|
+
const observer_outViewport = new IntersectionObserver(
|
|
34497
|
+
function (entries) {
|
|
34498
|
+
entries.forEach((entry) => {
|
|
34499
|
+
if (!entry.isIntersecting) {
|
|
34500
|
+
// Element is OUT of viewport - trigger custom event
|
|
34501
|
+
$(entry.target).trigger('outViewport');
|
|
34502
|
+
|
|
34503
|
+
// Optional: stop observing once triggered
|
|
34504
|
+
// observer_outViewport.unobserve(entry.target);
|
|
34505
|
+
}
|
|
34506
|
+
});
|
|
34507
|
+
},
|
|
34508
|
+
{
|
|
34509
|
+
threshold: 0, // Trigger when element is completely out of view
|
|
34510
|
+
},
|
|
34511
|
+
);
|
|
34512
|
+
|
|
34513
|
+
let ui_job_id;
|
|
34514
|
+
$div.on('inViewport', function () {
|
|
34515
|
+
if ($div.children().length) {
|
|
34516
|
+
$div.removeClass('skeleton');
|
|
34517
|
+
return;
|
|
34518
|
+
}
|
|
34519
|
+
|
|
34520
|
+
// if (UI_WORKER_OBJ.cache[$div.attr('xu-ui-id')]) {
|
|
34521
|
+
// $div[0].style.removeProperty('height');
|
|
34522
|
+
// $div.removeClass('skeleton');
|
|
34523
|
+
// $div.html(UI_WORKER_OBJ.cache[$div.attr('xu-ui-id')]);
|
|
34524
|
+
// } else {
|
|
34525
|
+
hover_in($div);
|
|
34526
|
+
ui_job_id = func.UI.worker.add_to_queue(SESSION_ID, 'gui event', 'render_viewport', { $div, nodeP, parent_infoP, $root_container, paramsP, jobNoP, is_skeleton, keyP, refreshed_ds, parent_nodeP, check_existP, temp_$container }, null, null, paramsP.dsSessionP);
|
|
34450
34527
|
// }
|
|
34528
|
+
observer_outViewport.observe($div[0]);
|
|
34529
|
+
});
|
|
34451
34530
|
|
|
34452
|
-
|
|
34453
|
-
|
|
34454
|
-
|
|
34455
|
-
if (
|
|
34456
|
-
$
|
|
34531
|
+
$div.on('outViewport', function () {
|
|
34532
|
+
func.UI.worker.delete_job(SESSION_ID, ui_job_id);
|
|
34533
|
+
|
|
34534
|
+
if ($div.children().length) {
|
|
34535
|
+
// UI_WORKER_OBJ.cache[$div.attr('xu-ui-id')] = $div.children().clone(true);
|
|
34536
|
+
$div.empty();
|
|
34537
|
+
const height = $div?.data()?.xuData?.viewport_height || 10;
|
|
34538
|
+
if (typeof height !== 'undefined') {
|
|
34539
|
+
$div.css('height', height);
|
|
34540
|
+
}
|
|
34457
34541
|
}
|
|
34542
|
+
// $div.addClass('skeleton');
|
|
34543
|
+
observer_inViewport.observe($div[0]);
|
|
34544
|
+
});
|
|
34545
|
+
$div.addClass('skeleton');
|
|
34546
|
+
observer_inViewport.observe($div[0]);
|
|
34547
|
+
};
|
|
34548
|
+
xu_viewport();
|
|
34549
|
+
} else {
|
|
34550
|
+
await iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34551
|
+
}
|
|
34552
|
+
|
|
34553
|
+
// const ret_iterate_child = await iterate_child($div, nodeP, parent_infoP, null, $root_container);
|
|
34554
|
+
return await done(ret);
|
|
34555
|
+
};
|
|
34556
|
+
|
|
34557
|
+
const draw_html_element = async function (element) {
|
|
34558
|
+
const done = async function (ret = {}) {
|
|
34559
|
+
const xu_ui_id = $div.attr('xu-ui-id');
|
|
34560
|
+
$div.css('display', 'unset');
|
|
34561
|
+
if (ret.has_xu_exp_render_attribute) {
|
|
34562
|
+
const xu_render_cache_id = await get_xu_render_cache_str(SESSION_ID, paramsP.dsSessionP, Object.keys($div.data()?.xuData?.attr_exp_info?.['xu-render']?.fields || {}));
|
|
34563
|
+
UI_WORKER_OBJ.xu_render_cache[xu_ui_id + xu_render_cache_id] = { $div: $div.clone(true), paramsP };
|
|
34564
|
+
nodeP.xu_render_xu_ui_id = xu_ui_id;
|
|
34565
|
+
nodeP.xu_render_cache_id = xu_render_cache_id;
|
|
34566
|
+
if (ret.xu_render_background_processing) {
|
|
34567
|
+
$container.find(`[xu-ui-id="${xu_ui_id}"]`).remove();
|
|
34458
34568
|
return $div;
|
|
34459
|
-
}
|
|
34569
|
+
} //else {
|
|
34570
|
+
// $container.append(temp_$container.children());
|
|
34571
|
+
// return $div;
|
|
34572
|
+
// }
|
|
34573
|
+
|
|
34574
|
+
return $div;
|
|
34460
34575
|
} else {
|
|
34576
|
+
// $container.append(temp_$container.children());
|
|
34577
|
+
if (ret.has_xu_render_attribute) {
|
|
34578
|
+
$container.find(`[xu-ui-id="${xu_ui_id}"]`).remove();
|
|
34579
|
+
}
|
|
34461
34580
|
return $div;
|
|
34462
34581
|
}
|
|
34463
34582
|
};
|
|
@@ -34466,9 +34585,10 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
|
|
|
34466
34585
|
|
|
34467
34586
|
var $div = await func.UI.screen.create_container(SESSION_ID, $root_container, nodeP, $container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, prop, null, null, element, null, str);
|
|
34468
34587
|
|
|
34469
|
-
|
|
34470
|
-
|
|
34471
|
-
|
|
34588
|
+
$div.css('display', 'none');
|
|
34589
|
+
|
|
34590
|
+
let temp_$container = $('<tmp>').data('xuData', $container.data().xuData);
|
|
34591
|
+
let temp_$div = $div.clone(true);
|
|
34472
34592
|
|
|
34473
34593
|
$div.hover(
|
|
34474
34594
|
function (e) {
|
|
@@ -34484,7 +34604,7 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
|
|
|
34484
34604
|
});
|
|
34485
34605
|
}
|
|
34486
34606
|
|
|
34487
|
-
let ret = await func.UI.screen.set_attributes_new(SESSION_ID, is_skeleton, $root_container, nodeP, $
|
|
34607
|
+
let ret = await func.UI.screen.set_attributes_new(SESSION_ID, is_skeleton, $root_container, nodeP, temp_$container, paramsP, parent_infoP, jobNoP, keyP, parent_nodeP, temp_$div, true);
|
|
34488
34608
|
if (ret.abort || nodeP.tagName === 'svg' || !_.isEmpty(nodeP?.attributes?.['xu-text']) || !_.isEmpty(nodeP?.attributes?.['xu-html']) || !_.isEmpty(nodeP?.attributes?.['xu-exp:xu-text']) || !_.isEmpty(nodeP?.attributes?.['xu-exp:xu-html'])) {
|
|
34489
34609
|
return await done(ret);
|
|
34490
34610
|
}
|
|
@@ -34581,13 +34701,9 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
|
|
|
34581
34701
|
};
|
|
34582
34702
|
xu_viewport();
|
|
34583
34703
|
} else {
|
|
34584
|
-
if (
|
|
34585
|
-
|
|
34586
|
-
|
|
34587
|
-
iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34588
|
-
} else {
|
|
34589
|
-
await iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34590
|
-
}
|
|
34704
|
+
if (ret.xu_render_background_processing) {
|
|
34705
|
+
// let temp_$div = $div.clone(true);
|
|
34706
|
+
iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34591
34707
|
} else {
|
|
34592
34708
|
await iterate_child($div, nodeP, parent_infoP, $root_container);
|
|
34593
34709
|
}
|
|
@@ -34621,7 +34737,11 @@ func.UI.screen.render_ui_tree = async function (SESSION_ID, $container, nodeP, p
|
|
|
34621
34737
|
// if (nodeP?.attributes?.['xu-viewport'] == 'true') {
|
|
34622
34738
|
// return await xu_viewport();
|
|
34623
34739
|
// } else {
|
|
34740
|
+
if (!glb.new_xu_render) {
|
|
34741
|
+
return await draw_html_element_org(nodeP.tagName);
|
|
34742
|
+
}
|
|
34624
34743
|
return await draw_html_element(nodeP.tagName);
|
|
34744
|
+
|
|
34625
34745
|
// }
|
|
34626
34746
|
};
|
|
34627
34747
|
|