@polyxd/web 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +190 -0
- package/README.md +79 -0
- package/adapters/PolyxdSurface.svelte +65 -0
- package/adapters/PolyxdSurface.vue +61 -0
- package/dist/components/action-bar.d.ts +14 -0
- package/dist/components/action-bar.js +69 -0
- package/dist/components/action-bar.js.map +1 -0
- package/dist/components/avatar.d.ts +9 -0
- package/dist/components/avatar.js +16 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/chart.d.ts +5 -0
- package/dist/components/chart.js +132 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/content.d.ts +20 -0
- package/dist/components/content.js +286 -0
- package/dist/components/content.js.map +1 -0
- package/dist/components/filter.d.ts +9 -0
- package/dist/components/filter.js +43 -0
- package/dist/components/filter.js.map +1 -0
- package/dist/components/flow.d.ts +12 -0
- package/dist/components/flow.js +188 -0
- package/dist/components/flow.js.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.js +30 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inputs.d.ts +28 -0
- package/dist/components/inputs.js +530 -0
- package/dist/components/inputs.js.map +1 -0
- package/dist/components/marks.d.ts +32 -0
- package/dist/components/marks.js +164 -0
- package/dist/components/marks.js.map +1 -0
- package/dist/components/navigation.d.ts +11 -0
- package/dist/components/navigation.js +99 -0
- package/dist/components/navigation.js.map +1 -0
- package/dist/components/overlays.d.ts +16 -0
- package/dist/components/overlays.js +146 -0
- package/dist/components/overlays.js.map +1 -0
- package/dist/components/pickers.d.ts +6 -0
- package/dist/components/pickers.js +272 -0
- package/dist/components/pickers.js.map +1 -0
- package/dist/components/shell.d.ts +30 -0
- package/dist/components/shell.js +167 -0
- package/dist/components/shell.js.map +1 -0
- package/dist/components/split.d.ts +8 -0
- package/dist/components/split.js +76 -0
- package/dist/components/split.js.map +1 -0
- package/dist/components/structure.d.ts +12 -0
- package/dist/components/structure.js +69 -0
- package/dist/components/structure.js.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.js +142 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tree.d.ts +10 -0
- package/dist/components/tree.js +177 -0
- package/dist/components/tree.js.map +1 -0
- package/dist/dom.d.ts +25 -0
- package/dist/dom.js +211 -0
- package/dist/dom.js.map +1 -0
- package/dist/elements.d.ts +87 -0
- package/dist/elements.js +244 -0
- package/dist/elements.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives.d.ts +111 -0
- package/dist/primitives.js +361 -0
- package/dist/primitives.js.map +1 -0
- package/dist/renderer.d.ts +145 -0
- package/dist/renderer.js +244 -0
- package/dist/renderer.js.map +1 -0
- package/dist/skeleton.d.ts +14 -0
- package/dist/skeleton.js +13 -0
- package/dist/skeleton.js.map +1 -0
- package/package.json +52 -0
- package/preview/polyxd-web.css +2 -0
- package/preview/polyxd-web.js +15 -0
- package/styles.css +5012 -0
- package/themes/antd.css +300 -0
- package/themes/bootstrap.css +300 -0
- package/themes/brutalist.css +300 -0
- package/themes/carbon.css +310 -0
- package/themes/chakra.css +300 -0
- package/themes/civic.css +300 -0
- package/themes/editorial.css +300 -0
- package/themes/finance.css +300 -0
- package/themes/fluent.css +300 -0
- package/themes/glass.css +300 -0
- package/themes/govuk.css +150 -0
- package/themes/health.css +300 -0
- package/themes/mantine.css +300 -0
- package/themes/material3.css +300 -0
- package/themes/mono.css +300 -0
- package/themes/neon.css +300 -0
- package/themes/pastel.css +300 -0
- package/themes/polaris.css +300 -0
- package/themes/primer.css +300 -0
- package/themes/radix.css +300 -0
- package/themes/shadcn.css +300 -0
- package/themes/sketch.css +356 -0
- package/themes/spectrum.css +300 -0
- package/themes/terminal.css +300 -0
- package/themes/wireframe.css +328 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { STATUS_ICON, absolute, asList, calendarMonth, childPointer, collectionItemValue as itemValue, collectionLayout, dateParts, formatValue, get, metricChange, monthToShow, moveItem, nearestSlide, orderedIndices, qrEncode, resolveFormat, richText, rowChangeAction, safeColor, shiftMonth, } from "@polyxd/core";
|
|
2
|
+
import { h } from "../dom.js";
|
|
3
|
+
import { Dialog, dialogClose } from "../primitives.js";
|
|
4
|
+
import { Icon } from "./avatar.js";
|
|
5
|
+
import { Heading } from "./structure.js";
|
|
6
|
+
import { Paging } from "./table.js";
|
|
7
|
+
/** A colour value shown as itself: a swatch beside the text. */
|
|
8
|
+
export function Swatch(value) {
|
|
9
|
+
const color = safeColor(value);
|
|
10
|
+
return h("span", { class: `pxd-swatch${color ? "" : " pxd-swatch-unknown"}`, style: color ? { background: color } : undefined, "aria-hidden": "true" });
|
|
11
|
+
}
|
|
12
|
+
/** The rich-text tokens core parses, as elements; never injected as HTML. */
|
|
13
|
+
function richNodes(tokens) {
|
|
14
|
+
return tokens.map((t) => {
|
|
15
|
+
if (typeof t === "string")
|
|
16
|
+
return t;
|
|
17
|
+
if (t.kind === "code")
|
|
18
|
+
return h("code", null, t.text);
|
|
19
|
+
if (t.kind === "strong")
|
|
20
|
+
return h("strong", null, ...richNodes(t.children));
|
|
21
|
+
if (t.kind === "em")
|
|
22
|
+
return h("em", null, ...richNodes(t.children));
|
|
23
|
+
if (t.kind !== "link")
|
|
24
|
+
return null;
|
|
25
|
+
return t.href ? h("a", { href: t.href, rel: "noopener noreferrer" }, ...richNodes(t.children)) : h("span", null, ...richNodes(t.children));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function Text(node, ctx) {
|
|
29
|
+
const b = ctx.b;
|
|
30
|
+
const a11y = ctx.a11y(node);
|
|
31
|
+
const variant = node.variant ?? "body";
|
|
32
|
+
const color = node.format?.type === "color";
|
|
33
|
+
const content = (v, format = node.format) => {
|
|
34
|
+
const text = b.text(v, format);
|
|
35
|
+
return format?.type === "color" ? [Swatch(text), text] : [text];
|
|
36
|
+
};
|
|
37
|
+
if (variant === "rich")
|
|
38
|
+
return h("p", { class: "pxd-text pxd-text-body pxd-text-rich", ...a11y }, ...richNodes(richText(b.text(node.text))));
|
|
39
|
+
if (variant === "quote") {
|
|
40
|
+
return h("figure", { class: "pxd-text-quote", ...a11y }, h("blockquote", null, h("p", { class: "pxd-text pxd-text-body" }, ...content(node.text))), node.cite !== undefined && h("figcaption", { class: "pxd-text-cite" }, b.text(node.cite)));
|
|
41
|
+
}
|
|
42
|
+
if (variant === "list") {
|
|
43
|
+
const pointer = node.items ? absolute(node.items.path, b.scope) : undefined;
|
|
44
|
+
const entries = pointer ? asList(get(ctx.r.data, pointer)) : [];
|
|
45
|
+
const intro = b.text(node.text);
|
|
46
|
+
return h("div", { class: "pxd-text-list", ...a11y }, intro && h("p", { class: "pxd-text pxd-text-body" }, intro), h(node.ordered ? "ol" : "ul", { class: `pxd-text-list-items${node.ordered ? " pxd-text-list-ordered" : ""}` }, ...entries.map((entry, i) => {
|
|
47
|
+
const raw = node.itemPath && pointer ? get(ctx.r.data, absolute(node.itemPath, { pointer: childPointer(pointer, i) })) : entry;
|
|
48
|
+
return h("li", { key: i }, ...content(raw));
|
|
49
|
+
})));
|
|
50
|
+
}
|
|
51
|
+
return h("p", { class: `pxd-text pxd-text-${variant}${color ? " pxd-text-color" : ""}`, ...a11y }, ...content(node.text));
|
|
52
|
+
}
|
|
53
|
+
export function Metric(node, ctx) {
|
|
54
|
+
const b = ctx.b;
|
|
55
|
+
const label = b.text(node.label);
|
|
56
|
+
const value = b.text(node.value, node.format);
|
|
57
|
+
const change = node.change ? metricChange(b.value(node.change.value), node.change.favorable, resolveFormat(node.change.format, ctx.r.data, b.scope), ctx.r.locale) : undefined;
|
|
58
|
+
const caption = node.caption !== undefined ? b.text(node.caption) : undefined;
|
|
59
|
+
return h("div", { class: "pxd-metric", role: "group", "aria-label": label, ...ctx.a11y(node) }, h("div", { class: "pxd-metric-label" }, label), h("div", { class: "pxd-metric-value" }, value), change && h("div", { class: `pxd-metric-change pxd-data-${change.tone}` }, h("span", { "aria-hidden": "true" }, change.text), h("span", { class: "pxd-sr-only" }, change.spoken)), caption && h("div", { class: "pxd-metric-caption" }, caption));
|
|
60
|
+
}
|
|
61
|
+
export function DetailList(node, ctx) {
|
|
62
|
+
const b = ctx.b;
|
|
63
|
+
const receipt = node.variant === "receipt";
|
|
64
|
+
const value = (item) => {
|
|
65
|
+
const raw = b.value(item.value);
|
|
66
|
+
// In a receipt, a zero charge reads as "Free".
|
|
67
|
+
if (receipt && item.format?.type === "currency" && raw === 0 && !item.total)
|
|
68
|
+
return { text: "Free", free: true, color: false };
|
|
69
|
+
return { text: b.text(item.value, item.format), free: false, color: item.format?.type === "color" };
|
|
70
|
+
};
|
|
71
|
+
// The 'Change' link per row (GOV.UK summary list). The row's key travels with the context.
|
|
72
|
+
const change = (item, label) => node.rowAction ? h("button", { type: "button", class: "pxd-link pxd-detail-change", onClick: () => ctx.r.dispatch(rowChangeAction(node.rowAction, item.key ?? label), b.scope, node.id) }, "Change", h("span", { class: "pxd-sr-only" }, ` ${label}`)) : null;
|
|
73
|
+
const rows = node.items.filter((i) => !i.total);
|
|
74
|
+
const totals = node.items.filter((i) => i.total);
|
|
75
|
+
return h("div", { class: `pxd-detail-list${receipt ? " pxd-receipt" : ""}${node.layout === "grid" ? " pxd-detail-grid" : ""}${node.rowAction ? " pxd-detail-actions" : ""}`, ...ctx.a11y(node) }, node.title !== undefined && Heading(ctx, "pxd-detail-title", b.text(node.title)), h("dl", null, ...rows.map((item, i) => {
|
|
76
|
+
const v = value(item);
|
|
77
|
+
const label = b.text(item.label);
|
|
78
|
+
return h("div", { class: "pxd-detail-row", key: item.key ?? i }, h("dt", null, label), h("dd", { class: v.free ? "pxd-free" : undefined }, v.color && Swatch(v.text), v.text), node.rowAction && h("dd", { class: "pxd-detail-row-action" }, change(item, label)));
|
|
79
|
+
}), ...totals.map((item, i) => h("div", { class: "pxd-detail-row pxd-total", key: item.key ?? `t${i}` }, h("dt", null, b.text(item.label)), h("dd", null, value(item).text), node.rowAction && h("dd", { class: "pxd-detail-row-action" })))));
|
|
80
|
+
}
|
|
81
|
+
export function Collection(node, ctx) {
|
|
82
|
+
const b = ctx.b;
|
|
83
|
+
const r = ctx.r;
|
|
84
|
+
const labelId = ctx.id(node, "label");
|
|
85
|
+
const pointer = absolute(node.items.path, b.scope);
|
|
86
|
+
const items = asList(get(r.data, pointer));
|
|
87
|
+
const selection = node.selection ?? "none";
|
|
88
|
+
const selected = selection !== "none" && node.selected ? b.value(node.selected) : undefined;
|
|
89
|
+
const isSelected = (v) => (Array.isArray(selected) ? selected.includes(v) : selected === v);
|
|
90
|
+
const toggle = (v) => {
|
|
91
|
+
if (!node.selected)
|
|
92
|
+
return;
|
|
93
|
+
if (selection === "single")
|
|
94
|
+
return b.write(node.selected, v);
|
|
95
|
+
const cur = Array.isArray(selected) ? selected : [];
|
|
96
|
+
b.write(node.selected, cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);
|
|
97
|
+
};
|
|
98
|
+
const selectedCount = Array.isArray(selected) ? selected.length : 0;
|
|
99
|
+
const label = b.text(node.label);
|
|
100
|
+
const template = r.byId.get(node.items.componentId);
|
|
101
|
+
const { grid, timeline, carousel, calendar } = collectionLayout(node, template);
|
|
102
|
+
const reorderable = node.reorderable === true;
|
|
103
|
+
const order = reorderable && node.order ? b.value(node.order) : undefined;
|
|
104
|
+
const values = items.map((item, i) => itemValue(item, i));
|
|
105
|
+
const indices = orderedIndices(values, order);
|
|
106
|
+
const move = (from, to) => {
|
|
107
|
+
const next = node.order ? moveItem(indices, values, from, to) : undefined;
|
|
108
|
+
if (next)
|
|
109
|
+
b.write(node.order, next);
|
|
110
|
+
};
|
|
111
|
+
const [dragging, setDragging] = ctx.state(node, "dragging", null);
|
|
112
|
+
// Carousel: which item is in view, for the readout and the buttons.
|
|
113
|
+
const [position, setPosition] = ctx.state(node, "position", 0);
|
|
114
|
+
const trackOf = () => r.root?.querySelector(`[data-pxd-id="${CSS.escape(node.id)}"] .pxd-carousel-track`);
|
|
115
|
+
const slides = (el) => Array.from(el.children);
|
|
116
|
+
const measure = (e) => {
|
|
117
|
+
const el = e.currentTarget;
|
|
118
|
+
setPosition(nearestSlide(slides(el).map((c) => c.offsetLeft - el.offsetLeft), el.scrollLeft));
|
|
119
|
+
};
|
|
120
|
+
const goTo = (i) => {
|
|
121
|
+
const el = trackOf();
|
|
122
|
+
const target = el && slides(el)[Math.max(0, Math.min(items.length - 1, i))];
|
|
123
|
+
if (el && target)
|
|
124
|
+
el.scrollTo({ left: target.offsetLeft - el.offsetLeft, behavior: "smooth" });
|
|
125
|
+
};
|
|
126
|
+
// Calendar: the month shown starts at the first dated item (or today) and moves a month at a time.
|
|
127
|
+
const dated = calendar ? items.map((_, i) => dateParts(node.datePath ? get(r.data, absolute(node.datePath, { pointer: childPointer(pointer, i) })) : undefined)) : [];
|
|
128
|
+
const [month, setMonth] = ctx.state(node, "month", null);
|
|
129
|
+
const shown = monthToShow(month, dated.find(Boolean));
|
|
130
|
+
if (!items.length && node.empty)
|
|
131
|
+
return ctx.render(node.empty);
|
|
132
|
+
const selectInput = (v, name) => h("input", { type: selection === "single" ? "radio" : "checkbox", class: "pxd-collection-select", name: selection === "single" ? `${node.id}-selection` : undefined, checked: isSelected(v), onChange: () => toggle(v), "aria-label": name });
|
|
133
|
+
const itemEl = (i, pos) => {
|
|
134
|
+
const v = values[i];
|
|
135
|
+
const scope = { pointer: childPointer(pointer, i) };
|
|
136
|
+
return h("li", {
|
|
137
|
+
key: String(v),
|
|
138
|
+
class: `pxd-collection-item${dragging === pos ? " pxd-collection-dragging" : ""}`,
|
|
139
|
+
draggable: reorderable || undefined,
|
|
140
|
+
onDragstart: reorderable ? () => setDragging(pos) : undefined,
|
|
141
|
+
onDragover: reorderable ? (e) => e.preventDefault() : undefined,
|
|
142
|
+
onDrop: reorderable
|
|
143
|
+
? () => {
|
|
144
|
+
if (dragging !== null)
|
|
145
|
+
move(dragging, pos);
|
|
146
|
+
setDragging(null);
|
|
147
|
+
}
|
|
148
|
+
: undefined,
|
|
149
|
+
onDragend: reorderable ? () => setDragging(null) : undefined,
|
|
150
|
+
}, reorderable &&
|
|
151
|
+
h("div", { class: "pxd-collection-reorder" }, h("span", { class: "pxd-collection-handle", "aria-hidden": "true" }, Icon("menu", 16)), h("button", { type: "button", class: "pxd-icon-button pxd-collection-move", "aria-label": `Move item ${pos + 1} up`, disabled: pos === 0, onClick: () => move(pos, pos - 1) }, Icon("sortUp", 16)), h("button", { type: "button", class: "pxd-icon-button pxd-collection-move", "aria-label": `Move item ${pos + 1} down`, disabled: pos === items.length - 1, onClick: () => move(pos, pos + 1) }, Icon("sortDown", 16))), selection !== "none" && selectInput(v, `Select item ${pos + 1} of ${items.length}`), h("div", { class: "pxd-collection-content" }, ctx.render(node.items.componentId, scope)));
|
|
152
|
+
};
|
|
153
|
+
const bulk = selection === "multiple" &&
|
|
154
|
+
selectedCount > 0 &&
|
|
155
|
+
h("div", { class: "pxd-table-toolbar pxd-table-bulk", role: "toolbar", "aria-label": `Actions for ${selectedCount} selected` }, h("p", { class: "pxd-bulk-count", "aria-live": "polite" }, `${selectedCount} selected`), node.bulkActions && ctx.render(node.bulkActions), h("button", { type: "button", class: "pxd-button pxd-button-tertiary", onClick: () => b.write(node.selected, []) }, "Cancel"));
|
|
156
|
+
let body;
|
|
157
|
+
if (carousel) {
|
|
158
|
+
body = h("div", { class: "pxd-carousel", role: "group", "aria-roledescription": "carousel", "aria-labelledby": labelId }, h("ul", { class: "pxd-collection-list pxd-carousel-track", "aria-labelledby": labelId, onScroll: measure }, ...indices.map((i, pos) => itemEl(i, pos))), h("div", { class: "pxd-carousel-controls" }, h("button", { type: "button", class: "pxd-icon-button", "aria-label": "Previous item", disabled: position <= 0, onClick: () => goTo(position - 1) }, Icon("chevronLeft", 18)), h("p", { class: "pxd-carousel-position", "aria-live": "polite" }, `${position + 1} of ${items.length}`), h("button", { type: "button", class: "pxd-icon-button", "aria-label": "Next item", disabled: position >= items.length - 1, onClick: () => goTo(position + 1) }, Icon("chevronRight", 18))));
|
|
159
|
+
}
|
|
160
|
+
else if (calendar) {
|
|
161
|
+
const { monthName, weekdays, weeks } = calendarMonth(shown, r.locale);
|
|
162
|
+
const onDay = (d) => indices.filter((i) => dated[i] && dated[i].y === shown.y && dated[i].m === shown.m && dated[i].d === d);
|
|
163
|
+
body = h("div", { class: "pxd-calendar" }, h("div", { class: "pxd-calendar-header" }, h("button", { type: "button", class: "pxd-icon-button", "aria-label": "Previous month", onClick: () => setMonth(shiftMonth(shown, -1)) }, Icon("chevronLeft", 18)), h("p", { class: "pxd-calendar-month", "aria-live": "polite" }, monthName), h("button", { type: "button", class: "pxd-icon-button", "aria-label": "Next month", onClick: () => setMonth(shiftMonth(shown, 1)) }, Icon("chevronRight", 18))), h("table", { class: "pxd-calendar-grid" }, h("caption", { class: "pxd-sr-only" }, `${label}, ${monthName}`), h("thead", null, h("tr", null, ...weekdays.map((w) => h("th", { key: w, scope: "col" }, w)))), h("tbody", null, ...weeks.map((week, wi) => h("tr", { key: wi }, ...week.map((d, di) => d === null
|
|
164
|
+
? h("td", { key: di, class: "pxd-calendar-empty" })
|
|
165
|
+
: h("td", { key: di, class: `pxd-calendar-day${onDay(d).length ? " pxd-calendar-has-items" : ""}` }, h("span", { class: "pxd-calendar-date" }, d), onDay(d).length > 0 &&
|
|
166
|
+
h("ul", { class: "pxd-calendar-items" }, ...onDay(d).map((i) => h("li", { key: String(values[i]), class: "pxd-collection-item" }, selection !== "none" && selectInput(values[i], `Select item on ${d}`), h("div", { class: "pxd-collection-content" }, ctx.render(node.items.componentId, { pointer: childPointer(pointer, i) }))))))))))));
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
body = h("ul", { class: `pxd-collection-list${grid ? " pxd-collection-grid" : ""}${timeline ? " pxd-timeline" : ""}${reorderable ? " pxd-collection-reorderable" : ""}`, "aria-labelledby": labelId }, ...indices.map((i, pos) => itemEl(i, pos)));
|
|
170
|
+
}
|
|
171
|
+
return h("div", { class: "pxd-collection", ...ctx.a11y(node) }, h("div", { class: "pxd-collection-label", id: labelId }, `${label} `, h("span", { class: "pxd-count" }, `(${items.length})`)), bulk, body, node.page && Paging(node, ctx, items.length));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Media: an image by default; a video or audio player with native controls and a transcript; a
|
|
175
|
+
* gallery of the host's images; or a QR code of a value, drawn here so no URL leaves the surface.
|
|
176
|
+
*/
|
|
177
|
+
export function Media(node, ctx) {
|
|
178
|
+
const b = ctx.b;
|
|
179
|
+
const r = ctx.r;
|
|
180
|
+
const a11y = ctx.a11y(node);
|
|
181
|
+
// Which gallery picture the viewer shows (null when closed).
|
|
182
|
+
const [open, setOpen] = ctx.state(node, "open", null);
|
|
183
|
+
const kind = node.kind ?? "image";
|
|
184
|
+
const ref = node.src ? b.value(node.src) : undefined;
|
|
185
|
+
const url = ref ? r.props.resolveMedia?.(ref) : undefined;
|
|
186
|
+
const alt = node.decorative ? "" : b.text(node.alt);
|
|
187
|
+
const cls = `pxd-media pxd-media-${node.aspect ?? "auto"}`;
|
|
188
|
+
if (kind === "qr")
|
|
189
|
+
return QRCode(ctx, node, b.text(node.value), alt, a11y);
|
|
190
|
+
if (kind === "gallery") {
|
|
191
|
+
const pointer = node.items ? absolute(node.items.path, b.scope) : undefined;
|
|
192
|
+
const entries = pointer ? asList(get(r.data, pointer)) : [];
|
|
193
|
+
const items = entries.map((_, i) => {
|
|
194
|
+
const scope = { pointer: childPointer(pointer, i) };
|
|
195
|
+
const imageRef = node.imagePath ? get(r.data, absolute(node.imagePath, scope)) : undefined;
|
|
196
|
+
const src = imageRef ? r.props.resolveMedia?.(String(imageRef)) : undefined;
|
|
197
|
+
const itemAlt = node.altPath ? String(get(r.data, absolute(node.altPath, scope)) ?? "") : "";
|
|
198
|
+
return { src, alt: itemAlt };
|
|
199
|
+
});
|
|
200
|
+
// Only pictures that resolved can be opened; the viewer counts and moves among those.
|
|
201
|
+
const pictures = items.filter((it) => Boolean(it.src));
|
|
202
|
+
if (open !== null && pictures[open])
|
|
203
|
+
GalleryViewer(ctx, node, alt, pictures, open, setOpen);
|
|
204
|
+
return h("ul", { class: "pxd-gallery", "aria-label": alt || undefined, ...a11y }, ...items.map((it, i) => {
|
|
205
|
+
const at = pictures.indexOf(it);
|
|
206
|
+
return h("li", { key: i }, at >= 0
|
|
207
|
+
? h("button", { type: "button", class: "pxd-gallery-item", "aria-label": it.alt ? `Open ${it.alt}` : `Open image ${at + 1} of ${pictures.length}`, onClick: () => setOpen(at) }, h("img", { class: `${cls} pxd-gallery-image`, src: it.src, alt: it.alt }))
|
|
208
|
+
: h("div", { class: `${cls} pxd-media-placeholder pxd-gallery-image`, role: "img", "aria-label": it.alt || undefined }));
|
|
209
|
+
}));
|
|
210
|
+
}
|
|
211
|
+
if (kind === "video" || kind === "audio") {
|
|
212
|
+
const transcript = node.transcript !== undefined ? b.text(node.transcript) : undefined;
|
|
213
|
+
const posterRef = node.poster !== undefined ? b.text(node.poster) : undefined;
|
|
214
|
+
const poster = posterRef ? r.props.resolveMedia?.(posterRef) : undefined;
|
|
215
|
+
return h("figure", { class: `pxd-media-player pxd-media-${kind}`, ...a11y }, kind === "video"
|
|
216
|
+
? url
|
|
217
|
+
? h("video", { class: cls, controls: true, src: url, poster, "aria-label": alt || undefined })
|
|
218
|
+
: h("div", { class: `${cls} pxd-media-placeholder`, role: "img", "aria-label": alt || undefined })
|
|
219
|
+
: url
|
|
220
|
+
? h("audio", { class: "pxd-media-audio-player", controls: true, src: url, "aria-label": alt || undefined })
|
|
221
|
+
: h("div", { class: "pxd-media-placeholder pxd-media-audio-placeholder", role: "img", "aria-label": alt || undefined }), alt && h("figcaption", { class: "pxd-media-caption" }, alt), transcript && h("details", { class: "pxd-media-transcript" }, h("summary", null, "Transcript"), h("p", { class: "pxd-text pxd-text-body" }, transcript)));
|
|
222
|
+
}
|
|
223
|
+
if (!url)
|
|
224
|
+
return h("div", { class: `${cls} pxd-media-placeholder`, role: node.decorative ? "presentation" : "img", "aria-label": alt || undefined });
|
|
225
|
+
return h("img", { class: cls, src: url, alt, ...a11y });
|
|
226
|
+
}
|
|
227
|
+
/** A left or right chevron. */
|
|
228
|
+
const Arrow = (dir) => h("svg", { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: dir === "left" ? "m15 6-6 6 6 6" : "m9 6 6 6-6 6" }));
|
|
229
|
+
/** One gallery picture at a time, large, with previous/next and a counter. Arrow keys move; Escape closes. */
|
|
230
|
+
function GalleryViewer(ctx, node, name, pictures, index, onIndex) {
|
|
231
|
+
const n = pictures.length;
|
|
232
|
+
const { src, alt } = pictures[index];
|
|
233
|
+
const go = (i) => onIndex(Math.max(0, Math.min(n - 1, i)));
|
|
234
|
+
const titleId = ctx.id(node, "viewer-title");
|
|
235
|
+
const close = () => onIndex(null);
|
|
236
|
+
// At either end the button just used goes disabled; focus moves to the other one rather than dying.
|
|
237
|
+
ctx.after(() => {
|
|
238
|
+
const active = document.activeElement;
|
|
239
|
+
if (active?.disabled && active.classList.contains("pxd-viewer-step"))
|
|
240
|
+
(active.nextElementSibling ?? active.previousElementSibling)?.dispatchEvent(new Event("noop")), (active.nextElementSibling ?? active.previousElementSibling)?.focus();
|
|
241
|
+
});
|
|
242
|
+
ctx.portal(Dialog({ ctx, id: ctx.id(node, "viewer"), class: "pxd-viewer", onClose: close, props: { "aria-labelledby": titleId, onKeydown: (e) => (e.key === "ArrowLeft" ? go(index - 1) : e.key === "ArrowRight" ? go(index + 1) : undefined) } }, h("h2", { id: titleId, class: "pxd-sr-only" }, name || "Pictures"), h("div", { class: "pxd-viewer-bar" }, h("span", { class: "pxd-viewer-counter", "aria-live": "polite" }, `${index + 1} of ${n}`), dialogClose(close, { class: "pxd-icon-button pxd-viewer-close", "aria-label": "Close" }, Icon("close"))), h("figure", { class: "pxd-viewer-figure" }, h("img", { class: "pxd-viewer-image", src, alt }), alt && h("figcaption", { class: "pxd-viewer-caption" }, alt)), h("div", { class: "pxd-viewer-bar pxd-viewer-nav" }, h("button", { type: "button", class: "pxd-icon-button pxd-viewer-step", "aria-label": "Previous picture", disabled: index === 0, onClick: () => go(index - 1) }, Arrow("left")), h("button", { type: "button", class: "pxd-icon-button pxd-viewer-step", "aria-label": "Next picture", disabled: index === n - 1, onClick: () => go(index + 1) }, Arrow("right")))));
|
|
243
|
+
}
|
|
244
|
+
/** A QR code on a canvas, in the surface's text and surface colours; too long a value falls back to text. */
|
|
245
|
+
function QRCode(ctx, node, text, alt, a11y) {
|
|
246
|
+
const grid = text ? qrEncode(text) : undefined;
|
|
247
|
+
if (!grid)
|
|
248
|
+
return h("div", { class: "pxd-qr pxd-qr-placeholder", role: "img", "aria-label": alt || `QR code: ${text}`, ...a11y }, h("span", { class: "pxd-qr-mark", "aria-hidden": "true" }, "QR"), h("span", { class: "pxd-qr-text" }, text));
|
|
249
|
+
const draw = (el) => {
|
|
250
|
+
const canvas = el;
|
|
251
|
+
if (!canvas || canvas.dataset.text === text)
|
|
252
|
+
return;
|
|
253
|
+
canvas.dataset.text = text;
|
|
254
|
+
const scale = 4;
|
|
255
|
+
const quiet = 4;
|
|
256
|
+
const size = grid.length;
|
|
257
|
+
canvas.width = canvas.height = (size + quiet * 2) * scale;
|
|
258
|
+
const c = canvas.getContext("2d");
|
|
259
|
+
if (!c)
|
|
260
|
+
return;
|
|
261
|
+
const style = getComputedStyle(canvas);
|
|
262
|
+
const dark = style.getPropertyValue("--pxd-color-text-default").trim() || "#000";
|
|
263
|
+
const light = style.getPropertyValue("--pxd-color-surface-default").trim() || "#fff";
|
|
264
|
+
c.fillStyle = light;
|
|
265
|
+
c.fillRect(0, 0, canvas.width, canvas.height);
|
|
266
|
+
c.fillStyle = dark;
|
|
267
|
+
grid.forEach((row, y) => row.forEach((on, x) => on && c.fillRect((x + quiet) * scale, (y + quiet) * scale, scale, scale)));
|
|
268
|
+
};
|
|
269
|
+
ctx.after(() => draw(ctx.r.root?.querySelector(`canvas[data-pxd-id="${CSS.escape(node.id)}"]`) ?? null));
|
|
270
|
+
return h("canvas", { class: "pxd-qr", role: "img", "aria-label": alt || `QR code: ${text}`, ...a11y, ref: draw });
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Status. 'undo' is a snackbar after a reversible action ran (announced politely, with Undo);
|
|
274
|
+
* 'empty' gets an icon tile and may carry an ActionBar (one primary, one secondary).
|
|
275
|
+
*/
|
|
276
|
+
export function Status(node, ctx) {
|
|
277
|
+
const b = ctx.b;
|
|
278
|
+
const urgent = node.kind === "error";
|
|
279
|
+
const a11y = ctx.a11y(node);
|
|
280
|
+
if (node.kind === "undo") {
|
|
281
|
+
return h("div", { class: "pxd-snackbar", role: "status", ...a11y }, h("p", { class: "pxd-snackbar-text" }, b.text(node.title), node.message !== undefined && h("span", { class: "pxd-snackbar-message" }, ` ${b.text(node.message)}`)), node.action && ctx.render(node.action));
|
|
282
|
+
}
|
|
283
|
+
return h("div", { class: `pxd-status pxd-status-${node.kind}${node.variant === "inline" ? " pxd-status-notice" : ""}`, role: urgent ? "alert" : "status", ...a11y }, node.kind === "loading" ? h("span", { class: "pxd-spinner", "aria-hidden": "true" }) : h("span", { class: "pxd-status-icon", "aria-hidden": "true" }, Icon(node.icon ?? STATUS_ICON[node.kind], node.kind === "empty" ? 28 : 16)), h("div", { class: "pxd-status-body" }, h("p", { class: "pxd-status-title" }, b.text(node.title)), node.message !== undefined && h("p", { class: "pxd-status-message" }, b.text(node.message)), node.action && node.variant !== "inline" && h("div", { class: "pxd-status-action" }, ctx.render(node.action))), node.action && node.variant === "inline" && h("div", { class: "pxd-status-action" }, ctx.render(node.action)));
|
|
284
|
+
}
|
|
285
|
+
export { formatValue };
|
|
286
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/components/content.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,IAAI,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAC9M,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,GAC1E,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAA2B,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1J,CAAC;AAED,6EAA6E;AAC7E,SAAS,SAAS,CAAC,MAAmB;IACpC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7I,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAU,EAAE,GAAQ;IACvC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAY,EAAE;QAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7I,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjP,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,EACnC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,CAAC,EAC3D,CAAC,CACC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1B,EAAE,KAAK,EAAE,sBAAsB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAC/E,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/H,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5H,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAU,EAAE,GAAQ;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/K,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC9E,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,KAAK,CAAC,EAC9C,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,KAAK,CAAC,EAC9C,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EACjL,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,GAAQ;IAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,+CAA+C;QAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,UAAU,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/H,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;IACtG,CAAC,CAAC;IACF,2FAA2F;IAC3F,MAAM,MAAM,GAAG,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChQ,MAAM,IAAI,GAAI,IAAI,CAAC,KAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAI,IAAI,CAAC,KAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,kBAAkB,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChL,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAChF,CAAC,CACC,IAAI,EACJ,IAAI,EACJ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAS,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrQ,CAAC,CAAC,EACF,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CACtP,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,GAAQ;IAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;IAC3C,MAAM,QAAQ,GAAG,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,MAAM,UAAU,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEhF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,IAAI;YAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAgB,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAEjF,oEAAoE;IACpE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAS,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAc,iBAAiB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;IACvH,MAAM,MAAM,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAkB,CAAC;IAC7E,MAAM,OAAO,GAAG,CAAC,CAAQ,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,aAA4B,CAAC;QAC1C,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,EAAE,IAAI,MAAM;YAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC;IAEF,mGAAmG;IACnG,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAK,CAAkC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE/D,MAAM,WAAW,GAAG,CAAC,CAAU,EAAE,IAAY,EAAE,EAAE,CAC/C,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhP,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,KAAK,GAAU,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,CACN,IAAI,EACJ;YACE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACd,KAAK,EAAE,sBAAsB,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE;YACjF,SAAS,EAAE,WAAW,IAAI,SAAS;YACnC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;YACtE,MAAM,EAAE,WAAW;gBACjB,CAAC,CAAC,GAAG,EAAE;oBACH,IAAI,QAAQ,KAAK,IAAI;wBAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAC3C,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7D,EACD,WAAW;YACT,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,wBAAwB,EAAE,EACnC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EACtF,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,qCAAqC,EAAE,YAAY,EAAE,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAClM,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,qCAAqC,EAAE,YAAY,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACtN,EACH,SAAS,KAAK,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,EACnF,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CACzF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,GACR,SAAS,KAAK,UAAU;QACxB,aAAa,GAAG,CAAC;QACjB,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,kCAAkC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,aAAa,WAAW,EAAE,EACrH,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,aAAa,WAAW,CAAC,EACvF,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAChD,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gCAAgC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAC9H,CAAC;IAEJ,IAAI,IAAY,CAAC;IACjB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,GAAG,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,EACxG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,wCAAwC,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EACvJ,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAClC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAC7K,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,EACvG,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAC1L,CACF,CAAC;IACJ,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACxI,IAAI,GAAG,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,cAAc,EAAE,EACzB,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAChC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAClK,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EACzE,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAC/J,EACD,CAAC,CACC,OAAO,EACP,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,KAAK,KAAK,SAAS,EAAE,CAAC,EAChE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,CAAC,CACC,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CACxB,CAAC,CACC,IAAI,EACJ,EAAE,GAAG,EAAE,EAAE,EAAE,EACX,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CACpB,CAAC,KAAK,IAAI;YACR,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC,CACC,IAAI,EACJ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EACzF,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,EAC5C,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,SAAS,KAAK,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACnQ,CACF,CACJ,CACN,CACF,CACF,CACF,CACF,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrP,CAAC;IAED,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC9C,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7H,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAC7C,CAAC;AACJ,CAAC;AAID;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,IAAU,EAAE,GAAQ;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,6DAA6D;IAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAgB,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,uBAAuB,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;IAE3D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAE3E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,KAAK,GAAU,EAAE,OAAO,EAAE,YAAY,CAAC,OAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,sFAAsF;QACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5F,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,GAAG,IAAI,EAAE,EACjE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAa,CAAC,CAAC;YAC3C,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,GAAG,EAAE,CAAC,EAAE,EACV,EAAE,IAAI,CAAC;gBACL,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3P,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,0CAA0C,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAC1H,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,OAAO,CAAC,CACN,QAAQ,EACR,EAAE,KAAK,EAAE,8BAA8B,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EACxD,IAAI,KAAK,OAAO;YACd,CAAC,CAAC,GAAG;gBACH,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC9F,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,wBAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;YACpG,CAAC,CAAC,GAAG;gBACH,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC3G,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mDAAmD,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC,EAC3H,GAAG,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,EAC3D,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,UAAU,CAAC,CAAC,CACzJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,wBAAwB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;IACrJ,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,+BAA+B;AAC/B,MAAM,KAAK,GAAG,CAAC,GAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AAE/S,8GAA8G;AAC9G,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAU,EAAE,IAAY,EAAE,QAAmB,EAAE,KAAa,EAAE,OAAmC;IAChI,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,oGAAoG;IACpG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAyC,CAAC;QAClE,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,sBAAsB,CAAC,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,EAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,sBAAsB,CAAwB,EAAE,KAAK,EAAE,CAAC;IACtQ,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,MAAM,CACR,MAAM,CACJ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAC9O,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC,EAClE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACzO,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,GAAG,CAAC,CAAC,EAC5J,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,+BAA+B,EAAE,EAC1C,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iCAAiC,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAC/K,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iCAAiC,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CACjL,CACF,CACF,CAAC;AACJ,CAAC;AAED,6GAA6G;AAC7G,SAAS,MAAM,CAAC,GAAQ,EAAE,IAAU,EAAE,IAAY,EAAE,GAAW,EAAE,IAA6B;IAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,YAAY,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/O,MAAM,IAAI,GAAG,CAAC,EAAkB,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,EAA8B,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1D,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;QACjF,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;QACrF,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7H,CAAC,CAAC;IACF,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,uBAAuB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACzG,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,YAAY,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACpH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,IAAU,EAAE,GAAQ;IACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;IACrC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClR,CAAC;IACD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,yBAAyB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EACnJ,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACjO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC7S,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC9G,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Node } from "@polyxd/core";
|
|
2
|
+
import { type VNode } from "../dom.ts";
|
|
3
|
+
import type { Ctx } from "../renderer.ts";
|
|
4
|
+
/**
|
|
5
|
+
* FilterPanel: filters beside their results on wide surfaces; on compact ones a "Filters · n"
|
|
6
|
+
* button opens a bottom sheet that ends in "Show n results". Search fields stay above the results
|
|
7
|
+
* everywhere. Active filters show as removable chips; the result count is announced politely.
|
|
8
|
+
*/
|
|
9
|
+
export declare function FilterPanel(node: Node, ctx: Ctx): VNode;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { FILTER_COMPACT_PX, activeFilters, resultCountText } from "@polyxd/core";
|
|
2
|
+
import { h } from "../dom.js";
|
|
3
|
+
import { Dialog, dialogClose } from "../primitives.js";
|
|
4
|
+
import { Icon } from "./avatar.js";
|
|
5
|
+
import { Heading } from "./structure.js";
|
|
6
|
+
/**
|
|
7
|
+
* FilterPanel: filters beside their results on wide surfaces; on compact ones a "Filters · n"
|
|
8
|
+
* button opens a bottom sheet that ends in "Show n results". Search fields stay above the results
|
|
9
|
+
* everywhere. Active filters show as removable chips; the result count is announced politely.
|
|
10
|
+
*/
|
|
11
|
+
export function FilterPanel(node, ctx) {
|
|
12
|
+
const b = ctx.b;
|
|
13
|
+
const r = ctx.r;
|
|
14
|
+
const [compact, setCompact] = ctx.state(node, "compact", false);
|
|
15
|
+
const [open, setOpen] = ctx.state(node, "open", false);
|
|
16
|
+
const a11y = ctx.a11y(node);
|
|
17
|
+
const sheetId = ctx.id(node, "sheet");
|
|
18
|
+
const label = node.label !== undefined ? b.text(node.label) : "Filters";
|
|
19
|
+
const children = (node.children ?? []).map((id) => r.byId.get(id)).filter(Boolean);
|
|
20
|
+
const searches = children.filter((c) => c.component === "TextInput" && c.kind === "search");
|
|
21
|
+
const filters = children.filter((c) => !searches.includes(c));
|
|
22
|
+
const active = activeFilters(filters, r.data, b.scope, r.locale, b.text);
|
|
23
|
+
const remove = (f) => r.surface.write(f.binding, f.cleared, b.scope);
|
|
24
|
+
const count = node.resultCount !== undefined ? b.value(node.resultCount) : undefined;
|
|
25
|
+
const countText = resultCountText(count, r.locale);
|
|
26
|
+
const clearAll = () => {
|
|
27
|
+
for (const f of active)
|
|
28
|
+
remove(f);
|
|
29
|
+
if (node.clear)
|
|
30
|
+
r.dispatch(node.clear, b.scope, node.id);
|
|
31
|
+
};
|
|
32
|
+
const close = () => setOpen(false);
|
|
33
|
+
const filterFields = () => filters.map((c) => ctx.render(c.id));
|
|
34
|
+
const results = h("div", { class: "pxd-filter-results" }, ...searches.map((c) => ctx.render(c.id)), h("div", { class: "pxd-filter-status" }, compact &&
|
|
35
|
+
h("button", { type: "button", class: "pxd-chip pxd-filter-trigger", "aria-haspopup": "dialog", "aria-expanded": open, "aria-controls": open ? sheetId : undefined, "data-state": open ? "open" : "closed", onClick: () => setOpen(true) }, Icon("filter", 18), label, active.length > 0 && h("span", { "aria-hidden": "true" }, ` · ${active.length}`), active.length > 0 && h("span", { class: "pxd-sr-only" }, `, ${active.length} active`)), countText && h("p", { class: "pxd-filter-count", "aria-live": "polite" }, countText)), active.length > 0 &&
|
|
36
|
+
h("ul", { class: "pxd-filter-chips", "aria-label": "Active filters" }, ...active.map((f) => h("li", { key: f.key }, h("button", { type: "button", class: "pxd-chip pxd-filter-chip", onClick: () => remove(f), "aria-label": `Remove filter: ${f.label}` }, f.label, Icon("close", 16)))), h("li", null, h("button", { type: "button", class: "pxd-button pxd-button-tertiary pxd-filter-clear", onClick: clearAll }, "Clear all"))), ctx.render(node.results));
|
|
37
|
+
if (compact && open) {
|
|
38
|
+
const titleId = ctx.id(node, "sheet-title");
|
|
39
|
+
ctx.portal(Dialog({ ctx, id: sheetId, class: "pxd-sheet", onClose: close, props: { id: sheetId, "aria-labelledby": titleId } }, h("div", { class: "pxd-sheet-header" }, h("h2", { id: titleId, class: "pxd-sheet-title" }, label), dialogClose(close, { class: "pxd-icon-button", "aria-label": "Close" }, Icon("close"))), h("div", { class: "pxd-sheet-body pxd-stack" }, ...filterFields()), h("div", { class: "pxd-sheet-footer" }, active.length > 0 && h("button", { type: "button", class: "pxd-button pxd-button-secondary", onClick: clearAll }, "Clear all"), dialogClose(close, { class: "pxd-button pxd-button-primary" }, countText ? `Show ${countText}` : "Show results"))));
|
|
40
|
+
}
|
|
41
|
+
return h("div", { class: `pxd-filter-panel${compact ? " pxd-filter-compact" : ""}`, ...a11y, ref: (el) => el && r.observeWidth(el, `${node.id}:filter`, (w) => setCompact(w < FILTER_COMPACT_PX)) }, compact ? results : h("div", { class: "pxd-filter-layout" }, h("section", { class: "pxd-filter-sidebar", "aria-label": label }, Heading(ctx, "pxd-filter-title", label), h("div", { class: "pxd-stack" }, ...filterFields())), results));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/components/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Node } from "@polyxd/core";
|
|
2
|
+
import { type VChild, type VNode } from "../dom.ts";
|
|
3
|
+
import type { Ctx } from "../renderer.ts";
|
|
4
|
+
export declare function Action(node: Node, ctx: Ctx): VNode;
|
|
5
|
+
export declare function Steps(node: Node, ctx: Ctx): VNode;
|
|
6
|
+
/**
|
|
7
|
+
* Confirmation. When it is the surface root, the surface *is* the dialog: it renders inline as an
|
|
8
|
+
* alertdialog scoped to the surface. When it opens on top of other surface content, it is a modal
|
|
9
|
+
* alert dialog inside the surface's portal.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Confirm(node: Node, ctx: Ctx): VChild;
|
|
12
|
+
export declare function Comparison(node: Node, ctx: Ctx): VNode;
|