@aikaara/chat-sdk 1.5.20 → 1.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AikaaraLinkButton-B3L7f3rW.mjs → AikaaraLinkButton-DnxH9tlI.mjs} +1 -1
- package/dist/{AikaaraLinkButton-Bexvj1vS.cjs → AikaaraLinkButton-dlrddeyC.cjs} +1 -1
- package/dist/{MountTenant-JG6ic8T1.mjs → MountTenant-BZsuHkjY.mjs} +97 -36
- package/dist/{MountTenant-CJUhVjGh.cjs → MountTenant-DqoK4QxP.cjs} +22 -14
- package/dist/cdn/aikaara-chat.iife.js +81 -73
- package/dist/headless.cjs +1 -1
- package/dist/headless.mjs +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.ts +21 -0
- package/dist/ui.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./MountTenant-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./MountTenant-DqoK4QxP.cjs");class l extends HTMLElement{shadow;payload=null;constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}connectedCallback(){this.render()}setPayload(e){this.payload=e,this.render()}render(){const e=this.payload;this.shadow.innerHTML=`
|
|
2
2
|
<style>
|
|
3
3
|
:host { display: block; margin-top: 8px; }
|
|
4
4
|
button {
|
|
@@ -558,15 +558,15 @@ function ws(s) {
|
|
|
558
558
|
throw new Error("Node.js process " + s + " is not supported by JSPM core outside of Node.js");
|
|
559
559
|
}
|
|
560
560
|
function _c() {
|
|
561
|
-
!Dt || !Rt || (Dt = !1, Rt.length ?
|
|
561
|
+
!Dt || !Rt || (Dt = !1, Rt.length ? dt = Rt.concat(dt) : dr = -1, dt.length && fa());
|
|
562
562
|
}
|
|
563
563
|
function fa() {
|
|
564
564
|
if (!Dt) {
|
|
565
565
|
var s = setTimeout(_c, 0);
|
|
566
566
|
Dt = !0;
|
|
567
|
-
for (var e =
|
|
568
|
-
for (Rt =
|
|
569
|
-
dr = -1, e =
|
|
567
|
+
for (var e = dt.length; e; ) {
|
|
568
|
+
for (Rt = dt, dt = []; ++dr < e; ) Rt && Rt[dr].run();
|
|
569
|
+
dr = -1, e = dt.length;
|
|
570
570
|
}
|
|
571
571
|
Rt = null, Dt = !1, clearTimeout(s);
|
|
572
572
|
}
|
|
@@ -574,7 +574,7 @@ function fa() {
|
|
|
574
574
|
function pa(s) {
|
|
575
575
|
var e = new Array(arguments.length - 1);
|
|
576
576
|
if (arguments.length > 1) for (var t = 1; t < arguments.length; t++) e[t - 1] = arguments[t];
|
|
577
|
-
|
|
577
|
+
dt.push(new ma(s, e)), dt.length === 1 && !Dt && setTimeout(fa, 0);
|
|
578
578
|
}
|
|
579
579
|
function ma(s, e) {
|
|
580
580
|
this.fun = s, this.array = e;
|
|
@@ -612,8 +612,8 @@ function pt() {
|
|
|
612
612
|
function _a(s) {
|
|
613
613
|
return [];
|
|
614
614
|
}
|
|
615
|
-
var
|
|
616
|
-
le(), ue(), ce(),
|
|
615
|
+
var dt, Dt, Rt, dr, vn, wn, kn, xn, _n, Sn, En, An, In, Tn, Cn, Pn, On, Ln, Mn, Nn, Rn, jn, Dn, $n, Un, Bn, or, Fn, qn, Hn, Wn, zn, Vn, Kn, Gn, Yn, Jn, Qn, Xn, Zn, ei, ti, ri, ni, ii, si, oi, ai, li, ci, ui, di, gt, ln, Sr, hi, fi, pi, mi, gi, bi, yi, vi, wi, ki, xi, ks, Sc = Qe(() => {
|
|
616
|
+
le(), ue(), ce(), dt = [], Dt = !1, dr = -1, ma.prototype.run = function() {
|
|
617
617
|
this.fun.apply(null, this.array);
|
|
618
618
|
}, vn = "browser", wn = "x64", kn = "browser", xn = { PATH: "/usr/bin", LANG: typeof navigator < "u" ? navigator.language + ".UTF-8" : void 0, PWD: "/", HOME: "/home", TMP: "/tmp" }, _n = ["/usr/bin/node"], Sn = [], En = "v16.8.0", An = {}, In = function(s, e) {
|
|
619
619
|
console.warn((e ? e + ": " : "") + s);
|
|
@@ -2961,8 +2961,8 @@ var lr, Ai, zt, Ia, Ta, Ca, Pa, Oa, La, Ut = Qe(() => {
|
|
|
2961
2961
|
Se.pipes.length === 1 && (Se.multiAwaitDrain || (Se.multiAwaitDrain = !0, Se.awaitDrainWriters = new d(Se.awaitDrainWriters ? [Se.awaitDrainWriters] : []))), Se.pipes.push(C), v("pipe count=%d opts=%j", Se.pipes.length, R);
|
|
2962
2962
|
let Ae = (!R || R.end !== !1) && C !== t.stdout && C !== t.stderr ? Ge : Mt;
|
|
2963
2963
|
Se.endEmitted ? t.nextTick(Ae) : ke.once("end", Ae), C.on("unpipe", Be);
|
|
2964
|
-
function Be(ct,
|
|
2965
|
-
v("onunpipe"), ct === ke &&
|
|
2964
|
+
function Be(ct, ft) {
|
|
2965
|
+
v("onunpipe"), ct === ke && ft && ft.hasUnpiped === !1 && (ft.hasUnpiped = !0, nr());
|
|
2966
2966
|
}
|
|
2967
2967
|
function Ge() {
|
|
2968
2968
|
v("onend"), C.end();
|
|
@@ -2977,13 +2977,13 @@ var lr, Ai, zt, Ia, Ta, Ca, Pa, Oa, La, Ut = Qe(() => {
|
|
|
2977
2977
|
ke.on("data", yr);
|
|
2978
2978
|
function yr(ct) {
|
|
2979
2979
|
v("ondata");
|
|
2980
|
-
let
|
|
2981
|
-
v("dest.write",
|
|
2980
|
+
let ft = C.write(ct);
|
|
2981
|
+
v("dest.write", ft), ft === !1 && ir();
|
|
2982
2982
|
}
|
|
2983
2983
|
function Lt(ct) {
|
|
2984
2984
|
if (v("onerror", ct), Mt(), C.removeListener("error", Lt), C.listenerCount("error") === 0) {
|
|
2985
|
-
let
|
|
2986
|
-
|
|
2985
|
+
let ft = C._writableState || C._readableState;
|
|
2986
|
+
ft && !ft.errorEmitted ? M(C, ct) : C.emit("error", ct);
|
|
2987
2987
|
}
|
|
2988
2988
|
}
|
|
2989
2989
|
w(C, "error", Lt);
|
|
@@ -9430,15 +9430,15 @@ function Ts(s) {
|
|
|
9430
9430
|
throw new Error("Node.js process " + s + " is not supported by JSPM core outside of Node.js");
|
|
9431
9431
|
}
|
|
9432
9432
|
function td() {
|
|
9433
|
-
!$t || !jt || ($t = !1, jt.length ?
|
|
9433
|
+
!$t || !jt || ($t = !1, jt.length ? ht = jt.concat(ht) : hr = -1, ht.length && ml());
|
|
9434
9434
|
}
|
|
9435
9435
|
function ml() {
|
|
9436
9436
|
if (!$t) {
|
|
9437
9437
|
var s = setTimeout(td, 0);
|
|
9438
9438
|
$t = !0;
|
|
9439
|
-
for (var e =
|
|
9440
|
-
for (jt =
|
|
9441
|
-
hr = -1, e =
|
|
9439
|
+
for (var e = ht.length; e; ) {
|
|
9440
|
+
for (jt = ht, ht = []; ++hr < e; ) jt && jt[hr].run();
|
|
9441
|
+
hr = -1, e = ht.length;
|
|
9442
9442
|
}
|
|
9443
9443
|
jt = null, $t = !1, clearTimeout(s);
|
|
9444
9444
|
}
|
|
@@ -9446,7 +9446,7 @@ function ml() {
|
|
|
9446
9446
|
function rd(s) {
|
|
9447
9447
|
var e = new Array(arguments.length - 1);
|
|
9448
9448
|
if (arguments.length > 1) for (var t = 1; t < arguments.length; t++) e[t - 1] = arguments[t];
|
|
9449
|
-
|
|
9449
|
+
ht.push(new gl(s, e)), ht.length === 1 && !$t && setTimeout(ml, 0);
|
|
9450
9450
|
}
|
|
9451
9451
|
function gl(s, e) {
|
|
9452
9452
|
this.fun = s, this.array = e;
|
|
@@ -9484,8 +9484,8 @@ function Et() {
|
|
|
9484
9484
|
function ud(s) {
|
|
9485
9485
|
return [];
|
|
9486
9486
|
}
|
|
9487
|
-
var
|
|
9488
|
-
le(), ue(), ce(),
|
|
9487
|
+
var ht, $t, jt, hr, qs, Hs, Ws, zs, Vs, Ks, Gs, Ys, Js, Qs, Xs, Zs, eo, to, ro, no, io, so, oo, ao, lo, vr, co, uo, ho, fo, po, mo, go, bo, yo, vo, wo, ko, xo, _o, So, Eo, Ao, Io, To, Co, Po, Oo, Lo, Mo, No, bt, un, $r, Ro, jo, Do, $o, Uo, Bo, Fo, qo, Ho, Wo, zo, Cs, bl = Qe(() => {
|
|
9488
|
+
le(), ue(), ce(), ht = [], $t = !1, hr = -1, gl.prototype.run = function() {
|
|
9489
9489
|
this.fun.apply(null, this.array);
|
|
9490
9490
|
}, qs = "browser", Hs = "x64", Ws = "browser", zs = { PATH: "/usr/bin", LANG: navigator.language + ".UTF-8", PWD: "/", HOME: "/home", TMP: "/tmp" }, Vs = ["/usr/bin/node"], Ks = [], Gs = "v16.8.0", Ys = {}, Js = function(s, e) {
|
|
9491
9491
|
console.warn((e ? e + ": " : "") + s);
|
|
@@ -12185,6 +12185,7 @@ const Wd = "^[A-Z]{4}[0-9]{5}[A-Z]$", zd = "^\\S{12}$", Vl = "^[A-Z]{4}0[A-Z0-9]
|
|
|
12185
12185
|
type: "text",
|
|
12186
12186
|
label: "IFSC Code",
|
|
12187
12187
|
required: !0,
|
|
12188
|
+
uppercase: !0,
|
|
12188
12189
|
pattern: Vl,
|
|
12189
12190
|
maxLength: 11,
|
|
12190
12191
|
showWhen: { field: "us80gDonationOnline", gt: 0 }
|
|
@@ -12268,7 +12269,15 @@ const Wd = "^[A-Z]{4}[0-9]{5}[A-Z]$", zd = "^\\S{12}$", Vl = "^[A-Z]{4}0[A-Z0-9]
|
|
|
12268
12269
|
type: "group",
|
|
12269
12270
|
title: "Section 80EEB — Electric Vehicle Loan Interest",
|
|
12270
12271
|
fields: [
|
|
12271
|
-
{
|
|
12272
|
+
{
|
|
12273
|
+
id: "us80eeLoanTakenFrom",
|
|
12274
|
+
type: "select",
|
|
12275
|
+
label: "Loan Taken From",
|
|
12276
|
+
options: [
|
|
12277
|
+
{ value: "B", label: "Bank" },
|
|
12278
|
+
{ value: "O", label: "Other" }
|
|
12279
|
+
]
|
|
12280
|
+
},
|
|
12272
12281
|
{ id: "us80eeBankName", type: "text", label: "Bank Name" },
|
|
12273
12282
|
{
|
|
12274
12283
|
id: "us80eeLoanAccountNumber",
|
|
@@ -15575,7 +15584,7 @@ class hf extends HTMLElement {
|
|
|
15575
15584
|
*/
|
|
15576
15585
|
mountLinkButton(e) {
|
|
15577
15586
|
const t = this.renderGen;
|
|
15578
|
-
import("./AikaaraLinkButton-
|
|
15587
|
+
import("./AikaaraLinkButton-DnxH9tlI.mjs").then(({ registerAikaaraLinkButton: r, AikaaraLinkButton: i }) => {
|
|
15579
15588
|
if (t !== this.renderGen) return;
|
|
15580
15589
|
r();
|
|
15581
15590
|
const n = document.createElement("aikaara-link-button");
|
|
@@ -16884,7 +16893,7 @@ class Pf extends HTMLElement {
|
|
|
16884
16893
|
return this.isRepeatable() ? this.value : [this.value];
|
|
16885
16894
|
}
|
|
16886
16895
|
setEntry(e, t, r) {
|
|
16887
|
-
this.setEntryNoRender(e, t, r), this.
|
|
16896
|
+
this.setEntryNoRender(e, t, r), this.renderPreservingScroll();
|
|
16888
16897
|
}
|
|
16889
16898
|
setEntryNoRender(e, t, r) {
|
|
16890
16899
|
const i = this.getEntries(), n = { ...i[e] || {} };
|
|
@@ -16893,12 +16902,12 @@ class Pf extends HTMLElement {
|
|
|
16893
16902
|
addEntry() {
|
|
16894
16903
|
if (!this.isRepeatable() || !this.schema?.repeatable) return;
|
|
16895
16904
|
const e = this.getEntries();
|
|
16896
|
-
e.length >= this.schema.repeatable.maxCount || (e.push({}), this.value = e, this.
|
|
16905
|
+
e.length >= this.schema.repeatable.maxCount || (e.push({}), this.value = e, this.renderPreservingScroll());
|
|
16897
16906
|
}
|
|
16898
16907
|
removeEntry(e) {
|
|
16899
16908
|
if (!this.isRepeatable()) return;
|
|
16900
16909
|
const t = this.getEntries();
|
|
16901
|
-
t.length <= 1 || (t.splice(e, 1), this.value = t, this.
|
|
16910
|
+
t.length <= 1 || (t.splice(e, 1), this.value = t, this.renderPreservingScroll());
|
|
16902
16911
|
}
|
|
16903
16912
|
// ── conditional reveal ──────────────────────────────────────────────
|
|
16904
16913
|
fieldVisible(e, t) {
|
|
@@ -16909,6 +16918,25 @@ class Pf extends HTMLElement {
|
|
|
16909
16918
|
};
|
|
16910
16919
|
return !(r(e.showWhen) === !1 || r(e.hideWhen) === !0);
|
|
16911
16920
|
}
|
|
16921
|
+
/**
|
|
16922
|
+
* Re-render without yanking the user away from where they were. Rebuilding
|
|
16923
|
+
* the shadow DOM replaces `.scroll`, which resets its `scrollTop` to 0; a
|
|
16924
|
+
* value edit deep in the form would otherwise jump back to the top.
|
|
16925
|
+
*
|
|
16926
|
+
* The restore reads `scrollHeight` first to force layout: assigning
|
|
16927
|
+
* `scrollTop` on the freshly-built container before it has been laid out
|
|
16928
|
+
* silently clamps to 0. A rAF pass re-applies it once flex layout settles.
|
|
16929
|
+
*/
|
|
16930
|
+
renderPreservingScroll() {
|
|
16931
|
+
const e = this.shadow.querySelector(".scroll")?.scrollTop ?? 0;
|
|
16932
|
+
this.render();
|
|
16933
|
+
const t = this.shadow.querySelector(".scroll");
|
|
16934
|
+
if (!t) return;
|
|
16935
|
+
const r = () => {
|
|
16936
|
+
t.scrollHeight, t.scrollTop = e;
|
|
16937
|
+
};
|
|
16938
|
+
r(), typeof requestAnimationFrame == "function" && requestAnimationFrame(r);
|
|
16939
|
+
}
|
|
16912
16940
|
// ── validation ──────────────────────────────────────────────────────
|
|
16913
16941
|
findField(e) {
|
|
16914
16942
|
let t;
|
|
@@ -17001,8 +17029,33 @@ class Pf extends HTMLElement {
|
|
|
17001
17029
|
${n}
|
|
17002
17030
|
</div>` : ""}<div class="entry-body">${o}</div></section>`;
|
|
17003
17031
|
}
|
|
17032
|
+
/**
|
|
17033
|
+
* Conditional fields (`showWhen` / `hideWhen`) are always rendered, inside
|
|
17034
|
+
* a `display: contents` wrapper whose `hidden` attribute tracks the rule.
|
|
17035
|
+
* Typing in a controlling field then only flips `hidden` via
|
|
17036
|
+
* `syncConditionalVisibility()` — the DOM is not rebuilt, so the input
|
|
17037
|
+
* being typed in keeps focus and caret (e.g. the 80G online amount
|
|
17038
|
+
* revealing Transaction Ref No. + IFSC after the first digit).
|
|
17039
|
+
*/
|
|
17004
17040
|
renderField(e, t, r) {
|
|
17005
|
-
if (!
|
|
17041
|
+
if (!e.showWhen && !e.hideWhen)
|
|
17042
|
+
return this.renderFieldInner(e, t, r);
|
|
17043
|
+
const i = this.fieldVisible(e, t);
|
|
17044
|
+
return `<div class="cond" data-cond-key="${ut(`${r}.${e.id}`)}" ${i ? "" : "hidden"}>${this.renderFieldInner(e, t, r)}</div>`;
|
|
17045
|
+
}
|
|
17046
|
+
/** Flip `hidden` on conditional wrappers to match the current value. */
|
|
17047
|
+
syncConditionalVisibility() {
|
|
17048
|
+
this.getEntries().forEach((t, r) => {
|
|
17049
|
+
this.walkFields(this.schema?.fields || [], (i) => {
|
|
17050
|
+
if (!i.showWhen && !i.hideWhen) return;
|
|
17051
|
+
const n = this.shadow.querySelector(
|
|
17052
|
+
`.cond[data-cond-key="${CSS.escape(`${r}.${i.id}`)}"]`
|
|
17053
|
+
);
|
|
17054
|
+
n && (n.hidden = !this.fieldVisible(i, t));
|
|
17055
|
+
});
|
|
17056
|
+
});
|
|
17057
|
+
}
|
|
17058
|
+
renderFieldInner(e, t, r) {
|
|
17006
17059
|
if (e.type === "group") {
|
|
17007
17060
|
const d = e, p = d.fields.map((b) => this.renderField(b, t, r)).join("");
|
|
17008
17061
|
if (!d.collapsible)
|
|
@@ -17017,7 +17070,7 @@ class Pf extends HTMLElement {
|
|
|
17017
17070
|
const h = this.collapsed.has(g);
|
|
17018
17071
|
return `
|
|
17019
17072
|
<fieldset class="group group--collapsible ${h ? "is-collapsed" : ""}">
|
|
17020
|
-
<button type="button" class="group-toggle" data-action="toggle-group" data-group-key="${
|
|
17073
|
+
<button type="button" class="group-toggle" data-action="toggle-group" data-group-key="${ut(g)}" aria-expanded="${!h}">
|
|
17021
17074
|
<span class="group-title">${Ve(d.title ?? "")}</span>
|
|
17022
17075
|
<span class="group-chevron" aria-hidden="true"></span>
|
|
17023
17076
|
</button>
|
|
@@ -17037,25 +17090,25 @@ class Pf extends HTMLElement {
|
|
|
17037
17090
|
const i = t[e.id], n = this.fieldHtmlId(e, r), o = `data-field-id="${e.id}" data-entry-index="${r}"`;
|
|
17038
17091
|
if (e.type === "text") {
|
|
17039
17092
|
const a = e, l = a.readOnly ? "input--readonly" : "", c = a.readOnly ? "disabled" : "";
|
|
17040
|
-
return `<input type="text" class="input ${l}" id="${n}" ${o} value="${
|
|
17093
|
+
return `<input type="text" class="input ${l}" id="${n}" ${o} value="${ut(String(i ?? ""))}" placeholder="${ut(a.placeholder ?? "")}" ${a.maxLength ? `maxlength="${a.maxLength}"` : ""} ${c}/>`;
|
|
17041
17094
|
}
|
|
17042
17095
|
if (e.type === "textarea") {
|
|
17043
17096
|
const a = e;
|
|
17044
|
-
return `<textarea class="input textarea" id="${n}" ${o} rows="${a.rows ?? 4}" placeholder="${
|
|
17097
|
+
return `<textarea class="input textarea" id="${n}" ${o} rows="${a.rows ?? 4}" placeholder="${ut(a.placeholder ?? "")}" ${a.maxLength ? `maxlength="${a.maxLength}"` : ""}>${Ve(String(i ?? ""))}</textarea>`;
|
|
17045
17098
|
}
|
|
17046
17099
|
if (e.type === "number") {
|
|
17047
17100
|
const a = e, l = a.currency ? `<span class="prefix">${Ve(a.currency)}</span>` : "", c = a.readOnly ? "disabled" : "", u = a.readOnly ? "input--readonly" : "";
|
|
17048
17101
|
return `
|
|
17049
17102
|
<div class="input-with-prefix">
|
|
17050
17103
|
${l}
|
|
17051
|
-
<input type="number" class="input ${u}" id="${n}" ${o} value="${
|
|
17104
|
+
<input type="number" class="input ${u}" id="${n}" ${o} value="${ut(String(i ?? ""))}" placeholder="${ut(a.placeholder ?? "")}" ${a.min !== void 0 ? `min="${a.min}"` : ""} ${a.max !== void 0 ? `max="${a.max}"` : ""} ${c}/>
|
|
17052
17105
|
</div>`;
|
|
17053
17106
|
}
|
|
17054
17107
|
if (e.type === "date")
|
|
17055
|
-
return `<input type="date" class="input" id="${n}" ${o} value="${
|
|
17108
|
+
return `<input type="date" class="input" id="${n}" ${o} value="${ut(String(i ?? ""))}"/>`;
|
|
17056
17109
|
if (e.type === "select") {
|
|
17057
17110
|
const a = e, l = a.options.map(
|
|
17058
|
-
(c) => `<option value="${
|
|
17111
|
+
(c) => `<option value="${ut(c.value)}" ${i === c.value ? "selected" : ""}>${Ve(c.label)}</option>`
|
|
17059
17112
|
).join("");
|
|
17060
17113
|
return `<select class="input" id="${n}" ${o}><option value="">${Ve(a.placeholder ?? "Select…")}</option>${l}</select>`;
|
|
17061
17114
|
}
|
|
@@ -17066,7 +17119,7 @@ class Pf extends HTMLElement {
|
|
|
17066
17119
|
const c = i === l.value ? "checked" : "", u = `${n}-${l.value}`;
|
|
17067
17120
|
return `
|
|
17068
17121
|
<label class="radio-item ${c ? "selected" : ""}" for="${u}">
|
|
17069
|
-
<input type="radio" id="${u}" ${o} name="${n}" value="${
|
|
17122
|
+
<input type="radio" id="${u}" ${o} name="${n}" value="${ut(l.value)}" ${c}/>
|
|
17070
17123
|
<span class="radio-label">${Ve(l.label)}</span>
|
|
17071
17124
|
</label>`;
|
|
17072
17125
|
}).join("")}
|
|
@@ -17116,12 +17169,12 @@ class Pf extends HTMLElement {
|
|
|
17116
17169
|
}
|
|
17117
17170
|
a = t.value;
|
|
17118
17171
|
}
|
|
17119
|
-
o === "input" ? this.setEntryNoRender(i, r, a) : this.setEntry(i, r, a);
|
|
17172
|
+
o === "input" ? (this.setEntryNoRender(i, r, a), this.syncConditionalVisibility()) : this.setEntry(i, r, a);
|
|
17120
17173
|
});
|
|
17121
17174
|
}), this.shadow.querySelector('[data-action="save"]')?.addEventListener("click", () => this.handleSubmit()), this.shadow.querySelector('[data-action="add-entry"]')?.addEventListener("click", () => this.addEntry()), this.shadow.querySelectorAll('[data-action="toggle-group"]').forEach((e) => {
|
|
17122
17175
|
e.addEventListener("click", () => {
|
|
17123
17176
|
const t = e.dataset.groupKey;
|
|
17124
|
-
this.collapsed.has(t) ? this.collapsed.delete(t) : this.collapsed.add(t), this.
|
|
17177
|
+
this.collapsed.has(t) ? this.collapsed.delete(t) : this.collapsed.add(t), this.renderPreservingScroll();
|
|
17125
17178
|
});
|
|
17126
17179
|
}), this.shadow.querySelectorAll('[data-action="remove-entry"]').forEach((e) => {
|
|
17127
17180
|
e.addEventListener("click", () => {
|
|
@@ -17149,6 +17202,14 @@ class Pf extends HTMLElement {
|
|
|
17149
17202
|
padding: 16px 18px 8px;
|
|
17150
17203
|
display: flex; flex-direction: column; gap: 14px;
|
|
17151
17204
|
}
|
|
17205
|
+
/* Flex children with overflow:hidden get an automatic min-height of 0
|
|
17206
|
+
and can be squashed (clipping fields) instead of letting .scroll
|
|
17207
|
+
scroll. Keep every card at its natural height. */
|
|
17208
|
+
.scroll > *, .entries > *, .entry-body > * { flex-shrink: 0; }
|
|
17209
|
+
/* Conditional-field wrapper: layout-transparent when shown, gone when
|
|
17210
|
+
hidden, so parent flex gaps behave as if it were not there. */
|
|
17211
|
+
.cond { display: contents; }
|
|
17212
|
+
.cond[hidden] { display: none; }
|
|
17152
17213
|
.section-card {
|
|
17153
17214
|
display: flex; align-items: center; gap: 12px;
|
|
17154
17215
|
padding: 13px 15px;
|
|
@@ -17340,7 +17401,7 @@ class Pf extends HTMLElement {
|
|
|
17340
17401
|
`;
|
|
17341
17402
|
}
|
|
17342
17403
|
}
|
|
17343
|
-
function
|
|
17404
|
+
function ut(s) {
|
|
17344
17405
|
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
17345
17406
|
}
|
|
17346
17407
|
function Ve(s) {
|