@yuneta/gobj-js 7.26.2 → 7.26.3

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.
@@ -664,7 +664,7 @@ var gobjJs = function(e) {
664
664
  t.parent && hn(`_add_child() ALREADY HAS PARENT: ${t.gobj_name}`), e.dl_children.push(t), t.parent = e;
665
665
  }
666
666
  function $e(e, t) {
667
- let n = Hr(e.dl_children, t);
667
+ let n = el(e.dl_children, t);
668
668
  n >= 0 && (Hn(e.dl_children, n), t.parent = null);
669
669
  }
670
670
  function De(e, t) {
@@ -1096,7 +1096,7 @@ var gobjJs = function(e) {
1096
1096
  if (1 === C) L(n("🔄 %s %s%s %s from %s%s", t || "", e.running ? "" : "!!", et(e), o.state_name, l && !l.running ? "!!" : "", et(l)));
1097
1097
  else {
1098
1098
  let r = "";
1099
- i.action && (r = Qr(i.action)), L(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, "", t || "", "", r, l && !l.running ? "!!" : "", Ze(l), Xe(l)));
1099
+ i.action && (r = nl(i.action)), L(n("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", e.running ? "" : "!!", Ze(e), Xe(e), o.state_name, "", t || "", "", r, l && !l.running ? "!!" : "", Ze(l), Xe(l)));
1100
1100
  }
1101
1101
  r && q(e) && zn(r) && Un(r);
1102
1102
  }
@@ -1402,23 +1402,23 @@ var gobjJs = function(e) {
1402
1402
  return n;
1403
1403
  }
1404
1404
  function hn(e, ...t) {
1405
- let n = mn(e, ...t), r = qr();
1405
+ let n = mn(e, ...t), r = Zr();
1406
1406
  tn && (tn === en.error ? cn("error", n) && tn("%c" + r + " ERROR: " + String(n), "color:red") : (cn("error", n) && en.error("%c" + r + " ERROR: " + String(n), "color:red"), tn(`${r} ERROR: ${String(n)}`))), gn("error", n, r);
1407
1407
  }
1408
1408
  function yn(e, ...t) {
1409
- let n = mn(e, ...t), r = qr();
1409
+ let n = mn(e, ...t), r = Zr();
1410
1410
  nn && (nn === en.warn ? cn("warning", n) && nn("%c" + r + " WARNING: " + String(n), "color:yellow") : (cn("warning", n) && en.warn("%c" + r + " WARNING: " + String(n), "color:yellow"), nn(`${r} WARNING: ${String(n)}`))), gn("warning", n, r);
1411
1411
  }
1412
1412
  function En(e, ...t) {
1413
- let n = mn(e, ...t), r = qr();
1413
+ let n = mn(e, ...t), r = Zr();
1414
1414
  ln && cn("debug", n) && ln("%c" + r + " DEBUG: " + String(n), "color:silver"), gn("debug", n, r);
1415
1415
  }
1416
1416
  function Tn(e, ...t) {
1417
- let n = mn(e, ...t), r = qr();
1417
+ let n = mn(e, ...t), r = Zr();
1418
1418
  ln && cn("msg", n) && ln("%c" + r + " MSG: " + String(n), "color:cyan"), gn("msg", n, r);
1419
1419
  }
1420
1420
  function vn(e, t) {
1421
- cn("json", t) && (t && en.warn("=====> " + t), en.dir(e)), gn("json", e, qr());
1421
+ cn("json", t) && (t && en.warn("=====> " + t), en.dir(e)), gn("json", e, Zr());
1422
1422
  }
