@yuneta/gobj-ui 7.23.142 → 7.23.144
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/README.md +40 -0
- package/dist/gobj-ui.cjs.js +1225 -213
- package/dist/gobj-ui.es.js +1225 -215
- package/index.js +2 -0
- package/package.json +1 -1
- package/src/c_yui_json_pad.css +94 -0
- package/src/c_yui_json_pad.js +907 -0
- package/src/c_yui_treedb_topic_with_form.js +14 -0
- package/src/json_view_helpers.js +56 -1
- package/src/json_view_helpers.test.js +43 -0
- package/src/yui_icons.css +12 -0
- package/src/yui_json_pad.js +109 -0
package/dist/gobj-ui.cjs.js
CHANGED
|
@@ -871,7 +871,7 @@ function secondary_nav_renders(item, layout) {
|
|
|
871
871
|
/***************************************************************
|
|
872
872
|
* Constants
|
|
873
873
|
***************************************************************/
|
|
874
|
-
var GCLASS_NAME$
|
|
874
|
+
var GCLASS_NAME$22 = "C_YUI_SHELL";
|
|
875
875
|
var __last_shell__ = null;
|
|
876
876
|
var ZONE_IDS = [
|
|
877
877
|
"top",
|
|
@@ -893,7 +893,7 @@ var LAYER_DEFS = [
|
|
|
893
893
|
/***************************************************************
|
|
894
894
|
* Attrs
|
|
895
895
|
***************************************************************/
|
|
896
|
-
var attrs_table$
|
|
896
|
+
var attrs_table$22 = [
|
|
897
897
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
898
898
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "config", 0, null, "Shell declarative config (zones, menu, stages, toolbar)"),
|
|
899
899
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "default_route", 0, "", "Fallback route if hash is empty"),
|
|
@@ -904,7 +904,7 @@ var attrs_table$21 = [
|
|
|
904
904
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Root HTMLElement of the shell"),
|
|
905
905
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
906
906
|
];
|
|
907
|
-
var PRIVATE_DATA$
|
|
907
|
+
var PRIVATE_DATA$22 = {
|
|
908
908
|
zones: {},
|
|
909
909
|
layers: {},
|
|
910
910
|
stages: {},
|
|
@@ -927,23 +927,23 @@ var PRIVATE_DATA$21 = {
|
|
|
927
927
|
conn_nodes: [],
|
|
928
928
|
active_dropdown: null
|
|
929
929
|
};
|
|
930
|
-
var __gclass__$
|
|
930
|
+
var __gclass__$22 = null;
|
|
931
931
|
/******************************
|
|
932
932
|
* Framework Methods
|
|
933
933
|
******************************/
|
|
934
934
|
/***************************************************************
|
|
935
935
|
* Framework Method: Create
|
|
936
936
|
***************************************************************/
|
|
937
|
-
function mt_create$
|
|
937
|
+
function mt_create$22(gobj) {
|
|
938
938
|
const subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
939
939
|
if (subscriber) (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
940
940
|
__last_shell__ = gobj;
|
|
941
|
-
build_ui$
|
|
941
|
+
build_ui$19(gobj);
|
|
942
942
|
}
|
|
943
943
|
/***************************************************************
|
|
944
944
|
* Framework Method: Start
|
|
945
945
|
***************************************************************/
|
|
946
|
-
function mt_start$
|
|
946
|
+
function mt_start$20(gobj) {
|
|
947
947
|
let config = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "config") || {};
|
|
948
948
|
let priv = gobj.priv;
|
|
949
949
|
if (!validate_config(config)) {
|
|
@@ -1012,7 +1012,7 @@ function mt_start$19(gobj) {
|
|
|
1012
1012
|
/***************************************************************
|
|
1013
1013
|
* Framework Method: Stop
|
|
1014
1014
|
***************************************************************/
|
|
1015
|
-
function mt_stop$
|
|
1015
|
+
function mt_stop$20(gobj) {
|
|
1016
1016
|
let priv = gobj.priv;
|
|
1017
1017
|
if (!priv) return 0;
|
|
1018
1018
|
close_toolbar_dropdown(gobj);
|
|
@@ -1053,7 +1053,7 @@ function mt_stop$19(gobj) {
|
|
|
1053
1053
|
/***************************************************************
|
|
1054
1054
|
* Framework Method: Destroy
|
|
1055
1055
|
***************************************************************/
|
|
1056
|
-
function mt_destroy$
|
|
1056
|
+
function mt_destroy$22(gobj) {
|
|
1057
1057
|
close_toolbar_dropdown(gobj);
|
|
1058
1058
|
let $container = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
|
|
1059
1059
|
if ($container && $container.parentNode) $container.parentNode.removeChild($container);
|
|
@@ -1169,7 +1169,7 @@ function check_route_unique(route_owner, item, menu_id) {
|
|
|
1169
1169
|
/************************************************************
|
|
1170
1170
|
* Build the DOM: layers → base → zones
|
|
1171
1171
|
************************************************************/
|
|
1172
|
-
function build_ui$
|
|
1172
|
+
function build_ui$19(gobj) {
|
|
1173
1173
|
let priv = gobj.priv;
|
|
1174
1174
|
let shell_cfg = ((0, _yuneta_gobj_js.gobj_read_attr)(gobj, "config") || {}).shell || {};
|
|
1175
1175
|
let $container = (0, _yuneta_gobj_js.createElement2)(["div", { class: "C_YUI_SHELL yui-shell" }]);
|
|
@@ -2556,14 +2556,14 @@ function ac_nav_item_close(gobj, event, kw, src) {
|
|
|
2556
2556
|
/***************************************************************
|
|
2557
2557
|
* FSM
|
|
2558
2558
|
***************************************************************/
|
|
2559
|
-
var gmt$
|
|
2560
|
-
mt_create: mt_create$
|
|
2561
|
-
mt_start: mt_start$
|
|
2562
|
-
mt_stop: mt_stop$
|
|
2563
|
-
mt_destroy: mt_destroy$
|
|
2559
|
+
var gmt$22 = {
|
|
2560
|
+
mt_create: mt_create$22,
|
|
2561
|
+
mt_start: mt_start$20,
|
|
2562
|
+
mt_stop: mt_stop$20,
|
|
2563
|
+
mt_destroy: mt_destroy$22
|
|
2564
2564
|
};
|
|
2565
|
-
function create_gclass$
|
|
2566
|
-
if (__gclass__$
|
|
2565
|
+
function create_gclass$22(gclass_name) {
|
|
2566
|
+
if (__gclass__$22) {
|
|
2567
2567
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
2568
2568
|
return -1;
|
|
2569
2569
|
}
|
|
@@ -2592,12 +2592,12 @@ function create_gclass$21(gclass_name) {
|
|
|
2592
2592
|
["EV_ROUTE_CHANGED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_PUBLIC_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS],
|
|
2593
2593
|
["EV_LANGUAGE_CHANGED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_PUBLIC_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS]
|
|
2594
2594
|
];
|
|
2595
|
-
__gclass__$
|
|
2596
|
-
if (!__gclass__$
|
|
2595
|
+
__gclass__$22 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$22, 0, attrs_table$22, PRIVATE_DATA$22, 0, 0, 0, _yuneta_gobj_js.gclass_flag_t.gcflag_no_check_output_events);
|
|
2596
|
+
if (!__gclass__$22) return -1;
|
|
2597
2597
|
return 0;
|
|
2598
2598
|
}
|
|
2599
2599
|
function register_c_yui_shell() {
|
|
2600
|
-
return create_gclass$
|
|
2600
|
+
return create_gclass$22(GCLASS_NAME$22);
|
|
2601
2601
|
}
|
|
2602
2602
|
/***************************************************************
|
|
2603
2603
|
* Public helpers — exported alongside register_c_yui_shell().
|
|
@@ -2690,7 +2690,7 @@ function yui_shell_last_route_under(shell_gobj, route) {
|
|
|
2690
2690
|
function yui_shell_of(gobj) {
|
|
2691
2691
|
let g = gobj;
|
|
2692
2692
|
while (g) {
|
|
2693
|
-
if ((0, _yuneta_gobj_js.gobj_gclass_name)(g) === GCLASS_NAME$
|
|
2693
|
+
if ((0, _yuneta_gobj_js.gobj_gclass_name)(g) === GCLASS_NAME$22) return g;
|
|
2694
2694
|
g = (0, _yuneta_gobj_js.gobj_parent)(g);
|
|
2695
2695
|
}
|
|
2696
2696
|
return __last_shell__;
|
|
@@ -3444,7 +3444,7 @@ function yui_shell_confirm_yesnocancel(shell, message, opts) {
|
|
|
3444
3444
|
/***************************************************************
|
|
3445
3445
|
* Constants
|
|
3446
3446
|
***************************************************************/
|
|
3447
|
-
var GCLASS_NAME$
|
|
3447
|
+
var GCLASS_NAME$21 = "C_YUI_WINDOW";
|
|
3448
3448
|
var WC_MIN = "<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"10\" height=\"1.6\" rx=\"0.8\" fill=\"currentColor\"/></svg>";
|
|
3449
3449
|
var WC_MAX = "<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><rect x=\"3.3\" y=\"3.3\" width=\"9.4\" height=\"9.4\" rx=\"1.6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"/></svg>";
|
|
3450
3450
|
var WC_RESTORE = "<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><rect x=\"5.2\" y=\"3\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"/><rect x=\"3\" y=\"5.2\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"var(--bulma-scheme-main)\" stroke=\"currentColor\" stroke-width=\"1.4\"/></svg>";
|
|
@@ -3453,7 +3453,7 @@ var MOBILE_MAX = 768;
|
|
|
3453
3453
|
/***************************************************************
|
|
3454
3454
|
* Data
|
|
3455
3455
|
***************************************************************/
|
|
3456
|
-
var attrs_table$
|
|
3456
|
+
var attrs_table$21 = [
|
|
3457
3457
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
3458
3458
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$parent", 0, null, "$container will be appended to $parent if not null, else to document.body"),
|
|
3459
3459
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "x", 0, "300", "X position"),
|
|
@@ -3491,21 +3491,21 @@ var attrs_table$20 = [
|
|
|
3491
3491
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "win_resize_handler", 0, null, "Internal: native window 'resize' listener"),
|
|
3492
3492
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
3493
3493
|
];
|
|
3494
|
-
var PRIVATE_DATA$
|
|
3495
|
-
var __gclass__$
|
|
3494
|
+
var PRIVATE_DATA$21 = { prevSize: 0 };
|
|
3495
|
+
var __gclass__$21 = null;
|
|
3496
3496
|
/******************************
|
|
3497
3497
|
* Framework Methods
|
|
3498
3498
|
******************************/
|
|
3499
3499
|
/***************************************************************
|
|
3500
3500
|
* Framework Method: Create
|
|
3501
3501
|
***************************************************************/
|
|
3502
|
-
function mt_create$
|
|
3502
|
+
function mt_create$21(gobj) {
|
|
3503
3503
|
const subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
3504
3504
|
if (subscriber) (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
3505
3505
|
let window_id = "window-" + (0, _yuneta_gobj_js.clean_name)((0, _yuneta_gobj_js.gobj_short_name)(gobj));
|
|
3506
3506
|
(0, _yuneta_gobj_js.gobj_write_attr)(gobj, "window_id", window_id);
|
|
3507
3507
|
let manager = resolve_manager(gobj);
|
|
3508
|
-
build_ui$
|
|
3508
|
+
build_ui$18(gobj);
|
|
3509
3509
|
if (manager) {
|
|
3510
3510
|
let $c = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
|
|
3511
3511
|
if ($c) $c.addEventListener("pointerdown", function() {
|
|
@@ -3539,7 +3539,7 @@ function mt_create$20(gobj) {
|
|
|
3539
3539
|
/***************************************************************
|
|
3540
3540
|
* Framework Method: Destroy
|
|
3541
3541
|
***************************************************************/
|
|
3542
|
-
function mt_destroy$
|
|
3542
|
+
function mt_destroy$21(gobj) {
|
|
3543
3543
|
let manager = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "manager");
|
|
3544
3544
|
if (manager) (0, _yuneta_gobj_js.gobj_send_event)(manager, "EV_UNREGISTER_WINDOW", { window: gobj }, gobj);
|
|
3545
3545
|
let back_overlay = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "back_overlay");
|
|
@@ -3712,7 +3712,7 @@ function do_minimize(gobj) {
|
|
|
3712
3712
|
/************************************************************
|
|
3713
3713
|
* Build UI
|
|
3714
3714
|
************************************************************/
|
|
3715
|
-
function build_ui$
|
|
3715
|
+
function build_ui$18(gobj) {
|
|
3716
3716
|
ensure_window_style();
|
|
3717
3717
|
let mobile = is_mobile$4();
|
|
3718
3718
|
let header = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "header");
|
|
@@ -4273,15 +4273,15 @@ function ac_close(gobj, event, kw, src) {
|
|
|
4273
4273
|
/***************************
|
|
4274
4274
|
* FSM
|
|
4275
4275
|
***************************/
|
|
4276
|
-
var gmt$
|
|
4277
|
-
mt_create: mt_create$
|
|
4278
|
-
mt_destroy: mt_destroy$
|
|
4276
|
+
var gmt$21 = {
|
|
4277
|
+
mt_create: mt_create$21,
|
|
4278
|
+
mt_destroy: mt_destroy$21
|
|
4279
4279
|
};
|
|
4280
4280
|
/***************************************************************
|
|
4281
4281
|
* Create the GClass
|
|
4282
4282
|
***************************************************************/
|
|
4283
|
-
function create_gclass$
|
|
4284
|
-
if (__gclass__$
|
|
4283
|
+
function create_gclass$21(gclass_name) {
|
|
4284
|
+
if (__gclass__$21) {
|
|
4285
4285
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
4286
4286
|
return -1;
|
|
4287
4287
|
}
|
|
@@ -4316,15 +4316,15 @@ function create_gclass$20(gclass_name) {
|
|
|
4316
4316
|
["EV_HIDE", 0],
|
|
4317
4317
|
["EV_CLOSE_WINDOW", 0]
|
|
4318
4318
|
];
|
|
4319
|
-
__gclass__$
|
|
4320
|
-
if (!__gclass__$
|
|
4319
|
+
__gclass__$21 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$21, 0, attrs_table$21, PRIVATE_DATA$21, 0, 0, 0, 0);
|
|
4320
|
+
if (!__gclass__$21) return -1;
|
|
4321
4321
|
return 0;
|
|
4322
4322
|
}
|
|
4323
4323
|
/***************************************************************
|
|
4324
4324
|
* Register GClass
|
|
4325
4325
|
***************************************************************/
|
|
4326
4326
|
function register_c_yui_window() {
|
|
4327
|
-
return create_gclass$
|
|
4327
|
+
return create_gclass$21(GCLASS_NAME$21);
|
|
4328
4328
|
}
|
|
4329
4329
|
//#endregion
|
|
4330
4330
|
//#region src/c_yui_window_manager.js
|
|
@@ -4362,13 +4362,13 @@ function register_c_yui_window() {
|
|
|
4362
4362
|
/***************************************************************
|
|
4363
4363
|
* Constants
|
|
4364
4364
|
***************************************************************/
|
|
4365
|
-
var GCLASS_NAME$
|
|
4365
|
+
var GCLASS_NAME$20 = "C_YUI_WINDOW_MANAGER";
|
|
4366
4366
|
var DOCK_Z = 1e6;
|
|
4367
4367
|
var WC_X = "<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><path d=\"M4.5 4.5 L11.5 11.5 M11.5 4.5 L4.5 11.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>";
|
|
4368
4368
|
/***************************************************************
|
|
4369
4369
|
* Data
|
|
4370
4370
|
***************************************************************/
|
|
4371
|
-
var attrs_table$
|
|
4371
|
+
var attrs_table$20 = [
|
|
4372
4372
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
4373
4373
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "dock_mode", 0, "floating", "floating | inline | responsive (floating on wide screens, inline on narrow)"),
|
|
4374
4374
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "dock_corner", 0, "bottom-left", "Floating placement: top-left | top-right | bottom-left | bottom-right"),
|
|
@@ -4378,20 +4378,20 @@ var attrs_table$19 = [
|
|
|
4378
4378
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Internal: the dock element"),
|
|
4379
4379
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
4380
4380
|
];
|
|
4381
|
-
var PRIVATE_DATA$
|
|
4381
|
+
var PRIVATE_DATA$20 = {
|
|
4382
4382
|
windows: null,
|
|
4383
4383
|
z: 0,
|
|
4384
4384
|
mql: null,
|
|
4385
4385
|
mql_handler: null
|
|
4386
4386
|
};
|
|
4387
|
-
var __gclass__$
|
|
4387
|
+
var __gclass__$20 = null;
|
|
4388
4388
|
/******************************
|
|
4389
4389
|
* Framework Methods
|
|
4390
4390
|
******************************/
|
|
4391
4391
|
/***************************************************************
|
|
4392
4392
|
* Framework Method: Create
|
|
4393
4393
|
***************************************************************/
|
|
4394
|
-
function mt_create$
|
|
4394
|
+
function mt_create$20(gobj) {
|
|
4395
4395
|
let priv = gobj.priv;
|
|
4396
4396
|
priv.windows = [];
|
|
4397
4397
|
priv.z = 10;
|
|
@@ -4410,7 +4410,7 @@ function mt_create$19(gobj) {
|
|
|
4410
4410
|
/***************************************************************
|
|
4411
4411
|
* Framework Method: Destroy
|
|
4412
4412
|
***************************************************************/
|
|
4413
|
-
function mt_destroy$
|
|
4413
|
+
function mt_destroy$20(gobj) {
|
|
4414
4414
|
let priv = gobj.priv;
|
|
4415
4415
|
if (priv.mql && priv.mql_handler) {
|
|
4416
4416
|
priv.mql.removeEventListener("change", priv.mql_handler);
|
|
@@ -4779,19 +4779,19 @@ function ac_focus_window(gobj, event, kw, src) {
|
|
|
4779
4779
|
/***************************
|
|
4780
4780
|
* FSM
|
|
4781
4781
|
***************************/
|
|
4782
|
-
var gmt$
|
|
4783
|
-
mt_create: mt_create$
|
|
4784
|
-
mt_destroy: mt_destroy$
|
|
4782
|
+
var gmt$20 = {
|
|
4783
|
+
mt_create: mt_create$20,
|
|
4784
|
+
mt_destroy: mt_destroy$20
|
|
4785
4785
|
};
|
|
4786
4786
|
/***************************************************************
|
|
4787
4787
|
* Create the GClass
|
|
4788
4788
|
***************************************************************/
|
|
4789
|
-
function create_gclass$
|
|
4790
|
-
if (__gclass__$
|
|
4789
|
+
function create_gclass$20(gclass_name) {
|
|
4790
|
+
if (__gclass__$20) {
|
|
4791
4791
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
4792
4792
|
return -1;
|
|
4793
4793
|
}
|
|
4794
|
-
__gclass__$
|
|
4794
|
+
__gclass__$20 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
|
|
4795
4795
|
["EV_REGISTER_WINDOW", 0],
|
|
4796
4796
|
["EV_UNREGISTER_WINDOW", 0],
|
|
4797
4797
|
["EV_MINIMIZE_WINDOW", 0],
|
|
@@ -4817,15 +4817,15 @@ function create_gclass$19(gclass_name) {
|
|
|
4817
4817
|
ac_focus_window,
|
|
4818
4818
|
null
|
|
4819
4819
|
]
|
|
4820
|
-
]]], gmt$
|
|
4821
|
-
if (!__gclass__$
|
|
4820
|
+
]]], gmt$20, 0, attrs_table$20, PRIVATE_DATA$20, 0, 0, 0, 0);
|
|
4821
|
+
if (!__gclass__$20) return -1;
|
|
4822
4822
|
return 0;
|
|
4823
4823
|
}
|
|
4824
4824
|
/***************************************************************
|
|
4825
4825
|
* Register GClass
|
|
4826
4826
|
***************************************************************/
|
|
4827
4827
|
function register_c_yui_window_manager() {
|
|
4828
|
-
return create_gclass$
|
|
4828
|
+
return create_gclass$20(GCLASS_NAME$20);
|
|
4829
4829
|
}
|
|
4830
4830
|
//#endregion
|
|
4831
4831
|
//#region src/pager_helpers.js
|
|
@@ -4911,11 +4911,11 @@ function pager_back_action(stack, back_on_root) {
|
|
|
4911
4911
|
/***************************************************************
|
|
4912
4912
|
* Constants
|
|
4913
4913
|
***************************************************************/
|
|
4914
|
-
var GCLASS_NAME$
|
|
4914
|
+
var GCLASS_NAME$19 = "C_YUI_PAGER";
|
|
4915
4915
|
/***************************************************************
|
|
4916
4916
|
* Data
|
|
4917
4917
|
***************************************************************/
|
|
4918
|
-
var attrs_table$
|
|
4918
|
+
var attrs_table$19 = [
|
|
4919
4919
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
4920
4920
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "root_title", 0, "", "Title shown on the root page"),
|
|
4921
4921
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_BOOLEAN, "back_on_root", 0, true, "On the root page the back affordance emits EV_PAGER_EXIT"),
|
|
@@ -4923,18 +4923,18 @@ var attrs_table$18 = [
|
|
|
4923
4923
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
|
|
4924
4924
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
4925
4925
|
];
|
|
4926
|
-
var PRIVATE_DATA$
|
|
4927
|
-
var __gclass__$
|
|
4926
|
+
var PRIVATE_DATA$19 = { stack: null };
|
|
4927
|
+
var __gclass__$19 = null;
|
|
4928
4928
|
/******************************
|
|
4929
4929
|
* Framework Methods
|
|
4930
4930
|
******************************/
|
|
4931
4931
|
/***************************************************************
|
|
4932
4932
|
* Framework Method: Create
|
|
4933
4933
|
***************************************************************/
|
|
4934
|
-
function mt_create$
|
|
4934
|
+
function mt_create$19(gobj) {
|
|
4935
4935
|
let priv = gobj.priv;
|
|
4936
4936
|
priv.stack = [];
|
|
4937
|
-
build_ui$
|
|
4937
|
+
build_ui$17(gobj);
|
|
4938
4938
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
4939
4939
|
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
4940
4940
|
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
@@ -4942,17 +4942,17 @@ function mt_create$18(gobj) {
|
|
|
4942
4942
|
/***************************************************************
|
|
4943
4943
|
* Framework Method: Start
|
|
4944
4944
|
***************************************************************/
|
|
4945
|
-
function mt_start$
|
|
4945
|
+
function mt_start$19(gobj) {}
|
|
4946
4946
|
/***************************************************************
|
|
4947
4947
|
* Framework Method: Stop
|
|
4948
4948
|
***************************************************************/
|
|
4949
|
-
function mt_stop$
|
|
4949
|
+
function mt_stop$19(gobj) {
|
|
4950
4950
|
(0, _yuneta_gobj_js.gobj_stop_children)(gobj);
|
|
4951
4951
|
}
|
|
4952
4952
|
/***************************************************************
|
|
4953
4953
|
* Framework Method: Destroy
|
|
4954
4954
|
***************************************************************/
|
|
4955
|
-
function mt_destroy$
|
|
4955
|
+
function mt_destroy$19(gobj) {
|
|
4956
4956
|
destroy_ui$12(gobj);
|
|
4957
4957
|
}
|
|
4958
4958
|
/***************************
|
|
@@ -4961,7 +4961,7 @@ function mt_destroy$18(gobj) {
|
|
|
4961
4961
|
/************************************************************
|
|
4962
4962
|
* Build UI
|
|
4963
4963
|
************************************************************/
|
|
4964
|
-
function build_ui$
|
|
4964
|
+
function build_ui$17(gobj) {
|
|
4965
4965
|
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
4966
4966
|
"div",
|
|
4967
4967
|
{
|
|
@@ -5113,7 +5113,7 @@ function ac_push_page(gobj, event, kw, src) {
|
|
|
5113
5113
|
let priv = gobj.priv;
|
|
5114
5114
|
let resolved = resolve_panel$1(kw.content);
|
|
5115
5115
|
if (!resolved.$el) {
|
|
5116
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
5116
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$19}: EV_PUSH_PAGE without content`);
|
|
5117
5117
|
return -1;
|
|
5118
5118
|
}
|
|
5119
5119
|
let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-pager-body");
|
|
@@ -5166,7 +5166,7 @@ function ac_replace_page(gobj, event, kw, src) {
|
|
|
5166
5166
|
let priv = gobj.priv;
|
|
5167
5167
|
let resolved = resolve_panel$1(kw.content);
|
|
5168
5168
|
if (!resolved.$el) {
|
|
5169
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
5169
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$19}: EV_REPLACE_PAGE without content`);
|
|
5170
5170
|
return -1;
|
|
5171
5171
|
}
|
|
5172
5172
|
let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-pager-body");
|
|
@@ -5233,17 +5233,17 @@ function ac_resize$5(gobj, event, kw, src) {
|
|
|
5233
5233
|
/***************************
|
|
5234
5234
|
* FSM
|
|
5235
5235
|
***************************/
|
|
5236
|
-
var gmt$
|
|
5237
|
-
mt_create: mt_create$
|
|
5238
|
-
mt_start: mt_start$
|
|
5239
|
-
mt_stop: mt_stop$
|
|
5240
|
-
mt_destroy: mt_destroy$
|
|
5236
|
+
var gmt$19 = {
|
|
5237
|
+
mt_create: mt_create$19,
|
|
5238
|
+
mt_start: mt_start$19,
|
|
5239
|
+
mt_stop: mt_stop$19,
|
|
5240
|
+
mt_destroy: mt_destroy$19
|
|
5241
5241
|
};
|
|
5242
5242
|
/***************************************************************
|
|
5243
5243
|
* Create the GClass
|
|
5244
5244
|
***************************************************************/
|
|
5245
|
-
function create_gclass$
|
|
5246
|
-
if (__gclass__$
|
|
5245
|
+
function create_gclass$19(gclass_name) {
|
|
5246
|
+
if (__gclass__$19) {
|
|
5247
5247
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
5248
5248
|
return -1;
|
|
5249
5249
|
}
|
|
@@ -5308,15 +5308,15 @@ function create_gclass$18(gclass_name) {
|
|
|
5308
5308
|
["EV_PAGE_DISCARD", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
|
|
5309
5309
|
["EV_PAGER_EXIT", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT]
|
|
5310
5310
|
];
|
|
5311
|
-
__gclass__$
|
|
5312
|
-
if (!__gclass__$
|
|
5311
|
+
__gclass__$19 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$19, 0, attrs_table$19, PRIVATE_DATA$19, 0, 0, 0, 0);
|
|
5312
|
+
if (!__gclass__$19) return -1;
|
|
5313
5313
|
return 0;
|
|
5314
5314
|
}
|
|
5315
5315
|
/***************************************************************
|
|
5316
5316
|
* Register GClass
|
|
5317
5317
|
***************************************************************/
|
|
5318
5318
|
function register_c_yui_pager() {
|
|
5319
|
-
return create_gclass$
|
|
5319
|
+
return create_gclass$19(GCLASS_NAME$19);
|
|
5320
5320
|
}
|
|
5321
5321
|
//#endregion
|
|
5322
5322
|
//#region src/wizard_helpers.js
|
|
@@ -5437,11 +5437,11 @@ function wizard_should_validate(linear, has_gobj) {
|
|
|
5437
5437
|
/***************************************************************
|
|
5438
5438
|
* Constants
|
|
5439
5439
|
***************************************************************/
|
|
5440
|
-
var GCLASS_NAME$
|
|
5440
|
+
var GCLASS_NAME$18 = "C_YUI_WIZARD";
|
|
5441
5441
|
/***************************************************************
|
|
5442
5442
|
* Data
|
|
5443
5443
|
***************************************************************/
|
|
5444
|
-
var attrs_table$
|
|
5444
|
+
var attrs_table$18 = [
|
|
5445
5445
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
5446
5446
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "confirm_label", 0, "confirm", "i18n key of the last-step primary button"),
|
|
5447
5447
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "next_label", 0, "next", "i18n key of the primary button (not last step)"),
|
|
@@ -5451,26 +5451,26 @@ var attrs_table$17 = [
|
|
|
5451
5451
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
|
|
5452
5452
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
5453
5453
|
];
|
|
5454
|
-
var PRIVATE_DATA$
|
|
5454
|
+
var PRIVATE_DATA$18 = {
|
|
5455
5455
|
steps: null,
|
|
5456
5456
|
idx: 0,
|
|
5457
5457
|
acc: null,
|
|
5458
5458
|
awaiting: false
|
|
5459
5459
|
};
|
|
5460
|
-
var __gclass__$
|
|
5460
|
+
var __gclass__$18 = null;
|
|
5461
5461
|
/******************************
|
|
5462
5462
|
* Framework Methods
|
|
5463
5463
|
******************************/
|
|
5464
5464
|
/***************************************************************
|
|
5465
5465
|
* Framework Method: Create
|
|
5466
5466
|
***************************************************************/
|
|
5467
|
-
function mt_create$
|
|
5467
|
+
function mt_create$18(gobj) {
|
|
5468
5468
|
let priv = gobj.priv;
|
|
5469
5469
|
priv.steps = [];
|
|
5470
5470
|
priv.idx = 0;
|
|
5471
5471
|
priv.acc = null;
|
|
5472
5472
|
priv.awaiting = false;
|
|
5473
|
-
build_ui$
|
|
5473
|
+
build_ui$16(gobj);
|
|
5474
5474
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
5475
5475
|
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
5476
5476
|
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
@@ -5478,17 +5478,17 @@ function mt_create$17(gobj) {
|
|
|
5478
5478
|
/***************************************************************
|
|
5479
5479
|
* Framework Method: Start
|
|
5480
5480
|
***************************************************************/
|
|
5481
|
-
function mt_start$
|
|
5481
|
+
function mt_start$18(gobj) {}
|
|
5482
5482
|
/***************************************************************
|
|
5483
5483
|
* Framework Method: Stop
|
|
5484
5484
|
***************************************************************/
|
|
5485
|
-
function mt_stop$
|
|
5485
|
+
function mt_stop$18(gobj) {
|
|
5486
5486
|
(0, _yuneta_gobj_js.gobj_stop_children)(gobj);
|
|
5487
5487
|
}
|
|
5488
5488
|
/***************************************************************
|
|
5489
5489
|
* Framework Method: Destroy
|
|
5490
5490
|
***************************************************************/
|
|
5491
|
-
function mt_destroy$
|
|
5491
|
+
function mt_destroy$18(gobj) {
|
|
5492
5492
|
destroy_ui$11(gobj);
|
|
5493
5493
|
}
|
|
5494
5494
|
/***************************
|
|
@@ -5497,7 +5497,7 @@ function mt_destroy$17(gobj) {
|
|
|
5497
5497
|
/************************************************************
|
|
5498
5498
|
* Build UI
|
|
5499
5499
|
************************************************************/
|
|
5500
|
-
function build_ui$
|
|
5500
|
+
function build_ui$16(gobj) {
|
|
5501
5501
|
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
5502
5502
|
"div",
|
|
5503
5503
|
{
|
|
@@ -5698,7 +5698,7 @@ function ac_set_steps(gobj, event, kw, src) {
|
|
|
5698
5698
|
let priv = gobj.priv;
|
|
5699
5699
|
let steps_in = kw && kw.steps || [];
|
|
5700
5700
|
if (steps_in.length === 0) {
|
|
5701
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
5701
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$18}: EV_SET_STEPS with no steps`);
|
|
5702
5702
|
return -1;
|
|
5703
5703
|
}
|
|
5704
5704
|
let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-wizard-body");
|
|
@@ -5708,7 +5708,7 @@ function ac_set_steps(gobj, event, kw, src) {
|
|
|
5708
5708
|
let st = steps_in[i];
|
|
5709
5709
|
let resolved = resolve_panel(st.content);
|
|
5710
5710
|
if (!resolved.$el) {
|
|
5711
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
5711
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$18}: step '${st.id}' has no content`);
|
|
5712
5712
|
return -1;
|
|
5713
5713
|
}
|
|
5714
5714
|
resolved.$el.classList.add("is-hidden");
|
|
@@ -5842,17 +5842,17 @@ function ac_resize$4(gobj, event, kw, src) {
|
|
|
5842
5842
|
/***************************
|
|
5843
5843
|
* FSM
|
|
5844
5844
|
***************************/
|
|
5845
|
-
var gmt$
|
|
5846
|
-
mt_create: mt_create$
|
|
5847
|
-
mt_start: mt_start$
|
|
5848
|
-
mt_stop: mt_stop$
|
|
5849
|
-
mt_destroy: mt_destroy$
|
|
5845
|
+
var gmt$18 = {
|
|
5846
|
+
mt_create: mt_create$18,
|
|
5847
|
+
mt_start: mt_start$18,
|
|
5848
|
+
mt_stop: mt_stop$18,
|
|
5849
|
+
mt_destroy: mt_destroy$18
|
|
5850
5850
|
};
|
|
5851
5851
|
/***************************************************************
|
|
5852
5852
|
* Create the GClass
|
|
5853
5853
|
***************************************************************/
|
|
5854
|
-
function create_gclass$
|
|
5855
|
-
if (__gclass__$
|
|
5854
|
+
function create_gclass$18(gclass_name) {
|
|
5855
|
+
if (__gclass__$18) {
|
|
5856
5856
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
5857
5857
|
return -1;
|
|
5858
5858
|
}
|
|
@@ -5930,15 +5930,15 @@ function create_gclass$17(gclass_name) {
|
|
|
5930
5930
|
["EV_WIZARD_CANCEL", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
|
|
5931
5931
|
["EV_STEP_VALIDATE", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS]
|
|
5932
5932
|
];
|
|
5933
|
-
__gclass__$
|
|
5934
|
-
if (!__gclass__$
|
|
5933
|
+
__gclass__$18 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$18, 0, attrs_table$18, PRIVATE_DATA$18, 0, 0, 0, 0);
|
|
5934
|
+
if (!__gclass__$18) return -1;
|
|
5935
5935
|
return 0;
|
|
5936
5936
|
}
|
|
5937
5937
|
/***************************************************************
|
|
5938
5938
|
* Register GClass
|
|
5939
5939
|
***************************************************************/
|
|
5940
5940
|
function register_c_yui_wizard() {
|
|
5941
|
-
return create_gclass$
|
|
5941
|
+
return create_gclass$18(GCLASS_NAME$18);
|
|
5942
5942
|
}
|
|
5943
5943
|
//#endregion
|
|
5944
5944
|
//#region src/yui_tabulator_i18n.js
|
|
@@ -7053,6 +7053,60 @@ function count_branches(value) {
|
|
|
7053
7053
|
for (let v of entries) if (has_branch(v)) n++;
|
|
7054
7054
|
return n;
|
|
7055
7055
|
}
|
|
7056
|
+
/************************************************************
|
|
7057
|
+
* What differs between two documents: one row per id of
|
|
7058
|
+
* their flat form (json2flat), sorted by id in natural order,
|
|
7059
|
+
* so `[2]` comes before `[10]`:
|
|
7060
|
+
*
|
|
7061
|
+
* [{id, kind: "added"|"removed"|"changed", from?, to?}]
|
|
7062
|
+
*
|
|
7063
|
+
* `from` is the first document's value and `to` the second's:
|
|
7064
|
+
* an added row has no `from`, a removed row no `to`.
|
|
7065
|
+
*
|
|
7066
|
+
* Two roots that are not containers of the same kind have no
|
|
7067
|
+
* ids in common to compare by: they are one value each, and
|
|
7068
|
+
* the row that says they differ has the empty id.
|
|
7069
|
+
*
|
|
7070
|
+
* Throws what json2flat throws (a document too deep).
|
|
7071
|
+
************************************************************/
|
|
7072
|
+
function json_diff_rows(doc_a, doc_b) {
|
|
7073
|
+
const kind_of = (v) => {
|
|
7074
|
+
if (Array.isArray(v)) return "array";
|
|
7075
|
+
if (v !== null && typeof v === "object") return "object";
|
|
7076
|
+
return "scalar";
|
|
7077
|
+
};
|
|
7078
|
+
let kind_a = kind_of(doc_a);
|
|
7079
|
+
if (kind_a === "scalar" || kind_a !== kind_of(doc_b)) {
|
|
7080
|
+
if (JSON.stringify(doc_a) === JSON.stringify(doc_b)) return [];
|
|
7081
|
+
return [{
|
|
7082
|
+
id: "",
|
|
7083
|
+
kind: "changed",
|
|
7084
|
+
from: doc_a,
|
|
7085
|
+
to: doc_b
|
|
7086
|
+
}];
|
|
7087
|
+
}
|
|
7088
|
+
let diff = (0, _yuneta_gobj_js.flat_diff)((0, _yuneta_gobj_js.json2flat)(doc_a), (0, _yuneta_gobj_js.json2flat)(doc_b));
|
|
7089
|
+
let rows = [];
|
|
7090
|
+
for (const id of Object.keys(diff.added)) rows.push({
|
|
7091
|
+
id,
|
|
7092
|
+
kind: "added",
|
|
7093
|
+
to: diff.added[id]
|
|
7094
|
+
});
|
|
7095
|
+
for (const id of Object.keys(diff.removed)) rows.push({
|
|
7096
|
+
id,
|
|
7097
|
+
kind: "removed",
|
|
7098
|
+
from: diff.removed[id]
|
|
7099
|
+
});
|
|
7100
|
+
for (const id of Object.keys(diff.changed)) rows.push({
|
|
7101
|
+
id,
|
|
7102
|
+
kind: "changed",
|
|
7103
|
+
from: diff.changed[id].from,
|
|
7104
|
+
to: diff.changed[id].to
|
|
7105
|
+
});
|
|
7106
|
+
const collator = new Intl.Collator("en", { numeric: true });
|
|
7107
|
+
rows.sort((x, y) => collator.compare(x.id, y.id));
|
|
7108
|
+
return rows;
|
|
7109
|
+
}
|
|
7056
7110
|
//#endregion
|
|
7057
7111
|
//#region src/c_yui_form.js
|
|
7058
7112
|
/***********************************************************************
|
|
@@ -7066,11 +7120,11 @@ function count_branches(value) {
|
|
|
7066
7120
|
/***************************************************************
|
|
7067
7121
|
* Constants
|
|
7068
7122
|
***************************************************************/
|
|
7069
|
-
var GCLASS_NAME$
|
|
7123
|
+
var GCLASS_NAME$17 = "C_YUI_FORM";
|
|
7070
7124
|
/***************************************************************
|
|
7071
7125
|
* Data
|
|
7072
7126
|
***************************************************************/
|
|
7073
|
-
var attrs_table$
|
|
7127
|
+
var attrs_table$17 = [
|
|
7074
7128
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of publishing messages"),
|
|
7075
7129
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$parent", 0, null, "$container will be appended to $parent if not null, else do it manually"),
|
|
7076
7130
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "template", 0, "<div>You must supply a template for form</div>", "Template for form, object -> TEMPLATE, array -> DESC"),
|
|
@@ -7100,41 +7154,41 @@ var attrs_table$16 = [
|
|
|
7100
7154
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_BOOLEAN, "changes", 0, false, "Indicates if changes have been made"),
|
|
7101
7155
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
7102
7156
|
];
|
|
7103
|
-
var PRIVATE_DATA$
|
|
7104
|
-
var __gclass__$
|
|
7157
|
+
var PRIVATE_DATA$17 = {};
|
|
7158
|
+
var __gclass__$17 = null;
|
|
7105
7159
|
/***************************
|
|
7106
7160
|
* Framework Methods
|
|
7107
7161
|
***************************/
|
|
7108
7162
|
/************************************************************
|
|
7109
7163
|
* Framework Method create
|
|
7110
7164
|
************************************************************/
|
|
7111
|
-
function mt_create$
|
|
7165
|
+
function mt_create$17(gobj) {
|
|
7112
7166
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
7113
7167
|
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
7114
7168
|
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
7115
7169
|
let name = (0, _yuneta_gobj_js.clean_name)((0, _yuneta_gobj_js.gobj_name)(gobj));
|
|
7116
7170
|
(0, _yuneta_gobj_js.gobj_write_attr)(gobj, "form_id", "form" + name);
|
|
7117
|
-
build_ui$
|
|
7171
|
+
build_ui$15(gobj);
|
|
7118
7172
|
}
|
|
7119
7173
|
/************************************************************
|
|
7120
7174
|
* Framework Method destroy
|
|
7121
7175
|
* In this point, all children
|
|
7122
7176
|
* and subscriptions are already deleted.
|
|
7123
7177
|
************************************************************/
|
|
7124
|
-
function mt_destroy$
|
|
7178
|
+
function mt_destroy$17(gobj) {
|
|
7125
7179
|
destroy_ui$10(gobj);
|
|
7126
7180
|
}
|
|
7127
7181
|
/************************************************************
|
|
7128
7182
|
* Framework Method start
|
|
7129
7183
|
************************************************************/
|
|
7130
|
-
function mt_start$
|
|
7184
|
+
function mt_start$17(gobj) {
|
|
7131
7185
|
let record = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "record");
|
|
7132
7186
|
if (record) (0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_LOAD_RECORD", record, gobj);
|
|
7133
7187
|
}
|
|
7134
7188
|
/************************************************************
|
|
7135
7189
|
* Framework Method stop
|
|
7136
7190
|
************************************************************/
|
|
7137
|
-
function mt_stop$
|
|
7191
|
+
function mt_stop$17(gobj) {}
|
|
7138
7192
|
/***************************
|
|
7139
7193
|
* Local Methods
|
|
7140
7194
|
***************************/
|
|
@@ -7389,7 +7443,7 @@ function build_toolbar(gobj) {
|
|
|
7389
7443
|
/************************************************************
|
|
7390
7444
|
* Build UI
|
|
7391
7445
|
************************************************************/
|
|
7392
|
-
function build_ui$
|
|
7446
|
+
function build_ui$15(gobj) {
|
|
7393
7447
|
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
7394
7448
|
"div",
|
|
7395
7449
|
{
|
|
@@ -9407,18 +9461,18 @@ function cmd_get_picked_files(gobj, cmd, kw, src) {
|
|
|
9407
9461
|
data: files
|
|
9408
9462
|
};
|
|
9409
9463
|
}
|
|
9410
|
-
var gmt$
|
|
9411
|
-
mt_create: mt_create$
|
|
9412
|
-
mt_start: mt_start$
|
|
9413
|
-
mt_stop: mt_stop$
|
|
9414
|
-
mt_destroy: mt_destroy$
|
|
9464
|
+
var gmt$17 = {
|
|
9465
|
+
mt_create: mt_create$17,
|
|
9466
|
+
mt_start: mt_start$17,
|
|
9467
|
+
mt_stop: mt_stop$17,
|
|
9468
|
+
mt_destroy: mt_destroy$17,
|
|
9415
9469
|
mt_command_parser: mt_command_parser$2
|
|
9416
9470
|
};
|
|
9417
9471
|
/***************************************************************
|
|
9418
9472
|
* Create the GClass
|
|
9419
9473
|
***************************************************************/
|
|
9420
|
-
function create_gclass$
|
|
9421
|
-
if (__gclass__$
|
|
9474
|
+
function create_gclass$17(gclass_name) {
|
|
9475
|
+
if (__gclass__$17) {
|
|
9422
9476
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
9423
9477
|
return -1;
|
|
9424
9478
|
}
|
|
@@ -9516,16 +9570,16 @@ function create_gclass$16(gclass_name) {
|
|
|
9516
9570
|
["EV_HIDE", 0],
|
|
9517
9571
|
["EV_TIMEOUT", 0]
|
|
9518
9572
|
];
|
|
9519
|
-
__gclass__$
|
|
9520
|
-
if (!__gclass__$
|
|
9573
|
+
__gclass__$17 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$17, 0, attrs_table$17, PRIVATE_DATA$17, 0, 0, 0, 0);
|
|
9574
|
+
if (!__gclass__$17) return -1;
|
|
9521
9575
|
return 0;
|
|
9522
9576
|
}
|
|
9523
9577
|
/***************************************************************
|
|
9524
9578
|
* Register GClass
|
|
9525
9579
|
***************************************************************/
|
|
9526
9580
|
function register_c_yui_form() {
|
|
9527
|
-
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$
|
|
9528
|
-
return create_gclass$
|
|
9581
|
+
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$17, false)) return 0;
|
|
9582
|
+
return create_gclass$17(GCLASS_NAME$17);
|
|
9529
9583
|
}
|
|
9530
9584
|
//#endregion
|
|
9531
9585
|
//#region src/lib_maplibre.js
|
|
@@ -9763,12 +9817,12 @@ function yui_maplibre_relocalize(map, t) {
|
|
|
9763
9817
|
/***************************************************************
|
|
9764
9818
|
* Constants
|
|
9765
9819
|
***************************************************************/
|
|
9766
|
-
var GCLASS_NAME$
|
|
9820
|
+
var GCLASS_NAME$16 = "C_YUI_MAP";
|
|
9767
9821
|
var GESTURE_HINT_MS = 2e3;
|
|
9768
9822
|
/***************************************************************
|
|
9769
9823
|
* Data
|
|
9770
9824
|
***************************************************************/
|
|
9771
|
-
var attrs_table$
|
|
9825
|
+
var attrs_table$16 = [
|
|
9772
9826
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
9773
9827
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "devices", "[]", null, "List of devices"),
|
|
9774
9828
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "map_settings", 0, {
|
|
@@ -9789,7 +9843,7 @@ var attrs_table$15 = [
|
|
|
9789
9843
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "timeout_idle", 0, 5, "Idle timeout in seconds"),
|
|
9790
9844
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
9791
9845
|
];
|
|
9792
|
-
var PRIVATE_DATA$
|
|
9846
|
+
var PRIVATE_DATA$16 = {
|
|
9793
9847
|
xmap: null,
|
|
9794
9848
|
gesture_hint_timer: null,
|
|
9795
9849
|
geojson: null,
|
|
@@ -9799,21 +9853,21 @@ var PRIVATE_DATA$15 = {
|
|
|
9799
9853
|
markers: {},
|
|
9800
9854
|
draggedFeature: null
|
|
9801
9855
|
};
|
|
9802
|
-
var __gclass__$
|
|
9856
|
+
var __gclass__$16 = null;
|
|
9803
9857
|
/******************************
|
|
9804
9858
|
* Framework Methods
|
|
9805
9859
|
******************************/
|
|
9806
9860
|
/***************************************************************
|
|
9807
9861
|
* Framework Method: Create
|
|
9808
9862
|
***************************************************************/
|
|
9809
|
-
function mt_create$
|
|
9863
|
+
function mt_create$16(gobj) {
|
|
9810
9864
|
let priv = gobj.priv;
|
|
9811
9865
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
9812
9866
|
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
9813
9867
|
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
9814
9868
|
let map_settings = (0, _yuneta_gobj_js.json_deep_copy)((0, _yuneta_gobj_js.gobj_read_attr)(gobj, "map_settings"));
|
|
9815
9869
|
let $map = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$map");
|
|
9816
|
-
if ($map) $map.classList.add(GCLASS_NAME$
|
|
9870
|
+
if ($map) $map.classList.add(GCLASS_NAME$16);
|
|
9817
9871
|
Object.assign(map_settings, {
|
|
9818
9872
|
container: $map,
|
|
9819
9873
|
cooperativeGestures: true,
|
|
@@ -9892,7 +9946,7 @@ function ac_language_changed$9(gobj, event, kw, src) {
|
|
|
9892
9946
|
* in OUR dom -- cannot touch any of it. The shell says when the
|
|
9893
9947
|
* language changed and this view rewrites those strings.
|
|
9894
9948
|
***************************************************************/
|
|
9895
|
-
function mt_start$
|
|
9949
|
+
function mt_start$16(gobj) {
|
|
9896
9950
|
let shell = yui_shell_of(gobj);
|
|
9897
9951
|
if (shell) (0, _yuneta_gobj_js.gobj_subscribe_event)(shell, "EV_LANGUAGE_CHANGED", {}, gobj);
|
|
9898
9952
|
return 0;
|
|
@@ -9900,7 +9954,7 @@ function mt_start$15(gobj) {
|
|
|
9900
9954
|
/***************************************************************
|
|
9901
9955
|
* Framework Method: Stop
|
|
9902
9956
|
***************************************************************/
|
|
9903
|
-
function mt_stop$
|
|
9957
|
+
function mt_stop$16(gobj) {
|
|
9904
9958
|
let shell = yui_shell_of(gobj);
|
|
9905
9959
|
if (shell) (0, _yuneta_gobj_js.gobj_unsubscribe_event)(shell, "EV_LANGUAGE_CHANGED", {}, gobj);
|
|
9906
9960
|
return 0;
|
|
@@ -9908,7 +9962,7 @@ function mt_stop$15(gobj) {
|
|
|
9908
9962
|
/***************************************************************
|
|
9909
9963
|
* Framework Method: Destroy
|
|
9910
9964
|
***************************************************************/
|
|
9911
|
-
function mt_destroy$
|
|
9965
|
+
function mt_destroy$16(gobj) {
|
|
9912
9966
|
let priv = gobj.priv;
|
|
9913
9967
|
if (priv.gesture_hint_timer) {
|
|
9914
9968
|
clearTimeout(priv.gesture_hint_timer);
|
|
@@ -10372,21 +10426,21 @@ function ac_hide$10(gobj, event, kw, src) {
|
|
|
10372
10426
|
/***************************
|
|
10373
10427
|
* FSM
|
|
10374
10428
|
***************************/
|
|
10375
|
-
var gmt$
|
|
10376
|
-
mt_create: mt_create$
|
|
10377
|
-
mt_start: mt_start$
|
|
10378
|
-
mt_stop: mt_stop$
|
|
10379
|
-
mt_destroy: mt_destroy$
|
|
10429
|
+
var gmt$16 = {
|
|
10430
|
+
mt_create: mt_create$16,
|
|
10431
|
+
mt_start: mt_start$16,
|
|
10432
|
+
mt_stop: mt_stop$16,
|
|
10433
|
+
mt_destroy: mt_destroy$16
|
|
10380
10434
|
};
|
|
10381
10435
|
/***************************************************************
|
|
10382
10436
|
* Create the GClass
|
|
10383
10437
|
***************************************************************/
|
|
10384
|
-
function create_gclass$
|
|
10385
|
-
if (__gclass__$
|
|
10438
|
+
function create_gclass$16(gclass_name) {
|
|
10439
|
+
if (__gclass__$16) {
|
|
10386
10440
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
10387
10441
|
return -1;
|
|
10388
10442
|
}
|
|
10389
|
-
__gclass__$
|
|
10443
|
+
__gclass__$16 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
|
|
10390
10444
|
["EV_LANGUAGE_CHANGED", 0],
|
|
10391
10445
|
["EV_EDIT_MAP", 0],
|
|
10392
10446
|
["EV_CONTROL_MAP", 0],
|
|
@@ -10436,15 +10490,15 @@ function create_gclass$15(gclass_name) {
|
|
|
10436
10490
|
ac_hide$10,
|
|
10437
10491
|
null
|
|
10438
10492
|
]
|
|
10439
|
-
]]], gmt$
|
|
10440
|
-
if (!__gclass__$
|
|
10493
|
+
]]], gmt$16, 0, attrs_table$16, PRIVATE_DATA$16, 0, 0, 0, 0);
|
|
10494
|
+
if (!__gclass__$16) return -1;
|
|
10441
10495
|
return 0;
|
|
10442
10496
|
}
|
|
10443
10497
|
/***************************************************************
|
|
10444
10498
|
* Register GClass
|
|
10445
10499
|
***************************************************************/
|
|
10446
10500
|
function register_c_yui_map() {
|
|
10447
|
-
return create_gclass$
|
|
10501
|
+
return create_gclass$16(GCLASS_NAME$16);
|
|
10448
10502
|
}
|
|
10449
10503
|
//#endregion
|
|
10450
10504
|
//#region src/c_yui_uplot.js
|
|
@@ -10519,11 +10573,11 @@ function themed_axes(axes) {
|
|
|
10519
10573
|
/***************************************************************
|
|
10520
10574
|
* Constants
|
|
10521
10575
|
***************************************************************/
|
|
10522
|
-
var GCLASS_NAME$
|
|
10576
|
+
var GCLASS_NAME$15 = "C_YUI_UPLOT";
|
|
10523
10577
|
/***************************************************************
|
|
10524
10578
|
* Data
|
|
10525
10579
|
***************************************************************/
|
|
10526
|
-
var attrs_table$
|
|
10580
|
+
var attrs_table$15 = [
|
|
10527
10581
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
10528
10582
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "title", 0, "", "Chart title"),
|
|
10529
10583
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "width", 0, 800, "Chart width"),
|
|
@@ -10541,16 +10595,16 @@ var attrs_table$14 = [
|
|
|
10541
10595
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "timeout_idle", 0, 5, "Idle timeout (seconds)"),
|
|
10542
10596
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
10543
10597
|
];
|
|
10544
|
-
var PRIVATE_DATA$
|
|
10545
|
-
var __gclass__$
|
|
10598
|
+
var PRIVATE_DATA$15 = { theme_observer: null };
|
|
10599
|
+
var __gclass__$15 = null;
|
|
10546
10600
|
/******************************
|
|
10547
10601
|
* Framework Methods
|
|
10548
10602
|
******************************/
|
|
10549
10603
|
/***************************************************************
|
|
10550
10604
|
* Framework Method: Create
|
|
10551
10605
|
***************************************************************/
|
|
10552
|
-
function mt_create$
|
|
10553
|
-
build_ui$
|
|
10606
|
+
function mt_create$15(gobj) {
|
|
10607
|
+
build_ui$14(gobj);
|
|
10554
10608
|
gobj.priv.theme_observer = yui_watch_theme(gobj);
|
|
10555
10609
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
10556
10610
|
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
@@ -10559,15 +10613,15 @@ function mt_create$14(gobj) {
|
|
|
10559
10613
|
/***************************************************************
|
|
10560
10614
|
* Framework Method: Start
|
|
10561
10615
|
***************************************************************/
|
|
10562
|
-
function mt_start$
|
|
10616
|
+
function mt_start$15(gobj) {}
|
|
10563
10617
|
/***************************************************************
|
|
10564
10618
|
* Framework Method: Stop
|
|
10565
10619
|
***************************************************************/
|
|
10566
|
-
function mt_stop$
|
|
10620
|
+
function mt_stop$15(gobj) {}
|
|
10567
10621
|
/***************************************************************
|
|
10568
10622
|
* Framework Method: Destroy
|
|
10569
10623
|
***************************************************************/
|
|
10570
|
-
function mt_destroy$
|
|
10624
|
+
function mt_destroy$15(gobj) {
|
|
10571
10625
|
if (gobj.priv.theme_observer) {
|
|
10572
10626
|
gobj.priv.theme_observer.disconnect();
|
|
10573
10627
|
gobj.priv.theme_observer = null;
|
|
@@ -10585,7 +10639,7 @@ function mt_destroy$14(gobj) {
|
|
|
10585
10639
|
/************************************************************
|
|
10586
10640
|
* Build UI
|
|
10587
10641
|
************************************************************/
|
|
10588
|
-
function build_ui$
|
|
10642
|
+
function build_ui$14(gobj) {
|
|
10589
10643
|
let $container = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
|
|
10590
10644
|
if (!$container) {
|
|
10591
10645
|
$container = (0, _yuneta_gobj_js.createElement2)(["div", {
|
|
@@ -10742,7 +10796,7 @@ function ac_del_serie(gobj, event, kw, src) {
|
|
|
10742
10796
|
/******************************************************
|
|
10743
10797
|
*
|
|
10744
10798
|
******************************************************/
|
|
10745
|
-
function ac_clear(gobj, event, kw, src) {
|
|
10799
|
+
function ac_clear$1(gobj, event, kw, src) {
|
|
10746
10800
|
let uplot$7 = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "uplot");
|
|
10747
10801
|
uplot$7.setData([[]]);
|
|
10748
10802
|
for (let idx = uplot$7.series.length - 1; idx > 0; idx--) uplot$7.delSeries(idx);
|
|
@@ -10751,21 +10805,21 @@ function ac_clear(gobj, event, kw, src) {
|
|
|
10751
10805
|
/***************************
|
|
10752
10806
|
* FSM
|
|
10753
10807
|
***************************/
|
|
10754
|
-
var gmt$
|
|
10755
|
-
mt_create: mt_create$
|
|
10756
|
-
mt_start: mt_start$
|
|
10757
|
-
mt_stop: mt_stop$
|
|
10758
|
-
mt_destroy: mt_destroy$
|
|
10808
|
+
var gmt$15 = {
|
|
10809
|
+
mt_create: mt_create$15,
|
|
10810
|
+
mt_start: mt_start$15,
|
|
10811
|
+
mt_stop: mt_stop$15,
|
|
10812
|
+
mt_destroy: mt_destroy$15
|
|
10759
10813
|
};
|
|
10760
10814
|
/***************************************************************
|
|
10761
10815
|
* Create the GClass
|
|
10762
10816
|
***************************************************************/
|
|
10763
|
-
function create_gclass$
|
|
10764
|
-
if (__gclass__$
|
|
10817
|
+
function create_gclass$15(gclass_name) {
|
|
10818
|
+
if (__gclass__$15) {
|
|
10765
10819
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
10766
10820
|
return -1;
|
|
10767
10821
|
}
|
|
10768
|
-
__gclass__$
|
|
10822
|
+
__gclass__$15 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
|
|
10769
10823
|
["EV_LOAD_DATA", 0],
|
|
10770
10824
|
["EV_ADD_SERIE", 0],
|
|
10771
10825
|
["EV_DEL_SERIE", 0],
|
|
@@ -10789,7 +10843,7 @@ function create_gclass$14(gclass_name) {
|
|
|
10789
10843
|
],
|
|
10790
10844
|
[
|
|
10791
10845
|
"EV_CLEAR",
|
|
10792
|
-
ac_clear,
|
|
10846
|
+
ac_clear$1,
|
|
10793
10847
|
null
|
|
10794
10848
|
],
|
|
10795
10849
|
[
|
|
@@ -10797,15 +10851,15 @@ function create_gclass$14(gclass_name) {
|
|
|
10797
10851
|
ac_theme$4,
|
|
10798
10852
|
null
|
|
10799
10853
|
]
|
|
10800
|
-
]]], gmt$
|
|
10801
|
-
if (!__gclass__$
|
|
10854
|
+
]]], gmt$15, 0, attrs_table$15, PRIVATE_DATA$15, 0, 0, 0, 0);
|
|
10855
|
+
if (!__gclass__$15) return -1;
|
|
10802
10856
|
return 0;
|
|
10803
10857
|
}
|
|
10804
10858
|
/***************************************************************
|
|
10805
10859
|
* Register GClass
|
|
10806
10860
|
***************************************************************/
|
|
10807
10861
|
function register_c_yui_uplot() {
|
|
10808
|
-
return create_gclass$
|
|
10862
|
+
return create_gclass$15(GCLASS_NAME$15);
|
|
10809
10863
|
}
|
|
10810
10864
|
//#endregion
|
|
10811
10865
|
//#region src/yui_toolbar.js
|
|
@@ -11895,7 +11949,7 @@ function ensure_drag_canvas_patch() {
|
|
|
11895
11949
|
/***************************************************************
|
|
11896
11950
|
* Constants
|
|
11897
11951
|
***************************************************************/
|
|
11898
|
-
var GCLASS_NAME$
|
|
11952
|
+
var GCLASS_NAME$14 = "C_YUI_JSON_GRAPH";
|
|
11899
11953
|
var FOLD_SWALLOWED_EVENTS$1 = [
|
|
11900
11954
|
"pointerdown",
|
|
11901
11955
|
"pointerup",
|
|
@@ -11955,7 +12009,7 @@ function layout_label(key) {
|
|
|
11955
12009
|
/***************************************************************
|
|
11956
12010
|
* Data
|
|
11957
12011
|
***************************************************************/
|
|
11958
|
-
var attrs_table$
|
|
12012
|
+
var attrs_table$14 = [
|
|
11959
12013
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
11960
12014
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "path", 0, "", "Root path label"),
|
|
11961
12015
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "json_data", 0, null, "JSON data to visualize"),
|
|
@@ -11965,7 +12019,7 @@ var attrs_table$13 = [
|
|
|
11965
12019
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "layout", 0, "json-tree", "Layout key (see LAYOUTS)"),
|
|
11966
12020
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
11967
12021
|
];
|
|
11968
|
-
var PRIVATE_DATA$
|
|
12022
|
+
var PRIVATE_DATA$14 = {
|
|
11969
12023
|
canvas_id: "",
|
|
11970
12024
|
graph: null,
|
|
11971
12025
|
node_counter: 0,
|
|
@@ -11990,7 +12044,7 @@ var PRIVATE_DATA$13 = {
|
|
|
11990
12044
|
center_posted: false,
|
|
11991
12045
|
pending_keep: null
|
|
11992
12046
|
};
|
|
11993
|
-
var __gclass__$
|
|
12047
|
+
var __gclass__$14 = null;
|
|
11994
12048
|
var __layout_registered__$1 = false;
|
|
11995
12049
|
/***************************************************************
|
|
11996
12050
|
* Type colours, ONE EXPLICIT PALETTE PER THEME and not a
|
|
@@ -12095,7 +12149,7 @@ function type_color(type, dark) {
|
|
|
12095
12149
|
/***************************************************************
|
|
12096
12150
|
* Framework Method: Create
|
|
12097
12151
|
***************************************************************/
|
|
12098
|
-
function mt_create$
|
|
12152
|
+
function mt_create$14(gobj) {
|
|
12099
12153
|
let priv = gobj.priv;
|
|
12100
12154
|
priv.collapsed = /* @__PURE__ */ new Set();
|
|
12101
12155
|
priv.reserved = /* @__PURE__ */ new Map();
|
|
@@ -12107,7 +12161,7 @@ function mt_create$13(gobj) {
|
|
|
12107
12161
|
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
12108
12162
|
priv.theme = yui_theme_now();
|
|
12109
12163
|
priv.theme_observer = yui_watch_theme(gobj);
|
|
12110
|
-
build_ui$
|
|
12164
|
+
build_ui$13(gobj);
|
|
12111
12165
|
ensure_drag_canvas_patch();
|
|
12112
12166
|
ensure_pinch_zoom_patch();
|
|
12113
12167
|
if (!__layout_registered__$1) {
|
|
@@ -12118,18 +12172,18 @@ function mt_create$13(gobj) {
|
|
|
12118
12172
|
/***************************************************************
|
|
12119
12173
|
* Framework Method: Start
|
|
12120
12174
|
***************************************************************/
|
|
12121
|
-
function mt_start$
|
|
12175
|
+
function mt_start$14(gobj) {
|
|
12122
12176
|
build_graph$4(gobj);
|
|
12123
12177
|
load_json(gobj);
|
|
12124
12178
|
}
|
|
12125
12179
|
/***************************************************************
|
|
12126
12180
|
* Framework Method: Stop
|
|
12127
12181
|
***************************************************************/
|
|
12128
|
-
function mt_stop$
|
|
12182
|
+
function mt_stop$14(gobj) {}
|
|
12129
12183
|
/***************************************************************
|
|
12130
12184
|
* Framework Method: Destroy
|
|
12131
12185
|
***************************************************************/
|
|
12132
|
-
function mt_destroy$
|
|
12186
|
+
function mt_destroy$14(gobj) {
|
|
12133
12187
|
if (gobj.priv.find_timer) {
|
|
12134
12188
|
clearTimeout(gobj.priv.find_timer);
|
|
12135
12189
|
gobj.priv.find_timer = null;
|
|
@@ -12159,7 +12213,7 @@ function mt_destroy$13(gobj) {
|
|
|
12159
12213
|
/************************************************************
|
|
12160
12214
|
* Build UI
|
|
12161
12215
|
************************************************************/
|
|
12162
|
-
function build_ui$
|
|
12216
|
+
function build_ui$13(gobj) {
|
|
12163
12217
|
let priv = gobj.priv;
|
|
12164
12218
|
let $toolbar = make_toolbar$5(gobj);
|
|
12165
12219
|
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
@@ -13381,17 +13435,17 @@ function ac_hide$9(gobj, event, kw, src) {
|
|
|
13381
13435
|
/***************************
|
|
13382
13436
|
* FSM
|
|
13383
13437
|
***************************/
|
|
13384
|
-
var gmt$
|
|
13385
|
-
mt_create: mt_create$
|
|
13386
|
-
mt_start: mt_start$
|
|
13387
|
-
mt_stop: mt_stop$
|
|
13388
|
-
mt_destroy: mt_destroy$
|
|
13438
|
+
var gmt$14 = {
|
|
13439
|
+
mt_create: mt_create$14,
|
|
13440
|
+
mt_start: mt_start$14,
|
|
13441
|
+
mt_stop: mt_stop$14,
|
|
13442
|
+
mt_destroy: mt_destroy$14
|
|
13389
13443
|
};
|
|
13390
13444
|
/***************************************************************
|
|
13391
13445
|
* Create the GClass
|
|
13392
13446
|
***************************************************************/
|
|
13393
|
-
function create_gclass$
|
|
13394
|
-
if (__gclass__$
|
|
13447
|
+
function create_gclass$14(gclass_name) {
|
|
13448
|
+
if (__gclass__$14) {
|
|
13395
13449
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
13396
13450
|
return -1;
|
|
13397
13451
|
}
|
|
@@ -13508,16 +13562,16 @@ function create_gclass$13(gclass_name) {
|
|
|
13508
13562
|
["EV_HIDE", 0],
|
|
13509
13563
|
["EV_JSON_ITEM_CLICKED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT]
|
|
13510
13564
|
];
|
|
13511
|
-
__gclass__$
|
|
13512
|
-
if (!__gclass__$
|
|
13565
|
+
__gclass__$14 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$14, 0, attrs_table$14, PRIVATE_DATA$14, 0, 0, 0, 0);
|
|
13566
|
+
if (!__gclass__$14) return -1;
|
|
13513
13567
|
return 0;
|
|
13514
13568
|
}
|
|
13515
13569
|
/***************************************************************
|
|
13516
13570
|
* Register GClass
|
|
13517
13571
|
***************************************************************/
|
|
13518
13572
|
function register_c_yui_json_graph() {
|
|
13519
|
-
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$
|
|
13520
|
-
return create_gclass$
|
|
13573
|
+
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$14, false)) return 0;
|
|
13574
|
+
return create_gclass$14(GCLASS_NAME$14);
|
|
13521
13575
|
}
|
|
13522
13576
|
//#endregion
|
|
13523
13577
|
//#region src/c_yui_json.js
|
|
@@ -13582,7 +13636,7 @@ function register_c_yui_json_graph() {
|
|
|
13582
13636
|
/***************************************************************
|
|
13583
13637
|
* Constants
|
|
13584
13638
|
***************************************************************/
|
|
13585
|
-
var GCLASS_NAME$
|
|
13639
|
+
var GCLASS_NAME$13 = "C_YUI_JSON";
|
|
13586
13640
|
var MAX_RENDER_ROWS = 5e3;
|
|
13587
13641
|
var MAX_TEXT_CHARS = 2e6;
|
|
13588
13642
|
var MAX_LABEL_CHARS = 40;
|
|
@@ -13607,7 +13661,7 @@ var VIEW_MODE_STORAGE_KEY = "yui_json_view_mode";
|
|
|
13607
13661
|
/***************************************************************
|
|
13608
13662
|
* Data
|
|
13609
13663
|
***************************************************************/
|
|
13610
|
-
var attrs_table$
|
|
13664
|
+
var attrs_table$13 = [
|
|
13611
13665
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
13612
13666
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "title", 0, "", "Optional header title (i18n key)"),
|
|
13613
13667
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "json_data", 0, null, "Initial JSON to render (usually already collapsed)"),
|
|
@@ -13615,7 +13669,7 @@ var attrs_table$12 = [
|
|
|
13615
13669
|
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
|
|
13616
13670
|
(0, _yuneta_gobj_js.SDATA_END)()
|
|
13617
13671
|
];
|
|
13618
|
-
var PRIVATE_DATA$
|
|
13672
|
+
var PRIVATE_DATA$13 = {
|
|
13619
13673
|
root: null,
|
|
13620
13674
|
expanded: null,
|
|
13621
13675
|
pending: null,
|
|
@@ -13632,14 +13686,14 @@ var PRIVATE_DATA$12 = {
|
|
|
13632
13686
|
$collapse_btn: null,
|
|
13633
13687
|
$mode_btns: null
|
|
13634
13688
|
};
|
|
13635
|
-
var __gclass__$
|
|
13689
|
+
var __gclass__$13 = null;
|
|
13636
13690
|
/******************************
|
|
13637
13691
|
* Framework Methods
|
|
13638
13692
|
******************************/
|
|
13639
13693
|
/***************************************************************
|
|
13640
13694
|
* Framework Method: Create
|
|
13641
13695
|
***************************************************************/
|
|
13642
|
-
function mt_create$
|
|
13696
|
+
function mt_create$13(gobj) {
|
|
13643
13697
|
let priv = gobj.priv;
|
|
13644
13698
|
priv.expanded = /* @__PURE__ */ new Set();
|
|
13645
13699
|
priv.pending = /* @__PURE__ */ new Set();
|
|
@@ -13647,7 +13701,7 @@ function mt_create$12(gobj) {
|
|
|
13647
13701
|
priv.search = "";
|
|
13648
13702
|
let json_data = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "json_data");
|
|
13649
13703
|
if (json_data !== null && json_data !== void 0) priv.root = (0, _yuneta_gobj_js.json_deep_copy)(json_data);
|
|
13650
|
-
build_ui$
|
|
13704
|
+
build_ui$12(gobj);
|
|
13651
13705
|
resolve_initial_view_mode(gobj);
|
|
13652
13706
|
apply_view_mode$1(gobj);
|
|
13653
13707
|
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
@@ -13657,19 +13711,19 @@ function mt_create$12(gobj) {
|
|
|
13657
13711
|
/***************************************************************
|
|
13658
13712
|
* Framework Method: Start
|
|
13659
13713
|
***************************************************************/
|
|
13660
|
-
function mt_start$
|
|
13714
|
+
function mt_start$13(gobj) {
|
|
13661
13715
|
render_view$1(gobj);
|
|
13662
13716
|
}
|
|
13663
13717
|
/***************************************************************
|
|
13664
13718
|
* Framework Method: Stop
|
|
13665
13719
|
***************************************************************/
|
|
13666
|
-
function mt_stop$
|
|
13720
|
+
function mt_stop$13(gobj) {
|
|
13667
13721
|
teardown_graph_child$1(gobj);
|
|
13668
13722
|
}
|
|
13669
13723
|
/***************************************************************
|
|
13670
13724
|
* Framework Method: Destroy
|
|
13671
13725
|
***************************************************************/
|
|
13672
|
-
function mt_destroy$
|
|
13726
|
+
function mt_destroy$13(gobj) {
|
|
13673
13727
|
destroy_ui$7(gobj);
|
|
13674
13728
|
}
|
|
13675
13729
|
/***************************
|
|
@@ -13678,7 +13732,7 @@ function mt_destroy$12(gobj) {
|
|
|
13678
13732
|
/************************************************************
|
|
13679
13733
|
* Build UI
|
|
13680
13734
|
************************************************************/
|
|
13681
|
-
function build_ui$
|
|
13735
|
+
function build_ui$12(gobj) {
|
|
13682
13736
|
let priv = gobj.priv;
|
|
13683
13737
|
let $toolbar = make_toolbar$4(gobj);
|
|
13684
13738
|
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
@@ -14073,7 +14127,7 @@ function render_text(gobj) {
|
|
|
14073
14127
|
return;
|
|
14074
14128
|
}
|
|
14075
14129
|
let dump = json_text_dump(priv.root, MAX_TEXT_CHARS);
|
|
14076
|
-
if (dump.error) (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14130
|
+
if (dump.error) (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: cannot dump the document as text: ${dump.error}`);
|
|
14077
14131
|
let $pre = (0, _yuneta_gobj_js.createElement2)([
|
|
14078
14132
|
"pre",
|
|
14079
14133
|
{ class: "JSON_TEXT_BODY" },
|
|
@@ -14456,7 +14510,7 @@ function ac_subtree_error(gobj, event, kw, src) {
|
|
|
14456
14510
|
let path = kw.path || "";
|
|
14457
14511
|
priv.pending.delete(path);
|
|
14458
14512
|
priv.errors.set(path, kw.error || "error");
|
|
14459
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14513
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: subtree load failed at '${path}': ${kw.error || ""}`);
|
|
14460
14514
|
render_view$1(gobj);
|
|
14461
14515
|
return 0;
|
|
14462
14516
|
}
|
|
@@ -14531,14 +14585,14 @@ function ac_copy_all$1(gobj, event, kw, src) {
|
|
|
14531
14585
|
if (priv.root === null || priv.root === void 0) return 0;
|
|
14532
14586
|
let dump = json_text_dump(priv.root, 0);
|
|
14533
14587
|
if (dump.error) {
|
|
14534
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14588
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: cannot copy the document: ${dump.error}`);
|
|
14535
14589
|
return -1;
|
|
14536
14590
|
}
|
|
14537
14591
|
let text = dump.text;
|
|
14538
14592
|
if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(text).catch(function(e) {
|
|
14539
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14593
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: clipboard write failed: ${e}`);
|
|
14540
14594
|
});
|
|
14541
|
-
else (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14595
|
+
else (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: clipboard API unavailable`);
|
|
14542
14596
|
return 0;
|
|
14543
14597
|
}
|
|
14544
14598
|
/************************************************************
|
|
@@ -14554,7 +14608,7 @@ function ac_set_view_mode$1(gobj, event, kw, src) {
|
|
|
14554
14608
|
let mode = kw.mode;
|
|
14555
14609
|
if (mode === void 0 || mode === null || mode === "") mode = VIEWS$1[(VIEWS$1.findIndex((v) => v.mode === current_view_mode$1(gobj)) + 1) % VIEWS$1.length].mode;
|
|
14556
14610
|
else if (!VIEWS$1.some((v) => v.mode === mode)) {
|
|
14557
|
-
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$
|
|
14611
|
+
(0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: unknown view_mode '${mode}'`);
|
|
14558
14612
|
return -1;
|
|
14559
14613
|
}
|
|
14560
14614
|
if (mode === current_view_mode$1(gobj)) return 0;
|
|
@@ -14620,17 +14674,17 @@ function ac_refresh$5(gobj, event, kw, src) {
|
|
|
14620
14674
|
/***************************
|
|
14621
14675
|
* FSM
|
|
14622
14676
|
***************************/
|
|
14623
|
-
var gmt$
|
|
14624
|
-
mt_create: mt_create$
|
|
14625
|
-
mt_start: mt_start$
|
|
14626
|
-
mt_stop: mt_stop$
|
|
14627
|
-
mt_destroy: mt_destroy$
|
|
14677
|
+
var gmt$13 = {
|
|
14678
|
+
mt_create: mt_create$13,
|
|
14679
|
+
mt_start: mt_start$13,
|
|
14680
|
+
mt_stop: mt_stop$13,
|
|
14681
|
+
mt_destroy: mt_destroy$13
|
|
14628
14682
|
};
|
|
14629
14683
|
/***************************************************************
|
|
14630
14684
|
* Create the GClass
|
|
14631
14685
|
***************************************************************/
|
|
14632
|
-
function create_gclass$
|
|
14633
|
-
if (__gclass__$
|
|
14686
|
+
function create_gclass$13(gclass_name) {
|
|
14687
|
+
if (__gclass__$13) {
|
|
14634
14688
|
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
14635
14689
|
return -1;
|
|
14636
14690
|
}
|
|
@@ -14760,16 +14814,895 @@ function create_gclass$12(gclass_name) {
|
|
|
14760
14814
|
["EV_HIDE", 0],
|
|
14761
14815
|
["EV_EXPAND_PATH", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS]
|
|
14762
14816
|
];
|
|
14763
|
-
__gclass__$
|
|
14764
|
-
if (!__gclass__$
|
|
14817
|
+
__gclass__$13 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, event_types, states, gmt$13, 0, attrs_table$13, PRIVATE_DATA$13, 0, 0, 0, 0);
|
|
14818
|
+
if (!__gclass__$13) return -1;
|
|
14765
14819
|
return 0;
|
|
14766
14820
|
}
|
|
14767
14821
|
/***************************************************************
|
|
14768
14822
|
* Register GClass
|
|
14769
14823
|
***************************************************************/
|
|
14770
14824
|
function register_c_yui_json() {
|
|
14771
|
-
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$
|
|
14825
|
+
if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$13, false)) return 0;
|
|
14772
14826
|
if (!(0, _yuneta_gobj_js.gclass_find_by_name)("C_YUI_JSON_GRAPH", false)) register_c_yui_json_graph();
|
|
14827
|
+
return create_gclass$13(GCLASS_NAME$13);
|
|
14828
|
+
}
|
|
14829
|
+
//#endregion
|
|
14830
|
+
//#region src/c_yui_json_pad.js
|
|
14831
|
+
/***********************************************************************
|
|
14832
|
+
* c_yui_json_pad.js
|
|
14833
|
+
*
|
|
14834
|
+
* C_YUI_JSON_PAD -- a pad to paste JSON from OUTSIDE and read it
|
|
14835
|
+
* with the library's own viewer, and a second one to compare it
|
|
14836
|
+
* with.
|
|
14837
|
+
*
|
|
14838
|
+
* The viewer (C_YUI_JSON: the lazy tree, the raw text and the
|
|
14839
|
+
* graph) only ever showed what an app fetched. A JSON that came
|
|
14840
|
+
* from anywhere else -- a log line, a config file, an answer copied
|
|
14841
|
+
* from a terminal -- had to be read in whatever the operator had
|
|
14842
|
+
* at hand. This is the blank page for it: paste, and read it the
|
|
14843
|
+
* way every other document of the app is read.
|
|
14844
|
+
*
|
|
14845
|
+
* Two documents are the other half of the job: the config that
|
|
14846
|
+
* works and the one that does not, a record before and after. The
|
|
14847
|
+
* second pane is there on demand ("second json"), and "compare"
|
|
14848
|
+
* puts their differences in place of the two viewers -- one row
|
|
14849
|
+
* per id of the flat form (json2flat), the form a person reads
|
|
14850
|
+
* when two configurations disagree.
|
|
14851
|
+
*
|
|
14852
|
+
* DOM (UPPER_SNAKE logical classes):
|
|
14853
|
+
*
|
|
14854
|
+
* JSON_PAD the root
|
|
14855
|
+
* JSON_PAD_TOOLBAR the notice and the two toggles
|
|
14856
|
+
* JSON_PAD_NOTICE "json not kept": the storage refused
|
|
14857
|
+
* JSON_PAD_SECOND show / hide the second pane
|
|
14858
|
+
* JSON_PAD_COMPARE show / hide the differences
|
|
14859
|
+
* JSON_PAD_PANES the panes, side by side (stacked when
|
|
14860
|
+
* the pad is narrow)
|
|
14861
|
+
* JSON_PAD_PANE JSON_PAD_PANE_A / JSON_PAD_PANE_B
|
|
14862
|
+
* JSON_PAD_BAR the text area and its two buttons
|
|
14863
|
+
* JSON_PAD_INPUT where the text goes
|
|
14864
|
+
* JSON_PAD_VIEW read what is in the text area
|
|
14865
|
+
* JSON_PAD_CLEAR empty the pane
|
|
14866
|
+
* JSON_PAD_ERROR "invalid JSON" and the parser's reason
|
|
14867
|
+
* JSON_PAD_BODY the pane's C_YUI_JSON child
|
|
14868
|
+
* JSON_PAD_DIFF the differences: JSON_PAD_DIFF_SUMMARY
|
|
14869
|
+
* and JSON_PAD_DIFF_TABLE, one
|
|
14870
|
+
* JSON_PAD_DIFF_ROW per id
|
|
14871
|
+
*
|
|
14872
|
+
* Every way in is an event, and a pane event names its pane
|
|
14873
|
+
* (`pane`: "a" or "b"):
|
|
14874
|
+
*
|
|
14875
|
+
* EV_PASTE {pane, text} a paste ANYWHERE in a pane replaces
|
|
14876
|
+
* its document and shows it at once --
|
|
14877
|
+
* a pane holds one document, not a
|
|
14878
|
+
* text to edit
|
|
14879
|
+
* EV_VIEW {pane} the text area as it is (typed, or
|
|
14880
|
+
* edited after a paste); also Ctrl+Enter
|
|
14881
|
+
* EV_CLEAR {pane} back to a blank pane
|
|
14882
|
+
* EV_TEXT_CHANGED {pane} the text area was edited: keep it
|
|
14883
|
+
* EV_TOGGLE_SECOND show / hide the second pane
|
|
14884
|
+
* EV_TOGGLE_DIFF show / hide the differences
|
|
14885
|
+
*
|
|
14886
|
+
* FSM: the states are the LAYOUT -- ST_SINGLE (one pane), ST_DUAL
|
|
14887
|
+
* (two), ST_DIFF (two, with their differences in place of the
|
|
14888
|
+
* viewers). Comparing needs two panes, so EV_TOGGLE_DIFF is not
|
|
14889
|
+
* defined in ST_SINGLE and its button is not on screen there.
|
|
14890
|
+
* EV_EXPAND_PATH, which a viewer publishes when a `__collapsed__`
|
|
14891
|
+
* sentinel is opened, is answered with EV_SUBTREE_ERROR to the
|
|
14892
|
+
* viewer that asked: a pasted document has no backend to fetch the
|
|
14893
|
+
* rest from -- the source truncated it, and the pad says so. It is
|
|
14894
|
+
* not defined in ST_DIFF, where no viewer is on screen.
|
|
14895
|
+
*
|
|
14896
|
+
* What is kept: both texts and the layout, in localStorage under
|
|
14897
|
+
* `storage_key` (empty: nothing is kept), written when a text is
|
|
14898
|
+
* pasted, viewed, cleared or edited and when the layout changes,
|
|
14899
|
+
* so the next pad opens as this one was left. localStorage is per
|
|
14900
|
+
* browser and per origin, and has a quota: a text too big for it
|
|
14901
|
+
* is not kept, the toolbar says so, and the log says why.
|
|
14902
|
+
*
|
|
14903
|
+
* Hosted by setup_json_pad() (yui_json_pad.js) in a C_YUI_WINDOW;
|
|
14904
|
+
* any host can mount `$container` itself.
|
|
14905
|
+
*
|
|
14906
|
+
* Copyright (c) 2026, ArtGins.
|
|
14907
|
+
* All Rights Reserved.
|
|
14908
|
+
***********************************************************************/
|
|
14909
|
+
/***************************************************************
|
|
14910
|
+
* Constants
|
|
14911
|
+
***************************************************************/
|
|
14912
|
+
var GCLASS_NAME$12 = "C_YUI_JSON_PAD";
|
|
14913
|
+
var PANES = ["a", "b"];
|
|
14914
|
+
var MODE_OF_STATE = {
|
|
14915
|
+
ST_SINGLE: "single",
|
|
14916
|
+
ST_DUAL: "dual",
|
|
14917
|
+
ST_DIFF: "diff"
|
|
14918
|
+
};
|
|
14919
|
+
var KIND_TAG = {
|
|
14920
|
+
added: () => [
|
|
14921
|
+
"span",
|
|
14922
|
+
{
|
|
14923
|
+
class: "tag is-success is-light",
|
|
14924
|
+
i18n: "added"
|
|
14925
|
+
},
|
|
14926
|
+
"added"
|
|
14927
|
+
],
|
|
14928
|
+
removed: () => [
|
|
14929
|
+
"span",
|
|
14930
|
+
{
|
|
14931
|
+
class: "tag is-danger is-light",
|
|
14932
|
+
i18n: "removed"
|
|
14933
|
+
},
|
|
14934
|
+
"removed"
|
|
14935
|
+
],
|
|
14936
|
+
changed: () => [
|
|
14937
|
+
"span",
|
|
14938
|
+
{
|
|
14939
|
+
class: "tag is-warning is-light",
|
|
14940
|
+
i18n: "changed"
|
|
14941
|
+
},
|
|
14942
|
+
"changed"
|
|
14943
|
+
]
|
|
14944
|
+
};
|
|
14945
|
+
/***************************************************************
|
|
14946
|
+
* Data
|
|
14947
|
+
***************************************************************/
|
|
14948
|
+
var attrs_table$12 = [
|
|
14949
|
+
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
|
|
14950
|
+
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "storage_key", 0, "yui_json_pad", "localStorage key the two texts and the layout are kept under. Empty: nothing is kept"),
|
|
14951
|
+
(0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the host"),
|
|
14952
|
+
(0, _yuneta_gobj_js.SDATA_END)()
|
|
14953
|
+
];
|
|
14954
|
+
var PRIVATE_DATA$12 = {
|
|
14955
|
+
panes: null,
|
|
14956
|
+
$compare: null,
|
|
14957
|
+
$notice: null,
|
|
14958
|
+
$diff: null
|
|
14959
|
+
};
|
|
14960
|
+
var __gclass__$12 = null;
|
|
14961
|
+
/******************************
|
|
14962
|
+
* Framework Methods
|
|
14963
|
+
******************************/
|
|
14964
|
+
/***************************************************************
|
|
14965
|
+
* Framework Method: Create
|
|
14966
|
+
***************************************************************/
|
|
14967
|
+
function mt_create$12(gobj) {
|
|
14968
|
+
let priv = gobj.priv;
|
|
14969
|
+
let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
|
|
14970
|
+
if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
|
|
14971
|
+
(0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
|
|
14972
|
+
build_ui$11(gobj);
|
|
14973
|
+
for (const id of PANES) {
|
|
14974
|
+
let pane = priv.panes[id];
|
|
14975
|
+
pane.gobj_json = (0, _yuneta_gobj_js.gobj_create_pure_child)(`json_pad_view_${id}`, "C_YUI_JSON", {}, gobj);
|
|
14976
|
+
let $view = pane.gobj_json ? (0, _yuneta_gobj_js.gobj_read_attr)(pane.gobj_json, "$container") : null;
|
|
14977
|
+
if (!$view) {
|
|
14978
|
+
(0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(gobj)}: C_YUI_JSON without $container`);
|
|
14979
|
+
continue;
|
|
14980
|
+
}
|
|
14981
|
+
pane.$body.appendChild($view);
|
|
14982
|
+
}
|
|
14983
|
+
}
|
|
14984
|
+
/***************************************************************
|
|
14985
|
+
* Framework Method: Start
|
|
14986
|
+
***************************************************************/
|
|
14987
|
+
function mt_start$12(gobj) {
|
|
14988
|
+
let priv = gobj.priv;
|
|
14989
|
+
for (const id of PANES) if (priv.panes[id].gobj_json) (0, _yuneta_gobj_js.gobj_start)(priv.panes[id].gobj_json);
|
|
14990
|
+
restore_state(gobj);
|
|
14991
|
+
priv.panes.a.$input.focus();
|
|
14992
|
+
}
|
|
14993
|
+
/***************************************************************
|
|
14994
|
+
* Framework Method: Stop
|
|
14995
|
+
***************************************************************/
|
|
14996
|
+
function mt_stop$12(gobj) {
|
|
14997
|
+
let priv = gobj.priv;
|
|
14998
|
+
save_state(gobj);
|
|
14999
|
+
for (const id of PANES) {
|
|
15000
|
+
let gobj_json = priv.panes[id].gobj_json;
|
|
15001
|
+
if (gobj_json && (0, _yuneta_gobj_js.gobj_is_running)(gobj_json)) (0, _yuneta_gobj_js.gobj_stop)(gobj_json);
|
|
15002
|
+
}
|
|
15003
|
+
}
|
|
15004
|
+
/***************************************************************
|
|
15005
|
+
* Framework Method: Destroy
|
|
15006
|
+
***************************************************************/
|
|
15007
|
+
function mt_destroy$12(gobj) {}
|
|
15008
|
+
/***************************
|
|
15009
|
+
* Local Methods
|
|
15010
|
+
***************************/
|
|
15011
|
+
/***************************************************************
|
|
15012
|
+
* A button of the pad: an icon, its label, and an event.
|
|
15013
|
+
***************************************************************/
|
|
15014
|
+
function pad_button(gobj, cls, icon, key, event_name, kw) {
|
|
15015
|
+
return [
|
|
15016
|
+
"button",
|
|
15017
|
+
{
|
|
15018
|
+
class: `${cls} button`,
|
|
15019
|
+
type: "button",
|
|
15020
|
+
title: (0, i18next.t)(key),
|
|
15021
|
+
"data-i18n-title": key,
|
|
15022
|
+
"aria-label": (0, i18next.t)(key),
|
|
15023
|
+
"data-i18n-aria-label": key
|
|
15024
|
+
},
|
|
15025
|
+
[yui_toolbar_icon(icon), [
|
|
15026
|
+
"span",
|
|
15027
|
+
{
|
|
15028
|
+
style: "padding-left:5px;",
|
|
15029
|
+
i18n: key
|
|
15030
|
+
},
|
|
15031
|
+
key
|
|
15032
|
+
]],
|
|
15033
|
+
{ click: (evt) => {
|
|
15034
|
+
evt.stopPropagation();
|
|
15035
|
+
(0, _yuneta_gobj_js.gobj_send_event)(gobj, event_name, { ...kw }, gobj);
|
|
15036
|
+
} }
|
|
15037
|
+
];
|
|
15038
|
+
}
|
|
15039
|
+
/***************************************************************
|
|
15040
|
+
* The toolbar, the two panes, and the differences.
|
|
15041
|
+
***************************************************************/
|
|
15042
|
+
function build_ui$11(gobj) {
|
|
15043
|
+
let priv = gobj.priv;
|
|
15044
|
+
priv.$notice = (0, _yuneta_gobj_js.createElement2)([
|
|
15045
|
+
"div",
|
|
15046
|
+
{
|
|
15047
|
+
class: "JSON_PAD_NOTICE is-hidden has-text-danger is-size-7",
|
|
15048
|
+
role: "status"
|
|
15049
|
+
},
|
|
15050
|
+
[[
|
|
15051
|
+
"span",
|
|
15052
|
+
{
|
|
15053
|
+
style: "font-weight:600;",
|
|
15054
|
+
i18n: "json not kept"
|
|
15055
|
+
},
|
|
15056
|
+
"json not kept"
|
|
15057
|
+
]]
|
|
15058
|
+
]);
|
|
15059
|
+
priv.$compare = (0, _yuneta_gobj_js.createElement2)(pad_button(gobj, "JSON_PAD_COMPARE is-hidden", "yi-right-left", "compare", "EV_TOGGLE_DIFF", {}));
|
|
15060
|
+
priv.panes = {
|
|
15061
|
+
a: build_pane(gobj, "a", "first json"),
|
|
15062
|
+
b: build_pane(gobj, "b", "second json")
|
|
15063
|
+
};
|
|
15064
|
+
priv.panes.b.$pane.classList.add("is-hidden");
|
|
15065
|
+
priv.$diff = (0, _yuneta_gobj_js.createElement2)([
|
|
15066
|
+
"div",
|
|
15067
|
+
{ class: "JSON_PAD_DIFF is-hidden" },
|
|
15068
|
+
[]
|
|
15069
|
+
]);
|
|
15070
|
+
let $container = (0, _yuneta_gobj_js.createElement2)([
|
|
15071
|
+
"div",
|
|
15072
|
+
{ class: "C_YUI_JSON_PAD JSON_PAD" },
|
|
15073
|
+
[
|
|
15074
|
+
[
|
|
15075
|
+
"div",
|
|
15076
|
+
{ class: "JSON_PAD_TOOLBAR" },
|
|
15077
|
+
[
|
|
15078
|
+
priv.$notice,
|
|
15079
|
+
pad_button(gobj, "JSON_PAD_SECOND", "yi-columns", "second json", "EV_TOGGLE_SECOND", {}),
|
|
15080
|
+
priv.$compare
|
|
15081
|
+
]
|
|
15082
|
+
],
|
|
15083
|
+
[
|
|
15084
|
+
"div",
|
|
15085
|
+
{ class: "JSON_PAD_PANES" },
|
|
15086
|
+
[priv.panes.a.$pane, priv.panes.b.$pane]
|
|
15087
|
+
],
|
|
15088
|
+
priv.$diff
|
|
15089
|
+
]
|
|
15090
|
+
]);
|
|
15091
|
+
(0, _yuneta_gobj_js.gobj_write_attr)(gobj, "$container", $container);
|
|
15092
|
+
press_toggle(gobj, ".JSON_PAD_SECOND", false);
|
|
15093
|
+
press_toggle(gobj, ".JSON_PAD_COMPARE", false);
|
|
15094
|
+
}
|
|
15095
|
+
/***************************************************************
|
|
15096
|
+
* One pane: the text area and its buttons, the error line, and
|
|
15097
|
+
* the body its viewer is mounted in. `name_key` names the pane
|
|
15098
|
+
* for a reader (its text area's title and aria-label).
|
|
15099
|
+
***************************************************************/
|
|
15100
|
+
function build_pane(gobj, id, name_key) {
|
|
15101
|
+
let pane = {
|
|
15102
|
+
$pane: null,
|
|
15103
|
+
$input: null,
|
|
15104
|
+
$error: null,
|
|
15105
|
+
$reason: null,
|
|
15106
|
+
$body: null,
|
|
15107
|
+
gobj_json: null,
|
|
15108
|
+
doc: null,
|
|
15109
|
+
has_doc: false
|
|
15110
|
+
};
|
|
15111
|
+
pane.$input = (0, _yuneta_gobj_js.createElement2)([
|
|
15112
|
+
"textarea",
|
|
15113
|
+
{
|
|
15114
|
+
class: "JSON_PAD_INPUT textarea",
|
|
15115
|
+
rows: 3,
|
|
15116
|
+
spellcheck: "false",
|
|
15117
|
+
placeholder: (0, i18next.t)("paste json here"),
|
|
15118
|
+
"data-i18n-placeholder": "paste json here",
|
|
15119
|
+
title: (0, i18next.t)(name_key),
|
|
15120
|
+
"data-i18n-title": name_key,
|
|
15121
|
+
"aria-label": (0, i18next.t)(name_key),
|
|
15122
|
+
"data-i18n-aria-label": name_key,
|
|
15123
|
+
style: "font-family:monospace; resize:vertical; min-height:4.5em;"
|
|
15124
|
+
},
|
|
15125
|
+
"",
|
|
15126
|
+
{
|
|
15127
|
+
keydown: (evt) => {
|
|
15128
|
+
if ((evt.ctrlKey || evt.metaKey) && evt.key === "Enter") {
|
|
15129
|
+
evt.preventDefault();
|
|
15130
|
+
(0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_VIEW", { pane: id }, gobj);
|
|
15131
|
+
}
|
|
15132
|
+
},
|
|
15133
|
+
change: () => {
|
|
15134
|
+
(0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_TEXT_CHANGED", { pane: id }, gobj);
|
|
15135
|
+
}
|
|
15136
|
+
}
|
|
15137
|
+
]);
|
|
15138
|
+
pane.$reason = (0, _yuneta_gobj_js.createElement2)([
|
|
15139
|
+
"span",
|
|
15140
|
+
{
|
|
15141
|
+
class: "JSON_PAD_ERROR_REASON",
|
|
15142
|
+
style: "margin-left:.5em; font-family:monospace;"
|
|
15143
|
+
},
|
|
15144
|
+
""
|
|
15145
|
+
]);
|
|
15146
|
+
pane.$error = (0, _yuneta_gobj_js.createElement2)([
|
|
15147
|
+
"div",
|
|
15148
|
+
{
|
|
15149
|
+
class: "JSON_PAD_ERROR is-hidden has-text-danger is-size-7",
|
|
15150
|
+
role: "alert"
|
|
15151
|
+
},
|
|
15152
|
+
[[
|
|
15153
|
+
"span",
|
|
15154
|
+
{
|
|
15155
|
+
class: "JSON_PAD_ERROR_LABEL",
|
|
15156
|
+
style: "font-weight:600;",
|
|
15157
|
+
i18n: "invalid json"
|
|
15158
|
+
},
|
|
15159
|
+
"invalid json"
|
|
15160
|
+
], pane.$reason]
|
|
15161
|
+
]);
|
|
15162
|
+
pane.$body = (0, _yuneta_gobj_js.createElement2)([
|
|
15163
|
+
"div",
|
|
15164
|
+
{
|
|
15165
|
+
class: "JSON_PAD_BODY",
|
|
15166
|
+
style: "flex:1 1 auto; min-height:0; display:flex; flex-direction:column;"
|
|
15167
|
+
},
|
|
15168
|
+
[]
|
|
15169
|
+
]);
|
|
15170
|
+
pane.$pane = (0, _yuneta_gobj_js.createElement2)([
|
|
15171
|
+
"div",
|
|
15172
|
+
{ class: `JSON_PAD_PANE JSON_PAD_PANE_${id.toUpperCase()}` },
|
|
15173
|
+
[
|
|
15174
|
+
[
|
|
15175
|
+
"div",
|
|
15176
|
+
{
|
|
15177
|
+
class: "JSON_PAD_BAR",
|
|
15178
|
+
style: "display:flex; gap:.5rem; align-items:flex-start;"
|
|
15179
|
+
},
|
|
15180
|
+
[[
|
|
15181
|
+
"div",
|
|
15182
|
+
{ style: "flex:1 1 auto; min-width:0;" },
|
|
15183
|
+
[pane.$input]
|
|
15184
|
+
], [
|
|
15185
|
+
"div",
|
|
15186
|
+
{ style: "flex:0 0 auto; display:flex; flex-direction:column; gap:.5rem;" },
|
|
15187
|
+
[pad_button(gobj, "JSON_PAD_VIEW", "yi-eye", "view", "EV_VIEW", { pane: id }), pad_button(gobj, "JSON_PAD_CLEAR", "yi-broom", "clear", "EV_CLEAR", { pane: id })]
|
|
15188
|
+
]]
|
|
15189
|
+
],
|
|
15190
|
+
pane.$error,
|
|
15191
|
+
pane.$body
|
|
15192
|
+
],
|
|
15193
|
+
{ paste: (evt) => {
|
|
15194
|
+
let text = evt.clipboardData ? evt.clipboardData.getData("text") : "";
|
|
15195
|
+
if (!text) return;
|
|
15196
|
+
evt.preventDefault();
|
|
15197
|
+
(0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_PASTE", {
|
|
15198
|
+
pane: id,
|
|
15199
|
+
text
|
|
15200
|
+
}, gobj);
|
|
15201
|
+
} }
|
|
15202
|
+
]);
|
|
15203
|
+
return pane;
|
|
15204
|
+
}
|
|
15205
|
+
/***************************************************************
|
|
15206
|
+
* The pane a pane event names.
|
|
15207
|
+
***************************************************************/
|
|
15208
|
+
function pane_of(gobj, kw) {
|
|
15209
|
+
let priv = gobj.priv;
|
|
15210
|
+
let id = kw ? kw.pane : void 0;
|
|
15211
|
+
if (!PANES.includes(id)) {
|
|
15212
|
+
(0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(gobj)}: no pane '${id}'`);
|
|
15213
|
+
return null;
|
|
15214
|
+
}
|
|
15215
|
+
return priv.panes[id];
|
|
15216
|
+
}
|
|
15217
|
+
/***************************************************************
|
|
15218
|
+
* A toggle of the toolbar, pressed or not -- for the eye and
|
|
15219
|
+
* for a reader.
|
|
15220
|
+
***************************************************************/
|
|
15221
|
+
function press_toggle(gobj, selector, on) {
|
|
15222
|
+
let $container = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
|
|
15223
|
+
set_pressed_state($container, selector, on);
|
|
15224
|
+
$container.querySelectorAll(selector).forEach(($el) => {
|
|
15225
|
+
$el.setAttribute("aria-pressed", on ? "true" : "false");
|
|
15226
|
+
});
|
|
15227
|
+
}
|
|
15228
|
+
/***************************************************************
|
|
15229
|
+
* Read `text` as JSON and show it in `pane`, or say why it is
|
|
15230
|
+
* not. A text that is not JSON leaves the last document up.
|
|
15231
|
+
***************************************************************/
|
|
15232
|
+
function show_text(gobj, pane, text) {
|
|
15233
|
+
let src = String(text || "").trim();
|
|
15234
|
+
if (!src) {
|
|
15235
|
+
clear_pane(gobj, pane, false);
|
|
15236
|
+
return 0;
|
|
15237
|
+
}
|
|
15238
|
+
let doc;
|
|
15239
|
+
try {
|
|
15240
|
+
doc = JSON.parse(src);
|
|
15241
|
+
} catch (e) {
|
|
15242
|
+
(0, _yuneta_gobj_js.log_warning)(`${(0, _yuneta_gobj_js.gobj_short_name)(gobj)}: the pasted text is not JSON: ${e.message}`);
|
|
15243
|
+
pane.$reason.textContent = e.message;
|
|
15244
|
+
pane.$error.classList.remove("is-hidden");
|
|
15245
|
+
return -1;
|
|
15246
|
+
}
|
|
15247
|
+
pane.$error.classList.add("is-hidden");
|
|
15248
|
+
pane.$reason.textContent = "";
|
|
15249
|
+
pane.doc = doc;
|
|
15250
|
+
pane.has_doc = true;
|
|
15251
|
+
(0, _yuneta_gobj_js.gobj_send_event)(pane.gobj_json, "EV_SET_JSON", { json: doc }, gobj);
|
|
15252
|
+
return 0;
|
|
15253
|
+
}
|
|
15254
|
+
/***************************************************************
|
|
15255
|
+
* A blank pane again; `with_text` empties the text area too.
|
|
15256
|
+
***************************************************************/
|
|
15257
|
+
function clear_pane(gobj, pane, with_text) {
|
|
15258
|
+
if (with_text) pane.$input.value = "";
|
|
15259
|
+
pane.$error.classList.add("is-hidden");
|
|
15260
|
+
pane.$reason.textContent = "";
|
|
15261
|
+
pane.doc = null;
|
|
15262
|
+
pane.has_doc = false;
|
|
15263
|
+
(0, _yuneta_gobj_js.gobj_send_event)(pane.gobj_json, "EV_SET_JSON", { json: null }, gobj);
|
|
15264
|
+
}
|
|
15265
|
+
/***************************************************************
|
|
15266
|
+
* A pane changed its document: the differences follow it, and
|
|
15267
|
+
* the texts are kept.
|
|
15268
|
+
***************************************************************/
|
|
15269
|
+
function document_changed(gobj) {
|
|
15270
|
+
if ((0, _yuneta_gobj_js.gobj_current_state)(gobj) === "ST_DIFF") render_diff(gobj);
|
|
15271
|
+
save_state(gobj);
|
|
15272
|
+
}
|
|
15273
|
+
/***************************************************************
|
|
15274
|
+
* Enter one of the three layouts. The state IS the layout;
|
|
15275
|
+
* this is what the screen shows for it.
|
|
15276
|
+
***************************************************************/
|
|
15277
|
+
function enter_layout(gobj, state) {
|
|
15278
|
+
let priv = gobj.priv;
|
|
15279
|
+
let $container = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
|
|
15280
|
+
let second = state !== "ST_SINGLE";
|
|
15281
|
+
let diff = state === "ST_DIFF";
|
|
15282
|
+
(0, _yuneta_gobj_js.gobj_change_state)(gobj, state);
|
|
15283
|
+
priv.panes.b.$pane.classList.toggle("is-hidden", !second);
|
|
15284
|
+
priv.$compare.classList.toggle("is-hidden", !second);
|
|
15285
|
+
press_toggle(gobj, ".JSON_PAD_SECOND", second);
|
|
15286
|
+
press_toggle(gobj, ".JSON_PAD_COMPARE", diff);
|
|
15287
|
+
$container.classList.toggle("is-comparing", diff);
|
|
15288
|
+
for (const id of PANES) priv.panes[id].$body.classList.toggle("is-hidden", diff);
|
|
15289
|
+
priv.$diff.classList.toggle("is-hidden", !diff);
|
|
15290
|
+
if (diff) render_diff(gobj);
|
|
15291
|
+
else for (const id of PANES) {
|
|
15292
|
+
if (id === "b" && !second) continue;
|
|
15293
|
+
(0, _yuneta_gobj_js.gobj_send_event)(priv.panes[id].gobj_json, "EV_REFRESH", {}, gobj);
|
|
15294
|
+
}
|
|
15295
|
+
save_state(gobj);
|
|
15296
|
+
}
|
|
15297
|
+
/***************************************************************
|
|
15298
|
+
* The differences of the two documents, in place of the two
|
|
15299
|
+
* viewers. Only a pane that shows a document takes part: a
|
|
15300
|
+
* text that is not JSON leaves its last document, as on screen.
|
|
15301
|
+
***************************************************************/
|
|
15302
|
+
function render_diff(gobj) {
|
|
15303
|
+
let priv = gobj.priv;
|
|
15304
|
+
let a = priv.panes.a;
|
|
15305
|
+
let b = priv.panes.b;
|
|
15306
|
+
priv.$diff.replaceChildren();
|
|
15307
|
+
if (!a.has_doc || !b.has_doc) {
|
|
15308
|
+
priv.$diff.appendChild((0, _yuneta_gobj_js.createElement2)([
|
|
15309
|
+
"p",
|
|
15310
|
+
{
|
|
15311
|
+
class: "JSON_PAD_DIFF_MESSAGE",
|
|
15312
|
+
i18n: "compare needs two json"
|
|
15313
|
+
},
|
|
15314
|
+
"compare needs two json"
|
|
15315
|
+
]));
|
|
15316
|
+
return 0;
|
|
15317
|
+
}
|
|
15318
|
+
let rows;
|
|
15319
|
+
try {
|
|
15320
|
+
rows = json_diff_rows(a.doc, b.doc);
|
|
15321
|
+
} catch (e) {
|
|
15322
|
+
(0, _yuneta_gobj_js.log_warning)(`${(0, _yuneta_gobj_js.gobj_short_name)(gobj)}: cannot compare: ${e.message}`);
|
|
15323
|
+
priv.$diff.appendChild((0, _yuneta_gobj_js.createElement2)([
|
|
15324
|
+
"p",
|
|
15325
|
+
{ class: "JSON_PAD_DIFF_MESSAGE has-text-danger" },
|
|
15326
|
+
[[
|
|
15327
|
+
"span",
|
|
15328
|
+
{
|
|
15329
|
+
style: "font-weight:600;",
|
|
15330
|
+
i18n: "cannot compare"
|
|
15331
|
+
},
|
|
15332
|
+
"cannot compare"
|
|
15333
|
+
], [
|
|
15334
|
+
"span",
|
|
15335
|
+
{
|
|
15336
|
+
class: "JSON_PAD_DIFF_REASON",
|
|
15337
|
+
style: "margin-left:.5em; font-family:monospace;"
|
|
15338
|
+
},
|
|
15339
|
+
e.message
|
|
15340
|
+
]]
|
|
15341
|
+
]));
|
|
15342
|
+
return -1;
|
|
15343
|
+
}
|
|
15344
|
+
if (rows.length === 0) {
|
|
15345
|
+
priv.$diff.appendChild((0, _yuneta_gobj_js.createElement2)([
|
|
15346
|
+
"p",
|
|
15347
|
+
{
|
|
15348
|
+
class: "JSON_PAD_DIFF_MESSAGE has-text-success",
|
|
15349
|
+
i18n: "no differences"
|
|
15350
|
+
},
|
|
15351
|
+
"no differences"
|
|
15352
|
+
]));
|
|
15353
|
+
return 0;
|
|
15354
|
+
}
|
|
15355
|
+
let count = {
|
|
15356
|
+
added: 0,
|
|
15357
|
+
removed: 0,
|
|
15358
|
+
changed: 0
|
|
15359
|
+
};
|
|
15360
|
+
for (const row of rows) count[row.kind]++;
|
|
15361
|
+
let value_cell = (cls, row, side) => {
|
|
15362
|
+
let has = Object.prototype.hasOwnProperty.call(row, side);
|
|
15363
|
+
return [
|
|
15364
|
+
"td",
|
|
15365
|
+
{ class: cls },
|
|
15366
|
+
has ? JSON.stringify(row[side]) : ""
|
|
15367
|
+
];
|
|
15368
|
+
};
|
|
15369
|
+
priv.$diff.appendChild((0, _yuneta_gobj_js.createElement2)([
|
|
15370
|
+
"div",
|
|
15371
|
+
{ class: "JSON_PAD_DIFF_SUMMARY" },
|
|
15372
|
+
[
|
|
15373
|
+
"removed",
|
|
15374
|
+
"added",
|
|
15375
|
+
"changed"
|
|
15376
|
+
].map((kind) => {
|
|
15377
|
+
return [
|
|
15378
|
+
"span",
|
|
15379
|
+
{ class: "JSON_PAD_DIFF_COUNT" },
|
|
15380
|
+
[KIND_TAG[kind](), [
|
|
15381
|
+
"strong",
|
|
15382
|
+
{},
|
|
15383
|
+
String(count[kind])
|
|
15384
|
+
]]
|
|
15385
|
+
];
|
|
15386
|
+
})
|
|
15387
|
+
]));
|
|
15388
|
+
priv.$diff.appendChild((0, _yuneta_gobj_js.createElement2)([
|
|
15389
|
+
"table",
|
|
15390
|
+
{ class: "JSON_PAD_DIFF_TABLE table is-fullwidth is-narrow is-hoverable" },
|
|
15391
|
+
[[
|
|
15392
|
+
"thead",
|
|
15393
|
+
{},
|
|
15394
|
+
[[
|
|
15395
|
+
"tr",
|
|
15396
|
+
{},
|
|
15397
|
+
[
|
|
15398
|
+
[
|
|
15399
|
+
"th",
|
|
15400
|
+
{},
|
|
15401
|
+
""
|
|
15402
|
+
],
|
|
15403
|
+
[
|
|
15404
|
+
"th",
|
|
15405
|
+
{ i18n: "path" },
|
|
15406
|
+
"path"
|
|
15407
|
+
],
|
|
15408
|
+
[
|
|
15409
|
+
"th",
|
|
15410
|
+
{ i18n: "first json" },
|
|
15411
|
+
"first json"
|
|
15412
|
+
],
|
|
15413
|
+
[
|
|
15414
|
+
"th",
|
|
15415
|
+
{ i18n: "second json" },
|
|
15416
|
+
"second json"
|
|
15417
|
+
]
|
|
15418
|
+
]
|
|
15419
|
+
]]
|
|
15420
|
+
], [
|
|
15421
|
+
"tbody",
|
|
15422
|
+
{},
|
|
15423
|
+
rows.map((row) => {
|
|
15424
|
+
return [
|
|
15425
|
+
"tr",
|
|
15426
|
+
{ class: `JSON_PAD_DIFF_ROW JSON_PAD_DIFF_${row.kind.toUpperCase()}` },
|
|
15427
|
+
[
|
|
15428
|
+
[
|
|
15429
|
+
"td",
|
|
15430
|
+
{},
|
|
15431
|
+
[KIND_TAG[row.kind]()]
|
|
15432
|
+
],
|
|
15433
|
+
[
|
|
15434
|
+
"td",
|
|
15435
|
+
{ class: "JSON_PAD_DIFF_PATH" },
|
|
15436
|
+
row.id
|
|
15437
|
+
],
|
|
15438
|
+
value_cell("JSON_PAD_DIFF_FROM", row, "from"),
|
|
15439
|
+
value_cell("JSON_PAD_DIFF_TO", row, "to")
|
|
15440
|
+
]
|
|
15441
|
+
];
|
|
15442
|
+
})
|
|
15443
|
+
]]
|
|
15444
|
+
]));
|
|
15445
|
+
return 0;
|
|
15446
|
+
}
|
|
15447
|
+
/***************************************************************
|
|
15448
|
+
* Keep both texts and the layout.
|
|
15449
|
+
***************************************************************/
|
|
15450
|
+
function save_state(gobj) {
|
|
15451
|
+
let priv = gobj.priv;
|
|
15452
|
+
let key = (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "storage_key");
|
|
15453
|
+
if (!key) return 0;
|
|
15454
|
+
let ret = (0, _yuneta_gobj_js.kw_set_local_storage_value)(key, {
|
|
15455
|
+
a: priv.panes.a.$input.value,
|
|
15456
|
+
b: priv.panes.b.$input.value,
|
|
15457
|
+
mode: MODE_OF_STATE[(0, _yuneta_gobj_js.gobj_current_state)(gobj)] || "single"
|
|
15458
|
+
});
|
|
15459
|
+
priv.$notice.classList.toggle("is-hidden", ret === 0);
|
|
15460
|
+
return ret;
|
|
15461
|
+
}
|
|
15462
|
+
/***************************************************************
|
|
15463
|
+
* The pad as the last one was left: its texts, shown, and its
|
|
15464
|
+
* layout -- through the same events a reader would send.
|
|
15465
|
+
***************************************************************/
|
|
15466
|
+
function restore_state(gobj) {
|
|
15467
|
+
let priv = gobj.priv;
|
|
15468
|
+
let key = (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "storage_key");
|
|
15469
|
+
if (!key) return 0;
|
|
15470
|
+
let kept = (0, _yuneta_gobj_js.kw_get_local_storage_value)(key, null, false);
|
|
15471
|
+
if (kept === null || kept === void 0) return 0;
|
|
15472
|
+
if (typeof kept !== "object" || Array.isArray(kept)) {
|
|
15473
|
+
(0, _yuneta_gobj_js.log_warning)(`${(0, _yuneta_gobj_js.gobj_short_name)(gobj)}: '${key}' in localStorage is not what the pad keeps`);
|
|
15474
|
+
return -1;
|
|
15475
|
+
}
|
|
15476
|
+
for (const id of PANES) if (typeof kept[id] === "string") priv.panes[id].$input.value = kept[id];
|
|
15477
|
+
for (const id of PANES) if (priv.panes[id].$input.value.trim()) (0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_VIEW", { pane: id }, gobj);
|
|
15478
|
+
if (kept.mode === "dual" || kept.mode === "diff") (0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_TOGGLE_SECOND", {}, gobj);
|
|
15479
|
+
if (kept.mode === "diff") (0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_TOGGLE_DIFF", {}, gobj);
|
|
15480
|
+
return 0;
|
|
15481
|
+
}
|
|
15482
|
+
/***************************
|
|
15483
|
+
* Actions
|
|
15484
|
+
***************************/
|
|
15485
|
+
/***************************************************************
|
|
15486
|
+
* A paste: it becomes the pane's text area and its document
|
|
15487
|
+
* at once.
|
|
15488
|
+
***************************************************************/
|
|
15489
|
+
function ac_paste(gobj, event, kw, src) {
|
|
15490
|
+
let pane = pane_of(gobj, kw);
|
|
15491
|
+
if (!pane) return -1;
|
|
15492
|
+
let text = typeof kw.text === "string" ? kw.text : "";
|
|
15493
|
+
pane.$input.value = text;
|
|
15494
|
+
let ret = show_text(gobj, pane, text);
|
|
15495
|
+
document_changed(gobj);
|
|
15496
|
+
return ret;
|
|
15497
|
+
}
|
|
15498
|
+
/***************************************************************
|
|
15499
|
+
* The pane's text area as it is now.
|
|
15500
|
+
***************************************************************/
|
|
15501
|
+
function ac_view(gobj, event, kw, src) {
|
|
15502
|
+
let pane = pane_of(gobj, kw);
|
|
15503
|
+
if (!pane) return -1;
|
|
15504
|
+
let ret = show_text(gobj, pane, pane.$input.value);
|
|
15505
|
+
document_changed(gobj);
|
|
15506
|
+
return ret;
|
|
15507
|
+
}
|
|
15508
|
+
/***************************************************************
|
|
15509
|
+
* A blank pane again.
|
|
15510
|
+
***************************************************************/
|
|
15511
|
+
function ac_clear(gobj, event, kw, src) {
|
|
15512
|
+
let pane = pane_of(gobj, kw);
|
|
15513
|
+
if (!pane) return -1;
|
|
15514
|
+
clear_pane(gobj, pane, true);
|
|
15515
|
+
pane.$input.focus();
|
|
15516
|
+
document_changed(gobj);
|
|
15517
|
+
return 0;
|
|
15518
|
+
}
|
|
15519
|
+
/***************************************************************
|
|
15520
|
+
* A text area was edited and left: keep what it holds. What
|
|
15521
|
+
* is SHOWN changes only with a view, as before.
|
|
15522
|
+
***************************************************************/
|
|
15523
|
+
function ac_text_changed(gobj, event, kw, src) {
|
|
15524
|
+
if (!pane_of(gobj, kw)) return -1;
|
|
15525
|
+
save_state(gobj);
|
|
15526
|
+
return 0;
|
|
15527
|
+
}
|
|
15528
|
+
/***************************************************************
|
|
15529
|
+
* The second pane, beside the first.
|
|
15530
|
+
***************************************************************/
|
|
15531
|
+
function ac_show_second(gobj, event, kw, src) {
|
|
15532
|
+
let priv = gobj.priv;
|
|
15533
|
+
enter_layout(gobj, "ST_DUAL");
|
|
15534
|
+
priv.panes.b.$input.focus();
|
|
15535
|
+
return 0;
|
|
15536
|
+
}
|
|
15537
|
+
/***************************************************************
|
|
15538
|
+
* One pane again. Its text is kept: hiding is not clearing.
|
|
15539
|
+
***************************************************************/
|
|
15540
|
+
function ac_hide_second(gobj, event, kw, src) {
|
|
15541
|
+
enter_layout(gobj, "ST_SINGLE");
|
|
15542
|
+
return 0;
|
|
15543
|
+
}
|
|
15544
|
+
/***************************************************************
|
|
15545
|
+
* The differences, in place of the viewers.
|
|
15546
|
+
***************************************************************/
|
|
15547
|
+
function ac_show_diff(gobj, event, kw, src) {
|
|
15548
|
+
enter_layout(gobj, "ST_DIFF");
|
|
15549
|
+
return 0;
|
|
15550
|
+
}
|
|
15551
|
+
/***************************************************************
|
|
15552
|
+
* The viewers again.
|
|
15553
|
+
***************************************************************/
|
|
15554
|
+
function ac_hide_diff(gobj, event, kw, src) {
|
|
15555
|
+
enter_layout(gobj, "ST_DUAL");
|
|
15556
|
+
return 0;
|
|
15557
|
+
}
|
|
15558
|
+
/***************************************************************
|
|
15559
|
+
* A viewer asks for a `__collapsed__` subtree. A pasted
|
|
15560
|
+
* document has no backend to ask for it: the SOURCE truncated
|
|
15561
|
+
* it, and that is the answer, to the viewer that asked.
|
|
15562
|
+
***************************************************************/
|
|
15563
|
+
function ac_expand_path(gobj, event, kw, src) {
|
|
15564
|
+
(0, _yuneta_gobj_js.gobj_send_event)(src, "EV_SUBTREE_ERROR", {
|
|
15565
|
+
path: kw && kw.path || "",
|
|
15566
|
+
error: (0, i18next.t)("collapsed in the source")
|
|
15567
|
+
}, gobj);
|
|
15568
|
+
return 0;
|
|
15569
|
+
}
|
|
15570
|
+
/***************************************************************
|
|
15571
|
+
* FSM
|
|
15572
|
+
***************************************************************/
|
|
15573
|
+
var gmt$12 = {
|
|
15574
|
+
mt_create: mt_create$12,
|
|
15575
|
+
mt_start: mt_start$12,
|
|
15576
|
+
mt_stop: mt_stop$12,
|
|
15577
|
+
mt_destroy: mt_destroy$12
|
|
15578
|
+
};
|
|
15579
|
+
/***************************************************************
|
|
15580
|
+
* Create the GClass
|
|
15581
|
+
***************************************************************/
|
|
15582
|
+
function create_gclass$12(gclass_name) {
|
|
15583
|
+
if (__gclass__$12) {
|
|
15584
|
+
(0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
|
|
15585
|
+
return -1;
|
|
15586
|
+
}
|
|
15587
|
+
__gclass__$12 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
|
|
15588
|
+
["EV_PASTE", 0],
|
|
15589
|
+
["EV_VIEW", 0],
|
|
15590
|
+
["EV_CLEAR", 0],
|
|
15591
|
+
["EV_TEXT_CHANGED", 0],
|
|
15592
|
+
["EV_TOGGLE_SECOND", 0],
|
|
15593
|
+
["EV_TOGGLE_DIFF", 0],
|
|
15594
|
+
["EV_EXPAND_PATH", 0]
|
|
15595
|
+
], [
|
|
15596
|
+
["ST_SINGLE", [
|
|
15597
|
+
[
|
|
15598
|
+
"EV_PASTE",
|
|
15599
|
+
ac_paste,
|
|
15600
|
+
null
|
|
15601
|
+
],
|
|
15602
|
+
[
|
|
15603
|
+
"EV_VIEW",
|
|
15604
|
+
ac_view,
|
|
15605
|
+
null
|
|
15606
|
+
],
|
|
15607
|
+
[
|
|
15608
|
+
"EV_CLEAR",
|
|
15609
|
+
ac_clear,
|
|
15610
|
+
null
|
|
15611
|
+
],
|
|
15612
|
+
[
|
|
15613
|
+
"EV_TEXT_CHANGED",
|
|
15614
|
+
ac_text_changed,
|
|
15615
|
+
null
|
|
15616
|
+
],
|
|
15617
|
+
[
|
|
15618
|
+
"EV_TOGGLE_SECOND",
|
|
15619
|
+
ac_show_second,
|
|
15620
|
+
null
|
|
15621
|
+
],
|
|
15622
|
+
[
|
|
15623
|
+
"EV_EXPAND_PATH",
|
|
15624
|
+
ac_expand_path,
|
|
15625
|
+
null
|
|
15626
|
+
]
|
|
15627
|
+
]],
|
|
15628
|
+
["ST_DUAL", [
|
|
15629
|
+
[
|
|
15630
|
+
"EV_PASTE",
|
|
15631
|
+
ac_paste,
|
|
15632
|
+
null
|
|
15633
|
+
],
|
|
15634
|
+
[
|
|
15635
|
+
"EV_VIEW",
|
|
15636
|
+
ac_view,
|
|
15637
|
+
null
|
|
15638
|
+
],
|
|
15639
|
+
[
|
|
15640
|
+
"EV_CLEAR",
|
|
15641
|
+
ac_clear,
|
|
15642
|
+
null
|
|
15643
|
+
],
|
|
15644
|
+
[
|
|
15645
|
+
"EV_TEXT_CHANGED",
|
|
15646
|
+
ac_text_changed,
|
|
15647
|
+
null
|
|
15648
|
+
],
|
|
15649
|
+
[
|
|
15650
|
+
"EV_TOGGLE_SECOND",
|
|
15651
|
+
ac_hide_second,
|
|
15652
|
+
null
|
|
15653
|
+
],
|
|
15654
|
+
[
|
|
15655
|
+
"EV_TOGGLE_DIFF",
|
|
15656
|
+
ac_show_diff,
|
|
15657
|
+
null
|
|
15658
|
+
],
|
|
15659
|
+
[
|
|
15660
|
+
"EV_EXPAND_PATH",
|
|
15661
|
+
ac_expand_path,
|
|
15662
|
+
null
|
|
15663
|
+
]
|
|
15664
|
+
]],
|
|
15665
|
+
["ST_DIFF", [
|
|
15666
|
+
[
|
|
15667
|
+
"EV_PASTE",
|
|
15668
|
+
ac_paste,
|
|
15669
|
+
null
|
|
15670
|
+
],
|
|
15671
|
+
[
|
|
15672
|
+
"EV_VIEW",
|
|
15673
|
+
ac_view,
|
|
15674
|
+
null
|
|
15675
|
+
],
|
|
15676
|
+
[
|
|
15677
|
+
"EV_CLEAR",
|
|
15678
|
+
ac_clear,
|
|
15679
|
+
null
|
|
15680
|
+
],
|
|
15681
|
+
[
|
|
15682
|
+
"EV_TEXT_CHANGED",
|
|
15683
|
+
ac_text_changed,
|
|
15684
|
+
null
|
|
15685
|
+
],
|
|
15686
|
+
[
|
|
15687
|
+
"EV_TOGGLE_SECOND",
|
|
15688
|
+
ac_hide_second,
|
|
15689
|
+
null
|
|
15690
|
+
],
|
|
15691
|
+
[
|
|
15692
|
+
"EV_TOGGLE_DIFF",
|
|
15693
|
+
ac_hide_diff,
|
|
15694
|
+
null
|
|
15695
|
+
]
|
|
15696
|
+
]]
|
|
15697
|
+
], gmt$12, 0, attrs_table$12, PRIVATE_DATA$12, 0, 0, 0, 0);
|
|
15698
|
+
if (!__gclass__$12) return -1;
|
|
15699
|
+
return 0;
|
|
15700
|
+
}
|
|
15701
|
+
/***************************************************************
|
|
15702
|
+
* Register GClass
|
|
15703
|
+
***************************************************************/
|
|
15704
|
+
function register_c_yui_json_pad() {
|
|
15705
|
+
if (!(0, _yuneta_gobj_js.gclass_find_by_name)("C_YUI_JSON", false)) register_c_yui_json();
|
|
14773
15706
|
return create_gclass$12(GCLASS_NAME$12);
|
|
14774
15707
|
}
|
|
14775
15708
|
//#endregion
|
|
@@ -21348,7 +22281,7 @@ function register_c_yui_nav() {
|
|
|
21348
22281
|
}
|
|
21349
22282
|
//#endregion
|
|
21350
22283
|
//#region src/shell_route_map.js
|
|
21351
|
-
var WIN_NAME$
|
|
22284
|
+
var WIN_NAME$2 = "shell-route-map-window";
|
|
21352
22285
|
var __show_refs__ = true;
|
|
21353
22286
|
var __open_modal__ = null;
|
|
21354
22287
|
function scroll_to_current($body) {
|
|
@@ -21688,7 +22621,7 @@ function mark_current_row($body, hash, t) {
|
|
|
21688
22621
|
***************************************************************/
|
|
21689
22622
|
function yui_shell_show_route_map(shell, opts) {
|
|
21690
22623
|
let t = opts && opts.t || i18next.default.t.bind(i18next.default);
|
|
21691
|
-
let existing = (0, _yuneta_gobj_js.gobj_find_service)(WIN_NAME$
|
|
22624
|
+
let existing = (0, _yuneta_gobj_js.gobj_find_service)(WIN_NAME$2, false);
|
|
21692
22625
|
if (existing && (0, _yuneta_gobj_js.is_gobj)(existing)) {
|
|
21693
22626
|
(0, _yuneta_gobj_js.gobj_send_event)(existing, "EV_CLOSE_WINDOW", {}, shell);
|
|
21694
22627
|
return null;
|
|
@@ -21703,7 +22636,7 @@ function yui_shell_show_route_map(shell, opts) {
|
|
|
21703
22636
|
let win_ref = { gobj: null };
|
|
21704
22637
|
let $body = build_body(shell, t);
|
|
21705
22638
|
let $parent = yui_shell_popup_layer(shell) || typeof document !== "undefined" && document.getElementById("top-layer") || null;
|
|
21706
|
-
let win = (0, _yuneta_gobj_js.gobj_create_service)(WIN_NAME$
|
|
22639
|
+
let win = (0, _yuneta_gobj_js.gobj_create_service)(WIN_NAME$2, "C_YUI_WINDOW", {
|
|
21707
22640
|
$parent,
|
|
21708
22641
|
subscriber: null,
|
|
21709
22642
|
modal: false,
|
|
@@ -25401,6 +26334,14 @@ function create_tabulator(gobj) {
|
|
|
25401
26334
|
let remembered_size = load_page_size(gobj);
|
|
25402
26335
|
if (remembered_size !== null && tabulator_settings.pagination) tabulator_settings.paginationSize = remembered_size;
|
|
25403
26336
|
gobj.priv._page_size = tabulator_settings.paginationSize;
|
|
26337
|
+
let pkey_col = columns.find((c) => c && c.field === pkey);
|
|
26338
|
+
if (pkey_col && !tabulator_settings.initialSort && !(0, _yuneta_gobj_js.gobj_read_bool_attr)(gobj, "with_remote_paging")) {
|
|
26339
|
+
if (!pkey_col.sorter) pkey_col.sorter = "alphanum";
|
|
26340
|
+
tabulator_settings.initialSort = [{
|
|
26341
|
+
column: pkey,
|
|
26342
|
+
dir: "asc"
|
|
26343
|
+
}];
|
|
26344
|
+
}
|
|
25404
26345
|
Object.assign(tabulator_settings, {
|
|
25405
26346
|
index: pkey,
|
|
25406
26347
|
columns,
|
|
@@ -74573,7 +75514,7 @@ function build_dev_panel() {
|
|
|
74573
75514
|
* Copyright (c) 2026, ArtGins.
|
|
74574
75515
|
* All Rights Reserved.
|
|
74575
75516
|
***********************************************************************/
|
|
74576
|
-
var WIN_NAME = "Frontend-View-Window";
|
|
75517
|
+
var WIN_NAME$1 = "Frontend-View-Window";
|
|
74577
75518
|
/******************************
|
|
74578
75519
|
* Public API
|
|
74579
75520
|
******************************/
|
|
@@ -74590,7 +75531,7 @@ var WIN_NAME = "Frontend-View-Window";
|
|
|
74590
75531
|
* Returns the window gobj, or null.
|
|
74591
75532
|
************************************************************/
|
|
74592
75533
|
function setup_frontend_view(self) {
|
|
74593
|
-
if ((0, _yuneta_gobj_js.gobj_find_service)(WIN_NAME, false)) return null;
|
|
75534
|
+
if ((0, _yuneta_gobj_js.gobj_find_service)(WIN_NAME$1, false)) return null;
|
|
74594
75535
|
let $body = (0, _yuneta_gobj_js.createElement2)([
|
|
74595
75536
|
"div",
|
|
74596
75537
|
{
|
|
@@ -74599,7 +75540,7 @@ function setup_frontend_view(self) {
|
|
|
74599
75540
|
},
|
|
74600
75541
|
[]
|
|
74601
75542
|
]);
|
|
74602
|
-
let win = (0, _yuneta_gobj_js.gobj_create_service)(WIN_NAME, "C_YUI_WINDOW", {
|
|
75543
|
+
let win = (0, _yuneta_gobj_js.gobj_create_service)(WIN_NAME$1, "C_YUI_WINDOW", {
|
|
74603
75544
|
$parent: typeof document !== "undefined" && document.getElementById("top-layer") || null,
|
|
74604
75545
|
subscriber: null,
|
|
74605
75546
|
modal: false,
|
|
@@ -74631,6 +75572,75 @@ function setup_frontend_view(self) {
|
|
|
74631
75572
|
return win;
|
|
74632
75573
|
}
|
|
74633
75574
|
//#endregion
|
|
75575
|
+
//#region src/yui_json_pad.js
|
|
75576
|
+
/***********************************************************************
|
|
75577
|
+
* yui_json_pad.js
|
|
75578
|
+
*
|
|
75579
|
+
* JSON viewer -- a blank C_YUI_JSON_PAD in a floating window,
|
|
75580
|
+
* to paste JSON from outside and read it with the library's own
|
|
75581
|
+
* viewer. Peer of the frontend view (yui_frontend_view.js), and
|
|
75582
|
+
* opened the same way: an entry of the account menu.
|
|
75583
|
+
*
|
|
75584
|
+
* Copyright (c) 2026, ArtGins.
|
|
75585
|
+
* All Rights Reserved.
|
|
75586
|
+
***********************************************************************/
|
|
75587
|
+
var WIN_NAME = "Json-Viewer-Window";
|
|
75588
|
+
/******************************
|
|
75589
|
+
* Public API
|
|
75590
|
+
******************************/
|
|
75591
|
+
/************************************************************
|
|
75592
|
+
* Open a blank JSON pad (C_YUI_JSON_PAD) inside a non-modal
|
|
75593
|
+
* C_YUI_WINDOW, the same shape as the frontend view.
|
|
75594
|
+
*
|
|
75595
|
+
* Self-contained: it registers C_YUI_JSON_PAD (and the
|
|
75596
|
+
* C_YUI_JSON it hosts) if the app did not, so an app gets the
|
|
75597
|
+
* viewer with one menu entry and one action.
|
|
75598
|
+
*
|
|
75599
|
+
* Returns the window gobj, or null.
|
|
75600
|
+
************************************************************/
|
|
75601
|
+
function setup_json_pad(self) {
|
|
75602
|
+
if ((0, _yuneta_gobj_js.gobj_find_service)(WIN_NAME, false)) return null;
|
|
75603
|
+
if (!(0, _yuneta_gobj_js.gclass_find_by_name)("C_YUI_JSON_PAD", false)) register_c_yui_json_pad();
|
|
75604
|
+
let $body = (0, _yuneta_gobj_js.createElement2)([
|
|
75605
|
+
"div",
|
|
75606
|
+
{
|
|
75607
|
+
class: "YJSONPAD_BODY",
|
|
75608
|
+
style: "height:100%; display:flex; flex-direction:column;"
|
|
75609
|
+
},
|
|
75610
|
+
[]
|
|
75611
|
+
]);
|
|
75612
|
+
let win = (0, _yuneta_gobj_js.gobj_create_service)(WIN_NAME, "C_YUI_WINDOW", {
|
|
75613
|
+
$parent: typeof document !== "undefined" && document.getElementById("top-layer") || null,
|
|
75614
|
+
subscriber: null,
|
|
75615
|
+
modal: false,
|
|
75616
|
+
showMax: true,
|
|
75617
|
+
showFooter: false,
|
|
75618
|
+
resizable: true,
|
|
75619
|
+
center: false,
|
|
75620
|
+
auto_save_size_and_position: true,
|
|
75621
|
+
width: 900,
|
|
75622
|
+
height: 640,
|
|
75623
|
+
logical_class: "JSON_VIEWER_WINDOW",
|
|
75624
|
+
title: "json viewer",
|
|
75625
|
+
icon: "yi-code",
|
|
75626
|
+
body: $body,
|
|
75627
|
+
manager: (0, _yuneta_gobj_js.gobj_find_service)("__window_manager__", false) || null
|
|
75628
|
+
}, self);
|
|
75629
|
+
if (!win) {
|
|
75630
|
+
(0, _yuneta_gobj_js.log_error)("yui_json_pad: cannot create the json-viewer window");
|
|
75631
|
+
return null;
|
|
75632
|
+
}
|
|
75633
|
+
let pad = (0, _yuneta_gobj_js.gobj_create_pure_child)("json_pad", "C_YUI_JSON_PAD", {}, win);
|
|
75634
|
+
let $pad = pad ? (0, _yuneta_gobj_js.gobj_read_attr)(pad, "$container") : null;
|
|
75635
|
+
if (!$pad) {
|
|
75636
|
+
(0, _yuneta_gobj_js.log_error)("yui_json_pad: C_YUI_JSON_PAD without $container");
|
|
75637
|
+
return win;
|
|
75638
|
+
}
|
|
75639
|
+
$body.appendChild($pad);
|
|
75640
|
+
(0, _yuneta_gobj_js.gobj_start_tree)(win);
|
|
75641
|
+
return win;
|
|
75642
|
+
}
|
|
75643
|
+
//#endregion
|
|
74634
75644
|
exports.EditControl = EditControl;
|
|
74635
75645
|
exports.MarkerControl = MarkerControl;
|
|
74636
75646
|
exports.YUI_FILE_ACCEPT = YUI_FILE_ACCEPT;
|
|
@@ -74671,6 +75681,7 @@ exports.register_c_yui_gclass = register_c_yui_gclass;
|
|
|
74671
75681
|
exports.register_c_yui_gobj_tree_js = register_c_yui_gobj_tree_js;
|
|
74672
75682
|
exports.register_c_yui_json = register_c_yui_json;
|
|
74673
75683
|
exports.register_c_yui_json_graph = register_c_yui_json_graph;
|
|
75684
|
+
exports.register_c_yui_json_pad = register_c_yui_json_pad;
|
|
74674
75685
|
exports.register_c_yui_map = register_c_yui_map;
|
|
74675
75686
|
exports.register_c_yui_nav = register_c_yui_nav;
|
|
74676
75687
|
exports.register_c_yui_pager = register_c_yui_pager;
|
|
@@ -74696,6 +75707,7 @@ exports.set_pressed_state = set_pressed_state;
|
|
|
74696
75707
|
exports.set_submit_state = set_submit_state;
|
|
74697
75708
|
exports.setup_dev = setup_dev;
|
|
74698
75709
|
exports.setup_frontend_view = setup_frontend_view;
|
|
75710
|
+
exports.setup_json_pad = setup_json_pad;
|
|
74699
75711
|
exports.toggleClasses = toggleClasses;
|
|
74700
75712
|
exports.yui_array_buffer_to_base64 = yui_array_buffer_to_base64;
|
|
74701
75713
|
exports.yui_asset_element = yui_asset_element;
|