@yuneta/gobj-ui 5.3.3 → 5.5.0

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.
@@ -799,7 +799,7 @@ function secondary_nav_renders(item, layout) {
799
799
  /***************************************************************
800
800
  * Constants
801
801
  ***************************************************************/
802
- var GCLASS_NAME$17 = "C_YUI_SHELL";
802
+ var GCLASS_NAME$18 = "C_YUI_SHELL";
803
803
  var __last_shell__ = null;
804
804
  var ZONE_IDS = [
805
805
  "top",
@@ -821,7 +821,7 @@ var LAYER_DEFS = [
821
821
  /***************************************************************
822
822
  * Attrs
823
823
  ***************************************************************/
824
- var attrs_table$17 = [
824
+ var attrs_table$18 = [
825
825
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
826
826
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "config", 0, null, "Shell declarative config (zones, menu, stages, toolbar)"),
827
827
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "default_route", 0, "", "Fallback route if hash is empty"),
@@ -832,7 +832,7 @@ var attrs_table$17 = [
832
832
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Root HTMLElement of the shell"),
833
833
  (0, _yuneta_gobj_js.SDATA_END)()
834
834
  ];
835
- var PRIVATE_DATA$17 = {
835
+ var PRIVATE_DATA$18 = {
836
836
  zones: {},
837
837
  layers: {},
838
838
  stages: {},
@@ -854,14 +854,14 @@ var PRIVATE_DATA$17 = {
854
854
  conn_nodes: [],
855
855
  active_dropdown: null
856
856
  };
857
- var __gclass__$17 = null;
857
+ var __gclass__$18 = null;
858
858
  /******************************
859
859
  * Framework Methods
860
860
  ******************************/
861
861
  /***************************************************************
862
862
  * Framework Method: Create
863
863
  ***************************************************************/
864
- function mt_create$17(gobj) {
864
+ function mt_create$18(gobj) {
865
865
  const subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
866
866
  if (subscriber) (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
867
867
  __last_shell__ = gobj;
@@ -870,7 +870,7 @@ function mt_create$17(gobj) {
870
870
  /***************************************************************
871
871
  * Framework Method: Start
872
872
  ***************************************************************/
873
- function mt_start$14(gobj) {
873
+ function mt_start$15(gobj) {
874
874
  let config = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "config") || {};
875
875
  let priv = gobj.priv;
876
876
  if (!validate_config(config)) {
@@ -939,7 +939,7 @@ function mt_start$14(gobj) {
939
939
  /***************************************************************
940
940
  * Framework Method: Stop
941
941
  ***************************************************************/
942
- function mt_stop$14(gobj) {
942
+ function mt_stop$15(gobj) {
943
943
  let priv = gobj.priv;
944
944
  if (!priv) return;
945
945
  close_toolbar_dropdown(gobj);
@@ -980,7 +980,7 @@ function mt_stop$14(gobj) {
980
980
  /***************************************************************
981
981
  * Framework Method: Destroy
982
982
  ***************************************************************/
983
- function mt_destroy$17(gobj) {
983
+ function mt_destroy$18(gobj) {
984
984
  close_toolbar_dropdown(gobj);
985
985
  let $container = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
986
986
  if ($container && $container.parentNode) $container.parentNode.removeChild($container);
@@ -1590,8 +1590,7 @@ function build_view_gobj(gobj, entry, route, stage) {
1590
1590
  }
1591
1591
  stage.el.appendChild($view);
1592
1592
  (0, _yuneta_gobj_js.gobj_start)(view);
1593
- let priv = gobj.priv;
1594
- if (priv && typeof priv.translator === "function" && target.gclass === "C_YUI_NAV") (0, _yuneta_gobj_js.refresh_language)($view, priv.translator);
1593
+ if (target.gclass === "C_YUI_NAV") yui_shell_translate(gobj, $view);
1595
1594
  return view;
1596
1595
  }
1597
1596
  function safe_id(s) {
@@ -1962,7 +1961,7 @@ function open_toolbar_dropdown(gobj, item, action, $trigger) {
1962
1961
  } else style_parts.push(`left:${Math.max(0, Math.round(rect.left))}px`);
1963
1962
  $panel.setAttribute("style", style_parts.join(";"));
1964
1963
  priv.layers.popup.appendChild($panel);
1965
- if (typeof priv.translator === "function") (0, _yuneta_gobj_js.refresh_language)($panel, priv.translator);
1964
+ yui_shell_translate(gobj, $panel);
1966
1965
  let backdrop = (ev) => {
1967
1966
  if ($panel.contains(ev.target)) return;
1968
1967
  if ($trigger && $trigger.contains(ev.target)) return;
@@ -2375,14 +2374,14 @@ function ac_nav_item_close(gobj, event, kw, src) {
2375
2374
  /***************************************************************
2376
2375
  * FSM
2377
2376
  ***************************************************************/
2378
- var gmt$17 = {
2379
- mt_create: mt_create$17,
2380
- mt_start: mt_start$14,
2381
- mt_stop: mt_stop$14,
2382
- mt_destroy: mt_destroy$17
2377
+ var gmt$18 = {
2378
+ mt_create: mt_create$18,
2379
+ mt_start: mt_start$15,
2380
+ mt_stop: mt_stop$15,
2381
+ mt_destroy: mt_destroy$18
2383
2382
  };
2384
- function create_gclass$17(gclass_name) {
2385
- if (__gclass__$17) {
2383
+ function create_gclass$18(gclass_name) {
2384
+ if (__gclass__$18) {
2386
2385
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
2387
2386
  return -1;
2388
2387
  }
@@ -2403,19 +2402,19 @@ function create_gclass$17(gclass_name) {
2403
2402
  null
2404
2403
  ]
2405
2404
  ]]];
2406
- __gclass__$17 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
2405
+ __gclass__$18 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
2407
2406
  ["EV_NAV_CLICKED", 0],
2408
2407
  ["EV_DRAWER_CLOSE_REQUESTED", 0],
2409
2408
  ["EV_NAV_ITEM_CLOSE", _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],
2410
2409
  ["EV_ROUTE_REQUESTED", _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],
2411
2410
  ["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],
2412
2411
  ["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]
2413
- ], states, gmt$17, 0, attrs_table$17, PRIVATE_DATA$17, 0, 0, 0, _yuneta_gobj_js.gclass_flag_t.gcflag_no_check_output_events);
2414
- if (!__gclass__$17) return -1;
2412
+ ], states, gmt$18, 0, attrs_table$18, PRIVATE_DATA$18, 0, 0, 0, _yuneta_gobj_js.gclass_flag_t.gcflag_no_check_output_events);
2413
+ if (!__gclass__$18) return -1;
2415
2414
  return 0;
2416
2415
  }
2417
2416
  function register_c_yui_shell() {
2418
- return create_gclass$17(GCLASS_NAME$17);
2417
+ return create_gclass$18(GCLASS_NAME$18);
2419
2418
  }
2420
2419
  /***************************************************************
2421
2420
  * Public helpers — exported alongside register_c_yui_shell().
@@ -2474,7 +2473,7 @@ function remembered_position(gobj, route) {
2474
2473
  function yui_shell_of(gobj) {
2475
2474
  let g = gobj;
2476
2475
  while (g) {
2477
- if ((0, _yuneta_gobj_js.gobj_gclass_name)(g) === GCLASS_NAME$17) return g;
2476
+ if ((0, _yuneta_gobj_js.gobj_gclass_name)(g) === GCLASS_NAME$18) return g;
2478
2477
  g = (0, _yuneta_gobj_js.gobj_parent)(g);
2479
2478
  }
2480
2479
  return __last_shell__;
@@ -2611,9 +2610,10 @@ function yui_shell_refresh_avatars(shell_gobj) {
2611
2610
  * Register the host's i18n translator (a t-function:
2612
2611
  * key => translated string). The host still translates the
2613
2612
  * static shell tree itself via refresh_language($container, t);
2614
- * this is only so the shell can translate DOM it builds LAZILY
2615
- * and OUTSIDE $containertoday the toolbar dropdown panel.
2616
- * Optional: with no translator the panel renders raw keys
2613
+ * this is only so the shell and the library components that
2614
+ * build DOM under it can translate DOM built LAZILY, after
2615
+ * that one-shot pass and often outside $container.
2616
+ * Optional: with no translator such DOM renders raw keys
2617
2617
  * (the previous behaviour).
2618
2618
  ************************************************************/
2619
2619
  function yui_shell_set_translator(shell_gobj, t) {
@@ -2622,6 +2622,33 @@ function yui_shell_set_translator(shell_gobj, t) {
2622
2622
  priv.translator = typeof t === "function" ? t : null;
2623
2623
  }
2624
2624
  /************************************************************
2625
+ * Apply the registered translator to a FRESHLY BUILT subtree.
2626
+ *
2627
+ * Carrying the `i18n` key on a node is not enough for it to
2628
+ * render translated: the node is born holding the raw English
2629
+ * key, and the host's refresh_language() passes walk what
2630
+ * ALREADY exists — the shell tree at start up, document.body on
2631
+ * a language switch. Anything built after that (a dropdown
2632
+ * panel, a nav a node renders when you walk into it) is reached
2633
+ * by neither, so it renders the key: lower-case English that
2634
+ * never changes language, i.e. exactly what a MISSING key looks
2635
+ * like.
2636
+ *
2637
+ * The division of labour, unchanged: LIBRARY-built DOM is
2638
+ * translated through here; APP view gclasses translate their own
2639
+ * DOM (they own a `t` — see mount_view).
2640
+ *
2641
+ * Silent no-op with no shell or no translator: an app that never
2642
+ * registered one keeps the previous behaviour instead of losing
2643
+ * its chrome.
2644
+ ************************************************************/
2645
+ function yui_shell_translate(shell_gobj, $el) {
2646
+ if (!$el || !shell_gobj || !(0, _yuneta_gobj_js.is_gobj)(shell_gobj)) return;
2647
+ let priv = shell_gobj.priv;
2648
+ if (!priv || typeof priv.translator !== "function") return;
2649
+ (0, _yuneta_gobj_js.refresh_language)($el, priv.translator);
2650
+ }
2651
+ /************************************************************
2625
2652
  * Set the backend-connection state painted by every
2626
2653
  * type:"connection" toolbar item. Host/event-driven: the
2627
2654
  * app calls this from its transport handlers (EV_ON_OPEN →
@@ -3131,7 +3158,7 @@ function yui_shell_confirm_yesnocancel(shell, message, opts) {
3131
3158
  /***************************************************************
3132
3159
  * Constants
3133
3160
  ***************************************************************/
3134
- var GCLASS_NAME$16 = "C_YUI_WINDOW";
3161
+ var GCLASS_NAME$17 = "C_YUI_WINDOW";
3135
3162
  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>";
3136
3163
  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>";
3137
3164
  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>";
@@ -3140,7 +3167,7 @@ var MOBILE_MAX = 768;
3140
3167
  /***************************************************************
3141
3168
  * Data
3142
3169
  ***************************************************************/
3143
- var attrs_table$16 = [
3170
+ var attrs_table$17 = [
3144
3171
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
3145
3172
  (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"),
3146
3173
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "x", 0, "300", "X position"),
@@ -3178,15 +3205,15 @@ var attrs_table$16 = [
3178
3205
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "win_resize_handler", 0, null, "Internal: native window 'resize' listener"),
3179
3206
  (0, _yuneta_gobj_js.SDATA_END)()
3180
3207
  ];
3181
- var PRIVATE_DATA$16 = { prevSize: 0 };
3182
- var __gclass__$16 = null;
3208
+ var PRIVATE_DATA$17 = { prevSize: 0 };
3209
+ var __gclass__$17 = null;
3183
3210
  /******************************
3184
3211
  * Framework Methods
3185
3212
  ******************************/
3186
3213
  /***************************************************************
3187
3214
  * Framework Method: Create
3188
3215
  ***************************************************************/
3189
- function mt_create$16(gobj) {
3216
+ function mt_create$17(gobj) {
3190
3217
  const subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
3191
3218
  if (subscriber) (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
3192
3219
  (0, _yuneta_gobj_js.gobj_write_attr)(gobj, "window_id", "window-" + (0, _yuneta_gobj_js.clean_name)((0, _yuneta_gobj_js.gobj_short_name)(gobj)));
@@ -3222,7 +3249,7 @@ function mt_create$16(gobj) {
3222
3249
  /***************************************************************
3223
3250
  * Framework Method: Destroy
3224
3251
  ***************************************************************/
3225
- function mt_destroy$16(gobj) {
3252
+ function mt_destroy$17(gobj) {
3226
3253
  let manager = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "manager");
3227
3254
  if (manager) (0, _yuneta_gobj_js.gobj_send_event)(manager, "EV_UNREGISTER_WINDOW", { window: gobj }, gobj);
3228
3255
  let back_overlay = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "back_overlay");
@@ -3951,15 +3978,15 @@ function ac_close(gobj, event, kw, src) {
3951
3978
  /***************************
3952
3979
  * FSM
3953
3980
  ***************************/
3954
- var gmt$16 = {
3955
- mt_create: mt_create$16,
3956
- mt_destroy: mt_destroy$16
3981
+ var gmt$17 = {
3982
+ mt_create: mt_create$17,
3983
+ mt_destroy: mt_destroy$17
3957
3984
  };
3958
3985
  /***************************************************************
3959
3986
  * Create the GClass
3960
3987
  ***************************************************************/
3961
- function create_gclass$16(gclass_name) {
3962
- if (__gclass__$16) {
3988
+ function create_gclass$17(gclass_name) {
3989
+ if (__gclass__$17) {
3963
3990
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
3964
3991
  return -1;
3965
3992
  }
@@ -3985,7 +4012,7 @@ function create_gclass$16(gclass_name) {
3985
4012
  null
3986
4013
  ]
3987
4014
  ]]];
3988
- __gclass__$16 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
4015
+ __gclass__$17 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
3989
4016
  ["EV_WINDOW_TO_CLOSE", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS],
3990
4017
  ["EV_WINDOW_MOVED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS],
3991
4018
  ["EV_WINDOW_RESIZED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS],
@@ -3993,15 +4020,15 @@ function create_gclass$16(gclass_name) {
3993
4020
  ["EV_SHOW", 0],
3994
4021
  ["EV_HIDE", 0],
3995
4022
  ["EV_CLOSE_WINDOW", 0]
3996
- ], states, gmt$16, 0, attrs_table$16, PRIVATE_DATA$16, 0, 0, 0, 0);
3997
- if (!__gclass__$16) return -1;
4023
+ ], states, gmt$17, 0, attrs_table$17, PRIVATE_DATA$17, 0, 0, 0, 0);
4024
+ if (!__gclass__$17) return -1;
3998
4025
  return 0;
3999
4026
  }
4000
4027
  /***************************************************************
4001
4028
  * Register GClass
4002
4029
  ***************************************************************/
4003
4030
  function register_c_yui_window() {
4004
- return create_gclass$16(GCLASS_NAME$16);
4031
+ return create_gclass$17(GCLASS_NAME$17);
4005
4032
  }
4006
4033
  //#endregion
4007
4034
  //#region src/c_yui_window_manager.js
@@ -4039,13 +4066,13 @@ function register_c_yui_window() {
4039
4066
  /***************************************************************
4040
4067
  * Constants
4041
4068
  ***************************************************************/
4042
- var GCLASS_NAME$15 = "C_YUI_WINDOW_MANAGER";
4069
+ var GCLASS_NAME$16 = "C_YUI_WINDOW_MANAGER";
4043
4070
  var DOCK_Z = 1e6;
4044
4071
  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>";
4045
4072
  /***************************************************************
4046
4073
  * Data
4047
4074
  ***************************************************************/
4048
- var attrs_table$15 = [
4075
+ var attrs_table$16 = [
4049
4076
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
4050
4077
  (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)"),
4051
4078
  (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"),
@@ -4055,20 +4082,20 @@ var attrs_table$15 = [
4055
4082
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Internal: the dock element"),
4056
4083
  (0, _yuneta_gobj_js.SDATA_END)()
4057
4084
  ];
4058
- var PRIVATE_DATA$15 = {
4085
+ var PRIVATE_DATA$16 = {
4059
4086
  windows: null,
4060
4087
  z: 0,
4061
4088
  mql: null,
4062
4089
  mql_handler: null
4063
4090
  };
4064
- var __gclass__$15 = null;
4091
+ var __gclass__$16 = null;
4065
4092
  /******************************
4066
4093
  * Framework Methods
4067
4094
  ******************************/
4068
4095
  /***************************************************************
4069
4096
  * Framework Method: Create
4070
4097
  ***************************************************************/
4071
- function mt_create$15(gobj) {
4098
+ function mt_create$16(gobj) {
4072
4099
  let priv = gobj.priv;
4073
4100
  priv.windows = [];
4074
4101
  priv.z = 10;
@@ -4087,7 +4114,7 @@ function mt_create$15(gobj) {
4087
4114
  /***************************************************************
4088
4115
  * Framework Method: Destroy
4089
4116
  ***************************************************************/
4090
- function mt_destroy$15(gobj) {
4117
+ function mt_destroy$16(gobj) {
4091
4118
  let priv = gobj.priv;
4092
4119
  if (priv.mql && priv.mql_handler) {
4093
4120
  priv.mql.removeEventListener("change", priv.mql_handler);
@@ -4446,19 +4473,19 @@ function ac_focus_window(gobj, event, kw, src) {
4446
4473
  /***************************
4447
4474
  * FSM
4448
4475
  ***************************/
4449
- var gmt$15 = {
4450
- mt_create: mt_create$15,
4451
- mt_destroy: mt_destroy$15
4476
+ var gmt$16 = {
4477
+ mt_create: mt_create$16,
4478
+ mt_destroy: mt_destroy$16
4452
4479
  };
4453
4480
  /***************************************************************
4454
4481
  * Create the GClass
4455
4482
  ***************************************************************/
4456
- function create_gclass$15(gclass_name) {
4457
- if (__gclass__$15) {
4483
+ function create_gclass$16(gclass_name) {
4484
+ if (__gclass__$16) {
4458
4485
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
4459
4486
  return -1;
4460
4487
  }
4461
- __gclass__$15 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
4488
+ __gclass__$16 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
4462
4489
  ["EV_REGISTER_WINDOW", 0],
4463
4490
  ["EV_UNREGISTER_WINDOW", 0],
4464
4491
  ["EV_MINIMIZE_WINDOW", 0],
@@ -4484,15 +4511,15 @@ function create_gclass$15(gclass_name) {
4484
4511
  ac_focus_window,
4485
4512
  null
4486
4513
  ]
4487
- ]]], gmt$15, 0, attrs_table$15, PRIVATE_DATA$15, 0, 0, 0, 0);
4488
- if (!__gclass__$15) return -1;
4514
+ ]]], gmt$16, 0, attrs_table$16, PRIVATE_DATA$16, 0, 0, 0, 0);
4515
+ if (!__gclass__$16) return -1;
4489
4516
  return 0;
4490
4517
  }
4491
4518
  /***************************************************************
4492
4519
  * Register GClass
4493
4520
  ***************************************************************/
4494
4521
  function register_c_yui_window_manager() {
4495
- return create_gclass$15(GCLASS_NAME$15);
4522
+ return create_gclass$16(GCLASS_NAME$16);
4496
4523
  }
4497
4524
  //#endregion
4498
4525
  //#region src/pager_helpers.js
@@ -4578,11 +4605,11 @@ function pager_back_action(stack, back_on_root) {
4578
4605
  /***************************************************************
4579
4606
  * Constants
4580
4607
  ***************************************************************/
4581
- var GCLASS_NAME$14 = "C_YUI_PAGER";
4608
+ var GCLASS_NAME$15 = "C_YUI_PAGER";
4582
4609
  /***************************************************************
4583
4610
  * Data
4584
4611
  ***************************************************************/
4585
- var attrs_table$14 = [
4612
+ var attrs_table$15 = [
4586
4613
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
4587
4614
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "root_title", 0, "", "Title shown on the root page"),
4588
4615
  (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"),
@@ -4590,15 +4617,15 @@ var attrs_table$14 = [
4590
4617
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
4591
4618
  (0, _yuneta_gobj_js.SDATA_END)()
4592
4619
  ];
4593
- var PRIVATE_DATA$14 = { stack: null };
4594
- var __gclass__$14 = null;
4620
+ var PRIVATE_DATA$15 = { stack: null };
4621
+ var __gclass__$15 = null;
4595
4622
  /******************************
4596
4623
  * Framework Methods
4597
4624
  ******************************/
4598
4625
  /***************************************************************
4599
4626
  * Framework Method: Create
4600
4627
  ***************************************************************/
4601
- function mt_create$14(gobj) {
4628
+ function mt_create$15(gobj) {
4602
4629
  let priv = gobj.priv;
4603
4630
  priv.stack = [];
4604
4631
  build_ui$13(gobj);
@@ -4609,17 +4636,17 @@ function mt_create$14(gobj) {
4609
4636
  /***************************************************************
4610
4637
  * Framework Method: Start
4611
4638
  ***************************************************************/
4612
- function mt_start$13(gobj) {}
4639
+ function mt_start$14(gobj) {}
4613
4640
  /***************************************************************
4614
4641
  * Framework Method: Stop
4615
4642
  ***************************************************************/
4616
- function mt_stop$13(gobj) {
4643
+ function mt_stop$14(gobj) {
4617
4644
  (0, _yuneta_gobj_js.gobj_stop_children)(gobj);
4618
4645
  }
4619
4646
  /***************************************************************
4620
4647
  * Framework Method: Destroy
4621
4648
  ***************************************************************/
4622
- function mt_destroy$14(gobj) {
4649
+ function mt_destroy$15(gobj) {
4623
4650
  destroy_ui$9(gobj);
4624
4651
  }
4625
4652
  /***************************
@@ -4777,7 +4804,7 @@ function ac_push_page(gobj, event, kw, src) {
4777
4804
  let priv = gobj.priv;
4778
4805
  let resolved = resolve_panel$1(kw.content);
4779
4806
  if (!resolved.$el) {
4780
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$14}: EV_PUSH_PAGE without content`);
4807
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$15}: EV_PUSH_PAGE without content`);
4781
4808
  return -1;
4782
4809
  }
4783
4810
  let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-pager-body");
@@ -4830,7 +4857,7 @@ function ac_replace_page(gobj, event, kw, src) {
4830
4857
  let priv = gobj.priv;
4831
4858
  let resolved = resolve_panel$1(kw.content);
4832
4859
  if (!resolved.$el) {
4833
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$14}: EV_REPLACE_PAGE without content`);
4860
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$15}: EV_REPLACE_PAGE without content`);
4834
4861
  return -1;
4835
4862
  }
4836
4863
  let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-pager-body");
@@ -4897,17 +4924,17 @@ function ac_resize$4(gobj, event, kw, src) {
4897
4924
  /***************************
4898
4925
  * FSM
4899
4926
  ***************************/
4900
- var gmt$14 = {
4901
- mt_create: mt_create$14,
4902
- mt_start: mt_start$13,
4903
- mt_stop: mt_stop$13,
4904
- mt_destroy: mt_destroy$14
4927
+ var gmt$15 = {
4928
+ mt_create: mt_create$15,
4929
+ mt_start: mt_start$14,
4930
+ mt_stop: mt_stop$14,
4931
+ mt_destroy: mt_destroy$15
4905
4932
  };
4906
4933
  /***************************************************************
4907
4934
  * Create the GClass
4908
4935
  ***************************************************************/
4909
- function create_gclass$14(gclass_name) {
4910
- if (__gclass__$14) {
4936
+ function create_gclass$15(gclass_name) {
4937
+ if (__gclass__$15) {
4911
4938
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
4912
4939
  return -1;
4913
4940
  }
@@ -4958,7 +4985,7 @@ function create_gclass$14(gclass_name) {
4958
4985
  null
4959
4986
  ]
4960
4987
  ]]];
4961
- __gclass__$14 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
4988
+ __gclass__$15 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
4962
4989
  ["EV_PUSH_PAGE", 0],
4963
4990
  ["EV_POP_PAGE", 0],
4964
4991
  ["EV_BACK", 0],
@@ -4971,15 +4998,15 @@ function create_gclass$14(gclass_name) {
4971
4998
  ["EV_PAGE_SHOWN", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS],
4972
4999
  ["EV_PAGE_DISCARD", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
4973
5000
  ["EV_PAGER_EXIT", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT]
4974
- ], states, gmt$14, 0, attrs_table$14, PRIVATE_DATA$14, 0, 0, 0, 0);
4975
- if (!__gclass__$14) return -1;
5001
+ ], states, gmt$15, 0, attrs_table$15, PRIVATE_DATA$15, 0, 0, 0, 0);
5002
+ if (!__gclass__$15) return -1;
4976
5003
  return 0;
4977
5004
  }
4978
5005
  /***************************************************************
4979
5006
  * Register GClass
4980
5007
  ***************************************************************/
4981
5008
  function register_c_yui_pager() {
4982
- return create_gclass$14(GCLASS_NAME$14);
5009
+ return create_gclass$15(GCLASS_NAME$15);
4983
5010
  }
4984
5011
  //#endregion
4985
5012
  //#region src/wizard_helpers.js
@@ -5100,11 +5127,11 @@ function wizard_should_validate(linear, has_gobj) {
5100
5127
  /***************************************************************
5101
5128
  * Constants
5102
5129
  ***************************************************************/
5103
- var GCLASS_NAME$13 = "C_YUI_WIZARD";
5130
+ var GCLASS_NAME$14 = "C_YUI_WIZARD";
5104
5131
  /***************************************************************
5105
5132
  * Data
5106
5133
  ***************************************************************/
5107
- var attrs_table$13 = [
5134
+ var attrs_table$14 = [
5108
5135
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
5109
5136
  (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"),
5110
5137
  (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)"),
@@ -5114,20 +5141,20 @@ var attrs_table$13 = [
5114
5141
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
5115
5142
  (0, _yuneta_gobj_js.SDATA_END)()
5116
5143
  ];
5117
- var PRIVATE_DATA$13 = {
5144
+ var PRIVATE_DATA$14 = {
5118
5145
  steps: null,
5119
5146
  idx: 0,
5120
5147
  acc: null,
5121
5148
  awaiting: false
5122
5149
  };
5123
- var __gclass__$13 = null;
5150
+ var __gclass__$14 = null;
5124
5151
  /******************************
5125
5152
  * Framework Methods
5126
5153
  ******************************/
5127
5154
  /***************************************************************
5128
5155
  * Framework Method: Create
5129
5156
  ***************************************************************/
5130
- function mt_create$13(gobj) {
5157
+ function mt_create$14(gobj) {
5131
5158
  let priv = gobj.priv;
5132
5159
  priv.steps = [];
5133
5160
  priv.idx = 0;
@@ -5141,17 +5168,17 @@ function mt_create$13(gobj) {
5141
5168
  /***************************************************************
5142
5169
  * Framework Method: Start
5143
5170
  ***************************************************************/
5144
- function mt_start$12(gobj) {}
5171
+ function mt_start$13(gobj) {}
5145
5172
  /***************************************************************
5146
5173
  * Framework Method: Stop
5147
5174
  ***************************************************************/
5148
- function mt_stop$12(gobj) {
5175
+ function mt_stop$13(gobj) {
5149
5176
  (0, _yuneta_gobj_js.gobj_stop_children)(gobj);
5150
5177
  }
5151
5178
  /***************************************************************
5152
5179
  * Framework Method: Destroy
5153
5180
  ***************************************************************/
5154
- function mt_destroy$13(gobj) {
5181
+ function mt_destroy$14(gobj) {
5155
5182
  destroy_ui$8(gobj);
5156
5183
  }
5157
5184
  /***************************
@@ -5358,7 +5385,7 @@ function ac_set_steps(gobj, event, kw, src) {
5358
5385
  let priv = gobj.priv;
5359
5386
  let steps_in = kw && kw.steps || [];
5360
5387
  if (steps_in.length === 0) {
5361
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: EV_SET_STEPS with no steps`);
5388
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$14}: EV_SET_STEPS with no steps`);
5362
5389
  return -1;
5363
5390
  }
5364
5391
  let $body = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container").querySelector(".yui-wizard-body");
@@ -5368,7 +5395,7 @@ function ac_set_steps(gobj, event, kw, src) {
5368
5395
  let st = steps_in[i];
5369
5396
  let resolved = resolve_panel(st.content);
5370
5397
  if (!resolved.$el) {
5371
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$13}: step '${st.id}' has no content`);
5398
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$14}: step '${st.id}' has no content`);
5372
5399
  return -1;
5373
5400
  }
5374
5401
  resolved.$el.classList.add("is-hidden");
@@ -5502,17 +5529,17 @@ function ac_resize$3(gobj, event, kw, src) {
5502
5529
  /***************************
5503
5530
  * FSM
5504
5531
  ***************************/
5505
- var gmt$13 = {
5506
- mt_create: mt_create$13,
5507
- mt_start: mt_start$12,
5508
- mt_stop: mt_stop$12,
5509
- mt_destroy: mt_destroy$13
5532
+ var gmt$14 = {
5533
+ mt_create: mt_create$14,
5534
+ mt_start: mt_start$13,
5535
+ mt_stop: mt_stop$13,
5536
+ mt_destroy: mt_destroy$14
5510
5537
  };
5511
5538
  /***************************************************************
5512
5539
  * Create the GClass
5513
5540
  ***************************************************************/
5514
- function create_gclass$13(gclass_name) {
5515
- if (__gclass__$13) {
5541
+ function create_gclass$14(gclass_name) {
5542
+ if (__gclass__$14) {
5516
5543
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
5517
5544
  return -1;
5518
5545
  }
@@ -5573,7 +5600,7 @@ function create_gclass$13(gclass_name) {
5573
5600
  null
5574
5601
  ]
5575
5602
  ]]];
5576
- __gclass__$13 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
5603
+ __gclass__$14 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
5577
5604
  ["EV_SET_STEPS", 0],
5578
5605
  ["EV_NEXT", 0],
5579
5606
  ["EV_PREV", 0],
@@ -5589,15 +5616,15 @@ function create_gclass$13(gclass_name) {
5589
5616
  ["EV_WIZARD_DONE", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
5590
5617
  ["EV_WIZARD_CANCEL", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
5591
5618
  ["EV_STEP_VALIDATE", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS]
5592
- ], states, gmt$13, 0, attrs_table$13, PRIVATE_DATA$13, 0, 0, 0, 0);
5593
- if (!__gclass__$13) return -1;
5619
+ ], states, gmt$14, 0, attrs_table$14, PRIVATE_DATA$14, 0, 0, 0, 0);
5620
+ if (!__gclass__$14) return -1;
5594
5621
  return 0;
5595
5622
  }
5596
5623
  /***************************************************************
5597
5624
  * Register GClass
5598
5625
  ***************************************************************/
5599
5626
  function register_c_yui_wizard() {
5600
- return create_gclass$13(GCLASS_NAME$13);
5627
+ return create_gclass$14(GCLASS_NAME$14);
5601
5628
  }
5602
5629
  //#endregion
5603
5630
  //#region src/yui_inputs.js
@@ -5767,11 +5794,11 @@ function yui_watch_theme(gobj, event = "EV_THEME") {
5767
5794
  /***************************************************************
5768
5795
  * Constants
5769
5796
  ***************************************************************/
5770
- var GCLASS_NAME$12 = "C_YUI_FORM";
5797
+ var GCLASS_NAME$13 = "C_YUI_FORM";
5771
5798
  /***************************************************************
5772
5799
  * Data
5773
5800
  ***************************************************************/
5774
- var attrs_table$12 = [
5801
+ var attrs_table$13 = [
5775
5802
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of publishing messages"),
5776
5803
  (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"),
5777
5804
  (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"),
@@ -5799,15 +5826,15 @@ var attrs_table$12 = [
5799
5826
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_BOOLEAN, "changes", 0, false, "Indicates if changes have been made"),
5800
5827
  (0, _yuneta_gobj_js.SDATA_END)()
5801
5828
  ];
5802
- var PRIVATE_DATA$12 = {};
5803
- var __gclass__$12 = null;
5829
+ var PRIVATE_DATA$13 = {};
5830
+ var __gclass__$13 = null;
5804
5831
  /***************************
5805
5832
  * Framework Methods
5806
5833
  ***************************/
5807
5834
  /************************************************************
5808
5835
  * Framework Method create
5809
5836
  ************************************************************/
5810
- function mt_create$12(gobj) {
5837
+ function mt_create$13(gobj) {
5811
5838
  let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
5812
5839
  if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
5813
5840
  (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
@@ -5819,20 +5846,20 @@ function mt_create$12(gobj) {
5819
5846
  * In this point, all children
5820
5847
  * and subscriptions are already deleted.
5821
5848
  ************************************************************/
5822
- function mt_destroy$12(gobj) {
5849
+ function mt_destroy$13(gobj) {
5823
5850
  destroy_ui$7(gobj);
5824
5851
  }
5825
5852
  /************************************************************
5826
5853
  * Framework Method start
5827
5854
  ************************************************************/
5828
- function mt_start$11(gobj) {
5855
+ function mt_start$12(gobj) {
5829
5856
  let record = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "record");
5830
5857
  if (record) (0, _yuneta_gobj_js.gobj_send_event)(gobj, "EV_LOAD_RECORD", record, gobj);
5831
5858
  }
5832
5859
  /************************************************************
5833
5860
  * Framework Method stop
5834
5861
  ************************************************************/
5835
- function mt_stop$11(gobj) {}
5862
+ function mt_stop$12(gobj) {}
5836
5863
  /***************************
5837
5864
  * Local Methods
5838
5865
  ***************************/
@@ -7843,17 +7870,17 @@ function ac_timeout(gobj, event, kw, src) {
7843
7870
  /***************************
7844
7871
  * FSM
7845
7872
  ***************************/
7846
- var gmt$12 = {
7847
- mt_create: mt_create$12,
7848
- mt_start: mt_start$11,
7849
- mt_stop: mt_stop$11,
7850
- mt_destroy: mt_destroy$12
7873
+ var gmt$13 = {
7874
+ mt_create: mt_create$13,
7875
+ mt_start: mt_start$12,
7876
+ mt_stop: mt_stop$12,
7877
+ mt_destroy: mt_destroy$13
7851
7878
  };
7852
7879
  /***************************************************************
7853
7880
  * Create the GClass
7854
7881
  ***************************************************************/
7855
- function create_gclass$12(gclass_name) {
7856
- if (__gclass__$12) {
7882
+ function create_gclass$13(gclass_name) {
7883
+ if (__gclass__$13) {
7857
7884
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
7858
7885
  return -1;
7859
7886
  }
@@ -7934,7 +7961,7 @@ function create_gclass$12(gclass_name) {
7934
7961
  null
7935
7962
  ]
7936
7963
  ]]];
7937
- __gclass__$12 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
7964
+ __gclass__$13 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
7938
7965
  ["EV_LOAD_RECORD", 0],
7939
7966
  ["EV_SAVE_RECORD", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT],
7940
7967
  ["EV_UNDO_RECORD", 0],
@@ -7950,16 +7977,16 @@ function create_gclass$12(gclass_name) {
7950
7977
  ["EV_SHOW", 0],
7951
7978
  ["EV_HIDE", 0],
7952
7979
  ["EV_TIMEOUT", 0]
7953
- ], states, gmt$12, 0, attrs_table$12, PRIVATE_DATA$12, 0, 0, 0, 0);
7954
- if (!__gclass__$12) return -1;
7980
+ ], states, gmt$13, 0, attrs_table$13, PRIVATE_DATA$13, 0, 0, 0, 0);
7981
+ if (!__gclass__$13) return -1;
7955
7982
  return 0;
7956
7983
  }
7957
7984
  /***************************************************************
7958
7985
  * Register GClass
7959
7986
  ***************************************************************/
7960
7987
  function register_c_yui_form() {
7961
- if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$12, false)) return 0;
7962
- return create_gclass$12(GCLASS_NAME$12);
7988
+ if ((0, _yuneta_gobj_js.gclass_find_by_name)(GCLASS_NAME$13, false)) return 0;
7989
+ return create_gclass$13(GCLASS_NAME$13);
7963
7990
  }
7964
7991
  //#endregion
7965
7992
  //#region src/lib_maplibre.js
@@ -8119,11 +8146,11 @@ var MarkerControl = class {
8119
8146
  /***************************************************************
8120
8147
  * Constants
8121
8148
  ***************************************************************/
8122
- var GCLASS_NAME$11 = "C_YUI_MAP";
8149
+ var GCLASS_NAME$12 = "C_YUI_MAP";
8123
8150
  /***************************************************************
8124
8151
  * Data
8125
8152
  ***************************************************************/
8126
- var attrs_table$11 = [
8153
+ var attrs_table$12 = [
8127
8154
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
8128
8155
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "devices", "[]", null, "List of devices"),
8129
8156
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "map_settings", 0, {
@@ -8144,7 +8171,7 @@ var attrs_table$11 = [
8144
8171
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "timeout_idle", 0, 5, "Idle timeout in seconds"),
8145
8172
  (0, _yuneta_gobj_js.SDATA_END)()
8146
8173
  ];
8147
- var PRIVATE_DATA$11 = {
8174
+ var PRIVATE_DATA$12 = {
8148
8175
  xmap: null,
8149
8176
  geojson: null,
8150
8177
  resizeObserver: null,
@@ -8153,21 +8180,21 @@ var PRIVATE_DATA$11 = {
8153
8180
  markers: {},
8154
8181
  draggedFeature: null
8155
8182
  };
8156
- var __gclass__$11 = null;
8183
+ var __gclass__$12 = null;
8157
8184
  /******************************
8158
8185
  * Framework Methods
8159
8186
  ******************************/
8160
8187
  /***************************************************************
8161
8188
  * Framework Method: Create
8162
8189
  ***************************************************************/
8163
- function mt_create$11(gobj) {
8190
+ function mt_create$12(gobj) {
8164
8191
  let priv = gobj.priv;
8165
8192
  let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
8166
8193
  if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
8167
8194
  (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
8168
8195
  let map_settings = (0, _yuneta_gobj_js.json_deep_copy)((0, _yuneta_gobj_js.gobj_read_attr)(gobj, "map_settings"));
8169
8196
  let $map = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$map");
8170
- if ($map) $map.classList.add(GCLASS_NAME$11);
8197
+ if ($map) $map.classList.add(GCLASS_NAME$12);
8171
8198
  Object.assign(map_settings, { container: $map });
8172
8199
  priv.onClick = (ev) => {
8173
8200
  onClick(gobj, ev);
@@ -8216,7 +8243,7 @@ function mt_create$11(gobj) {
8216
8243
  /***************************************************************
8217
8244
  * Framework Method: Destroy
8218
8245
  ***************************************************************/
8219
- function mt_destroy$11(gobj) {
8246
+ function mt_destroy$12(gobj) {
8220
8247
  let priv = gobj.priv;
8221
8248
  if (priv.resizeObserver) {
8222
8249
  priv.resizeObserver.disconnect();
@@ -8632,19 +8659,19 @@ function ac_hide$7(gobj, event, kw, src) {
8632
8659
  /***************************
8633
8660
  * FSM
8634
8661
  ***************************/
8635
- var gmt$11 = {
8636
- mt_create: mt_create$11,
8637
- mt_destroy: mt_destroy$11
8662
+ var gmt$12 = {
8663
+ mt_create: mt_create$12,
8664
+ mt_destroy: mt_destroy$12
8638
8665
  };
8639
8666
  /***************************************************************
8640
8667
  * Create the GClass
8641
8668
  ***************************************************************/
8642
- function create_gclass$11(gclass_name) {
8643
- if (__gclass__$11) {
8669
+ function create_gclass$12(gclass_name) {
8670
+ if (__gclass__$12) {
8644
8671
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
8645
8672
  return -1;
8646
8673
  }
8647
- __gclass__$11 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
8674
+ __gclass__$12 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
8648
8675
  ["EV_EDIT_MAP", 0],
8649
8676
  ["EV_CONTROL_MAP", 0],
8650
8677
  ["EV_MAP_ON_LOAD", 0],
@@ -8688,15 +8715,15 @@ function create_gclass$11(gclass_name) {
8688
8715
  ac_hide$7,
8689
8716
  null
8690
8717
  ]
8691
- ]]], gmt$11, 0, attrs_table$11, PRIVATE_DATA$11, 0, 0, 0, 0);
8692
- if (!__gclass__$11) return -1;
8718
+ ]]], gmt$12, 0, attrs_table$12, PRIVATE_DATA$12, 0, 0, 0, 0);
8719
+ if (!__gclass__$12) return -1;
8693
8720
  return 0;
8694
8721
  }
8695
8722
  /***************************************************************
8696
8723
  * Register GClass
8697
8724
  ***************************************************************/
8698
8725
  function register_c_yui_map() {
8699
- return create_gclass$11(GCLASS_NAME$11);
8726
+ return create_gclass$12(GCLASS_NAME$12);
8700
8727
  }
8701
8728
  //#endregion
8702
8729
  //#region src/c_yui_uplot.js
@@ -8711,11 +8738,11 @@ function register_c_yui_map() {
8711
8738
  /***************************************************************
8712
8739
  * Constants
8713
8740
  ***************************************************************/
8714
- var GCLASS_NAME$10 = "C_YUI_UPLOT";
8741
+ var GCLASS_NAME$11 = "C_YUI_UPLOT";
8715
8742
  /***************************************************************
8716
8743
  * Data
8717
8744
  ***************************************************************/
8718
- var attrs_table$10 = [
8745
+ var attrs_table$11 = [
8719
8746
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
8720
8747
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "title", 0, "", "Chart title"),
8721
8748
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "width", 0, 800, "Chart width"),
@@ -8750,15 +8777,15 @@ var attrs_table$10 = [
8750
8777
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "timeout_idle", 0, 5, "Idle timeout (seconds)"),
8751
8778
  (0, _yuneta_gobj_js.SDATA_END)()
8752
8779
  ];
8753
- var PRIVATE_DATA$10 = {};
8754
- var __gclass__$10 = null;
8780
+ var PRIVATE_DATA$11 = {};
8781
+ var __gclass__$11 = null;
8755
8782
  /******************************
8756
8783
  * Framework Methods
8757
8784
  ******************************/
8758
8785
  /***************************************************************
8759
8786
  * Framework Method: Create
8760
8787
  ***************************************************************/
8761
- function mt_create$10(gobj) {
8788
+ function mt_create$11(gobj) {
8762
8789
  build_ui$10(gobj);
8763
8790
  let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
8764
8791
  if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
@@ -8767,15 +8794,15 @@ function mt_create$10(gobj) {
8767
8794
  /***************************************************************
8768
8795
  * Framework Method: Start
8769
8796
  ***************************************************************/
8770
- function mt_start$10(gobj) {}
8797
+ function mt_start$11(gobj) {}
8771
8798
  /***************************************************************
8772
8799
  * Framework Method: Stop
8773
8800
  ***************************************************************/
8774
- function mt_stop$10(gobj) {}
8801
+ function mt_stop$11(gobj) {}
8775
8802
  /***************************************************************
8776
8803
  * Framework Method: Destroy
8777
8804
  ***************************************************************/
8778
- function mt_destroy$10(gobj) {
8805
+ function mt_destroy$11(gobj) {
8779
8806
  let uplot$1 = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "uplot");
8780
8807
  if (uplot$1) {
8781
8808
  uplot$1.destroy();
@@ -8941,21 +8968,21 @@ function ac_clear(gobj, event, kw, src) {
8941
8968
  /***************************
8942
8969
  * FSM
8943
8970
  ***************************/
8944
- var gmt$10 = {
8945
- mt_create: mt_create$10,
8946
- mt_start: mt_start$10,
8947
- mt_stop: mt_stop$10,
8948
- mt_destroy: mt_destroy$10
8971
+ var gmt$11 = {
8972
+ mt_create: mt_create$11,
8973
+ mt_start: mt_start$11,
8974
+ mt_stop: mt_stop$11,
8975
+ mt_destroy: mt_destroy$11
8949
8976
  };
8950
8977
  /***************************************************************
8951
8978
  * Create the GClass
8952
8979
  ***************************************************************/
8953
- function create_gclass$10(gclass_name) {
8954
- if (__gclass__$10) {
8980
+ function create_gclass$11(gclass_name) {
8981
+ if (__gclass__$11) {
8955
8982
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
8956
8983
  return -1;
8957
8984
  }
8958
- __gclass__$10 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
8985
+ __gclass__$11 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
8959
8986
  ["EV_LOAD_DATA", 0],
8960
8987
  ["EV_ADD_SERIE", 0],
8961
8988
  ["EV_DEL_SERIE", 0],
@@ -8981,15 +9008,15 @@ function create_gclass$10(gclass_name) {
8981
9008
  ac_clear,
8982
9009
  null
8983
9010
  ]
8984
- ]]], gmt$10, 0, attrs_table$10, PRIVATE_DATA$10, 0, 0, 0, 0);
8985
- if (!__gclass__$10) return -1;
9011
+ ]]], gmt$11, 0, attrs_table$11, PRIVATE_DATA$11, 0, 0, 0, 0);
9012
+ if (!__gclass__$11) return -1;
8986
9013
  return 0;
8987
9014
  }
8988
9015
  /***************************************************************
8989
9016
  * Register GClass
8990
9017
  ***************************************************************/
8991
9018
  function register_c_yui_uplot() {
8992
- return create_gclass$10(GCLASS_NAME$10);
9019
+ return create_gclass$11(GCLASS_NAME$11);
8993
9020
  }
8994
9021
  //#endregion
8995
9022
  //#region src/yui_toolbar.js
@@ -9196,11 +9223,11 @@ function ensure_drag_canvas_patch() {
9196
9223
  /***************************************************************
9197
9224
  * Constants
9198
9225
  ***************************************************************/
9199
- var GCLASS_NAME$9 = "C_YUI_JSON_GRAPH";
9226
+ var GCLASS_NAME$10 = "C_YUI_JSON_GRAPH";
9200
9227
  /***************************************************************
9201
9228
  * Data
9202
9229
  ***************************************************************/
9203
- var attrs_table$9 = [
9230
+ var attrs_table$10 = [
9204
9231
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
9205
9232
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "path", 0, "", "Root path label"),
9206
9233
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "json_data", 0, null, "JSON data to visualize"),
@@ -9209,7 +9236,7 @@ var attrs_table$9 = [
9209
9236
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "wide", 0, "36px", "Height of header"),
9210
9237
  (0, _yuneta_gobj_js.SDATA_END)()
9211
9238
  ];
9212
- var PRIVATE_DATA$9 = {
9239
+ var PRIVATE_DATA$10 = {
9213
9240
  canvas_id: "",
9214
9241
  graph: null,
9215
9242
  node_counter: 0,
@@ -9218,7 +9245,7 @@ var PRIVATE_DATA$9 = {
9218
9245
  resize_observer: null,
9219
9246
  _resize_raf: 0
9220
9247
  };
9221
- var __gclass__$9 = null;
9248
+ var __gclass__$10 = null;
9222
9249
  var __layout_registered__$1 = false;
9223
9250
  /***************************************************************
9224
9251
  * Type colors matching the original mx_json_viewer
@@ -9283,7 +9310,7 @@ function type_color(type, dark) {
9283
9310
  /***************************************************************
9284
9311
  * Framework Method: Create
9285
9312
  ***************************************************************/
9286
- function mt_create$9(gobj) {
9313
+ function mt_create$10(gobj) {
9287
9314
  let priv = gobj.priv;
9288
9315
  priv.canvas_id = "json-canvas-" + (0, _yuneta_gobj_js.clean_name)((0, _yuneta_gobj_js.gobj_name)(gobj));
9289
9316
  (0, _yuneta_gobj_js.gobj_write_str_attr)(gobj, "canvas_id", priv.canvas_id);
@@ -9302,18 +9329,18 @@ function mt_create$9(gobj) {
9302
9329
  /***************************************************************
9303
9330
  * Framework Method: Start
9304
9331
  ***************************************************************/
9305
- function mt_start$9(gobj) {
9332
+ function mt_start$10(gobj) {
9306
9333
  build_graph$3(gobj);
9307
9334
  load_json(gobj);
9308
9335
  }
9309
9336
  /***************************************************************
9310
9337
  * Framework Method: Stop
9311
9338
  ***************************************************************/
9312
- function mt_stop$9(gobj) {}
9339
+ function mt_stop$10(gobj) {}
9313
9340
  /***************************************************************
9314
9341
  * Framework Method: Destroy
9315
9342
  ***************************************************************/
9316
- function mt_destroy$9(gobj) {
9343
+ function mt_destroy$10(gobj) {
9317
9344
  let priv = gobj.priv;
9318
9345
  if (priv.theme_observer) {
9319
9346
  priv.theme_observer.disconnect();
@@ -9909,17 +9936,17 @@ function ac_hide$6(gobj, event, kw, src) {
9909
9936
  /***************************
9910
9937
  * FSM
9911
9938
  ***************************/
9912
- var gmt$9 = {
9913
- mt_create: mt_create$9,
9914
- mt_start: mt_start$9,
9915
- mt_stop: mt_stop$9,
9916
- mt_destroy: mt_destroy$9
9939
+ var gmt$10 = {
9940
+ mt_create: mt_create$10,
9941
+ mt_start: mt_start$10,
9942
+ mt_stop: mt_stop$10,
9943
+ mt_destroy: mt_destroy$10
9917
9944
  };
9918
9945
  /***************************************************************
9919
9946
  * Create the GClass
9920
9947
  ***************************************************************/
9921
- function create_gclass$9(gclass_name) {
9922
- if (__gclass__$9) {
9948
+ function create_gclass$10(gclass_name) {
9949
+ if (__gclass__$10) {
9923
9950
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
9924
9951
  return -1;
9925
9952
  }
@@ -9980,7 +10007,7 @@ function create_gclass$9(gclass_name) {
9980
10007
  null
9981
10008
  ]
9982
10009
  ]]];
9983
- __gclass__$9 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
10010
+ __gclass__$10 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
9984
10011
  ["EV_LOAD_DATA", 0],
9985
10012
  ["EV_REFRESH", 0],
9986
10013
  ["EV_THEME", 0],
@@ -9993,15 +10020,15 @@ function create_gclass$9(gclass_name) {
9993
10020
  ["EV_SHOW", 0],
9994
10021
  ["EV_HIDE", 0],
9995
10022
  ["EV_JSON_ITEM_CLICKED", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT]
9996
- ], states, gmt$9, 0, attrs_table$9, PRIVATE_DATA$9, 0, 0, 0, 0);
9997
- if (!__gclass__$9) return -1;
10023
+ ], states, gmt$10, 0, attrs_table$10, PRIVATE_DATA$10, 0, 0, 0, 0);
10024
+ if (!__gclass__$10) return -1;
9998
10025
  return 0;
9999
10026
  }
10000
10027
  /***************************************************************
10001
10028
  * Register GClass
10002
10029
  ***************************************************************/
10003
10030
  function register_c_yui_json_graph() {
10004
- return create_gclass$9(GCLASS_NAME$9);
10031
+ return create_gclass$10(GCLASS_NAME$10);
10005
10032
  }
10006
10033
  /************************************************************
10007
10034
  * JSON type discriminator (viewer vocabulary)
@@ -10178,19 +10205,19 @@ function format_epoch(value) {
10178
10205
  /***************************************************************
10179
10206
  * Constants
10180
10207
  ***************************************************************/
10181
- var GCLASS_NAME$8 = "C_YUI_JSON";
10208
+ var GCLASS_NAME$9 = "C_YUI_JSON";
10182
10209
  var MAX_RENDER_ROWS = 5e3;
10183
10210
  /***************************************************************
10184
10211
  * Data
10185
10212
  ***************************************************************/
10186
- var attrs_table$8 = [
10213
+ var attrs_table$9 = [
10187
10214
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
10188
10215
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "title", 0, "", "Optional header title (i18n key)"),
10189
10216
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "json_data", 0, null, "Initial JSON to render (usually already collapsed)"),
10190
10217
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "HTMLElement root, mounted by the parent"),
10191
10218
  (0, _yuneta_gobj_js.SDATA_END)()
10192
10219
  ];
10193
- var PRIVATE_DATA$8 = {
10220
+ var PRIVATE_DATA$9 = {
10194
10221
  root: null,
10195
10222
  expanded: null,
10196
10223
  pending: null,
@@ -10199,14 +10226,14 @@ var PRIVATE_DATA$8 = {
10199
10226
  $tree: null,
10200
10227
  $search: null
10201
10228
  };
10202
- var __gclass__$8 = null;
10229
+ var __gclass__$9 = null;
10203
10230
  /******************************
10204
10231
  * Framework Methods
10205
10232
  ******************************/
10206
10233
  /***************************************************************
10207
10234
  * Framework Method: Create
10208
10235
  ***************************************************************/
10209
- function mt_create$8(gobj) {
10236
+ function mt_create$9(gobj) {
10210
10237
  let priv = gobj.priv;
10211
10238
  priv.expanded = /* @__PURE__ */ new Set();
10212
10239
  priv.pending = /* @__PURE__ */ new Set();
@@ -10222,17 +10249,17 @@ function mt_create$8(gobj) {
10222
10249
  /***************************************************************
10223
10250
  * Framework Method: Start
10224
10251
  ***************************************************************/
10225
- function mt_start$8(gobj) {
10252
+ function mt_start$9(gobj) {
10226
10253
  render_tree(gobj);
10227
10254
  }
10228
10255
  /***************************************************************
10229
10256
  * Framework Method: Stop
10230
10257
  ***************************************************************/
10231
- function mt_stop$8(gobj) {}
10258
+ function mt_stop$9(gobj) {}
10232
10259
  /***************************************************************
10233
10260
  * Framework Method: Destroy
10234
10261
  ***************************************************************/
10235
- function mt_destroy$8(gobj) {
10262
+ function mt_destroy$9(gobj) {
10236
10263
  destroy_ui$4(gobj);
10237
10264
  }
10238
10265
  /***************************
@@ -10736,7 +10763,7 @@ function ac_subtree_error(gobj, event, kw, src) {
10736
10763
  let path = kw.path || "";
10737
10764
  priv.pending.delete(path);
10738
10765
  priv.errors.set(path, kw.error || "error");
10739
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$8}: subtree load failed at '${path}': ${kw.error || ""}`);
10766
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$9}: subtree load failed at '${path}': ${kw.error || ""}`);
10740
10767
  render_tree(gobj);
10741
10768
  return 0;
10742
10769
  }
@@ -10811,9 +10838,9 @@ function ac_copy_all(gobj, event, kw, src) {
10811
10838
  if (priv.root === null || priv.root === void 0) return 0;
10812
10839
  let text = JSON.stringify(priv.root, null, 4);
10813
10840
  if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(text).catch(function(e) {
10814
- (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$8}: clipboard write failed: ${e}`);
10841
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$9}: clipboard write failed: ${e}`);
10815
10842
  });
10816
- else (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$8}: clipboard API unavailable`);
10843
+ else (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$9}: clipboard API unavailable`);
10817
10844
  return 0;
10818
10845
  }
10819
10846
  /************************************************************
@@ -10852,17 +10879,17 @@ function ac_refresh$3(gobj, event, kw, src) {
10852
10879
  /***************************
10853
10880
  * FSM
10854
10881
  ***************************/
10855
- var gmt$8 = {
10856
- mt_create: mt_create$8,
10857
- mt_start: mt_start$8,
10858
- mt_stop: mt_stop$8,
10859
- mt_destroy: mt_destroy$8
10882
+ var gmt$9 = {
10883
+ mt_create: mt_create$9,
10884
+ mt_start: mt_start$9,
10885
+ mt_stop: mt_stop$9,
10886
+ mt_destroy: mt_destroy$9
10860
10887
  };
10861
10888
  /***************************************************************
10862
10889
  * Create the GClass
10863
10890
  ***************************************************************/
10864
- function create_gclass$8(gclass_name) {
10865
- if (__gclass__$8) {
10891
+ function create_gclass$9(gclass_name) {
10892
+ if (__gclass__$9) {
10866
10893
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
10867
10894
  return -1;
10868
10895
  }
@@ -10959,7 +10986,7 @@ function create_gclass$8(gclass_name) {
10959
10986
  null
10960
10987
  ]
10961
10988
  ]]];
10962
- __gclass__$8 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
10989
+ __gclass__$9 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
10963
10990
  ["EV_SET_JSON", 0],
10964
10991
  ["EV_SUBTREE_LOADED", 0],
10965
10992
  ["EV_SUBTREE_ERROR", 0],
@@ -10974,15 +11001,15 @@ function create_gclass$8(gclass_name) {
10974
11001
  ["EV_SHOW", 0],
10975
11002
  ["EV_HIDE", 0],
10976
11003
  ["EV_EXPAND_PATH", _yuneta_gobj_js.event_flag_t.EVF_OUTPUT_EVENT | _yuneta_gobj_js.event_flag_t.EVF_NO_WARN_SUBS]
10977
- ], states, gmt$8, 0, attrs_table$8, PRIVATE_DATA$8, 0, 0, 0, 0);
10978
- if (!__gclass__$8) return -1;
11004
+ ], states, gmt$9, 0, attrs_table$9, PRIVATE_DATA$9, 0, 0, 0, 0);
11005
+ if (!__gclass__$9) return -1;
10979
11006
  return 0;
10980
11007
  }
10981
11008
  /***************************************************************
10982
11009
  * Register GClass
10983
11010
  ***************************************************************/
10984
11011
  function register_c_yui_json() {
10985
- return create_gclass$8(GCLASS_NAME$8);
11012
+ return create_gclass$9(GCLASS_NAME$9);
10986
11013
  }
10987
11014
  //#endregion
10988
11015
  //#region src/c_yui_gobj_tree_js.js
@@ -10997,11 +11024,11 @@ function register_c_yui_json() {
10997
11024
  /***************************************************************
10998
11025
  * Constants
10999
11026
  ***************************************************************/
11000
- var GCLASS_NAME$7 = "C_YUI_GOBJ_TREE_JS";
11027
+ var GCLASS_NAME$8 = "C_YUI_GOBJ_TREE_JS";
11001
11028
  /***************************************************************
11002
11029
  * Data
11003
11030
  ***************************************************************/
11004
- var attrs_table$7 = [
11031
+ var attrs_table$8 = [
11005
11032
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
11006
11033
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Container element"),
11007
11034
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "canvas_id", 0, "", "Canvas ID"),
@@ -11010,7 +11037,7 @@ var attrs_table$7 = [
11010
11037
  (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_INTEGER, "collapse_threshold", 0, 10, "Auto-collapse a node whose direct children exceed this number. 0 disables auto-collapse."),
11011
11038
  (0, _yuneta_gobj_js.SDATA_END)()
11012
11039
  ];
11013
- var PRIVATE_DATA$7 = {
11040
+ var PRIVATE_DATA$8 = {
11014
11041
  canvas_id: "",
11015
11042
  graph: null,
11016
11043
  node_counter: 0,
@@ -11025,7 +11052,7 @@ var PRIVATE_DATA$7 = {
11025
11052
  resize_observer: null,
11026
11053
  _resize_raf: 0
11027
11054
  };
11028
- var __gclass__$7 = null;
11055
+ var __gclass__$8 = null;
11029
11056
  var __layout_registered__ = false;
11030
11057
  /***************************************************************
11031
11058
  * Node colors by role
@@ -11204,7 +11231,7 @@ function get_layout_cfg(layout_key) {
11204
11231
  /***************************************************************
11205
11232
  * Framework Method: Create
11206
11233
  ***************************************************************/
11207
- function mt_create$7(gobj) {
11234
+ function mt_create$8(gobj) {
11208
11235
  let priv = gobj.priv;
11209
11236
  priv.canvas_id = "gobj-tree-canvas-" + (0, _yuneta_gobj_js.clean_name)((0, _yuneta_gobj_js.gobj_name)(gobj));
11210
11237
  (0, _yuneta_gobj_js.gobj_write_str_attr)(gobj, "canvas_id", priv.canvas_id);
@@ -11227,18 +11254,18 @@ function mt_create$7(gobj) {
11227
11254
  /***************************************************************
11228
11255
  * Framework Method: Start
11229
11256
  ***************************************************************/
11230
- function mt_start$7(gobj) {
11257
+ function mt_start$8(gobj) {
11231
11258
  build_graph$2(gobj);
11232
11259
  load_tree(gobj);
11233
11260
  }
11234
11261
  /***************************************************************
11235
11262
  * Framework Method: Stop
11236
11263
  ***************************************************************/
11237
- function mt_stop$7(gobj) {}
11264
+ function mt_stop$8(gobj) {}
11238
11265
  /***************************************************************
11239
11266
  * Framework Method: Destroy
11240
11267
  ***************************************************************/
11241
- function mt_destroy$7(gobj) {
11268
+ function mt_destroy$8(gobj) {
11242
11269
  let priv = gobj.priv;
11243
11270
  if (priv.theme_observer) {
11244
11271
  priv.theme_observer.disconnect();
@@ -12457,21 +12484,21 @@ function ac_hide$4(gobj, event, kw, src) {
12457
12484
  /***************************
12458
12485
  * FSM
12459
12486
  ***************************/
12460
- var gmt$7 = {
12461
- mt_create: mt_create$7,
12462
- mt_start: mt_start$7,
12463
- mt_stop: mt_stop$7,
12464
- mt_destroy: mt_destroy$7
12487
+ var gmt$8 = {
12488
+ mt_create: mt_create$8,
12489
+ mt_start: mt_start$8,
12490
+ mt_stop: mt_stop$8,
12491
+ mt_destroy: mt_destroy$8
12465
12492
  };
12466
12493
  /***************************************************************
12467
12494
  * Create the GClass
12468
12495
  ***************************************************************/
12469
- function create_gclass$7(gclass_name) {
12470
- if (__gclass__$7) {
12496
+ function create_gclass$8(gclass_name) {
12497
+ if (__gclass__$8) {
12471
12498
  (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
12472
12499
  return -1;
12473
12500
  }
12474
- __gclass__$7 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
12501
+ __gclass__$8 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [
12475
12502
  ["EV_REFRESH", 0],
12476
12503
  ["EV_THEME", 0],
12477
12504
  ["EV_CHANGE_LAYOUT", 0],
@@ -12557,14 +12584,247 @@ function create_gclass$7(gclass_name) {
12557
12584
  ac_hide$4,
12558
12585
  null
12559
12586
  ]
12560
- ]]], gmt$7, 0, attrs_table$7, PRIVATE_DATA$7, 0, 0, 0, 0);
12561
- if (!__gclass__$7) return -1;
12587
+ ]]], gmt$8, 0, attrs_table$8, PRIVATE_DATA$8, 0, 0, 0, 0);
12588
+ if (!__gclass__$8) return -1;
12562
12589
  return 0;
12563
12590
  }
12564
12591
  /***************************************************************
12565
12592
  * Register GClass
12566
12593
  ***************************************************************/
12567
12594
  function register_c_yui_gobj_tree_js() {
12595
+ return create_gclass$8(GCLASS_NAME$8);
12596
+ }
12597
+ //#endregion
12598
+ //#region src/c_yui_service_view.js
12599
+ /***********************************************************************
12600
+ * c_yui_service_view.js
12601
+ *
12602
+ * Mounting a view that TALKS TO A BACKEND.
12603
+ *
12604
+ * THE PROBLEM
12605
+ * -----------
12606
+ * A view that asks the backend for data does it with
12607
+ * gobj_command(remote, "...", kw, src = itself)
12608
+ * and C_IEVENT_CLI routes the answer back with
12609
+ * gobj_find_service(gobj_name(src))
12610
+ * which only finds REGISTERED SERVICES.
12611
+ *
12612
+ * Neither host creates one: C_YUI_SHELL mounts a route's view with
12613
+ * `gobj_create()` and C_YUI_NODE with `gobj_create_pure_child()`.
12614
+ * So a backend-talking view mounted directly never receives a single
12615
+ * answer — and not quietly: the ievent logs "service not found" once
12616
+ * per answer while the view sits empty forever.
12617
+ *
12618
+ * There is a second half. A route's `target.kw` is STATIC JSON, so
12619
+ * it cannot carry the live transport pointer the view needs. It has
12620
+ * to be resolved at mount time and injected.
12621
+ *
12622
+ * THE PIECE
12623
+ * ---------
12624
+ * Both halves had been written four separate times, in three repos,
12625
+ * each wrapper saying the same thing in its own header. They are
12626
+ * here now, in two shapes, because the four callers are not alike:
12627
+ *
12628
+ * yui_mount_service_view(host, spec) — the helper. For a wrapper
12629
+ * that has its OWN extras on top (bridging url segments to the
12630
+ * hosted view, rebinding it when a connection drops). Those
12631
+ * extras are app or route logic and do NOT belong here; the
12632
+ * wrapper keeps them and drops only the boilerplate.
12633
+ *
12634
+ * C_YUI_SERVICE_VIEW — the gclass, for a route with NO extras:
12635
+ * declare it in the route/node and name the view it hosts. It
12636
+ * is the helper plus a lifecycle, nothing more.
12637
+ *
12638
+ * CONTRACT of the hosted gclass:
12639
+ * - declares the attr the transport is injected under
12640
+ * (`gobj_remote_yuno` by default),
12641
+ * - builds its `$container` in mt_create (re-exposed as the
12642
+ * host's, which is what the shell/node mounts),
12643
+ * - flags EVF_PUBLIC_EVENT on what arrives from the backend
12644
+ * (EV_MT_COMMAND_ANSWER and anything the remote publishes): the
12645
+ * ievent drops events that are not public.
12646
+ *
12647
+ * NAMES: the service name must be UNIQUE per mount. A duplicate is
12648
+ * not fatal and that is the danger — gobj-js logs "service ALREADY
12649
+ * REGISTERED. Will be UPDATED" and REBINDS the name, so the answers
12650
+ * of one view would land in the other. Derive it from the route (or
12651
+ * from whatever else makes the mount unique: a connection id, a
12652
+ * workspace) and never from the gclass alone.
12653
+ *
12654
+ * Copyright (c) 2026, ArtGins.
12655
+ * All Rights Reserved.
12656
+ ***********************************************************************/
12657
+ /***************************************************************
12658
+ * Constants
12659
+ ***************************************************************/
12660
+ var GCLASS_NAME$7 = "C_YUI_SERVICE_VIEW";
12661
+ var DEFAULT_TRANSPORT_SERVICE = "__remote_service__";
12662
+ var DEFAULT_TRANSPORT_ATTR = "gobj_remote_yuno";
12663
+ /***************************************************************
12664
+ * Data
12665
+ ***************************************************************/
12666
+ var attrs_table$7 = [
12667
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
12668
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "view_gclass", 0, "", "GClass of the hosted view (must be registered)"),
12669
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "service_name", 0, "", "Service name of the hosted view — UNIQUE per mount"),
12670
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_JSON, "view_kw", 0, null, "kw passed to the hosted view"),
12671
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "transport_service", 0, DEFAULT_TRANSPORT_SERVICE, "Service name of the live transport"),
12672
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_STRING, "transport_attr", 0, DEFAULT_TRANSPORT_ATTR, "Attr of the hosted view the transport is injected under"),
12673
+ (0, _yuneta_gobj_js.SDATA)(_yuneta_gobj_js.data_type_t.DTP_POINTER, "$container", 0, null, "Root HTMLElement"),
12674
+ (0, _yuneta_gobj_js.SDATA_END)()
12675
+ ];
12676
+ var PRIVATE_DATA$7 = { view: null };
12677
+ var __gclass__$7 = null;
12678
+ /***************************
12679
+ * Public helper
12680
+ ***************************/
12681
+ /************************************************************
12682
+ * Create `spec.gclass` as a NAMED SERVICE under `host`, with the
12683
+ * live transport injected, and return it (null on failure, error
12684
+ * already logged). The caller owns what happens next — starting
12685
+ * it, exposing its DOM, bridging routes into it.
12686
+ *
12687
+ * spec = {
12688
+ * gclass, // string, required — must be registered
12689
+ * name, // string, required — service name, unique per mount
12690
+ * kw, // object, optional — the view's kw
12691
+ * transport, // gobj | service name | omitted:
12692
+ * // a gobj is used as-is (the caller already
12693
+ * // resolved it — e.g. per connection), a string
12694
+ * // is looked up with gobj_find_service(), and
12695
+ * // omitted means "__remote_service__".
12696
+ * // null DISABLES injection: for a hosted view
12697
+ * // that takes its transport some other way.
12698
+ * transport_attr // string, optional — default "gobj_remote_yuno"
12699
+ * }
12700
+ ************************************************************/
12701
+ function yui_mount_service_view(host, spec) {
12702
+ if (!host || !(0, _yuneta_gobj_js.is_gobj)(host) || !spec) {
12703
+ (0, _yuneta_gobj_js.log_error)(`${GCLASS_NAME$7}: yui_mount_service_view without host or spec`);
12704
+ return null;
12705
+ }
12706
+ const gclass = spec.gclass;
12707
+ const name = spec.name;
12708
+ if ((0, _yuneta_gobj_js.empty_string)(gclass) || (0, _yuneta_gobj_js.empty_string)(name)) {
12709
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: mounting a service view needs gclass and name`);
12710
+ return null;
12711
+ }
12712
+ if (!(0, _yuneta_gobj_js.gclass_find_by_name)(gclass)) {
12713
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: gclass '${gclass}' is not registered`);
12714
+ return null;
12715
+ }
12716
+ let kw = Object.assign({}, spec.kw || {});
12717
+ let transport = Object.prototype.hasOwnProperty.call(spec, "transport") ? spec.transport : DEFAULT_TRANSPORT_SERVICE;
12718
+ if (transport !== null) {
12719
+ if ((0, _yuneta_gobj_js.is_string)(transport)) {
12720
+ const service_name = transport;
12721
+ transport = (0, _yuneta_gobj_js.gobj_find_service)(service_name);
12722
+ if (!transport) {
12723
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: transport service '${service_name}' not found`);
12724
+ return null;
12725
+ }
12726
+ }
12727
+ if (!(0, _yuneta_gobj_js.is_gobj)(transport)) {
12728
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: transport is not a gobj`);
12729
+ return null;
12730
+ }
12731
+ kw[spec.transport_attr || DEFAULT_TRANSPORT_ATTR] = transport;
12732
+ }
12733
+ const view = (0, _yuneta_gobj_js.gobj_create_service)(name, gclass, kw, host);
12734
+ if (!view) {
12735
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: cannot create '${gclass}' as '${name}'`);
12736
+ return null;
12737
+ }
12738
+ return view;
12739
+ }
12740
+ /************************************************************
12741
+ * The hosted view's $container, re-exposed as the host's — the
12742
+ * shell/node mounts the HOST, so without this nothing is drawn.
12743
+ * Never returns without setting one: an empty div beats a blank
12744
+ * screen with the reason only in the console.
12745
+ ************************************************************/
12746
+ function expose_view_container(host, view) {
12747
+ let $c = view ? (0, _yuneta_gobj_js.gobj_read_attr)(view, "$container") : null;
12748
+ if (!$c) {
12749
+ (0, _yuneta_gobj_js.log_error)(`${(0, _yuneta_gobj_js.gobj_short_name)(host)}: hosted view does not expose $container — check its mt_create`);
12750
+ $c = (0, _yuneta_gobj_js.createElement2)([
12751
+ "div",
12752
+ {},
12753
+ ""
12754
+ ]);
12755
+ }
12756
+ (0, _yuneta_gobj_js.gobj_write_attr)(host, "$container", $c);
12757
+ return $c;
12758
+ }
12759
+ /***************************
12760
+ * Framework Methods
12761
+ ***************************/
12762
+ /***************************************************************
12763
+ * Framework Method: Create
12764
+ ***************************************************************/
12765
+ function mt_create$7(gobj) {
12766
+ let priv = gobj.priv;
12767
+ let subscriber = (0, _yuneta_gobj_js.gobj_read_pointer_attr)(gobj, "subscriber");
12768
+ if (!subscriber) subscriber = (0, _yuneta_gobj_js.gobj_parent)(gobj);
12769
+ (0, _yuneta_gobj_js.gobj_subscribe_event)(gobj, null, {}, subscriber);
12770
+ priv.view = yui_mount_service_view(gobj, {
12771
+ gclass: (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "view_gclass"),
12772
+ name: (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "service_name"),
12773
+ kw: (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "view_kw") || {},
12774
+ transport: (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "transport_service"),
12775
+ transport_attr: (0, _yuneta_gobj_js.gobj_read_str_attr)(gobj, "transport_attr")
12776
+ });
12777
+ expose_view_container(gobj, priv.view);
12778
+ }
12779
+ /***************************************************************
12780
+ * Framework Method: Start
12781
+ *
12782
+ * The view starts HERE and not in mt_create, so its first
12783
+ * request goes out when the host shows it.
12784
+ ***************************************************************/
12785
+ function mt_start$7(gobj) {
12786
+ const view = gobj.priv.view;
12787
+ if (view && !(0, _yuneta_gobj_js.gobj_is_running)(view)) (0, _yuneta_gobj_js.gobj_start)(view);
12788
+ }
12789
+ /***************************************************************
12790
+ * Framework Method: Stop
12791
+ ***************************************************************/
12792
+ function mt_stop$7(gobj) {
12793
+ const view = gobj.priv.view;
12794
+ if (view && (0, _yuneta_gobj_js.gobj_is_running)(view)) (0, _yuneta_gobj_js.gobj_stop)(view);
12795
+ }
12796
+ /***************************************************************
12797
+ * Framework Method: Destroy
12798
+ *
12799
+ * The view is a SERVICE created with this gobj as its parent, so
12800
+ * gobj_destroy cascades onto it — and deregisters its name. Do
12801
+ * NOT destroy it again here.
12802
+ ***************************************************************/
12803
+ function mt_destroy$7(gobj) {
12804
+ let priv = gobj.priv;
12805
+ priv.view = null;
12806
+ const $c = (0, _yuneta_gobj_js.gobj_read_attr)(gobj, "$container");
12807
+ if ($c && $c.parentNode) $c.parentNode.removeChild($c);
12808
+ (0, _yuneta_gobj_js.gobj_write_attr)(gobj, "$container", null);
12809
+ }
12810
+ /***************************
12811
+ * FSM
12812
+ ***************************/
12813
+ var gmt$7 = {
12814
+ mt_create: mt_create$7,
12815
+ mt_start: mt_start$7,
12816
+ mt_stop: mt_stop$7,
12817
+ mt_destroy: mt_destroy$7
12818
+ };
12819
+ function create_gclass$7(gclass_name) {
12820
+ if (__gclass__$7) {
12821
+ (0, _yuneta_gobj_js.log_error)(`GClass ALREADY created: ${gclass_name}`);
12822
+ return -1;
12823
+ }
12824
+ __gclass__$7 = (0, _yuneta_gobj_js.gclass_create)(gclass_name, [], [["ST_IDLE", []]], gmt$7, 0, attrs_table$7, PRIVATE_DATA$7, 0, 0, 0, 0);
12825
+ return __gclass__$7 ? 0 : -1;
12826
+ }
12827
+ function register_c_yui_service_view() {
12568
12828
  return create_gclass$7(GCLASS_NAME$7);
12569
12829
  }
12570
12830
  //#endregion
@@ -53297,6 +53557,7 @@ exports.disableElements = disableElements;
53297
53557
  exports.enableElements = enableElements;
53298
53558
  exports.epoch_to_local_input = epoch_to_local_input;
53299
53559
  exports.epoch_to_ms = epoch_to_ms;
53560
+ exports.expose_view_container = expose_view_container;
53300
53561
  exports.fmt_epoch = fmt_epoch;
53301
53562
  exports.getStrokeColor = getStrokeColor;
53302
53563
  exports.infer_period = infer_period;
@@ -53323,6 +53584,7 @@ exports.register_c_yui_map = register_c_yui_map;
53323
53584
  exports.register_c_yui_nav = register_c_yui_nav;
53324
53585
  exports.register_c_yui_pager = register_c_yui_pager;
53325
53586
  exports.register_c_yui_period = register_c_yui_period;
53587
+ exports.register_c_yui_service_view = register_c_yui_service_view;
53326
53588
  exports.register_c_yui_shell = register_c_yui_shell;
53327
53589
  exports.register_c_yui_treedb_graph = register_c_yui_treedb_graph;
53328
53590
  exports.register_c_yui_treedb_schema = register_c_yui_treedb_schema;
@@ -53343,6 +53605,7 @@ exports.setup_dev = setup_dev;
53343
53605
  exports.setup_frontend_view = setup_frontend_view;
53344
53606
  exports.toggleClasses = toggleClasses;
53345
53607
  exports.yui_is_dark = yui_is_dark;
53608
+ exports.yui_mount_service_view = yui_mount_service_view;
53346
53609
  exports.yui_shell_close_drawer = yui_shell_close_drawer;
53347
53610
  exports.yui_shell_close_dropdown = yui_shell_close_dropdown;
53348
53611
  exports.yui_shell_confirm_ok = yui_shell_confirm_ok;