1423
1423
  var jn = [
1424
1424
  "passw",
@@ -2107,33 +2107,49 @@ var gobjJs = function(e) {
2107
2107
  function Br(e) {
2108
2108
  return null == e ? "" : String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
2109
2109
  }
2110
- function Jr(e) {
2110
+ var Jr = class {
2111
+ constructor(e) {
2112
+ this.html = e, Object.freeze(this);
2113
+ }
2114
+ toString() {
2115
+ return this.html;
2116
+ }
2117
+ };
2118
+ function qr(e) {
2119
+ return e instanceof Jr;
2120
+ }
2121
+ function Hr(e) {
2122
+ const t = document.createElement("template");
2123
+ return t.innerHTML = e.html.trim(), t.content;
2124
+ }
2125
+ var zr = !1, Qr = /* @__PURE__ */ new Set();
2126
+ function Xr(e) {
2111
2127
  const t = document.createElement("template");
2112
2128
  return t.innerHTML = e.trim(), t.content.firstChild;
2113
2129
  }
2114
- function qr(e) {
2130
+ function Zr(e) {
2115
2131
  const t = (e, t) => String(e).padStart(t, "0"), n = `${(e = e || /* @__PURE__ */ new Date()).getFullYear()}-${t(e.getMonth() + 1, 2)}-${t(e.getDate(), 2)}T${t(e.getHours(), 2)}:${t(e.getMinutes(), 2)}:${t(e.getSeconds(), 2)}`, r = t(e.getMilliseconds(), 3), l = e.getTimezoneOffset();
2116
2132
  return `${n}.${r}${l > 0 ? "-" : "+"}${t(Math.floor(Math.abs(l) / 60), 2)}${t(Math.abs(l) % 60, 2)}`;
2117
2133
  }
2118
- function Hr(e, t) {
2134
+ function el(e, t) {
2119
2135
  if (!e) throw "ERROR: index_in_list() list empty";
2120
2136
  for (let n = 0; n < e.length; n++) if (t === e[n]) return n;
2121
2137
  return -1;
2122
2138
  }
2123
- function zr() {
2139
+ function tl() {
2124
2140
  let e = "";
2125
2141
  return "undefined" != typeof window && window.localStorage ? (e = window.localStorage.getItem("host_uuid"), !e && window.crypto?.randomUUID && (e = window.crypto.randomUUID(), window.localStorage.setItem("host_uuid", e))) : e = "undefined" != typeof globalThis && globalThis.crypto?.randomUUID ? globalThis.crypto.randomUUID() : "00000000-0000-0000-0000-000000000000", e;
2126
2142
  }
2127
- function Qr(e) {
2143
+ function nl(e) {
2128
2144
  let t = null;
2129
2145
  return "function" != typeof e && "object" != typeof e || (t = ("" + e).match(/function\s*([\w\$]*)\s*\(/)), null !== t ? t[1] + "()" : "";
2130
2146
  }
2131
- var Xr = 256, Zr = 1e5;
2132
- function el(e) {
2147
+ var rl = 256, ll = 1e5;
2148
+ function ol(e) {
2133
2149
  const t = String(e).replace(/`/g, "``");
2134
2150
  return "[" === t[0] ? "[" + t : t;
2135
2151
  }
2136
- function tl(e) {
2152
+ function sl(e) {
2137
2153
  if ("string" != typeof e) return null;
2138
2154
  let t = [], n = "";
2139
2155
  for (let r = 0; r < e.length; r++) if ("`" !== e[r]) n += e[r];
@@ -2154,13 +2170,13 @@ var gobjJs = function(e) {
2154
2170
  return null !== t ? t : "[" === e[0] && "[" === e[1] ? e.slice(1) : e;
2155
2171
  });
2156
2172
  }
2157
- function nl(e, t) {
2173
+ function il(e, t) {
2158
2174
  return e === t || null !== e && null !== t && "object" == typeof e && "object" == typeof t && JSON.stringify(e) === JSON.stringify(t);
2159
2175
  }
2160
- function rl(e) {
2176
+ function _l(e) {
2161
2177
  return "persistent-attrs-" + et(e);
2162
2178
  }
2163
- function ll(e, t) {
2179
+ function al(e, t) {
2164
2180
  if (tr(t)) {
2165
2181
  if (-1 === t.indexOf("^")) {
2166
2182
  let n, r, l = e.fkey;
@@ -2190,7 +2206,7 @@ var gobjJs = function(e) {
2190
2206
  hook_name: t.hook_name
2191
2207
  } : (hn("bad fkey 3"), hn(e), hn(t), null);
2192
2208
  }
2193
- var ol = [
2209
+ var ul = [
2194
2210
  "string",
2195
2211
  "integer",
2196
2212
  "object",
@@ -2200,7 +2216,7 @@ var gobjJs = function(e) {
2200
2216
  "real",
2201
2217
  "boolean",
2202
2218
  "blob"
2203
- ], sl = [
2219
+ ], cl = [
2204
2220
  "persistent",
2205
2221
  "required",
2206
2222
  "notnull",
@@ -2212,7 +2228,7 @@ var gobjJs = function(e) {
2212
2228
  "stats",
2213
2229
  "rstats",
2214
2230
  "pstats"
2215
- ], il = [
2231
+ ], fl = [
2216
2232
  "hook",
2217
2233
  "fkey",
2218
2234
  "enum",
@@ -2241,7 +2257,7 @@ var gobjJs = function(e) {
2241
2257
  "coordinates",
2242
2258
  "gbuffer"
2243
2259
  ];
2244
- function _l(e) {
2260
+ function gl(e) {
2245
2261
  let t = {
2246
2262
  name: e.id,
2247
2263
  header: e.header,
@@ -2260,7 +2276,7 @@ var gobjJs = function(e) {
2260
2276
  if (!e.flag) return t;
2261
2277
  for (let n = 0; n < e.flag.length; n++) {
2262
2278
  let r = e.flag[n];
2263
- if (Pr(il, r)) {
2279
+ if (Pr(fl, r)) {
2264
2280
  switch (r) {
2265
2281
  case "enum":
2266
2282
  t.enum_list = e.enum;
@@ -2274,7 +2290,7 @@ var gobjJs = function(e) {
2274
2290
  case "file": t.is_file = !0;
2275
2291
  }
2276
2292
  t.type = r;
2277
- } else if (Pr(sl, r)) switch (r) {
2293
+ } else if (Pr(cl, r)) switch (r) {
2278
2294
  case "writable":
2279
2295
  t.is_writable = !0;
2280
2296
  break;
@@ -2287,23 +2303,23 @@ var gobjJs = function(e) {
2287
2303
  }
2288
2304
  return t.is_file && (t.type = "file"), t;
2289
2305
  }
2290
- var al = [
2306
+ var dl = [
2291
2307
  j(y.DTP_POINTER, "subscriber", 0, null, "Subscriber of output events"),
2292
2308
  j(y.DTP_BOOLEAN, "periodic", 0, 0, "True for periodic timeouts"),
2293
2309
  j(y.DTP_INTEGER, "msec", 0, 0, "Timeout in milliseconds"),
2294
2310
  v()
2295
- ], ul = {
2311
+ ], bl = {
2296
2312
  periodic: !1,
2297
2313
  msec: 0,
2298
2314
  timer_id: -1
2299
- }, cl = null;
2300
- function fl(e, t, n, r) {
2315
+ }, pl = null;
2316
+ function ml(e, t, n, r) {
2301
2317
  let l = e.priv, o = l.periodic ? "EV_TIMEOUT_PERIODIC" : "EV_TIMEOUT";
2302
2318
  return l.periodic && l.msec > 0 ? l.timer_id = setTimeout(function() {
2303
2319
  Vt(e, "EV_TIMEOUT", {}, e);
2304
2320
  }, l.msec) : l.timer_id = -1, lt(e) ? Vt(nt(e), o, {}, e) : Xt(e, o, {}), l.periodic || -1 !== l.timer_id || Ke(e) && Ve(e), 0;
2305
2321
  }
2306
- var gl = {
2322
+ var hl = {
2307
2323
  mt_create: function(e) {
2308
2324
  let t = e.priv;
2309
2325
  const n = Ot(e, "subscriber");
@@ -2328,16 +2344,16 @@ var gobjJs = function(e) {
2328
2344
  },
2329
2345
  mt_destroy: function(e) {}
2330
2346
  };
2331
- function dl(e, t) {
2347
+ function yl(e, t) {
2332
2348
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !1), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2333
2349
  }
2334
- function bl(e, t) {
2350
+ function El(e, t) {
2335
2351
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : (Nt(e, "periodic", !0), void Rt(e, "msec", t)) : (hn("not GObj TYPE"), -1);
2336
2352
  }
2337
- function pl(e) {
2353
+ function Tl(e) {
2338
2354
  return e instanceof S ? "C_TIMER" !== Ze(e) ? (hn("not C_TIMER GObj"), -1) : void Rt(e, "msec", -1) : (hn("not GObj TYPE"), -1);
2339
2355
  }
2340
- var ml = [
2356
+ var vl = [
2341
2357
  j(y.DTP_BOOLEAN, "changesLost", 0, !1, "Set true to warn about leaving page"),
2342
2358
  j(y.DTP_BOOLEAN, "browser_beforeunload", 0, !1, "Set true to refreshing browser"),
2343
2359
  j(y.DTP_STRING, "__username__", 0, "", "Username"),
@@ -2357,26 +2373,26 @@ var gobjJs = function(e) {
2357
2373
  j(y.DTP_BOOLEAN, "developer", 0, !1, "Developer mode enabled"),
2358
2374
  j(y.DTP_INTEGER, "periodic_timeout", 0, "1000", "Timeout periodic, in miliseconds."),
2359
2375
  v()
2360
- ], hl = { gobj_timer: null }, yl = null;
2361
- function El(e, t, n, r) {
2376
+ ], jl = { gobj_timer: null }, Ol = null;
2377
+ function Sl(e, t, n, r) {
2362
2378
  let l = yt(e, t);
2363
2379
  return Zn(l) || (l = {}), l[n] = r, St(e, t, l), De(e, t);
2364
2380
  }
2365
- function Tl(e) {
2381
+ function wl(e) {
2366
2382
  if (!0 === e || !1 === e) return e;
2367
2383
  let t = String(null == e ? "" : e).toLowerCase();
2368
2384
  return "true" === t || "set" === t || "false" !== t && "reset" !== t && ("" === t || isNaN(Number(t)) ? null : !!Number(t));
2369
2385
  }
2370
- function vl() {
2386
+ function Nl() {
2371
2387
  return `${ze()}^${He()}`;
2372
2388
  }
2373
- function jl(e, t, n, r) {
2389
+ function Rl(e, t, n, r) {
2374
2390
  return Xt(e, t, n), 0;
2375
2391
  }
2376
- var Ol = {
2392
+ var $l = {
2377
2393
  mt_create: function(e) {
2378
2394
  let t = e.priv;
2379
- $t(e, "start_date", qr()), $t(e, "node_uuid", zr()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2395
+ $t(e, "start_date", Zr()), $t(e, "node_uuid", tl()), e.priv.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.periodic_timeout = yt(e, "periodic_timeout"), function(e) {
2380
2396
  let t = yt(e, "trace_levels");
2381
2397
  if (!Zn(t)) return 0;
2382
2398
  let n = t.__global_trace__;
@@ -2410,10 +2426,10 @@ var gobjJs = function(e) {
2410
2426
  },
2411
2427
  mt_writing: function(e, t) {},
2412
2428
  mt_start: function(e) {
2413
- return bl(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2429
+ return El(e.priv.gobj_timer, e.priv.periodic_timeout), 0;
2414
2430
  },
2415
2431
  mt_stop: function(e) {
2416
- return pl(e.priv.gobj_timer), Me(e), 0;
2432
+ return Tl(e.priv.gobj_timer), Me(e), 0;
2417
2433
  },
2418
2434
  mt_destroy: function(e) {},
2419
2435
  mt_play: function(e) {
@@ -2430,24 +2446,24 @@ var gobjJs = function(e) {
2430
2446
  case "get-global-no-trace": return l(0, 0, null, null, ne());
2431
2447
  case "set-global-trace":
2432
2448
  case "set-global-no-trace": {
2433
- let r = "set-global-no-trace" === t, o = n.level, s = Tl(n.set);
2434
- return o ? null === s ? l(0, -1, `${vl()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${vl()}: global trace level not found: ${o}`, null, null) : r ? (El(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (El(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${vl()}: what level?`, null, null);
2449
+ let r = "set-global-no-trace" === t, o = n.level, s = wl(n.set);
2450
+ return o ? null === s ? l(0, -1, `${Nl()}: bitmask set or re-set?`, null, null) : (r ? X(o, s) : Q(o, s)) < 0 ? l(0, -1, `${Nl()}: global trace level not found: ${o}`, null, null) : r ? (Sl(e, "no_trace_levels", "__global_no_trace__", ne()), l(0, 0, null, null, ne())) : (Sl(e, "trace_levels", "__global_trace__", te()), l(0, 0, null, null, te())) : l(0, -1, `${Nl()}: what level?`, null, null);
2435
2451
  }
2436
2452
  case "get-gclass-trace":
2437
2453
  case "get-gclass-no-trace":
2438
2454
  case "set-gclass-trace":
2439
2455
  case "set-gclass-no-trace": {
2440
2456
  let r = t.indexOf("no-trace") >= 0, o = n.gclass_name || n.gclass || "", s = Oe(o);
2441
- if (!s) return l(0, -1, `${vl()}: what gclass is '${o}'?`, null, null);
2457
+ if (!s) return l(0, -1, `${Nl()}: what gclass is '${o}'?`, null, null);
2442
2458
  if (0 === t.indexOf("get-")) return l(0, 0, null, null, r ? oe(s) : re(s));
2443
- let i = n.level, _ = Tl(n.set);
2444
- return i ? null === _ ? l(0, -1, `${vl()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${vl()}: trace level of ${o} not found: ${i}`, null, null) : r ? (El(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (El(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${vl()}: what level?`, null, null);
2459
+ let i = n.level, _ = wl(n.set);
2460
+ return i ? null === _ ? l(0, -1, `${Nl()}: bitmask set or re-set?`, null, null) : (r ? ie(s, i, _) : se(s, i, _)) < 0 ? l(0, -1, `${Nl()}: trace level of ${o} not found: ${i}`, null, null) : r ? (Sl(e, "no_trace_levels", o, oe(s)), l(0, 0, null, null, oe(s))) : (Sl(e, "trace_levels", o, le(s)), l(0, 0, null, null, re(s))) : l(0, -1, `${Nl()}: what level?`, null, null);
2445
2461
  }
2446
- default: return l(0, -1, `${vl()}: command not available: ${t}`, null, null);
2462
+ default: return l(0, -1, `${Nl()}: command not available: ${t}`, null, null);
2447
2463
  }
2448
2464
  }
2449
2465
  };
2450
- var Sl = "ievent_gate_stack", wl = [
2466
+ var Dl = "ievent_gate_stack", kl = [
2451
2467
  j(y.DTP_STRING, "wanted_yuno_role", E.SDF_RD, "", "wanted yuno role"),
2452
2468
  j(y.DTP_STRING, "wanted_yuno_name", E.SDF_RD, "", "wanted yuno name"),
2453
2469
  j(y.DTP_STRING, "wanted_yuno_service", E.SDF_RD, "", "wanted yuno service"),
@@ -2464,15 +2480,15 @@ var gobjJs = function(e) {
2464
2480
  j(y.DTP_INTEGER, "timeout_idack", E.SDF_RD, "5000", "timeout waiting idAck"),
2465
2481
  j(y.DTP_POINTER, "subscriber", 0, 0, "subscriber of output-events. If null then subscriber is the parent"),
2466
2482
  v()
2467
- ], Nl = [
2483
+ ], Al = [
2468
2484
  ["ievents", "Trace inter-events with metadata of kw"],
2469
2485
  ["ievents2", "Trace inter-events with full kw"],
2470
2486
  ["identity-card", "Trace identity_card messages"]
2471
2487
  ];
2472
- function Rl(e) {
2488
+ function Il(e) {
2473
2489
  return !!(3 & x(e));
2474
2490
  }
2475
- var $l = {
2491
+ var Cl = {
2476
2492
  url: null,
2477
2493
  remote_yuno_name: null,
2478
2494
  remote_yuno_role: null,
@@ -2482,8 +2498,8 @@ var gobjJs = function(e) {
2482
2498
  websocket: null,
2483
2499
  inside_on_open: !1,
2484
2500
  retry_ms: 0
2485
- }, Dl = null;
2486
- function kl(e) {
2501
+ }, Ll = null;
2502
+ function Pl(e) {
2487
2503
  e.priv.websocket && hn("Websocket ALREADY setup");
2488
2504
  const t = jt(e, "url");
2489
2505
  En(`====> Starting WebSocket to '${t}' (${et(e)})`);
@@ -2520,7 +2536,7 @@ var gobjJs = function(e) {
2520
2536
  }, e));
2521
2537
  }, r) : (hn(`${et(e)}: Failed to initialize WebSocket.`), null);
2522
2538
  }
2523
- function Al(e, t = 1e3, n = "") {
2539
+ function Ul(e, t = 1e3, n = "") {
2524
2540
  let r = e.priv, l = r.websocket;
2525
2541
  if (r.websocket = null, l && l.readyState !== WebSocket.CLOSED && l.readyState !== WebSocket.CLOSING) {
2526
2542
  En(`Closing WebSocket (Code: ${t}, Reason: "${n}")`);
@@ -2531,25 +2547,25 @@ var gobjJs = function(e) {
2531
2547
  }
2532
2548
  } else yn("WebSocket is already closed or in the process of closing.");
2533
2549
  }
2534
- function Il(e, t, n) {
2535
- let r = qr();
2550
+ function Fl(e, t, n) {
2551
+ let r = Zr();
2536
2552
  try {
2537
2553
  En("\n" + r + " " + t + "\n"), Un(n);
2538
2554
  } catch (e) {
2539
2555
  En("ERROR in trace_inter_event: " + e);
2540
2556
  }
2541
2557
  }
2542
- var Cl = class {
2558
+ var Vl = class {
2543
2559
  constructor(e, t) {
2544
2560
  this.event = e, this.kw = t || {};
2545
2561
  }
2546
2562
  };
2547
- function Ll(e, t, n, r) {
2563
+ function Gl(e, t, n, r) {
2548
2564
  return function(e, t) {
2549
2565
  let n = e.priv, r = JSON.stringify(t);
2550
- if (Rl(e)) {
2566
+ if (Il(e)) {
2551
2567
  let n = jt(e, "url"), l = Xe(qe()) + " ==> " + n, o = yt(qe(), "trace_ievent_callback");
2552
- o ? o(l, t, 1, r.length) : Il(0, l, t);
2568
+ o ? o(l, t, 1, r.length) : Fl(0, l, t);
2553
2569
  }
2554
2570
  if (!n.websocket || n.websocket.readyState !== WebSocket.OPEN) return yn(`${et(e)}: send_iev(): websocket not open, message lost`), -1;
2555
2571
  try {
@@ -2559,10 +2575,10 @@ var gobjJs = function(e) {
2559
2575
  }
2560
2576
  return 0;
2561
2577
  }(e, function(e, t) {
2562
- return ir(e) ? (hn("iev_create() event NULL"), null) : new Cl(e, t);
2578
+ return ir(e) ? (hn("iev_create() event NULL"), null) : new Vl(e, t);
2563
2579
  }(t, n));
2564
2580
  }
2565
- function Pl(e, t, n) {
2581
+ function Ml(e, t, n) {
2566
2582
  return ir(n) && (n = jt(e, "wanted_yuno_service")), {
2567
2583
  dst_yuno: jt(e, "wanted_yuno_name"),
2568
2584
  dst_role: jt(e, "wanted_yuno_role"),
@@ -2570,10 +2586,10 @@ var gobjJs = function(e) {
2570
2586
  src_yuno: He(),
2571
2587
  src_role: ze(),
2572
2588
  src_service: t,
2573
- host: zr()
2589
+ host: tl()
2574
2590
  };
2575
2591
  }
2576
- function Ul(e) {
2592
+ function Wl(e) {
2577
2593
  let t = e.priv, n = Je(qe()), r = jt(qe(), "yuno_version"), l = jt(qe(), "yuno_release"), o = jt(qe(), "yuno_tag"), i = yt(e, "required_services");
2578
2594
  i && i.length || (i = yt(qe(), "required_services"));
2579
2595
  let _ = {
@@ -2591,27 +2607,27 @@ var gobjJs = function(e) {
2591
2607
  username: jt(qe(), "__username__"),
2592
2608
  launch_id: 0,
2593
2609
  yuno_startdate: jt(qe(), "start_date"),
2594
- id: zr(),
2610
+ id: tl(),
2595
2611
  user_agent: "undefined" != typeof window ? window.navigator.userAgent : "",
2596
2612
  language: "undefined" != typeof window ? window.navigator.language : "",
2597
2613
  required_services: i
2598
2614
  };
2599
- return Vr(e, _, Sl, Pl(e, Xe(nt(e)), null)), Mr(e, _, "__identity__"), dl(t.gobj_timer, vt(e, "timeout_idack")), Ll(e, "EV_IDENTITY_CARD", _);
2615
+ return Vr(e, _, Dl, Ml(e, Xe(nt(e)), null)), Mr(e, _, "__identity__"), yl(t.gobj_timer, vt(e, "timeout_idack")), Gl(e, "EV_IDENTITY_CARD", _);
2600
2616
  }
2601
- function Fl(e, t) {
2617
+ function xl(e, t) {
2602
2618
  if (ir(t.event)) return -1;
2603
2619
  let n = {}, r = t.__global__, l = t.__config__, o = t.__filter__, s = t.__service__, i = t.subscriber;
2604
2620
  l && (n.__config__ = l), r && (n.__global__ = r), o && (n.__filter__ = o);
2605
- return Vr(e, n, Sl, Pl(e, Xe(i), s)), Mr(e, n, "__subscribing__"), Ll(e, t.event, n);
2621
+ return Vr(e, n, Dl, Ml(e, Xe(i), s)), Mr(e, n, "__subscribing__"), Gl(e, t.event, n);
2606
2622
  }
2607
- function Vl(e, t, n, r) {
2623
+ function Kl(e, t, n, r) {
2608
2624
  let l = e.priv;
2609
- return Ke(e) && (l.websocket = kl(e)), 0;
2625
+ return Ke(e) && (l.websocket = Pl(e)), 0;
2610
2626
  }
2611
- function Gl(e, t, n, r) {
2612
- return En("Websocket opened: " + e.priv.url), Ul(e), 0;
2627
+ function Yl(e, t, n, r) {
2628
+ return En("Websocket opened: " + e.priv.url), Wl(e), 0;
2613
2629
  }
2614
- function Ml(e, t, n, r) {
2630
+ function Bl(e, t, n, r) {
2615
2631
  let l = e.priv, o = n.url;
2616
2632
  return void 0 !== n.ws_seq && n.ws_seq !== l.ws_seq || (bn(), yn(`${et(e)}: WebSocket closed ${o} (Code: ${n.code}, Reason: "${n.reason}", Clean: ${n.was_clean})`), l.websocket && (l.websocket.onopen = null, l.websocket.onmessage = null, l.websocket.onerror = null, l.websocket.onclose = null, l.websocket = null), l.inform_on_close ? (l.inform_on_close = !1, Xt(e, "EV_ON_CLOSE", {
2617
2633
  url: o,
@@ -2626,7 +2642,7 @@ var gobjJs = function(e) {
2626
2642
  code: n.code,
2627
2643
  reason: n.reason,
2628
2644
  was_clean: n.was_clean
2629
- })), Ke(e) && dl(l.gobj_timer, function(e) {
2645
+ })), Ke(e) && yl(l.gobj_timer, function(e) {
2630
2646
  let t = e.priv, n = vt(e, "timeout_retry"), r = vt(e, "timeout_retry_max");
2631
2647
  r < n && (r = n);
2632
2648
  t.retry_ms = t.retry_ms ? Math.min(2 * t.retry_ms, r) : n;
@@ -2634,17 +2650,17 @@ var gobjJs = function(e) {
2634
2650
  return Math.max(1, Math.round(o));
2635
2651
  }(e))), 0;
2636
2652
  }
2637
- function Wl(e, t, n, r) {
2638
- return Ul(e), 0;
2653
+ function Jl(e, t, n, r) {
2654
+ return Wl(e), 0;
2639
2655
  }
2640
- function xl(e, t, n, r) {
2656
+ function ql(e, t, n, r) {
2641
2657
  let l = e.priv;
2642
- pl(l.gobj_timer);
2643
- let o = Gr(e, n, Sl, !0), s = Er(e, o, "src_yuno", ""), i = Er(e, o, "src_role", ""), _ = Er(e, o, "src_service", "");
2658
+ Tl(l.gobj_timer);
2659
+ let o = Gr(e, n, Dl, !0), s = Er(e, o, "src_yuno", ""), i = Er(e, o, "src_role", ""), _ = Er(e, o, "src_service", "");
2644
2660
  $t(e, "remote_yuno_name", s), $t(e, "remote_yuno_role", i), $t(e, "remote_yuno_service", _);
2645
2661
  let a = yr(e, n, "result", -1, 0), u = Er(e, n, "comment", "", 0), c = Er(e, n, "username", "", 0), f = jr(e, n, "services_roles", {});
2646
2662
  if (a < 0) {
2647
- Al(e);
2663
+ Ul(e);
2648
2664
  let t = {
2649
2665
  url: jt(e, "url"),
2650
2666
  result: a,
@@ -2669,12 +2685,12 @@ var gobjJs = function(e) {
2669
2685
  }
2670
2686
  l.inside_on_open = !1, function(e) {
2671
2687
  let t = zt(e, null, null, null);
2672
- for (let n = 0; n < t.length; n++) Fl(e, t[n]);
2688
+ for (let n = 0; n < t.length; n++) xl(e, t[n]);
2673
2689
  }(e);
2674
2690
  }
2675
2691
  return 0;
2676
2692
  }
2677
- function Kl(e, t, n, r) {
2693
+ function Hl(e, t, n, r) {
2678
2694
  let l = e.priv.url, o = function(e, t) {
2679
2695
  let n;
2680
2696
  try {
@@ -2693,19 +2709,19 @@ var gobjJs = function(e) {
2693
2709
  } : (yn(`${et(e)}: parsing inter_event: kw not a json object`), null) : (yn(`${et(e)}: parsing inter_kw: no kw`), null);
2694
2710
  }(e, n.data);
2695
2711
  if (!o) return yn(`${et(e)}: frame dropped from ${l}: ${String(n.data).substring(0, 256)}`), -1;
2696
- if (Rl(e)) {
2712
+ if (Il(e)) {
2697
2713
  let e = Xe(qe()) + " <== " + l, t = n.data.length, r = yt(qe(), "trace_ievent_callback");
2698
- r ? r(e, o, 2, t) : Il(0, e, o);
2714
+ r ? r(e, o, 2, t) : Fl(0, e, o);
2699
2715
  }
2700
2716
  let s = o.event, i = o.kw;
2701
2717
  if ("ST_SESSION" !== kt(e)) {
2702
2718
  if (It(e, s, $.EVF_PUBLIC_EVENT)) {
2703
2719
  if (!(Vt(e, s, i, e) < 0)) return 0;
2704
2720
  } else hn(`${et(e)}: event UNKNOWN in not-session state ${s}`);
2705
- return Al(e), -1;
2721
+ return Ul(e), -1;
2706
2722
  }
2707
2723
  o = null;
2708
- let _ = Wr(e, i), a = Gr(e, i, Sl), u = Er(e, a, "dst_role", "");
2724
+ let _ = Wr(e, i), a = Gr(e, i, Dl), u = Er(e, a, "dst_role", "");
2709
2725
  if (u.toLowerCase() !== ze().toLowerCase()) return hn(`"It's not my role, dst_role: ${u}, my_role: ${ze()}`), 0;
2710
2726
  let c = Er(e, a, "dst_service", "");
2711
2727
  if ("__subscribing__" === _) return yn(`${et(e)}: subscription event ignored, I'm client (service: ${c}, event: ${s})`), -1;
@@ -2717,13 +2733,13 @@ var gobjJs = function(e) {
2717
2733
  }
2718
2734
  return lt(e) ? Vt(nt(e), s, i, e) : Xt(e, s, i), 0;
2719
2735
  }
2720
- function Yl(e, t, n, r) {
2736
+ function zl(e, t, n, r) {
2721
2737
  return 0;
2722
2738
  }
2723
- function Bl(e, t, n, r) {
2739
+ function Ql(e, t, n, r) {
2724
2740
  return 0;
2725
2741
  }
2726
- var Jl = {
2742
+ var Xl = {
2727
2743
  mt_create: function(e) {
2728
2744
  let t = e.priv;
2729
2745
  t.gobj_timer = Ce(Xe(e), "C_TIMER", {}, e), t.ws_seq = 0, t.url = jt(e, "url"), t.remote_yuno_name = jt(e, "remote_yuno_name"), t.remote_yuno_role = jt(e, "remote_yuno_role"), t.remote_yuno_service = jt(e, "remote_yuno_service"), $t(e, "wanted_yuno_name", t.remote_yuno_name), $t(e, "wanted_yuno_role", t.remote_yuno_role), $t(e, "wanted_yuno_service", t.remote_yuno_service);
@@ -2753,43 +2769,43 @@ var gobjJs = function(e) {
2753
2769
  code: 1e3,
2754
2770
  reason: "restarted",
2755
2771
  was_clean: !0
2756
- }, e), pl(t.gobj_timer)), t.websocket = kl(e), 0;
2772
+ }, e), Tl(t.gobj_timer)), t.websocket = Pl(e), 0;
2757
2773
  },
2758
2774
  mt_stop: function(e) {
2759
2775
  let t = e.priv;
2760
- return pl(t.gobj_timer), t.websocket && Al(e), 0;
2776
+ return Tl(t.gobj_timer), t.websocket && Ul(e), 0;
2761
2777
  },
2762
2778
  mt_destroy: function(e) {},
2763
2779
  mt_stats: function(e, t, n, r) {
2764
2780
  if ("ST_SESSION" !== kt(e)) return hn("Not in session"), null;
2765
2781
  n || (n = {});
2766
- let l = Pl(e, Xe(r), Er(e, n, "service", null, 0)), o = jr(e, n, "__md_stats__", null, Zt.KW_EXTRACT);
2782
+ let l = Ml(e, Xe(r), Er(e, n, "service", null, 0)), o = jr(e, n, "__md_stats__", null, Zt.KW_EXTRACT);
2767
2783
  return o || (o = {}), Vr(e, n, "stats_stack", {
2768
2784
  stats: t,
2769
2785
  kw: o
2770
- }), Vr(e, n, Sl, l), n.__stats__ = t, Mr(e, n, "__stats__"), Ll(e, "EV_MT_STATS", n, r), null;
2786
+ }), Vr(e, n, Dl, l), n.__stats__ = t, Mr(e, n, "__stats__"), Gl(e, "EV_MT_STATS", n, r), null;
2771
2787
  },
2772
2788
  mt_command_parser: function(e, t, n, r) {
2773
2789
  if ("ST_SESSION" !== kt(e)) return hn("Not in session"), null;
2774
2790
  n || (n = {});
2775
- let l = Pl(e, Xe(r), Er(e, n, "service", "", 0)), o = jr(e, n, "__md_command__", null, Zt.KW_EXTRACT);
2791
+ let l = Ml(e, Xe(r), Er(e, n, "service", "", 0)), o = jr(e, n, "__md_command__", null, Zt.KW_EXTRACT);
2776
2792
  return o || (o = {}), Vr(e, n, "command_stack", {
2777
2793
  command: t,
2778
2794
  kw: o
2779
- }), Vr(e, n, Sl, l), n.__command__ = t, Mr(e, n, "__command__"), Ll(e, "EV_MT_COMMAND", n, r), null;
2795
+ }), Vr(e, n, Dl, l), n.__command__ = t, Mr(e, n, "__command__"), Gl(e, "EV_MT_COMMAND", n, r), null;
2780
2796
  },
2781
2797
  mt_inject_event: function(e, t, n, r) {
2782
2798
  if ("ST_SESSION" !== kt(e)) return window.console.error("Not in session"), -1;
2783
- if (n = Gn({}, Zn(n) ? n : {}), Zn(n.__md_iev__) && (n.__md_iev__ = Fn(n.__md_iev__)), Gr(e, n, Sl));
2799
+ if (n = Gn({}, Zn(n) ? n : {}), Zn(n.__md_iev__) && (n.__md_iev__ = Fn(n.__md_iev__)), Gr(e, n, Dl));
2784
2800
  else {
2785
- let l = Pl(e, Xe(r), Er(e, n, "__service__", 0, 0));
2786
- Kn(n, "__service__"), Vr(e, n, "__message__", t), Vr(e, n, Sl, l);
2801
+ let l = Ml(e, Xe(r), Er(e, n, "__service__", 0, 0));
2802
+ Kn(n, "__service__"), Vr(e, n, "__message__", t), Vr(e, n, Dl, l);
2787
2803
  }
2788
- return Mr(e, n, "__message__"), Ll(e, t, n, r);
2804
+ return Mr(e, n, "__message__"), Gl(e, t, n, r);
2789
2805
  },
2790
2806
  mt_subscription_added: function(e, t) {
2791
2807
  let n = e.priv;
2792
- return "ST_SESSION" === kt(e) && n.websocket ? n.inside_on_open ? 0 : Fl(e, t) : 0;
2808
+ return "ST_SESSION" === kt(e) && n.websocket ? n.inside_on_open ? 0 : xl(e, t) : 0;
2793
2809
  },
2794
2810
  mt_subscription_deleted: function(e, t) {
2795
2811
  let n = e.priv;
@@ -2798,7 +2814,7 @@ var gobjJs = function(e) {
2798
2814
  if (ir(t.event)) return 0;
2799
2815
  let r = {}, l = t.__global__, o = t.__config__, s = t.__filter__, i = t.__service__, _ = t.subscriber;
2800
2816
  o && (r.__config__ = o), l && (r.__global__ = l), s && (r.__filter__ = s);
2801
- return Vr(e, r, Sl, Pl(e, Xe(_), i)), Mr(e, r, "__unsubscribing__"), Ll(e, t.event, r, e);
2817
+ return Vr(e, r, Dl, Ml(e, Xe(_), i)), Mr(e, r, "__unsubscribing__"), Gl(e, t.event, r, e);
2802
2818
  }
2803
2819
  };
2804
2820
  return e.GObj = S, e.SDATA = j, e.SDATAAUTHZ = (e, t, n, r, l, o) => new T(e, t, n, null, o, r, null, 0, null, l, null), e.SDATACM = (e, t, n, r, l, o) => new T(e, t, 0, null, o, n, null, 0, l, r, null), e.SDATACM2 = (e, t, n, r, l, o, s) => new T(e, t, n, null, s, r, null, 0, o, l, null), e.SDATADF = (e, t, n, r, l, o) => new T(e, t, n, null, o, null, r, l), e.SDATAPM = (e, t, n, r, l) => new T(e, t, n, r, l), e.SDATAPM0 = (e, t, n, r, l) => new T(e, t, n, null, l, null, null, 0, null, null, r), e.SDATA_END = v, e.SDataDesc = T, e.YUNETA_VERSION = s, Object.defineProperty(e, "__yuno__", {
@@ -2812,7 +2828,7 @@ var gobjJs = function(e) {
2812
2828
  return t;
2813
2829
  }, e.build_stats_response = o, e.clean_name = function(e) {
2814
2830
  return e.replace(/[?# ^:]/g, "_");
2815
- }, e.clear_timeout = pl, e.cmp_two_simple_json = cr, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
2831
+ }, e.clear_timeout = Tl, e.cmp_two_simple_json = cr, e.command_parser = function(e, t, n, r) {}, e.createElement2 = function e(t, n) {
2816
2832
  let [r, l, o, s] = t;
2817
2833
  if (!r) return void hn("Tag must be a valid HTML element.");
2818
2834
  let i = document.createElement(r), _ = "";
@@ -2821,16 +2837,21 @@ var gobjJs = function(e) {
2821
2837
  for (const n of Object.keys(l[e])) t += `${n}: ${l[e][n]};`;
2822
2838
  i.style.cssText = t;
2823
2839
  } else "style" === e ? i.style.cssText = l[e] : "i18n" === e || "data-i18n" === e || "data_i18next" === e || "data-i18next" === e ? null !== l[e] && void 0 !== l[e] && (_ = l[e], i.setAttribute("data-i18n", _)) : i.setAttribute(e, l[e]);
2824
- if (tr(o)) if (o = o.trim(), o.length > 0 && "<" === o[0]) i.appendChild(Jr(o));
2825
- else if (n && _) i.textContent = n(_) || o;
2840
+ if (qr(o)) i.appendChild(Hr(o));
2841
+ else if (tr(o)) if (o = o.trim(), o.length > 0 && "<" === o[0] && !zr) i.appendChild(Xr(o));
2842
+ else if (o.length > 0 && "<" === o[0] && function(e) {
2843
+ if (Qr.size >= 100) return;
2844
+ const t = e.slice(0, 80);
2845
+ Qr.has(t) || (Qr.add(t), yn(`createElement2: a string that starts with '<' is TEXT (set_strings_are_text): use html_markup() if it is markup: ${JSON.stringify(t)}`));
2846
+ }(o), n && _) i.textContent = n(_) || o;
2826
2847
  else i.textContent = o;
2827
2848
  else if (er(o)) {
2828
2849
  if (o.length > 0) if (tr(o[0])) i.appendChild(e(o, n));
2829
- else for (let t of o) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : tr(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && hn("createElement2: child ignored, type " + typeof t);
2850
+ else for (let t of o) Array.isArray(t) ? t.length > 0 && i.appendChild(e(t, n)) : t instanceof Node ? i.appendChild(t) : qr(t) ? i.appendChild(Hr(t)) : tr(t) ? i.appendChild(document.createTextNode(t)) : null != t && !1 !== t && hn("createElement2: child ignored, type " + typeof t);
2830
2851
  } else o instanceof HTMLElement || o instanceof Text || o instanceof SVGElement ? i.appendChild(o) : null != o && (hn("content ignored"), vn(o));
2831
2852
  if (s && "object" == typeof s) for (const e of Object.keys(s)) i.addEventListener(e, s[e]);
2832
2853
  return i;
2833
- }, e.createOneHtml = Jr, e.create_json_record = function(e, t) {
2854
+ }, e.createOneHtml = Xr, e.create_json_record = function(e, t) {
2834
2855
  let n = Fn(e);
2835
2856
  return Mn(n, t), n;
2836
2857
  }, e.create_template_record = function(e, t) {
@@ -2841,21 +2862,21 @@ var gobjJs = function(e) {
2841
2862
  let o = jr(null, t, e, l);
2842
2863
  n[e] = o;
2843
2864
  }), n;
2844
- }, e.current_timestamp = qr, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2845
- let n = Dr(rl(e), null, !1), r = {};
2865
+ }, e.current_timestamp = Zr, e.data_type_t = y, e.db_list_persistent_attrs = function(e, t) {
2866
+ let n = Dr(_l(e), null, !1), r = {};
2846
2867
  return n && Zn(n) && (r = Rr(e, n, t, !1)), r;
2847
2868
  }, e.db_load_persistent_attrs = function(e, t) {
2848
- let n = Et(e, E.SDF_PERSIST), r = Dr(rl(e), null, !1);
2869
+ let n = Et(e, E.SDF_PERSIST), r = Dr(_l(e), null, !1);
2849
2870
  if (r && Zn(r)) {
2850
2871
  let l = Rr(e, r, t, !1);
2851
2872
  l = Rr(e, l, n, !1), wt(e, l, E.SDF_PERSIST);
2852
2873
  }
2853
2874
  }, e.db_remove_persistent_attrs = function(e, t) {
2854
- let n = $r(e, Dr(rl(e), null, !1), t, !1);
2855
- 0 === zn(n) ? Ar(rl(e)) : kr(rl(e), n);
2875
+ let n = $r(e, Dr(_l(e), null, !1), t, !1);
2876
+ 0 === zn(n) ? Ar(_l(e)) : kr(_l(e), n);
2856
2877
  }, e.db_save_persistent_attrs = function(e, t) {
2857
- let n = Rr(e, Et(e, E.SDF_PERSIST), t, !1), r = Dr(rl(e), null, !1);
2858
- return r && Zn(r) && Wn(n, r), kr(rl(e), n);
2878
+ let n = Rr(e, Et(e, E.SDF_PERSIST), t, !1), r = Dr(_l(e), null, !1);
2879
+ return r && Zn(r) && Wn(n, r), kr(_l(e), n);
2859
2880
  }, e.debounce = function(e, t = 0, n = !1) {
2860
2881
  let r = null, l = null, o = null;
2861
2882
  const s = (...s) => {
@@ -2883,16 +2904,16 @@ var gobjJs = function(e) {
2883
2904
  if (null === e || "object" != typeof e || Array.isArray(e)) throw new Error("flat2json: a flat json is an object of id -> value");
2884
2905
  let t = null;
2885
2906
  for (const n of Object.keys(e)) {
2886
- const r = tl(n);
2907
+ const r = sl(n);
2887
2908
  if (!r || 0 === r.length) throw new Error(`flat2json: malformed flat id: '${n}'`);
2888
- if (r.length > Xr) throw new Error(`flat2json: '${n}' deeper than 256`);
2909
+ if (r.length > rl) throw new Error(`flat2json: '${n}' deeper than 256`);
2889
2910
  const l = "number" == typeof r[0];
2890
2911
  if (null === t) t = l ? [] : {};
2891
2912
  else if (l !== Array.isArray(t)) throw new Error(`flat2json: '${n}' does not fit a ${Array.isArray(t) ? "array" : "object"} root`);
2892
2913
  let o = t;
2893
2914
  for (let t = 0; t < r.length; t++) {
2894
2915
  const l = r[t], s = "number" == typeof l, i = t === r.length - 1, _ = !i && "number" == typeof r[t + 1];
2895
- if (s && l > Zr) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2916
+ if (s && l > ll) throw new Error(`flat2json: array index ${l} over the limit (100000) in '${n}'`);
2896
2917
  if (s !== Array.isArray(o)) throw new Error(`flat2json: '${n}' uses a ${s ? "array index" : "key"} where the tree already has a ${Array.isArray(o) ? "array" : "object"}`);
2897
2918
  if (i) {
2898
2919
  if (Array.isArray(o)) {
@@ -2932,15 +2953,15 @@ var gobjJs = function(e) {
2932
2953
  removed: {},
2933
2954
  changed: {}
2934
2955
  };
2935
- for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? nl(n[e], r[e]) || br(l.changed, e, {
2956
+ for (const e of Object.keys(n)) Object.prototype.hasOwnProperty.call(r, e) ? il(n[e], r[e]) || br(l.changed, e, {
2936
2957
  from: n[e],
2937
2958
  to: r[e]
2938
2959
  }) : br(l.removed, e, n[e]);
2939
2960
  for (const e of Object.keys(r)) Object.prototype.hasOwnProperty.call(n, e) || br(l.added, e, r[e]);
2940
2961
  return l;
2941
2962
  }, e.flat_key_join = function(e) {
2942
- return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : el(e)).join("`") : "";
2943
- }, e.flat_key_split = tl, e.gclass_add_ev_action = ye, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2963
+ return Array.isArray(e) && 0 !== e.length ? e.map((e) => "number" == typeof e ? `[${e}]` : ol(e)).join("`") : "";
2964
+ }, e.flat_key_split = sl, e.gclass_add_ev_action = ye, e.gclass_add_event_type = Te, e.gclass_add_state = he, e.gclass_check_fsm = je, e.gclass_create = de, e.gclass_event_type = ve, e.gclass_find_by_name = Oe, e.gclass_flag_t = w, e.gclass_unregister = be, e.getPositionRelativeToBody = function(e) {
2944
2965
  if (!e) return {
2945
2966
  top: 0,
2946
2967
  left: 0,
@@ -2959,7 +2980,7 @@ var gobjJs = function(e) {
2959
2980
  right: n + i + r,
2960
2981
  bottom: t + s + l
2961
2982
  };
2962
- }, e.get_function_name = Qr, e.get_now = function() {
2983
+ }, e.get_function_name = nl, e.get_now = function() {
2963
2984
  return Math.floor(Date.now() / 1e3);
2964
2985
  }, e.gobj_bottom_gobj = st, e.gobj_change_parent = function(e, t) {
2965
2986
  return ot(e) ? (hn("gobj NULL or DESTROYED"), null) : t instanceof S ? (e.parent && e.parent.gclass.gmt.mt_child_removed && e.parent.gclass.gmt.mt_child_removed(e.parent, e), e.parent && ($e(e.parent, e), e.parent = null), Re(t, e), t.gclass.gmt.mt_child_added && (Y(e) && En(n("👦👦🔵 child_added(%s): %s", tt(t), et(e))), t.gclass.gmt.mt_child_added(t, e)), 0) : (hn(`${et(e)}: gobj_change_parent() BAD TYPE of parent`), -1);
@@ -3106,9 +3127,11 @@ var gobjJs = function(e) {
3106
3127
  0 === r ? i++ : r < 0 ? _++ : a++;
3107
3128
  }
3108
3129
  return _ ? yn(`${et(e)}: Hard subscription not removed, only gobj_unsubscribe_list() with force removes it (event: ${t}, hard: ${_})`) : i || a || (yn(`${et(e)}: No subscription found`), Un(n, "No subscription found")), 0;
3109
- }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.id_index_in_obj_list = Lr, e.index_in_list = Hr, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
3130
+ }, e.gobj_unsubscribe_list = Ht, e.gobj_walk_gobj_children = at, e.gobj_walk_gobj_children_tree = ut, e.gobj_write_attr = St, e.gobj_write_attrs = wt, e.gobj_write_bool_attr = Nt, e.gobj_write_integer_attr = Rt, e.gobj_write_str_attr = $t, e.gobj_yuno = qe, e.gobj_yuno_id = Qe, e.gobj_yuno_name = He, e.gobj_yuno_role = ze, e.html_markup = function(e) {
3131
+ return "string" != typeof e ? (hn("html_markup: not a string, type " + typeof e), new Jr("")) : new Jr(e);
3132
+ }, e.id_index_in_obj_list = Lr, e.index_in_list = el, e.is_array = er, e.is_boolean = rr, e.is_date = function(e) {
3110
3133
  return e instanceof Date && !isNaN(e);
3111
- }, e.is_function = or, e.is_gobj = sr, e.is_metadata_key = function(e) {
3134
+ }, e.is_function = or, e.is_gobj = sr, e.is_html_markup = qr, e.is_metadata_key = function(e) {
3112
3135
  if (!tr(e)) return !1;
3113
3136
  let t = 0;
3114
3137
  for (; t < e.length && "_" === e[t] && !(t > 2); t++);
@@ -3170,7 +3193,7 @@ var gobjJs = function(e) {
3170
3193
  return l;
3171
3194
  }, e.json2flat = function(e) {
3172
3195
  const t = {}, n = (e, r, l) => {
3173
- if (l > Xr) throw new Error("json2flat: deeper than 256");
3196
+ if (l > rl) throw new Error("json2flat: deeper than 256");
3174
3197
  if (null === e || "object" != typeof e || Array.isArray(e)) {
3175
3198
  if (Array.isArray(e) && e.length > 0) return void e.forEach((e, t) => {
3176
3199
  const o = `[${t}]`;
@@ -3180,7 +3203,7 @@ var gobjJs = function(e) {
3180
3203
  const t = Object.keys(e);
3181
3204
  if (t.length > 0) {
3182
3205
  for (const o of t) {
3183
- const t = el(o);
3206
+ const t = ol(o);
3184
3207
  n(e[o], 0 === l ? t : r + "`" + t, l + 1);
3185
3208
  }
3186
3209
  return;
@@ -3346,9 +3369,9 @@ var gobjJs = function(e) {
3346
3369
  var e;
3347
3370
  }, r.send();
3348
3371
  }, e.log_debug = En, e.log_error = hn, e.log_info = function(e, ...t) {
3349
- let n = mn(e, ...t), r = qr();
3372
+ let n = mn(e, ...t), r = Zr();
3350
3373
  rn && cn("info", n) && rn("%c" + r + " INFO: " + String(n), "color:cyan"), gn("info", n, r);
3351
- }, e.log_warning = yn, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = Wr, e.msg_iev_get_stack = Gr, e.msg_iev_push_stack = Vr, e.msg_iev_read_key = Ur, e.msg_iev_set_msg_type = Mr, e.msg_iev_write_key = Fr, e.node_uuid = zr, e.parseBoolean = _r, e.parseSVG = function(e) {
3374
+ }, e.log_warning = yn, e.mask_secrets_inline = kn, e.msg_iev_get_msg_type = Wr, e.msg_iev_get_stack = Gr, e.msg_iev_push_stack = Vr, e.msg_iev_read_key = Ur, e.msg_iev_set_msg_type = Mr, e.msg_iev_write_key = Fr, e.node_uuid = tl, e.parseBoolean = _r, e.parseSVG = function(e) {
3352
3375
  return new DOMParser().parseFromString(e, "image/svg+xml").firstChild;
3353
3376
  }, e.refresh_language = function(e, t) {
3354
3377
  if (!or(t)) return void hn("You must supply a translation function");
@@ -3375,22 +3398,22 @@ var gobjJs = function(e) {
3375
3398
  });
3376
3399
  }, e.register_c_ievent_cli = function() {
3377
3400
  return function(e) {
3378
- if (Dl) return hn(`GClass ALREADY created: ${e}`), -1;
3401
+ if (Ll) return hn(`GClass ALREADY created: ${e}`), -1;
3379
3402
  const t = [
3380
3403
  ["ST_DISCONNECTED", [
3381
3404
  [
3382
3405
  "EV_ON_OPEN",
3383
- Gl,
3406
+ Yl,
3384
3407
  "ST_WAIT_IDENTITY_CARD_ACK"
3385
3408
  ],
3386
3409
  [
3387
3410
  "EV_ON_CLOSE",
3388
- Ml,
3411
+ Bl,
3389
3412
  null
3390
3413
  ],
3391
3414
  [
3392
3415
  "EV_TIMEOUT",
3393
- Vl,
3416
+ Kl,
3394
3417
  null
3395
3418
  ],
3396
3419
  [
@@ -3402,22 +3425,22 @@ var gobjJs = function(e) {
3402
3425
  ["ST_WAIT_IDENTITY_CARD_ACK", [
3403
3426
  [
3404
3427
  "EV_ON_MESSAGE",
3405
- Kl,
3428
+ Hl,
3406
3429
  null
3407
3430
  ],
3408
3431
  [
3409
3432
  "EV_IDENTITY_CARD_ACK",
3410
- xl,
3433
+ ql,
3411
3434
  null
3412
3435
  ],
3413
3436
  [
3414
3437
  "EV_ON_CLOSE",
3415
- Ml,
3438
+ Bl,
3416
3439
  "ST_DISCONNECTED"
3417
3440
  ],
3418
3441
  [
3419
3442
  "EV_TIMEOUT",
3420
- Wl,
3443
+ Jl,
3421
3444
  null
3422
3445
  ],
3423
3446
  [
@@ -3429,22 +3452,22 @@ var gobjJs = function(e) {
3429
3452
  ["ST_SESSION", [
3430
3453
  [
3431
3454
  "EV_ON_MESSAGE",
3432
- Kl,
3455
+ Hl,
3433
3456
  null
3434
3457
  ],
3435
3458
  [
3436
3459
  "EV_MT_STATS",
3437
- Yl,
3460
+ zl,
3438
3461
  null
3439
3462
  ],
3440
3463
  [
3441
3464
  "EV_MT_COMMAND",
3442
- Bl,
3465
+ Ql,
3443
3466
  null
3444
3467
  ],
3445
3468
  [
3446
3469
  "EV_ON_CLOSE",
3447
- Ml,
3470
+ Bl,
3448
3471
  "ST_DISCONNECTED"
3449
3472
  ],
3450
3473
  [
@@ -3455,7 +3478,7 @@ var gobjJs = function(e) {
3455
3478
  ]],
3456
3479
  [null, null]
3457
3480
  ];
3458
- return (Dl = de(e, [
3481
+ return (Ll = de(e, [
3459
3482
  ["EV_ON_MESSAGE", $.EVF_OUTPUT_EVENT],
3460
3483
  ["EV_IDENTITY_CARD_ACK", $.EVF_PUBLIC_EVENT],
3461
3484
  ["EV_ON_ID_NAK", $.EVF_PUBLIC_EVENT | $.EVF_OUTPUT_EVENT],
@@ -3466,31 +3489,31 @@ var gobjJs = function(e) {
3466
3489
  ["EV_ON_OPEN_ERROR", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS],
3467
3490
  ["EV_TIMEOUT", 0],
3468
3491
  [null, 0]
3469
- ], t, Jl, 0, wl, $l, 0, 0, Nl, w.gcflag_no_check_output_events)) ? 0 : -1;
3492
+ ], t, Xl, 0, kl, Cl, 0, 0, Al, w.gcflag_no_check_output_events)) ? 0 : -1;
3470
3493
  }("C_IEVENT_CLI");
3471
3494
  }, e.register_c_timer = function() {
3472
3495
  return function(e) {
3473
- if (cl) return hn(`GClass ALREADY created: ${e}`), -1;
3496
+ if (pl) return hn(`GClass ALREADY created: ${e}`), -1;
3474
3497
  const t = [["ST_IDLE", [[
3475
3498
  "EV_TIMEOUT",
3476
- fl,
3499
+ ml,
3477
3500
  null
3478
3501
  ]]]];
3479
- return (cl = de(e, [
3502
+ return (pl = de(e, [
3480
3503
  ["EV_TIMEOUT", $.EVF_OUTPUT_EVENT],
3481
3504
  ["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT],
3482
3505
  [0, 0]
3483
- ], t, gl, 0, al, ul, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3506
+ ], t, hl, 0, dl, bl, 0, 0, 0, w.gcflag_manual_start)) ? 0 : -1;
3484
3507
  }("C_TIMER");
3485
3508
  }, e.register_c_yuno = function() {
3486
3509
  return function(e) {
3487
- if (yl) return hn(`GClass ALREADY created: ${e}`), -1;
3510
+ if (Ol) return hn(`GClass ALREADY created: ${e}`), -1;
3488
3511
  const t = [["ST_IDLE", [[
3489
3512
  "EV_TIMEOUT_PERIODIC",
3490
- jl,
3513
+ Rl,
3491
3514
  null
3492
3515
  ]]]];
3493
- return (yl = de(e, [["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]], t, Ol, 0, ml, hl, 0, 0, 0, 0)) ? 0 : -1;
3516
+ return (Ol = de(e, [["EV_TIMEOUT_PERIODIC", $.EVF_OUTPUT_EVENT | $.EVF_NO_WARN_SUBS], [0, 0]], t, $l, 0, vl, jl, 0, 0, 0, 0)) ? 0 : -1;
3494
3517
  }("C_YUNO");
3495
3518
  }, e.safeSrc = function(e) {
3496
3519
  if (!e) return "";
@@ -3518,7 +3541,11 @@ var gobjJs = function(e) {
3518
3541
  dn(e, r, n);
3519
3542
  }
3520
3543
  } else on = e;
3521
- }, e.set_remote_log_functions = bn, e.set_timeout = dl, e.set_timeout_periodic = bl, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Pr, e.strcasecmp = ur, e.strcmp = ar, e.strncmp = function(e, t, n) {
3544
+ }, e.set_remote_log_functions = bn, e.set_strings_are_text = function(e) {
3545
+ zr = !!e;
3546
+ }, e.set_timeout = yl, e.set_timeout_periodic = El, e.sprintf = n, e.stats_parser = function(e, t, n, r) {}, e.str_in_list = Pr, e.strcasecmp = ur, e.strcmp = ar, e.strings_are_text = function() {
3547
+ return zr;
3548
+ }, e.strncmp = function(e, t, n) {
3522
3549
  var r = (e + "").substring(0, n), l = (t + "").substring(0, n);
3523
3550
  return r === l ? 0 : r > l ? 1 : -1;
3524
3551
  }, e.strs_in_list = function(e, t, n) {
@@ -3547,9 +3574,9 @@ var gobjJs = function(e) {
3547
3574
  let e = t.split(".");
3548
3575
  for (let t = 0; t < e.length; t++) {
3549
3576
  let r = e[t];
3550
- if (Pr(ol, r)) n.real_type || (n.real_type = r);
3551
- else if (Pr(il, r)) n.type || (n.type = r);
3552
- else if (Pr(sl, r)) switch (r) {
3577
+ if (Pr(ul, r)) n.real_type || (n.real_type = r);
3578
+ else if (Pr(fl, r)) n.type || (n.type = r);
3579
+ else if (Pr(cl, r)) switch (r) {
3553
3580
  case "writable":
3554
3581
  n.is_writable = !0;
3555
3582
  break;
@@ -3561,7 +3588,7 @@ var gobjJs = function(e) {
3561
3588
  }
3562
3589
  }
3563
3590
  n.real_type || (n.real_type = "string");
3564
- } else Zn(t) ? (n = _l(t), n.name || (n.name = e), n.header || (n.header = e)) : er(t) && (n.real_type = "array", n.enum_list = t);
3591
+ } else Zn(t) ? (n = gl(t), n.name || (n.name = e), n.header || (n.header = e)) : er(t) && (n.real_type = "array", n.enum_list = t);
3565
3592
  return n.type || (n.type = n.real_type), n;
3566
3593
  }, e.timeTracker = function(e = "Time Tracker", t = !1) {
3567
3594
  const n = e, r = performance.now();
@@ -3573,7 +3600,7 @@ var gobjJs = function(e) {
3573
3600
  total: _
3574
3601
  };
3575
3602
  } };
3576
- }, e.trace_json = vn, e.trace_json_masked = Un, e.trace_level_t = P, e.trace_msg = Tn, e.treedb_decoder_fkey = ll, e.treedb_decoder_hook = function(e, t) {
3603
+ }, e.trace_json = vn, e.trace_json_masked = Un, e.trace_level_t = P, e.trace_msg = Tn, e.treedb_decoder_fkey = al, e.treedb_decoder_hook = function(e, t) {
3577
3604
  if (tr(t)) {
3578
3605
  if (-1 === t.indexOf("^")) {
3579
3606
  let n, r = e.hook;
@@ -3600,9 +3627,9 @@ var gobjJs = function(e) {
3600
3627
  id: t.id
3601
3628
  } : (hn("bad hook 3"), hn(e), hn(t), null);
3602
3629
  }, e.treedb_encoder_fkey = function(e, t) {
3603
- let n = ll(e, t);
3630
+ let n = al(e, t);
3604
3631
  return n ? n.topic_name + "^" + n.id + "^" + n.hook_name : null;
3605
- }, e.treedb_get_field_desc = _l, e.treedb_hook_data_size = function(e) {
3632
+ }, e.treedb_get_field_desc = gl, e.treedb_hook_data_size = function(e) {
3606
3633
  if (er(e) && 1 === Xn(e)) {
3607
3634
  let t = e[0];
3608
3635
  return gr(t, "size") ? t.size : 1;