@sylwellsoftware/fray 1.1.1 → 1.2.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/README.md +33 -17
- package/dist/Components/app/app.d.ts +38 -0
- package/dist/Components/app/app.d.ts.map +1 -0
- package/dist/Components/component.d.ts +33 -1
- package/dist/Components/component.d.ts.map +1 -1
- package/dist/Components/data/descriptionList.d.ts.map +1 -1
- package/dist/Components/data/treeview/treeview.d.ts.map +1 -1
- package/dist/Components/dialog/dialog.d.ts.map +1 -1
- package/dist/Components/layout/groupPanel.d.ts.map +1 -1
- package/dist/Components/layout/header.d.ts.map +1 -1
- package/dist/Components/layout/optionGroup.d.ts +23 -0
- package/dist/Components/layout/optionGroup.d.ts.map +1 -0
- package/dist/Components/layout/optionsPanel.d.ts +12 -0
- package/dist/Components/layout/optionsPanel.d.ts.map +1 -0
- package/dist/Components/layout/panel.d.ts.map +1 -1
- package/dist/Components/layout/sidebar.d.ts.map +1 -1
- package/dist/Components/layout/splitView.d.ts.map +1 -1
- package/dist/Components/lineinputs/CheckableControl.d.ts.map +1 -1
- package/dist/Components/lineinputs/dropdown.d.ts.map +1 -1
- package/dist/Components/lineinputs/radio.d.ts.map +1 -1
- package/dist/Components/lineinputs/toggle.d.ts.map +1 -1
- package/dist/Components/status/progressBar.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1159 -941
- package/dist/index.js.map +1 -1
- package/dist/{jsx-dev-runtime-8s_xIag_.js → jsx-dev-runtime-C7dc8ZyF.js} +3 -1
- package/dist/jsx-dev-runtime-C7dc8ZyF.js.map +1 -0
- package/dist/jsx-dev-runtime.js +1 -1
- package/dist/jsx-runtime.js +1 -1
- package/package.json +15 -13
- package/styles/structural.css +19 -14
- package/themes/base.css +4 -4
- package/themes/shiny/theme.css +2 -0
- package/dist/jsx-dev-runtime-8s_xIag_.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var a = (t, r, e) =>
|
|
4
|
-
import { C as g, j as
|
|
5
|
-
import {
|
|
6
|
-
import { Emitter as
|
|
7
|
-
class
|
|
1
|
+
var _t = Object.defineProperty;
|
|
2
|
+
var Qt = (t, r, e) => r in t ? _t(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e;
|
|
3
|
+
var a = (t, r, e) => Qt(t, typeof r != "symbol" ? r + "" : r, e);
|
|
4
|
+
import { C as g, j as h, c as w, h as se, F as Ie, a as y, i as we, b as Bt } from "./jsx-dev-runtime-C7dc8ZyF.js";
|
|
5
|
+
import { S as uo, d as ho, e as po, f as fo, g as mo, k as bo, l as go, m as yo, n as wo, p as vo, s as Eo } from "./jsx-dev-runtime-C7dc8ZyF.js";
|
|
6
|
+
import { Emitter as S, DerivedEmitter as Te, FetchState as k, QueryArg as gt, LiveQuery as Wt, RestQueryHandler as Gt } from "@sylwellsoftware/glue";
|
|
7
|
+
class Je extends g {
|
|
8
8
|
render() {
|
|
9
9
|
return this.props.children ?? [];
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
a(
|
|
13
|
-
const
|
|
12
|
+
a(Je, "liveProps", []);
|
|
13
|
+
const v = {
|
|
14
14
|
/** Deny mode: Excludes items that match the filter. */
|
|
15
15
|
Deny: "deny",
|
|
16
16
|
/** Require mode: Includes only items that match the filter. */
|
|
@@ -21,29 +21,29 @@ const y = {
|
|
|
21
21
|
Neutral: "neutral"
|
|
22
22
|
};
|
|
23
23
|
function Re(t) {
|
|
24
|
-
return Object.values(
|
|
24
|
+
return Object.values(v).some((r) => r === t);
|
|
25
25
|
}
|
|
26
|
-
let
|
|
27
|
-
function
|
|
28
|
-
return r != null && String(r).length > 0 ? String(r) : `fray-${t}-${
|
|
26
|
+
let Yt = 1;
|
|
27
|
+
function I(t, r) {
|
|
28
|
+
return r != null && String(r).length > 0 ? String(r) : `fray-${t}-${Yt++}`;
|
|
29
29
|
}
|
|
30
|
-
function
|
|
30
|
+
function L(t, r, e, i) {
|
|
31
31
|
if (r.valueEmitter != null)
|
|
32
|
-
return
|
|
32
|
+
return Jt(r.valueEmitter, "valueEmitter"), r.valueEmitter;
|
|
33
33
|
const o = r.defaultValue ?? r.value ?? r.initialValue ?? e, s = { owner: t, purpose: i };
|
|
34
|
-
return new
|
|
34
|
+
return new S(o, s);
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function Jt(t, r = "emitter") {
|
|
37
37
|
if (t == null || typeof t != "object" && typeof t != "function" || typeof Reflect.get(t, "get") != "function" || typeof Reflect.get(t, "set") != "function" || typeof Reflect.get(t, "subscribe") != "function")
|
|
38
38
|
throw new TypeError(`${r} must be an emitter`);
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function Zt(...t) {
|
|
41
41
|
return t.flatMap((r) => typeof r == "string" ? r.split(/\s+/) : []).filter(Boolean).join(" ");
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function E(t) {
|
|
44
44
|
return t.className ?? t.class ?? "";
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function z(t, ...r) {
|
|
47
47
|
if (t != null) {
|
|
48
48
|
if (typeof t != "function") throw new TypeError("Control callback must be a function");
|
|
49
49
|
t(...r);
|
|
@@ -52,7 +52,7 @@ function $(t, ...r) {
|
|
|
52
52
|
function ve(t, r = "options") {
|
|
53
53
|
if (!Array.isArray(t)) throw new TypeError(`${r} must be an array`);
|
|
54
54
|
}
|
|
55
|
-
function
|
|
55
|
+
function Xt(t) {
|
|
56
56
|
return Re(t) ? t : String(t);
|
|
57
57
|
}
|
|
58
58
|
class X extends g {
|
|
@@ -62,9 +62,9 @@ class X extends g {
|
|
|
62
62
|
a(this, "valueEmitter");
|
|
63
63
|
a(this, "activeTabEmitter");
|
|
64
64
|
const i = e.tabs ?? [];
|
|
65
|
-
|
|
65
|
+
yt(i);
|
|
66
66
|
const o = { ...e };
|
|
67
|
-
o.valueEmitter == null && e.activeTabEmitter != null && (o.valueEmitter = e.activeTabEmitter), o.defaultValue == null && e.initialActiveTabId != null && (o.defaultValue = e.initialActiveTabId), this.valueEmitter =
|
|
67
|
+
o.valueEmitter == null && e.activeTabEmitter != null && (o.valueEmitter = e.activeTabEmitter), o.defaultValue == null && e.initialActiveTabId != null && (o.defaultValue = e.initialActiveTabId), this.valueEmitter = L(
|
|
68
68
|
this,
|
|
69
69
|
o,
|
|
70
70
|
((s = i.find((n) => !n.disabled)) == null ? void 0 : s.id) ?? null,
|
|
@@ -75,27 +75,27 @@ class X extends g {
|
|
|
75
75
|
this.watch(this.valueEmitter);
|
|
76
76
|
}
|
|
77
77
|
selectTab(e, i = null) {
|
|
78
|
-
e == null || e.disabled || (this.props.onSelectTab == null ? this.valueEmitter.set(e.id, "tab selected") : this.props.onSelectTab(e, i),
|
|
78
|
+
e == null || e.disabled || (this.props.onSelectTab == null ? this.valueEmitter.set(e.id, "tab selected") : this.props.onSelectTab(e, i), z(this.props.onChange, e.id, i));
|
|
79
79
|
}
|
|
80
80
|
render() {
|
|
81
81
|
const { tabs: e = [], label: i = "Sections", baseId: o = "fray-tabs" } = this.props;
|
|
82
|
-
|
|
82
|
+
yt(e);
|
|
83
83
|
const s = this.valueEmitter.get(), n = this.Host;
|
|
84
|
-
return /* @__PURE__ */
|
|
84
|
+
return /* @__PURE__ */ h(
|
|
85
85
|
n,
|
|
86
86
|
{
|
|
87
87
|
role: "tablist",
|
|
88
|
-
className:
|
|
88
|
+
className: E(this.props) || null,
|
|
89
89
|
"aria-label": i,
|
|
90
|
-
children: e.map((l, c) => /* @__PURE__ */
|
|
90
|
+
children: e.map((l, c) => /* @__PURE__ */ h(
|
|
91
91
|
"button",
|
|
92
92
|
{
|
|
93
|
-
id:
|
|
93
|
+
id: qt(o, l.id),
|
|
94
94
|
type: "button",
|
|
95
95
|
role: "tab",
|
|
96
96
|
disabled: !!l.disabled,
|
|
97
97
|
"aria-selected": Object.is(s, l.id) ? "true" : "false",
|
|
98
|
-
"aria-controls":
|
|
98
|
+
"aria-controls": Nt(o, l.id),
|
|
99
99
|
tabIndex: Object.is(s, l.id) ? 0 : -1,
|
|
100
100
|
onClick: (u) => this.selectTab(l, u),
|
|
101
101
|
onKeyDown: (u) => this.handleKeyDown(u, c, e),
|
|
@@ -127,7 +127,7 @@ class X extends g {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
a(X, "liveProps", []), a(X, "hostName", "tab-line"), a(X, "css",
|
|
130
|
+
a(X, "liveProps", []), a(X, "hostName", "tab-line"), a(X, "css", w`
|
|
131
131
|
& {
|
|
132
132
|
display: flex;
|
|
133
133
|
background: var(--tabline-background);
|
|
@@ -191,16 +191,16 @@ a(X, "liveProps", []), a(X, "hostName", "tab-line"), a(X, "css", E`
|
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
`);
|
|
194
|
-
function
|
|
195
|
-
return `${t}-tab-${
|
|
194
|
+
function qt(t, r) {
|
|
195
|
+
return `${t}-tab-${Lt(r)}`;
|
|
196
196
|
}
|
|
197
|
-
function
|
|
198
|
-
return `${t}-panel-${
|
|
197
|
+
function Nt(t, r) {
|
|
198
|
+
return `${t}-panel-${Lt(r)}`;
|
|
199
199
|
}
|
|
200
|
-
function
|
|
200
|
+
function Lt(t) {
|
|
201
201
|
return encodeURIComponent(String(t)).replaceAll("%", "-");
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function yt(t) {
|
|
204
204
|
if (!Array.isArray(t)) throw new TypeError("TabLine tabs must be an array");
|
|
205
205
|
const r = /* @__PURE__ */ new Set();
|
|
206
206
|
for (const e of t) {
|
|
@@ -220,7 +220,7 @@ class Ee extends g {
|
|
|
220
220
|
this.closeScope = e.openScope(this.props.context, this);
|
|
221
221
|
}
|
|
222
222
|
render() {
|
|
223
|
-
return
|
|
223
|
+
return se(Ie, null, this.props.children ?? []);
|
|
224
224
|
}
|
|
225
225
|
afterMount() {
|
|
226
226
|
var e;
|
|
@@ -235,7 +235,7 @@ class Ee extends g {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
a(Ee, "liveProps", []);
|
|
238
|
-
class
|
|
238
|
+
class ae extends g {
|
|
239
239
|
constructor(e = {}) {
|
|
240
240
|
var s;
|
|
241
241
|
super(e);
|
|
@@ -243,35 +243,35 @@ class ne extends g {
|
|
|
243
243
|
a(this, "activeTabEmitter");
|
|
244
244
|
a(this, "baseId");
|
|
245
245
|
a(this, "routeContexts", /* @__PURE__ */ new Map());
|
|
246
|
-
const i =
|
|
247
|
-
o.valueEmitter == null && e.activeTabEmitter != null && (o.valueEmitter = e.activeTabEmitter), o.defaultValue == null && e.initialActiveTabId != null && (o.defaultValue = e.initialActiveTabId), this.valueEmitter =
|
|
246
|
+
const i = J(e), o = { ...e };
|
|
247
|
+
o.valueEmitter == null && e.activeTabEmitter != null && (o.valueEmitter = e.activeTabEmitter), o.defaultValue == null && e.initialActiveTabId != null && (o.defaultValue = e.initialActiveTabId), this.valueEmitter = L(
|
|
248
248
|
this,
|
|
249
249
|
o,
|
|
250
250
|
((s = i.find((n) => !n.disabled)) == null ? void 0 : s.id) ?? null,
|
|
251
251
|
"active tab"
|
|
252
|
-
), this.activeTabEmitter = this.valueEmitter, this.baseId =
|
|
252
|
+
), this.activeTabEmitter = this.valueEmitter, this.baseId = I("tabs", e.id);
|
|
253
253
|
}
|
|
254
254
|
initialize() {
|
|
255
255
|
var i;
|
|
256
|
-
const e =
|
|
256
|
+
const e = J(this.props);
|
|
257
257
|
e.some(({ id: o }) => Object.is(o, this.valueEmitter.get())) || this.valueEmitter.set(((i = e.find((o) => !o.disabled)) == null ? void 0 : i.id) ?? null), this.registerRoutes(e), this.watch(this.valueEmitter);
|
|
258
258
|
}
|
|
259
259
|
setProps(e) {
|
|
260
260
|
var o;
|
|
261
261
|
super.setProps(e);
|
|
262
|
-
const i =
|
|
262
|
+
const i = J(e);
|
|
263
263
|
return i.some(({ id: s }) => Object.is(s, this.valueEmitter.get())) || this.valueEmitter.set(((o = i.find((s) => !s.disabled)) == null ? void 0 : o.id) ?? null), this.registerRoutes(i), this;
|
|
264
264
|
}
|
|
265
265
|
render() {
|
|
266
266
|
var s;
|
|
267
|
-
const e =
|
|
268
|
-
return /* @__PURE__ */
|
|
267
|
+
const e = J(this.props), i = (s = e.find(({ id: n }) => Object.is(n, this.valueEmitter.get())) ?? e.find((n) => !n.disabled) ?? null) == null ? void 0 : s.id, o = this.Host;
|
|
268
|
+
return /* @__PURE__ */ y(
|
|
269
269
|
o,
|
|
270
270
|
{
|
|
271
271
|
id: this.baseId,
|
|
272
|
-
className:
|
|
272
|
+
className: E(this.props) || null,
|
|
273
273
|
children: [
|
|
274
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ h(
|
|
275
275
|
X,
|
|
276
276
|
{
|
|
277
277
|
tabs: e.map(({ id: n, label: l, disabled: c }) => ({ id: n, label: l, disabled: c })),
|
|
@@ -285,12 +285,12 @@ class ne extends g {
|
|
|
285
285
|
),
|
|
286
286
|
e.map((n) => {
|
|
287
287
|
const l = Object.is(i, n.id);
|
|
288
|
-
return /* @__PURE__ */
|
|
288
|
+
return /* @__PURE__ */ h(
|
|
289
289
|
"section",
|
|
290
290
|
{
|
|
291
|
-
id:
|
|
291
|
+
id: Nt(this.baseId, n.id),
|
|
292
292
|
role: "tabpanel",
|
|
293
|
-
"aria-labelledby":
|
|
293
|
+
"aria-labelledby": qt(this.baseId, n.id),
|
|
294
294
|
tabIndex: l ? 0 : -1,
|
|
295
295
|
hidden: !l,
|
|
296
296
|
children: this.routedContent(n)
|
|
@@ -328,15 +328,15 @@ class ne extends g {
|
|
|
328
328
|
}
|
|
329
329
|
selectTab(e, i) {
|
|
330
330
|
var n;
|
|
331
|
-
const o =
|
|
331
|
+
const o = J(this.props).find(({ id: l }) => Object.is(l, e.id)), s = (o == null ? void 0 : o.route) == null ? null : this.routeContexts.get(o.route);
|
|
332
332
|
s == null ? this.valueEmitter.set(e.id, "tab selected") : (n = this._runtime.router) == null || n.navigate(s);
|
|
333
333
|
}
|
|
334
334
|
routedContent(e) {
|
|
335
335
|
const i = e.route == null ? null : this.routeContexts.get(e.route);
|
|
336
|
-
return i == null ? e.content : /* @__PURE__ */
|
|
336
|
+
return i == null ? e.content : /* @__PURE__ */ h(Ee, { context: i, children: e.content }, i.pathname);
|
|
337
337
|
}
|
|
338
338
|
}
|
|
339
|
-
a(
|
|
339
|
+
a(ae, "liveProps", []), a(ae, "dependencies", [Ee, X, Je]), a(ae, "hostName", "tab-panel"), a(ae, "css", w`
|
|
340
340
|
& {
|
|
341
341
|
background: var(--panel-background);
|
|
342
342
|
border-radius: var(--panel-radius);
|
|
@@ -367,10 +367,10 @@ a(ne, "liveProps", []), a(ne, "dependencies", [Ee, X, Ye]), a(ne, "hostName", "t
|
|
|
367
367
|
margin-inline-start: -3px;
|
|
368
368
|
}
|
|
369
369
|
`);
|
|
370
|
-
function
|
|
370
|
+
function J(t) {
|
|
371
371
|
const r = t.tabs ?? [];
|
|
372
372
|
if (!Array.isArray(r)) throw new TypeError("TabPanel tabs must be an array");
|
|
373
|
-
const i = (Array.isArray(t.children) ? t.children : t.children == null ? [] : [t.children]).filter((n) => we(n) && n.type ===
|
|
373
|
+
const i = (Array.isArray(t.children) ? t.children : t.children == null ? [] : [t.children]).filter((n) => we(n) && n.type === Je).map((n, l) => {
|
|
374
374
|
if (!we(n)) throw new TypeError("TabPanel children must be Tab nodes");
|
|
375
375
|
const c = n.props;
|
|
376
376
|
return {
|
|
@@ -394,29 +394,115 @@ function Z(t) {
|
|
|
394
394
|
}
|
|
395
395
|
return o;
|
|
396
396
|
}
|
|
397
|
-
class
|
|
397
|
+
class wt extends g {
|
|
398
|
+
mount(r = null, e = null) {
|
|
399
|
+
if (r != null) {
|
|
400
|
+
const i = Ft(r, "FrayApp.mount"), o = this.constructor;
|
|
401
|
+
this._runtime.registerStyles(o).injectStyles(i);
|
|
402
|
+
}
|
|
403
|
+
return super.mount(r, e);
|
|
404
|
+
}
|
|
405
|
+
renderContent() {
|
|
406
|
+
return this.props.children ?? null;
|
|
407
|
+
}
|
|
408
|
+
render() {
|
|
409
|
+
const {
|
|
410
|
+
children: r,
|
|
411
|
+
key: e,
|
|
412
|
+
class: i,
|
|
413
|
+
className: o,
|
|
414
|
+
island: s,
|
|
415
|
+
sizing: n = "embedded",
|
|
416
|
+
landmark: l = "main",
|
|
417
|
+
...c
|
|
418
|
+
} = this.props, u = this.Host, p = rr(i, o, er(n));
|
|
419
|
+
return /* @__PURE__ */ h(
|
|
420
|
+
u,
|
|
421
|
+
{
|
|
422
|
+
...c,
|
|
423
|
+
role: tr(l),
|
|
424
|
+
...p == null ? {} : { className: p },
|
|
425
|
+
children: this.renderContent()
|
|
426
|
+
}
|
|
427
|
+
);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
a(wt, "hostName", "app"), a(wt, "css", w`
|
|
431
|
+
& {
|
|
432
|
+
box-sizing: border-box;
|
|
433
|
+
display: block;
|
|
434
|
+
background: var(--application-background);
|
|
435
|
+
color: var(--ui-color);
|
|
436
|
+
font-family: var(--font-family);
|
|
437
|
+
font-size: var(--font-size);
|
|
438
|
+
line-height: var(--line-height);
|
|
439
|
+
}
|
|
440
|
+
`);
|
|
441
|
+
function Li(t, r, e, ...i) {
|
|
442
|
+
if (!(t instanceof Bt))
|
|
443
|
+
throw new TypeError("mountFrayApp requires a FrayRuntime");
|
|
444
|
+
const o = Ft(e, "mountFrayApp");
|
|
445
|
+
return t.registerStyles(r).injectStyles(o), t.mount(t.create(r, ...i), e);
|
|
446
|
+
}
|
|
447
|
+
function Ft(t, r) {
|
|
448
|
+
if (t == null || typeof t != "object" || !("ownerDocument" in t))
|
|
449
|
+
throw new TypeError(`${r} requires a DOM parent node`);
|
|
450
|
+
const e = t.ownerDocument ?? (t.nodeType === 9 ? t : null);
|
|
451
|
+
if ((e == null ? void 0 : e.head) == null)
|
|
452
|
+
throw new TypeError(`${r} requires a parent associated with a document head`);
|
|
453
|
+
return e;
|
|
454
|
+
}
|
|
455
|
+
function er(t) {
|
|
456
|
+
switch (t) {
|
|
457
|
+
case "embedded":
|
|
458
|
+
return;
|
|
459
|
+
case "viewport-width":
|
|
460
|
+
return "fray-fill-horizontal";
|
|
461
|
+
case "viewport-height":
|
|
462
|
+
return "fray-fill-vertical";
|
|
463
|
+
case "viewport":
|
|
464
|
+
return "fray-fill-horizontal fray-fill-vertical";
|
|
465
|
+
default:
|
|
466
|
+
throw new TypeError(
|
|
467
|
+
"FrayApp sizing must be embedded, viewport-width, viewport-height, or viewport"
|
|
468
|
+
);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
function tr(t) {
|
|
472
|
+
if (t === "main") return "main";
|
|
473
|
+
if (t === "none") return null;
|
|
474
|
+
throw new TypeError("FrayApp landmark must be main or none");
|
|
475
|
+
}
|
|
476
|
+
function rr(...t) {
|
|
477
|
+
const r = t.flatMap((e) => (e == null ? void 0 : e.trim().split(/\s+/)) ?? []).filter(Boolean).join(" ");
|
|
478
|
+
return r.length === 0 ? void 0 : r;
|
|
479
|
+
}
|
|
480
|
+
class N extends g {
|
|
398
481
|
constructor(e = {}) {
|
|
399
482
|
super(e);
|
|
400
483
|
a(this, "headerId");
|
|
401
484
|
a(this, "headingId");
|
|
402
|
-
this.headerId =
|
|
485
|
+
this.headerId = I("header", e.id), this.headingId = I("header-title", e.headingId ?? `${this.headerId}-title`);
|
|
403
486
|
}
|
|
404
487
|
render() {
|
|
405
488
|
const { level: e = 2, children: i = [] } = this.props;
|
|
406
489
|
if (!Number.isInteger(e) || e < 1 || e > 6)
|
|
407
490
|
throw new TypeError("Header level must be an integer from 1 to 6");
|
|
408
491
|
const o = this.Host;
|
|
409
|
-
return /* @__PURE__ */
|
|
492
|
+
return /* @__PURE__ */ h(
|
|
410
493
|
o,
|
|
411
494
|
{
|
|
412
495
|
id: this.headerId,
|
|
413
|
-
className:
|
|
414
|
-
children:
|
|
496
|
+
className: E(this.props) || null,
|
|
497
|
+
children: (() => {
|
|
498
|
+
const s = `h${e}`;
|
|
499
|
+
return /* @__PURE__ */ h(s, { id: this.headingId, children: i });
|
|
500
|
+
})()
|
|
415
501
|
}
|
|
416
502
|
);
|
|
417
503
|
}
|
|
418
504
|
}
|
|
419
|
-
a(
|
|
505
|
+
a(N, "liveProps", []), a(N, "hostName", "header"), a(N, "css", w`
|
|
420
506
|
& {
|
|
421
507
|
display: block;
|
|
422
508
|
color: var(--section-header-color);
|
|
@@ -437,12 +523,12 @@ a(L, "liveProps", []), a(L, "hostName", "header"), a(L, "css", E`
|
|
|
437
523
|
font: inherit;
|
|
438
524
|
}
|
|
439
525
|
`);
|
|
440
|
-
class
|
|
526
|
+
class Z extends g {
|
|
441
527
|
constructor(e) {
|
|
442
528
|
super(e);
|
|
443
529
|
a(this, "panelId");
|
|
444
530
|
a(this, "headerId");
|
|
445
|
-
this.panelId =
|
|
531
|
+
this.panelId = I("group-panel", e.id), this.headerId = `${this.panelId}-title`;
|
|
446
532
|
}
|
|
447
533
|
render() {
|
|
448
534
|
const { header: e, children: i = [] } = this.props;
|
|
@@ -450,38 +536,37 @@ class ae extends g {
|
|
|
450
536
|
}
|
|
451
537
|
renderGroupPanel(e, i) {
|
|
452
538
|
const o = this.Host;
|
|
453
|
-
return /* @__PURE__ */
|
|
539
|
+
return /* @__PURE__ */ y(
|
|
454
540
|
o,
|
|
455
541
|
{
|
|
456
542
|
id: this.panelId,
|
|
457
543
|
role: "group",
|
|
458
|
-
className:
|
|
544
|
+
className: E(this.props) || null,
|
|
459
545
|
"aria-labelledby": this.headerId,
|
|
460
546
|
children: [
|
|
461
|
-
/* @__PURE__ */
|
|
462
|
-
|
|
547
|
+
/* @__PURE__ */ h(
|
|
548
|
+
N,
|
|
463
549
|
{
|
|
464
550
|
id: `${this.panelId}-header`,
|
|
465
551
|
headingId: this.headerId,
|
|
466
552
|
children: e
|
|
467
553
|
}
|
|
468
554
|
),
|
|
469
|
-
|
|
555
|
+
/* @__PURE__ */ h("fray-content", { children: i })
|
|
470
556
|
]
|
|
471
557
|
}
|
|
472
558
|
);
|
|
473
559
|
}
|
|
474
560
|
}
|
|
475
|
-
a(
|
|
561
|
+
a(Z, "liveProps", []), a(Z, "hostName", "group-panel"), a(Z, "dependencies", [N]), a(Z, "css", w`
|
|
476
562
|
& {
|
|
477
|
-
display:
|
|
478
|
-
|
|
563
|
+
display: flex;
|
|
564
|
+
flex-flow: row nowrap;
|
|
479
565
|
align-items: stretch;
|
|
480
566
|
box-sizing: border-box;
|
|
481
567
|
min-width: 0;
|
|
482
568
|
min-height: 0;
|
|
483
569
|
column-gap: 0.35rem;
|
|
484
|
-
row-gap: 0;
|
|
485
570
|
padding-block: 0.125rem;
|
|
486
571
|
padding-inline: 0.125rem 0.35rem;
|
|
487
572
|
border: 1px solid var(--ui-border-color);
|
|
@@ -492,38 +577,154 @@ a(ae, "liveProps", []), a(ae, "hostName", "group-panel"), a(ae, "dependencies",
|
|
|
492
577
|
display: grid;
|
|
493
578
|
place-items: center;
|
|
494
579
|
box-sizing: border-box;
|
|
495
|
-
width:
|
|
580
|
+
width: 1.7em;
|
|
496
581
|
min-width: 0;
|
|
497
582
|
min-height: 0;
|
|
498
583
|
padding: 0.125em;
|
|
499
584
|
border-radius: var(--ui-border-radius);
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
& > fray-header > h1,
|
|
503
|
-
& > fray-header > h2,
|
|
504
|
-
& > fray-header > h3,
|
|
505
|
-
& > fray-header > h4,
|
|
506
|
-
& > fray-header > h5,
|
|
507
|
-
& > fray-header > h6 {
|
|
508
|
-
font-weight: 650;
|
|
509
|
-
white-space: nowrap;
|
|
510
585
|
writing-mode: vertical-rl;
|
|
511
586
|
transform: rotate(180deg);
|
|
587
|
+
font-weight: normal;
|
|
588
|
+
font-size: var(--ui-font-size);
|
|
512
589
|
}
|
|
513
590
|
|
|
514
591
|
& > fray-content {
|
|
515
592
|
display: block;
|
|
516
593
|
min-width: 0;
|
|
517
594
|
min-height: 0;
|
|
595
|
+
margin-left: .25em;
|
|
518
596
|
}
|
|
519
597
|
`);
|
|
520
|
-
|
|
598
|
+
class ze extends g {
|
|
599
|
+
constructor(e) {
|
|
600
|
+
super(e);
|
|
601
|
+
a(this, "groupId");
|
|
602
|
+
a(this, "errorId");
|
|
603
|
+
this.groupId = I("option-group", e.id), this.errorId = `${this.groupId}-error`;
|
|
604
|
+
}
|
|
605
|
+
render() {
|
|
606
|
+
return this.renderOptionGroup(this.props.children ?? []);
|
|
607
|
+
}
|
|
608
|
+
renderOptionGroup(e) {
|
|
609
|
+
const i = this.Host, {
|
|
610
|
+
label: o,
|
|
611
|
+
ariaLabel: s,
|
|
612
|
+
headerEnd: n = null,
|
|
613
|
+
disabled: l = !1,
|
|
614
|
+
required: c = !1,
|
|
615
|
+
error: u = null
|
|
616
|
+
} = this.props;
|
|
617
|
+
return /* @__PURE__ */ y(i, { className: E(this.props) || null, children: [
|
|
618
|
+
/* @__PURE__ */ y(
|
|
619
|
+
"fieldset",
|
|
620
|
+
{
|
|
621
|
+
id: this.groupId,
|
|
622
|
+
disabled: l,
|
|
623
|
+
"aria-label": o == null ? s : null,
|
|
624
|
+
"aria-required": c ? "true" : null,
|
|
625
|
+
"aria-invalid": u == null ? null : "true",
|
|
626
|
+
"aria-describedby": u == null ? null : this.errorId,
|
|
627
|
+
children: [
|
|
628
|
+
o != null || n != null ? /* @__PURE__ */ y("legend", { children: [
|
|
629
|
+
o != null ? /* @__PURE__ */ h("span", { children: o }) : null,
|
|
630
|
+
n
|
|
631
|
+
] }) : null,
|
|
632
|
+
e
|
|
633
|
+
]
|
|
634
|
+
}
|
|
635
|
+
),
|
|
636
|
+
u == null ? null : /* @__PURE__ */ h(
|
|
637
|
+
"p",
|
|
638
|
+
{
|
|
639
|
+
id: this.errorId,
|
|
640
|
+
role: "alert",
|
|
641
|
+
children: String(u)
|
|
642
|
+
}
|
|
643
|
+
)
|
|
644
|
+
] });
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
a(ze, "liveProps", []), a(ze, "hostName", "option-group"), a(ze, "css", w`
|
|
648
|
+
& {
|
|
649
|
+
display: block;
|
|
650
|
+
min-width: 0;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
& > fieldset {
|
|
654
|
+
margin: 0;
|
|
655
|
+
padding: 0;
|
|
656
|
+
min-inline-size: 0;
|
|
657
|
+
border: 0;
|
|
658
|
+
width: 100%;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
& > fieldset > legend {
|
|
662
|
+
display: flex;
|
|
663
|
+
justify-content: space-between;
|
|
664
|
+
align-items: center;
|
|
665
|
+
box-sizing: border-box;
|
|
666
|
+
gap: 0.5rem;
|
|
667
|
+
width: 100%;
|
|
668
|
+
padding: 0 0 0.25em;
|
|
669
|
+
margin-bottom: 0.5em;
|
|
670
|
+
border-bottom: 1px solid var(--ui-border-color);
|
|
671
|
+
font: inherit;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
& > fieldset > legend > span {
|
|
675
|
+
flex: 1;
|
|
676
|
+
min-width: 0;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
& > p[role="alert"] {
|
|
680
|
+
margin: 0.25em 0 0;
|
|
681
|
+
}
|
|
682
|
+
`);
|
|
683
|
+
class vt extends Z {
|
|
684
|
+
}
|
|
685
|
+
a(vt, "hostName", "options-panel"), a(vt, "css", w`
|
|
686
|
+
& > fray-content {
|
|
687
|
+
display: flex;
|
|
688
|
+
flex-direction: column;
|
|
689
|
+
align-self: stretch;
|
|
690
|
+
flex: 1 1 0;
|
|
691
|
+
gap: .5em;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
& > fray-content * > fieldset > legend {
|
|
695
|
+
display: flex;
|
|
696
|
+
justify-content: space-between;
|
|
697
|
+
align-items: center;
|
|
698
|
+
box-sizing: border-box;
|
|
699
|
+
font-size: var(--ui-font-size);
|
|
700
|
+
color: var(--palette-neutral-950);
|
|
701
|
+
gap: 0.5rem;
|
|
702
|
+
width: 100%;
|
|
703
|
+
padding: 0 0 0.25em;
|
|
704
|
+
margin-bottom: 0.25em;
|
|
705
|
+
border-bottom: 1px solid var(--ui-border-color);
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
& > fray-content * > fieldset {
|
|
709
|
+
display: flex;
|
|
710
|
+
flex-flow: column;
|
|
711
|
+
justify-content: stretch;
|
|
712
|
+
justify-items: stretch;
|
|
713
|
+
align-items: stretch;
|
|
714
|
+
align-content: stretch;
|
|
715
|
+
box-sizing: border-box;
|
|
716
|
+
width: 100%;
|
|
717
|
+
gap: 0;
|
|
718
|
+
padding: .25em 0 .5em 0;
|
|
719
|
+
}
|
|
720
|
+
`);
|
|
721
|
+
const ir = ["disabled"];
|
|
521
722
|
class le extends g {
|
|
522
723
|
constructor(e = {}) {
|
|
523
724
|
super(e);
|
|
524
725
|
a(this, "panelId");
|
|
525
726
|
a(this, "headerId");
|
|
526
|
-
this.panelId =
|
|
727
|
+
this.panelId = I("panel", e.id), this.headerId = `${this.panelId}-title`;
|
|
527
728
|
}
|
|
528
729
|
render() {
|
|
529
730
|
const {
|
|
@@ -535,32 +736,32 @@ class le extends g {
|
|
|
535
736
|
} = this.props;
|
|
536
737
|
if (!["horizontal", "vertical"].includes(s))
|
|
537
738
|
throw new TypeError("Panel orientation must be horizontal or vertical");
|
|
538
|
-
const l = this.Host, c = e == null ? null : /* @__PURE__ */
|
|
539
|
-
|
|
739
|
+
const l = this.Host, c = e == null ? null : /* @__PURE__ */ h(
|
|
740
|
+
N,
|
|
540
741
|
{
|
|
541
742
|
id: `${this.panelId}-header`,
|
|
542
743
|
headingId: this.headerId,
|
|
543
744
|
children: e
|
|
544
745
|
}
|
|
545
746
|
);
|
|
546
|
-
return /* @__PURE__ */
|
|
747
|
+
return /* @__PURE__ */ y(
|
|
547
748
|
l,
|
|
548
749
|
{
|
|
549
750
|
id: this.panelId,
|
|
550
751
|
role: e == null ? null : "region",
|
|
551
|
-
className:
|
|
752
|
+
className: E(this.props),
|
|
552
753
|
"aria-disabled": n ? "true" : null,
|
|
553
754
|
"aria-labelledby": e == null ? null : this.headerId,
|
|
554
755
|
children: [
|
|
555
756
|
c,
|
|
556
757
|
i,
|
|
557
|
-
|
|
758
|
+
/* @__PURE__ */ h("fray-content", { className: s, children: o })
|
|
558
759
|
]
|
|
559
760
|
}
|
|
560
761
|
);
|
|
561
762
|
}
|
|
562
763
|
}
|
|
563
|
-
a(le, "liveProps",
|
|
764
|
+
a(le, "liveProps", ir), a(le, "hostName", "panel"), a(le, "dependencies", [N]), a(le, "css", w`
|
|
564
765
|
& {
|
|
565
766
|
background: var(--panel-background);
|
|
566
767
|
border: var(--panel-border);
|
|
@@ -598,7 +799,7 @@ class ce extends g {
|
|
|
598
799
|
super(e);
|
|
599
800
|
a(this, "sidebarId");
|
|
600
801
|
a(this, "headerId");
|
|
601
|
-
this.sidebarId =
|
|
802
|
+
this.sidebarId = I("sidebar", e.id), this.headerId = `${this.sidebarId}-title`;
|
|
602
803
|
}
|
|
603
804
|
render() {
|
|
604
805
|
const {
|
|
@@ -606,15 +807,15 @@ class ce extends g {
|
|
|
606
807
|
toolbar: i = null,
|
|
607
808
|
ariaLabel: o,
|
|
608
809
|
children: s = []
|
|
609
|
-
} = this.props, n = this.Host, l = e == null ? null : /* @__PURE__ */
|
|
610
|
-
|
|
810
|
+
} = this.props, n = this.Host, l = e == null ? null : /* @__PURE__ */ h(
|
|
811
|
+
N,
|
|
611
812
|
{
|
|
612
813
|
id: `${this.sidebarId}-header`,
|
|
613
814
|
headingId: this.headerId,
|
|
614
815
|
children: e
|
|
615
816
|
}
|
|
616
817
|
);
|
|
617
|
-
return /* @__PURE__ */
|
|
818
|
+
return /* @__PURE__ */ h(n, { className: E(this.props) || null, children: /* @__PURE__ */ y(
|
|
618
819
|
"aside",
|
|
619
820
|
{
|
|
620
821
|
id: this.sidebarId,
|
|
@@ -622,14 +823,14 @@ class ce extends g {
|
|
|
622
823
|
"aria-labelledby": e == null ? null : this.headerId,
|
|
623
824
|
children: [
|
|
624
825
|
l,
|
|
625
|
-
i == null ? null :
|
|
626
|
-
|
|
826
|
+
i == null ? null : /* @__PURE__ */ h("fray-toolbarcontent", { children: i }),
|
|
827
|
+
/* @__PURE__ */ h("fray-content", { tabIndex: 0, children: s })
|
|
627
828
|
]
|
|
628
829
|
}
|
|
629
830
|
) });
|
|
630
831
|
}
|
|
631
832
|
}
|
|
632
|
-
a(ce, "liveProps", []), a(ce, "hostName", "sidebar"), a(ce, "dependencies", [
|
|
833
|
+
a(ce, "liveProps", []), a(ce, "hostName", "sidebar"), a(ce, "dependencies", [N]), a(ce, "css", w`
|
|
633
834
|
& {
|
|
634
835
|
display: flex;
|
|
635
836
|
min-width: 0;
|
|
@@ -656,7 +857,7 @@ a(ce, "liveProps", []), a(ce, "hostName", "sidebar"), a(ce, "dependencies", [L])
|
|
|
656
857
|
overflow: auto;
|
|
657
858
|
}
|
|
658
859
|
`);
|
|
659
|
-
class
|
|
860
|
+
class $e extends g {
|
|
660
861
|
render() {
|
|
661
862
|
const {
|
|
662
863
|
primary: r = null,
|
|
@@ -671,28 +872,36 @@ class ze extends g {
|
|
|
671
872
|
if (o != null && (typeof o != "string" || o.length === 0))
|
|
672
873
|
throw new TypeError("SplitView primarySize must be a non-empty CSS size");
|
|
673
874
|
const l = this.Host;
|
|
674
|
-
return /* @__PURE__ */
|
|
875
|
+
return /* @__PURE__ */ y(
|
|
675
876
|
l,
|
|
676
877
|
{
|
|
677
|
-
className:
|
|
878
|
+
className: Zt(E(this.props), i),
|
|
678
879
|
style: o == null ? void 0 : { "--split-primary-size": o },
|
|
679
880
|
children: [
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
881
|
+
/* @__PURE__ */ h(
|
|
882
|
+
"fray-primary",
|
|
883
|
+
{
|
|
884
|
+
role: s == null ? null : "region",
|
|
885
|
+
"aria-label": s,
|
|
886
|
+
tabIndex: 0,
|
|
887
|
+
children: r
|
|
888
|
+
}
|
|
889
|
+
),
|
|
890
|
+
/* @__PURE__ */ h(
|
|
891
|
+
"fray-secondary",
|
|
892
|
+
{
|
|
893
|
+
role: n == null ? null : "region",
|
|
894
|
+
"aria-label": n,
|
|
895
|
+
tabIndex: 0,
|
|
896
|
+
children: e ?? this.props.children ?? []
|
|
897
|
+
}
|
|
898
|
+
)
|
|
690
899
|
]
|
|
691
900
|
}
|
|
692
901
|
);
|
|
693
902
|
}
|
|
694
903
|
}
|
|
695
|
-
a(
|
|
904
|
+
a($e, "liveProps", []), a($e, "hostName", "split-view"), a($e, "css", w`
|
|
696
905
|
& {
|
|
697
906
|
display: flex;
|
|
698
907
|
flex: 1 1 auto;
|
|
@@ -732,23 +941,23 @@ a(ze, "liveProps", []), a(ze, "hostName", "split-view"), a(ze, "css", E`
|
|
|
732
941
|
border-block-end: 1px solid var(--ui-border-color);
|
|
733
942
|
}
|
|
734
943
|
`);
|
|
735
|
-
class
|
|
944
|
+
class Dt extends g {
|
|
736
945
|
render() {
|
|
737
946
|
const { term: r, value: e, children: i = [] } = this.props;
|
|
738
947
|
return [
|
|
739
|
-
|
|
740
|
-
|
|
948
|
+
/* @__PURE__ */ h("dt", { children: r }),
|
|
949
|
+
/* @__PURE__ */ h("dd", { children: e ?? i })
|
|
741
950
|
];
|
|
742
951
|
}
|
|
743
952
|
}
|
|
744
|
-
a(
|
|
953
|
+
a(Dt, "liveProps", []);
|
|
745
954
|
class de extends g {
|
|
746
955
|
render() {
|
|
747
956
|
const r = this.Host;
|
|
748
|
-
return /* @__PURE__ */
|
|
957
|
+
return /* @__PURE__ */ h(r, { className: E(this.props) || null, children: /* @__PURE__ */ h("dl", { "aria-label": this.props.label, children: this.props.children ?? [] }) });
|
|
749
958
|
}
|
|
750
959
|
}
|
|
751
|
-
a(de, "liveProps", []), a(de, "hostName", "descriptionlist"), a(de, "dependencies", [
|
|
960
|
+
a(de, "liveProps", []), a(de, "hostName", "descriptionlist"), a(de, "dependencies", [Dt]), a(de, "css", w`
|
|
752
961
|
& {
|
|
753
962
|
display: block;
|
|
754
963
|
}
|
|
@@ -758,13 +967,13 @@ a(de, "liveProps", []), a(de, "hostName", "descriptionlist"), a(de, "dependencie
|
|
|
758
967
|
margin: 0;
|
|
759
968
|
}
|
|
760
969
|
`);
|
|
761
|
-
class
|
|
970
|
+
class M extends g {
|
|
762
971
|
render() {
|
|
763
|
-
const r =
|
|
764
|
-
return /* @__PURE__ */
|
|
972
|
+
const r = or(this.props.width ?? 65), e = this.Host;
|
|
973
|
+
return /* @__PURE__ */ h(e, { style: { width: `${r}%` }, "aria-hidden": "true" });
|
|
765
974
|
}
|
|
766
975
|
}
|
|
767
|
-
a(
|
|
976
|
+
a(M, "liveProps", []), a(M, "hostName", "placeholder"), a(M, "css", w`
|
|
768
977
|
& {
|
|
769
978
|
display: block;
|
|
770
979
|
width: 5em;
|
|
@@ -802,48 +1011,48 @@ a(H, "liveProps", []), a(H, "hostName", "placeholder"), a(H, "css", E`
|
|
|
802
1011
|
}
|
|
803
1012
|
}
|
|
804
1013
|
`);
|
|
805
|
-
function
|
|
1014
|
+
function or(t) {
|
|
806
1015
|
const r = Number(t);
|
|
807
1016
|
if (!Number.isFinite(r)) throw new TypeError("Placeholder width must be numeric");
|
|
808
1017
|
return Math.min(100, Math.max(10, r));
|
|
809
1018
|
}
|
|
810
|
-
function
|
|
811
|
-
|
|
1019
|
+
function Pt(t, r, e) {
|
|
1020
|
+
Ze(e);
|
|
812
1021
|
for (const i of e) {
|
|
813
1022
|
const o = r[i.key];
|
|
814
1023
|
if (o == null) continue;
|
|
815
1024
|
const s = i.options.flatMap((c) => {
|
|
816
1025
|
const u = o[c.key];
|
|
817
|
-
return u == null || u ===
|
|
1026
|
+
return u == null || u === v.Neutral ? [] : [{ option: c, mode: u }];
|
|
818
1027
|
});
|
|
819
|
-
if (s.some(({ option: c, mode: u }) => u ===
|
|
1028
|
+
if (s.some(({ option: c, mode: u }) => u === v.Deny && c.matches(t)) || s.filter(({ mode: c }) => c === v.Require).some(({ option: c }) => !c.matches(t)))
|
|
820
1029
|
return !1;
|
|
821
|
-
const l = s.filter(({ mode: c }) => c ===
|
|
1030
|
+
const l = s.filter(({ mode: c }) => c === v.Prefer);
|
|
822
1031
|
if (l.length > 0 && !l.some(({ option: c }) => c.matches(t)))
|
|
823
1032
|
return !1;
|
|
824
1033
|
}
|
|
825
1034
|
return !0;
|
|
826
1035
|
}
|
|
827
|
-
function
|
|
1036
|
+
function sr(t, r, e) {
|
|
828
1037
|
if (!Array.isArray(t)) throw new TypeError("Filtered items must be an array");
|
|
829
|
-
return t.filter((i) =>
|
|
1038
|
+
return t.filter((i) => Pt(i, r, e));
|
|
830
1039
|
}
|
|
831
|
-
function
|
|
832
|
-
return
|
|
1040
|
+
function Fi(t, r, e = null) {
|
|
1041
|
+
return Ze(r), new Te(
|
|
833
1042
|
[t],
|
|
834
|
-
([i]) => (o) =>
|
|
1043
|
+
([i]) => (o) => Pt(o, i, r),
|
|
835
1044
|
{ owner: e, purpose: "filter predicate" }
|
|
836
1045
|
);
|
|
837
1046
|
}
|
|
838
|
-
function
|
|
839
|
-
return
|
|
1047
|
+
function Di(t, r, e, i = null) {
|
|
1048
|
+
return Ze(e), new Te(
|
|
840
1049
|
[t, r],
|
|
841
|
-
([o, s]) =>
|
|
1050
|
+
([o, s]) => sr(o, s, e),
|
|
842
1051
|
{ owner: i, purpose: "filtered items" }
|
|
843
1052
|
);
|
|
844
1053
|
}
|
|
845
|
-
function
|
|
846
|
-
|
|
1054
|
+
function Pi(t) {
|
|
1055
|
+
nr(t);
|
|
847
1056
|
const r = {};
|
|
848
1057
|
for (const e of Object.keys(t).sort()) {
|
|
849
1058
|
const i = {}, o = t[e];
|
|
@@ -853,16 +1062,16 @@ function $i(t) {
|
|
|
853
1062
|
}
|
|
854
1063
|
return { version: 1, dimensions: r };
|
|
855
1064
|
}
|
|
856
|
-
function
|
|
1065
|
+
function Ki(t) {
|
|
857
1066
|
if (!ee(t) || t.version !== 1 || !ee(t.dimensions))
|
|
858
1067
|
throw new TypeError("Filter state must use version 1 with a dimensions object");
|
|
859
1068
|
const r = {};
|
|
860
1069
|
for (const [e, i] of Object.entries(t.dimensions)) {
|
|
861
|
-
if (
|
|
1070
|
+
if (B(e, "Filter dimension"), !ee(i))
|
|
862
1071
|
throw new TypeError(`Filter dimension ${e} must be an object`);
|
|
863
1072
|
const o = {};
|
|
864
1073
|
for (const [s, n] of Object.entries(i)) {
|
|
865
|
-
if (
|
|
1074
|
+
if (B(s, `Filter option in ${e}`), !Re(n))
|
|
866
1075
|
throw new TypeError(
|
|
867
1076
|
`Unknown filter mode for ${e}.${s}: ${String(n)}`
|
|
868
1077
|
);
|
|
@@ -872,46 +1081,46 @@ function Oi(t) {
|
|
|
872
1081
|
}
|
|
873
1082
|
return r;
|
|
874
1083
|
}
|
|
875
|
-
function
|
|
1084
|
+
function nr(t) {
|
|
876
1085
|
if (!ee(t)) throw new TypeError("Filter state must be an object");
|
|
877
1086
|
for (const [r, e] of Object.entries(t)) {
|
|
878
|
-
if (
|
|
1087
|
+
if (B(r, "Filter dimension"), !ee(e))
|
|
879
1088
|
throw new TypeError(`Filter dimension ${r} must be an object`);
|
|
880
1089
|
for (const [i, o] of Object.entries(e))
|
|
881
|
-
if (
|
|
1090
|
+
if (B(i, `Filter option in ${r}`), !Re(o))
|
|
882
1091
|
throw new TypeError(
|
|
883
1092
|
`Unknown filter mode for ${r}.${i}: ${String(o)}`
|
|
884
1093
|
);
|
|
885
1094
|
}
|
|
886
1095
|
}
|
|
887
|
-
function
|
|
1096
|
+
function Ze(t) {
|
|
888
1097
|
if (!Array.isArray(t)) throw new TypeError("Filter dimensions must be an array");
|
|
889
1098
|
const r = /* @__PURE__ */ new Set();
|
|
890
1099
|
for (const e of t) {
|
|
891
|
-
if (
|
|
1100
|
+
if (B(e.key, "Filter dimension"), r.has(e.key))
|
|
892
1101
|
throw new Error(`Duplicate filter dimension: ${e.key}`);
|
|
893
1102
|
if (r.add(e.key), !Array.isArray(e.options))
|
|
894
1103
|
throw new TypeError(`Filter dimension ${e.key} options must be an array`);
|
|
895
1104
|
const i = /* @__PURE__ */ new Set();
|
|
896
1105
|
for (const o of e.options) {
|
|
897
|
-
if (
|
|
1106
|
+
if (B(o.key, `Filter option in ${e.key}`), i.has(o.key))
|
|
898
1107
|
throw new Error(`Duplicate filter option: ${e.key}.${o.key}`);
|
|
899
1108
|
if (i.add(o.key), typeof o.matches != "function")
|
|
900
1109
|
throw new TypeError(`Filter matcher ${e.key}.${o.key} must be a function`);
|
|
901
1110
|
}
|
|
902
1111
|
}
|
|
903
1112
|
}
|
|
904
|
-
function
|
|
1113
|
+
function B(t, r) {
|
|
905
1114
|
if (t.length === 0 || t === "__proto__" || t === "prototype" || t === "constructor")
|
|
906
1115
|
throw new TypeError(`${r} key is not safe for persisted state`);
|
|
907
1116
|
}
|
|
908
1117
|
function ee(t) {
|
|
909
1118
|
return t != null && typeof t == "object" && !Array.isArray(t);
|
|
910
1119
|
}
|
|
911
|
-
class
|
|
1120
|
+
class Kt {
|
|
912
1121
|
constructor({
|
|
913
1122
|
getItems: r,
|
|
914
|
-
getKey: e =
|
|
1123
|
+
getKey: e = et,
|
|
915
1124
|
selectedItemsEmitter: i,
|
|
916
1125
|
owner: o = null
|
|
917
1126
|
}) {
|
|
@@ -936,10 +1145,10 @@ class Lt {
|
|
|
936
1145
|
throw new TypeError("Selection handler getItems must be a function");
|
|
937
1146
|
if (typeof e != "function")
|
|
938
1147
|
throw new TypeError("Selection handler getKey must be a function");
|
|
939
|
-
this.getItems = r, this.getKey = e, this.ownedSelectedItemsEmitter = i == null ? new
|
|
1148
|
+
this.getItems = r, this.getKey = e, this.ownedSelectedItemsEmitter = i == null ? new S([], { owner: o, purpose: "selected items" }) : null, this.selectedItemsEmitter = i ?? this.ownedSelectedItemsEmitter, this.selectedItems$ = this.selectedItemsEmitter, this.ownsSelectedItemsEmitter = this.ownedSelectedItemsEmitter != null;
|
|
940
1149
|
}
|
|
941
1150
|
rowsUpdated(r) {
|
|
942
|
-
this.destroyed || (this.releaseRows(), this.rows = Array.from(r ?? []), this.rows.forEach((e, i) => this.wireRow(e, i)), this.activeIndex =
|
|
1151
|
+
this.destroyed || (this.releaseRows(), this.rows = Array.from(r ?? []), this.rows.forEach((e, i) => this.wireRow(e, i)), this.activeIndex = cr(this.activeIndex, this.rows.length), this.reconcileSelectedItems(), this.syncRows());
|
|
943
1152
|
}
|
|
944
1153
|
wireRow(r, e) {
|
|
945
1154
|
const i = (l) => this.handleClick(e, l), o = (l) => this.handleKeyDown(e, l), s = (l) => this.handleMouseDown(e, l, r), n = (l) => this.handleMouseEnter(e, l);
|
|
@@ -1027,9 +1236,9 @@ class Lt {
|
|
|
1027
1236
|
this.destroyed || (this.destroyed = !0, this.finishDrag(!1), this.clearClickSuppression(), this.releaseRows(), (r = this.ownedSelectedItemsEmitter) == null || r.dispose());
|
|
1028
1237
|
}
|
|
1029
1238
|
}
|
|
1030
|
-
class
|
|
1239
|
+
class Xe extends Kt {
|
|
1031
1240
|
constructor(e) {
|
|
1032
|
-
const i = e.selectedItemEmitter == null ? new
|
|
1241
|
+
const i = e.selectedItemEmitter == null ? new S(null, {
|
|
1033
1242
|
owner: e.owner,
|
|
1034
1243
|
purpose: "selected item"
|
|
1035
1244
|
}) : null, o = e.selectedItemEmitter ?? i;
|
|
@@ -1037,7 +1246,7 @@ class Ze extends Lt {
|
|
|
1037
1246
|
getItems: e.getItems,
|
|
1038
1247
|
...e.getKey == null ? {} : { getKey: e.getKey },
|
|
1039
1248
|
...e.owner === void 0 ? {} : { owner: e.owner },
|
|
1040
|
-
selectedItemsEmitter: new
|
|
1249
|
+
selectedItemsEmitter: new lr(o)
|
|
1041
1250
|
});
|
|
1042
1251
|
a(this, "selectedItemEmitter");
|
|
1043
1252
|
a(this, "selectedItem$");
|
|
@@ -1056,17 +1265,17 @@ class Ze extends Lt {
|
|
|
1056
1265
|
super.destroy(), (e = this.ownedSelectedItemEmitter) == null || e.dispose();
|
|
1057
1266
|
}
|
|
1058
1267
|
}
|
|
1059
|
-
class
|
|
1268
|
+
class ar extends Kt {
|
|
1060
1269
|
selectIndex(r, e) {
|
|
1061
1270
|
const i = this.getItems(), o = i[r];
|
|
1062
1271
|
if (o !== void 0) {
|
|
1063
1272
|
if (e.shiftKey && this.anchorIndex != null) {
|
|
1064
|
-
const s = Math.min(this.anchorIndex, r), n = Math.max(this.anchorIndex, r), l = i.slice(s, n + 1), c =
|
|
1273
|
+
const s = Math.min(this.anchorIndex, r), n = Math.max(this.anchorIndex, r), l = i.slice(s, n + 1), c = Oe(e) ? Et(this.getSelectedItems(), l, this.getKey) : [...l];
|
|
1065
1274
|
this.setSelectedItems(c, "range selection changed");
|
|
1066
1275
|
return;
|
|
1067
1276
|
}
|
|
1068
|
-
if (
|
|
1069
|
-
const s = this.getSelectedItems(), n = this.getKey(o, r), c = s.some((u,
|
|
1277
|
+
if (Oe(e) || "key" in e && e.key === " ") {
|
|
1278
|
+
const s = this.getSelectedItems(), n = this.getKey(o, r), c = s.some((u, p) => Object.is(this.getKey(u, p), n)) ? s.filter((u, p) => !Object.is(this.getKey(u, p), n)) : [...s, o];
|
|
1070
1279
|
this.anchorIndex = r, this.setSelectedItems(c, "multi selection toggled");
|
|
1071
1280
|
return;
|
|
1072
1281
|
}
|
|
@@ -1080,14 +1289,14 @@ class Xt extends Lt {
|
|
|
1080
1289
|
return !0;
|
|
1081
1290
|
}
|
|
1082
1291
|
selectDragRange(r, e, i) {
|
|
1083
|
-
const o = this.getItems(), s = Math.min(r, e), n = Math.max(r, e), l = o.slice(s, n + 1), c =
|
|
1292
|
+
const o = this.getItems(), s = Math.min(r, e), n = Math.max(r, e), l = o.slice(s, n + 1), c = Oe(i) ? Et(this.getSelectedItems(), l, this.getKey) : [...l];
|
|
1084
1293
|
this.anchorIndex = r, this.setSelectedItems(c, "drag selection changed");
|
|
1085
1294
|
}
|
|
1086
1295
|
}
|
|
1087
1296
|
function xe(t) {
|
|
1088
|
-
return t.multiSelect ? new
|
|
1297
|
+
return t.multiSelect ? new ar(t) : new Xe(t);
|
|
1089
1298
|
}
|
|
1090
|
-
class
|
|
1299
|
+
class lr {
|
|
1091
1300
|
constructor(r) {
|
|
1092
1301
|
this.source = r;
|
|
1093
1302
|
}
|
|
@@ -1111,7 +1320,7 @@ class er {
|
|
|
1111
1320
|
}), e);
|
|
1112
1321
|
}
|
|
1113
1322
|
}
|
|
1114
|
-
function
|
|
1323
|
+
function et(t, r) {
|
|
1115
1324
|
if (t != null && typeof t == "object") {
|
|
1116
1325
|
const e = Reflect.get(t, "id");
|
|
1117
1326
|
if (e != null) return e;
|
|
@@ -1121,13 +1330,13 @@ function Xe(t, r) {
|
|
|
1121
1330
|
`Selection item at index ${r} needs an id or an explicit itemKey/rowKey`
|
|
1122
1331
|
);
|
|
1123
1332
|
}
|
|
1124
|
-
function
|
|
1333
|
+
function Oe(t) {
|
|
1125
1334
|
return !!(t.ctrlKey || t.metaKey);
|
|
1126
1335
|
}
|
|
1127
|
-
function
|
|
1336
|
+
function cr(t, r) {
|
|
1128
1337
|
return r <= 0 ? 0 : Math.min(Math.max(t, 0), r - 1);
|
|
1129
1338
|
}
|
|
1130
|
-
function
|
|
1339
|
+
function Et(t, r, e) {
|
|
1131
1340
|
const i = [...t], o = new Set(t.map((s, n) => e(s, n)));
|
|
1132
1341
|
for (const s of r) {
|
|
1133
1342
|
const n = e(s, i.length);
|
|
@@ -1147,10 +1356,10 @@ class ue extends g {
|
|
|
1147
1356
|
a(this, "getItemKey");
|
|
1148
1357
|
a(this, "selectionHandler");
|
|
1149
1358
|
a(this, "ownedItemsEmitter");
|
|
1150
|
-
|
|
1359
|
+
ur(e.items) ? (this.itemsEmitter = e.items, this.ownedItemsEmitter = null) : (this.ownedItemsEmitter = new S(e.items ?? [], {
|
|
1151
1360
|
owner: this,
|
|
1152
1361
|
purpose: "list items"
|
|
1153
|
-
}), this.itemsEmitter = this.ownedItemsEmitter), this.items$ = this.itemsEmitter, this.getItemKey =
|
|
1362
|
+
}), this.itemsEmitter = this.ownedItemsEmitter), this.items$ = this.itemsEmitter, this.getItemKey = dr(e.itemKey), this.selectionHandler = e.multiSelect === !0 ? xe({
|
|
1154
1363
|
owner: this,
|
|
1155
1364
|
multiSelect: !0,
|
|
1156
1365
|
...e.selectedItemsEmitter == null ? {} : { selectedItemsEmitter: e.selectedItemsEmitter },
|
|
@@ -1161,7 +1370,7 @@ class ue extends g {
|
|
|
1161
1370
|
...e.selectedItemEmitter == null ? {} : { selectedItemEmitter: e.selectedItemEmitter },
|
|
1162
1371
|
getItems: () => this.itemsEmitter.get(),
|
|
1163
1372
|
getKey: this.getItemKey
|
|
1164
|
-
}), this.selectedItemsEmitter = this.selectionHandler.selectedItemsEmitter, this.selectedItems$ = this.selectedItemsEmitter, this.selectedItemEmitter = this.selectionHandler instanceof
|
|
1373
|
+
}), this.selectedItemsEmitter = this.selectionHandler.selectedItemsEmitter, this.selectedItems$ = this.selectedItemsEmitter, this.selectedItemEmitter = this.selectionHandler instanceof Xe ? this.selectionHandler.selectedItemEmitter : null, this.selectedItem$ = this.selectedItemEmitter;
|
|
1165
1374
|
}
|
|
1166
1375
|
initialize() {
|
|
1167
1376
|
this.watch(this.itemsEmitter, this.selectedItemsEmitter);
|
|
@@ -1169,19 +1378,19 @@ class ue extends g {
|
|
|
1169
1378
|
render() {
|
|
1170
1379
|
const e = this.itemsEmitter.get();
|
|
1171
1380
|
if (!Array.isArray(e)) throw new TypeError("ListView items must be an array");
|
|
1172
|
-
const i = this.itemsEmitter.getFetchState(), o = this.itemsEmitter.getError(), s = i ===
|
|
1173
|
-
return /* @__PURE__ */
|
|
1381
|
+
const i = this.itemsEmitter.getFetchState(), o = this.itemsEmitter.getError(), s = i === k.Initial || i === k.Loading, n = new Set(this.selectedItemsEmitter.get().map((c, u) => this.getItemKey(c, u))), l = this.Host;
|
|
1382
|
+
return /* @__PURE__ */ y(
|
|
1174
1383
|
l,
|
|
1175
1384
|
{
|
|
1176
|
-
className:
|
|
1385
|
+
className: E(this.props) || null,
|
|
1177
1386
|
children: [
|
|
1178
|
-
i ===
|
|
1179
|
-
s && e.length === 0 ? /* @__PURE__ */
|
|
1180
|
-
/* @__PURE__ */
|
|
1181
|
-
/* @__PURE__ */
|
|
1387
|
+
i === k.Error ? /* @__PURE__ */ h("p", { role: "alert", children: fr(o, "Unable to load items") }) : null,
|
|
1388
|
+
s && e.length === 0 ? /* @__PURE__ */ y(Ie, { children: [
|
|
1389
|
+
/* @__PURE__ */ h("p", { role: "status", children: "Loading items…" }),
|
|
1390
|
+
/* @__PURE__ */ h("ul", { "aria-hidden": "true", children: Array.from({ length: this.props.placeholderCount ?? 5 }, (c, u) => /* @__PURE__ */ h("li", { children: /* @__PURE__ */ h(M, { width: 45 + u * 7 }) }, `placeholder-${u}`)) })
|
|
1182
1391
|
] }) : null,
|
|
1183
|
-
i ===
|
|
1184
|
-
e.length > 0 ? /* @__PURE__ */
|
|
1392
|
+
i === k.Ready && e.length === 0 ? /* @__PURE__ */ h("p", { role: "status", children: "No items" }) : null,
|
|
1393
|
+
e.length > 0 ? /* @__PURE__ */ h(
|
|
1185
1394
|
"ul",
|
|
1186
1395
|
{
|
|
1187
1396
|
role: "listbox",
|
|
@@ -1189,8 +1398,8 @@ class ue extends g {
|
|
|
1189
1398
|
"aria-busy": s ? "true" : null,
|
|
1190
1399
|
"aria-multiselectable": this.props.multiSelect ? "true" : null,
|
|
1191
1400
|
children: e.map((c, u) => {
|
|
1192
|
-
const
|
|
1193
|
-
return /* @__PURE__ */
|
|
1401
|
+
const p = this.getItemKey(c, u), b = n.has(p), f = this.props.renderItem ? this.props.renderItem(c, u) : hr(c);
|
|
1402
|
+
return /* @__PURE__ */ h(
|
|
1194
1403
|
"li",
|
|
1195
1404
|
{
|
|
1196
1405
|
role: "option",
|
|
@@ -1199,7 +1408,7 @@ class ue extends g {
|
|
|
1199
1408
|
tabIndex: u === 0 ? 0 : -1,
|
|
1200
1409
|
children: f
|
|
1201
1410
|
},
|
|
1202
|
-
String(
|
|
1411
|
+
String(p)
|
|
1203
1412
|
);
|
|
1204
1413
|
})
|
|
1205
1414
|
}
|
|
@@ -1230,7 +1439,7 @@ class ue extends g {
|
|
|
1230
1439
|
this.selectionHandler.destroy(), (e = this.ownedItemsEmitter) == null || e.dispose();
|
|
1231
1440
|
}
|
|
1232
1441
|
}
|
|
1233
|
-
a(ue, "liveProps", []), a(ue, "dependencies", [
|
|
1442
|
+
a(ue, "liveProps", []), a(ue, "dependencies", [M]), a(ue, "hostName", "listview"), a(ue, "css", w`
|
|
1234
1443
|
& {
|
|
1235
1444
|
display: flex;
|
|
1236
1445
|
flex-direction: column;
|
|
@@ -1284,8 +1493,8 @@ a(ue, "liveProps", []), a(ue, "dependencies", [H]), a(ue, "hostName", "listview"
|
|
|
1284
1493
|
padding: var(--ui-padding);
|
|
1285
1494
|
}
|
|
1286
1495
|
`);
|
|
1287
|
-
function
|
|
1288
|
-
if (t == null) return
|
|
1496
|
+
function dr(t) {
|
|
1497
|
+
if (t == null) return et;
|
|
1289
1498
|
if (typeof t == "function") return t;
|
|
1290
1499
|
if (typeof t == "string" && t.length > 0)
|
|
1291
1500
|
return (r, e) => {
|
|
@@ -1298,28 +1507,29 @@ function rr(t) {
|
|
|
1298
1507
|
};
|
|
1299
1508
|
throw new TypeError("ListView itemKey must be a function or property name");
|
|
1300
1509
|
}
|
|
1301
|
-
function
|
|
1510
|
+
function ur(t) {
|
|
1302
1511
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function";
|
|
1303
1512
|
}
|
|
1304
|
-
function
|
|
1513
|
+
function hr(t) {
|
|
1305
1514
|
if (t != null && (typeof t == "object" || typeof t == "function")) {
|
|
1306
1515
|
const r = Reflect.get(t, "label");
|
|
1307
|
-
if (
|
|
1516
|
+
if (pr(r)) return r;
|
|
1308
1517
|
}
|
|
1309
1518
|
return String(t);
|
|
1310
1519
|
}
|
|
1311
|
-
function
|
|
1520
|
+
function pr(t) {
|
|
1312
1521
|
return t == null || typeof t == "string" || typeof t == "number";
|
|
1313
1522
|
}
|
|
1314
|
-
function
|
|
1523
|
+
function fr(t, r) {
|
|
1315
1524
|
return t instanceof Error ? t.message : t == null ? r : String(t);
|
|
1316
1525
|
}
|
|
1317
|
-
class
|
|
1526
|
+
class tt extends g {
|
|
1318
1527
|
}
|
|
1319
|
-
a(
|
|
1528
|
+
a(tt, "css", w`
|
|
1320
1529
|
& {
|
|
1321
1530
|
display: inline-flex;
|
|
1322
1531
|
line-height: 1;
|
|
1532
|
+
height: 1.4em;
|
|
1323
1533
|
}
|
|
1324
1534
|
|
|
1325
1535
|
& > label {
|
|
@@ -1397,8 +1607,8 @@ a(et, "css", E`
|
|
|
1397
1607
|
filter: saturate(0.6);
|
|
1398
1608
|
}
|
|
1399
1609
|
`);
|
|
1400
|
-
const
|
|
1401
|
-
class
|
|
1610
|
+
const mr = ["disabled", "required", "error"];
|
|
1611
|
+
class A extends tt {
|
|
1402
1612
|
constructor(e = {}) {
|
|
1403
1613
|
super(e);
|
|
1404
1614
|
a(this, "symbols");
|
|
@@ -1406,11 +1616,11 @@ class j extends et {
|
|
|
1406
1616
|
a(this, "semanticStateEmitter");
|
|
1407
1617
|
a(this, "inputId");
|
|
1408
1618
|
a(this, "errorId");
|
|
1409
|
-
this.inputId =
|
|
1619
|
+
this.inputId = I("checkbox", e.id), this.errorId = `${this.inputId}-error`;
|
|
1410
1620
|
const i = this.constructor;
|
|
1411
|
-
this.symbols = e.symbols ?? i.symbols,
|
|
1621
|
+
this.symbols = e.symbols ?? i.symbols, br(this.symbols);
|
|
1412
1622
|
const o = e.initialSemanticState ?? i.defaultSemanticState ?? this.symbols[0][1], s = { ...e };
|
|
1413
|
-
s.defaultValue == null && e.initialSemanticState != null && (s.defaultValue = e.initialSemanticState), this.valueEmitter =
|
|
1623
|
+
s.defaultValue == null && e.initialSemanticState != null && (s.defaultValue = e.initialSemanticState), this.valueEmitter = L(
|
|
1414
1624
|
this,
|
|
1415
1625
|
s,
|
|
1416
1626
|
o,
|
|
@@ -1423,7 +1633,7 @@ class j extends et {
|
|
|
1423
1633
|
cycleState(e = 1, i = null) {
|
|
1424
1634
|
if (this.props.disabled) return;
|
|
1425
1635
|
const o = this.symbols.findIndex(([, c]) => Object.is(c, this.valueEmitter.get())), n = ((o < 0 ? 0 : o) + e + this.symbols.length) % this.symbols.length, l = this.symbols[n][1];
|
|
1426
|
-
this.valueEmitter.set(l, "checkbox state changed"),
|
|
1636
|
+
this.valueEmitter.set(l, "checkbox state changed"), z(this.props.onChange, l, i);
|
|
1427
1637
|
}
|
|
1428
1638
|
render() {
|
|
1429
1639
|
const {
|
|
@@ -1431,15 +1641,15 @@ class j extends et {
|
|
|
1431
1641
|
disabled: i = !1,
|
|
1432
1642
|
required: o = !1,
|
|
1433
1643
|
error: s = null
|
|
1434
|
-
} = this.props, n = this.valueEmitter.get(), l = this.symbols.findIndex(([, m]) => Object.is(m, n)), [c] = this.symbols[l] ?? ["?", n], u = c === "☐" ? null : c,
|
|
1435
|
-
return /* @__PURE__ */
|
|
1644
|
+
} = this.props, n = this.valueEmitter.get(), l = this.symbols.findIndex(([, m]) => Object.is(m, n)), [c] = this.symbols[l] ?? ["?", n], u = c === "☐" ? null : c, p = Xt(n), b = xt(this.symbols, n), f = this.Host;
|
|
1645
|
+
return /* @__PURE__ */ y(
|
|
1436
1646
|
f,
|
|
1437
1647
|
{
|
|
1438
|
-
className:
|
|
1439
|
-
"data-state":
|
|
1648
|
+
className: E(this.props) || null,
|
|
1649
|
+
"data-state": p,
|
|
1440
1650
|
children: [
|
|
1441
|
-
/* @__PURE__ */
|
|
1442
|
-
/* @__PURE__ */
|
|
1651
|
+
/* @__PURE__ */ y("label", { children: [
|
|
1652
|
+
/* @__PURE__ */ h(
|
|
1443
1653
|
"input",
|
|
1444
1654
|
{
|
|
1445
1655
|
id: this.inputId,
|
|
@@ -1449,11 +1659,11 @@ class j extends et {
|
|
|
1449
1659
|
required: o,
|
|
1450
1660
|
name: this.props.name,
|
|
1451
1661
|
value: String(n),
|
|
1452
|
-
"aria-label": `${e}: ${
|
|
1662
|
+
"aria-label": `${e}: ${p}`,
|
|
1453
1663
|
"aria-invalid": s == null ? null : "true",
|
|
1454
1664
|
"aria-describedby": s == null ? null : this.errorId,
|
|
1455
1665
|
onChange: (m) => {
|
|
1456
|
-
this.cycleState(1, m), m.currentTarget.checked =
|
|
1666
|
+
this.cycleState(1, m), m.currentTarget.checked = xt(
|
|
1457
1667
|
this.symbols,
|
|
1458
1668
|
this.valueEmitter.get()
|
|
1459
1669
|
);
|
|
@@ -1463,19 +1673,19 @@ class j extends et {
|
|
|
1463
1673
|
}
|
|
1464
1674
|
}
|
|
1465
1675
|
),
|
|
1466
|
-
|
|
1676
|
+
/* @__PURE__ */ h("fray-checkshell", { "aria-hidden": "true", children: u }),
|
|
1467
1677
|
e
|
|
1468
1678
|
] }),
|
|
1469
|
-
s == null ? null : /* @__PURE__ */
|
|
1679
|
+
s == null ? null : /* @__PURE__ */ h("p", { id: this.errorId, role: "alert", children: String(s) })
|
|
1470
1680
|
]
|
|
1471
1681
|
}
|
|
1472
1682
|
);
|
|
1473
1683
|
}
|
|
1474
1684
|
}
|
|
1475
|
-
a(
|
|
1476
|
-
["☐",
|
|
1477
|
-
["✓",
|
|
1478
|
-
]), a(
|
|
1685
|
+
a(A, "liveProps", mr), a(A, "symbols", [
|
|
1686
|
+
["☐", v.Neutral],
|
|
1687
|
+
["✓", v.Prefer]
|
|
1688
|
+
]), a(A, "defaultSemanticState", v.Neutral), a(A, "hostName", "check-box"), a(A, "css", w`
|
|
1479
1689
|
& > label > input[value="require"] + fray-checkshell {
|
|
1480
1690
|
color: var(--palette-contrast-light);
|
|
1481
1691
|
background: var(--palette-green);
|
|
@@ -1488,64 +1698,64 @@ a(j, "liveProps", ar), a(j, "symbols", [
|
|
|
1488
1698
|
box-shadow: var(--checkbox-box-shadow-checked);
|
|
1489
1699
|
}
|
|
1490
1700
|
`);
|
|
1491
|
-
function
|
|
1701
|
+
function br(t) {
|
|
1492
1702
|
if (!Array.isArray(t) || t.length === 0)
|
|
1493
1703
|
throw new TypeError("Checkbox symbols must be a non-empty tuple array");
|
|
1494
1704
|
for (const r of t)
|
|
1495
1705
|
if (!Array.isArray(r) || r.length < 2)
|
|
1496
1706
|
throw new TypeError("Checkbox symbols must be [symbol, state] tuples");
|
|
1497
1707
|
}
|
|
1498
|
-
function
|
|
1708
|
+
function xt(t, r) {
|
|
1499
1709
|
const e = t.findIndex(([, i]) => Object.is(i, r));
|
|
1500
|
-
return r ===
|
|
1710
|
+
return r === v.Prefer || r === v.Require || t.length === 2 && e === 1;
|
|
1501
1711
|
}
|
|
1502
|
-
class
|
|
1712
|
+
class V extends g {
|
|
1503
1713
|
constructor(e = {}) {
|
|
1504
1714
|
super(e);
|
|
1505
1715
|
a(this, "optionsEmitter");
|
|
1506
1716
|
a(this, "optionStateEmitters", /* @__PURE__ */ new Map());
|
|
1507
1717
|
a(this, "staleOptionValues", /* @__PURE__ */ new Set());
|
|
1508
|
-
this.optionsEmitter =
|
|
1718
|
+
this.optionsEmitter = Er(e.options) ? e.options : null;
|
|
1509
1719
|
}
|
|
1510
1720
|
initialize() {
|
|
1511
1721
|
this.optionsEmitter && this.watch(this.optionsEmitter);
|
|
1512
1722
|
}
|
|
1513
1723
|
render() {
|
|
1514
|
-
var f, m,
|
|
1724
|
+
var f, m, R;
|
|
1515
1725
|
const e = ((f = this.optionsEmitter) == null ? void 0 : f.get()) ?? (Array.isArray(this.props.options) ? this.props.options : []);
|
|
1516
1726
|
if (!Array.isArray(e))
|
|
1517
1727
|
throw new TypeError("FilterPanel options must be an array or emitter of arrays");
|
|
1518
|
-
const i = ((m = this.optionsEmitter) == null ? void 0 : m.getFetchState()) ??
|
|
1728
|
+
const i = ((m = this.optionsEmitter) == null ? void 0 : m.getFetchState()) ?? k.Ready, o = (R = this.optionsEmitter) == null ? void 0 : R.getError(), s = kt(this.props.filters), n = this.props.filterModes ?? A.symbols, l = this.props.defaultSemanticState ?? v.Neutral, c = new Set(e.map(Qe));
|
|
1519
1729
|
this.staleOptionValues = new Set(
|
|
1520
1730
|
[...this.optionStateEmitters.keys()].filter((T) => !c.has(T))
|
|
1521
1731
|
);
|
|
1522
|
-
const u = this.Host,
|
|
1523
|
-
return i ===
|
|
1732
|
+
const u = this.Host, p = i === k.Initial || i === k.Loading, b = E(this.props) || null;
|
|
1733
|
+
return i === k.Error && e.length === 0 ? /* @__PURE__ */ h(u, { className: b, children: /* @__PURE__ */ h("p", { role: "alert", children: St(o, "Unable to load filter options") }) }) : p && e.length === 0 ? /* @__PURE__ */ h(u, { className: b, children: /* @__PURE__ */ h("p", { role: "status", children: "Loading filter options…" }) }) : /* @__PURE__ */ y(
|
|
1524
1734
|
u,
|
|
1525
1735
|
{
|
|
1526
1736
|
className: b,
|
|
1527
1737
|
role: "group",
|
|
1528
1738
|
"aria-label": this.props.label ?? "Filter options",
|
|
1529
|
-
"aria-busy":
|
|
1739
|
+
"aria-busy": p ? "true" : null,
|
|
1530
1740
|
children: [
|
|
1531
|
-
i ===
|
|
1532
|
-
|
|
1533
|
-
e.length === 0 ? /* @__PURE__ */
|
|
1534
|
-
const
|
|
1535
|
-
return /* @__PURE__ */
|
|
1536
|
-
|
|
1741
|
+
i === k.Error ? /* @__PURE__ */ h("p", { role: "alert", children: St(o, "Unable to load filter options") }) : null,
|
|
1742
|
+
p ? /* @__PURE__ */ h("p", { role: "status", children: "Loading filter options…" }) : null,
|
|
1743
|
+
e.length === 0 ? /* @__PURE__ */ h("p", { children: "No filter options" }) : e.map((T) => {
|
|
1744
|
+
const x = Qe(T), $ = yr(T), D = s.get(x) ?? l, P = this.optionEmitter(x, D);
|
|
1745
|
+
return /* @__PURE__ */ h(
|
|
1746
|
+
gr,
|
|
1537
1747
|
{
|
|
1538
|
-
label:
|
|
1539
|
-
valueEmitter:
|
|
1748
|
+
label: $,
|
|
1749
|
+
valueEmitter: P,
|
|
1540
1750
|
symbols: n,
|
|
1541
|
-
onChange: (
|
|
1542
|
-
var
|
|
1543
|
-
|
|
1544
|
-
const
|
|
1545
|
-
|
|
1751
|
+
onChange: (K, C) => {
|
|
1752
|
+
var G, Y;
|
|
1753
|
+
C == null || C.stopPropagation();
|
|
1754
|
+
const q = kt(this.props.filters);
|
|
1755
|
+
K === v.Neutral ? q.delete(x) : q.set(x, K), (Y = (G = this.props).onChange) == null || Y.call(G, q, C);
|
|
1546
1756
|
}
|
|
1547
1757
|
},
|
|
1548
|
-
|
|
1758
|
+
wr(x)
|
|
1549
1759
|
);
|
|
1550
1760
|
})
|
|
1551
1761
|
]
|
|
@@ -1566,11 +1776,11 @@ class U extends g {
|
|
|
1566
1776
|
const o = this.optionStateEmitters.get(e);
|
|
1567
1777
|
if (o != null)
|
|
1568
1778
|
return o.get() !== i && o.set(i, "filter option synchronized"), o;
|
|
1569
|
-
const s = new
|
|
1779
|
+
const s = new S(i, { owner: this, purpose: `filter option ${String(e)}` });
|
|
1570
1780
|
return this.optionStateEmitters.set(e, s), s;
|
|
1571
1781
|
}
|
|
1572
1782
|
}
|
|
1573
|
-
a(
|
|
1783
|
+
a(V, "liveProps", []), a(V, "dependencies", [A]), a(V, "hostName", "filter-panel"), a(V, "css", w`
|
|
1574
1784
|
& {
|
|
1575
1785
|
position: absolute;
|
|
1576
1786
|
background: white;
|
|
@@ -1590,14 +1800,14 @@ a(U, "liveProps", []), a(U, "dependencies", [j]), a(U, "hostName", "filter-panel
|
|
|
1590
1800
|
margin: 0;
|
|
1591
1801
|
}
|
|
1592
1802
|
`);
|
|
1593
|
-
const
|
|
1594
|
-
function
|
|
1803
|
+
const gr = A;
|
|
1804
|
+
function kt(t) {
|
|
1595
1805
|
if (t == null) return /* @__PURE__ */ new Map();
|
|
1596
1806
|
if (t instanceof Map) return new Map(t);
|
|
1597
1807
|
if (Array.isArray(t)) return new Map(t);
|
|
1598
1808
|
throw new TypeError("FilterPanel filters must be a Map or tuple array");
|
|
1599
1809
|
}
|
|
1600
|
-
function
|
|
1810
|
+
function Qe(t) {
|
|
1601
1811
|
if (typeof t == "string" || typeof t == "number") return t;
|
|
1602
1812
|
if (t != null && typeof t == "object") {
|
|
1603
1813
|
const r = Reflect.get(t, "value");
|
|
@@ -1605,23 +1815,23 @@ function _e(t) {
|
|
|
1605
1815
|
}
|
|
1606
1816
|
throw new TypeError("Filter options must be strings, numbers, or value/label objects");
|
|
1607
1817
|
}
|
|
1608
|
-
function
|
|
1818
|
+
function yr(t) {
|
|
1609
1819
|
if (t != null && typeof t == "object") {
|
|
1610
1820
|
const r = Reflect.get(t, "label");
|
|
1611
|
-
if (r != null) return
|
|
1821
|
+
if (r != null) return vr(r) ? r : String(r);
|
|
1612
1822
|
}
|
|
1613
|
-
return String(
|
|
1823
|
+
return String(Qe(t));
|
|
1614
1824
|
}
|
|
1615
|
-
function
|
|
1825
|
+
function wr(t) {
|
|
1616
1826
|
return `${typeof t}:${String(t)}`;
|
|
1617
1827
|
}
|
|
1618
|
-
function
|
|
1828
|
+
function vr(t) {
|
|
1619
1829
|
return typeof t == "string" || typeof t == "number";
|
|
1620
1830
|
}
|
|
1621
|
-
function
|
|
1831
|
+
function Er(t) {
|
|
1622
1832
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function";
|
|
1623
1833
|
}
|
|
1624
|
-
function
|
|
1834
|
+
function St(t, r) {
|
|
1625
1835
|
return t instanceof Error ? t.message : t == null ? r : String(t);
|
|
1626
1836
|
}
|
|
1627
1837
|
class te extends g {
|
|
@@ -1651,11 +1861,11 @@ class te extends g {
|
|
|
1651
1861
|
}
|
|
1652
1862
|
render() {
|
|
1653
1863
|
const e = this.props.sortEmitter.get(), i = (e == null ? void 0 : e.field) === this.props.field ? e.direction : null, o = new Map(
|
|
1654
|
-
(this.props.filtersEmitter.get()[this.props.field] ?? []).filter(
|
|
1864
|
+
(this.props.filtersEmitter.get()[this.props.field] ?? []).filter(xr)
|
|
1655
1865
|
), s = this.props.label ?? String(this.props.field), n = `Filter ${String(s)}`;
|
|
1656
1866
|
let l = null;
|
|
1657
|
-
return this.filterVisible && this.props.filterOptions != null && (l = /* @__PURE__ */
|
|
1658
|
-
|
|
1867
|
+
return this.filterVisible && this.props.filterOptions != null && (l = /* @__PURE__ */ h(
|
|
1868
|
+
V,
|
|
1659
1869
|
{
|
|
1660
1870
|
label: n,
|
|
1661
1871
|
options: this.props.filterOptions,
|
|
@@ -1665,14 +1875,14 @@ class te extends g {
|
|
|
1665
1875
|
...this.props.defaultSemanticState == null ? {} : { defaultSemanticState: this.props.defaultSemanticState }
|
|
1666
1876
|
},
|
|
1667
1877
|
"filter-panel"
|
|
1668
|
-
)), /* @__PURE__ */
|
|
1878
|
+
)), /* @__PURE__ */ y(
|
|
1669
1879
|
"th",
|
|
1670
1880
|
{
|
|
1671
1881
|
scope: "col",
|
|
1672
1882
|
"aria-sort": i === "asc" ? "ascending" : i === "desc" ? "descending" : "none",
|
|
1673
1883
|
style: { zIndex: this.filterVisible ? 1200 : null },
|
|
1674
1884
|
children: [
|
|
1675
|
-
this.props.sortable ? /* @__PURE__ */
|
|
1885
|
+
this.props.sortable ? /* @__PURE__ */ y(
|
|
1676
1886
|
"button",
|
|
1677
1887
|
{
|
|
1678
1888
|
type: "button",
|
|
@@ -1681,11 +1891,11 @@ class te extends g {
|
|
|
1681
1891
|
onClick: () => this.toggleSort(),
|
|
1682
1892
|
children: [
|
|
1683
1893
|
s,
|
|
1684
|
-
/* @__PURE__ */
|
|
1894
|
+
/* @__PURE__ */ h("span", { class: "sortindicator", "aria-hidden": "true", children: i === "asc" ? "▲" : i === "desc" ? "▼" : "" })
|
|
1685
1895
|
]
|
|
1686
1896
|
}
|
|
1687
|
-
) : /* @__PURE__ */
|
|
1688
|
-
this.props.filterOptions == null ? null : /* @__PURE__ */
|
|
1897
|
+
) : /* @__PURE__ */ h("span", { children: s }),
|
|
1898
|
+
this.props.filterOptions == null ? null : /* @__PURE__ */ h(
|
|
1689
1899
|
"button",
|
|
1690
1900
|
{
|
|
1691
1901
|
type: "button",
|
|
@@ -1702,7 +1912,7 @@ class te extends g {
|
|
|
1702
1912
|
);
|
|
1703
1913
|
}
|
|
1704
1914
|
}
|
|
1705
|
-
a(te, "liveProps", []), a(te, "dependencies", [
|
|
1915
|
+
a(te, "liveProps", []), a(te, "dependencies", [V]), a(te, "css", w`
|
|
1706
1916
|
fray-datatable > table > thead > tr > th[aria-sort] {
|
|
1707
1917
|
position: relative;
|
|
1708
1918
|
padding-right: 24px;
|
|
@@ -1758,12 +1968,12 @@ a(te, "liveProps", []), a(te, "dependencies", [U]), a(te, "css", E`
|
|
|
1758
1968
|
opacity: 1;
|
|
1759
1969
|
}
|
|
1760
1970
|
`);
|
|
1761
|
-
function
|
|
1971
|
+
function xr(t) {
|
|
1762
1972
|
return typeof t[0] == "string" || typeof t[0] == "number";
|
|
1763
1973
|
}
|
|
1764
1974
|
class re extends g {
|
|
1765
1975
|
render() {
|
|
1766
|
-
return /* @__PURE__ */
|
|
1976
|
+
return /* @__PURE__ */ h("thead", { children: /* @__PURE__ */ h("tr", { children: this.props.columns.map((r) => /* @__PURE__ */ h(
|
|
1767
1977
|
te,
|
|
1768
1978
|
{
|
|
1769
1979
|
field: r.field,
|
|
@@ -1780,7 +1990,7 @@ class re extends g {
|
|
|
1780
1990
|
)) }) });
|
|
1781
1991
|
}
|
|
1782
1992
|
}
|
|
1783
|
-
a(re, "liveProps", []), a(re, "dependencies", [te]), a(re, "css",
|
|
1993
|
+
a(re, "liveProps", []), a(re, "dependencies", [te]), a(re, "css", w`
|
|
1784
1994
|
fray-datatable > table > thead {
|
|
1785
1995
|
color: var(--table-header-color);
|
|
1786
1996
|
background: var(--ui-gradient);
|
|
@@ -1795,118 +2005,118 @@ a(re, "liveProps", []), a(re, "dependencies", [te]), a(re, "css", E`
|
|
|
1795
2005
|
border-right: none;
|
|
1796
2006
|
}
|
|
1797
2007
|
`);
|
|
1798
|
-
const
|
|
1799
|
-
[
|
|
1800
|
-
[
|
|
1801
|
-
[
|
|
1802
|
-
[
|
|
2008
|
+
const kr = {
|
|
2009
|
+
[v.Neutral]: "☐",
|
|
2010
|
+
[v.Prefer]: "",
|
|
2011
|
+
[v.Require]: "_",
|
|
2012
|
+
[v.Deny]: "!"
|
|
1803
2013
|
};
|
|
1804
|
-
function
|
|
1805
|
-
|
|
2014
|
+
function Sr(t, { sort: r = null, filters: e = {} } = {}) {
|
|
2015
|
+
zr(t), r != null && (Mt(r), t.searchParams.set("sort", `${r.field}:${r.direction}`));
|
|
1806
2016
|
for (const [i, o] of Object.entries(e))
|
|
1807
2017
|
for (const [s, n] of o) {
|
|
1808
2018
|
if (!Re(n))
|
|
1809
2019
|
throw new TypeError(`Unknown filter mode for ${i}: ${String(n)}`);
|
|
1810
2020
|
t.searchParams.append(
|
|
1811
2021
|
"filter",
|
|
1812
|
-
`${i}:${
|
|
2022
|
+
`${i}:${kr[n]}:${JSON.stringify(s)}`
|
|
1813
2023
|
);
|
|
1814
2024
|
}
|
|
1815
2025
|
return t;
|
|
1816
2026
|
}
|
|
1817
|
-
function
|
|
2027
|
+
function Ir(t, r, e) {
|
|
1818
2028
|
if (!Array.isArray(t)) throw new TypeError("Local table data must be an array");
|
|
1819
|
-
const i = t.filter((s) =>
|
|
2029
|
+
const i = t.filter((s) => Tr(s, e));
|
|
1820
2030
|
if (r == null) return i;
|
|
1821
|
-
|
|
2031
|
+
Mt(r);
|
|
1822
2032
|
const o = r.direction === "asc" ? 1 : -1;
|
|
1823
|
-
return [...i].sort((s, n) =>
|
|
2033
|
+
return [...i].sort((s, n) => Cr(Be(s, r.field), Be(n, r.field)) * o);
|
|
1824
2034
|
}
|
|
1825
|
-
function
|
|
2035
|
+
function Tr(t, r) {
|
|
1826
2036
|
for (const [e, i] of Object.entries(r)) {
|
|
1827
|
-
const o =
|
|
1828
|
-
if (i.filter(([, c]) => c ===
|
|
1829
|
-
const n = i.filter(([, c]) => c ===
|
|
2037
|
+
const o = Be(t, e);
|
|
2038
|
+
if (i.filter(([, c]) => c === v.Deny).some(([c]) => Object.is(c, o))) return !1;
|
|
2039
|
+
const n = i.filter(([, c]) => c === v.Require);
|
|
1830
2040
|
if (n.length > 0 && !n.some(([c]) => Object.is(c, o))) return !1;
|
|
1831
|
-
const l = i.filter(([, c]) => c ===
|
|
2041
|
+
const l = i.filter(([, c]) => c === v.Prefer);
|
|
1832
2042
|
if (l.length > 0 && !l.some(([c]) => Object.is(c, o))) return !1;
|
|
1833
2043
|
}
|
|
1834
2044
|
return !0;
|
|
1835
2045
|
}
|
|
1836
|
-
function
|
|
1837
|
-
if (t == null || typeof t != "object" || typeof Reflect.get(t, "field") != "string" || !
|
|
2046
|
+
function Mt(t) {
|
|
2047
|
+
if (t == null || typeof t != "object" || typeof Reflect.get(t, "field") != "string" || !Rr(Reflect.get(t, "direction")))
|
|
1838
2048
|
throw new TypeError("Table sort must contain a field and asc/desc direction");
|
|
1839
2049
|
}
|
|
1840
|
-
function
|
|
2050
|
+
function Rr(t) {
|
|
1841
2051
|
return t === "asc" || t === "desc";
|
|
1842
2052
|
}
|
|
1843
|
-
function
|
|
2053
|
+
function Cr(t, r) {
|
|
1844
2054
|
return Object.is(t, r) ? 0 : t == null ? -1 : r == null ? 1 : typeof t == "number" && typeof r == "number" ? t - r : String(t).localeCompare(String(r));
|
|
1845
2055
|
}
|
|
1846
|
-
function
|
|
2056
|
+
function Be(t, r) {
|
|
1847
2057
|
if (!(t == null || typeof t != "object" && typeof t != "function"))
|
|
1848
2058
|
return Reflect.get(t, r);
|
|
1849
2059
|
}
|
|
1850
|
-
function
|
|
2060
|
+
function zr(t) {
|
|
1851
2061
|
if (t == null || typeof t != "object" && typeof t != "function" || typeof Reflect.get(t, "toString") != "function")
|
|
1852
2062
|
throw new TypeError("Table serializer requires a URL");
|
|
1853
2063
|
const r = Reflect.get(t, "searchParams");
|
|
1854
2064
|
if (r == null || typeof Reflect.get(r, "set") != "function" || typeof Reflect.get(r, "append") != "function")
|
|
1855
2065
|
throw new TypeError("Table serializer requires URL search parameters");
|
|
1856
2066
|
}
|
|
1857
|
-
function
|
|
1858
|
-
const r =
|
|
2067
|
+
function $r(t) {
|
|
2068
|
+
const r = it(t), e = Ht(t.data) ? null : new S(t.data, {
|
|
1859
2069
|
owner: t.owner,
|
|
1860
2070
|
purpose: "local table data"
|
|
1861
2071
|
}), i = e ?? t.data, o = new Te(
|
|
1862
2072
|
[i, r.sortEmitter, r.filtersEmitter],
|
|
1863
|
-
([s, n, l]) =>
|
|
2073
|
+
([s, n, l]) => Ir(s, n, l),
|
|
1864
2074
|
{ owner: t.owner, purpose: "local table view" }
|
|
1865
2075
|
);
|
|
1866
|
-
return new
|
|
2076
|
+
return new rt(o, r, () => {
|
|
1867
2077
|
o.dispose(), e == null || e.dispose();
|
|
1868
2078
|
});
|
|
1869
2079
|
}
|
|
1870
|
-
function
|
|
1871
|
-
|
|
1872
|
-
const r =
|
|
1873
|
-
return new
|
|
2080
|
+
function Mi(t) {
|
|
2081
|
+
jr(t.query);
|
|
2082
|
+
const r = it(t);
|
|
2083
|
+
return new rt(t.query, r);
|
|
1874
2084
|
}
|
|
1875
|
-
function
|
|
2085
|
+
function Or(t) {
|
|
1876
2086
|
if (t.handler == null || typeof t.handler.fetch != "function")
|
|
1877
2087
|
throw new TypeError("Table data-source handler must implement fetch");
|
|
1878
|
-
const r =
|
|
2088
|
+
const r = it(t), e = new gt("sort", r.sortEmitter, {
|
|
1879
2089
|
owner: t.owner,
|
|
1880
2090
|
purpose: "table sort argument"
|
|
1881
|
-
}), i = new
|
|
2091
|
+
}), i = new gt("filters", r.filtersEmitter, {
|
|
1882
2092
|
owner: t.owner,
|
|
1883
2093
|
purpose: "table filters argument"
|
|
1884
|
-
}), o = new
|
|
2094
|
+
}), o = new Wt({
|
|
1885
2095
|
handler: t.handler,
|
|
1886
2096
|
args: { sort: e, filters: i },
|
|
1887
2097
|
owner: t.owner,
|
|
1888
2098
|
purpose: "table query",
|
|
1889
2099
|
keepPreviousValue: !0
|
|
1890
2100
|
});
|
|
1891
|
-
return new
|
|
2101
|
+
return new rt(o, r, () => {
|
|
1892
2102
|
o.dispose(), e.dispose(), i.dispose();
|
|
1893
2103
|
});
|
|
1894
2104
|
}
|
|
1895
|
-
function
|
|
2105
|
+
function Ar(t) {
|
|
1896
2106
|
if (typeof t.url != "string" || t.url.length === 0)
|
|
1897
2107
|
throw new TypeError("REST table data source requires a URL");
|
|
1898
2108
|
const r = {
|
|
1899
2109
|
url: t.url,
|
|
1900
|
-
serialize: t.serializeQuery ??
|
|
2110
|
+
serialize: t.serializeQuery ?? Sr
|
|
1901
2111
|
};
|
|
1902
|
-
return t.baseUrl != null && (r.baseUrl = t.baseUrl), t.fetch != null && (r.fetch = t.fetch),
|
|
1903
|
-
handler: new
|
|
2112
|
+
return t.baseUrl != null && (r.baseUrl = t.baseUrl), t.fetch != null && (r.fetch = t.fetch), Or({
|
|
2113
|
+
handler: new Gt(r),
|
|
1904
2114
|
...t.sortEmitter == null ? {} : { sortEmitter: t.sortEmitter },
|
|
1905
2115
|
...t.filtersEmitter == null ? {} : { filtersEmitter: t.filtersEmitter },
|
|
1906
2116
|
...t.owner === void 0 ? {} : { owner: t.owner }
|
|
1907
2117
|
});
|
|
1908
2118
|
}
|
|
1909
|
-
class
|
|
2119
|
+
class rt {
|
|
1910
2120
|
constructor(r, e, i = null) {
|
|
1911
2121
|
a(this, "sortEmitter");
|
|
1912
2122
|
a(this, "filtersEmitter");
|
|
@@ -1922,11 +2132,11 @@ class tt {
|
|
|
1922
2132
|
this.disposed || (this.disposed = !0, (r = this.disposeQuery) == null || r.call(this), (e = this.state.ownedSortEmitter) == null || e.dispose(), (i = this.state.ownedFiltersEmitter) == null || i.dispose());
|
|
1923
2133
|
}
|
|
1924
2134
|
}
|
|
1925
|
-
function
|
|
1926
|
-
const r = t.sortEmitter == null ? new
|
|
2135
|
+
function it(t) {
|
|
2136
|
+
const r = t.sortEmitter == null ? new S(null, {
|
|
1927
2137
|
owner: t.owner,
|
|
1928
2138
|
purpose: "table sort"
|
|
1929
|
-
}) : null, e = t.filtersEmitter == null ? new
|
|
2139
|
+
}) : null, e = t.filtersEmitter == null ? new S({}, {
|
|
1930
2140
|
owner: t.owner,
|
|
1931
2141
|
purpose: "table filters"
|
|
1932
2142
|
}) : null;
|
|
@@ -1937,11 +2147,11 @@ function rt(t) {
|
|
|
1937
2147
|
ownedFiltersEmitter: e
|
|
1938
2148
|
};
|
|
1939
2149
|
}
|
|
1940
|
-
function
|
|
2150
|
+
function Ht(t) {
|
|
1941
2151
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function" && typeof Reflect.get(t, "getFetchState") == "function" && typeof Reflect.get(t, "getError") == "function";
|
|
1942
2152
|
}
|
|
1943
|
-
function
|
|
1944
|
-
if (!
|
|
2153
|
+
function jr(t) {
|
|
2154
|
+
if (!Ht(t))
|
|
1945
2155
|
throw new TypeError("Table query must be an emitter");
|
|
1946
2156
|
}
|
|
1947
2157
|
class he extends g {
|
|
@@ -1961,7 +2171,7 @@ class he extends g {
|
|
|
1961
2171
|
a(this, "ownedSortEmitter");
|
|
1962
2172
|
a(this, "ownedFiltersEmitter");
|
|
1963
2173
|
a(this, "ownedDataSource", null);
|
|
1964
|
-
|
|
2174
|
+
Nr(e), this.columns = qr(e.columns), this.rowKey = Lr(e.rowKey), this.suppliedDataSource = e.dataSource ?? null, this.ownedSortEmitter = this.suppliedDataSource == null ? new S(null, { owner: this, purpose: "table sort" }) : null, this.ownedFiltersEmitter = this.suppliedDataSource == null ? new S({}, { owner: this, purpose: "table filters" }) : null, this.sortEmitter = ((i = this.suppliedDataSource) == null ? void 0 : i.sortEmitter) ?? this.ownedSortEmitter, this.filtersEmitter = ((o = this.suppliedDataSource) == null ? void 0 : o.filtersEmitter) ?? this.ownedFiltersEmitter, this.selectionHandler = e.multiSelect === !0 ? xe({
|
|
1965
2175
|
owner: this,
|
|
1966
2176
|
multiSelect: !0,
|
|
1967
2177
|
...e.selectedItemsEmitter == null ? {} : { selectedItemsEmitter: e.selectedItemsEmitter },
|
|
@@ -1978,15 +2188,15 @@ class he extends g {
|
|
|
1978
2188
|
return ((s = this.query) == null ? void 0 : s.get()) ?? [];
|
|
1979
2189
|
},
|
|
1980
2190
|
getKey: this.rowKey
|
|
1981
|
-
}), this.selectedItemsEmitter = this.selectionHandler.selectedItemsEmitter, this.selectedItemEmitter = this.selectionHandler instanceof
|
|
2191
|
+
}), this.selectedItemsEmitter = this.selectionHandler.selectedItemsEmitter, this.selectedItemEmitter = this.selectionHandler instanceof Xe ? this.selectionHandler.selectedItemEmitter : null;
|
|
1982
2192
|
}
|
|
1983
2193
|
initialize() {
|
|
1984
|
-
this.suppliedDataSource != null ? this.dataSource = this.suppliedDataSource : this.props.rest != null ? (this.ownedDataSource =
|
|
2194
|
+
this.suppliedDataSource != null ? this.dataSource = this.suppliedDataSource : this.props.rest != null ? (this.ownedDataSource = Ar({
|
|
1985
2195
|
...this.props.rest,
|
|
1986
2196
|
sortEmitter: this.sortEmitter,
|
|
1987
2197
|
filtersEmitter: this.filtersEmitter,
|
|
1988
2198
|
owner: this
|
|
1989
|
-
}), this.dataSource = this.ownedDataSource) : (this.ownedDataSource =
|
|
2199
|
+
}), this.dataSource = this.ownedDataSource) : (this.ownedDataSource = $r({
|
|
1990
2200
|
data: this.props.data ?? [],
|
|
1991
2201
|
sortEmitter: this.sortEmitter,
|
|
1992
2202
|
filtersEmitter: this.filtersEmitter,
|
|
@@ -1994,20 +2204,20 @@ class he extends g {
|
|
|
1994
2204
|
}), this.dataSource = this.ownedDataSource), this.query = this.dataSource.query, this.watch(this.query, this.selectedItemsEmitter);
|
|
1995
2205
|
}
|
|
1996
2206
|
render() {
|
|
1997
|
-
var c, u,
|
|
2207
|
+
var c, u, p, b;
|
|
1998
2208
|
const e = ((c = this.query) == null ? void 0 : c.get()) ?? [];
|
|
1999
2209
|
if (!Array.isArray(e)) throw new TypeError("DataTable query value must be an array");
|
|
2000
|
-
const i = ((u = this.query) == null ? void 0 : u.getFetchState()) ??
|
|
2210
|
+
const i = ((u = this.query) == null ? void 0 : u.getFetchState()) ?? k.Initial, o = (p = this.query) == null ? void 0 : p.getError(), s = i === k.Initial || i === k.Loading, n = new Set(
|
|
2001
2211
|
this.selectedItemsEmitter.get().map((f, m) => this.rowKey(f, m))
|
|
2002
2212
|
), l = this.Host;
|
|
2003
|
-
return /* @__PURE__ */
|
|
2213
|
+
return /* @__PURE__ */ y(
|
|
2004
2214
|
l,
|
|
2005
2215
|
{
|
|
2006
|
-
className:
|
|
2216
|
+
className: E(this.props) || null,
|
|
2007
2217
|
children: [
|
|
2008
|
-
s ? /* @__PURE__ */
|
|
2009
|
-
i ===
|
|
2010
|
-
i ===
|
|
2218
|
+
s ? /* @__PURE__ */ h("p", { role: "status", children: "Loading rows…" }) : null,
|
|
2219
|
+
i === k.Error ? /* @__PURE__ */ h("p", { role: "alert", children: Dr(o, "Unable to load rows") }) : null,
|
|
2220
|
+
i === k.Error && typeof ((b = this.dataSource) == null ? void 0 : b.retry) == "function" ? /* @__PURE__ */ h(
|
|
2011
2221
|
"button",
|
|
2012
2222
|
{
|
|
2013
2223
|
type: "button",
|
|
@@ -2018,9 +2228,9 @@ class he extends g {
|
|
|
2018
2228
|
children: "Retry"
|
|
2019
2229
|
}
|
|
2020
2230
|
) : null,
|
|
2021
|
-
/* @__PURE__ */
|
|
2022
|
-
this.props.caption == null ? null : /* @__PURE__ */
|
|
2023
|
-
/* @__PURE__ */
|
|
2231
|
+
/* @__PURE__ */ y("table", { "aria-busy": s ? "true" : null, children: [
|
|
2232
|
+
this.props.caption == null ? null : /* @__PURE__ */ h("caption", { children: this.props.caption }),
|
|
2233
|
+
/* @__PURE__ */ h(
|
|
2024
2234
|
re,
|
|
2025
2235
|
{
|
|
2026
2236
|
columns: this.columns,
|
|
@@ -2032,7 +2242,7 @@ class he extends g {
|
|
|
2032
2242
|
},
|
|
2033
2243
|
"header"
|
|
2034
2244
|
),
|
|
2035
|
-
/* @__PURE__ */
|
|
2245
|
+
/* @__PURE__ */ h("tbody", { children: e.length > 0 ? e.map((f, m) => this.renderRow(f, m, n)) : s ? this.renderPlaceholders() : i === k.Error ? null : /* @__PURE__ */ h("tr", { children: /* @__PURE__ */ h("td", { colSpan: this.columns.length, children: this.props.emptyMessage ?? "No rows" }) }, "empty") })
|
|
2036
2246
|
] })
|
|
2037
2247
|
]
|
|
2038
2248
|
}
|
|
@@ -2040,21 +2250,21 @@ class he extends g {
|
|
|
2040
2250
|
}
|
|
2041
2251
|
renderRow(e, i, o) {
|
|
2042
2252
|
const s = this.rowKey(e, i), n = o.has(s);
|
|
2043
|
-
return /* @__PURE__ */
|
|
2253
|
+
return /* @__PURE__ */ h(
|
|
2044
2254
|
"tr",
|
|
2045
2255
|
{
|
|
2046
2256
|
"data-fray-selectable-row": "",
|
|
2047
2257
|
"aria-selected": String(n),
|
|
2048
2258
|
tabIndex: i === 0 ? 0 : -1,
|
|
2049
|
-
children: this.columns.map((l) => /* @__PURE__ */
|
|
2259
|
+
children: this.columns.map((l) => /* @__PURE__ */ h("td", { children: l.render ? l.render(e, i) : Fr(e[l.field]) }, String(l.field)))
|
|
2050
2260
|
},
|
|
2051
2261
|
String(s)
|
|
2052
2262
|
);
|
|
2053
2263
|
}
|
|
2054
2264
|
renderPlaceholders() {
|
|
2055
2265
|
const e = this.props.placeholderCount ?? 5;
|
|
2056
|
-
return Array.from({ length: e }, (i, o) => /* @__PURE__ */
|
|
2057
|
-
|
|
2266
|
+
return Array.from({ length: e }, (i, o) => /* @__PURE__ */ h("tr", { children: this.columns.map((s, n) => /* @__PURE__ */ h("td", { children: /* @__PURE__ */ h(
|
|
2267
|
+
M,
|
|
2058
2268
|
{
|
|
2059
2269
|
width: 45 + (o + n) % 6 * 8
|
|
2060
2270
|
}
|
|
@@ -2082,7 +2292,7 @@ class he extends g {
|
|
|
2082
2292
|
this.selectionHandler.destroy(), (e = this.ownedDataSource) == null || e.dispose(), (i = this.ownedSortEmitter) == null || i.dispose(), (o = this.ownedFiltersEmitter) == null || o.dispose();
|
|
2083
2293
|
}
|
|
2084
2294
|
}
|
|
2085
|
-
a(he, "liveProps", []), a(he, "dependencies", [
|
|
2295
|
+
a(he, "liveProps", []), a(he, "dependencies", [M, re]), a(he, "hostName", "data-table"), a(he, "css", w`
|
|
2086
2296
|
& {
|
|
2087
2297
|
display: block;
|
|
2088
2298
|
overflow: auto;
|
|
@@ -2143,7 +2353,7 @@ a(he, "liveProps", []), a(he, "dependencies", [H, re]), a(he, "hostName", "data-
|
|
|
2143
2353
|
}
|
|
2144
2354
|
|
|
2145
2355
|
`);
|
|
2146
|
-
function
|
|
2356
|
+
function qr(t) {
|
|
2147
2357
|
if (!Array.isArray(t) || t.length === 0)
|
|
2148
2358
|
throw new TypeError("DataTable columns must be a non-empty array");
|
|
2149
2359
|
const r = /* @__PURE__ */ new Set();
|
|
@@ -2161,7 +2371,7 @@ function Tr(t) {
|
|
|
2161
2371
|
return e;
|
|
2162
2372
|
});
|
|
2163
2373
|
}
|
|
2164
|
-
function
|
|
2374
|
+
function Nr(t) {
|
|
2165
2375
|
var n, l;
|
|
2166
2376
|
const e = [
|
|
2167
2377
|
"mode",
|
|
@@ -2185,8 +2395,8 @@ function Rr(t) {
|
|
|
2185
2395
|
throw new TypeError("DataTable dataSource must implement the table data-source contract");
|
|
2186
2396
|
}
|
|
2187
2397
|
}
|
|
2188
|
-
function
|
|
2189
|
-
if (t == null) return
|
|
2398
|
+
function Lr(t) {
|
|
2399
|
+
if (t == null) return et;
|
|
2190
2400
|
if (typeof t == "function") return t;
|
|
2191
2401
|
if (typeof t == "string" && t.length > 0)
|
|
2192
2402
|
return (r, e) => {
|
|
@@ -2197,19 +2407,19 @@ function Cr(t) {
|
|
|
2197
2407
|
};
|
|
2198
2408
|
throw new TypeError("DataTable rowKey must be a function or property name");
|
|
2199
2409
|
}
|
|
2200
|
-
function
|
|
2410
|
+
function Fr(t) {
|
|
2201
2411
|
return t == null || typeof t == "string" || typeof t == "number" ? t : String(t);
|
|
2202
2412
|
}
|
|
2203
|
-
function
|
|
2413
|
+
function Dr(t, r) {
|
|
2204
2414
|
return t instanceof Error ? t.message : t == null ? r : String(t);
|
|
2205
2415
|
}
|
|
2206
|
-
class
|
|
2416
|
+
class ot extends g {
|
|
2207
2417
|
render() {
|
|
2208
2418
|
return this.props.children ?? [];
|
|
2209
2419
|
}
|
|
2210
2420
|
}
|
|
2211
|
-
a(
|
|
2212
|
-
function
|
|
2421
|
+
a(ot, "liveProps", []);
|
|
2422
|
+
function W(t) {
|
|
2213
2423
|
if (!Array.isArray(t)) throw new TypeError("Tree nodes must be an array");
|
|
2214
2424
|
const r = /* @__PURE__ */ new Set(), e = (i) => {
|
|
2215
2425
|
for (const o of i) {
|
|
@@ -2223,49 +2433,49 @@ function G(t) {
|
|
|
2223
2433
|
};
|
|
2224
2434
|
e(t);
|
|
2225
2435
|
}
|
|
2226
|
-
function
|
|
2227
|
-
return
|
|
2436
|
+
function Hi(t, r) {
|
|
2437
|
+
return W(t), st(t, r);
|
|
2228
2438
|
}
|
|
2229
|
-
function
|
|
2439
|
+
function Vi(t, r, e = null) {
|
|
2230
2440
|
return new Te(
|
|
2231
2441
|
[t, r],
|
|
2232
|
-
([i, o]) => (
|
|
2442
|
+
([i, o]) => (W(i), o == null ? null : st(i, o)),
|
|
2233
2443
|
{ owner: e, purpose: "tree node projection" }
|
|
2234
2444
|
);
|
|
2235
2445
|
}
|
|
2236
|
-
function
|
|
2237
|
-
if (
|
|
2446
|
+
function Pr(t, r, e) {
|
|
2447
|
+
if (W(t), typeof e != "function") throw new TypeError("Tree node update must be a function");
|
|
2238
2448
|
const i = (s) => {
|
|
2239
2449
|
for (let n = 0; n < s.length; n += 1) {
|
|
2240
2450
|
const l = s[n];
|
|
2241
2451
|
if (Object.is(l.id, r)) {
|
|
2242
|
-
const
|
|
2243
|
-
if (
|
|
2452
|
+
const p = e(l);
|
|
2453
|
+
if (p == null || typeof p != "object")
|
|
2244
2454
|
throw new TypeError("Tree node update must return a tree node");
|
|
2245
|
-
if (!Object.is(
|
|
2455
|
+
if (!Object.is(p.id, l.id))
|
|
2246
2456
|
throw new Error("Tree node update cannot change the stable id");
|
|
2247
|
-
if (Object.is(
|
|
2457
|
+
if (Object.is(p, l)) return s;
|
|
2248
2458
|
const b = [...s];
|
|
2249
|
-
return b[n] =
|
|
2459
|
+
return b[n] = p, b;
|
|
2250
2460
|
}
|
|
2251
2461
|
const c = l.children ?? [], u = i(c);
|
|
2252
2462
|
if (!Object.is(u, c)) {
|
|
2253
|
-
const
|
|
2254
|
-
return
|
|
2463
|
+
const p = [...s];
|
|
2464
|
+
return p[n] = { ...l, children: u }, p;
|
|
2255
2465
|
}
|
|
2256
2466
|
}
|
|
2257
2467
|
return s;
|
|
2258
2468
|
}, o = i(t);
|
|
2259
|
-
return Object.is(o, t) ||
|
|
2469
|
+
return Object.is(o, t) || W(o), o;
|
|
2260
2470
|
}
|
|
2261
|
-
function
|
|
2262
|
-
const o = t.get(), s =
|
|
2471
|
+
function Ui(t, r, e, i = "tree node updated") {
|
|
2472
|
+
const o = t.get(), s = Pr(o, r, e);
|
|
2263
2473
|
return Object.is(s, o) ? !1 : t.set(s, i);
|
|
2264
2474
|
}
|
|
2265
|
-
function
|
|
2475
|
+
function st(t, r) {
|
|
2266
2476
|
for (const e of t) {
|
|
2267
2477
|
if (Object.is(e.id, r)) return e;
|
|
2268
|
-
const i =
|
|
2478
|
+
const i = st(e.children ?? [], r);
|
|
2269
2479
|
if (i != null) return i;
|
|
2270
2480
|
}
|
|
2271
2481
|
return null;
|
|
@@ -2282,16 +2492,16 @@ class pe extends g {
|
|
|
2282
2492
|
a(this, "focusedKey", null);
|
|
2283
2493
|
a(this, "typeahead", "");
|
|
2284
2494
|
a(this, "typeaheadTimer", null);
|
|
2285
|
-
if (
|
|
2495
|
+
if (Tt(e.nodes))
|
|
2286
2496
|
this.nodesEmitter = e.nodes, this.ownedNodesEmitter = null;
|
|
2287
2497
|
else {
|
|
2288
|
-
const i = e.nodes ??
|
|
2289
|
-
this.ownedNodesEmitter = new
|
|
2498
|
+
const i = e.nodes ?? We(e.children);
|
|
2499
|
+
this.ownedNodesEmitter = new S(i, {
|
|
2290
2500
|
owner: this,
|
|
2291
2501
|
purpose: "tree nodes"
|
|
2292
2502
|
}), this.nodesEmitter = this.ownedNodesEmitter;
|
|
2293
2503
|
}
|
|
2294
|
-
this.ownedSelectedEmitter = e.selectedKeyEmitter == null ? new
|
|
2504
|
+
this.ownedSelectedEmitter = e.selectedKeyEmitter == null ? new S(null, { owner: this, purpose: "selected tree key" }) : null, this.selectedKeyEmitter = e.selectedKeyEmitter ?? this.ownedSelectedEmitter, this.ownedExpandedEmitter = e.expandedKeysEmitter == null ? new S([], { owner: this, purpose: "expanded tree keys" }) : null, this.expandedKeysEmitter = e.expandedKeysEmitter ?? this.ownedExpandedEmitter;
|
|
2295
2505
|
}
|
|
2296
2506
|
initialize() {
|
|
2297
2507
|
this.reconcile(this.nodesEmitter.get()), this.watch(this.nodesEmitter, this.selectedKeyEmitter, this.expandedKeysEmitter), this.onCleanup(this.nodesEmitter.subscribe(({ value: e }) => this.reconcile(e), {
|
|
@@ -2300,12 +2510,12 @@ class pe extends g {
|
|
|
2300
2510
|
}
|
|
2301
2511
|
setProps(e) {
|
|
2302
2512
|
if (this.ownedNodesEmitter != null) {
|
|
2303
|
-
if (
|
|
2513
|
+
if (Tt(e.nodes))
|
|
2304
2514
|
throw new TypeError(
|
|
2305
2515
|
"TreeView cannot replace static or declarative nodes with an emitter"
|
|
2306
2516
|
);
|
|
2307
2517
|
this.ownedNodesEmitter.set(
|
|
2308
|
-
e.nodes ??
|
|
2518
|
+
e.nodes ?? We(e.children),
|
|
2309
2519
|
"tree structure changed"
|
|
2310
2520
|
);
|
|
2311
2521
|
}
|
|
@@ -2313,46 +2523,46 @@ class pe extends g {
|
|
|
2313
2523
|
}
|
|
2314
2524
|
render() {
|
|
2315
2525
|
const e = this.nodesEmitter.get();
|
|
2316
|
-
|
|
2317
|
-
const i = this.nodesEmitter.getFetchState(), o = this.nodesEmitter.getError(), s = new Set(this.expandedKeysEmitter.get()), n =
|
|
2526
|
+
W(e);
|
|
2527
|
+
const i = this.nodesEmitter.getFetchState(), o = this.nodesEmitter.getError(), s = new Set(this.expandedKeysEmitter.get()), n = It(e, s), l = this.selectedKeyEmitter.get(), c = n.find(({ node: p }) => Object.is(p.id, this.focusedKey)) ?? n.find(({ node: p }) => Object.is(p.id, l)) ?? n[0] ?? null;
|
|
2318
2528
|
this.focusedKey = (c == null ? void 0 : c.node.id) ?? null;
|
|
2319
2529
|
const u = this.Host;
|
|
2320
|
-
return /* @__PURE__ */
|
|
2321
|
-
i ===
|
|
2322
|
-
i !==
|
|
2323
|
-
var
|
|
2324
|
-
const { node: f, depth: m, position:
|
|
2325
|
-
return /* @__PURE__ */
|
|
2530
|
+
return /* @__PURE__ */ y(u, { className: E(this.props) || null, children: [
|
|
2531
|
+
i === k.Error ? /* @__PURE__ */ h("p", { role: "alert", children: Kr(o, "Unable to load tree items") }) : null,
|
|
2532
|
+
i !== k.Error && n.length === 0 ? /* @__PURE__ */ h("p", { role: "status", children: "No tree items" }) : /* @__PURE__ */ h("ul", { role: "tree", "aria-label": this.props.label, children: n.map((p, b) => {
|
|
2533
|
+
var q, G, Y, pt, ft, mt, bt;
|
|
2534
|
+
const { node: f, depth: m, position: R, setSize: T } = p, x = (((q = f.children) == null ? void 0 : q.length) ?? 0) > 0, $ = x && s.has(f.id), D = Object.is(f.id, l), P = ((Y = (G = this.props).renderItem) == null ? void 0 : Y.call(G, f, m)) ?? f.label, K = (ft = (pt = this.props).itemLabelClassName) == null ? void 0 : ft.call(pt, f, m), C = (bt = (mt = this.props).itemLabelStyle) == null ? void 0 : bt.call(mt, f, m);
|
|
2535
|
+
return /* @__PURE__ */ y(
|
|
2326
2536
|
"li",
|
|
2327
2537
|
{
|
|
2328
2538
|
role: "treeitem",
|
|
2329
2539
|
"data-index": b,
|
|
2330
2540
|
"aria-level": m + 1,
|
|
2331
|
-
"aria-posinset":
|
|
2541
|
+
"aria-posinset": R,
|
|
2332
2542
|
"aria-setsize": T,
|
|
2333
|
-
"aria-expanded":
|
|
2334
|
-
"aria-selected": String(
|
|
2543
|
+
"aria-expanded": x ? String($) : null,
|
|
2544
|
+
"aria-selected": String(D),
|
|
2335
2545
|
tabIndex: Object.is(f.id, c == null ? void 0 : c.node.id) ? 0 : -1,
|
|
2336
2546
|
style: { "--tree-depth": m },
|
|
2337
|
-
onClick: (
|
|
2338
|
-
if (this.focusedKey = f.id,
|
|
2547
|
+
onClick: (ne) => {
|
|
2548
|
+
if (this.focusedKey = f.id, Ur(ne.target) && x) {
|
|
2339
2549
|
this.toggleExpanded(f.id), this.focusRow(f.id);
|
|
2340
2550
|
return;
|
|
2341
2551
|
}
|
|
2342
|
-
this.selectNode(f,
|
|
2552
|
+
this.selectNode(f, ne);
|
|
2343
2553
|
},
|
|
2344
2554
|
onFocus: () => this.focusedKey = f.id,
|
|
2345
|
-
onKeyDown: (
|
|
2555
|
+
onKeyDown: (ne) => this.handleKeyDown(ne, b, n),
|
|
2346
2556
|
children: [
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2557
|
+
/* @__PURE__ */ h("fray-expander", { "aria-hidden": "true", children: x ? $ ? "▾" : "▸" : "•" }),
|
|
2558
|
+
/* @__PURE__ */ h(
|
|
2559
|
+
"fray-label",
|
|
2560
|
+
{
|
|
2561
|
+
...K == null ? {} : { className: K },
|
|
2562
|
+
...C == null ? {} : { style: C },
|
|
2563
|
+
children: P
|
|
2564
|
+
}
|
|
2565
|
+
)
|
|
2356
2566
|
]
|
|
2357
2567
|
},
|
|
2358
2568
|
f.id
|
|
@@ -2365,14 +2575,14 @@ class pe extends g {
|
|
|
2365
2575
|
this.typeaheadTimer != null && clearTimeout(this.typeaheadTimer), (e = this.ownedNodesEmitter) == null || e.dispose(), (i = this.ownedSelectedEmitter) == null || i.dispose(), (o = this.ownedExpandedEmitter) == null || o.dispose();
|
|
2366
2576
|
}
|
|
2367
2577
|
reconcile(e) {
|
|
2368
|
-
|
|
2369
|
-
const i = new Set(
|
|
2578
|
+
W(e);
|
|
2579
|
+
const i = new Set(Mr(e).map(({ node: l }) => l.id)), o = this.selectedKeyEmitter.get();
|
|
2370
2580
|
this.ownedSelectedEmitter != null && o != null && !i.has(o) && this.selectedKeyEmitter.set(null, "selected tree item removed");
|
|
2371
2581
|
const s = this.expandedKeysEmitter.get(), n = s.filter((l) => i.has(l));
|
|
2372
|
-
this.ownedExpandedEmitter != null && !
|
|
2582
|
+
this.ownedExpandedEmitter != null && !Vr(s, n) && this.expandedKeysEmitter.set(n, "removed tree expansions reconciled"), this.focusedKey != null && !i.has(this.focusedKey) && (this.focusedKey = null);
|
|
2373
2583
|
}
|
|
2374
2584
|
selectNode(e, i) {
|
|
2375
|
-
this.selectedKeyEmitter.set(e.id, "tree item selected"),
|
|
2585
|
+
this.selectedKeyEmitter.set(e.id, "tree item selected"), z(this.props.onSelect, e, i), this.focusRow(e.id);
|
|
2376
2586
|
}
|
|
2377
2587
|
toggleExpanded(e) {
|
|
2378
2588
|
const i = this.expandedKeysEmitter.get(), o = i.some((s) => Object.is(s, e));
|
|
@@ -2391,9 +2601,9 @@ class pe extends g {
|
|
|
2391
2601
|
if (e.key === "End") return this.move(e, (u = o.at(-1)) == null ? void 0 : u.node.id);
|
|
2392
2602
|
if (e.key === "ArrowRight") {
|
|
2393
2603
|
e.preventDefault();
|
|
2394
|
-
const
|
|
2395
|
-
if (
|
|
2396
|
-
this.expandedKeysEmitter.get().some((f) => Object.is(f, s.node.id)) ? this.focusRow(
|
|
2604
|
+
const p = s.node.children ?? [];
|
|
2605
|
+
if (p.length === 0) return;
|
|
2606
|
+
this.expandedKeysEmitter.get().some((f) => Object.is(f, s.node.id)) ? this.focusRow(p[0].id) : this.toggleExpanded(s.node.id);
|
|
2397
2607
|
return;
|
|
2398
2608
|
}
|
|
2399
2609
|
if (e.key === "ArrowLeft") {
|
|
@@ -2415,7 +2625,7 @@ class pe extends g {
|
|
|
2415
2625
|
this.focusedKey = e;
|
|
2416
2626
|
const i = this.dom instanceof Element ? [...this.dom.querySelectorAll('[role="treeitem"]')] : [];
|
|
2417
2627
|
for (const s of i) {
|
|
2418
|
-
const n = Number(s.dataset.index), l =
|
|
2628
|
+
const n = Number(s.dataset.index), l = It(
|
|
2419
2629
|
this.nodesEmitter.get(),
|
|
2420
2630
|
new Set(this.expandedKeysEmitter.get())
|
|
2421
2631
|
), c = Object.is((o = l[n]) == null ? void 0 : o.node.id, e);
|
|
@@ -2426,11 +2636,11 @@ class pe extends g {
|
|
|
2426
2636
|
e.preventDefault(), this.typeaheadTimer != null && clearTimeout(this.typeaheadTimer), this.typeahead += e.key.toLocaleLowerCase(), this.typeaheadTimer = setTimeout(() => {
|
|
2427
2637
|
this.typeahead = "", this.typeaheadTimer = null;
|
|
2428
2638
|
}, 650);
|
|
2429
|
-
const n = [...i.slice(o + 1), ...i.slice(0, o + 1)].find(({ node: l }) =>
|
|
2639
|
+
const n = [...i.slice(o + 1), ...i.slice(0, o + 1)].find(({ node: l }) => Hr(l).toLocaleLowerCase().startsWith(this.typeahead));
|
|
2430
2640
|
n != null && this.focusRow(n.node.id);
|
|
2431
2641
|
}
|
|
2432
2642
|
}
|
|
2433
|
-
a(pe, "liveProps", []), a(pe, "dependencies", [
|
|
2643
|
+
a(pe, "liveProps", []), a(pe, "dependencies", [ot]), a(pe, "hostName", "tree-view"), a(pe, "css", w`
|
|
2434
2644
|
& {
|
|
2435
2645
|
display: flex;
|
|
2436
2646
|
flex-direction: column;
|
|
@@ -2502,11 +2712,11 @@ a(pe, "liveProps", []), a(pe, "dependencies", [it]), a(pe, "hostName", "tree-vie
|
|
|
2502
2712
|
}
|
|
2503
2713
|
}
|
|
2504
2714
|
`);
|
|
2505
|
-
function
|
|
2715
|
+
function Kr(t, r) {
|
|
2506
2716
|
return t instanceof Error ? t.message : t == null ? r : String(t);
|
|
2507
2717
|
}
|
|
2508
|
-
function
|
|
2509
|
-
return (Array.isArray(t) ? t : t == null ? [] : [t]).filter((e) => we(e) && e.type ===
|
|
2718
|
+
function We(t) {
|
|
2719
|
+
return (Array.isArray(t) ? t : t == null ? [] : [t]).filter((e) => we(e) && e.type === ot).map((e) => {
|
|
2510
2720
|
if (!we(e)) throw new TypeError("TreeView children must be TreeItem nodes");
|
|
2511
2721
|
const i = e.props;
|
|
2512
2722
|
return {
|
|
@@ -2514,11 +2724,11 @@ function Be(t) {
|
|
|
2514
2724
|
label: i.label,
|
|
2515
2725
|
...i.textValue == null ? {} : { textValue: i.textValue },
|
|
2516
2726
|
...i.value === void 0 ? {} : { value: i.value },
|
|
2517
|
-
children:
|
|
2727
|
+
children: We(i.children)
|
|
2518
2728
|
};
|
|
2519
2729
|
});
|
|
2520
2730
|
}
|
|
2521
|
-
function
|
|
2731
|
+
function It(t, r) {
|
|
2522
2732
|
const e = [], i = (o, s, n) => {
|
|
2523
2733
|
o.forEach((l, c) => {
|
|
2524
2734
|
var u;
|
|
@@ -2527,7 +2737,7 @@ function xt(t, r) {
|
|
|
2527
2737
|
};
|
|
2528
2738
|
return i(t, 0, null), e;
|
|
2529
2739
|
}
|
|
2530
|
-
function
|
|
2740
|
+
function Mr(t) {
|
|
2531
2741
|
const r = /* @__PURE__ */ new Set(), e = [], i = (o, s, n) => {
|
|
2532
2742
|
o.forEach((l, c) => {
|
|
2533
2743
|
if (r.has(l.id)) throw new Error(`Duplicate tree item id: ${String(l.id)}`);
|
|
@@ -2536,19 +2746,19 @@ function jr(t) {
|
|
|
2536
2746
|
};
|
|
2537
2747
|
return i(t, 0, null), e;
|
|
2538
2748
|
}
|
|
2539
|
-
function
|
|
2749
|
+
function Hr(t) {
|
|
2540
2750
|
return t.textValue != null ? t.textValue : typeof t.label == "string" || typeof t.label == "number" ? String(t.label) : String(t.id);
|
|
2541
2751
|
}
|
|
2542
|
-
function
|
|
2752
|
+
function Vr(t, r) {
|
|
2543
2753
|
return t.length === r.length && t.every((e, i) => Object.is(e, r[i]));
|
|
2544
2754
|
}
|
|
2545
|
-
function
|
|
2755
|
+
function Tt(t) {
|
|
2546
2756
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function";
|
|
2547
2757
|
}
|
|
2548
|
-
function
|
|
2758
|
+
function Ur(t) {
|
|
2549
2759
|
return t instanceof Element && t.closest("fray-expander") != null;
|
|
2550
2760
|
}
|
|
2551
|
-
const
|
|
2761
|
+
const _r = ["disabled", "pressed", "busy"];
|
|
2552
2762
|
class ie extends g {
|
|
2553
2763
|
constructor(r = {}) {
|
|
2554
2764
|
if (super(r), r.onClick != null && typeof r.onClick != "function")
|
|
@@ -2565,32 +2775,32 @@ class ie extends g {
|
|
|
2565
2775
|
busyLabel: l,
|
|
2566
2776
|
id: c,
|
|
2567
2777
|
name: u,
|
|
2568
|
-
value:
|
|
2778
|
+
value: p,
|
|
2569
2779
|
title: b,
|
|
2570
2780
|
ariaLabel: f,
|
|
2571
2781
|
onClick: m
|
|
2572
|
-
} = this.props, T = (Array.isArray(r) ? r.length > 0 : r != null && typeof r != "boolean") ? r : e ?? "",
|
|
2573
|
-
return /* @__PURE__ */
|
|
2782
|
+
} = this.props, T = (Array.isArray(r) ? r.length > 0 : r != null && typeof r != "boolean") ? r : e ?? "", x = n ? l ?? T : T, $ = o || n, D = this.Host;
|
|
2783
|
+
return /* @__PURE__ */ h(D, { className: E(this.props) || null, children: /* @__PURE__ */ h(
|
|
2574
2784
|
"button",
|
|
2575
2785
|
{
|
|
2576
2786
|
id: c,
|
|
2577
2787
|
name: u,
|
|
2578
|
-
value:
|
|
2788
|
+
value: p == null ? void 0 : String(p),
|
|
2579
2789
|
title: b,
|
|
2580
2790
|
type: i,
|
|
2581
|
-
disabled:
|
|
2791
|
+
disabled: $,
|
|
2582
2792
|
"aria-label": f,
|
|
2583
2793
|
"aria-pressed": s == null ? null : String(!!s),
|
|
2584
2794
|
"aria-busy": n ? "true" : null,
|
|
2585
|
-
onClick: (
|
|
2586
|
-
|
|
2795
|
+
onClick: (P) => {
|
|
2796
|
+
$ || z(m, P);
|
|
2587
2797
|
},
|
|
2588
|
-
children:
|
|
2798
|
+
children: x
|
|
2589
2799
|
}
|
|
2590
2800
|
) });
|
|
2591
2801
|
}
|
|
2592
2802
|
}
|
|
2593
|
-
a(ie, "liveProps",
|
|
2803
|
+
a(ie, "liveProps", _r), a(ie, "hostName", "button"), a(ie, "css", w`
|
|
2594
2804
|
& > button {
|
|
2595
2805
|
min-height: var(--control-min-height, 2rem);
|
|
2596
2806
|
padding: var(--space-xs) var(--space-sm);
|
|
@@ -2633,7 +2843,7 @@ a(ie, "liveProps", Fr), a(ie, "hostName", "button"), a(ie, "css", E`
|
|
|
2633
2843
|
pointer-events: none;
|
|
2634
2844
|
}
|
|
2635
2845
|
`);
|
|
2636
|
-
const
|
|
2846
|
+
const Qr = ["showCloseButton"];
|
|
2637
2847
|
class fe extends g {
|
|
2638
2848
|
constructor(e) {
|
|
2639
2849
|
super(e);
|
|
@@ -2644,7 +2854,7 @@ class fe extends g {
|
|
|
2644
2854
|
a(this, "dialogElement", null);
|
|
2645
2855
|
a(this, "restoreFocusTo", null);
|
|
2646
2856
|
a(this, "synchronizedOpen", !1);
|
|
2647
|
-
this.openEmitter =
|
|
2857
|
+
this.openEmitter = L(this, e, !1, "dialog open state"), this.dialogId = I("dialog", e.id), this.titleId = `${this.dialogId}-title`, this.descriptionId = `${this.dialogId}-description`;
|
|
2648
2858
|
}
|
|
2649
2859
|
initialize() {
|
|
2650
2860
|
this.watch(this.openEmitter);
|
|
@@ -2658,7 +2868,7 @@ class fe extends g {
|
|
|
2658
2868
|
showCloseButton: n = !0,
|
|
2659
2869
|
children: l = []
|
|
2660
2870
|
} = this.props, c = this.Host;
|
|
2661
|
-
return /* @__PURE__ */
|
|
2871
|
+
return /* @__PURE__ */ h(c, { className: E(this.props) || null, children: /* @__PURE__ */ y(
|
|
2662
2872
|
"dialog",
|
|
2663
2873
|
{
|
|
2664
2874
|
id: this.dialogId,
|
|
@@ -2667,12 +2877,12 @@ class fe extends g {
|
|
|
2667
2877
|
"aria-modal": "true",
|
|
2668
2878
|
ref: (u) => this.dialogElement = u,
|
|
2669
2879
|
children: [
|
|
2670
|
-
/* @__PURE__ */
|
|
2671
|
-
i == null ? null : /* @__PURE__ */
|
|
2672
|
-
|
|
2673
|
-
o == null && !n ? null : /* @__PURE__ */
|
|
2880
|
+
/* @__PURE__ */ h("header", { children: /* @__PURE__ */ h("h2", { id: this.titleId, children: e }) }),
|
|
2881
|
+
i == null ? null : /* @__PURE__ */ h("p", { id: this.descriptionId, children: i }),
|
|
2882
|
+
/* @__PURE__ */ h("fray-content", { children: l }),
|
|
2883
|
+
o == null && !n ? null : /* @__PURE__ */ y("footer", { children: [
|
|
2674
2884
|
o,
|
|
2675
|
-
n ? /* @__PURE__ */
|
|
2885
|
+
n ? /* @__PURE__ */ h(
|
|
2676
2886
|
ie,
|
|
2677
2887
|
{
|
|
2678
2888
|
label: s,
|
|
@@ -2711,7 +2921,7 @@ class fe extends g {
|
|
|
2711
2921
|
const i = this.openEmitter.get();
|
|
2712
2922
|
if (i && !e.open) {
|
|
2713
2923
|
const o = document.activeElement;
|
|
2714
|
-
this.restoreFocusTo = o instanceof HTMLElement ? o : null,
|
|
2924
|
+
this.restoreFocusTo = o instanceof HTMLElement ? o : null, Br(e), this.synchronizedOpen = !0, Wr(e, this.props.initialFocusRef);
|
|
2715
2925
|
return;
|
|
2716
2926
|
}
|
|
2717
2927
|
if (!i && e.open) {
|
|
@@ -2724,10 +2934,10 @@ class fe extends g {
|
|
|
2724
2934
|
if (!this.synchronizedOpen && this.restoreFocusTo == null) return;
|
|
2725
2935
|
this.synchronizedOpen = !1;
|
|
2726
2936
|
const e = this.restoreFocusTo;
|
|
2727
|
-
this.restoreFocusTo = null, (e == null ? void 0 : e.isConnected) === !0 && e.focus(),
|
|
2937
|
+
this.restoreFocusTo = null, (e == null ? void 0 : e.isConnected) === !0 && e.focus(), z(this.props.onClose);
|
|
2728
2938
|
}
|
|
2729
2939
|
}
|
|
2730
|
-
a(fe, "liveProps",
|
|
2940
|
+
a(fe, "liveProps", Qr), a(fe, "hostName", "dialog"), a(fe, "dependencies", [ie]), a(fe, "css", w`
|
|
2731
2941
|
& > dialog {
|
|
2732
2942
|
z-index: 2;
|
|
2733
2943
|
width: min(38rem, calc(100vw - 2rem));
|
|
@@ -2801,7 +3011,7 @@ a(fe, "liveProps", Dr), a(fe, "hostName", "dialog"), a(fe, "dependencies", [ie])
|
|
|
2801
3011
|
}
|
|
2802
3012
|
}
|
|
2803
3013
|
`);
|
|
2804
|
-
function
|
|
3014
|
+
function Br(t) {
|
|
2805
3015
|
if (!t.open) {
|
|
2806
3016
|
if (typeof t.showModal == "function") {
|
|
2807
3017
|
t.showModal();
|
|
@@ -2810,38 +3020,38 @@ function Pr(t) {
|
|
|
2810
3020
|
t.setAttribute("open", "");
|
|
2811
3021
|
}
|
|
2812
3022
|
}
|
|
2813
|
-
function
|
|
3023
|
+
function Wr(t, r) {
|
|
2814
3024
|
const i = (r == null || typeof r == "function" ? null : r.current) ?? t.querySelector(
|
|
2815
3025
|
'[autofocus], button, input, select, textarea, [tabindex]:not([tabindex="-1"])'
|
|
2816
3026
|
);
|
|
2817
3027
|
i == null || i.focus();
|
|
2818
3028
|
}
|
|
2819
|
-
const
|
|
3029
|
+
const U = class U extends A {
|
|
2820
3030
|
constructor(r = {}) {
|
|
2821
|
-
super({ ...r, symbols:
|
|
3031
|
+
super({ ...r, symbols: U.symbols });
|
|
2822
3032
|
}
|
|
2823
3033
|
};
|
|
2824
|
-
a(
|
|
2825
|
-
["×",
|
|
2826
|
-
["☐",
|
|
2827
|
-
["✓",
|
|
2828
|
-
["+",
|
|
2829
|
-
]), a(
|
|
2830
|
-
let
|
|
2831
|
-
const
|
|
3034
|
+
a(U, "hostName", "quadcheckbox"), a(U, "symbols", [
|
|
3035
|
+
["×", v.Deny],
|
|
3036
|
+
["☐", v.Neutral],
|
|
3037
|
+
["✓", v.Prefer],
|
|
3038
|
+
["+", v.Require]
|
|
3039
|
+
]), a(U, "defaultSemanticState", v.Neutral);
|
|
3040
|
+
let Rt = U;
|
|
3041
|
+
const _ = class _ extends A {
|
|
2832
3042
|
constructor(r = {}) {
|
|
2833
|
-
super({ ...r, symbols:
|
|
3043
|
+
super({ ...r, symbols: _.symbols });
|
|
2834
3044
|
}
|
|
2835
3045
|
};
|
|
2836
|
-
a(
|
|
2837
|
-
["×",
|
|
2838
|
-
["☐",
|
|
2839
|
-
["✓",
|
|
2840
|
-
]), a(
|
|
2841
|
-
let
|
|
2842
|
-
class
|
|
2843
|
-
}
|
|
2844
|
-
a(
|
|
3046
|
+
a(_, "hostName", "tricheckbox"), a(_, "symbols", [
|
|
3047
|
+
["×", v.Deny],
|
|
3048
|
+
["☐", v.Neutral],
|
|
3049
|
+
["✓", v.Prefer]
|
|
3050
|
+
]), a(_, "defaultSemanticState", v.Neutral);
|
|
3051
|
+
let Ct = _;
|
|
3052
|
+
class nt extends g {
|
|
3053
|
+
}
|
|
3054
|
+
a(nt, "css", w`
|
|
2845
3055
|
& {
|
|
2846
3056
|
display: flex;
|
|
2847
3057
|
flex-flow: row nowrap;
|
|
@@ -2862,9 +3072,9 @@ a(st, "css", E`
|
|
|
2862
3072
|
}
|
|
2863
3073
|
|
|
2864
3074
|
`);
|
|
2865
|
-
class
|
|
3075
|
+
class at extends nt {
|
|
2866
3076
|
}
|
|
2867
|
-
a(
|
|
3077
|
+
a(at, "css", w`
|
|
2868
3078
|
& > fray-selectshell {
|
|
2869
3079
|
display: flex;
|
|
2870
3080
|
flex-flow: row nowrap;
|
|
@@ -2962,8 +3172,8 @@ a(nt, "css", E`
|
|
|
2962
3172
|
}
|
|
2963
3173
|
}
|
|
2964
3174
|
`);
|
|
2965
|
-
const
|
|
2966
|
-
class
|
|
3175
|
+
const Gr = ["disabled", "required", "error"];
|
|
3176
|
+
class Ae extends at {
|
|
2967
3177
|
constructor(e = {}) {
|
|
2968
3178
|
var s;
|
|
2969
3179
|
super(e);
|
|
@@ -2972,14 +3182,14 @@ class Oe extends nt {
|
|
|
2972
3182
|
a(this, "optionsEmitter");
|
|
2973
3183
|
a(this, "valueEmitter");
|
|
2974
3184
|
a(this, "ownsOptionsEmitter");
|
|
2975
|
-
this.inputId =
|
|
3185
|
+
this.inputId = I("dropdown", e.id), this.errorId = `${this.inputId}-error`;
|
|
2976
3186
|
const i = e.options ?? [];
|
|
2977
|
-
|
|
3187
|
+
Yr(i) ? (this.optionsEmitter = i, this.ownsOptionsEmitter = !1) : (ve(i), this.optionsEmitter = new S(i, {
|
|
2978
3188
|
owner: this,
|
|
2979
3189
|
purpose: "dropdown options"
|
|
2980
3190
|
}), this.ownsOptionsEmitter = !0);
|
|
2981
3191
|
const o = ((s = this.optionsEmitter.get()[0]) == null ? void 0 : s.value) ?? "";
|
|
2982
|
-
this.valueEmitter =
|
|
3192
|
+
this.valueEmitter = L(this, e, o, "dropdown value");
|
|
2983
3193
|
}
|
|
2984
3194
|
initialize() {
|
|
2985
3195
|
this.watch(this.valueEmitter, this.optionsEmitter);
|
|
@@ -2994,54 +3204,50 @@ class Oe extends nt {
|
|
|
2994
3204
|
placeholder: l = "Select…",
|
|
2995
3205
|
ariaLabel: c,
|
|
2996
3206
|
onChange: u
|
|
2997
|
-
} = this.props,
|
|
2998
|
-
ve(
|
|
3207
|
+
} = this.props, p = this.optionsEmitter.get() ?? [];
|
|
3208
|
+
ve(p);
|
|
2999
3209
|
const b = this.valueEmitter.get(), f = this.Host;
|
|
3000
|
-
return /* @__PURE__ */
|
|
3210
|
+
return /* @__PURE__ */ y(
|
|
3001
3211
|
f,
|
|
3002
3212
|
{
|
|
3003
|
-
className:
|
|
3213
|
+
className: E(this.props),
|
|
3004
3214
|
children: [
|
|
3005
|
-
e == null ? null : /* @__PURE__ */
|
|
3006
|
-
|
|
3007
|
-
"
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
"
|
|
3019
|
-
"
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
h
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
}
|
|
3042
|
-
)
|
|
3043
|
-
),
|
|
3044
|
-
n == null ? null : /* @__PURE__ */ p(
|
|
3215
|
+
e == null ? null : /* @__PURE__ */ h("label", { htmlFor: this.inputId, children: e }),
|
|
3216
|
+
/* @__PURE__ */ h("fray-selectshell", { children: /* @__PURE__ */ y(
|
|
3217
|
+
"select",
|
|
3218
|
+
{
|
|
3219
|
+
id: this.inputId,
|
|
3220
|
+
name: i,
|
|
3221
|
+
value: b == null ? "" : String(b),
|
|
3222
|
+
disabled: o,
|
|
3223
|
+
required: s,
|
|
3224
|
+
"aria-label": e == null ? c : null,
|
|
3225
|
+
"aria-invalid": n == null ? null : "true",
|
|
3226
|
+
"aria-describedby": n == null ? null : this.errorId,
|
|
3227
|
+
onChange: (m) => {
|
|
3228
|
+
const R = Jr(m, "dropdown change"), T = p.find(({ value: $ }) => String($) === R), x = (T == null ? void 0 : T.value) ?? R;
|
|
3229
|
+
this.valueEmitter.set(x, "dropdown selection"), z(u, x, m);
|
|
3230
|
+
},
|
|
3231
|
+
children: [
|
|
3232
|
+
b == null || b === "" ? /* @__PURE__ */ h("option", { value: "", disabled: s, selected: !0, children: l }) : null,
|
|
3233
|
+
p.map((m) => {
|
|
3234
|
+
if (m == null || !Object.hasOwn(m, "value"))
|
|
3235
|
+
throw new TypeError("Dropdown options require value and label fields");
|
|
3236
|
+
return /* @__PURE__ */ h(
|
|
3237
|
+
"option",
|
|
3238
|
+
{
|
|
3239
|
+
value: String(m.value),
|
|
3240
|
+
disabled: !!m.disabled,
|
|
3241
|
+
selected: Object.is(b, m.value),
|
|
3242
|
+
children: m.label ?? String(m.value)
|
|
3243
|
+
},
|
|
3244
|
+
String(m.value)
|
|
3245
|
+
);
|
|
3246
|
+
})
|
|
3247
|
+
]
|
|
3248
|
+
}
|
|
3249
|
+
) }),
|
|
3250
|
+
n == null ? null : /* @__PURE__ */ h(
|
|
3045
3251
|
"p",
|
|
3046
3252
|
{
|
|
3047
3253
|
id: this.errorId,
|
|
@@ -3054,24 +3260,24 @@ class Oe extends nt {
|
|
|
3054
3260
|
);
|
|
3055
3261
|
}
|
|
3056
3262
|
}
|
|
3057
|
-
a(
|
|
3058
|
-
function
|
|
3263
|
+
a(Ae, "liveProps", Gr), a(Ae, "hostName", "dropdown"), a(Ae, "css", "");
|
|
3264
|
+
function Yr(t) {
|
|
3059
3265
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function";
|
|
3060
3266
|
}
|
|
3061
|
-
function
|
|
3267
|
+
function Jr(t, r) {
|
|
3062
3268
|
const e = t.currentTarget;
|
|
3063
3269
|
if (e == null || typeof Reflect.get(e, "value") != "string")
|
|
3064
3270
|
throw new TypeError(`${r} requires a value-bearing event target`);
|
|
3065
3271
|
return Reflect.get(e, "value");
|
|
3066
3272
|
}
|
|
3067
|
-
const
|
|
3068
|
-
class
|
|
3273
|
+
const Zr = ["text"];
|
|
3274
|
+
class Xr extends g {
|
|
3069
3275
|
render() {
|
|
3070
3276
|
const { text: r, htmlFor: e, children: i } = this.props;
|
|
3071
|
-
return /* @__PURE__ */
|
|
3277
|
+
return /* @__PURE__ */ h(
|
|
3072
3278
|
"label",
|
|
3073
3279
|
{
|
|
3074
|
-
className:
|
|
3280
|
+
className: E(this.props) || void 0,
|
|
3075
3281
|
htmlFor: e,
|
|
3076
3282
|
"data-fray-component": "label",
|
|
3077
3283
|
children: r ?? i
|
|
@@ -3079,14 +3285,14 @@ class _r extends g {
|
|
|
3079
3285
|
);
|
|
3080
3286
|
}
|
|
3081
3287
|
}
|
|
3082
|
-
a(
|
|
3083
|
-
const
|
|
3084
|
-
class oe extends
|
|
3288
|
+
a(Xr, "liveProps", Zr);
|
|
3289
|
+
const ei = ["checked", "disabled", "required", "error"], ti = ["disabled", "required", "error"];
|
|
3290
|
+
class oe extends tt {
|
|
3085
3291
|
constructor(e = {}) {
|
|
3086
3292
|
super(e);
|
|
3087
3293
|
a(this, "inputId");
|
|
3088
3294
|
a(this, "errorId");
|
|
3089
|
-
this.inputId =
|
|
3295
|
+
this.inputId = I("radio", e.id), this.errorId = `${this.inputId}-error`;
|
|
3090
3296
|
}
|
|
3091
3297
|
render() {
|
|
3092
3298
|
const {
|
|
@@ -3096,9 +3302,9 @@ class oe extends et {
|
|
|
3096
3302
|
required: s = !1,
|
|
3097
3303
|
error: n = null
|
|
3098
3304
|
} = this.props, l = this.Host;
|
|
3099
|
-
return /* @__PURE__ */
|
|
3100
|
-
/* @__PURE__ */
|
|
3101
|
-
/* @__PURE__ */
|
|
3305
|
+
return /* @__PURE__ */ y(l, { className: E(this.props) || null, children: [
|
|
3306
|
+
/* @__PURE__ */ y("label", { htmlFor: this.inputId, children: [
|
|
3307
|
+
/* @__PURE__ */ h(
|
|
3102
3308
|
"input",
|
|
3103
3309
|
{
|
|
3104
3310
|
id: this.inputId,
|
|
@@ -3110,21 +3316,21 @@ class oe extends et {
|
|
|
3110
3316
|
required: s,
|
|
3111
3317
|
"aria-invalid": n == null ? null : "true",
|
|
3112
3318
|
"aria-describedby": n == null ? null : this.errorId,
|
|
3113
|
-
onChange: (c) =>
|
|
3319
|
+
onChange: (c) => z(
|
|
3114
3320
|
this.props.onChange,
|
|
3115
3321
|
c.currentTarget.checked,
|
|
3116
3322
|
c
|
|
3117
3323
|
)
|
|
3118
3324
|
}
|
|
3119
3325
|
),
|
|
3120
|
-
|
|
3326
|
+
/* @__PURE__ */ h("fray-checkshell", { "aria-hidden": "true" }),
|
|
3121
3327
|
e
|
|
3122
3328
|
] }),
|
|
3123
|
-
n == null ? null : /* @__PURE__ */
|
|
3329
|
+
n == null ? null : /* @__PURE__ */ h("p", { id: this.errorId, role: "alert", children: String(n) })
|
|
3124
3330
|
] });
|
|
3125
3331
|
}
|
|
3126
3332
|
}
|
|
3127
|
-
a(oe, "liveProps",
|
|
3333
|
+
a(oe, "liveProps", ei), a(oe, "hostName", "radio-button"), a(oe, "css", w`
|
|
3128
3334
|
& > label > input[type="radio"] + fray-checkshell {
|
|
3129
3335
|
border-radius: 50%;
|
|
3130
3336
|
}
|
|
@@ -3145,30 +3351,30 @@ class me extends g {
|
|
|
3145
3351
|
a(this, "groupId");
|
|
3146
3352
|
a(this, "errorId");
|
|
3147
3353
|
const i = e.options ?? [];
|
|
3148
|
-
|
|
3354
|
+
je(i);
|
|
3149
3355
|
const o = ((s = i[0]) == null ? void 0 : s[0]) ?? null;
|
|
3150
|
-
this.valueEmitter =
|
|
3356
|
+
this.valueEmitter = L(this, e, o, "radio group value"), this.groupId = I("radio-group", e.id), this.errorId = `${this.groupId}-error`;
|
|
3151
3357
|
}
|
|
3152
3358
|
initialize() {
|
|
3153
3359
|
this.watch(this.valueEmitter);
|
|
3154
3360
|
}
|
|
3155
3361
|
setProps(e) {
|
|
3156
3362
|
const i = e.options ?? [];
|
|
3157
|
-
return
|
|
3363
|
+
return je(i), super.setProps(e), this.selectFirstAvailableOption(i), this;
|
|
3158
3364
|
}
|
|
3159
3365
|
selectOption(e, i = null) {
|
|
3160
|
-
this.props.disabled || (this.valueEmitter.set(e, "radio option selected"),
|
|
3366
|
+
this.props.disabled || (this.valueEmitter.set(e, "radio option selected"), z(this.props.onChange, e, i));
|
|
3161
3367
|
}
|
|
3162
3368
|
render() {
|
|
3163
3369
|
const { options: e = [], label: i, disabled: o = !1, required: s = !1, error: n = null } = this.props;
|
|
3164
|
-
|
|
3370
|
+
je(e);
|
|
3165
3371
|
const l = this.valueEmitter.get(), c = this.Host;
|
|
3166
|
-
return /* @__PURE__ */
|
|
3372
|
+
return /* @__PURE__ */ y(
|
|
3167
3373
|
c,
|
|
3168
3374
|
{
|
|
3169
|
-
className:
|
|
3375
|
+
className: E(this.props) || null,
|
|
3170
3376
|
children: [
|
|
3171
|
-
/* @__PURE__ */
|
|
3377
|
+
/* @__PURE__ */ y(
|
|
3172
3378
|
"fieldset",
|
|
3173
3379
|
{
|
|
3174
3380
|
id: this.groupId,
|
|
@@ -3178,14 +3384,14 @@ class me extends g {
|
|
|
3178
3384
|
"aria-invalid": n == null ? null : "true",
|
|
3179
3385
|
"aria-describedby": n == null ? null : this.errorId,
|
|
3180
3386
|
children: [
|
|
3181
|
-
i == null ? null : /* @__PURE__ */
|
|
3182
|
-
e.map(([u,
|
|
3387
|
+
i == null ? null : /* @__PURE__ */ h("legend", { children: i }),
|
|
3388
|
+
e.map(([u, p], b) => /* @__PURE__ */ h(
|
|
3183
3389
|
oe,
|
|
3184
3390
|
{
|
|
3185
3391
|
id: `${this.groupId}-${b}`,
|
|
3186
3392
|
name: this.props.name ?? this.groupId,
|
|
3187
3393
|
value: u,
|
|
3188
|
-
label:
|
|
3394
|
+
label: p,
|
|
3189
3395
|
checked: Object.is(l, u),
|
|
3190
3396
|
disabled: o,
|
|
3191
3397
|
required: s,
|
|
@@ -3198,7 +3404,7 @@ class me extends g {
|
|
|
3198
3404
|
]
|
|
3199
3405
|
}
|
|
3200
3406
|
),
|
|
3201
|
-
n == null ? null : /* @__PURE__ */
|
|
3407
|
+
n == null ? null : /* @__PURE__ */ h("p", { id: this.errorId, role: "alert", children: String(n) })
|
|
3202
3408
|
]
|
|
3203
3409
|
}
|
|
3204
3410
|
);
|
|
@@ -3211,11 +3417,11 @@ class me extends g {
|
|
|
3211
3417
|
);
|
|
3212
3418
|
}
|
|
3213
3419
|
}
|
|
3214
|
-
a(me, "dependencies", [oe]), a(me, "liveProps",
|
|
3420
|
+
a(me, "dependencies", [oe]), a(me, "liveProps", ti), a(me, "hostName", "radio-group"), a(me, "css", w`
|
|
3215
3421
|
& > fieldset {
|
|
3216
3422
|
display: flex;
|
|
3217
|
-
flex-flow:
|
|
3218
|
-
gap:
|
|
3423
|
+
flex-flow: column wrap;
|
|
3424
|
+
gap: 0;
|
|
3219
3425
|
margin: 0;
|
|
3220
3426
|
padding: 0;
|
|
3221
3427
|
min-inline-size: 0;
|
|
@@ -3226,22 +3432,24 @@ a(me, "dependencies", [oe]), a(me, "liveProps", Br), a(me, "hostName", "radio-gr
|
|
|
3226
3432
|
& > fieldset > legend {
|
|
3227
3433
|
flex: 0 0 100%;
|
|
3228
3434
|
padding: 0;
|
|
3435
|
+
margin-bottom: .5em;
|
|
3436
|
+
border-bottom: 1px solid #aaa;
|
|
3229
3437
|
}
|
|
3230
3438
|
`);
|
|
3231
|
-
function
|
|
3439
|
+
function je(t) {
|
|
3232
3440
|
ve(t, "Radio group options");
|
|
3233
3441
|
for (const r of t)
|
|
3234
3442
|
if (!Array.isArray(r) || r.length < 2)
|
|
3235
3443
|
throw new TypeError("Radio group options must be [value, label] tuples");
|
|
3236
3444
|
}
|
|
3237
|
-
const
|
|
3238
|
-
class
|
|
3445
|
+
const ri = ["disabled", "required", "readOnly", "error"];
|
|
3446
|
+
class qe extends nt {
|
|
3239
3447
|
constructor(e = {}) {
|
|
3240
3448
|
super(e);
|
|
3241
3449
|
a(this, "inputId");
|
|
3242
3450
|
a(this, "errorId");
|
|
3243
3451
|
a(this, "valueEmitter");
|
|
3244
|
-
this.inputId =
|
|
3452
|
+
this.inputId = I("textbox", e.id), this.errorId = `${this.inputId}-error`, this.valueEmitter = L(this, e, "", "textbox value");
|
|
3245
3453
|
}
|
|
3246
3454
|
initialize() {
|
|
3247
3455
|
this.watch(this.valueEmitter);
|
|
@@ -3256,50 +3464,50 @@ class je extends st {
|
|
|
3256
3464
|
required: l = !1,
|
|
3257
3465
|
readOnly: c = !1,
|
|
3258
3466
|
error: u = null,
|
|
3259
|
-
autoComplete:
|
|
3467
|
+
autoComplete: p,
|
|
3260
3468
|
inputMode: b,
|
|
3261
3469
|
minLength: f,
|
|
3262
3470
|
maxLength: m,
|
|
3263
|
-
pattern:
|
|
3471
|
+
pattern: R,
|
|
3264
3472
|
ariaLabel: T,
|
|
3265
|
-
inputRef:
|
|
3266
|
-
onInput:
|
|
3267
|
-
onChange:
|
|
3268
|
-
} = this.props,
|
|
3269
|
-
return /* @__PURE__ */
|
|
3270
|
-
e == null ? null : /* @__PURE__ */
|
|
3271
|
-
/* @__PURE__ */
|
|
3473
|
+
inputRef: x,
|
|
3474
|
+
onInput: $,
|
|
3475
|
+
onChange: D
|
|
3476
|
+
} = this.props, P = this.valueEmitter.get() ?? "", K = this.Host;
|
|
3477
|
+
return /* @__PURE__ */ y(K, { className: E(this.props) || null, children: [
|
|
3478
|
+
e == null ? null : /* @__PURE__ */ h("label", { htmlFor: this.inputId, children: e }),
|
|
3479
|
+
/* @__PURE__ */ h(
|
|
3272
3480
|
"input",
|
|
3273
3481
|
{
|
|
3274
3482
|
id: this.inputId,
|
|
3275
3483
|
name: s,
|
|
3276
3484
|
type: o,
|
|
3277
|
-
value:
|
|
3485
|
+
value: P,
|
|
3278
3486
|
placeholder: i,
|
|
3279
3487
|
disabled: n,
|
|
3280
3488
|
required: l,
|
|
3281
3489
|
readOnly: c,
|
|
3282
|
-
autoComplete:
|
|
3490
|
+
autoComplete: p,
|
|
3283
3491
|
inputMode: b,
|
|
3284
3492
|
minLength: f,
|
|
3285
3493
|
maxLength: m,
|
|
3286
|
-
pattern:
|
|
3287
|
-
ref:
|
|
3494
|
+
pattern: R,
|
|
3495
|
+
ref: x,
|
|
3288
3496
|
"aria-label": e == null ? T : null,
|
|
3289
3497
|
"aria-invalid": u == null ? null : "true",
|
|
3290
3498
|
"aria-describedby": u == null ? null : this.errorId,
|
|
3291
|
-
onInput: (
|
|
3292
|
-
const
|
|
3293
|
-
this.valueEmitter.set(
|
|
3499
|
+
onInput: (C) => {
|
|
3500
|
+
const q = zt(C, "textbox input");
|
|
3501
|
+
this.valueEmitter.set(q, "textbox input"), z($, q, C);
|
|
3294
3502
|
},
|
|
3295
|
-
onChange: (
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3503
|
+
onChange: (C) => z(
|
|
3504
|
+
D,
|
|
3505
|
+
zt(C, "textbox change"),
|
|
3506
|
+
C
|
|
3299
3507
|
)
|
|
3300
3508
|
}
|
|
3301
3509
|
),
|
|
3302
|
-
u == null ? null : /* @__PURE__ */
|
|
3510
|
+
u == null ? null : /* @__PURE__ */ h(
|
|
3303
3511
|
"p",
|
|
3304
3512
|
{
|
|
3305
3513
|
id: this.errorId,
|
|
@@ -3310,7 +3518,7 @@ class je extends st {
|
|
|
3310
3518
|
] });
|
|
3311
3519
|
}
|
|
3312
3520
|
}
|
|
3313
|
-
a(
|
|
3521
|
+
a(qe, "liveProps", ri), a(qe, "hostName", "textbox"), a(qe, "css", w`
|
|
3314
3522
|
& > input {
|
|
3315
3523
|
min-height: var(--control-min-height, 2rem);
|
|
3316
3524
|
width: var(--input-width, 15rem);
|
|
@@ -3345,14 +3553,14 @@ a(je, "liveProps", Wr), a(je, "hostName", "textbox"), a(je, "css", E`
|
|
|
3345
3553
|
margin: 0;
|
|
3346
3554
|
}
|
|
3347
3555
|
`);
|
|
3348
|
-
function
|
|
3556
|
+
function zt(t, r) {
|
|
3349
3557
|
const e = t.currentTarget;
|
|
3350
3558
|
if (e == null || typeof Reflect.get(e, "value") != "string")
|
|
3351
3559
|
throw new TypeError(`${r} requires a value-bearing event target`);
|
|
3352
3560
|
return Reflect.get(e, "value");
|
|
3353
3561
|
}
|
|
3354
|
-
const
|
|
3355
|
-
class
|
|
3562
|
+
const ii = ["disabled", "required", "error"];
|
|
3563
|
+
class Ne extends g {
|
|
3356
3564
|
constructor(e = {}) {
|
|
3357
3565
|
var s;
|
|
3358
3566
|
super(e);
|
|
@@ -3361,24 +3569,24 @@ class qe extends g {
|
|
|
3361
3569
|
a(this, "legendId");
|
|
3362
3570
|
a(this, "errorId");
|
|
3363
3571
|
const i = e.options ?? [];
|
|
3364
|
-
|
|
3572
|
+
Le(i);
|
|
3365
3573
|
const o = ((s = i[0]) == null ? void 0 : s[0]) ?? null;
|
|
3366
|
-
this.valueEmitter =
|
|
3574
|
+
this.valueEmitter = L(
|
|
3367
3575
|
this,
|
|
3368
3576
|
e,
|
|
3369
3577
|
o ?? null,
|
|
3370
3578
|
"toggle value"
|
|
3371
|
-
), this.groupId =
|
|
3579
|
+
), this.groupId = I("toggle", e.id), this.legendId = `${this.groupId}-label`, this.errorId = `${this.groupId}-error`;
|
|
3372
3580
|
}
|
|
3373
3581
|
initialize() {
|
|
3374
3582
|
this.selectFirstAvailableOption(this.props.options ?? []), this.watch(this.valueEmitter);
|
|
3375
3583
|
}
|
|
3376
3584
|
setProps(e) {
|
|
3377
3585
|
const i = e.options ?? [];
|
|
3378
|
-
return
|
|
3586
|
+
return Le(i), super.setProps(e), this.selectFirstAvailableOption(i), this;
|
|
3379
3587
|
}
|
|
3380
3588
|
selectOption(e, i = null) {
|
|
3381
|
-
this.props.disabled || (this.valueEmitter.set(e, "toggle option selected"),
|
|
3589
|
+
this.props.disabled || (this.valueEmitter.set(e, "toggle option selected"), z(this.props.onChange, e, i));
|
|
3382
3590
|
}
|
|
3383
3591
|
render() {
|
|
3384
3592
|
const {
|
|
@@ -3388,38 +3596,46 @@ class qe extends g {
|
|
|
3388
3596
|
required: s = !1,
|
|
3389
3597
|
error: n = null
|
|
3390
3598
|
} = this.props;
|
|
3391
|
-
|
|
3599
|
+
Le(e);
|
|
3392
3600
|
const l = this.valueEmitter.get(), c = Math.max(
|
|
3393
3601
|
0,
|
|
3394
|
-
e.findIndex(([
|
|
3602
|
+
e.findIndex(([p]) => Object.is(p, l))
|
|
3395
3603
|
), u = this.Host;
|
|
3396
|
-
return /* @__PURE__ */
|
|
3397
|
-
i == null ? null :
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
"aria-label": i == null ? this.props.ariaLabel : null,
|
|
3401
|
-
"aria-labelledby": i == null ? null : this.legendId,
|
|
3402
|
-
"aria-required": s ? "true" : null,
|
|
3403
|
-
"aria-invalid": n == null ? null : "true",
|
|
3404
|
-
"aria-describedby": n == null ? null : this.errorId
|
|
3405
|
-
}, e.map(([h, b], f) => /* @__PURE__ */ p(
|
|
3406
|
-
"button",
|
|
3604
|
+
return /* @__PURE__ */ y(u, { id: this.groupId, className: E(this.props) || null, children: [
|
|
3605
|
+
i == null ? null : /* @__PURE__ */ h("fray-label", { id: this.legendId, children: i }),
|
|
3606
|
+
/* @__PURE__ */ h(
|
|
3607
|
+
"fray-options",
|
|
3407
3608
|
{
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
"aria-
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3609
|
+
role: "radiogroup",
|
|
3610
|
+
"aria-label": i == null ? this.props.ariaLabel : null,
|
|
3611
|
+
"aria-labelledby": i == null ? null : this.legendId,
|
|
3612
|
+
"aria-required": s ? "true" : null,
|
|
3613
|
+
"aria-invalid": n == null ? null : "true",
|
|
3614
|
+
"aria-describedby": n == null ? null : this.errorId,
|
|
3615
|
+
children: e.map(([p, b], f) => /* @__PURE__ */ h(
|
|
3616
|
+
"button",
|
|
3617
|
+
{
|
|
3618
|
+
type: "button",
|
|
3619
|
+
role: "radio",
|
|
3620
|
+
disabled: o,
|
|
3621
|
+
"aria-checked": Object.is(l, p) ? "true" : "false",
|
|
3622
|
+
tabIndex: f === c ? 0 : -1,
|
|
3623
|
+
onClick: (m) => this.selectOption(p, m),
|
|
3624
|
+
onKeyDown: (m) => this.handleKeyDown(m, f, e),
|
|
3625
|
+
children: b
|
|
3626
|
+
},
|
|
3627
|
+
String(p)
|
|
3628
|
+
))
|
|
3629
|
+
}
|
|
3630
|
+
),
|
|
3631
|
+
n == null ? null : /* @__PURE__ */ h(
|
|
3632
|
+
"fray-error",
|
|
3633
|
+
{
|
|
3634
|
+
id: this.errorId,
|
|
3635
|
+
role: "alert",
|
|
3636
|
+
children: String(n)
|
|
3637
|
+
}
|
|
3638
|
+
)
|
|
3423
3639
|
] });
|
|
3424
3640
|
}
|
|
3425
3641
|
handleKeyDown(e, i, o) {
|
|
@@ -3446,7 +3662,7 @@ class qe extends g {
|
|
|
3446
3662
|
);
|
|
3447
3663
|
}
|
|
3448
3664
|
}
|
|
3449
|
-
a(
|
|
3665
|
+
a(Ne, "liveProps", ii), a(Ne, "hostName", "toggle"), a(Ne, "css", w`
|
|
3450
3666
|
& {
|
|
3451
3667
|
display: inline-block;
|
|
3452
3668
|
inline-size: fit-content;
|
|
@@ -3540,13 +3756,13 @@ a(qe, "liveProps", Gr), a(qe, "hostName", "toggle"), a(qe, "css", E`
|
|
|
3540
3756
|
background: var(--toggle-inactive-separator-background);
|
|
3541
3757
|
}
|
|
3542
3758
|
`);
|
|
3543
|
-
function
|
|
3759
|
+
function Le(t) {
|
|
3544
3760
|
ve(t);
|
|
3545
3761
|
for (const r of t)
|
|
3546
3762
|
if (!Array.isArray(r) || r.length < 2)
|
|
3547
3763
|
throw new TypeError("Toggle options must be [value, label] tuples");
|
|
3548
3764
|
}
|
|
3549
|
-
class
|
|
3765
|
+
class Fe extends g {
|
|
3550
3766
|
render() {
|
|
3551
3767
|
const {
|
|
3552
3768
|
children: r = [],
|
|
@@ -3557,12 +3773,12 @@ class Le extends g {
|
|
|
3557
3773
|
if (!["horizontal", "vertical"].includes(o))
|
|
3558
3774
|
throw new TypeError("Toolbar orientation must be horizontal or vertical");
|
|
3559
3775
|
const s = this.Host;
|
|
3560
|
-
return /* @__PURE__ */
|
|
3776
|
+
return /* @__PURE__ */ h(
|
|
3561
3777
|
s,
|
|
3562
3778
|
{
|
|
3563
3779
|
id: e,
|
|
3564
3780
|
role: "toolbar",
|
|
3565
|
-
className:
|
|
3781
|
+
className: E(this.props) || null,
|
|
3566
3782
|
"aria-label": i,
|
|
3567
3783
|
"aria-orientation": o,
|
|
3568
3784
|
children: r
|
|
@@ -3570,7 +3786,7 @@ class Le extends g {
|
|
|
3570
3786
|
);
|
|
3571
3787
|
}
|
|
3572
3788
|
}
|
|
3573
|
-
a(
|
|
3789
|
+
a(Fe, "liveProps", []), a(Fe, "hostName", "toolbar"), a(Fe, "css", w`
|
|
3574
3790
|
& {
|
|
3575
3791
|
display: flex;
|
|
3576
3792
|
flex-wrap: wrap;
|
|
@@ -3592,11 +3808,11 @@ a(Le, "liveProps", []), a(Le, "hostName", "toolbar"), a(Le, "css", E`
|
|
|
3592
3808
|
align-items: stretch;
|
|
3593
3809
|
}
|
|
3594
3810
|
`);
|
|
3595
|
-
class
|
|
3811
|
+
class De extends g {
|
|
3596
3812
|
constructor(e) {
|
|
3597
3813
|
super(e);
|
|
3598
3814
|
a(this, "progressId");
|
|
3599
|
-
if (this.progressId =
|
|
3815
|
+
if (this.progressId = I("progress", e.id), e.valueEmitter != null && !oi(e.valueEmitter))
|
|
3600
3816
|
throw new TypeError("ProgressBar valueEmitter must be a readable emitter");
|
|
3601
3817
|
}
|
|
3602
3818
|
render() {
|
|
@@ -3607,9 +3823,9 @@ class Fe extends g {
|
|
|
3607
3823
|
if (i != null && (!Number.isFinite(i) || i < 0))
|
|
3608
3824
|
throw new RangeError("ProgressBar value must be null or a non-negative finite number");
|
|
3609
3825
|
const o = i == null ? null : Math.min(i, e), s = o == null ? null : o / e * 100, n = this.props.valueText ?? (o == null ? "In progress" : `${Math.round(o / e * 100)}%`), l = this.Host;
|
|
3610
|
-
return /* @__PURE__ */
|
|
3611
|
-
/* @__PURE__ */
|
|
3612
|
-
/* @__PURE__ */
|
|
3826
|
+
return /* @__PURE__ */ y(l, { className: E(this.props) || null, children: [
|
|
3827
|
+
/* @__PURE__ */ h("label", { htmlFor: this.progressId, children: this.props.label }),
|
|
3828
|
+
/* @__PURE__ */ h(
|
|
3613
3829
|
"progress",
|
|
3614
3830
|
{
|
|
3615
3831
|
id: this.progressId,
|
|
@@ -3619,21 +3835,23 @@ class Fe extends g {
|
|
|
3619
3835
|
children: n
|
|
3620
3836
|
}
|
|
3621
3837
|
),
|
|
3622
|
-
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3838
|
+
/* @__PURE__ */ y("fray-content", { "aria-hidden": "true", children: [
|
|
3839
|
+
/* @__PURE__ */ h(
|
|
3840
|
+
"fray-progress",
|
|
3841
|
+
{
|
|
3842
|
+
style: s == null ? void 0 : {
|
|
3843
|
+
"--progress-width": `${s}%`,
|
|
3844
|
+
"--progress-inverse-width": `${1e4 / Math.max(s, 1)}%`
|
|
3845
|
+
},
|
|
3846
|
+
children: /* @__PURE__ */ h("fray-inverse", { children: this.props.label })
|
|
3629
3847
|
}
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
)
|
|
3848
|
+
),
|
|
3849
|
+
/* @__PURE__ */ h("fray-label", { children: this.props.label })
|
|
3850
|
+
] })
|
|
3633
3851
|
] });
|
|
3634
3852
|
}
|
|
3635
3853
|
}
|
|
3636
|
-
a(
|
|
3854
|
+
a(De, "liveProps", []), a(De, "hostName", "progress-bar"), a(De, "css", w`
|
|
3637
3855
|
& {
|
|
3638
3856
|
display: block;
|
|
3639
3857
|
}
|
|
@@ -3744,13 +3962,13 @@ a(Fe, "liveProps", []), a(Fe, "hostName", "progress-bar"), a(Fe, "css", E`
|
|
|
3744
3962
|
}
|
|
3745
3963
|
}
|
|
3746
3964
|
`);
|
|
3747
|
-
function
|
|
3965
|
+
function oi(t) {
|
|
3748
3966
|
return t != null && (typeof t == "object" || typeof t == "function") && typeof Reflect.get(t, "get") == "function" && typeof Reflect.get(t, "subscribe") == "function";
|
|
3749
3967
|
}
|
|
3750
|
-
const
|
|
3751
|
-
...
|
|
3752
|
-
...
|
|
3753
|
-
...
|
|
3968
|
+
const _i = Object.freeze([
|
|
3969
|
+
...Pe("primary"),
|
|
3970
|
+
...Pe("secondary"),
|
|
3971
|
+
...Pe("neutral"),
|
|
3754
3972
|
d("--palette-primary", "palette", "primary", "color", "Primary anchor color", "--palette-primary-500"),
|
|
3755
3973
|
d("--palette-primary-light", "palette", "primary", "color", "Light primary color", "--palette-primary-200"),
|
|
3756
3974
|
d("--palette-primary-dark", "palette", "primary", "color", "Dark primary color", "--palette-primary-800"),
|
|
@@ -3873,35 +4091,35 @@ const Li = Object.freeze([
|
|
|
3873
4091
|
d("--block-graph-block-border", "theme", "block graph", "border", "Block graph category border", "--ui-border"),
|
|
3874
4092
|
d("--block-graph-block-radius", "theme", "block graph", "radius", "Block graph category radius", "--radius-sm"),
|
|
3875
4093
|
d("--block-graph-block-shadow", "theme", "block graph", "shadow", "Block graph category depth")
|
|
3876
|
-
]),
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
]),
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
4094
|
+
]), si = Object.freeze([
|
|
4095
|
+
Ke("shiny", "Shiny", O("themes/shiny/theme.css"), "light"),
|
|
4096
|
+
Ke("java", "Java", O("themes/java/theme.css"), "light"),
|
|
4097
|
+
Ke("minimal", "Minimal", O("themes/minimal/theme.css"), "adaptive")
|
|
4098
|
+
]), ni = Object.freeze([
|
|
4099
|
+
F("iceblue", "Ice blue", O("colors/iceblue/colors.css")),
|
|
4100
|
+
F("ocean", "Ocean", O("colors/ocean/colors.css")),
|
|
4101
|
+
F("green", "Green", O("colors/green/colors.css")),
|
|
4102
|
+
F("gray", "Gray", O("colors/gray/colors.css")),
|
|
4103
|
+
F("orange", "Orange", O("colors/orange/colors.css")),
|
|
4104
|
+
F("purple", "Purple", O("colors/purple/colors.css")),
|
|
4105
|
+
F("red", "Red", O("colors/red/colors.css")),
|
|
4106
|
+
F("yellow", "Yellow", O("colors/yellow/colors.css"))
|
|
3889
4107
|
]);
|
|
3890
|
-
function
|
|
3891
|
-
if (
|
|
4108
|
+
function ai(t, r, e = globalThis.document) {
|
|
4109
|
+
if (li(r), (e == null ? void 0 : e.head) == null || e.documentElement == null)
|
|
3892
4110
|
throw new TypeError("replaceFrayStylesheet requires a document with a head and root");
|
|
3893
4111
|
const i = `link[data-fray-stylesheet="${t}"]`;
|
|
3894
4112
|
let o = e.head.querySelector(i);
|
|
3895
4113
|
return o == null && (o = e.createElement("link"), o.rel = "stylesheet", o.dataset.frayStylesheet = t, e.head.append(o)), o.dataset.fraySelection = r.value, o.getAttribute("href") !== r.href && o.setAttribute("href", r.href), t === "theme" ? e.documentElement.dataset.theme = r.value : e.documentElement.dataset.color = r.value, o;
|
|
3896
4114
|
}
|
|
3897
|
-
function
|
|
4115
|
+
function Qi(t, r = globalThis.document) {
|
|
3898
4116
|
if ((r == null ? void 0 : r.documentElement) == null)
|
|
3899
4117
|
throw new TypeError("setFrayAppearance requires a document with a root");
|
|
3900
4118
|
if (t !== "light" && t !== "dark" && t !== "system")
|
|
3901
4119
|
throw new TypeError("Fray appearance must be light, dark, or system");
|
|
3902
4120
|
t === "system" ? r.documentElement.removeAttribute("data-appearance") : r.documentElement.dataset.appearance = t;
|
|
3903
4121
|
}
|
|
3904
|
-
function
|
|
4122
|
+
function Bi(t = globalThis.document) {
|
|
3905
4123
|
if ((t == null ? void 0 : t.documentElement) == null)
|
|
3906
4124
|
throw new TypeError("getFrayAppearance requires a document with a root");
|
|
3907
4125
|
const r = t.documentElement.dataset.appearance;
|
|
@@ -3915,7 +4133,7 @@ function be(t, r) {
|
|
|
3915
4133
|
function d(t, r, e, i, o, s) {
|
|
3916
4134
|
return s == null ? Object.freeze({ name: t, layer: r, family: e, value: i, description: o }) : Object.freeze({ name: t, layer: r, family: e, value: i, description: o, fallback: s });
|
|
3917
4135
|
}
|
|
3918
|
-
function
|
|
4136
|
+
function Pe(t) {
|
|
3919
4137
|
return [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950].map((r) => {
|
|
3920
4138
|
var e;
|
|
3921
4139
|
return d(
|
|
@@ -3927,25 +4145,25 @@ function De(t) {
|
|
|
3927
4145
|
);
|
|
3928
4146
|
});
|
|
3929
4147
|
}
|
|
3930
|
-
function
|
|
4148
|
+
function F(t, r, e) {
|
|
3931
4149
|
return Object.freeze({ value: t, label: r, href: e });
|
|
3932
4150
|
}
|
|
3933
|
-
function
|
|
4151
|
+
function Ke(t, r, e, i) {
|
|
3934
4152
|
return Object.freeze({ value: t, label: r, href: e, appearance: i });
|
|
3935
4153
|
}
|
|
3936
|
-
function
|
|
4154
|
+
function O(t) {
|
|
3937
4155
|
const r = import.meta.url.includes("/src/styling/") ? `../../${t}` : `../${t}`;
|
|
3938
4156
|
return new URL(r, import.meta.url).href;
|
|
3939
4157
|
}
|
|
3940
|
-
function
|
|
4158
|
+
function li(t) {
|
|
3941
4159
|
if (t == null || typeof t != "object")
|
|
3942
4160
|
throw new TypeError("Fray stylesheet selection must be an option");
|
|
3943
4161
|
for (const r of ["value", "label", "href"])
|
|
3944
4162
|
if (typeof Reflect.get(t, r) != "string" || String(Reflect.get(t, r)).length === 0)
|
|
3945
4163
|
throw new TypeError(`Fray stylesheet option ${r} must be a non-empty string`);
|
|
3946
4164
|
}
|
|
3947
|
-
const
|
|
3948
|
-
class ke extends
|
|
4165
|
+
const ci = ["disabled"];
|
|
4166
|
+
class ke extends at {
|
|
3949
4167
|
constructor(e, i, o) {
|
|
3950
4168
|
var l;
|
|
3951
4169
|
super(e);
|
|
@@ -3954,48 +4172,44 @@ class ke extends nt {
|
|
|
3954
4172
|
a(this, "kind");
|
|
3955
4173
|
a(this, "defaults");
|
|
3956
4174
|
const s = e.options ?? o;
|
|
3957
|
-
|
|
4175
|
+
$t(s);
|
|
3958
4176
|
const n = (l = s[0]) == null ? void 0 : l.value;
|
|
3959
4177
|
if (n == null) throw new TypeError(`${i} picker requires at least one option`);
|
|
3960
|
-
this.kind = i, this.defaults = o, this.inputId =
|
|
4178
|
+
this.kind = i, this.defaults = o, this.inputId = I(`${i}-picker`, e.id), this.valueEmitter = L(this, e, n, `${i} selection`), be(s, this.valueEmitter.get());
|
|
3961
4179
|
}
|
|
3962
4180
|
initialize() {
|
|
3963
4181
|
this.watch(this.valueEmitter);
|
|
3964
4182
|
}
|
|
3965
4183
|
render() {
|
|
3966
4184
|
const e = this.options, i = be(e, this.valueEmitter.get()), { label: o, ariaLabel: s, disabled: n = !1, onChange: l } = this.props, c = this.Host;
|
|
3967
|
-
return /* @__PURE__ */
|
|
4185
|
+
return /* @__PURE__ */ y(
|
|
3968
4186
|
c,
|
|
3969
4187
|
{
|
|
3970
|
-
className:
|
|
4188
|
+
className: E(this.props),
|
|
3971
4189
|
children: [
|
|
3972
|
-
o == null ? null : /* @__PURE__ */
|
|
3973
|
-
|
|
3974
|
-
"
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
4190
|
+
o == null ? null : /* @__PURE__ */ h("label", { htmlFor: this.inputId, children: o }),
|
|
4191
|
+
/* @__PURE__ */ h("fray-selectshell", { children: /* @__PURE__ */ h(
|
|
4192
|
+
"select",
|
|
4193
|
+
{
|
|
4194
|
+
id: this.inputId,
|
|
4195
|
+
value: i.value,
|
|
4196
|
+
disabled: n,
|
|
4197
|
+
"aria-label": o == null ? s : null,
|
|
4198
|
+
onChange: (u) => {
|
|
4199
|
+
const p = hi(u), b = be(e, p);
|
|
4200
|
+
this.valueEmitter.set(p, `${this.kind} selected`), z(l, p, b, u);
|
|
4201
|
+
},
|
|
4202
|
+
children: e.map((u) => /* @__PURE__ */ h(
|
|
4203
|
+
"option",
|
|
4204
|
+
{
|
|
4205
|
+
value: u.value,
|
|
4206
|
+
selected: u.value === i.value,
|
|
4207
|
+
children: u.label
|
|
3986
4208
|
},
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
selected: u.value === i.value,
|
|
3992
|
-
children: u.label
|
|
3993
|
-
},
|
|
3994
|
-
u.value
|
|
3995
|
-
))
|
|
3996
|
-
}
|
|
3997
|
-
)
|
|
3998
|
-
)
|
|
4209
|
+
u.value
|
|
4210
|
+
))
|
|
4211
|
+
}
|
|
4212
|
+
) })
|
|
3999
4213
|
]
|
|
4000
4214
|
}
|
|
4001
4215
|
);
|
|
@@ -4008,35 +4222,35 @@ class ke extends nt {
|
|
|
4008
4222
|
}
|
|
4009
4223
|
get options() {
|
|
4010
4224
|
const e = this.props.options ?? this.defaults;
|
|
4011
|
-
return
|
|
4225
|
+
return $t(e), e;
|
|
4012
4226
|
}
|
|
4013
4227
|
applySelection() {
|
|
4014
4228
|
const e = this.props.targetDocument ?? (typeof document > "u" ? null : document);
|
|
4015
|
-
e != null &&
|
|
4229
|
+
e != null && ai(
|
|
4016
4230
|
this.kind,
|
|
4017
4231
|
be(this.options, this.valueEmitter.get()),
|
|
4018
4232
|
e
|
|
4019
4233
|
);
|
|
4020
4234
|
}
|
|
4021
4235
|
}
|
|
4022
|
-
a(ke, "liveProps",
|
|
4236
|
+
a(ke, "liveProps", ci), a(ke, "css", w`
|
|
4023
4237
|
& > fray-selectshell > select {
|
|
4024
4238
|
min-width: 8rem;
|
|
4025
4239
|
}
|
|
4026
4240
|
`);
|
|
4027
|
-
class
|
|
4241
|
+
class di extends ke {
|
|
4028
4242
|
constructor(r = {}) {
|
|
4029
|
-
super(r, "theme",
|
|
4243
|
+
super(r, "theme", si);
|
|
4030
4244
|
}
|
|
4031
4245
|
}
|
|
4032
|
-
a(
|
|
4033
|
-
class
|
|
4246
|
+
a(di, "hostName", "theme-picker");
|
|
4247
|
+
class ui extends ke {
|
|
4034
4248
|
constructor(r = {}) {
|
|
4035
|
-
super(r, "colors",
|
|
4249
|
+
super(r, "colors", ni);
|
|
4036
4250
|
}
|
|
4037
4251
|
}
|
|
4038
|
-
a(
|
|
4039
|
-
function
|
|
4252
|
+
a(ui, "hostName", "color-picker");
|
|
4253
|
+
function $t(t) {
|
|
4040
4254
|
if (!Array.isArray(t) || t.length === 0)
|
|
4041
4255
|
throw new TypeError("Stylesheet picker options must be a non-empty array");
|
|
4042
4256
|
const r = /* @__PURE__ */ new Set();
|
|
@@ -4051,30 +4265,30 @@ function Rt(t) {
|
|
|
4051
4265
|
r.add(e.value);
|
|
4052
4266
|
}
|
|
4053
4267
|
}
|
|
4054
|
-
function
|
|
4268
|
+
function hi(t) {
|
|
4055
4269
|
const r = t.currentTarget == null ? null : Reflect.get(t.currentTarget, "value");
|
|
4056
4270
|
if (typeof r != "string")
|
|
4057
4271
|
throw new TypeError("Stylesheet picker change requires a select element");
|
|
4058
4272
|
return r;
|
|
4059
4273
|
}
|
|
4060
|
-
class
|
|
4274
|
+
class Wi {
|
|
4061
4275
|
constructor(r = "/") {
|
|
4062
4276
|
a(this, "listeners", /* @__PURE__ */ new Set());
|
|
4063
4277
|
a(this, "entries");
|
|
4064
4278
|
a(this, "index", 0);
|
|
4065
|
-
this.entries = [
|
|
4279
|
+
this.entries = [j(r)];
|
|
4066
4280
|
}
|
|
4067
4281
|
read() {
|
|
4068
4282
|
return this.entries[this.index] ?? "/";
|
|
4069
4283
|
}
|
|
4070
4284
|
href(r) {
|
|
4071
|
-
return
|
|
4285
|
+
return j(r);
|
|
4072
4286
|
}
|
|
4073
4287
|
push(r) {
|
|
4074
|
-
this.entries = this.entries.slice(0, this.index + 1), this.entries.push(
|
|
4288
|
+
this.entries = this.entries.slice(0, this.index + 1), this.entries.push(j(r)), this.index += 1;
|
|
4075
4289
|
}
|
|
4076
4290
|
replace(r) {
|
|
4077
|
-
this.entries[this.index] =
|
|
4291
|
+
this.entries[this.index] = j(r);
|
|
4078
4292
|
}
|
|
4079
4293
|
subscribe(r) {
|
|
4080
4294
|
if (typeof r != "function")
|
|
@@ -4098,16 +4312,16 @@ class Pi {
|
|
|
4098
4312
|
for (const r of [...this.listeners]) r();
|
|
4099
4313
|
}
|
|
4100
4314
|
}
|
|
4101
|
-
function
|
|
4102
|
-
|
|
4103
|
-
const e =
|
|
4315
|
+
function Gi(t = globalThis.window, r = {}) {
|
|
4316
|
+
Vt(t);
|
|
4317
|
+
const e = pi(r.basePath ?? "/");
|
|
4104
4318
|
return {
|
|
4105
4319
|
read() {
|
|
4106
4320
|
const i = t.location.pathname, o = i === e.slice(0, -1) ? "/" : i.startsWith(e) ? `/${i.slice(e.length)}` : i;
|
|
4107
|
-
return
|
|
4321
|
+
return j(`${o}${t.location.search}`);
|
|
4108
4322
|
},
|
|
4109
4323
|
href(i) {
|
|
4110
|
-
const o =
|
|
4324
|
+
const o = j(i);
|
|
4111
4325
|
return `${e}${o.slice(1)}`;
|
|
4112
4326
|
},
|
|
4113
4327
|
push(i) {
|
|
@@ -4121,13 +4335,13 @@ function Ki(t = globalThis.window, r = {}) {
|
|
|
4121
4335
|
}
|
|
4122
4336
|
};
|
|
4123
4337
|
}
|
|
4124
|
-
function
|
|
4125
|
-
return
|
|
4338
|
+
function Yi(t = globalThis.window) {
|
|
4339
|
+
return Vt(t), {
|
|
4126
4340
|
read() {
|
|
4127
|
-
return
|
|
4341
|
+
return j(t.location.hash.slice(1) || "/");
|
|
4128
4342
|
},
|
|
4129
4343
|
href(r) {
|
|
4130
|
-
return `#${
|
|
4344
|
+
return `#${j(r)}`;
|
|
4131
4345
|
},
|
|
4132
4346
|
push(r) {
|
|
4133
4347
|
t.history.pushState(null, "", this.href(r));
|
|
@@ -4147,41 +4361,41 @@ function Mi(t = globalThis.window) {
|
|
|
4147
4361
|
}
|
|
4148
4362
|
};
|
|
4149
4363
|
}
|
|
4150
|
-
function
|
|
4364
|
+
function j(t) {
|
|
4151
4365
|
if (typeof t != "string") throw new TypeError("Route location must be a string");
|
|
4152
4366
|
const r = t.indexOf("#"), e = r < 0 ? t : t.slice(0, r), i = e.indexOf("?"), o = i < 0 ? e : e.slice(0, i), s = i < 0 ? "" : e.slice(i);
|
|
4153
4367
|
return `${(o.startsWith("/") ? o : `/${o}`).replace(/\/{2,}/g, "/").replace(/\/$/, "") || "/"}${s}`;
|
|
4154
4368
|
}
|
|
4155
|
-
function
|
|
4156
|
-
const r =
|
|
4369
|
+
function pi(t) {
|
|
4370
|
+
const r = j(t).split("?")[0] ?? "/";
|
|
4157
4371
|
return r === "/" ? "/" : `${r}/`;
|
|
4158
4372
|
}
|
|
4159
|
-
function
|
|
4373
|
+
function Vt(t) {
|
|
4160
4374
|
if (t == null || typeof t != "object" || !("location" in t) || !("history" in t) || !("addEventListener" in t))
|
|
4161
4375
|
throw new TypeError("Browser navigation requires a window-like target");
|
|
4162
4376
|
}
|
|
4163
|
-
const
|
|
4164
|
-
class
|
|
4377
|
+
const lt = /* @__PURE__ */ new WeakSet(), ct = /* @__PURE__ */ new WeakSet();
|
|
4378
|
+
class Ge {
|
|
4165
4379
|
constructor(r) {
|
|
4166
4380
|
this.target = r, Ce(r), Object.freeze(this);
|
|
4167
4381
|
}
|
|
4168
4382
|
}
|
|
4169
|
-
class
|
|
4383
|
+
class dt extends Error {
|
|
4170
4384
|
constructor(e = "The requested route is unavailable") {
|
|
4171
4385
|
super(e);
|
|
4172
4386
|
a(this, "name", "RouteUnavailableError");
|
|
4173
4387
|
}
|
|
4174
4388
|
}
|
|
4175
|
-
const
|
|
4389
|
+
const Ji = Object.freeze({
|
|
4176
4390
|
parse: (t) => t,
|
|
4177
4391
|
format: (t) => t
|
|
4178
|
-
}),
|
|
4392
|
+
}), Zi = Object.freeze({
|
|
4179
4393
|
parse(t) {
|
|
4180
4394
|
if (t.length !== 1) throw new TypeError("Expected one query value");
|
|
4181
4395
|
return t[0] ?? "";
|
|
4182
4396
|
},
|
|
4183
4397
|
format: (t) => [t]
|
|
4184
|
-
}),
|
|
4398
|
+
}), Xi = Object.freeze({
|
|
4185
4399
|
parse(t) {
|
|
4186
4400
|
if (t.length !== 1 || t[0] !== "true" && t[0] !== "false")
|
|
4187
4401
|
throw new TypeError("Expected one boolean query value");
|
|
@@ -4189,77 +4403,77 @@ const Hi = Object.freeze({
|
|
|
4189
4403
|
},
|
|
4190
4404
|
format: (t) => [String(t)]
|
|
4191
4405
|
});
|
|
4192
|
-
function
|
|
4193
|
-
const e =
|
|
4406
|
+
function eo(t, r = t) {
|
|
4407
|
+
const e = Ye(t, "Route id"), i = gi(r, "Route path"), o = Object.freeze({
|
|
4194
4408
|
id: e,
|
|
4195
4409
|
kind: "literal",
|
|
4196
4410
|
path: i
|
|
4197
4411
|
});
|
|
4198
|
-
return
|
|
4412
|
+
return lt.add(o), o;
|
|
4199
4413
|
}
|
|
4200
|
-
function
|
|
4201
|
-
const i =
|
|
4202
|
-
|
|
4414
|
+
function to(t, r, e = t) {
|
|
4415
|
+
const i = Ye(t, "Route id"), o = Ye(e, "Route parameter name");
|
|
4416
|
+
mi(r);
|
|
4203
4417
|
const s = Object.freeze({
|
|
4204
4418
|
id: i,
|
|
4205
4419
|
kind: "parameter",
|
|
4206
4420
|
name: o,
|
|
4207
4421
|
codec: r
|
|
4208
4422
|
});
|
|
4209
|
-
return
|
|
4423
|
+
return lt.add(s), s;
|
|
4210
4424
|
}
|
|
4211
|
-
function
|
|
4212
|
-
if (
|
|
4425
|
+
function ro(t, r) {
|
|
4426
|
+
if (Q(t), t.kind !== "parameter")
|
|
4213
4427
|
throw new TypeError("routeParameter requires a parameter route");
|
|
4214
4428
|
const e = t.codec.format(r);
|
|
4215
|
-
return
|
|
4429
|
+
return ht(e, t.name), Object.freeze({ route: t, value: r });
|
|
4216
4430
|
}
|
|
4217
|
-
function
|
|
4431
|
+
function io(...t) {
|
|
4218
4432
|
if (t.length === 0) throw new TypeError("routeTarget requires at least one route");
|
|
4219
4433
|
for (const e of t)
|
|
4220
|
-
if (
|
|
4221
|
-
|
|
4222
|
-
else if (
|
|
4434
|
+
if (Ut(e))
|
|
4435
|
+
Q(e.route);
|
|
4436
|
+
else if (Q(e), e.kind !== "literal")
|
|
4223
4437
|
throw new TypeError("Parameter routes require routeParameter(route, value)");
|
|
4224
4438
|
const r = Object.freeze({ routes: Object.freeze([...t]) });
|
|
4225
|
-
return
|
|
4439
|
+
return ct.add(r), r;
|
|
4226
4440
|
}
|
|
4227
|
-
function
|
|
4441
|
+
function oo(t, r) {
|
|
4228
4442
|
if (Ce(t), r == null || typeof r != "object" || Array.isArray(r))
|
|
4229
4443
|
throw new TypeError("Route target query must be an object");
|
|
4230
4444
|
const e = Object.freeze({ routes: t.routes, query: Object.freeze({ ...r }) });
|
|
4231
|
-
return
|
|
4445
|
+
return ct.add(e), e;
|
|
4232
4446
|
}
|
|
4233
|
-
function
|
|
4234
|
-
return new
|
|
4447
|
+
function so(t) {
|
|
4448
|
+
return new Ge(t);
|
|
4235
4449
|
}
|
|
4236
|
-
function
|
|
4237
|
-
return t != null && typeof t == "object" &&
|
|
4450
|
+
function ut(t) {
|
|
4451
|
+
return t != null && typeof t == "object" && lt.has(t);
|
|
4238
4452
|
}
|
|
4239
|
-
function
|
|
4240
|
-
if (!
|
|
4453
|
+
function Q(t) {
|
|
4454
|
+
if (!ut(t))
|
|
4241
4455
|
throw new TypeError("Expected a route created by defineRoute() or defineRouteParameter()");
|
|
4242
4456
|
}
|
|
4243
|
-
function
|
|
4244
|
-
return t != null && typeof t == "object" &&
|
|
4457
|
+
function fi(t) {
|
|
4458
|
+
return t != null && typeof t == "object" && ct.has(t);
|
|
4245
4459
|
}
|
|
4246
4460
|
function Ce(t) {
|
|
4247
|
-
if (!
|
|
4461
|
+
if (!fi(t)) throw new TypeError("Expected a target created by routeTarget()");
|
|
4248
4462
|
}
|
|
4249
|
-
function
|
|
4463
|
+
function mi(t) {
|
|
4250
4464
|
if (t == null || typeof t != "object" || typeof t.parse != "function" || typeof t.format != "function")
|
|
4251
4465
|
throw new TypeError("Route codec requires parse and format functions");
|
|
4252
4466
|
}
|
|
4253
|
-
function
|
|
4467
|
+
function bi(t) {
|
|
4254
4468
|
if (t == null || typeof t != "object" || typeof t.parse != "function" || typeof t.format != "function")
|
|
4255
4469
|
throw new TypeError("Route query codec requires parse and format functions");
|
|
4256
4470
|
}
|
|
4257
|
-
function
|
|
4471
|
+
function Me(t) {
|
|
4258
4472
|
Ce(t);
|
|
4259
4473
|
const r = t.routes.map((o) => {
|
|
4260
|
-
if (
|
|
4474
|
+
if (Ut(o)) {
|
|
4261
4475
|
const s = o.route.codec.format(o.value);
|
|
4262
|
-
return
|
|
4476
|
+
return ht(s, o.route.name), encodeURIComponent(s);
|
|
4263
4477
|
}
|
|
4264
4478
|
return encodeURIComponent(o.path);
|
|
4265
4479
|
}), e = new URLSearchParams();
|
|
@@ -4271,30 +4485,30 @@ function Ke(t) {
|
|
|
4271
4485
|
const i = e.toString();
|
|
4272
4486
|
return `/${r.join("/")}${i === "" ? "" : `?${i}`}`;
|
|
4273
4487
|
}
|
|
4274
|
-
function
|
|
4275
|
-
return t != null && typeof t == "object" && "route" in t && "value" in t &&
|
|
4488
|
+
function Ut(t) {
|
|
4489
|
+
return t != null && typeof t == "object" && "route" in t && "value" in t && ut(t.route) && t.route.kind === "parameter";
|
|
4276
4490
|
}
|
|
4277
|
-
function
|
|
4491
|
+
function Ye(t, r) {
|
|
4278
4492
|
if (typeof t != "string" || !/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(t))
|
|
4279
4493
|
throw new TypeError(`${r} must be a lowercase kebab-case name`);
|
|
4280
4494
|
return t;
|
|
4281
4495
|
}
|
|
4282
|
-
function
|
|
4496
|
+
function gi(t, r) {
|
|
4283
4497
|
if (typeof t != "string" || t === "" || t === "." || t === ".." || t.includes("/") || t.includes("?") || t.includes("#"))
|
|
4284
4498
|
throw new TypeError(`${r} must be one non-empty path segment`);
|
|
4285
4499
|
try {
|
|
4286
|
-
|
|
4500
|
+
ht(decodeURIComponent(t), r);
|
|
4287
4501
|
} catch {
|
|
4288
4502
|
throw new TypeError(`${r} must use valid percent encoding`);
|
|
4289
4503
|
}
|
|
4290
4504
|
return t;
|
|
4291
4505
|
}
|
|
4292
|
-
function
|
|
4506
|
+
function ht(t, r) {
|
|
4293
4507
|
if (typeof t != "string" || t === "" || t.includes("/"))
|
|
4294
4508
|
throw new TypeError(`${r} codec must format one non-empty path segment`);
|
|
4295
4509
|
}
|
|
4296
|
-
const
|
|
4297
|
-
class
|
|
4510
|
+
const yi = 16;
|
|
4511
|
+
class wi {
|
|
4298
4512
|
constructor(r) {
|
|
4299
4513
|
a(this, "root");
|
|
4300
4514
|
a(this, "transition");
|
|
@@ -4312,22 +4526,22 @@ class ui {
|
|
|
4312
4526
|
a(this, "applying", 0);
|
|
4313
4527
|
a(this, "syncQueued", !1);
|
|
4314
4528
|
a(this, "disposed", !1);
|
|
4315
|
-
this.adapter = r,
|
|
4529
|
+
this.adapter = r, Ci(r), this.root = Object.freeze({
|
|
4316
4530
|
route: null,
|
|
4317
4531
|
parent: null,
|
|
4318
4532
|
segment: null,
|
|
4319
4533
|
value: null,
|
|
4320
4534
|
pathname: "/"
|
|
4321
|
-
}), Se.set(this.root, this), this.activeContext = this.root, this.requested =
|
|
4535
|
+
}), Se.set(this.root, this), this.activeContext = this.root, this.requested = He(r.read());
|
|
4322
4536
|
const e = Object.freeze({
|
|
4323
4537
|
state: "pending",
|
|
4324
4538
|
requestedLocation: this.requested.location,
|
|
4325
4539
|
settledLocation: "/"
|
|
4326
4540
|
});
|
|
4327
|
-
this.transitionEmitter = new
|
|
4541
|
+
this.transitionEmitter = new S(e, {
|
|
4328
4542
|
owner: this,
|
|
4329
4543
|
purpose: "browser route transition"
|
|
4330
|
-
}), this.issueEmitter = new
|
|
4544
|
+
}), this.issueEmitter = new S(null, {
|
|
4331
4545
|
owner: this,
|
|
4332
4546
|
purpose: "browser route issue"
|
|
4333
4547
|
}), this.transition = this.transitionEmitter, this.issue = this.issueEmitter, this.adapterUnsubscribe = r.subscribe(() => {
|
|
@@ -4335,7 +4549,7 @@ class ui {
|
|
|
4335
4549
|
}), this.startTransition(this.requested.location, 0, !1);
|
|
4336
4550
|
}
|
|
4337
4551
|
openScope(r, e) {
|
|
4338
|
-
this.assertActive(),
|
|
4552
|
+
this.assertActive(), H(r, this), ge(e);
|
|
4339
4553
|
const i = this.scope(r);
|
|
4340
4554
|
if (i.owners.has(e)) throw new Error("Route scope owner is already registered");
|
|
4341
4555
|
i.owners.set(e, { complete: !1 }), this.wakeRegistry();
|
|
@@ -4345,46 +4559,46 @@ class ui {
|
|
|
4345
4559
|
};
|
|
4346
4560
|
}
|
|
4347
4561
|
completeScope(r, e) {
|
|
4348
|
-
this.assertActive(),
|
|
4562
|
+
this.assertActive(), H(r, this);
|
|
4349
4563
|
const i = this.scope(r).owners.get(e);
|
|
4350
4564
|
if (i == null) throw new Error("Cannot complete an unopened route scope");
|
|
4351
|
-
|
|
4565
|
+
vi(this.scope(r)), i.complete = !0, this.wakeRegistry();
|
|
4352
4566
|
}
|
|
4353
4567
|
registerSelectionRoutes(r, e, i, o) {
|
|
4354
|
-
if (this.assertActive(),
|
|
4568
|
+
if (this.assertActive(), H(r, this), ge(e), !Array.isArray(i)) throw new TypeError("Route bindings must be an array");
|
|
4355
4569
|
if (typeof o != "function")
|
|
4356
4570
|
throw new TypeError("Selection route registration requires a subscriber");
|
|
4357
4571
|
const s = this.scope(r), n = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Set();
|
|
4358
4572
|
for (const u of i) {
|
|
4359
|
-
if (
|
|
4573
|
+
if (Q(u.route), u.route.kind !== "literal")
|
|
4360
4574
|
throw new TypeError("Tab routes must use literal route descriptors");
|
|
4361
4575
|
if (l.has(u.route) || s.entries.has(u.route))
|
|
4362
4576
|
throw new Error(`Duplicate route in one scope: ${u.route.id}`);
|
|
4363
4577
|
l.add(u.route);
|
|
4364
|
-
const
|
|
4578
|
+
const p = this.literalContext(r, u.route), b = {
|
|
4365
4579
|
owner: e,
|
|
4366
4580
|
descriptor: u.route,
|
|
4367
4581
|
parent: r,
|
|
4368
|
-
match: (f) =>
|
|
4582
|
+
match: (f) => Ve(f) === u.route.path ? { value: null } : null,
|
|
4369
4583
|
currentValue: () => u.active() ? null : void 0,
|
|
4370
|
-
activate: async (f, m,
|
|
4584
|
+
activate: async (f, m, R) => {
|
|
4371
4585
|
if (u.disabled)
|
|
4372
|
-
throw new
|
|
4586
|
+
throw new dt(
|
|
4373
4587
|
`Route "${u.route.id}" is currently disabled`
|
|
4374
4588
|
);
|
|
4375
|
-
if (
|
|
4376
|
-
return await u.activate(
|
|
4589
|
+
if (R.aborted) throw R.reason;
|
|
4590
|
+
return await u.activate(R), f;
|
|
4377
4591
|
},
|
|
4378
|
-
context: () =>
|
|
4592
|
+
context: () => p,
|
|
4379
4593
|
disposeSubscription: () => {
|
|
4380
4594
|
}
|
|
4381
4595
|
};
|
|
4382
|
-
s.entries.set(u.route, b), n.set(u.route,
|
|
4596
|
+
s.entries.set(u.route, b), n.set(u.route, p);
|
|
4383
4597
|
}
|
|
4384
4598
|
const c = o(() => this.scheduleStateSync());
|
|
4385
4599
|
for (const u of l) {
|
|
4386
|
-
const
|
|
4387
|
-
|
|
4600
|
+
const p = s.entries.get(u);
|
|
4601
|
+
p != null && (p.disposeSubscription = c);
|
|
4388
4602
|
}
|
|
4389
4603
|
return this.wakeRegistry(), n;
|
|
4390
4604
|
}
|
|
@@ -4393,9 +4607,9 @@ class ui {
|
|
|
4393
4607
|
i != null && (this.removeOwnerEntries(i, e), this.wakeRegistry());
|
|
4394
4608
|
}
|
|
4395
4609
|
registerValueRoute(r, e, i) {
|
|
4396
|
-
if (this.assertActive(),
|
|
4610
|
+
if (this.assertActive(), H(r, this), ge(e), Q(i.route), i.route.kind !== "parameter")
|
|
4397
4611
|
throw new TypeError("Value routes require a parameter route descriptor");
|
|
4398
|
-
if (
|
|
4612
|
+
if (jt(i.valueEmitter, "Value route emitter"), i.resolve != null && typeof i.resolve != "function")
|
|
4399
4613
|
throw new TypeError("Value route resolver must be a function");
|
|
4400
4614
|
const o = this.scope(r);
|
|
4401
4615
|
if (o.entries.has(i.route))
|
|
@@ -4407,17 +4621,17 @@ class ui {
|
|
|
4407
4621
|
descriptor: i.route,
|
|
4408
4622
|
parent: r,
|
|
4409
4623
|
match: (u) => {
|
|
4410
|
-
const
|
|
4411
|
-
if (i.route.codec.format(b) !==
|
|
4624
|
+
const p = Ve(u), b = i.route.codec.parse(p);
|
|
4625
|
+
if (i.route.codec.format(b) !== p)
|
|
4412
4626
|
throw new TypeError(
|
|
4413
4627
|
`Route parameter "${i.route.name}" does not round-trip`
|
|
4414
4628
|
);
|
|
4415
4629
|
return { value: b };
|
|
4416
4630
|
},
|
|
4417
4631
|
currentValue: () => i.valueEmitter.get(),
|
|
4418
|
-
activate: async (u,
|
|
4419
|
-
const f = u.value, m = i.resolve == null ? f : await i.resolve(f,
|
|
4420
|
-
if (m instanceof
|
|
4632
|
+
activate: async (u, p, b) => {
|
|
4633
|
+
const f = u.value, m = i.resolve == null ? f : await i.resolve(f, p, b);
|
|
4634
|
+
if (m instanceof Ge) return m;
|
|
4421
4635
|
if (b.aborted) throw b.reason;
|
|
4422
4636
|
return this.withApplication(() => i.valueEmitter.set(
|
|
4423
4637
|
m,
|
|
@@ -4430,7 +4644,7 @@ class ui {
|
|
|
4430
4644
|
o.entries.set(i.route, l), this.wakeRegistry();
|
|
4431
4645
|
let c = !0;
|
|
4432
4646
|
return {
|
|
4433
|
-
context:
|
|
4647
|
+
context: Ri(i.valueEmitter, s, r),
|
|
4434
4648
|
contextFor: s,
|
|
4435
4649
|
dispose: () => {
|
|
4436
4650
|
if (!c) return;
|
|
@@ -4439,9 +4653,9 @@ class ui {
|
|
|
4439
4653
|
};
|
|
4440
4654
|
}
|
|
4441
4655
|
registerQuery(r, e, i) {
|
|
4442
|
-
this.assertActive(),
|
|
4443
|
-
const o =
|
|
4444
|
-
|
|
4656
|
+
this.assertActive(), H(r, this), ge(e);
|
|
4657
|
+
const o = Ti(i.name);
|
|
4658
|
+
jt(i.valueEmitter, "Route query emitter"), bi(i.codec);
|
|
4445
4659
|
const s = i.equals ?? Object.is;
|
|
4446
4660
|
if (typeof s != "function") throw new TypeError("Route query equals must be a function");
|
|
4447
4661
|
const n = this.scope(r);
|
|
@@ -4467,7 +4681,7 @@ class ui {
|
|
|
4467
4681
|
}
|
|
4468
4682
|
navigate(r, e = {}) {
|
|
4469
4683
|
this.assertActive();
|
|
4470
|
-
const i = ye(r) ? this.formatContext(r) :
|
|
4684
|
+
const i = ye(r) ? this.formatContext(r) : Me(_e(r));
|
|
4471
4685
|
return this.issueEmitter.set(null, "explicit route navigation"), (e.history ?? "push") === "replace" ? this.adapter.replace(i) : this.adapter.push(i), this.startTransition(i, 0, !0);
|
|
4472
4686
|
}
|
|
4473
4687
|
redirect(r) {
|
|
@@ -4475,12 +4689,12 @@ class ui {
|
|
|
4475
4689
|
}
|
|
4476
4690
|
href(r) {
|
|
4477
4691
|
this.assertActive();
|
|
4478
|
-
const e = ye(r) ? this.formatContext(r) :
|
|
4692
|
+
const e = ye(r) ? this.formatContext(r) : Me(_e(r));
|
|
4479
4693
|
return this.adapter.href(e);
|
|
4480
4694
|
}
|
|
4481
4695
|
resolve(r, e) {
|
|
4482
4696
|
var o;
|
|
4483
|
-
|
|
4697
|
+
Q(r), H(e, this);
|
|
4484
4698
|
let i = e;
|
|
4485
4699
|
for (; i != null; ) {
|
|
4486
4700
|
const s = (o = this.scopes.get(i)) == null ? void 0 : o.entries.get(r);
|
|
@@ -4500,8 +4714,8 @@ class ui {
|
|
|
4500
4714
|
return this.formatStateLocation();
|
|
4501
4715
|
}
|
|
4502
4716
|
isActive(r, e = !1) {
|
|
4503
|
-
const i = ye(r) ? r : this.resolveTargetContext(
|
|
4504
|
-
return e ? i === this.activeContext :
|
|
4717
|
+
const i = ye(r) ? r : this.resolveTargetContext(_e(r));
|
|
4718
|
+
return e ? i === this.activeContext : At(i, this.activeContext);
|
|
4505
4719
|
}
|
|
4506
4720
|
dispose() {
|
|
4507
4721
|
var r;
|
|
@@ -4520,7 +4734,7 @@ class ui {
|
|
|
4520
4734
|
var s;
|
|
4521
4735
|
this.assertActive(), (s = this.controller) == null || s.abort(new DOMException("Navigation superseded", "AbortError"));
|
|
4522
4736
|
const o = new AbortController();
|
|
4523
|
-
return this.controller = o, this.requested =
|
|
4737
|
+
return this.controller = o, this.requested = He(r), i && this.issueEmitter.set(null, "route transition started"), this.transitionEmitter.set(Object.freeze({
|
|
4524
4738
|
state: "pending",
|
|
4525
4739
|
requestedLocation: this.requested.location,
|
|
4526
4740
|
settledLocation: this.formatContext(this.activeContext)
|
|
@@ -4534,15 +4748,15 @@ class ui {
|
|
|
4534
4748
|
const n = /* @__PURE__ */ new Map();
|
|
4535
4749
|
for (const c of r.segments) {
|
|
4536
4750
|
const u = await this.waitForCompleteScope(s, o);
|
|
4537
|
-
let
|
|
4751
|
+
let p;
|
|
4538
4752
|
try {
|
|
4539
|
-
|
|
4753
|
+
p = Ei(u, c);
|
|
4540
4754
|
} catch (f) {
|
|
4541
|
-
this.fallback(r, s, null,
|
|
4755
|
+
this.fallback(r, s, null, Ue(f));
|
|
4542
4756
|
return;
|
|
4543
4757
|
}
|
|
4544
|
-
if (
|
|
4545
|
-
this.fallback(r, s, null, `Unknown route segment "${
|
|
4758
|
+
if (p == null) {
|
|
4759
|
+
this.fallback(r, s, null, `Unknown route segment "${Ve(c)}"`);
|
|
4546
4760
|
return;
|
|
4547
4761
|
}
|
|
4548
4762
|
const b = Object.freeze({
|
|
@@ -4550,28 +4764,28 @@ class ui {
|
|
|
4550
4764
|
resolvedValues: n
|
|
4551
4765
|
});
|
|
4552
4766
|
try {
|
|
4553
|
-
const f = await
|
|
4554
|
-
if (f instanceof
|
|
4555
|
-
if (i >=
|
|
4556
|
-
this.fallback(r, s,
|
|
4767
|
+
const f = await p.entry.activate(p.match, b, o);
|
|
4768
|
+
if (f instanceof Ge) {
|
|
4769
|
+
if (i >= yi) {
|
|
4770
|
+
this.fallback(r, s, p.entry.descriptor, "Too many route redirects");
|
|
4557
4771
|
return;
|
|
4558
4772
|
}
|
|
4559
|
-
const m =
|
|
4773
|
+
const m = Me(f.target);
|
|
4560
4774
|
this.adapter.replace(m), await this.startTransition(m, i + 1, !1);
|
|
4561
4775
|
return;
|
|
4562
4776
|
}
|
|
4563
|
-
|
|
4777
|
+
p = { entry: p.entry, match: f };
|
|
4564
4778
|
} catch (f) {
|
|
4565
4779
|
if (o.aborted) return;
|
|
4566
4780
|
this.fallback(
|
|
4567
4781
|
r,
|
|
4568
4782
|
s,
|
|
4569
|
-
|
|
4570
|
-
|
|
4783
|
+
p.entry.descriptor,
|
|
4784
|
+
Ue(f)
|
|
4571
4785
|
);
|
|
4572
4786
|
return;
|
|
4573
4787
|
}
|
|
4574
|
-
n.set(
|
|
4788
|
+
n.set(p.entry.descriptor, p.match.value), s = p.entry.context(p.match.value);
|
|
4575
4789
|
}
|
|
4576
4790
|
if (o.aborted || (s === this.root && (await this.waitForCompleteScope(this.root, o), s = this.findActiveContext()), o.aborted)) return;
|
|
4577
4791
|
this.activeContext = s, this.applyQueriesInLineage(s, r);
|
|
@@ -4586,7 +4800,7 @@ class ui {
|
|
|
4586
4800
|
for (; ; ) {
|
|
4587
4801
|
if (e.aborted) throw e.reason;
|
|
4588
4802
|
const i = this.scopes.get(r);
|
|
4589
|
-
if (i != null &&
|
|
4803
|
+
if (i != null && xi(i)) return i;
|
|
4590
4804
|
await this.waitForRegistryChange(e);
|
|
4591
4805
|
}
|
|
4592
4806
|
}
|
|
@@ -4635,7 +4849,7 @@ class ui {
|
|
|
4635
4849
|
return this.cachedContext(r, e, o, i);
|
|
4636
4850
|
}
|
|
4637
4851
|
cachedContext(r, e, i, o) {
|
|
4638
|
-
const s =
|
|
4852
|
+
const s = Si(r.pathname, i), n = `${Ii(r)}\0${e.id}\0${i}`, l = this.contextCache.get(n);
|
|
4639
4853
|
if (l != null) return l;
|
|
4640
4854
|
const c = Object.freeze({ route: e, parent: r, segment: i, value: o, pathname: s });
|
|
4641
4855
|
return Se.set(c, this), this.contextCache.set(n, c), c;
|
|
@@ -4658,7 +4872,7 @@ class ui {
|
|
|
4658
4872
|
this.applying > 0 || this.disposed || this.syncQueued || (this.syncQueued = !0, queueMicrotask(() => {
|
|
4659
4873
|
if (this.syncQueued = !1, this.applying > 0 || this.disposed || this.transitionEmitter.get().state === "pending") return;
|
|
4660
4874
|
const r = this.formatStateLocation();
|
|
4661
|
-
r !== this.adapter.read() && this.adapter.replace(r), this.requested =
|
|
4875
|
+
r !== this.adapter.read() && this.adapter.replace(r), this.requested = He(r), this.activeContext = this.findActiveContext(), this.transitionEmitter.set(Object.freeze({
|
|
4662
4876
|
...this.transitionEmitter.get(),
|
|
4663
4877
|
state: "idle",
|
|
4664
4878
|
settledLocation: r
|
|
@@ -4685,7 +4899,7 @@ class ui {
|
|
|
4685
4899
|
formatContext(r) {
|
|
4686
4900
|
const e = new URLSearchParams(this.requested.search);
|
|
4687
4901
|
for (const o of this.knownQueryNames) e.delete(o);
|
|
4688
|
-
for (const o of
|
|
4902
|
+
for (const o of Ot(r)) {
|
|
4689
4903
|
const s = this.scopes.get(o);
|
|
4690
4904
|
if (s != null)
|
|
4691
4905
|
for (const n of [...s.queries.values()].sort((l, c) => l.name.localeCompare(c.name))) {
|
|
@@ -4701,7 +4915,7 @@ class ui {
|
|
|
4701
4915
|
return `${r.pathname}${i === "" ? "" : `?${i}`}`;
|
|
4702
4916
|
}
|
|
4703
4917
|
applyQueriesInLineage(r, e) {
|
|
4704
|
-
for (const i of
|
|
4918
|
+
for (const i of Ot(r)) {
|
|
4705
4919
|
const o = this.scopes.get(i);
|
|
4706
4920
|
if (o != null)
|
|
4707
4921
|
for (const s of o.queries.values()) this.applyQueryEntry(s, e);
|
|
@@ -4709,7 +4923,7 @@ class ui {
|
|
|
4709
4923
|
}
|
|
4710
4924
|
applyQueryEntry(r, e) {
|
|
4711
4925
|
var o;
|
|
4712
|
-
if (!
|
|
4926
|
+
if (!At(r.context, this.activeContext) && !ki(r.context.pathname, e.pathname)) return;
|
|
4713
4927
|
const i = e.search.getAll(r.name);
|
|
4714
4928
|
try {
|
|
4715
4929
|
const s = i.length === 0 ? r.defaultValue : r.codec.parse(i);
|
|
@@ -4725,7 +4939,7 @@ class ui {
|
|
|
4725
4939
|
this.adapter.replace(l), this.issueEmitter.set(Object.freeze({
|
|
4726
4940
|
requestedLocation: e.location,
|
|
4727
4941
|
failedRouteId: ((o = r.context.route) == null ? void 0 : o.id) ?? null,
|
|
4728
|
-
reason:
|
|
4942
|
+
reason: Ue(s),
|
|
4729
4943
|
fallbackLocation: l
|
|
4730
4944
|
}), "invalid route query");
|
|
4731
4945
|
}
|
|
@@ -4743,12 +4957,12 @@ class ui {
|
|
|
4743
4957
|
}
|
|
4744
4958
|
}
|
|
4745
4959
|
const Se = /* @__PURE__ */ new WeakMap();
|
|
4746
|
-
function
|
|
4960
|
+
function no(t) {
|
|
4747
4961
|
if (t == null || typeof t != "object" || Array.isArray(t))
|
|
4748
4962
|
throw new TypeError("Browser router options must be an object");
|
|
4749
|
-
return new
|
|
4963
|
+
return new wi(t.adapter);
|
|
4750
4964
|
}
|
|
4751
|
-
function
|
|
4965
|
+
function ao(t, r, e) {
|
|
4752
4966
|
if (t == null || typeof t.subscribe != "function")
|
|
4753
4967
|
throw new TypeError("waitForRouteValue requires a readable emitter");
|
|
4754
4968
|
if (typeof r != "function")
|
|
@@ -4756,26 +4970,26 @@ function Zi(t, r, e) {
|
|
|
4756
4970
|
return new Promise((i, o) => {
|
|
4757
4971
|
let s = !1, n = () => {
|
|
4758
4972
|
};
|
|
4759
|
-
const l = (
|
|
4760
|
-
s || (s = !0, n(), e.removeEventListener("abort", c),
|
|
4973
|
+
const l = (p) => {
|
|
4974
|
+
s || (s = !0, n(), e.removeEventListener("abort", c), p());
|
|
4761
4975
|
}, c = () => {
|
|
4762
4976
|
l(() => o(e.reason));
|
|
4763
|
-
}, u = (
|
|
4977
|
+
}, u = (p, b, f) => {
|
|
4764
4978
|
b === "error" ? l(() => o(
|
|
4765
|
-
f ?? new
|
|
4766
|
-
)) : r(
|
|
4979
|
+
f ?? new dt("Route prerequisite failed")
|
|
4980
|
+
)) : r(p) && l(() => i(p));
|
|
4767
4981
|
};
|
|
4768
4982
|
if (e.aborted) {
|
|
4769
4983
|
c();
|
|
4770
4984
|
return;
|
|
4771
4985
|
}
|
|
4772
|
-
u(t.get(), t.getFetchState(), t.getError()), !s && (n = t.subscribe(({ value:
|
|
4773
|
-
u(
|
|
4986
|
+
u(t.get(), t.getFetchState(), t.getError()), !s && (n = t.subscribe(({ value: p, fetchState: b, error: f }) => {
|
|
4987
|
+
u(p, b, f);
|
|
4774
4988
|
}, { emitCurrent: !1 }), s ? n() : e.addEventListener("abort", c, { once: !0 }));
|
|
4775
4989
|
});
|
|
4776
4990
|
}
|
|
4777
|
-
function
|
|
4778
|
-
const r =
|
|
4991
|
+
function He(t) {
|
|
4992
|
+
const r = j(t), e = r.indexOf("?"), i = e < 0 ? r : r.slice(0, e), o = e < 0 ? "" : r.slice(e + 1), s = i.split("/").filter(Boolean);
|
|
4779
4993
|
return Object.freeze({
|
|
4780
4994
|
location: r,
|
|
4781
4995
|
pathname: i,
|
|
@@ -4783,7 +4997,7 @@ function Me(t) {
|
|
|
4783
4997
|
search: new URLSearchParams(o)
|
|
4784
4998
|
});
|
|
4785
4999
|
}
|
|
4786
|
-
function
|
|
5000
|
+
function vi(t) {
|
|
4787
5001
|
const r = /* @__PURE__ */ new Set(), e = /* @__PURE__ */ new Set();
|
|
4788
5002
|
let i = null;
|
|
4789
5003
|
for (const o of t.entries.values()) {
|
|
@@ -4802,7 +5016,7 @@ function hi(t) {
|
|
|
4802
5016
|
}
|
|
4803
5017
|
}
|
|
4804
5018
|
}
|
|
4805
|
-
function
|
|
5019
|
+
function Ei(t, r) {
|
|
4806
5020
|
const e = [...t.entries.values()].sort((i, o) => i.descriptor.kind === o.descriptor.kind ? 0 : i.descriptor.kind === "literal" ? -1 : 1);
|
|
4807
5021
|
for (const i of e) {
|
|
4808
5022
|
const o = i.match(r);
|
|
@@ -4810,17 +5024,17 @@ function pi(t, r) {
|
|
|
4810
5024
|
}
|
|
4811
5025
|
return null;
|
|
4812
5026
|
}
|
|
4813
|
-
function
|
|
5027
|
+
function xi(t) {
|
|
4814
5028
|
return t.owners.size > 0 && [...t.owners.values()].every(({ complete: r }) => r);
|
|
4815
5029
|
}
|
|
4816
|
-
function
|
|
5030
|
+
function Ot(t) {
|
|
4817
5031
|
const r = [];
|
|
4818
5032
|
let e = t;
|
|
4819
5033
|
for (; e != null; )
|
|
4820
5034
|
r.unshift(e), e = e.parent;
|
|
4821
5035
|
return r;
|
|
4822
5036
|
}
|
|
4823
|
-
function
|
|
5037
|
+
function At(t, r) {
|
|
4824
5038
|
let e = r;
|
|
4825
5039
|
for (; e != null; ) {
|
|
4826
5040
|
if (e === t) return !0;
|
|
@@ -4828,45 +5042,45 @@ function zt(t, r) {
|
|
|
4828
5042
|
}
|
|
4829
5043
|
return !1;
|
|
4830
5044
|
}
|
|
4831
|
-
function
|
|
5045
|
+
function ki(t, r) {
|
|
4832
5046
|
return t === "/" || r === t || r.startsWith(`${t}/`);
|
|
4833
5047
|
}
|
|
4834
|
-
function
|
|
5048
|
+
function Si(t, r) {
|
|
4835
5049
|
return `${t === "/" ? "" : t}/${encodeURIComponent(r)}`;
|
|
4836
5050
|
}
|
|
4837
|
-
function
|
|
5051
|
+
function Ii(t) {
|
|
4838
5052
|
return t.pathname;
|
|
4839
5053
|
}
|
|
4840
|
-
function
|
|
5054
|
+
function Ve(t) {
|
|
4841
5055
|
try {
|
|
4842
5056
|
return decodeURIComponent(t);
|
|
4843
5057
|
} catch {
|
|
4844
|
-
throw new
|
|
5058
|
+
throw new dt("Route contains malformed percent encoding");
|
|
4845
5059
|
}
|
|
4846
5060
|
}
|
|
4847
|
-
function
|
|
5061
|
+
function Ti(t) {
|
|
4848
5062
|
if (typeof t != "string" || !/^[A-Za-z][A-Za-z0-9_.-]*$/.test(t))
|
|
4849
5063
|
throw new TypeError("Route query name must start with a letter and use URL-safe characters");
|
|
4850
5064
|
return t;
|
|
4851
5065
|
}
|
|
4852
|
-
function
|
|
5066
|
+
function Ue(t) {
|
|
4853
5067
|
return t instanceof Error && t.message !== "" ? t.message : "The requested route could not be resolved";
|
|
4854
5068
|
}
|
|
4855
|
-
function
|
|
5069
|
+
function Ri(t, r, e) {
|
|
4856
5070
|
const i = t.get();
|
|
4857
5071
|
return i == null ? e : r(i);
|
|
4858
5072
|
}
|
|
4859
|
-
function
|
|
5073
|
+
function _e(t) {
|
|
4860
5074
|
return Ce(t), t;
|
|
4861
5075
|
}
|
|
4862
5076
|
function ye(t) {
|
|
4863
5077
|
return t != null && typeof t == "object" && Se.has(t);
|
|
4864
5078
|
}
|
|
4865
|
-
function
|
|
5079
|
+
function H(t, r) {
|
|
4866
5080
|
if (t !== r.root && (!ye(t) || Se.get(t) !== r))
|
|
4867
5081
|
throw new TypeError("Resolved route does not belong to this router");
|
|
4868
5082
|
}
|
|
4869
|
-
function
|
|
5083
|
+
function Ci(t) {
|
|
4870
5084
|
if (t == null || typeof t != "object" || typeof Reflect.get(t, "read") != "function" || typeof Reflect.get(t, "href") != "function" || typeof Reflect.get(t, "push") != "function" || typeof Reflect.get(t, "replace") != "function" || typeof Reflect.get(t, "subscribe") != "function")
|
|
4871
5085
|
throw new TypeError("BrowserRouter requires a navigation adapter");
|
|
4872
5086
|
}
|
|
@@ -4874,11 +5088,11 @@ function ge(t) {
|
|
|
4874
5088
|
if (t == null || typeof t != "object" && typeof t != "function")
|
|
4875
5089
|
throw new TypeError("Route registration owner must be an object");
|
|
4876
5090
|
}
|
|
4877
|
-
function
|
|
5091
|
+
function jt(t, r) {
|
|
4878
5092
|
if (t == null || typeof t != "object" || typeof Reflect.get(t, "get") != "function" || typeof Reflect.get(t, "set") != "function" || typeof Reflect.get(t, "subscribe") != "function")
|
|
4879
5093
|
throw new TypeError(`${r} must be a writable emitter`);
|
|
4880
5094
|
}
|
|
4881
|
-
class
|
|
5095
|
+
class zi extends g {
|
|
4882
5096
|
initialize() {
|
|
4883
5097
|
const r = this._runtime.router;
|
|
4884
5098
|
if (r == null) throw new Error("RouteLink requires a router in FrayRuntime");
|
|
@@ -4887,28 +5101,28 @@ class Ei extends g {
|
|
|
4887
5101
|
render() {
|
|
4888
5102
|
const r = this._runtime.router;
|
|
4889
5103
|
if (r == null) throw new Error("RouteLink requires a router in FrayRuntime");
|
|
4890
|
-
const e =
|
|
5104
|
+
const e = ut(this.props.to) ? r.resolve(this.props.to, this._routeContext ?? r.root) : this.props.to, {
|
|
4891
5105
|
to: i,
|
|
4892
5106
|
exact: o = !1,
|
|
4893
5107
|
children: s = [],
|
|
4894
5108
|
onClick: n,
|
|
4895
5109
|
...l
|
|
4896
5110
|
} = this.props;
|
|
4897
|
-
return
|
|
5111
|
+
return se("a", {
|
|
4898
5112
|
...l,
|
|
4899
5113
|
href: r.href(e),
|
|
4900
5114
|
"aria-current": r.isActive(e, o) ? "page" : null,
|
|
4901
5115
|
onClick: (c) => {
|
|
4902
|
-
n == null || n(c),
|
|
5116
|
+
n == null || n(c), $i(c, l.target, l.download) && (c.preventDefault(), r.navigate(e));
|
|
4903
5117
|
}
|
|
4904
5118
|
}, s);
|
|
4905
5119
|
}
|
|
4906
5120
|
}
|
|
4907
|
-
a(
|
|
4908
|
-
function
|
|
5121
|
+
a(zi, "liveProps", []);
|
|
5122
|
+
function $i(t, r, e) {
|
|
4909
5123
|
return !(t.defaultPrevented || t.button !== 0 || t.metaKey || t.ctrlKey || t.shiftKey || t.altKey || e != null && e !== !1 || r != null && r !== "" && r !== "_self");
|
|
4910
5124
|
}
|
|
4911
|
-
class
|
|
5125
|
+
class Oi extends g {
|
|
4912
5126
|
constructor() {
|
|
4913
5127
|
super(...arguments);
|
|
4914
5128
|
a(this, "unregister", null);
|
|
@@ -4926,15 +5140,15 @@ class ki extends g {
|
|
|
4926
5140
|
});
|
|
4927
5141
|
}
|
|
4928
5142
|
render() {
|
|
4929
|
-
return
|
|
5143
|
+
return se(Ie, null, this.props.children ?? []);
|
|
4930
5144
|
}
|
|
4931
5145
|
onDestroy() {
|
|
4932
5146
|
var e;
|
|
4933
5147
|
(e = this.unregister) == null || e.call(this), this.unregister = null;
|
|
4934
5148
|
}
|
|
4935
5149
|
}
|
|
4936
|
-
a(
|
|
4937
|
-
class
|
|
5150
|
+
a(Oi, "liveProps", []);
|
|
5151
|
+
class Ai extends g {
|
|
4938
5152
|
constructor() {
|
|
4939
5153
|
super(...arguments);
|
|
4940
5154
|
a(this, "registration", null);
|
|
@@ -4951,7 +5165,7 @@ class Si extends g {
|
|
|
4951
5165
|
}
|
|
4952
5166
|
render() {
|
|
4953
5167
|
const e = this.props.valueEmitter.get(), i = this.props.children ?? [];
|
|
4954
|
-
return !this.props.scopeChildren || e == null || this.registration == null ?
|
|
5168
|
+
return !this.props.scopeChildren || e == null || this.registration == null ? se(Ie, null, i) : se(Ee, {
|
|
4955
5169
|
key: this.registration.contextFor(e).pathname,
|
|
4956
5170
|
context: this.registration.contextFor(e),
|
|
4957
5171
|
children: i
|
|
@@ -4962,122 +5176,126 @@ class Si extends g {
|
|
|
4962
5176
|
(e = this.registration) == null || e.dispose(), this.registration = null;
|
|
4963
5177
|
}
|
|
4964
5178
|
}
|
|
4965
|
-
a(
|
|
5179
|
+
a(Ai, "liveProps", []);
|
|
4966
5180
|
export {
|
|
4967
|
-
|
|
4968
|
-
|
|
5181
|
+
Kt as BaseSelectionHandler,
|
|
5182
|
+
wi as BrowserRouter,
|
|
4969
5183
|
ie as Button,
|
|
4970
|
-
|
|
4971
|
-
|
|
5184
|
+
A as Checkbox,
|
|
5185
|
+
ui as ColorPicker,
|
|
4972
5186
|
g as Component,
|
|
4973
5187
|
he as DataTable,
|
|
4974
|
-
|
|
4975
|
-
|
|
5188
|
+
kr as DefaultTableFilterEncoding,
|
|
5189
|
+
Dt as DescriptionItem,
|
|
4976
5190
|
de as DescriptionList,
|
|
4977
5191
|
fe as Dialog,
|
|
4978
|
-
|
|
4979
|
-
|
|
4980
|
-
|
|
5192
|
+
Ae as Dropdown,
|
|
5193
|
+
v as FilterMode,
|
|
5194
|
+
V as FilterPanel,
|
|
4981
5195
|
Ie as Fragment,
|
|
4982
|
-
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
5196
|
+
wt as FrayApp,
|
|
5197
|
+
Bt as FrayRuntime,
|
|
5198
|
+
Z as GroupPanel,
|
|
5199
|
+
N as Header,
|
|
5200
|
+
Xr as Label,
|
|
4986
5201
|
ue as ListView,
|
|
4987
|
-
|
|
4988
|
-
|
|
5202
|
+
Wi as MemoryNavigationAdapter,
|
|
5203
|
+
ar as MultiSelectionHandler,
|
|
5204
|
+
ze as OptionGroup,
|
|
5205
|
+
vt as OptionsPanel,
|
|
4989
5206
|
le as Panel,
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
5207
|
+
M as Placeholder,
|
|
5208
|
+
De as ProgressBar,
|
|
5209
|
+
Rt as QuadCheckbox,
|
|
4993
5210
|
oe as RadioButton,
|
|
4994
5211
|
me as RadioGroup,
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
5212
|
+
zi as RouteLink,
|
|
5213
|
+
Oi as RouteQuery,
|
|
5214
|
+
Ge as RouteRedirect,
|
|
4998
5215
|
Ee as RouteScope,
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5216
|
+
dt as RouteUnavailableError,
|
|
5217
|
+
Ai as RouteValue,
|
|
5218
|
+
uo as ServiceScope,
|
|
5002
5219
|
ce as Sidebar,
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5220
|
+
Xe as SingleSelectionHandler,
|
|
5221
|
+
$e as SplitView,
|
|
5222
|
+
ho as StyleRegistry,
|
|
5223
|
+
Je as Tab,
|
|
5007
5224
|
X as TabLine,
|
|
5008
|
-
|
|
5225
|
+
ae as TabPanel,
|
|
5009
5226
|
re as TableHeader,
|
|
5010
5227
|
te as TableHeaderCell,
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5228
|
+
qe as Textbox,
|
|
5229
|
+
di as ThemePicker,
|
|
5230
|
+
Ne as Toggle,
|
|
5231
|
+
Fe as Toolbar,
|
|
5232
|
+
ot as TreeItem,
|
|
5016
5233
|
pe as TreeView,
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
|
|
5234
|
+
Ct as TriCheckbox,
|
|
5235
|
+
Ir as applyLocalTableState,
|
|
5236
|
+
mi as assertRouteCodec,
|
|
5237
|
+
Q as assertRouteDescriptor,
|
|
5238
|
+
bi as assertRouteQueryCodec,
|
|
5022
5239
|
Ce as assertRouteTarget,
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5240
|
+
Mt as assertSort,
|
|
5241
|
+
W as assertTreeNodes,
|
|
5242
|
+
Xi as booleanRouteQueryCodec,
|
|
5243
|
+
no as createBrowserRouter,
|
|
5244
|
+
po as createFrayRuntime,
|
|
5245
|
+
Or as createHandlerTableDataSource,
|
|
5246
|
+
Yi as createHashNavigation,
|
|
5247
|
+
Gi as createHistoryNavigation,
|
|
5248
|
+
$r as createLocalTableDataSource,
|
|
5249
|
+
Mi as createQueryTableDataSource,
|
|
5250
|
+
Ar as createRestTableDataSource,
|
|
5034
5251
|
xe as createSelectionHandler,
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5252
|
+
fo as createServiceScope,
|
|
5253
|
+
mo as createStyleRegistry,
|
|
5254
|
+
w as css,
|
|
5255
|
+
bo as defaultFrayRuntime,
|
|
5256
|
+
et as defaultItemKey,
|
|
5257
|
+
eo as defineRoute,
|
|
5258
|
+
to as defineRouteParameter,
|
|
5259
|
+
go as defineService,
|
|
5260
|
+
Fi as deriveFilterPredicate,
|
|
5261
|
+
Di as deriveFilteredItems,
|
|
5262
|
+
Vi as deriveTreeNode,
|
|
5263
|
+
sr as filterByState,
|
|
5047
5264
|
be as findFrayStylesheetOption,
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5265
|
+
Hi as findTreeNode,
|
|
5266
|
+
Me as formatRouteTarget,
|
|
5267
|
+
ni as frayColorOptions,
|
|
5268
|
+
si as frayThemeOptions,
|
|
5269
|
+
_i as frayThemeVariableCatalog,
|
|
5270
|
+
Bi as getFrayAppearance,
|
|
5271
|
+
se as h,
|
|
5055
5272
|
Re as isFilterMode,
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5273
|
+
ut as isRouteDescriptor,
|
|
5274
|
+
fi as isRouteTarget,
|
|
5275
|
+
h as jsx,
|
|
5276
|
+
yo as jsxDEV,
|
|
5277
|
+
y as jsxs,
|
|
5278
|
+
wo as live,
|
|
5279
|
+
Pt as matchesFilterState,
|
|
5280
|
+
Li as mountFrayApp,
|
|
5281
|
+
j as normalizeRouteLocation,
|
|
5282
|
+
Ki as parseFilterState,
|
|
5283
|
+
vo as provideService,
|
|
5284
|
+
so as redirectTo,
|
|
5285
|
+
ai as replaceFrayStylesheet,
|
|
5286
|
+
ro as routeParameter,
|
|
5287
|
+
io as routeTarget,
|
|
5288
|
+
Pi as serializeFilterState,
|
|
5289
|
+
Sr as serializeTableQuery,
|
|
5290
|
+
Qi as setFrayAppearance,
|
|
5291
|
+
Ji as stringRouteCodec,
|
|
5292
|
+
Zi as stringRouteQueryCodec,
|
|
5293
|
+
Eo as styleRegistry,
|
|
5294
|
+
qt as tabButtonId,
|
|
5295
|
+
Nt as tabPanelId,
|
|
5296
|
+
Pr as updateTreeNode,
|
|
5297
|
+
Ui as updateWritableTreeNode,
|
|
5298
|
+
ao as waitForRouteValue,
|
|
5299
|
+
oo as withRouteQuery
|
|
5082
5300
|
};
|
|
5083
5301
|
//# sourceMappingURL=index.js.map
|