|
|
|
|
Quelle a2ui.bundle.js
Sprache: JAVA
|
|
var __defProp$2 = Object.defineProperty;
var __exportAll = (all, no_symbols) => {
let target = {};
for ( var name in all) __defProp$2(target, name, {
get: all[name],
enumerable: true
});
if (!no_symbols) __defProp$2(target, Symbol.toStringTag, { value: "Module" });
return target;
};
/**
* @license
* Copyright 2019 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const t$6 = globalThis, e$13 = t$6.ShadowRoot && ( void 0 === t$6.ShadyCSS || t$6.ShadyCSS.nativ eShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, s$8 = Symbol(), o$14 = /* @__PURE__ */ new WeakMap();
var n$12 = class {
constructor(t, e, o) {
if (this._$cssResult$ = !0, o !== s$8) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
this.cssText = t, this.t = e;
}
get styleSheet() {
let t = this.o;
const s = this.t;
if (e$13 && void 0 === t) {
const e = void 0 !== s && 1 === s.length;
e && (t = o$14.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && o$14.set(s, t));
}
return t;
}
toString() {
return this.cssText;
}
};
const r$11 = (t) => new n$12("string" == typeof t ? t : t + "", void 0, s$8), i$9 = (t, ...e) => {
return new n$12(1 === t.length ? t[0] : e.reduce((e, s, o) => e + ((t) => {
if (!0 === t._$cssResult$) return t.cssText;
if ("number" == typeof t) return t;
throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
})(s) + t[o + 1], t[0]), t, s$8);
}, S$1 = (s, o) => {
if (e$13) s.adoptedStyleSheets = o.map((t) => t instanceof CSSStyleSheet ? t : t.styleSheet);
else for (const e of o) {
const o = document.createElement("style"), n = t$6.litNonce;
void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, s.appendChild(o);
}
}, c$6 = e$13 ? (t) => t : (t) => t instanceof CSSStyleSheet ? ((t) => {
let e = "";
for (const s of t.cssRules) e += s.cssText;
return r$11(e);
})(t) : t;
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
toAttribute(t, s) {
switch (s) {
case Boolean:
t = t ? l$4 : null;
break;
case Object:
case Array: t = null == t ? t : JSON.stringify(t);
}
return t;
},
fromAttribute(t, s) {
let i = t;
switch (s) {
case Boolean:
i = null !== t;
break;
case Number:
i = null === t ? null : Number(t);
break;
case Object:
case Array: try {
i = JSON.parse(t);
} catch (t) {
i = null;
}
}
return i;
}
}, f$3 = (t, s) => !i$8(t, s), b$1 = {
attribute: !0,
type: String,
converter: u$3,
reflect: !1,
useDefault: !1,
hasChanged: f$3
};
Symbol.metadata ??= Symbol("metadata"), a$1.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
var y$1 = class extends HTMLElement {
static addInitializer(t) {
this._$Ei(), (this.l ??= []).push(t);
}
static get observedAttributes() {
return this.finalize(), this._$Eh && [...this._$Eh.keys()];
}
static createProperty(t, s = b$1) {
if (s.state && (s.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(t) && ((s = Object.create(s)).wrapped = !0), this.elementProperties.set(t, s), !s.noAccessor) {
const i = Symbol(), h = this.getPropertyDescriptor(t, i, s);
void 0 !== h && e$12(this.prototype, t, h);
}
}
static getPropertyDescriptor(t, s, i) {
const { get: e, set: r } = h$6(this.prototype, t) ?? {
get() {
return this[s];
},
set(t) {
this[s] = t;
}
};
return {
get: e,
set(s) {
const h = e?.call(this);
r?.call(this, s), this.requestUpdate(t, h, i);
},
configurable: !0,
enumerable: !0
};
}
static getPropertyOptions(t) {
return this.elementProperties.get(t) ?? b$1;
}
static _$Ei() {
if (this.hasOwnProperty(d$2("elementProperties"))) return;
const t = n$11(this);
t.finalize(), void 0 !== t.l && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
}
static finalize() {
if (this.hasOwnProperty(d$2("finalized"))) return;
if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(d$2("properties"))) {
const t = this.properties, s = [...r$10(t), ...o$13(t)];
for (const i of s) this.createProperty(i, t[i]);
}
const t = this[Symbol.metadata];
if (null !== t) {
const s = litPropertyMetadata.get(t);
if (void 0 !== s) for (const [t, i] of s) this.elementProperties.set(t, i);
}
this._$Eh = /* @__PURE__ */ new Map();
for (const [t, s] of this.elementProperties) {
const i = this._$Eu(t, s);
void 0 !== i && this._$Eh.set(i, t);
}
this.elementStyles = this.finalizeStyles(this.styles);
}
static finalizeStyles(s) {
const i = [];
if (Array.isArray(s)) {
const e = new Set(s.flat(Infinity).reverse());
for (const s of e) i.unshift(c$6(s));
} else void 0 !== s && i.push(c$6(s));
return i;
}
static _$Eu(t, s) {
const i = s.attribute;
return !1 === i ? void 0 : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : void 0;
}
constructor() {
super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
}
_$Ev() {
this._$ES = new Promise((t) => this.enableUpdating = t), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t) => t(this));
}
addController(t) {
(this._$EO ??= /* @__PURE__ */ new Set()).add(t), void 0 !== this.renderRoot && this.isConnected && t.hostConnected?.();
}
removeController(t) {
this._$EO?.delete(t);
}
_$E_() {
const t = /* @__PURE__ */ new Map(), s = this.constructor.elementProperties;
for (const i of s.keys()) this.hasOwnProperty(i) && (t.set(i, this[i]), delete this[i]);
t.size > 0 && (this._$Ep = t);
}
createRenderRoot() {
const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
return S$1(t, this.constructor.elementStyles), t;
}
connectedCallback() {
this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((t) => t.hostConnected?.());
}
enableUpdating(t) {}
disconnectedCallback() {
this._$EO?.forEach((t) => t.hostDisconnected?.());
}
attributeChangedCallback(t, s, i) {
this._$AK(t, i);
}
_$ET(t, s) {
const i = this.constructor.elementProperties.get(t), e = this.constructor._$Eu(t, i);
if (void 0 !== e && !0 === i.reflect) {
const h = (void 0 !== i.converter?.toAttribute ? i.converter : u$3).toAttribute(s, i.type);
this._$Em = t, null == h ? this.removeAttribute(e) : this.setAttribute(e, h), this._$Em = null;
}
}
_$AK(t, s) {
const i = this.constructor, e = i._$Eh.get(t);
if (void 0 !== e && this._$Em !== e) {
const t = i.getPropertyOptions(e), h = "function" == typeof t.converter ? { fromAttribute: t.converter } : void 0 !== t.converter?.fromAttribute ? t.converter : u$3;
this._$Em = e;
const r = h.fromAttribute(s, t.type);
this[e] = r ?? this._$Ej?.get(e) ?? r, this._$Em = null;
}
}
requestUpdate(t, s, i, e = !1, h) {
if (void 0 !== t) {
const r = this.constructor;
if (!1 === e && (h = this[t]), i ??= r.getPropertyOptions(t), !((i.hasChanged ?? f$3)(h, s) || i.useDefault && i.reflect && h === this._$Ej?.get(t) && !this.hasAttribute(r._$Eu(t, i)))) return;
this.C(t, s, i);
}
!1 === this.isUpdatePending && (this._$ES = this._$EP());
}
C(t, s, { useDefault: i, reflect: e, wrapped: h }, r) {
i && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t) && (this._$Ej.set(t, r ?? s ?? this[t]), !0 !== h || void 0 !== r) || (this._$AL.has(t) || (this.hasUpdated || i || (s = void 0), this._$AL.set(t, s)), !0 === e && this._$Em !== t && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t));
}
async _$EP() {
this.isUpdatePending = !0;
try {
await this._$ES;
} catch (t) {
Promise.reject(t);
}
const t = this.scheduleUpdate();
return null != t && await t, !this.isUpdatePending;
}
scheduleUpdate() {
return this.performUpdate();
}
performUpdate() {
if (!this.isUpdatePending) return;
if (!this.hasUpdated) {
if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
for (const [t, s] of this._$Ep) this[t] = s;
this._$Ep = void 0;
}
const t = this.constructor.elementProperties;
if (t.size > 0) for (const [s, i] of t) {
const { wrapped: t } = i, e = this[s];
!0 !== t || this._$AL.has(s) || void 0 === e || this.C(s, void 0, i, e);
}
}
let t = !1;
const s = this._$AL;
try {
t = this.shouldUpdate(s), t ? (this.willUpdate(s), this._$EO?.forEach((t) => t.hostUpdate?.()), this.update(s)) : this._$EM();
} catch (s) {
throw t = !1, this._$EM(), s;
}
t && this._$AE(s);
}
willUpdate(t) {}
_$AE(t) {
this._$EO?.forEach((t) => t.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
}
_$EM() {
this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
}
get updateComplete() {
return this.getUpdateComplete();
}
getUpdateComplete() {
return this._$ES;
}
shouldUpdate(t) {
return !0;
}
update(t) {
this._$Eq &&= this._$Eq.forEach((t) => this._$ET(t, this[t])), this._$EM();
}
updated(t) {}
firstUpdated(t) {}
};
y$1.elementStyles = [], y$1.shadowRootOptions = { mode: "open" }, y$1[d$2("elementProperties")] = /* @__PURE__ */ new Map(), y$1[d$2("finalized")] = /* @__PURE__ */ new Map(), p$2?.({ ReactiveElement: y$1 }), (a$1.reactiveElementVersions ??= []).push("2.1.2");
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const t$5 = globalThis, i$7 = (t) => t, s$7 = t$5.trustedTypes, e$11 = s$7 ? s$7.createPolicy("lit-html", { createHTML: (t) => t }) : void 0, h$5 = "$lit$", o$12 = `lit$${Math.random().toFixed(9).slice(2)}$`, n$10 = "?" + o$12, r$9 = `<${n$10}>`, l$3 = document, c$4 = () => l$3.createComment(""), a = (t) => null === t || "object" != typeof t && "function" != typeof t, u$2 = Array.isArray, d$1 = (t) => u$2(t) || "function" == typeof t?.[Symbol.iterator], f$2 = "[ \n\f\r]", v$1 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m$2 = />/g, p$1 = RegExp(`>|${f$2}(?:([^\\s"'>=/]+)(${f$2}*=${f$2}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, x = (t) => (i, ...s) => ({
_$litType$: t,
strings: i,
values: s
}), b = x(1), w = x(2);
x(3);
const E = Symbol.for("lit-noChange"), A = Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), P = l$3.createTreeWalker(l$3, 129);
function V(t, i) {
if (!u$2(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
return void 0 !== e$11 ? e$11.createHTML(i) : i;
}
const N = (t, i) => {
const s = t.length - 1, e = [];
let n, l = 2 === i ? "<svg>" : 3 === i ? "<math>" : "", c = v$1;
for (let i = 0; i < s; i++) {
const s = t[i];
let a, u, d = -1, f = 0;
for (; f < s.length && (c.lastIndex = f, u = c.exec(s), null !== u);) f = c.lastIndex, c === v$1 ? "!--" === u[1] ? c = _ : void 0 !== u[1] ? c = m$2 : void 0 !== u[2] ? (y.test(u[2]) && (n = RegExp("</" + u[2], "g")), c = p$1) : void 0 !== u[3] && (c = p$1) : c === p$1 ? ">" === u[0] ? (c = n ?? v$1, d = -1) : void 0 === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = void 0 === u[3] ? p$1 : "\"" === u[3] ? $ : g) : c === $ || c === g ? c = p$1 : c === _ || c === m$2 ? c = v$1 : (c = p$1, n = void 0);
const x = c === p$1 && t[i + 1].startsWith("/>") ? " " : "";
l += c === v$1 ? s + r$9 : d >= 0 ? (e.push(a), s.slice(0, d) + h$5 + s.slice(d) + o$12 + x) : s + o$12 + (-2 === d ? i : x);
}
return [V(t, l + (t[s] || "<?>") + (2 === i ? "</svg>" : 3 === i ? "</math>" : "")), e];
};
var S = class S {
constructor({ strings: t, _$litType$: i }, e) {
let r;
this.parts = [];
let l = 0, a = 0;
const u = t.length - 1, d = this.parts, [f, v] = N(t, i);
if (this.el = S.createElement(f, e), P.currentNode = this.el.content, 2 === i || 3 === i) {
const t = this.el.content.firstChild;
t.replaceWith(...t.childNodes);
}
for (; null !== (r = P.nextNode()) && d.length < u;) {
if (1 === r.nodeType) {
if (r.hasAttributes()) for (const t of r.getAttributeNames()) if (t.endsWith(h$5)) {
const i = v[a++], s = r.getAttribute(t).split(o$12), e = /([.?@])?(.*)/.exec(i);
d.push({
type: 1,
index: l,
name: e[2],
strings: s,
ctor: "." === e[1] ? I : "?" === e[1] ? L : "@" === e[1] ? z : H
}), r.removeAttribute(t);
} else t.startsWith(o$12) && (d.push({
type: 6,
index: l
}), r.removeAttribute(t));
if (y.test(r.tagName)) {
const t = r.textContent.split(o$12), i = t.length - 1;
if (i > 0) {
r.textContent = s$7 ? s$7.emptyScript : "";
for (let s = 0; s < i; s++) r.append(t[s], c$4()), P.nextNode(), d.push({
type: 2,
index: ++l
});
r.append(t[i], c$4());
}
}
} else if (8 === r.nodeType) if (r.data === n$10) d.push({
type: 2,
index: l
});
else {
let t = -1;
for (; -1 !== (t = r.data.indexOf(o$12, t + 1));) d.push({
type: 7,
index: l
}), t += o$12.length - 1;
}
l++;
}
}
static createElement(t, i) {
const s = l$3.createElement("template");
return s.innerHTML = t, s;
}
};
function M$1(t, i, s = t, e) {
if (i === E) return i;
let h = void 0 !== e ? s._$Co?.[e] : s._$Cl;
const o = a(i) ? void 0 : i._$litDirective$;
return h?.constructor !== o && (h?._$AO?.(!1), void 0 === o ? h = void 0 : (h = new o(t), h._$AT(t, s, e)), void 0 !== e ? (s._$Co ??= [])[e] = h : s._$Cl = h), void 0 !== h && (i = M$1(t, h._$AS(t, i.values), h, e)), i;
}
var R = class {
constructor(t, i) {
this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
}
get parentNode() {
return this._$AM.parentNode;
}
get _$AU() {
return this._$AM._$AU;
}
u(t) {
const { el: { content: i }, parts: s } = this._$AD, e = (t?.creationScope ?? l$3).importNode(i, !0);
P.currentNode = e;
let h = P.nextNode(), o = 0, n = 0, r = s[0];
for (; void 0 !== r;) {
if (o === r.index) {
let i;
2 === r.type ? i = new k(h, h.nextSibling, this, t) : 1 === r.type ? i = new r.ctor(h, r.name, r.strings, this, t) : 6 === r.type && (i = new Z(h, this, t)), this._$AV.push(i), r = s[++n];
}
o !== r?.index && (h = P.nextNode(), o++);
}
return P.currentNode = l$3, e;
}
p(t) {
let i = 0;
for (const s of this._$AV) void 0 !== s && (void 0 !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
}
};
var k = class k {
get _$AU() {
return this._$AM?._$AU ?? this._$Cv;
}
constructor(t, i, s, e) {
this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = e?.isConnected ?? !0;
}
get parentNode() {
let t = this._$AA.parentNode;
const i = this._$AM;
return void 0 !== i && 11 === t?.nodeType && (t = i.parentNode), t;
}
get startNode() {
return this._$AA;
}
get endNode() {
return this._$AB;
}
_$AI(t, i = this) {
t = M$1(this, t, i), a(t) ? t === A || null == t || "" === t ? (this._$AH !== A && this._$AR(), this._$AH = A) : t !== this._$AH && t !== E && this._(t) : void 0 !== t._$litType$ ? this.$(t) : void 0 !== t.nodeType ? this.T(t) : d$1(t) ? this.k(t) : this._(t);
}
O(t) {
return this._$AA.parentNode.insertBefore(t, this._$AB);
}
T(t) {
this._$AH !== t && (this._$AR(), this._$AH = this.O(t));
}
_(t) {
this._$AH !== A && a(this._$AH) ? this._$AA.nextSibling.data = t : this.T(l$3.createTextNode(t)), this._$AH = t;
}
$(t) {
const { values: i, _$litType$: s } = t, e = "number" == typeof s ? this._$AC(t) : (void 0 === s.el && (s.el = S.createElement(V(s.h, s.h[0]), this.options)), s);
if (this._$AH?._$AD === e) this._$AH.p(i);
else {
const t = new R(e, this), s = t.u(this.options);
t.p(i), this.T(s), this._$AH = t;
}
}
_$AC(t) {
let i = C.get(t.strings);
return void 0 === i && C.set(t.strings, i = new S(t)), i;
}
k(t) {
u$2(this._$AH) || (this._$AH = [], this._$AR());
const i = this._$AH;
let s, e = 0;
for (const h of t) e === i.length ? i.push(s = new k(this.O(c$4()), this.O(c$4()), this, this.options)) : s = i[e], s._$AI(h), e++;
e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
}
_$AR(t = this._$AA.nextSibling, s) {
for (this._$AP?.(!1, !0, s); t !== this._$AB;) {
const s = i$7(t).nextSibling;
i$7(t).remove(), t = s;
}
}
setConnected(t) {
void 0 === this._$AM && (this._$Cv = t, this._$AP?.(t));
}
};
var H = class {
get tagName() {
return this.element.tagName;
}
get _$AU() {
return this._$AM._$AU;
}
constructor(t, i, s, e, h) {
this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(/* @__PURE__ */ new String()), this.strings = s) : this._$AH = A;
}
_$AI(t, i = this, s, e) {
const h = this.strings;
let o = !1;
if (void 0 === h) t = M$1(this, t, i, 0), o = !a(t) || t !== this._$AH && t !== E, o && (this._$AH = t);
else {
const e = t;
let n, r;
for (t = h[0], n = 0; n < h.length - 1; n++) r = M$1(this, e[s + n], i, n), r === E && (r = this._$AH[n]), o ||= !a(r) || r !== this._$AH[n], r === A ? t = A : t !== A && (t += (r ?? "") + h[n + 1]), this._$AH[n] = r;
}
o && !e && this.j(t);
}
j(t) {
t === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
}
};
var I = class extends H {
constructor() {
super(...arguments), this.type = 3;
}
j(t) {
this.element[this.name] = t === A ? void 0 : t;
}
};
var L = class extends H {
constructor() {
super(...arguments), this.type = 4;
}
j(t) {
this.element.toggleAttribute(this.name, !!t && t !== A);
}
};
var z = class extends H {
constructor(t, i, s, e, h) {
super(t, i, s, e, h), this.type = 5;
}
_$AI(t, i = this) {
if ((t = M$1(this, t, i, 0) ?? A) === E) return;
const s = this._$AH, e = t === A && s !== A || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, h = t !== A && (s === A || e);
e && this.element.removeEventListener(this.name, this, s), h && this.element.addEventListener(this.name, this, t), this._$AH = t;
}
handleEvent(t) {
"function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
}
};
var Z = class {
constructor(t, i, s) {
this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
}
get _$AU() {
return this._$AM._$AU;
}
_$AI(t) {
M$1(this, t);
}
};
const j$1 = {
M: h$5,
P: o$12,
A: n$10,
C: 1,
L: N,
R,
D: d$1,
V: M$1,
I: k,
H,
N: L,
U: z,
B: I,
F: Z
}, B = t$5.litHtmlPolyfillSupport;
B?.(S, k), (t$5.litHtmlVersions ??= []).push("3.3.2");
const D = (t, i, s) => {
const e = s?.renderBefore ?? i;
let h = e._$litPart$;
if (void 0 === h) {
const t = s?.renderBefore ?? null;
e._$litPart$ = h = new k(i.insertBefore(c$4(), t), t, void 0, s ?? {});
}
return h._$AI(t), h;
};
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
var i$6 = class extends y$1 {
constructor() {
super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
}
createRenderRoot() {
const t = super.createRenderRoot();
return this.renderOptions.renderBefore ??= t.firstChild, t;
}
update(t) {
const r = this.render();
this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = D(r, this.renderRoot, this.renderOptions);
}
connectedCallback() {
super.connectedCallback(), this._$Do?.setConnected(!0);
}
disconnectedCallback() {
super.disconnectedCallback(), this._$Do?.setConnected(!1);
}
render() {
return E;
}
};
i$6._$litElement$ = !0, i$6["finalized"] = !0, s$6.litElementHydrateSupport?.({ LitElement: i$6 });
const o$11 = s$6.litElementPolyfillSupport;
o$11?.({ LitElement: i$6 });
(s$6.litElementVersions ??= []).push("4.2.2");
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const t$4 = {
ATTRIBUTE: 1,
CHILD: 2,
PROPERTY: 3,
BOOLEAN_ATTRIBUTE: 4,
EVENT: 5,
ELEMENT: 6
}, e$10 = (t) => (...e) => ({
_$litDirective$: t,
values: e
});
var i$5 = class {
constructor(t) {}
get _$AU() {
return this._$AM._$AU;
}
_$AT(t, e, i) {
this._$Ct = t, this._$AM = e, this._$Ci = i;
}
_$AS(t, e) {
return this.update(t, e);
}
update(t, e) {
return this.render(...e);
}
};
/**
* @license
* Copyright 2020 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const l = o._$AA.parentNode, d = void 0 === n ? o._$AB : n._$AA;
if (void 0 === e) e = new t$3(l.insertBefore(s$5(), d), l.insertBefore(s$5(), d), o, o.options);
else {
const t = e._$AB.nextSibling, n = e._$AM, c = n !== o;
if (c) {
let t;
e._$AQ?.(o), e._$AM = o, void 0 !== e._$AP && (t = o._$AU) !== n._$AU && e._$AP(t);
}
if (t !== d || c) {
let o = e._$AA;
for (; o !== t;) {
const t = i$4(o).nextSibling;
i$4(l).insertBefore(o, d), o = t;
}
}
}
return e;
}, u$1 = (o, t, i = o) => (o._$AI(t, i), o), m$1 = {}, p = (o, t = m$1) => o._$AH = t, M = (o) => o._$AH, h$4 = (o) => {
o._$AR(), o._$AA.remove();
};
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const u = (e, s, t) => {
const r = /* @__PURE__ */ new Map();
for (let l = s; l <= t; l++) r.set(e[l], l);
return r;
}, c$2 = e$10(class extends i$5 {
constructor(e) {
if (super(e), e.type !== t$4.CHILD) throw Error("repeat() can only be used in text expressions");
}
dt(e, s, t) {
let r;
void 0 === t ? t = s : void 0 !== s && (r = s);
const l = [], o = [];
let i = 0;
for (const s of e) l[i] = r ? r(s, i) : i, o[i] = t(s, i), i++;
return {
values: o,
keys: l
};
}
render(e, s, t) {
return this.dt(e, s, t).values;
}
update(s, [t, r, c]) {
const d = M(s), { values: p$3, keys: a } = this.dt(t, r, c);
if (!Array.isArray(d)) return this.ut = a, p$3;
const h = this.ut ??= [], v$2 = [];
let m, y, x = 0, j = d.length - 1, k = 0, w = p$3.length - 1;
for (; x <= j && k <= w;) if (null === d[x]) x++;
else if (null === d[j]) j--;
else if (h[x] === a[k]) v$2[k] = u$1(d[x], p$3[k]), x++, k++;
else if (h[j] === a[w]) v$2[w] = u$1(d[j], p$3[w]), j--, w--;
else if (h[x] === a[w]) v$2[w] = u$1(d[x], p$3[w]), v(s, v$2[w + 1], d[x]), x++, w--;
else if (h[j] === a[k]) v$2[k] = u$1(d[j], p$3[k]), v(s, d[x], d[j]), j--, k++;
else if (void 0 === m && (m = u(a, k, w), y = u(h, x, j)), m.has(h[x])) if (m.has(h[j])) {
const e = y.get(a[k]), t = void 0 !== e ? d[e] : null;
if (null === t) {
const e = v(s, d[x]);
u$1(e, p$3[k]), v$2[k] = e;
} else v$2[k] = u$1(t, p$3[k]), v(s, d[x], t), d[e] = null;
k++;
} else h$4(d[j]), j--;
else h$4(d[x]), x++;
for (; k <= w;) {
const e = v(s, v$2[w + 1]);
u$1(e, p$3[k]), v$2[k++] = e;
}
for (; x <= j;) {
const e = d[x++];
null !== e && h$4(e);
}
return this.ut = a, p(s, v$2), E;
}
});
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
var s$4 = class extends Event {
constructor(s, t, e, o) {
super("context-request", {
bubbles: !0,
composed: !0
}), this.context = s, this.contextTarget = t, this.callback = e, this.subscribe = o ?? !1;
}
};
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
function n$7(n) {
return n;
}
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
constructor(t, s, i, h) {
if (this.subscribe = !1, this.provided = !1, this.value = void 0, this.t = (t, s) => {
this.unsubscribe && (this.unsubscribe !== s && (this.provided = !1, this.unsubscribe()), this.subscribe || this.unsubscribe()), this.value = t, this.host.requestUpdate(), this.provided && !this.subscribe || (this.provided = !0, this.callback && this.callback(t, s)), this.unsubscribe = s;
}, this.host = t, void 0 !== s.context) {
const t = s;
this.context = t.context, this.callback = t.callback, this.subscribe = t.subscribe ?? !1;
} else this.context = s, this.callback = i, this.subscribe = h ?? !1;
this.host.addController(this);
}
hostConnected() {
this.dispatchRequest();
}
hostDisconnected() {
this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0);
}
dispatchRequest() {
this.host.dispatchEvent(new s$4(this.context, this.host, this.t, this.subscribe));
}
};
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
var s$2 = class {
get value() {
return this.o;
}
set value(s) {
this.setValue(s);
}
setValue(s, t = !1) {
const i = t || !Object.is(s, this.o);
this.o = s, i && this.updateObservers();
}
constructor(s) {
this.subscriptions = /* @__PURE__ */ new Map(), this.updateObservers = () => {
for (const [s, { disposer: t }] of this.subscriptions) s(this.o, t);
}, void 0 !== s && (this.value = s);
}
addCallback(s, t, i) {
if (!i) return void s(this.value);
this.subscriptions.has(s) || this.subscriptions.set(s, {
disposer: () => {
this.subscriptions.delete(s);
},
consumerHost: t
});
const { disposer: h } = this.subscriptions.get(s);
s(this.value, h);
}
clearCallbacks() {
this.subscriptions.clear();
}
};
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
constructor(t, s) {
super("context-provider", {
bubbles: !0,
composed: !0
}), this.context = t, this.contextTarget = s;
}
};
var i$3 = class extends s$2 {
constructor(s, e, i) {
super(void 0 !== e.context ? e.initialValue : i), this.onContextRequest = (t) => {
if (t.context !== this.context) return;
const s = t.contextTarget ?? t.composedPath()[0];
s !== this.host && (t.stopPropagation(), this.addCallback(t.callback, s, t.subscribe));
}, this.onProviderRequest = (s) => {
if (s.context !== this.context) return;
if ((s.contextTarget ?? s.composedPath()[0]) === this.host) return;
const e = /* @__PURE__ */ new Set();
for (const [s, { consumerHost: i }] of this.subscriptions) e.has(s) || (e.add(s), i.dispatchEvent(new s$4(this.context, i, s, !0)));
s.stopPropagation();
}, this.host = s, void 0 !== e.context ? this.context = e.context : this.context = e, this.attachListeners(), this.host.addController?.(this);
}
attachListeners() {
this.host.addEventListener("context-request", this.onContextRequest), this.host.addEventListener("context-provider", this.onProviderRequest);
}
hostConnected() {
this.host.dispatchEvent(new e$8(this.context, this.host));
}
};
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
return (o, n) => {
"object" == typeof n ? n.addInitializer((function() {
new s$3(this, {
context: c,
callback: (t) => {
o.set.call(this, t);
},
subscribe: e
});
})) : o.constructor.addInitializer(((o) => {
new s$3(o, {
context: c,
callback: (t) => {
o[n] = t;
},
subscribe: e
});
}));
};
}
const eventInit = {
bubbles: true,
cancelable: true,
composed: true
};
var StateEvent = class StateEvent extends CustomEvent {
static {
this.eventName = "a2uiaction";
}
constructor(payload) {
super(StateEvent.eventName, {
detail: payload,
...eventInit
});
this.payload = payload;
}
};
const opacityBehavior = `
&:not([disabled]) {
cursor: pointer;
opacity: var(--opacity, 0);
transition: opacity var(--speed, 0.2s) cubic-bezier(0, 0, 0.3, 1);
&:hover,
&:focus {
opacity: 1;
}
}`;
const behavior = `
${new Array(21).fill(0).map((_, idx) => {
return `.behavior-ho-${idx * 5} {
--opacity: ${idx / 20};
${opacityBehavior}
}`;
}).join("\n")}
.behavior-o-s {
overflow: scroll;
}
.behavior-o-a {
overflow: auto;
}
.behavior-o-h {
overflow: hidden;
}
.behavior-sw-n {
scrollbar-width: none;
}
`;
const border = `
${new Array(25).fill(0).map((_, idx) => {
return `
.border-bw-${idx} { border-width: ${idx}px; }
.border-btw-${idx} { border-top-width: ${idx}px; }
.border-bbw-${idx} { border-bottom-width: ${idx}px; }
.border-blw-${idx} { border-left-width: ${idx}px; }
.border-brw-${idx} { border-right-width: ${idx}px; }
.border-ow-${idx} { outline-width: ${idx}px; }
.border-br-${idx} { border-radius: ${idx * 4}px; overflow: hidden;}`;
}).join("\n")}
.border-br-50pc {
border-radius: 50%;
}
.border-bs-s {
border-style: solid;
}
`;
const shades = [
0,
5,
10,
15,
20,
25,
30,
35,
40,
50,
60,
70,
80,
90,
95,
98,
99,
100
];
function merge(...classes) {
const styles = {};
for (const clazz of classes) for (const [key, val] of Object.entries(clazz)) {
const prefix = key.split("-").with(-1, "").join("-");
const existingKeys = Object.keys(styles).filter((key) => key.startsWith(prefix));
for (const existingKey of existingKeys) delete styles[existingKey];
styles[key] = val;
}
return styles;
}
function appendToAll(target, exclusions, ...classes) {
const updatedTarget = structuredClone(target);
for (const clazz of classes) for (const key of Object.keys(clazz)) {
const prefix = key.split("-").with(-1, "").join("-");
for (const [tagName, classesToAdd] of Object.entries(updatedTarget)) {
if (exclusions.includes(tagName)) continue;
let found = false;
for (let t = 0; t < classesToAdd.length; t++) if (classesToAdd[t].startsWith(prefix)) {
found = true;
classesToAdd[t] = key;
}
if (!found) classesToAdd.push(key);
}
}
return updatedTarget;
}
function toProp(key) {
if (key.startsWith("nv")) return `--nv-${key.slice(2)}`;
return `--${key[0]}-${key.slice(1)}`;
}
const color = (src) => `
${src.map((key) => {
const inverseKey = getInverseKey(key);
return `.color-bc-${key} { border-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`;
}).join("\n")}
${src.map((key) => {
const inverseKey = getInverseKey(key);
const vals = [`.color-bgc-${key} { background-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`, `.color-bbgc-${key}::backdrop { background-color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`];
for (let o = .1; o < 1; o += .1) vals.push(`.color-bbgc-${key}_${(o * 100).toFixed(0)}::backdrop {
background-color: light-dark(oklch(from var(${toProp(key)}) l c h / calc(alpha * ${o.toFixed(1)})), oklch(from var(${toProp(inverseKey)}) l c h / calc(alpha * ${o.toFixed(1)})) );
}
`);
return vals.join("\n");
}).join("\n")}
${src.map((key) => {
const inverseKey = getInverseKey(key);
return `.color-c-${key} { color: light-dark(var(${toProp(key)}), var(${toProp(inverseKey)})); }`;
}).join("\n")}
`;
const getInverseKey = (key) => {
const match = key.match(/^([a-z]+)(\d+)$/);
if (!match) return key;
const [, prefix, shadeStr] = match;
const target = 100 - parseInt(shadeStr, 10);
return `${prefix}${shades.reduce((prev, curr) => Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev)}`;
};
const keyFactory = (prefix) => {
return shades.map((v) => `${prefix}${v}`);
};
const structuralStyles$1 = [
behavior,
border,
[
color(keyFactory("p")),
color(keyFactory("s")),
color(keyFactory("t")),
color(keyFactory("n")),
color(keyFactory("nv")),
color(keyFactory("e")),
`
.color-bgc-transparent {
background-color: transparent;
}
:host {
color-scheme: var(--color-scheme);
}
`
],
`
.g-icon {
font-family: "Material Symbols Outlined", "Google Symbols";
font-weight: normal;
font-style: normal;
font-display: optional;
font-size: 20px;
width: 1em;
height: 1em;
user-select: none;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-feature-settings: "liga";
-webkit-font-smoothing: antialiased;
overflow: hidden;
font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 48,
"ROND" 100;
&.filled {
font-variation-settings: "FILL" 1, "wght" 300, "GRAD" 0, "opsz" 48,
"ROND" 100;
}
&.filled-heavy {
font-variation-settings: "FILL" 1, "wght" 700, "GRAD" 0, "opsz" 48,
"ROND" 100;
}
}
`,
`
:host {
${new Array(16).fill(0).map((_, idx) => {
return `--g-${idx + 1}: ${(idx + 1) * 4}px;`;
}).join("\n")}
}
${new Array(49).fill(0).map((_, index) => {
const idx = index - 24;
const lbl = idx < 0 ? `n${Math.abs(idx)}` : idx.toString();
return `
.layout-p-${lbl} { --padding: ${idx * 4}px; padding: var(--padding); }
.layout-pt-${lbl} { padding-top: ${idx * 4}px; }
.layout-pr-${lbl} { padding-right: ${idx * 4}px; }
.layout-pb-${lbl} { padding-bottom: ${idx * 4}px; }
.layout-pl-${lbl} { padding-left: ${idx * 4}px; }
.layout-m-${lbl} { --margin: ${idx * 4}px; margin: var(--margin); }
.layout-mt-${lbl} { margin-top: ${idx * 4}px; }
.layout-mr-${lbl} { margin-right: ${idx * 4}px; }
.layout-mb-${lbl} { margin-bottom: ${idx * 4}px; }
.layout-ml-${lbl} { margin-left: ${idx * 4}px; }
.layout-t-${lbl} { top: ${idx * 4}px; }
.layout-r-${lbl} { right: ${idx * 4}px; }
.layout-b-${lbl} { bottom: ${idx * 4}px; }
.layout-l-${lbl} { left: ${idx * 4}px; }`;
}).join("\n")}
${new Array(25).fill(0).map((_, idx) => {
return `
.layout-g-${idx} { gap: ${idx * 4}px; }`;
}).join("\n")}
${new Array(8).fill(0).map((_, idx) => {
return `
.layout-grd-col${idx + 1} { grid-template-columns: ${"1fr ".repeat(idx + 1).trim()}; }`;
}).join("\n")}
.layout-pos-a {
position: absolute;
}
.layout-pos-rel {
position: relative;
}
.layout-dsp-none {
display: none;
}
.layout-dsp-block {
display: block;
}
.layout-dsp-grid {
display: grid;
}
.layout-dsp-iflex {
display: inline-flex;
}
.layout-dsp-flexvert {
display: flex;
flex-direction: column;
}
.layout-dsp-flexhor {
display: flex;
flex-direction: row;
}
.layout-fw-w {
flex-wrap: wrap;
}
.layout-al-fs {
align-items: start;
}
.layout-al-fe {
align-items: end;
}
.layout-al-c {
align-items: center;
}
.layout-as-n {
align-self: normal;
}
.layout-js-c {
justify-self: center;
}
.layout-sp-c {
justify-content: center;
}
.layout-sp-ev {
justify-content: space-evenly;
}
.layout-sp-bt {
justify-content: space-between;
}
.layout-sp-s {
justify-content: start;
}
.layout-sp-e {
justify-content: end;
}
.layout-ji-e {
justify-items: end;
}
.layout-r-none {
resize: none;
}
.layout-fs-c {
field-sizing: content;
}
.layout-fs-n {
field-sizing: none;
}
.layout-flx-0 {
flex: 0 0 auto;
}
.layout-flx-1 {
flex: 1 0 auto;
}
.layout-c-s {
contain: strict;
}
/** Widths **/
${new Array(10).fill(0).map((_, idx) => {
const weight = (idx + 1) * 10;
return `.layout-w-${weight} { width: ${weight}%; max-width: ${weight}%; }`;
}).join("\n")}
${new Array(16).fill(0).map((_, idx) => {
return `.layout-wp-${idx} { width: ${idx * 4}px; }`;
}).join("\n")}
/** Heights **/
${new Array(10).fill(0).map((_, idx) => {
const height = (idx + 1) * 10;
return `.layout-h-${height} { height: ${height}%; }`;
}).join("\n")}
${new Array(16).fill(0).map((_, idx) => {
return `.layout-hp-${idx} { height: ${idx * 4}px; }`;
}).join("\n")}
.layout-el-cv {
& img,
& video {
width: 100%;
height: 100%;
object-fit: cover;
margin: 0;
}
}
.layout-ar-sq {
aspect-ratio: 1 / 1;
}
.layout-ex-fb {
margin: calc(var(--padding) * -1) 0 0 calc(var(--padding) * -1);
width: calc(100% + var(--padding) * 2);
height: calc(100% + var(--padding) * 2);
}
`,
`
${new Array(21).fill(0).map((_, idx) => {
return `.opacity-el-${idx * 5} { opacity: ${idx / 20}; }`;
}).join("\n")}
`,
`
:host {
--default-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
--default-font-family-mono: "Courier New", Courier, monospace;
}
.typography-f-s {
font-family: var(--font-family, var(--default-font-family));
font-optical-sizing: auto;
font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0;
}
.typography-f-sf {
font-family: var(--font-family-flex, var(--default-font-family));
font-optical-sizing: auto;
}
.typography-f-c {
font-family: var(--font-family-mono, var(--default-font-family));
font-optical-sizing: auto;
font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0;
}
.typography-v-r {
font-variation-settings: "slnt" 0, "wdth" 100, "GRAD" 0, "ROND" 100;
}
.typography-ta-s {
text-align: start;
}
.typography-ta-c {
text-align: center;
}
.typography-fs-n {
font-style: normal;
}
.typography-fs-i {
font-style: italic;
}
.typography-sz-ls {
font-size: 11px;
line-height: 16px;
}
.typography-sz-lm {
font-size: 12px;
line-height: 16px;
}
.typography-sz-ll {
font-size: 14px;
line-height: 20px;
}
.typography-sz-bs {
font-size: 12px;
line-height: 16px;
}
.typography-sz-bm {
font-size: 14px;
line-height: 20px;
}
.typography-sz-bl {
font-size: 16px;
line-height: 24px;
}
.typography-sz-ts {
font-size: 14px;
line-height: 20px;
}
.typography-sz-tm {
font-size: 16px;
line-height: 24px;
}
.typography-sz-tl {
font-size: 22px;
line-height: 28px;
}
.typography-sz-hs {
font-size: 24px;
line-height: 32px;
}
.typography-sz-hm {
font-size: 28px;
line-height: 36px;
}
.typography-sz-hl {
font-size: 32px;
line-height: 40px;
}
.typography-sz-ds {
font-size: 36px;
line-height: 44px;
}
.typography-sz-dm {
font-size: 45px;
line-height: 52px;
}
.typography-sz-dl {
font-size: 57px;
line-height: 64px;
}
.typography-ws-p {
white-space: pre-line;
}
.typography-ws-nw {
white-space: nowrap;
}
.typography-td-none {
text-decoration: none;
}
/** Weights **/
${new Array(9).fill(0).map((_, idx) => {
const weight = (idx + 1) * 100;
return `.typography-w-${weight} { font-weight: ${weight}; }`;
}).join("\n")}
`
].flat(Infinity).join("\n");
var guards_exports = /* @__PURE__ */ __exportAll({
isComponentArrayReference: () => isComponentArrayReference,
isObject: () => isObject$1,
isPath: () => isPath,
isResolvedAudioPlayer: () => isResolvedAudioPlayer,
isResolvedButton: () => isResolvedButton,
isResolvedCard: () => isResolvedCard,
isResolvedCheckbox: () => isResolvedCheckbox,
isResolvedColumn: () => isResolvedColumn,
isResolvedDateTimeInput: () => isResolvedDateTimeInput,
isResolvedDivider: () => isResolvedDivider,
isResolvedIcon: () => isResolvedIcon,
isResolvedImage: () => isResolvedImage,
isResolvedList: () => isResolvedList,
isResolvedModal: () => isResolvedModal,
isResolvedMultipleChoice: () => isResolvedMultipleChoice,
isResolvedRow: () => isResolvedRow,
isResolvedSlider: () => isResolvedSlider,
isResolvedTabs: () => isResolvedTabs,
isResolvedText: () => isResolvedText,
isResolvedTextField: () => isResolvedTextField,
isResolvedVideo: () => isResolvedVideo,
isValueMap: () => isValueMap
});
function isValueMap(value) {
return isObject$1(value) && "key" in value;
}
function isPath(key, value) {
return key === "path" && typeof value === "string";
}
function isObject$1(value) {
return typeof value === "object" && value !== null && !Array.isArray(value);
}
function isComponentArrayReference(value) {
if (!isObject$1(value)) return false;
return "explicitList" in value || "template" in value;
}
function isStringValue(value) {
return isObject$1(value) && ("path" in value || "literal" in value && typeof value.literal === "string" || "literalString" in value);
}
function isNumberValue(value) {
return isObject$1(value) && ("path" in value || "literal" in value && typeof value.literal === "number" || "literalNumber" in value);
}
function isBooleanValue(value) {
return isObject$1(value) && ("path" in value || "literal" in value && typeof value.literal === "boolean" || "literalBoolean" in value);
}
function isAnyComponentNode(value) {
if (!isObject$1(value)) return false;
if (!("id" in value && "type" in value && "properties" in value)) return false;
return true;
}
function isResolvedAudioPlayer(props) {
return isObject$1(props) && "url" in props && isStringValue(props.url);
}
function isResolvedButton(props) {
return isObject$1(props) && "child" in props && isAnyComponentNode(props.child) && "action" in props;
}
function isResolvedCard(props) {
if (!isObject$1(props)) return false;
if (!("child" in props)) if (!("children" in props)) return false;
else return Array.isArray(props.children) && props.children.every(isAnyComponentNode);
return isAnyComponentNode(props.child);
}
function isResolvedCheckbox(props) {
return isObject$1(props) && "label" in props && isStringValue(props.label) && "value" in props && isBooleanValue(props.value);
}
function isResolvedColumn(props) {
return isObject$1(props) && "children" in props && Array.isArray(props.children) && props.children.every(isAnyComponentNode);
}
function isResolvedDateTimeInput(props) {
return isObject$1(props) && "value" in props && isStringValue(props.value);
}
function isResolvedDivider(props) {
return isObject$1(props);
}
function isResolvedImage(props) {
return isObject$1(props) && "url" in props && isStringValue(props.url);
}
function isResolvedIcon(props) {
return isObject$1(props) && "name" in props && isStringValue(props.name);
}
function isResolvedList(props) {
return isObject$1(props) && "children" in props && Array.isArray(props.children) && props.children.every(isAnyComponentNode);
}
function isResolvedModal(props) {
return isObject$1(props) && "entryPointChild" in props && isAnyComponentNode(props.entryPointChild) && "contentChild" in props && isAnyComponentNode(props.contentChild);
}
function isResolvedMultipleChoice(props) {
return isObject$1(props) && "selections" in props;
}
function isResolvedRow(props) {
return isObject$1(props) && "children" in props && Array.isArray(props.children) && props.children.every(isAnyComponentNode);
}
function isResolvedSlider(props) {
return isObject$1(props) && "value" in props && isNumberValue(props.value);
}
function isResolvedTabItem(item) {
return isObject$1(item) && "title" in item && isStringValue(item.title) && "child" in item && isAnyComponentNode(item.child);
}
function isResolvedTabs(props) {
return isObject$1(props) && "tabItems" in props && Array.isArray(props.tabItems) && props.tabItems.every(isResolvedTabItem);
}
function isResolvedText(props) {
return isObject$1(props) && "text" in props && isStringValue(props.text);
}
function isResolvedTextField(props) {
return isObject$1(props) && "label" in props && isStringValue(props.label);
}
function isResolvedVideo(props) {
return isObject$1(props) && "url" in props && isStringValue(props.url);
}
/**
* Processes and consolidates A2UIProtocolMessage objects into a structured,
* hierarchical model of UI surfaces.
*/
var A2uiMessageProcessor = class A2uiMessageProcessor {
static {
this.DEFAULT_SURFACE_ID = "@default";
}
#mapCtor = Map;
#arrayCtor = Array;
#setCtor = Set;
#objCtor = Object;
#surfaces;
constructor(opts = {
mapCtor: Map,
arrayCtor: Array,
setCtor: Set,
objCtor: Object
}) {
this.opts = opts;
this.#arrayCtor = opts.arrayCtor;
this.#mapCtor = opts.mapCtor;
this.#setCtor = opts.setCtor;
this.#objCtor = opts.objCtor;
this.#surfaces = new opts.mapCtor();
}
getSurfaces() {
return this.#surfaces;
}
clearSurfaces() {
this.#surfaces.clear();
}
processMessages(messages) {
for (const message of messages) {
if (message.beginRendering) this.#handleBeginRendering(message.beginRendering, message.beginRendering.surfaceId);
if (message.surfaceUpdate) this.#handleSurfaceUpdate(message.surfaceUpdate, message.surfaceUpdate.surfaceId);
if (message.dataModelUpdate) this.#handleDataModelUpdate(message.dataModelUpdate, message.dataModelUpdate.surfaceId);
if (message.deleteSurface) this.#handleDeleteSurface(message.deleteSurface);
}
}
/**
* Retrieves the data for a given component node and a relative path string.
* This correctly handles the special `.` path, which refers to the node's
* own data context.
*/
getData(node, relativePath, surfaceId = A2uiMessageProcessor.DEFAULT_SURFACE_ID) {
const surface = this.#getOrCreateSurface(surfaceId);
if (!surface) return null;
let finalPath;
if (relativePath === "." || relativePath === "") finalPath = node.dataContextPath ?? "/";
else finalPath = this.resolvePath(relativePath, node.dataContextPath);
return this.#getDataByPath(surface.dataModel, finalPath);
}
setData(node, relativePath, value, surfaceId = A2uiMessageProcessor.DEFAULT_SURFACE_ID) {
if (!node) {
console.warn("No component node set");
return;
}
const surface = this.#getOrCreateSurface(surfaceId);
if (!surface) return;
let finalPath;
if (relativePath === "." || relativePath === "") finalPath = node.dataContextPath ?? "/";
else finalPath = this.resolvePath(relativePath, node.dataContextPath);
this.#setDataByPath(surface.dataModel, finalPath, value);
}
resolvePath(path, dataContextPath) {
if (path.startsWith("/")) return path;
if (dataContextPath && dataContextPath !== "/") return dataContextPath.endsWith("/") ? `${dataContextPath}${path}` : `${dataContextPath}/${path}`;
return `/${path}`;
}
#parseIfJsonString(value) {
if (typeof value !== "string") return value;
const trimmedValue = value.trim();
if (trimmedValue.startsWith("{") && trimmedValue.endsWith("}") || trimmedValue.startsWith("[") && trimmedValue.endsWith("]")) try {
return JSON.parse(value);
} catch (e) {
console.warn(`Failed to parse potential JSON string: "${value.substring(0, 50)}..."`, e);
return value;
}
return value;
}
/**
* Converts a specific array format [{key: "...", value_string: "..."}, ...]
* into a standard Map. It also attempts to parse any string values that
* appear to be stringified JSON.
*/
#convertKeyValueArrayToMap(arr) {
const map = new this.#mapCtor();
for (const item of arr) {
if (!isObject$1(item) || !("key" in item)) continue;
const key = item.key;
const valueKey = this.#findValueKey(item);
if (!valueKey) continue;
let value = item[valueKey];
if (valueKey === "valueMap" && Array.isArray(value)) value = this.#convertKeyValueArrayToMap(value);
else if (typeof value === "string") value = this.#parseIfJsonString(value);
this.#setDataByPath(map, key, value);
}
return map;
}
#setDataByPath(root, path, value) {
if (Array.isArray(value) && (value.length === 0 || isObject$1(value[0]) && "key" in value[0])) if (value.length === 1 && isObject$1(value[0]) && value[0].key === ".") {
const item = value[0];
const valueKey = this.#findValueKey(item);
if (valueKey) {
value = item[valueKey];
if (valueKey === "valueMap" && Array.isArray(value)) value = this.#convertKeyValueArrayToMap(value);
else if (typeof value === "string") value = this.#parseIfJsonString(value);
} else value = this.#convertKeyValueArrayToMap(value);
} else value = this.#convertKeyValueArrayToMap(value);
const segments = this.#normalizePath(path).split("/").filter((s) => s);
if (segments.length === 0) {
if (value instanceof Map || isObject$1(value)) {
if (!(value instanceof Map) && isObject$1(value)) value = new this.#mapCtor(Object.entries(value));
root.clear();
for (const [key, v] of value.entries()) root.set(key, v);
} else console.error("Cannot set root of DataModel to a non-Map value.");
return;
}
let current = root;
for (let i = 0; i < segments.length - 1; i++) {
const segment = segments[i];
let target;
if (current instanceof Map) target = current.get(segment);
else if (Array.isArray(current) && /^\d+$/.test(segment)) target = current[parseInt(segment, 10)];
if (target === void 0 || typeof target !== "object" || target === null) {
target = new this.#mapCtor();
if (current instanceof this.#mapCtor) current.set(segment, target);
else if (Array.isArray(current)) current[parseInt(segment, 10)] = target;
}
current = target;
}
const finalSegment = segments[segments.length - 1];
const storedValue = value;
if (current instanceof this.#mapCtor) current.set(finalSegment, storedValue);
else if (Array.isArray(current) && /^\d+$/.test(finalSegment)) current[parseInt(finalSegment, 10)] = storedValue;
}
/**
* Normalizes a path string into a consistent, slash-delimited format.
* Converts bracket notation and dot notation in a two-pass.
* e.g., "bookRecommendations[0].title" -> "/bookRecommendations/0/title"
* e.g., "book.0.title" -> "/book/0/title"
*/
#normalizePath(path) {
return "/" + path.replace(/\[(\d+)\]/g, ".$1").split(".").filter((s) => s.length > 0).join("/");
}
#getDataByPath(root, path) {
const segments = this.#normalizePath(path).split("/").filter((s) => s);
let current = root;
for (const segment of segments) {
if (current === void 0 || current === null) return null;
if (current instanceof Map) current = current.get(segment);
else if (Array.isArray(current) && /^\d+$/.test(segment)) current = current[parseInt(segment, 10)];
else if (isObject$1(current)) current = current[segment];
else return null;
}
return current;
}
#getOrCreateSurface(surfaceId) {
let surface = this.#surfaces.get(surfaceId);
if (!surface) {
surface = new this.#objCtor({
rootComponentId: null,
componentTree: null,
dataModel: new this.#mapCtor(),
components: new this.#mapCtor(),
styles: new this.#objCtor()
});
this.#surfaces.set(surfaceId, surface);
}
return surface;
}
#handleBeginRendering(message, surfaceId) {
const surface = this.#getOrCreateSurface(surfaceId);
surface.rootComponentId = message.root;
surface.styles = message.styles ?? {};
this.#rebuildComponentTree(surface);
}
#handleSurfaceUpdate(message, surfaceId) {
const surface = this.#getOrCreateSurface(surfaceId);
for (const component of message.components) surface.components.set(component.id, component);
this.#rebuildComponentTree(surface);
}
#handleDataModelUpdate(message, surfaceId) {
const surface = this.#getOrCreateSurface(surfaceId);
const path = message.path ?? "/";
this.#setDataByPath(surface.dataModel, path, message.contents);
this.#rebuildComponentTree(surface);
}
#handleDeleteSurface(message) {
this.#surfaces.delete(message.surfaceId);
}
/**
* Starts at the root component of the surface and builds out the tree
* recursively. This process involves resolving all properties of the child
* components, and expanding on any explicit children lists or templates
* found in the structure.
*
* @param surface The surface to be built.
*/
#rebuildComponentTree(surface) {
if (!surface.rootComponentId) {
surface.componentTree = null;
return;
}
const visited = new this.#setCtor();
surface.componentTree = this.#buildNodeRecursive(surface.rootComponentId, surface, visited, "/", "");
}
/** Finds a value key in a map. */
#findValueKey(value) {
return Object.keys(value).find((k) => k.startsWith("value"));
}
/**
* Builds out the nodes recursively.
*/
#buildNodeRecursive(baseComponentId, surface, visited, dataContextPath, idSuffix = "") {
const fullId = `${baseComponentId}${idSuffix}`;
const { components } = surface;
if (!components.has(baseComponentId)) return null;
if (visited.has(fullId)) throw new Error(`Circular dependency for component "${fullId}".`);
visited.add(fullId);
const componentData = components.get(baseComponentId);
const componentProps = componentData.component ?? {};
const componentType = Object.keys(componentProps)[0];
const unresolvedProperties = componentProps[componentType];
const resolvedProperties = new this.#objCtor();
if (isObject$1(unresolvedProperties)) for (const [key, value] of Object.entries(unresolvedProperties)) resolvedProperties[key] = this.#resolvePropertyValue(value, surface, visited, dataContextPath, idSuffix, key);
visited.delete(fullId);
const baseNode = {
id: fullId,
dataContextPath,
weight: componentData.weight ?? "initial"
};
switch (componentType) {
case "Text":
if (!isResolvedText(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Text",
properties: resolvedProperties
});
case "Image":
if (!isResolvedImage(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Image",
properties: resolvedProperties
});
case "Icon":
if (!isResolvedIcon(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Icon",
properties: resolvedProperties
});
case "Video":
if (!isResolvedVideo(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Video",
properties: resolvedProperties
});
case "AudioPlayer":
if (!isResolvedAudioPlayer(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "AudioPlayer",
properties: resolvedProperties
});
case "Row":
if (!isResolvedRow(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Row",
properties: resolvedProperties
});
case "Column":
if (!isResolvedColumn(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Column",
properties: resolvedProperties
});
case "List":
if (!isResolvedList(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "List",
properties: resolvedProperties
});
case "Card":
if (!isResolvedCard(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Card",
properties: resolvedProperties
});
case "Tabs":
if (!isResolvedTabs(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Tabs",
properties: resolvedProperties
});
case "Divider":
if (!isResolvedDivider(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Divider",
properties: resolvedProperties
});
case "Modal":
if (!isResolvedModal(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Modal",
properties: resolvedProperties
});
case "Button":
if (!isResolvedButton(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Button",
properties: resolvedProperties
});
case "CheckBox":
if (!isResolvedCheckbox(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "CheckBox",
properties: resolvedProperties
});
case "TextField":
if (!isResolvedTextField(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "TextField",
properties: resolvedProperties
});
case "DateTimeInput":
if (!isResolvedDateTimeInput(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "DateTimeInput",
properties: resolvedProperties
});
case "MultipleChoice":
if (!isResolvedMultipleChoice(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "MultipleChoice",
properties: resolvedProperties
});
case "Slider":
if (!isResolvedSlider(resolvedProperties)) throw new Error(`Invalid data; expected ${componentType}`);
return new this.#objCtor({
...baseNode,
type: "Slider",
properties: resolvedProperties
});
default: return new this.#objCtor({
...baseNode,
type: componentType,
properties: resolvedProperties
});
}
}
/**
* Recursively resolves an individual property value. If a property indicates
* a child node (a string that matches a component ID), an explicitList of
* children, or a template, these will be built out here.
*/
#resolvePropertyValue(value, surface, visited, dataContextPath, idSuffix = "", propertyKey = null) {
const isComponentIdReferenceKey = (key) => key === "child" || key.endsWith("Child");
if (typeof value === "string" && propertyKey && isComponentIdReferenceKey(propertyKey) && surface.components.has(value)) return this.#buildNodeRecursive(value, surface, visited, dataContextPath, idSuffix);
if (isComponentArrayReference(value)) {
if (value.explicitList) return value.explicitList.map((id) => this.#buildNodeRecursive(id, surface, visited, dataContextPath, idSuffix));
if (value.template) {
const fullDataPath = this.resolvePath(value.template.dataBinding, dataContextPath);
const data = this.#getDataByPath(surface.dataModel, fullDataPath);
const template = value.template;
if (Array.isArray(data)) return data.map((_, index) => {
const newSuffix = `:${[...dataContextPath.split("/").filter((segment) => /^\d+$/.test(segment)), index].join(":")}`;
const childDataContextPath = `${fullDataPath}/${index}`;
return this.#buildNodeRecursive(template.componentId, surface, visited, childDataContextPath, newSuffix);
});
if (data instanceof this.#mapCtor) return Array.from(data.keys(), (key) => {
const newSuffix = `:${key}`;
const childDataContextPath = `${fullDataPath}/${key}`;
return this.#buildNodeRecursive(template.componentId, surface, visited, childDataContextPath, newSuffix);
});
return new this.#arrayCtor();
}
}
if (Array.isArray(value)) return value.map((item) => this.#resolvePropertyValue(item, surface, visited, dataContextPath, idSuffix, propertyKey));
if (isObject$1(value)) {
const newObj = new this.#objCtor();
for (const [key, propValue] of Object.entries(value)) {
let propertyValue = propValue;
if (isPath(key, propValue) && dataContextPath !== "/") {
propertyValue = propValue.replace(/^\.?\/item/, "").replace(/^\.?\/text/, "").replace(/^\.?\/label/, "").replace(/^\.?\//, "");
newObj[key] = propertyValue;
continue;
}
newObj[key] = this.#resolvePropertyValue(propertyValue, surface, visited, dataContextPath, idSuffix, key);
}
return newObj;
}
return value;
}
};
var __defProp$1 = Object.defineProperty;
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, {
enumerable: true,
configurable: true,
writable: true,
value
}) : obj[key] = value;
var __publicField$1 = (obj, key, value) => {
__defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
var __accessCheck$1 = (obj, member, msg) => {
if (!member.has(obj)) throw TypeError("Cannot " + msg);
};
var __privateIn$1 = (member, obj) => {
if (Object(obj) !== obj) throw TypeError("Cannot use the \"in\" operator on this value");
return member.has(obj);
};
var __privateAdd$1 = (obj, member, value) => {
if (member.has(obj)) throw TypeError("Cannot add the same private member more than once");
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
};
var __privateMethod$1 = (obj, member, method) => {
__accessCheck$1(obj, member, "access private method");
return method;
};
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function defaultEquals$1(a, b) {
return Object.is(a, b);
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
let activeConsumer$1 = null;
let inNotificationPhase$1 = false;
let epoch$1 = 1;
const SIGNAL$1 = /* @__PURE__ */ Symbol("SIGNAL");
function setActiveConsumer$1(consumer) {
const prev = activeConsumer$1;
activeConsumer$1 = consumer;
return prev;
}
function getActiveConsumer$1() {
return activeConsumer$1;
}
function isInNotificationPhase$1() {
return inNotificationPhase$1;
}
const REACTIVE_NODE$1 = {
version: 0,
lastCleanEpoch: 0,
dirty: false,
producerNode: void 0,
producerLastReadVersion: void 0,
producerIndexOfThis: void 0,
nextProducerIndex: 0,
liveConsumerNode: void 0,
liveConsumerIndexOfThis: void 0,
consumerAllowSignalWrites: false,
consumerIsAlwaysLive: false,
producerMustRecompute: () => false,
producerRecomputeValue: () => {},
consumerMarkedDirty: () => {},
consumerOnSignalRead: () => {}
};
function producerAccessed$1(node) {
if (inNotificationPhase$1) throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? `Assertion error: signal read during notification phase` : "");
if (activeConsumer$1 === null) return;
activeConsumer$1.consumerOnSignalRead(node);
const idx = activeConsumer$1.nextProducerIndex++;
assertConsumerNode$1(activeConsumer$1);
if (idx < activeConsumer$1.producerNode.length && activeConsumer$1.producerNode[idx] !== node) {
if (consumerIsLive$1(activeConsumer$1)) {
const staleProducer = activeConsumer$1.producerNode[idx];
producerRemoveLiveConsumerAtIndex$1(staleProducer, activeConsumer$1.producerIndexOfThis[idx]);
}
}
if (activeConsumer$1.producerNode[idx] !== node) {
activeConsumer$1.producerNode[idx] = node;
activeConsumer$1.producerIndexOfThis[idx] = consumerIsLive$1(activeConsumer$1) ? producerAddLiveConsumer$1(node, activeConsumer$1, idx) : 0;
}
activeConsumer$1.producerLastReadVersion[idx] = node.version;
}
function producerIncrementEpoch$1() {
epoch$1++;
}
function producerUpdateValueVersion$1(node) {
if (!node.dirty && node.lastCleanEpoch === epoch$1) return;
if (!node.producerMustRecompute(node) && !consumerPollProducersForChange$1(node)) {
node.dirty = false;
node.lastCleanEpoch = epoch$1;
return;
}
node.producerRecomputeValue(node);
node.dirty = false;
node.lastCleanEpoch = epoch$1;
}
function producerNotifyConsumers$1(node) {
if (node.liveConsumerNode === void 0) return;
const prev = inNotificationPhase$1;
inNotificationPhase$1 = true;
try {
for (const consumer of node.liveConsumerNode) if (!consumer.dirty) consumerMarkDirty$1(consumer);
} finally {
inNotificationPhase$1 = prev;
}
}
function producerUpdatesAllowed$1() {
return (activeConsumer$1 == null ? void 0 : activeConsumer$1.consumerAllowSignalWrites) !== false;
}
function consumerMarkDirty$1(node) {
var _a;
node.dirty = true;
producerNotifyConsumers$1(node);
(_a = node.consumerMarkedDirty) == null || _a.call(node.wrapper ?? node);
}
function consumerBeforeComputation$1(node) {
node && (node.nextProducerIndex = 0);
return setActiveConsumer$1(node);
}
function consumerAfterComputation$1(node, prevConsumer) {
setActiveConsumer$1(prevConsumer);
if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) return;
if (consumerIsLive$1(node)) for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) producerRemoveLiveConsumerAtIndex$1(node.producerNode[i], node.producerIndexOfThis[i]);
while (node.producerNode.length > node.nextProducerIndex) {
node.producerNode.pop();
node.producerLastReadVersion.pop();
node.producerIndexOfThis.pop();
}
}
function consumerPollProducersForChange$1(node) {
assertConsumerNode$1(node);
for (let i = 0; i < node.producerNode.length; i++) {
const producer = node.producerNode[i];
const seenVersion = node.producerLastReadVersion[i];
if (seenVersion !== producer.version) return true;
producerUpdateValueVersion$1(producer);
if (seenVersion !== producer.version) return true;
}
return false;
}
function producerAddLiveConsumer$1(node, consumer, indexOfThis) {
var _a;
assertProducerNode$1(node);
assertConsumerNode$1(node);
if (node.liveConsumerNode.length === 0) {
(_a = node.watched) == null || _a.call(node.wrapper);
for (let i = 0; i < node.producerNode.length; i++) node.producerIndexOfThis[i] = producerAddLiveConsumer$1(node.producerNode[i], node, i);
}
node.liveConsumerIndexOfThis.push(indexOfThis);
return node.liveConsumerNode.push(consumer) - 1;
}
function producerRemoveLiveConsumerAtIndex$1(node, idx) {
var _a;
assertProducerNode$1(node);
assertConsumerNode$1(node);
if (typeof ngDevMode !== "undefined" && ngDevMode && idx >= node.liveConsumerNode.length) throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);
if (node.liveConsumerNode.length === 1) {
(_a = node.unwatched) == null || _a.call(node.wrapper);
for (let i = 0; i < node.producerNode.length; i++) producerRemoveLiveConsumerAtIndex$1(node.producerNode[i], node.producerIndexOfThis[i]);
}
const lastIdx = node.liveConsumerNode.length - 1;
node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];
node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];
node.liveConsumerNode.length--;
node.liveConsumerIndexOfThis.length--;
if (idx < node.liveConsumerNode.length) {
const idxProducer = node.liveConsumerIndexOfThis[idx];
const consumer = node.liveConsumerNode[idx];
assertConsumerNode$1(consumer);
consumer.producerIndexOfThis[idxProducer] = idx;
}
}
function consumerIsLive$1(node) {
var _a;
return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;
}
function assertConsumerNode$1(node) {
node.producerNode ?? (node.producerNode = []);
node.producerIndexOfThis ?? (node.producerIndexOfThis = []);
node.producerLastReadVersion ?? (node.producerLastReadVersion = []);
}
function assertProducerNode$1(node) {
node.liveConsumerNode ?? (node.liveConsumerNode = []);
node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function computedGet$1(node) {
producerUpdateValueVersion$1(node);
producerAccessed$1(node);
if (node.value === ERRORED$1) throw node.error;
return node.value;
}
function createComputed$1(computation) {
const node = Object.create(COMPUTED_NODE$1);
node.computation = computation;
const computed = () => computedGet$1(node);
computed[SIGNAL$1] = node;
return computed;
}
const UNSET$1 = /* @__PURE__ */ Symbol("UNSET");
const COMPUTING$1 = /* @__PURE__ */ Symbol("COMPUTING");
const ERRORED$1 = /* @__PURE__ */ Symbol("ERRORED");
const COMPUTED_NODE$1 = {
...REACTIVE_NODE$1,
value: UNSET$1,
dirty: true,
error: null,
equal: defaultEquals$1,
producerMustRecompute(node) {
return node.value === UNSET$1 || node.value === COMPUTING$1;
},
producerRecomputeValue(node) {
if (node.value === COMPUTING$1) throw new Error("Detected cycle in computations.");
const oldValue = node.value;
node.value = COMPUTING$1;
const prevConsumer = consumerBeforeComputation$1(node);
let newValue;
let wasEqual = false;
try {
newValue = node.computation.call(node.wrapper);
wasEqual = oldValue !== UNSET$1 && oldValue !== ERRORED$1 && node.equal.call(node.wrapper, oldValue, newValue);
} catch (err) {
newValue = ERRORED$1;
node.error = err;
} finally {
consumerAfterComputation$1(node, prevConsumer);
}
if (wasEqual) {
node.value = oldValue;
return;
}
node.value = newValue;
node.version++;
}
};
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function defaultThrowError$1() {
throw new Error();
}
let throwInvalidWriteToSignalErrorFn$1 = defaultThrowError$1;
function throwInvalidWriteToSignalError$1() {
throwInvalidWriteToSignalErrorFn$1();
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function createSignal$1(initialValue) {
const node = Object.create(SIGNAL_NODE$1);
node.value = initialValue;
const getter = () => {
producerAccessed$1(node);
return node.value;
};
getter[SIGNAL$1] = node;
return getter;
}
function signalGetFn$1() {
producerAccessed$1(this);
return this.value;
}
function signalSetFn$1(node, newValue) {
if (!producerUpdatesAllowed$1()) throwInvalidWriteToSignalError$1();
if (!node.equal.call(node.wrapper, node.value, newValue)) {
node.value = newValue;
signalValueChanged$1(node);
}
}
const SIGNAL_NODE$1 = {
...REACTIVE_NODE$1,
equal: defaultEquals$1,
value: void 0
};
function signalValueChanged$1(node) {
node.version++;
producerIncrementEpoch$1();
producerNotifyConsumers$1(node);
}
/**
* @license
* Copyright 2024 Bloomberg Finance L.P.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const NODE$1 = Symbol("node");
var Signal$1;
((Signal2) => {
var _a, _brand, _b, _brand2;
class State {
constructor(initialValue, options = {}) {
__privateAdd$1(this, _brand);
__publicField$1(this, _a);
const node = createSignal$1(initialValue)[SIGNAL$1];
this[NODE$1] = node;
node.wrapper = this;
if (options) {
const equals = options.equals;
if (equals) node.equal = equals;
node.watched = options[Signal2.subtle.watched];
node.unwatched = options[Signal2.subtle.unwatched];
}
}
get() {
if (!(0, Signal2.isState)(this)) throw new TypeError("Wrong receiver type for Signal.State.prototype.get");
return signalGetFn$1.call(this[NODE$1]);
}
set(newValue) {
if (!(0, Signal2.isState)(this)) throw new TypeError("Wrong receiver type for Signal.State.prototype.set");
if (isInNotificationPhase$1()) throw new Error("Writes to signals not permitted during Watcher callback");
const ref = this[NODE$1];
signalSetFn$1(ref, newValue);
}
}
_a = NODE$1;
_brand = /* @__PURE__ */ new WeakSet();
Signal2.isState = (s) => typeof s === "object" && __privateIn$1(_brand, s);
Signal2.State = State;
class Computed {
constructor(computation, options) {
__privateAdd$1(this, _brand2);
__publicField$1(this, _b);
const node = createComputed$1(computation)[SIGNAL$1];
node.consumerAllowSignalWrites = true;
this[NODE$1] = node;
node.wrapper = this;
if (options) {
const equals = options.equals;
if (equals) node.equal = equals;
node.watched = options[Signal2.subtle.watched];
node.unwatched = options[Signal2.subtle.unwatched];
}
}
get() {
if (!(0, Signal2.isComputed)(this)) throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");
return computedGet$1(this[NODE$1]);
}
}
_b = NODE$1;
_brand2 = /* @__PURE__ */ new WeakSet();
Signal2.isComputed = (c) => typeof c === "object" && __privateIn$1(_brand2, c);
Signal2.Computed = Computed;
((subtle2) => {
var _a2, _brand3, _assertSignals, assertSignals_fn;
function untrack(cb) {
let output;
let prevActiveConsumer = null;
try {
prevActiveConsumer = setActiveConsumer$1(null);
output = cb();
} finally {
setActiveConsumer$1(prevActiveConsumer);
}
return output;
}
subtle2.untrack = untrack;
function introspectSources(sink) {
var _a3;
if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) throw new TypeError("Called introspectSources without a Computed or Watcher argument");
return ((_a3 = sink[NODE$1].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];
}
subtle2.introspectSources = introspectSources;
function introspectSinks(signal) {
var _a3;
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called introspectSinks without a Signal argument");
return ((_a3 = signal[NODE$1].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];
}
subtle2.introspectSinks = introspectSinks;
function hasSinks(signal) {
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called hasSinks without a Signal argument");
const liveConsumerNode = signal[NODE$1].liveConsumerNode;
if (!liveConsumerNode) return false;
return liveConsumerNode.length > 0;
}
subtle2.hasSinks = hasSinks;
function hasSources(signal) {
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) throw new TypeError("Called hasSources without a Computed or Watcher argument");
const producerNode = signal[NODE$1].producerNode;
if (!producerNode) return false;
return producerNode.length > 0;
}
subtle2.hasSources = hasSources;
class Watcher {
constructor(notify) {
__privateAdd$1(this, _brand3);
__privateAdd$1(this, _assertSignals);
__publicField$1(this, _a2);
let node = Object.create(REACTIVE_NODE$1);
node.wrapper = this;
node.consumerMarkedDirty = notify;
node.consumerIsAlwaysLive = true;
node.consumerAllowSignalWrites = false;
node.producerNode = [];
this[NODE$1] = node;
}
watch(...signals) {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called unwatch without Watcher receiver");
__privateMethod$1(this, _assertSignals, assertSignals_fn).call(this, signals);
const node = this[NODE$1];
node.dirty = false;
const prev = setActiveConsumer$1(node);
for (const signal of signals) producerAccessed$1(signal[NODE$1]);
setActiveConsumer$1(prev);
}
unwatch(...signals) {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called unwatch without Watcher receiver");
__privateMethod$1(this, _assertSignals, assertSignals_fn).call(this, signals);
const node = this[NODE$1];
assertConsumerNode$1(node);
for (let i = node.producerNode.length - 1; i >= 0; i--) if (signals.includes(node.producerNode[i].wrapper)) {
producerRemoveLiveConsumerAtIndex$1(node.producerNode[i], node.producerIndexOfThis[i]);
const lastIdx = node.producerNode.length - 1;
node.producerNode[i] = node.producerNode[lastIdx];
node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];
node.producerNode.length--;
node.producerIndexOfThis.length--;
node.nextProducerIndex--;
if (i < node.producerNode.length) {
const idxConsumer = node.producerIndexOfThis[i];
const producer = node.producerNode[i];
assertProducerNode$1(producer);
producer.liveConsumerIndexOfThis[idxConsumer] = i;
}
}
}
getPending() {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called getPending without Watcher receiver");
return this[NODE$1].producerNode.filter((n) => n.dirty).map((n) => n.wrapper);
}
}
_a2 = NODE$1;
_brand3 = /* @__PURE__ */ new WeakSet();
_assertSignals = /* @__PURE__ */ new WeakSet();
assertSignals_fn = function(signals) {
for (const signal of signals) if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called watch/unwatch without a Computed or State argument");
};
Signal2.isWatcher = (w) => __privateIn$1(_brand3, w);
subtle2.Watcher = Watcher;
function currentComputed() {
var _a3;
return (_a3 = getActiveConsumer$1()) == null ? void 0 : _a3.wrapper;
}
subtle2.currentComputed = currentComputed;
subtle2.watched = Symbol("watched");
subtle2.unwatched = Symbol("unwatched");
})(Signal2.subtle || (Signal2.subtle = {}));
})(Signal$1 || (Signal$1 = {}));
/**
* equality check here is always false so that we can dirty the storage
* via setting to _anything_
*
*
* This is for a pattern where we don't *directly* use signals to back the values used in collections
* so that instanceof checks and getters and other native features "just work" without having
* to do nested proxying.
*
* (though, see deep.ts for nested / deep behavior)
*/
const createStorage = (initial = null) => new Signal$1.State(initial, { equals: () => false });
const ARRAY_GETTER_METHODS = new Set([
Symbol.iterator,
"concat",
"entries",
"every",
"filter",
"find",
"findIndex",
"flat",
"flatMap",
"forEach",
"includes",
"indexOf",
"join",
"keys",
"lastIndexOf",
"map",
"reduce",
"reduceRight",
"slice",
"some",
"values"
]);
const ARRAY_WRITE_THEN_READ_METHODS = new Set([
"fill",
"push",
"unshift"
]);
function convertToInt(prop) {
if (typeof prop === "symbol") return null;
const num = Number(prop);
if (isNaN(num)) return null;
return num % 1 === 0 ? num : null;
}
var SignalArray = class SignalArray {
/**
* Creates an array from an iterable object.
* @param iterable An iterable object to convert to an array.
*/
/**
* Creates an array from an iterable object.
* @param iterable An iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
static from(iterable, mapfn, thisArg) {
return mapfn ? new SignalArray(Array.from(iterable, mapfn, thisArg)) : new SignalArray(Array.from(iterable));
}
static of(...arr) {
return new SignalArray(arr);
}
constructor(arr = []) {
let clone = arr.slice();
let self = this;
let boundFns = /* @__PURE__ */ new Map();
/**
Flag to track whether we have *just* intercepted a call to `.push()` or
`.unshift()`, since in those cases (and only those cases!) the `Array`
itself checks `.length` to return from the function call.
*/
let nativelyAccessingLengthFromPushOrUnshift = false;
return new Proxy(clone, {
get(target, prop) {
let index = convertToInt(prop);
if (index !== null) {
self.#readStorageFor(index);
self.#collection.get();
return target[index];
}
if (prop === "length") {
if (nativelyAccessingLengthFromPushOrUnshift) nativelyAccessingLengthFromPushOrUnshift = false;
else self.#collection.get();
return target[prop];
}
if (ARRAY_WRITE_THEN_READ_METHODS.has(prop)) nativelyAccessingLengthFromPushOrUnshift = true;
if (ARRAY_GETTER_METHODS.has(prop)) {
let fn = boundFns.get(prop);
if (fn === void 0) {
fn = (...args) => {
self.#collection.get();
return target[prop](...args);
};
boundFns.set(prop, fn);
}
return fn;
}
return target[prop];
},
set(target, prop, value) {
target[prop] = value;
let index = convertToInt(prop);
if (index !== null) {
self.#dirtyStorageFor(index);
self.#collection.set(null);
} else if (prop === "length") self.#collection.set(null);
return true;
},
getPrototypeOf() {
return SignalArray.prototype;
}
});
}
#collection = createStorage();
#storages = /* @__PURE__ */ new Map();
#readStorageFor(index) {
let storage = this.#storages.get(index);
if (storage === void 0) {
storage = createStorage();
this.#storages.set(index, storage);
}
storage.get();
}
#dirtyStorageFor(index) {
const storage = this.#storages.get(index);
if (storage) storage.set(null);
}
};
Object.setPrototypeOf(SignalArray.prototype, Array.prototype);
var SignalMap = class {
collection = createStorage();
storages = /* @__PURE__ */ new Map();
vals;
readStorageFor(key) {
const { storages } = this;
let storage = storages.get(key);
if (storage === void 0) {
storage = createStorage();
storages.set(key, storage);
}
storage.get();
}
dirtyStorageFor(key) {
const storage = this.storages.get(key);
if (storage) storage.set(null);
}
constructor(existing) {
this.vals = existing ? new Map(existing) : /* @__PURE__ */ new Map();
}
get(key) {
this.readStorageFor(key);
return this.vals.get(key);
}
has(key) {
this.readStorageFor(key);
return this.vals.has(key);
}
entries() {
this.collection.get();
return this.vals.entries();
}
keys() {
this.collection.get();
return this.vals.keys();
}
values() {
this.collection.get();
return this.vals.values();
}
forEach(fn) {
this.collection.get();
this.vals.forEach(fn);
}
get size() {
this.collection.get();
return this.vals.size;
}
[Symbol.iterator]() {
this.collection.get();
return this.vals[Symbol.iterator]();
}
get [Symbol.toStringTag]() {
return this.vals[Symbol.toStringTag];
}
set(key, value) {
this.dirtyStorageFor(key);
this.collection.set(null);
this.vals.set(key, value);
return this;
}
delete(key) {
this.dirtyStorageFor(key);
this.collection.set(null);
return this.vals.delete(key);
}
clear() {
this.storages.forEach((s) => s.set(null));
this.collection.set(null);
this.vals.clear();
}
};
Object.setPrototypeOf(SignalMap.prototype, Map.prototype);
/**
* Create a reactive Object, backed by Signals, using a Proxy.
* This allows dynamic creation and deletion of signals using the object primitive
* APIs that most folks are familiar with -- the only difference is instantiation.
* ```js
* const obj = new SignalObject({ foo: 123 });
*
* obj.foo // 123
* obj.foo = 456
* obj.foo // 456
* obj.bar = 2
* obj.bar // 2
* ```
*/
const SignalObject = class SignalObjectImpl {
static fromEntries(entries) {
return new SignalObjectImpl(Object.fromEntries(entries));
}
#storages = /* @__PURE__ */ new Map();
#collection = createStorage();
constructor(obj = {}) {
let proto = Object.getPrototypeOf(obj);
let descs = Object.getOwnPropertyDescriptors(obj);
let clone = Object.create(proto);
for (let prop in descs) Object.defineProperty(clone, prop, descs[prop]);
let self = this;
return new Proxy(clone, {
get(target, prop, receiver) {
self.#readStorageFor(prop);
return Reflect.get(target, prop, receiver);
},
has(target, prop) {
self.#readStorageFor(prop);
return prop in target;
},
ownKeys(target) {
self.#collection.get();
return Reflect.ownKeys(target);
},
set(target, prop, value, receiver) {
let result = Reflect.set(target, prop, value, receiver);
self.#dirtyStorageFor(prop);
self.#dirtyCollection();
return result;
},
deleteProperty(target, prop) {
if (prop in target) {
delete target[prop];
self.#dirtyStorageFor(prop);
self.#dirtyCollection();
}
return true;
},
getPrototypeOf() {
return SignalObjectImpl.prototype;
}
});
}
#readStorageFor(key) {
let storage = this.#storages.get(key);
if (storage === void 0) {
storage = createStorage();
this.#storages.set(key, storage);
}
storage.get();
}
#dirtyStorageFor(key) {
const storage = this.#storages.get(key);
if (storage) storage.set(null);
}
#dirtyCollection() {
this.#collection.set(null);
}
};
var SignalSet = class {
collection = createStorage();
storages = /* @__PURE__ */ new Map();
vals;
storageFor(key) {
const storages = this.storages;
let storage = storages.get(key);
if (storage === void 0) {
storage = createStorage();
storages.set(key, storage);
}
return storage;
}
dirtyStorageFor(key) {
const storage = this.storages.get(key);
if (storage) storage.set(null);
}
constructor(existing) {
this.vals = new Set(existing);
}
has(value) {
this.storageFor(value).get();
return this.vals.has(value);
}
entries() {
this.collection.get();
return this.vals.entries();
}
keys() {
this.collection.get();
return this.vals.keys();
}
values() {
this.collection.get();
return this.vals.values();
}
forEach(fn) {
this.collection.get();
this.vals.forEach(fn);
}
get size() {
this.collection.get();
return this.vals.size;
}
[Symbol.iterator]() {
this.collection.get();
return this.vals[Symbol.iterator]();
}
get [Symbol.toStringTag]() {
return this.vals[Symbol.toStringTag];
}
add(value) {
this.dirtyStorageFor(value);
this.collection.set(null);
this.vals.add(value);
return this;
}
delete(value) {
this.dirtyStorageFor(value);
this.collection.set(null);
return this.vals.delete(value);
}
clear() {
this.storages.forEach((s) => s.set(null));
this.collection.set(null);
this.vals.clear();
}
};
Object.setPrototypeOf(SignalSet.prototype, Set.prototype);
function create() {
return new A2uiMessageProcessor({
arrayCtor: SignalArray,
mapCtor: SignalMap,
objCtor: SignalObject,
setCtor: SignalSet
});
}
const Data = {
createSignalA2uiMessageProcessor: create,
A2uiMessageProcessor,
Guards: guards_exports
};
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const t$1 = (t) => (e, o) => {
void 0 !== o ? o.addInitializer(() => {
customElements.define(t, e);
}) : customElements.define(t, e);
};
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
attribute: !0,
type: String,
converter: u$3,
reflect: !1,
hasChanged: f$3
}, r$7 = (t = o$9, e, r) => {
const { kind: n, metadata: i } = r;
let s = globalThis.litPropertyMetadata.get(i);
if (void 0 === s && globalThis.litPropertyMetadata.set(i, s = /* @__PURE__ */ new Map()), "setter" === n && ((t = Object.create(t)).wrapped = !0), s.set(r.name, t), "accessor" === n) {
const { name: o } = r;
return {
set(r) {
const n = e.get.call(this);
e.set.call(this, r), this.requestUpdate(o, n, t, !0, r);
},
init(e) {
return void 0 !== e && this.C(o, void 0, t, e), e;
}
};
}
if ("setter" === n) {
const { name: o } = r;
return function(r) {
const n = this[o];
e.call(this, r), this.requestUpdate(o, n, t, !0, r);
};
}
throw Error("Unsupported decorator location: " + n);
};
function n$6(t) {
return (e, o) => "object" == typeof o ? r$7(t, e, o) : ((t, e, o) => {
const r = e.hasOwnProperty(o);
return e.constructor.createProperty(o, t), r ? Object.getOwnPropertyDescriptor(e, o) : void 0;
})(t, e, o);
}
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
return n$6({
...r,
state: !0,
attribute: !1
});
}
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const e$6 = (e, t, c) => (c.configurable = !0, c.enumerable = !0, Reflect.decorate && "object" != typeof t && Object.defineProperty(e, t, c), c);
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
return (n, s, i) => {
const o = (t) => t.renderRoot?.querySelector(e) ?? null;
if (r) {
const { get: e, set: r } = "object" == typeof s ? n : i ?? (() => {
const t = Symbol();
return {
get() {
return this[t];
},
set(e) {
this[t] = e;
}
};
})();
return e$6(n, s, { get() {
let t = e.call(this);
return void 0 === t && (t = o(this), (null !== t || this.hasUpdated) && r.call(this, t)), t;
} });
}
return e$6(n, s, { get() {
return o(this);
} });
};
}
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
enumerable: true,
configurable: true,
writable: true,
value
}) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
var __accessCheck = (obj, member, msg) => {
if (!member.has(obj)) throw TypeError("Cannot " + msg);
};
var __privateIn = (member, obj) => {
if (Object(obj) !== obj) throw TypeError("Cannot use the \"in\" operator on this value");
return member.has(obj);
};
var __privateAdd = (obj, member, value) => {
if (member.has(obj)) throw TypeError("Cannot add the same private member more than once");
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
};
var __privateMethod = (obj, member, method) => {
__accessCheck(obj, member, "access private method");
return method;
};
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function defaultEquals(a, b) {
return Object.is(a, b);
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
let activeConsumer = null;
let inNotificationPhase = false;
let epoch = 1;
const SIGNAL = /* @__PURE__ */ Symbol("SIGNAL");
function setActiveConsumer(consumer) {
const prev = activeConsumer;
activeConsumer = consumer;
return prev;
}
function getActiveConsumer() {
return activeConsumer;
}
function isInNotificationPhase() {
return inNotificationPhase;
}
const REACTIVE_NODE = {
version: 0,
lastCleanEpoch: 0,
dirty: false,
producerNode: void 0,
producerLastReadVersion: void 0,
producerIndexOfThis: void 0,
nextProducerIndex: 0,
liveConsumerNode: void 0,
liveConsumerIndexOfThis: void 0,
consumerAllowSignalWrites: false,
consumerIsAlwaysLive: false,
producerMustRecompute: () => false,
producerRecomputeValue: () => {},
consumerMarkedDirty: () => {},
consumerOnSignalRead: () => {}
};
function producerAccessed(node) {
if (inNotificationPhase) throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? `Assertion error: signal read during notification phase` : "");
if (activeConsumer === null) return;
activeConsumer.consumerOnSignalRead(node);
const idx = activeConsumer.nextProducerIndex++;
assertConsumerNode(activeConsumer);
if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {
if (consumerIsLive(activeConsumer)) {
const staleProducer = activeConsumer.producerNode[idx];
producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);
}
}
if (activeConsumer.producerNode[idx] !== node) {
activeConsumer.producerNode[idx] = node;
activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;
}
activeConsumer.producerLastReadVersion[idx] = node.version;
}
function producerIncrementEpoch() {
epoch++;
}
function producerUpdateValueVersion(node) {
if (!node.dirty && node.lastCleanEpoch === epoch) return;
if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {
node.dirty = false;
node.lastCleanEpoch = epoch;
return;
}
node.producerRecomputeValue(node);
node.dirty = false;
node.lastCleanEpoch = epoch;
}
function producerNotifyConsumers(node) {
if (node.liveConsumerNode === void 0) return;
const prev = inNotificationPhase;
inNotificationPhase = true;
try {
for (const consumer of node.liveConsumerNode) if (!consumer.dirty) consumerMarkDirty(consumer);
} finally {
inNotificationPhase = prev;
}
}
function producerUpdatesAllowed() {
return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;
}
function consumerMarkDirty(node) {
var _a;
node.dirty = true;
producerNotifyConsumers(node);
(_a = node.consumerMarkedDirty) == null || _a.call(node.wrapper ?? node);
}
function consumerBeforeComputation(node) {
node && (node.nextProducerIndex = 0);
return setActiveConsumer(node);
}
function consumerAfterComputation(node, prevConsumer) {
setActiveConsumer(prevConsumer);
if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) return;
if (consumerIsLive(node)) for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
while (node.producerNode.length > node.nextProducerIndex) {
node.producerNode.pop();
node.producerLastReadVersion.pop();
node.producerIndexOfThis.pop();
}
}
function consumerPollProducersForChange(node) {
assertConsumerNode(node);
for (let i = 0; i < node.producerNode.length; i++) {
const producer = node.producerNode[i];
const seenVersion = node.producerLastReadVersion[i];
if (seenVersion !== producer.version) return true;
producerUpdateValueVersion(producer);
if (seenVersion !== producer.version) return true;
}
return false;
}
function producerAddLiveConsumer(node, consumer, indexOfThis) {
var _a;
assertProducerNode(node);
assertConsumerNode(node);
if (node.liveConsumerNode.length === 0) {
(_a = node.watched) == null || _a.call(node.wrapper);
for (let i = 0; i < node.producerNode.length; i++) node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);
}
node.liveConsumerIndexOfThis.push(indexOfThis);
return node.liveConsumerNode.push(consumer) - 1;
}
function producerRemoveLiveConsumerAtIndex(node, idx) {
var _a;
assertProducerNode(node);
assertConsumerNode(node);
if (typeof ngDevMode !== "undefined" && ngDevMode && idx >= node.liveConsumerNode.length) throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);
if (node.liveConsumerNode.length === 1) {
(_a = node.unwatched) == null || _a.call(node.wrapper);
for (let i = 0; i < node.producerNode.length; i++) producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
}
const lastIdx = node.liveConsumerNode.length - 1;
node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];
node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];
node.liveConsumerNode.length--;
node.liveConsumerIndexOfThis.length--;
if (idx < node.liveConsumerNode.length) {
const idxProducer = node.liveConsumerIndexOfThis[idx];
const consumer = node.liveConsumerNode[idx];
assertConsumerNode(consumer);
consumer.producerIndexOfThis[idxProducer] = idx;
}
}
function consumerIsLive(node) {
var _a;
return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;
}
function assertConsumerNode(node) {
node.producerNode ?? (node.producerNode = []);
node.producerIndexOfThis ?? (node.producerIndexOfThis = []);
node.producerLastReadVersion ?? (node.producerLastReadVersion = []);
}
function assertProducerNode(node) {
node.liveConsumerNode ?? (node.liveConsumerNode = []);
node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function computedGet(node) {
producerUpdateValueVersion(node);
producerAccessed(node);
if (node.value === ERRORED) throw node.error;
return node.value;
}
function createComputed(computation) {
const node = Object.create(COMPUTED_NODE);
node.computation = computation;
const computed = () => computedGet(node);
computed[SIGNAL] = node;
return computed;
}
const UNSET = /* @__PURE__ */ Symbol("UNSET");
const COMPUTING = /* @__PURE__ */ Symbol("COMPUTING");
const ERRORED = /* @__PURE__ */ Symbol("ERRORED");
const COMPUTED_NODE = {
...REACTIVE_NODE,
value: UNSET,
dirty: true,
error: null,
equal: defaultEquals,
producerMustRecompute(node) {
return node.value === UNSET || node.value === COMPUTING;
},
producerRecomputeValue(node) {
if (node.value === COMPUTING) throw new Error("Detected cycle in computations.");
const oldValue = node.value;
node.value = COMPUTING;
const prevConsumer = consumerBeforeComputation(node);
let newValue;
let wasEqual = false;
try {
newValue = node.computation.call(node.wrapper);
wasEqual = oldValue !== UNSET && oldValue !== ERRORED && node.equal.call(node.wrapper, oldValue, newValue);
} catch (err) {
newValue = ERRORED;
node.error = err;
} finally {
consumerAfterComputation(node, prevConsumer);
}
if (wasEqual) {
node.value = oldValue;
return;
}
node.value = newValue;
node.version++;
}
};
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function defaultThrowError() {
throw new Error();
}
let throwInvalidWriteToSignalErrorFn = defaultThrowError;
function throwInvalidWriteToSignalError() {
throwInvalidWriteToSignalErrorFn();
}
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
function createSignal(initialValue) {
const node = Object.create(SIGNAL_NODE);
node.value = initialValue;
const getter = () => {
producerAccessed(node);
return node.value;
};
getter[SIGNAL] = node;
return getter;
}
function signalGetFn() {
producerAccessed(this);
return this.value;
}
function signalSetFn(node, newValue) {
if (!producerUpdatesAllowed()) throwInvalidWriteToSignalError();
if (!node.equal.call(node.wrapper, node.value, newValue)) {
node.value = newValue;
signalValueChanged(node);
}
}
const SIGNAL_NODE = {
...REACTIVE_NODE,
equal: defaultEquals,
value: void 0
};
function signalValueChanged(node) {
node.version++;
producerIncrementEpoch();
producerNotifyConsumers(node);
}
/**
* @license
* Copyright 2024 Bloomberg Finance L.P.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const NODE = Symbol("node");
var Signal;
((Signal2) => {
var _a, _brand, _b, _brand2;
class State {
constructor(initialValue, options = {}) {
__privateAdd(this, _brand);
__publicField(this, _a);
const node = createSignal(initialValue)[SIGNAL];
this[NODE] = node;
node.wrapper = this;
if (options) {
const equals = options.equals;
if (equals) node.equal = equals;
node.watched = options[Signal2.subtle.watched];
node.unwatched = options[Signal2.subtle.unwatched];
}
}
get() {
if (!(0, Signal2.isState)(this)) throw new TypeError("Wrong receiver type for Signal.State.prototype.get");
return signalGetFn.call(this[NODE]);
}
set(newValue) {
if (!(0, Signal2.isState)(this)) throw new TypeError("Wrong receiver type for Signal.State.prototype.set");
if (isInNotificationPhase()) throw new Error("Writes to signals not permitted during Watcher callback");
const ref = this[NODE];
signalSetFn(ref, newValue);
}
}
_a = NODE;
_brand = /* @__PURE__ */ new WeakSet();
Signal2.isState = (s) => typeof s === "object" && __privateIn(_brand, s);
Signal2.State = State;
class Computed {
constructor(computation, options) {
__privateAdd(this, _brand2);
__publicField(this, _b);
const node = createComputed(computation)[SIGNAL];
node.consumerAllowSignalWrites = true;
this[NODE] = node;
node.wrapper = this;
if (options) {
const equals = options.equals;
if (equals) node.equal = equals;
node.watched = options[Signal2.subtle.watched];
node.unwatched = options[Signal2.subtle.unwatched];
}
}
get() {
if (!(0, Signal2.isComputed)(this)) throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");
return computedGet(this[NODE]);
}
}
_b = NODE;
_brand2 = /* @__PURE__ */ new WeakSet();
Signal2.isComputed = (c) => typeof c === "object" && __privateIn(_brand2, c);
Signal2.Computed = Computed;
((subtle2) => {
var _a2, _brand3, _assertSignals, assertSignals_fn;
function untrack(cb) {
let output;
let prevActiveConsumer = null;
try {
prevActiveConsumer = setActiveConsumer(null);
output = cb();
} finally {
setActiveConsumer(prevActiveConsumer);
}
return output;
}
subtle2.untrack = untrack;
function introspectSources(sink) {
var _a3;
if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) throw new TypeError("Called introspectSources without a Computed or Watcher argument");
return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];
}
subtle2.introspectSources = introspectSources;
function introspectSinks(signal) {
var _a3;
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called introspectSinks without a Signal argument");
return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];
}
subtle2.introspectSinks = introspectSinks;
function hasSinks(signal) {
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called hasSinks without a Signal argument");
const liveConsumerNode = signal[NODE].liveConsumerNode;
if (!liveConsumerNode) return false;
return liveConsumerNode.length > 0;
}
subtle2.hasSinks = hasSinks;
function hasSources(signal) {
if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) throw new TypeError("Called hasSources without a Computed or Watcher argument");
const producerNode = signal[NODE].producerNode;
if (!producerNode) return false;
return producerNode.length > 0;
}
subtle2.hasSources = hasSources;
class Watcher {
constructor(notify) {
__privateAdd(this, _brand3);
__privateAdd(this, _assertSignals);
__publicField(this, _a2);
let node = Object.create(REACTIVE_NODE);
node.wrapper = this;
node.consumerMarkedDirty = notify;
node.consumerIsAlwaysLive = true;
node.consumerAllowSignalWrites = false;
node.producerNode = [];
this[NODE] = node;
}
watch(...signals) {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called unwatch without Watcher receiver");
__privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);
const node = this[NODE];
node.dirty = false;
const prev = setActiveConsumer(node);
for (const signal of signals) producerAccessed(signal[NODE]);
setActiveConsumer(prev);
}
unwatch(...signals) {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called unwatch without Watcher receiver");
__privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);
const node = this[NODE];
assertConsumerNode(node);
for (let i = node.producerNode.length - 1; i >= 0; i--) if (signals.includes(node.producerNode[i].wrapper)) {
producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
const lastIdx = node.producerNode.length - 1;
node.producerNode[i] = node.producerNode[lastIdx];
node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];
node.producerNode.length--;
node.producerIndexOfThis.length--;
node.nextProducerIndex--;
if (i < node.producerNode.length) {
const idxConsumer = node.producerIndexOfThis[i];
const producer = node.producerNode[i];
assertProducerNode(producer);
producer.liveConsumerIndexOfThis[idxConsumer] = i;
}
}
}
getPending() {
if (!(0, Signal2.isWatcher)(this)) throw new TypeError("Called getPending without Watcher receiver");
return this[NODE].producerNode.filter((n) => n.dirty).map((n) => n.wrapper);
}
}
_a2 = NODE;
_brand3 = /* @__PURE__ */ new WeakSet();
_assertSignals = /* @__PURE__ */ new WeakSet();
assertSignals_fn = function(signals) {
for (const signal of signals) if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) throw new TypeError("Called watch/unwatch without a Computed or State argument");
};
Signal2.isWatcher = (w) => __privateIn(_brand3, w);
subtle2.Watcher = Watcher;
function currentComputed() {
var _a3;
return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;
}
subtle2.currentComputed = currentComputed;
subtle2.watched = Symbol("watched");
subtle2.unwatched = Symbol("unwatched");
})(Signal2.subtle || (Signal2.subtle = {}));
})(Signal || (Signal = {}));
/**
* @license
* Copyright 2023 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const s$1 = new Signal.subtle.Watcher(() => {
i$2 || (i$2 = !0, queueMicrotask(() => {
i$2 = !1;
for (const t of s$1.getPending()) t.get();
s$1.watch();
}));
}), h$3 = Symbol("SignalWatcherBrand"), e$3 = new FinalizationRegistry((i) => {
i.unwatch(...Signal.subtle.introspectSources(i));
}), n$4 = /* @__PURE__ */ new WeakMap();
function o$7(i) {
return !0 === i[h$3] ? (console.warn("SignalWatcher should not be applied to the same class more than once."), i) : class extends i {
constructor() {
super(...arguments), this._$St = /* @__PURE__ */ new Map(), this._$So = new Signal.State(0), this._$Si = !1;
}
_$Sl() {
var t, i;
const s = [], h = [];
this._$St.forEach((t, i) => {
((null == t ? void 0 : t.beforeUpdate) ? s : h).push(i);
});
const e = null === (t = this.h) || void 0 === t ? void 0 : t.getPending().filter((t) => t !== this._$Su && !this._$St.has(t));
s.forEach((t) => t.get()), null === (i = this._$Su) || void 0 === i || i.get(), e.forEach((t) => t.get()), h.forEach((t) => t.get());
}
_$Sv() {
this.isUpdatePending || queueMicrotask(() => {
this.isUpdatePending || this._$Sl();
});
}
_$S_() {
if (void 0 !== this.h) return;
this._$Su = new Signal.Computed(() => {
this._$So.get(), super.performUpdate();
});
const i = this.h = new Signal.subtle.Watcher(function() {
const t = n$4.get(this);
void 0 !== t && (!1 === t._$Si && (new Set(this.getPending()).has(t._$Su) ? t.requestUpdate() : t._$Sv()), this.watch());
});
n$4.set(i, this), e$3.register(this, i), i.watch(this._$Su), i.watch(...Array.from(this._$St).map(([t]) => t));
}
_$Sp() {
if (void 0 === this.h) return;
let i = !1;
this.h.unwatch(...Signal.subtle.introspectSources(this.h).filter((t) => {
var s;
const h = !0 !== (null === (s = this._$St.get(t)) || void 0 === s ? void 0 : s.manualDispose);
return h && this._$St.delete(t), i || (i = !h), h;
})), i || (this._$Su = void 0, this.h = void 0, this._$St.clear());
}
updateEffect(i, s) {
var h;
this._$S_();
const e = new Signal.Computed(() => {
i();
});
return this.h.watch(e), this._$St.set(e, s), null !== (h = null == s ? void 0 : s.beforeUpdate) && void 0 !== h && h ? Signal.subtle.untrack(() => e.get()) : this.updateComplete.then(() => Signal.subtle.untrack(() => e.get())), () => {
this._$St.delete(e), this.h.unwatch(e), !1 === this.isConnected && this._$Sp();
};
}
performUpdate() {
this.isUpdatePending && (this._$S_(), this._$Si = !0, this._$So.set(this._$So.get() + 1), this._$Si = !1, this._$Sl());
}
connectedCallback() {
super.connectedCallback(), this.requestUpdate();
}
disconnectedCallback() {
super.disconnectedCallback(), queueMicrotask(() => {
!1 === this.isConnected && this._$Sp();
});
}
};
}
/**
* @license
* Copyright 2017 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
const e = i._$AN;
if (void 0 === e) return !1;
for (const i of e) i._$AO?.(t, !1), s(i, t);
return !0;
}, o$6 = (i) => {
let t, e;
do {
if (void 0 === (t = i._$AM)) break;
e = t._$AN, e.delete(i), i = t;
} while (0 === e?.size);
}, r$3 = (i) => {
for (let t; t = i._$AM; i = t) {
let e = t._$AN;
if (void 0 === e) t._$AN = e = /* @__PURE__ */ new Set();
else if (e.has(i)) break;
e.add(i), c(t);
}
};
function h$2(i) {
void 0 !== this._$AN ? (o$6(this), this._$AM = i, r$3(this)) : this._$AM = i;
}
function n$3(i, t = !1, e = 0) {
const r = this._$AH, h = this._$AN;
if (void 0 !== h && 0 !== h.size) if (t) if (Array.isArray(r)) for (let i = e; i < r.length; i++) s(r[i], !1), o$6(r[i]);
else null != r && (s(r, !1), o$6(r));
else s(this, i);
}
const c = (i) => {
i.type == t$4.CHILD && (i._$AP ??= n$3, i._$AQ ??= h$2);
};
var f = class extends i$5 {
constructor() {
super(...arguments), this._$AN = void 0;
}
_$AT(i, t, e) {
super._$AT(i, t, e), r$3(this), this.isConnected = i._$AU;
}
_$AO(i, t = !0) {
i !== this.isConnected && (this.isConnected = i, i ? this.reconnected?.() : this.disconnected?.()), t && (s(this, i), o$6(this));
}
setValue(t) {
if (r$8(this._$Ct)) this._$Ct._$AI(t, this);
else {
const i = [...this._$Ct._$AH];
i[this._$Ci] = t, this._$Ct._$AI(i, this, 0);
}
}
disconnected() {}
reconnected() {}
};
/**
* @license
* Copyright 2023 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
let o$5 = !1;
const n$2 = new Signal.subtle.Watcher(async () => {
o$5 || (o$5 = !0, queueMicrotask(() => {
o$5 = !1;
for (const i of n$2.getPending()) i.get();
n$2.watch();
}));
});
var r$2 = class extends f {
_$S_() {
var i, t;
void 0 === this._$Sm && (this._$Sj = new Signal.Computed(() => {
var i;
const t = null === (i = this._$SW) || void 0 === i ? void 0 : i.get();
return this.setValue(t), t;
}), this._$Sm = null !== (t = null === (i = this._$Sk) || void 0 === i ? void 0 : i.h) && void 0 !== t ? t : n$2, this._$Sm.watch(this._$Sj), Signal.subtle.untrack(() => {
var i;
return null === (i = this._$Sj) || void 0 === i ? void 0 : i.get();
}));
}
_$Sp() {
void 0 !== this._$Sm && (this._$Sm.unwatch(this._$SW), this._$Sm = void 0);
}
render(i) {
return Signal.subtle.untrack(() => i.get());
}
update(i, [t]) {
var o, n;
return null !== (o = this._$Sk) && void 0 !== o || (this._$Sk = null === (n = i.options) || void 0 === n ? void 0 : n.host), t !== this._$SW && void 0 !== this._$SW && this._$Sp(), this._$SW = t, this._$S_(), Signal.subtle.untrack(() => this._$SW.get());
}
disconnected() {
this._$Sp();
}
reconnected() {
this._$S_();
}
};
const h$1 = e$10(r$2), m = (o) => (t, ...m) => o(t, ...m.map((o) => o instanceof Signal.State || o instanceof Signal.Computed ? h$1(o) : o));
m(b);
m(w);
Signal.State;
Signal.Computed;
/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
function* o$3(o, f) {
if (void 0 !== o) {
let i = 0;
for (const t of o) yield f(t, i++);
}
}
let pending = false;
let watcher = new Signal$1.subtle.Watcher(() => {
if (!pending) {
pending = true;
queueMicrotask(() => {
pending = false;
flushPending();
});
}
});
function flushPending() {
for (const signal of watcher.getPending()) signal.get();
watcher.watch();
}
/**
* ⚠️ WARNING: Nothing unwatches ⚠️
* This will produce a memory leak.
*/
function effect(cb) {
let c = new Signal$1.Computed(() => cb());
watcher.watch(c);
c.get();
return () => {
watcher.unwatch(c);
};
}
const themeContext = n$7("A2UITheme");
const structuralStyles = r$11(structuralStyles$1);
var ComponentRegistry = class {
constructor() {
this.registry = /* @__PURE__ */ new Map();
}
register(typeName, constructor, tagName) {
if (!/^[a-zA-Z0-9]+$/.test(typeName)) throw new Error(`[Registry] Invalid typeName '${typeName}'. Must be alphanumeric.`);
this.registry.set(typeName, constructor);
const actualTagName = tagName || `a2ui-custom-${typeName.toLowerCase()}`;
const existingName = customElements.getName(constructor);
if (existingName) {
if (existingName !== actualTagName) throw new Error(`Component ${typeName} is already registered as ${existingName}, but requested as ${actualTagName}.`);
return;
}
if (!customElements.get(actualTagName)) customElements.define(actualTagName, constructor);
}
get(typeName) {
return this.registry.get(typeName);
}
};
const componentRegistry = new ComponentRegistry();
var __runInitializers$19 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
var __esDecorate$19 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
let Root = (() => {
let _classDecorators = [t$1("a2ui-root")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = o$7(i$6);
let _instanceExtraInitializers = [];
let _surfaceId_decorators;
let _surfaceId_initializers = [];
let _surfaceId_extraInitializers = [];
let _component_decorators;
let _component_initializers = [];
let _component_extraInitializers = [];
let _theme_decorators;
let _theme_initializers = [];
let _theme_extraInitializers = [];
let _childComponents_decorators;
let _childComponents_initializers = [];
let _childComponents_extraInitializers = [];
let _processor_decorators;
let _processor_initializers = [];
let _processor_extraInitializers = [];
let _dataContextPath_decorators;
let _dataContextPath_initializers = [];
let _dataContextPath_extraInitializers = [];
let _enableCustomElements_decorators;
let _enableCustomElements_initializers = [];
let _enableCustomElements_extraInitializers = [];
let _set_weight_decorators;
var Root = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_surfaceId_decorators = [n$6()];
_component_decorators = [n$6()];
_theme_decorators = [c$1({ context: themeContext })];
_childComponents_decorators = [n$6({ attribute: false })];
_processor_decorators = [n$6({ attribute: false })];
_dataContextPath_decorators = [n$6()];
_enableCustomElements_decorators = [n$6()];
_set_weight_decorators = [n$6()];
__esDecorate$19(this, null, _surfaceId_decorators, {
kind: "accessor",
name: "surfaceId",
static: false,
private: false,
access: {
has: (obj) => "surfaceId" in obj,
get: (obj) => obj.surfaceId,
set: (obj, value) => {
obj.surfaceId = value;
}
},
metadata: _metadata
}, _surfaceId_initializers, _surfaceId_extraInitializers);
__esDecorate$19(this, null, _component_decorators, {
kind: "accessor",
name: "component",
static: false,
private: false,
access: {
has: (obj) => "component" in obj,
get: (obj) => obj.component,
set: (obj, value) => {
obj.component = value;
}
},
metadata: _metadata
}, _component_initializers, _component_extraInitializers);
__esDecorate$19(this, null, _theme_decorators, {
kind: "accessor",
name: "theme",
static: false,
private: false,
access: {
has: (obj) => "theme" in obj,
get: (obj) => obj.theme,
set: (obj, value) => {
obj.theme = value;
}
},
metadata: _metadata
}, _theme_initializers, _theme_extraInitializers);
__esDecorate$19(this, null, _childComponents_decorators, {
kind: "accessor",
name: "childComponents",
static: false,
private: false,
access: {
has: (obj) => "childComponents" in obj,
get: (obj) => obj.childComponents,
set: (obj, value) => {
obj.childComponents = value;
}
},
metadata: _metadata
}, _childComponents_initializers, _childComponents_extraInitializers);
__esDecorate$19(this, null, _processor_decorators, {
kind: "accessor",
name: "processor",
static: false,
private: false,
access: {
has: (obj) => "processor" in obj,
get: (obj) => obj.processor,
set: (obj, value) => {
obj.processor = value;
}
},
metadata: _metadata
}, _processor_initializers, _processor_extraInitializers);
__esDecorate$19(this, null, _dataContextPath_decorators, {
kind: "accessor",
name: "dataContextPath",
static: false,
private: false,
access: {
has: (obj) => "dataContextPath" in obj,
get: (obj) => obj.dataContextPath,
set: (obj, value) => {
obj.dataContextPath = value;
}
},
metadata: _metadata
}, _dataContextPath_initializers, _dataContextPath_extraInitializers);
__esDecorate$19(this, null, _enableCustomElements_decorators, {
kind: "accessor",
name: "enableCustomElements",
static: false,
private: false,
access: {
has: (obj) => "enableCustomElements" in obj,
get: (obj) => obj.enableCustomElements,
set: (obj, value) => {
obj.enableCustomElements = value;
}
},
metadata: _metadata
}, _enableCustomElements_initializers, _enableCustomElements_extraInitializers);
__esDecorate$19(this, null, _set_weight_decorators, {
kind: "setter",
name: "weight",
static: false,
private: false,
access: {
has: (obj) => "weight" in obj,
set: (obj, value) => {
obj.weight = value;
}
},
metadata: _metadata
}, null, _instanceExtraInitializers);
__esDecorate$19(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Root = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#surfaceId_accessor_storage = (__runInitializers$19(this, _instanceExtraInitializers), __runInitializers$19(this, _surfaceId_initializers, null));
get surfaceId() {
return this.#surfaceId_accessor_storage;
}
set surfaceId(value) {
this.#surfaceId_accessor_storage = value;
}
#component_accessor_storage = (__runInitializers$19(this, _surfaceId_extraInitializers), __runInitializers$19(this, _component_initializers, null));
get component() {
return this.#component_accessor_storage;
}
set component(value) {
this.#component_accessor_storage = value;
}
#theme_accessor_storage = (__runInitializers$19(this, _component_extraInitializers), __runInitializers$19(this, _theme_initializers, void 0));
get theme() {
return this.#theme_accessor_storage;
}
set theme(value) {
this.#theme_accessor_storage = value;
}
#childComponents_accessor_storage = (__runInitializers$19(this, _theme_extraInitializers), __runInitializers$19(this, _childComponents_initializers, null));
get childComponents() {
return this.#childComponents_accessor_storage;
}
set childComponents(value) {
this.#childComponents_accessor_storage = value;
}
#processor_accessor_storage = (__runInitializers$19(this, _childComponents_extraInitializers), __runInitializers$19(this, _processor_initializers, null));
get processor() {
return this.#processor_accessor_storage;
}
set processor(value) {
this.#processor_accessor_storage = value;
}
#dataContextPath_accessor_storage = (__runInitializers$19(this, _processor_extraInitializers), __runInitializers$19(this, _dataContextPath_initializers, ""));
get dataContextPath() {
return this.#dataContextPath_accessor_storage;
}
set dataContextPath(value) {
this.#dataContextPath_accessor_storage = value;
}
#enableCustomElements_accessor_storage = (__runInitializers$19(this, _dataContextPath_extraInitializers), __runInitializers$19(this, _enableCustomElements_initializers, false));
get enableCustomElements() {
return this.#enableCustomElements_accessor_storage;
}
set enableCustomElements(value) {
this.#enableCustomElements_accessor_storage = value;
}
set weight(weight) {
this.#weight = weight;
this.style.setProperty("--weight", `${weight}`);
}
get weight() {
return this.#weight;
}
#weight = (__runInitializers$19(this, _enableCustomElements_extraInitializers), 1);
static {
this.styles = [structuralStyles, i$9`
:host {
display: flex;
flex-direction: column;
gap: 8px;
max-height: 80%;
}
`];
}
/**
* Holds the cleanup function for our effect.
* We need this to stop the effect when the component is disconnected.
*/
#lightDomEffectDisposer = null;
willUpdate(changedProperties) {
if (changedProperties.has("childComponents")) {
if (this.#lightDomEffectDisposer) this.#lightDomEffectDisposer();
this.#lightDomEffectDisposer = effect(() => {
const allChildren = this.childComponents ?? null;
D(this.renderComponentTree(allChildren), this, { host: this });
});
}
}
/**
* Clean up the effect when the component is removed from the DOM.
*/
disconnectedCallback() {
super.disconnectedCallback();
if (this.#lightDomEffectDisposer) this.#lightDomEffectDisposer();
}
/**
* Turns the SignalMap into a renderable TemplateResult for Lit.
*/
renderComponentTree(components) {
if (!components) return A;
if (!Array.isArray(components)) return A;
return b` ${o$3(components, (component) => {
if (this.enableCustomElements) {
const elCtor = componentRegistry.get(component.type) || customElements.get(component.type);
if (elCtor) {
const node = component;
const el = new elCtor();
el.id = node.id;
if (node.slotName) el.slot = node.slotName;
el.component = node;
el.weight = node.weight ?? "initial";
el.processor = this.processor;
el.surfaceId = this.surfaceId;
el.dataContextPath = node.dataContextPath ?? "/";
for (const [prop, val] of Object.entries(component.properties)) el[prop] = val;
return b`${el}`;
}
}
switch (component.type) {
case "List": {
const node = component;
const childComponents = node.properties.children;
return b`<a2ui-list
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.direction=${node.properties.direction ?? "vertical"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.childComponents=${childComponents}
.enableCustomElements=${this.enableCustomElements}
></a2ui-list>`;
}
case "Card": {
const node = component;
let childComponents = node.properties.children;
if (!childComponents && node.properties.child) childComponents = [node.properties.child];
return b`<a2ui-card
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.childComponents=${childComponents}
.dataContextPath=${node.dataContextPath ?? ""}
.enableCustomElements=${this.enableCustomElements}
></a2ui-card>`;
}
case "Column": {
const node = component;
return b`<a2ui-column
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.childComponents=${node.properties.children ?? null}
.dataContextPath=${node.dataContextPath ?? ""}
.alignment=${node.properties.alignment ?? "stretch"}
.distribution=${node.properties.distribution ?? "start"}
.enableCustomElements=${this.enableCustomElements}
></a2ui-column>`;
}
case "Row": {
const node = component;
return b`<a2ui-row
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.childComponents=${node.properties.children ?? null}
.dataContextPath=${node.dataContextPath ?? ""}
.alignment=${node.properties.alignment ?? "stretch"}
.distribution=${node.properties.distribution ?? "start"}
.enableCustomElements=${this.enableCustomElements}
></a2ui-row>`;
}
case "Image": {
const node = component;
return b`<a2ui-image
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.url=${node.properties.url ?? null}
.dataContextPath=${node.dataContextPath ?? ""}
.usageHint=${node.properties.usageHint}
.fit=${node.properties.fit}
.enableCustomElements=${this.enableCustomElements}
></a2ui-image>`;
}
case "Icon": {
const node = component;
return b`<a2ui-icon
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.name=${node.properties.name ?? null}
.dataContextPath=${node.dataContextPath ?? ""}
.enableCustomElements=${this.enableCustomElements}
></a2ui-icon>`;
}
case "AudioPlayer": {
const node = component;
return b`<a2ui-audioplayer
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.url=${node.properties.url ?? null}
.dataContextPath=${node.dataContextPath ?? ""}
.enableCustomElements=${this.enableCustomElements}
></a2ui-audioplayer>`;
}
case "Button": {
const node = component;
return b`<a2ui-button
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath ?? ""}
.action=${node.properties.action}
.childComponents=${[node.properties.child]}
.enableCustomElements=${this.enableCustomElements}
></a2ui-button>`;
}
case "Text": {
const node = component;
return b`<a2ui-text
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.model=${this.processor}
.surfaceId=${this.surfaceId}
.processor=${this.processor}
.dataContextPath=${node.dataContextPath}
.text=${node.properties.text}
.usageHint=${node.properties.usageHint}
.enableCustomElements=${this.enableCustomElements}
></a2ui-text>`;
}
case "CheckBox": {
const node = component;
return b`<a2ui-checkbox
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath ?? ""}
.label=${node.properties.label}
.value=${node.properties.value}
.enableCustomElements=${this.enableCustomElements}
></a2ui-checkbox>`;
}
case "DateTimeInput": {
const node = component;
return b`<a2ui-datetimeinput
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath ?? ""}
.enableDate=${node.properties.enableDate ?? true}
.enableTime=${node.properties.enableTime ?? true}
.outputFormat=${node.properties.outputFormat}
.value=${node.properties.value}
.enableCustomElements=${this.enableCustomElements}
></a2ui-datetimeinput>`;
}
case "Divider": {
const node = component;
return b`<a2ui-divider
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.thickness=${node.properties.thickness}
.axis=${node.properties.axis}
.color=${node.properties.color}
.enableCustomElements=${this.enableCustomElements}
></a2ui-divider>`;
}
case "MultipleChoice": {
const node = component;
return b`<a2ui-multiplechoice
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.options=${node.properties.options}
.maxAllowedSelections=${node.properties.maxAllowedSelections}
.selections=${node.properties.selections}
.enableCustomElements=${this.enableCustomElements}
></a2ui-multiplechoice>`;
}
case "Slider": {
const node = component;
return b`<a2ui-slider
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.value=${node.properties.value}
.minValue=${node.properties.minValue}
.maxValue=${node.properties.maxValue}
.enableCustomElements=${this.enableCustomElements}
></a2ui-slider>`;
}
case "TextField": {
const node = component;
return b`<a2ui-textfield
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.label=${node.properties.label}
.text=${node.properties.text}
.type=${node.properties.type}
.validationRegexp=${node.properties.validationRegexp}
.enableCustomElements=${this.enableCustomElements}
></a2ui-textfield>`;
}
case "Video": {
const node = component;
return b`<a2ui-video
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.url=${node.properties.url}
.enableCustomElements=${this.enableCustomElements}
></a2ui-video>`;
}
case "Tabs": {
const node = component;
const titles = [];
const childComponents = [];
if (node.properties.tabItems) for (const item of node.properties.tabItems) {
titles.push(item.title);
childComponents.push(item.child);
}
return b`<a2ui-tabs
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.titles=${titles}
.childComponents=${childComponents}
.enableCustomElements=${this.enableCustomElements}
></a2ui-tabs>`;
}
case "Modal": {
const node = component;
const childComponents = [node.properties.entryPointChild, node.properties.contentChild];
node.properties.entryPointChild.slotName = "entry";
return b`<a2ui-modal
id=${node.id}
slot=${node.slotName ? node.slotName : A}
.component=${node}
.weight=${node.weight ?? "initial"}
.processor=${this.processor}
.surfaceId=${this.surfaceId}
.dataContextPath=${node.dataContextPath}
.childComponents=${childComponents}
.enableCustomElements=${this.enableCustomElements}
></a2ui-modal>`;
}
default: return this.renderCustomComponent(component);
}
})}`;
}
renderCustomComponent(component) {
if (!this.enableCustomElements) return;
const node = component;
const elCtor = componentRegistry.get(component.type) || customElements.get(component.type);
if (!elCtor) return b`Unknown element ${component.type}`;
const el = new elCtor();
el.id = node.id;
if (node.slotName) el.slot = node.slotName;
el.component = node;
el.weight = node.weight ?? "initial";
el.processor = this.processor;
el.surfaceId = this.surfaceId;
el.dataContextPath = node.dataContextPath ?? "/";
for (const [prop, val] of Object.entries(component.properties)) el[prop] = val;
return b`${el}`;
}
render() {
return b`<slot></slot>`;
}
static {
__runInitializers$19(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
constructor(t) {
if (super(t), t.type !== t$4.ATTRIBUTE || "class" !== t.name || t.strings?.length > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");
}
render(t) {
return " " + Object.keys(t).filter((s) => t[s]).join(" ") + " ";
}
update(s, [i]) {
if (void 0 === this.st) {
this.st = /* @__PURE__ */ new Set(), void 0 !== s.strings && (this.nt = new Set(s.strings.join(" ").split(/\s/).filter((t) => "" !== t)));
for (const t in i) i[t] && !this.nt?.has(t) && this.st.add(t);
return this.render(i);
}
const r = s.element.classList;
for (const t of this.st) t in i || (r.remove(t), this.st.delete(t));
for (const t in i) {
const s = !!i[t];
s === this.st.has(t) || this.nt?.has(t) || (s ? (r.add(t), this.st.add(t)) : (r.remove(t), this.st.delete(t)));
}
return E;
}
});
/**
* @license
* Copyright 2018 Google LLC
* SPDX-License-Identifier: BSD-3-Clause
*/
constructor(t) {
if (super(t), t.type !== t$4.ATTRIBUTE || "style" !== t.name || t.strings?.length > 2) throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.");
}
render(t) {
return Object.keys(t).reduce((e, r) => {
const s = t[r];
return null == s ? e : e + `${r = r.includes("-") ? r : r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, "-$&").toLowerCase()}:${s};`;
}, "");
}
update(e, [r]) {
const { style: s } = e.element;
if (void 0 === this.ft) return this.ft = new Set(Object.keys(r)), this.render(r);
for (const t of this.ft) null == r[t] && (this.ft.delete(t), t.includes("-") ? s.removeProperty(t) : s[t] = null);
for (const t in r) {
const e = r[t];
if (null != e) {
this.ft.add(t);
const r = "string" == typeof e && e.endsWith(i);
t.includes("-") || r ? s.setProperty(t, r ? e.slice(0, -11) : e, r ? n$1 : "") : s[t] = e;
}
}
return E;
}
});
var __esDecorate$18 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$18 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-audioplayer")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _url_decorators;
let _url_initializers = [];
let _url_extraInitializers = [];
var Audio = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_url_decorators = [n$6()];
__esDecorate$18(this, null, _url_decorators, {
kind: "accessor",
name: "url",
static: false,
private: false,
access: {
has: (obj) => "url" in obj,
get: (obj) => obj.url,
set: (obj, value) => {
obj.url = value;
}
},
metadata: _metadata
}, _url_initializers, _url_extraInitializers);
__esDecorate$18(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Audio = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#url_accessor_storage = __runInitializers$18(this, _url_initializers, null);
get url() {
return this.#url_accessor_storage;
}
set url(value) {
this.#url_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
audio {
display: block;
width: 100%;
}
`];
}
#renderAudio() {
if (!this.url) return A;
if (this.url && typeof this.url === "object") {
if ("literalString" in this.url) return b`<audio controls src=${this.url.literalString} />`;
else if ("literal" in this.url) return b`<audio controls src=${this.url.literal} />`;
else if (this.url && "path" in this.url && this.url.path) {
if (!this.processor || !this.component) return b`(no processor)`;
const audioUrl = this.processor.getData(this.component, this.url.path, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
if (!audioUrl) return b`Invalid audio URL`;
if (typeof audioUrl !== "string") return b`Invalid audio URL`;
return b`<audio controls src=${audioUrl} />`;
}
}
return b`(empty)`;
}
render() {
return b`<section
class=${e$2(this.theme.components.AudioPlayer)}
style=${this.theme.additionalStyles?.AudioPlayer ? o$2(this.theme.additionalStyles?.AudioPlayer) : A}
>
${this.#renderAudio()}
</section>`;
}
constructor() {
super(...arguments);
__runInitializers$18(this, _url_extraInitializers);
}
static {
__runInitializers$18(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$17 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$17 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-button")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _action_decorators;
let _action_initializers = [];
let _action_extraInitializers = [];
var Button = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_action_decorators = [n$6()];
__esDecorate$17(this, null, _action_decorators, {
kind: "accessor",
name: "action",
static: false,
private: false,
access: {
has: (obj) => "action" in obj,
get: (obj) => obj.action,
set: (obj, value) => {
obj.action = value;
}
},
metadata: _metadata
}, _action_initializers, _action_extraInitializers);
__esDecorate$17(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Button = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#action_accessor_storage = __runInitializers$17(this, _action_initializers, null);
get action() {
return this.#action_accessor_storage;
}
set action(value) {
this.#action_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
:host {
display: block;
flex: var(--weight);
min-height: 0;
}
`];
}
render() {
return b`<button
class=${e$2(this.theme.components.Button)}
style=${this.theme.additionalStyles?.Button ? o$2(this.theme.additionalStyles?.Button) : A}
@click=${() => {
if (!this.action) return;
const evt = new StateEvent({
eventType: "a2ui.action",
action: this.action,
dataContextPath: this.dataContextPath,
sourceComponentId: this.id,
sourceComponent: this.component
});
this.dispatchEvent(evt);
}}
>
<slot></slot>
</button>`;
}
constructor() {
super(...arguments);
__runInitializers$17(this, _action_extraInitializers);
}
static {
__runInitializers$17(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$16 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$16 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-card")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
var Card = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate$16(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Card = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
section {
height: 100%;
width: 100%;
min-height: 0;
overflow: auto;
::slotted(*) {
height: 100%;
width: 100%;
}
}
`];
}
render() {
return b` <section
class=${e$2(this.theme.components.Card)}
style=${this.theme.additionalStyles?.Card ? o$2(this.theme.additionalStyles?.Card) : A}
>
<slot></slot>
</section>`;
}
static {
__runInitializers$16(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$15 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$15 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-checkbox")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _value_decorators;
let _value_initializers = [];
let _value_extraInitializers = [];
let _label_decorators;
let _label_initializers = [];
let _label_extraInitializers = [];
var Checkbox = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_value_decorators = [n$6()];
_label_decorators = [n$6()];
__esDecorate$15(this, null, _value_decorators, {
kind: "accessor",
name: "value",
static: false,
private: false,
access: {
has: (obj) => "value" in obj,
get: (obj) => obj.value,
set: (obj, value) => {
obj.value = value;
}
},
metadata: _metadata
}, _value_initializers, _value_extraInitializers);
__esDecorate$15(this, null, _label_decorators, {
kind: "accessor",
name: "label",
static: false,
private: false,
access: {
has: (obj) => "label" in obj,
get: (obj) => obj.label,
set: (obj, value) => {
obj.label = value;
}
},
metadata: _metadata
}, _label_initializers, _label_extraInitializers);
__esDecorate$15(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Checkbox = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#value_accessor_storage = __runInitializers$15(this, _value_initializers, null);
get value() {
return this.#value_accessor_storage;
}
set value(value) {
this.#value_accessor_storage = value;
}
#label_accessor_storage = (__runInitializers$15(this, _value_extraInitializers), __runInitializers$15(this, _label_initializers, null));
get label() {
return this.#label_accessor_storage;
}
set label(value) {
this.#label_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
input {
display: block;
width: 100%;
}
.description {
font-size: 14px;
margin-bottom: 4px;
}
`];
}
#setBoundValue(value) {
if (!this.value || !this.processor) return;
if (!("path" in this.value)) return;
if (!this.value.path) return;
this.processor.setData(this.component, this.value.path, value, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
}
#renderField(value) {
return b` <section
class=${e$2(this.theme.components.CheckBox.container)}
style=${this.theme.additionalStyles?.CheckBox ? o$2(this.theme.additionalStyles?.CheckBox) : A}
>
<input
class=${e$2(this.theme.components.CheckBox.element)}
autocomplete="off"
@input=${(evt) => {
if (!(evt.target instanceof HTMLInputElement)) return;
this.#setBoundValue(evt.target.value);
}}
id="data"
type="checkbox"
.value=${value}
/>
<label class=${e$2(this.theme.components.CheckBox.label)} for="data"
>${this.label?.literalString}</label
>
</section>`;
}
render() {
if (this.value && typeof this.value === "object") {
if ("literalBoolean" in this.value && this.value.literalBoolean) return this.#renderField(this.value.literalBoolean);
else if ("literal" in this.value && this.value.literal !== void 0) return this.#renderField(this.value.literal);
else if (this.value && "path" in this.value && this.value.path) {
if (!this.processor || !this.component) return b`(no model)`;
const textValue = this.processor.getData(this.component, this.value.path, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
if (textValue === null) return b`Invalid label`;
if (typeof textValue !== "boolean") return b`Invalid label`;
return this.#renderField(textValue);
}
}
return A;
}
constructor() {
super(...arguments);
__runInitializers$15(this, _label_extraInitializers);
}
static {
__runInitializers$15(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$14 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$14 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-column")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _alignment_decorators;
let _alignment_initializers = [];
let _alignment_extraInitializers = [];
let _distribution_decorators;
let _distribution_initializers = [];
let _distribution_extraInitializers = [];
var Column = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_alignment_decorators = [n$6({
reflect: true,
type: String
})];
_distribution_decorators = [n$6({
reflect: true,
type: String
})];
__esDecorate$14(this, null, _alignment_decorators, {
kind: "accessor",
name: "alignment",
static: false,
private: false,
access: {
has: (obj) => "alignment" in obj,
get: (obj) => obj.alignment,
set: (obj, value) => {
obj.alignment = value;
}
},
metadata: _metadata
}, _alignment_initializers, _alignment_extraInitializers);
__esDecorate$14(this, null, _distribution_decorators, {
kind: "accessor",
name: "distribution",
static: false,
private: false,
access: {
has: (obj) => "distribution" in obj,
get: (obj) => obj.distribution,
set: (obj, value) => {
obj.distribution = value;
}
},
metadata: _metadata
}, _distribution_initializers, _distribution_extraInitializers);
__esDecorate$14(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Column = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#alignment_accessor_storage = __runInitializers$14(this, _alignment_initializers, "stretch");
get alignment() {
return this.#alignment_accessor_storage;
}
set alignment(value) {
this.#alignment_accessor_storage = value;
}
#distribution_accessor_storage = (__runInitializers$14(this, _alignment_extraInitializers), __runInitializers$14(this, _distribution_initializers, "start"));
get distribution() {
return this.#distribution_accessor_storage;
}
set distribution(value) {
this.#distribution_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: flex;
flex: var(--weight);
}
section {
display: flex;
flex-direction: column;
min-width: 100%;
height: 100%;
}
:host([alignment="start"]) section {
align-items: start;
}
:host([alignment="center"]) section {
align-items: center;
}
:host([alignment="end"]) section {
align-items: end;
}
:host([alignment="stretch"]) section {
align-items: stretch;
}
:host([distribution="start"]) section {
justify-content: start;
}
:host([distribution="center"]) section {
justify-content: center;
}
:host([distribution="end"]) section {
justify-content: end;
}
:host([distribution="spaceBetween"]) section {
justify-content: space-between;
}
:host([distribution="spaceAround"]) section {
justify-content: space-around;
}
:host([distribution="spaceEvenly"]) section {
justify-content: space-evenly;
}
`];
}
render() {
return b`<section
class=${e$2(this.theme.components.Column)}
style=${this.theme.additionalStyles?.Column ? o$2(this.theme.additionalStyles?.Column) : A}
>
<slot></slot>
</section>`;
}
constructor() {
super(...arguments);
__runInitializers$14(this, _distribution_extraInitializers);
}
static {
__runInitializers$14(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$13 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$13 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-datetimeinput")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _value_decorators;
let _value_initializers = [];
let _value_extraInitializers = [];
let _label_decorators;
let _label_initializers = [];
let _label_extraInitializers = [];
let _enableDate_decorators;
let _enableDate_initializers = [];
let _enableDate_extraInitializers = [];
let _enableTime_decorators;
let _enableTime_initializers = [];
let _enableTime_extraInitializers = [];
var DateTimeInput = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_value_decorators = [n$6()];
_label_decorators = [n$6()];
_enableDate_decorators = [n$6({
reflect: false,
type: Boolean
})];
_enableTime_decorators = [n$6({
reflect: false,
type: Boolean
})];
__esDecorate$13(this, null, _value_decorators, {
kind: "accessor",
name: "value",
static: false,
private: false,
access: {
has: (obj) => "value" in obj,
get: (obj) => obj.value,
set: (obj, value) => {
obj.value = value;
}
},
metadata: _metadata
}, _value_initializers, _value_extraInitializers);
__esDecorate$13(this, null, _label_decorators, {
kind: "accessor",
name: "label",
static: false,
private: false,
access: {
has: (obj) => "label" in obj,
get: (obj) => obj.label,
set: (obj, value) => {
obj.label = value;
}
},
metadata: _metadata
}, _label_initializers, _label_extraInitializers);
__esDecorate$13(this, null, _enableDate_decorators, {
kind: "accessor",
name: "enableDate",
static: false,
private: false,
access: {
has: (obj) => "enableDate" in obj,
get: (obj) => obj.enableDate,
set: (obj, value) => {
obj.enableDate = value;
}
},
metadata: _metadata
}, _enableDate_initializers, _enableDate_extraInitializers);
__esDecorate$13(this, null, _enableTime_decorators, {
kind: "accessor",
name: "enableTime",
static: false,
private: false,
access: {
has: (obj) => "enableTime" in obj,
get: (obj) => obj.enableTime,
set: (obj, value) => {
obj.enableTime = value;
}
},
metadata: _metadata
}, _enableTime_initializers, _enableTime_extraInitializers);
__esDecorate$13(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
DateTimeInput = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#value_accessor_storage = __runInitializers$13(this, _value_initializers, null);
get value() {
return this.#value_accessor_storage;
}
set value(value) {
this.#value_accessor_storage = value;
}
#label_accessor_storage = (__runInitializers$13(this, _value_extraInitializers), __runInitializers$13(this, _label_initializers, null));
get label() {
return this.#label_accessor_storage;
}
set label(value) {
this.#label_accessor_storage = value;
}
#enableDate_accessor_storage = (__runInitializers$13(this, _label_extraInitializers), __runInitializers$13(this, _enableDate_initializers, true));
get enableDate() {
return this.#enableDate_accessor_storage;
}
set enableDate(value) {
this.#enableDate_accessor_storage = value;
}
#enableTime_accessor_storage = (__runInitializers$13(this, _enableDate_extraInitializers), __runInitializers$13(this, _enableTime_initializers, true));
get enableTime() {
return this.#enableTime_accessor_storage;
}
set enableTime(value) {
this.#enableTime_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
input {
display: block;
border-radius: 8px;
padding: 8px;
border: 1px solid #ccc;
width: 100%;
}
`];
}
#setBoundValue(value) {
if (!this.value || !this.processor) return;
if (!("path" in this.value)) return;
if (!this.value.path) return;
this.processor.setData(this.component, this.value.path, value, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
}
#renderField(value) {
return b`<section
class=${e$2(this.theme.components.DateTimeInput.container)}
>
<label
for="data"
class=${e$2(this.theme.components.DateTimeInput.label)}
>${this.#getPlaceholderText()}</label
>
<input
autocomplete="off"
class=${e$2(this.theme.components.DateTimeInput.element)}
style=${this.theme.additionalStyles?.DateTimeInput ? o$2(this.theme.additionalStyles?.DateTimeInput) : A}
@input=${(evt) => {
if (!(evt.target instanceof HTMLInputElement)) return;
this.#setBoundValue(evt.target.value);
}}
id="data"
name="data"
.value=${this.#formatInputValue(value)}
.placeholder=${this.#getPlaceholderText()}
.type=${this.#getInputType()}
/>
</section>`;
}
#getInputType() {
if (this.enableDate && this.enableTime) return "datetime-local";
else if (this.enableDate) return "date";
else if (this.enableTime) return "time";
return "datetime-local";
}
#formatInputValue(value) {
const inputType = this.#getInputType();
const date = value ? new Date(value) : null;
if (!date || isNaN(date.getTime())) return "";
const year = this.#padNumber(date.getFullYear());
const month = this.#padNumber(date.getMonth());
const day = this.#padNumber(date.getDate());
const hours = this.#padNumber(date.getHours());
const minutes = this.#padNumber(date.getMinutes());
if (inputType === "date") return `${year}-${month}-${day}`;
else if (inputType === "time") return `${hours}:${minutes}`;
return `${year}-${month}-${day}T${hours}:${minutes}`;
}
#padNumber(value) {
return value.toString().padStart(2, "0");
}
#getPlaceholderText() {
const inputType = this.#getInputType();
if (inputType === "date") return "Date";
else if (inputType === "time") return "Time";
return "Date & Time";
}
render() {
if (this.value && typeof this.value === "object") {
if ("literalString" in this.value && this.value.literalString) return this.#renderField(this.value.literalString);
else if ("literal" in this.value && this.value.literal !== void 0) return this.#renderField(this.value.literal);
else if (this.value && "path" in this.value && this.value.path) {
if (!this.processor || !this.component) return b`(no model)`;
const textValue = this.processor.getData(this.component, this.value.path, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
if (typeof textValue !== "string") return b`(invalid)`;
return this.#renderField(textValue);
}
}
return A;
}
constructor() {
super(...arguments);
__runInitializers$13(this, _enableTime_extraInitializers);
}
static {
__runInitializers$13(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$12 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$12 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-divider")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
var Divider = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate$12(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Divider = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
static {
this.styles = [structuralStyles, i$9`
:host {
display: block;
min-height: 0;
overflow: auto;
}
hr {
height: 1px;
background: #ccc;
border: none;
}
`];
}
render() {
return b`<hr
class=${e$2(this.theme.components.Divider)}
style=${this.theme.additionalStyles?.Divider ? o$2(this.theme.additionalStyles?.Divider) : A}
/>`;
}
static {
__runInitializers$12(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$11 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$11 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-icon")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _name_decorators;
let _name_initializers = [];
let _name_extraInitializers = [];
var Icon = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_name_decorators = [n$6()];
__esDecorate$11(this, null, _name_decorators, {
kind: "accessor",
name: "name",
static: false,
private: false,
access: {
has: (obj) => "name" in obj,
get: (obj) => obj.name,
set: (obj, value) => {
obj.name = value;
}
},
metadata: _metadata
}, _name_initializers, _name_extraInitializers);
__esDecorate$11(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Icon = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#name_accessor_storage = __runInitializers$11(this, _name_initializers, null);
get name() {
return this.#name_accessor_storage;
}
set name(value) {
this.#name_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
`];
}
#renderIcon() {
if (!this.name) return A;
const render = (url) => {
url = url.replace(/([A-Z])/gm, "_$1").toLocaleLowerCase();
return b`<span class="g-icon">${url}</span>`;
};
if (this.name && typeof this.name === "object") {
if ("literalString" in this.name) return render(this.name.literalString ?? "");
else if ("literal" in this.name) return render(this.name.literal ?? "");
else if (this.name && "path" in this.name && this.name.path) {
if (!this.processor || !this.component) return b`(no model)`;
const iconName = this.processor.getData(this.component, this.name.path, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
if (!iconName) return b`Invalid icon name`;
if (typeof iconName !== "string") return b`Invalid icon name`;
return render(iconName);
}
}
return b`(empty)`;
}
render() {
return b`<section
class=${e$2(this.theme.components.Icon)}
style=${this.theme.additionalStyles?.Icon ? o$2(this.theme.additionalStyles?.Icon) : A}
>
${this.#renderIcon()}
</section>`;
}
constructor() {
super(...arguments);
__runInitializers$11(this, _name_extraInitializers);
}
static {
__runInitializers$11(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$10 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$10 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
return useValue ? value : void 0;
};
(() => {
let _classDecorators = [t$1("a2ui-image")];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = Root;
let _url_decorators;
let _url_initializers = [];
let _url_extraInitializers = [];
let _usageHint_decorators;
let _usageHint_initializers = [];
let _usageHint_extraInitializers = [];
let _fit_decorators;
let _fit_initializers = [];
let _fit_extraInitializers = [];
var Image = class extends _classSuper {
static {
_classThis = this;
}
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_url_decorators = [n$6()];
_usageHint_decorators = [n$6()];
_fit_decorators = [n$6()];
__esDecorate$10(this, null, _url_decorators, {
kind: "accessor",
name: "url",
static: false,
private: false,
access: {
has: (obj) => "url" in obj,
get: (obj) => obj.url,
set: (obj, value) => {
obj.url = value;
}
},
metadata: _metadata
}, _url_initializers, _url_extraInitializers);
__esDecorate$10(this, null, _usageHint_decorators, {
kind: "accessor",
name: "usageHint",
static: false,
private: false,
access: {
has: (obj) => "usageHint" in obj,
get: (obj) => obj.usageHint,
set: (obj, value) => {
obj.usageHint = value;
}
},
metadata: _metadata
}, _usageHint_initializers, _usageHint_extraInitializers);
__esDecorate$10(this, null, _fit_decorators, {
kind: "accessor",
name: "fit",
static: false,
private: false,
access: {
has: (obj) => "fit" in obj,
get: (obj) => obj.fit,
set: (obj, value) => {
obj.fit = value;
}
},
metadata: _metadata
}, _fit_initializers, _fit_extraInitializers);
__esDecorate$10(null, _classDescriptor = { value: _classThis }, _classDecorators, {
kind: "class",
name: _classThis.name,
metadata: _metadata
}, null, _classExtraInitializers);
Image = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, {
enumerable: true,
configurable: true,
writable: true,
value: _metadata
});
}
#url_accessor_storage = __runInitializers$10(this, _url_initializers, null);
get url() {
return this.#url_accessor_storage;
}
set url(value) {
this.#url_accessor_storage = value;
}
#usageHint_accessor_storage = (__runInitializers$10(this, _url_extraInitializers), __runInitializers$10(this, _usageHint_initializers, null));
get usageHint() {
return this.#usageHint_accessor_storage;
}
set usageHint(value) {
this.#usageHint_accessor_storage = value;
}
#fit_accessor_storage = (__runInitializers$10(this, _usageHint_extraInitializers), __runInitializers$10(this, _fit_initializers, null));
get fit() {
return this.#fit_accessor_storage;
}
set fit(value) {
this.#fit_accessor_storage = value;
}
static {
this.styles = [structuralStyles, i$9`
* {
box-sizing: border-box;
}
:host {
display: block;
flex: var(--weight);
min-height: 0;
overflow: auto;
}
img {
display: block;
width: 100%;
height: 100%;
object-fit: var(--object-fit, fill);
}
`];
}
#renderImage() {
if (!this.url) return A;
const render = (url) => {
return b`<img src=${url} />`;
};
if (this.url && typeof this.url === "object") {
if ("literalString" in this.url) return render(this.url.literalString ?? "");
else if ("literal" in this.url) return render(this.url.literal ?? "");
else if (this.url && "path" in this.url && this.url.path) {
if (!this.processor || !this.component) return b`(no model)`;
const imageUrl = this.processor.getData(this.component, this.url.path, this.surfaceId ?? A2uiMessageProcessor.DEFAULT_SURFACE_ID);
if (!imageUrl) return b`Invalid image URL`;
if (typeof imageUrl !== "string") return b`Invalid image URL`;
return render(imageUrl);
}
}
return b`(empty)`;
}
render() {
return b`<section
class=${e$2(merge(this.theme.components.Image.all, this.usageHint ? this.theme.components.Image[this.usageHint] : {}))}
style=${o$2({
...this.theme.additionalStyles?.Image ?? {},
"--object-fit": this.fit ?? "fill"
})}
>
${this.#renderImage()}
</section>`;
}
constructor() {
super(...arguments);
__runInitializers$10(this, _fit_extraInitializers);
}
static {
__runInitializers$10(_classThis, _classExtraInitializers);
}
};
return _classThis;
})();
var __esDecorate$9 = function(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) {
if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
return f;
}
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function(f) {
if (done) throw new TypeError("Cannot add initializers after decoration has completed");
extraInitializers.push(accept(f || null));
};
var result = (0, decorators[i])(kind === "accessor" ? {
get: descriptor.get,
set: descriptor.set
} : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
} else if (_ = accept(result)) if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers$9 = function(thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); | | |