@bridgething/client 0.12.1 → 0.15.1
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 +54 -0
- package/dist/default-settings.d.ts +1 -0
- package/dist/default-settings.js +1 -0
- package/dist/device-name.d.ts +6 -0
- package/dist/device-name.d.ts.map +1 -0
- package/dist/device-name.js +4 -0
- package/dist/device-name.js.map +1 -0
- package/dist/dispatch.generated.d.ts +67 -5
- package/dist/dispatch.generated.d.ts.map +1 -1
- package/dist/dispatch.generated.js +337 -12
- package/dist/dispatch.generated.js.map +1 -1
- package/dist/form.d.ts +16 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +419 -0
- package/dist/form.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/settings-protocol.d.ts +259 -0
- package/dist/settings-protocol.d.ts.map +1 -0
- package/dist/settings-protocol.js +216 -0
- package/dist/settings-protocol.js.map +1 -0
- package/dist/settings.d.ts +38 -35
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +216 -48
- package/dist/settings.js.map +1 -1
- package/dist/testing.d.ts +49 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +45 -0
- package/dist/testing.js.map +1 -0
- package/dist/theme.d.ts +22 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +92 -0
- package/dist/theme.js.map +1 -0
- package/package.json +39 -4
package/dist/form.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ConfigValues = Record<string, string>;
|
|
2
|
+
export type ConfigFormProps = {
|
|
3
|
+
onChange?: (values: ConfigValues) => void;
|
|
4
|
+
};
|
|
5
|
+
export type ConfigFormHandle = {
|
|
6
|
+
flush(): Promise<ConfigValues>;
|
|
7
|
+
};
|
|
8
|
+
export type ConfigFormErrorKind = 'unavailable' | 'replaced' | 'refused';
|
|
9
|
+
export declare class ConfigFormError extends Error {
|
|
10
|
+
readonly kind: ConfigFormErrorKind;
|
|
11
|
+
readonly fields: Record<string, string>;
|
|
12
|
+
constructor(kind: ConfigFormErrorKind, message: string, fields?: Record<string, string>);
|
|
13
|
+
}
|
|
14
|
+
export declare const ConfigForm: import("react").ForwardRefExoticComponent<ConfigFormProps & import("react").RefAttributes<ConfigFormHandle>>;
|
|
15
|
+
export declare function closeSettings(form: ConfigFormHandle | null): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAAE,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEzE,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,IAAI,EAAE,mBAAmB;aAEzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBAF9B,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM,EACC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;CAKtD;AA+TD,eAAO,MAAM,UAAU,8GAyCrB,CAAC;AAEH,wBAAsB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF"}
|
package/dist/form.js
ADDED
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
3
|
+
import { settings } from './settings.js';
|
|
4
|
+
export class ConfigFormError extends Error {
|
|
5
|
+
kind;
|
|
6
|
+
fields;
|
|
7
|
+
constructor(kind, message, fields = {}) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.kind = kind;
|
|
10
|
+
this.fields = fields;
|
|
11
|
+
this.name = 'ConfigFormError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const UNLOADED = 'settings did not load';
|
|
15
|
+
function replaced() {
|
|
16
|
+
return new ConfigFormError('replaced', 'the form moved to another app');
|
|
17
|
+
}
|
|
18
|
+
const STYLE = `
|
|
19
|
+
.bt-form{display:flex;flex-direction:column;gap:12px;color-scheme:var(--bt-scheme);font-family:var(--bt-font-body);color:var(--bt-color-fg)}
|
|
20
|
+
.bt-note{margin:0;font-family:var(--bt-font-mono);font-size:var(--bt-text-hint);color:var(--bt-color-muted)}
|
|
21
|
+
.bt-note[data-tone=err]{color:var(--bt-color-err)}
|
|
22
|
+
.bt-field{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border:1px solid var(--bt-color-rule);background:var(--bt-color-screen)}
|
|
23
|
+
.bt-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
|
|
24
|
+
.bt-label{flex:1;min-width:0;font-family:var(--bt-font-mono);font-size:var(--bt-text-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--bt-color-muted)}
|
|
25
|
+
.bt-desc{margin:0;font-size:var(--bt-text-hint);line-height:1.45;color:var(--bt-color-muted)}
|
|
26
|
+
.bt-reset,.bt-retry{flex-shrink:0;padding:0;border:0;border-radius:0;background:none;cursor:pointer;font-family:var(--bt-font-mono);font-size:var(--bt-text-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--bt-color-accent)}
|
|
27
|
+
.bt-retry{align-self:flex-start}
|
|
28
|
+
.bt-input{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid var(--bt-color-edge);border-radius:0;background:var(--bt-color-bg);color:var(--bt-color-fg);font:inherit;font-size:var(--bt-text-row)}
|
|
29
|
+
.bt-input:focus{outline:none;border-color:var(--bt-color-accent)}
|
|
30
|
+
.bt-input[aria-invalid=true]{border-color:var(--bt-color-err)}
|
|
31
|
+
.bt-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--bt-text-row)}
|
|
32
|
+
.bt-switch{appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;width:44px;height:24px;margin:0;border:1px solid var(--bt-color-edge);background:var(--bt-color-neutral-soft);cursor:pointer}
|
|
33
|
+
.bt-switch::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--bt-color-soft);transition:transform .15s}
|
|
34
|
+
.bt-switch:checked{border-color:var(--bt-color-accent);background:var(--bt-color-accent-soft)}
|
|
35
|
+
.bt-switch:checked::after{transform:translateX(20px);background:var(--bt-color-accent)}
|
|
36
|
+
.bt-choices{display:flex;flex-wrap:wrap}
|
|
37
|
+
.bt-choice{padding:8px 12px;margin:0 -1px -1px 0;border:1px solid var(--bt-color-edge);border-radius:0;background:none;color:var(--bt-color-muted);cursor:pointer;font-family:var(--bt-font-mono);font-size:var(--bt-text-hint)}
|
|
38
|
+
.bt-choice[aria-pressed=true]{position:relative;border-color:var(--bt-color-accent);background:var(--bt-color-accent-soft);color:var(--bt-color-fg)}
|
|
39
|
+
`;
|
|
40
|
+
function storedDefault(field) {
|
|
41
|
+
const value = field.data.default;
|
|
42
|
+
return value === null || value === undefined ? null : String(value);
|
|
43
|
+
}
|
|
44
|
+
function effective(fields, stored) {
|
|
45
|
+
const values = {};
|
|
46
|
+
for (const field of fields) {
|
|
47
|
+
const value = stored[field.data.key] ?? storedDefault(field);
|
|
48
|
+
if (value !== null)
|
|
49
|
+
values[field.data.key] = value;
|
|
50
|
+
}
|
|
51
|
+
return values;
|
|
52
|
+
}
|
|
53
|
+
function toStored(entries) {
|
|
54
|
+
return Object.fromEntries(entries.map(entry => [entry.key, entry.value]));
|
|
55
|
+
}
|
|
56
|
+
function reason(err) {
|
|
57
|
+
return err instanceof Error ? err.message : String(err);
|
|
58
|
+
}
|
|
59
|
+
function constraints(field) {
|
|
60
|
+
const parts = [];
|
|
61
|
+
if (field.type === 'number') {
|
|
62
|
+
if (field.data.min != null)
|
|
63
|
+
parts.push(`min ${field.data.min}`);
|
|
64
|
+
if (field.data.max != null)
|
|
65
|
+
parts.push(`max ${field.data.max}`);
|
|
66
|
+
if (field.data.step != null)
|
|
67
|
+
parts.push(`step ${field.data.step}`);
|
|
68
|
+
}
|
|
69
|
+
if (field.type === 'string' || field.type === 'secret') {
|
|
70
|
+
if (field.data.minLength != null)
|
|
71
|
+
parts.push(`at least ${field.data.minLength} characters`);
|
|
72
|
+
if (field.data.maxLength != null)
|
|
73
|
+
parts.push(`at most ${field.data.maxLength} characters`);
|
|
74
|
+
}
|
|
75
|
+
return parts.length > 0 ? parts.join(' / ') : null;
|
|
76
|
+
}
|
|
77
|
+
function without(record, key) {
|
|
78
|
+
const next = { ...record };
|
|
79
|
+
delete next[key];
|
|
80
|
+
return next;
|
|
81
|
+
}
|
|
82
|
+
function only(record, keys) {
|
|
83
|
+
return Object.fromEntries(Object.entries(record).filter(([key]) => keys.has(key)));
|
|
84
|
+
}
|
|
85
|
+
function createEngine({ after, show, report, invalid, lost }) {
|
|
86
|
+
const config = settings.config.pin();
|
|
87
|
+
let phase = 'live';
|
|
88
|
+
let fields = null;
|
|
89
|
+
let held = {};
|
|
90
|
+
let wanted = {};
|
|
91
|
+
let drafts = {};
|
|
92
|
+
let errors = {};
|
|
93
|
+
let refused = {};
|
|
94
|
+
let failure = null;
|
|
95
|
+
let reported = null;
|
|
96
|
+
let running = false;
|
|
97
|
+
const queue = [];
|
|
98
|
+
const idlers = [];
|
|
99
|
+
const label = (key) => fields?.find(field => field.data.key === key)?.data.label ?? key;
|
|
100
|
+
const stored = () => {
|
|
101
|
+
const next = { ...held };
|
|
102
|
+
for (const [key, value] of Object.entries(wanted)) {
|
|
103
|
+
if (value === null)
|
|
104
|
+
delete next[key];
|
|
105
|
+
else
|
|
106
|
+
next[key] = value;
|
|
107
|
+
}
|
|
108
|
+
return next;
|
|
109
|
+
};
|
|
110
|
+
const publish = () => {
|
|
111
|
+
if (phase !== 'live')
|
|
112
|
+
return;
|
|
113
|
+
if (fields === null) {
|
|
114
|
+
show(failure === null ? { kind: 'loading' } : { kind: 'failed', reason: failure });
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const current = stored();
|
|
118
|
+
const values = effective(fields, current);
|
|
119
|
+
show({ kind: 'ready', fields, values, overridden: new Set(Object.keys(current)), drafts, errors, stale: failure });
|
|
120
|
+
const signature = JSON.stringify(values);
|
|
121
|
+
if (signature === reported)
|
|
122
|
+
return;
|
|
123
|
+
reported = signature;
|
|
124
|
+
report(values);
|
|
125
|
+
};
|
|
126
|
+
const load = async () => {
|
|
127
|
+
await after;
|
|
128
|
+
if (phase !== 'live')
|
|
129
|
+
return;
|
|
130
|
+
try {
|
|
131
|
+
const [next, entries] = await Promise.all([config.fields(), config.list()]);
|
|
132
|
+
if (phase !== 'live')
|
|
133
|
+
return;
|
|
134
|
+
const keys = new Set(next.map(field => field.data.key));
|
|
135
|
+
fields = next;
|
|
136
|
+
held = toStored(entries);
|
|
137
|
+
failure = null;
|
|
138
|
+
drafts = only(drafts, keys);
|
|
139
|
+
errors = only(errors, keys);
|
|
140
|
+
for (const [key, value] of Object.entries(refused)) {
|
|
141
|
+
if ((held[key] ?? null) === value)
|
|
142
|
+
errors = without(errors, key);
|
|
143
|
+
}
|
|
144
|
+
refused = {};
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
if (phase === 'live')
|
|
148
|
+
failure = reason(err);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const write = async ({ key, value }) => {
|
|
152
|
+
try {
|
|
153
|
+
if (value === null) {
|
|
154
|
+
const left = (await config.delete(key)).value;
|
|
155
|
+
held = left === null ? without(held, key) : { ...held, [key]: left };
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
await config.set(key, value);
|
|
159
|
+
held = { ...held, [key]: value };
|
|
160
|
+
}
|
|
161
|
+
errors = without(errors, key);
|
|
162
|
+
refused = without(refused, key);
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
if (phase === 'retired')
|
|
166
|
+
lost(label(key), reason(err));
|
|
167
|
+
errors = { ...errors, [key]: reason(err) };
|
|
168
|
+
refused = { ...refused, [key]: value };
|
|
169
|
+
if (phase === 'live' && !queue.some(op => op.kind === 'load'))
|
|
170
|
+
queue.push({ kind: 'load' });
|
|
171
|
+
}
|
|
172
|
+
if (!queue.some(op => op.kind === 'write' && op.key === key))
|
|
173
|
+
wanted = without(wanted, key);
|
|
174
|
+
};
|
|
175
|
+
const drain = async () => {
|
|
176
|
+
if (running)
|
|
177
|
+
return;
|
|
178
|
+
running = true;
|
|
179
|
+
while (queue.length > 0) {
|
|
180
|
+
const op = queue.shift();
|
|
181
|
+
await (op.kind === 'load' ? load() : write(op));
|
|
182
|
+
publish();
|
|
183
|
+
}
|
|
184
|
+
running = false;
|
|
185
|
+
for (const wake of idlers.splice(0))
|
|
186
|
+
wake();
|
|
187
|
+
};
|
|
188
|
+
const enqueue = (op) => {
|
|
189
|
+
if (op.kind === 'load') {
|
|
190
|
+
if (queue.some(queued => queued.kind === 'load'))
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
for (let at = queue.length - 1; at >= 0; at -= 1) {
|
|
195
|
+
const queued = queue[at];
|
|
196
|
+
if (queued.kind === 'write' && queued.key === op.key)
|
|
197
|
+
queue.splice(at, 1);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
queue.push(op);
|
|
201
|
+
void drain();
|
|
202
|
+
};
|
|
203
|
+
const idle = () => running || queue.length > 0 ? new Promise(resolve => idlers.push(resolve)) : Promise.resolve();
|
|
204
|
+
const send = (key, value) => {
|
|
205
|
+
drafts = without(drafts, key);
|
|
206
|
+
errors = without(errors, key);
|
|
207
|
+
wanted = { ...wanted, [key]: value };
|
|
208
|
+
enqueue({ kind: 'write', key, value });
|
|
209
|
+
publish();
|
|
210
|
+
};
|
|
211
|
+
const settle = (key) => {
|
|
212
|
+
const draft = drafts[key];
|
|
213
|
+
if (fields === null || draft === undefined)
|
|
214
|
+
return;
|
|
215
|
+
if (draft === (effective(fields, stored())[key] ?? '')) {
|
|
216
|
+
drafts = without(drafts, key);
|
|
217
|
+
errors = without(errors, key);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const problem = invalid(key);
|
|
221
|
+
if (problem !== null) {
|
|
222
|
+
errors = { ...errors, [key]: problem };
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
send(key, draft);
|
|
226
|
+
};
|
|
227
|
+
const finish = (key) => {
|
|
228
|
+
if (phase !== 'live')
|
|
229
|
+
return;
|
|
230
|
+
settle(key);
|
|
231
|
+
publish();
|
|
232
|
+
};
|
|
233
|
+
const reload = () => {
|
|
234
|
+
if (phase !== 'live')
|
|
235
|
+
return;
|
|
236
|
+
failure = null;
|
|
237
|
+
publish();
|
|
238
|
+
enqueue({ kind: 'load' });
|
|
239
|
+
};
|
|
240
|
+
const offRefresh = settings.onRefresh(reload);
|
|
241
|
+
enqueue({ kind: 'load' });
|
|
242
|
+
return {
|
|
243
|
+
reload,
|
|
244
|
+
draft(key, text) {
|
|
245
|
+
if (phase !== 'live')
|
|
246
|
+
return;
|
|
247
|
+
drafts = { ...drafts, [key]: text };
|
|
248
|
+
publish();
|
|
249
|
+
},
|
|
250
|
+
finish,
|
|
251
|
+
commit(key, value) {
|
|
252
|
+
if (phase === 'live')
|
|
253
|
+
send(key, value);
|
|
254
|
+
},
|
|
255
|
+
reset(key) {
|
|
256
|
+
if (phase === 'live')
|
|
257
|
+
send(key, null);
|
|
258
|
+
},
|
|
259
|
+
async flush() {
|
|
260
|
+
if (phase !== 'live')
|
|
261
|
+
throw replaced();
|
|
262
|
+
for (const key of Object.keys(drafts))
|
|
263
|
+
finish(key);
|
|
264
|
+
const touched = new Set([...Object.keys(drafts), ...Object.keys(wanted)]);
|
|
265
|
+
await idle();
|
|
266
|
+
if (phase !== 'live')
|
|
267
|
+
throw replaced();
|
|
268
|
+
if (fields === null)
|
|
269
|
+
throw new ConfigFormError('unavailable', failure ?? UNLOADED);
|
|
270
|
+
const failed = only(errors, touched);
|
|
271
|
+
const [first] = Object.entries(failed);
|
|
272
|
+
if (first)
|
|
273
|
+
throw new ConfigFormError('refused', `${label(first[0])}: ${first[1]}`, failed);
|
|
274
|
+
return effective(fields, held);
|
|
275
|
+
},
|
|
276
|
+
async retire() {
|
|
277
|
+
if (phase !== 'live')
|
|
278
|
+
return idle();
|
|
279
|
+
phase = 'retired';
|
|
280
|
+
offRefresh();
|
|
281
|
+
for (let at = queue.length - 1; at >= 0; at -= 1)
|
|
282
|
+
if (queue[at].kind === 'load')
|
|
283
|
+
queue.splice(at, 1);
|
|
284
|
+
for (const key of Object.keys(drafts)) {
|
|
285
|
+
settle(key);
|
|
286
|
+
if (errors[key] !== undefined && drafts[key] !== undefined)
|
|
287
|
+
lost(label(key), errors[key]);
|
|
288
|
+
}
|
|
289
|
+
await idle();
|
|
290
|
+
config.release();
|
|
291
|
+
},
|
|
292
|
+
dispose() {
|
|
293
|
+
if (phase === 'live') {
|
|
294
|
+
phase = 'gone';
|
|
295
|
+
config.release();
|
|
296
|
+
}
|
|
297
|
+
offRefresh();
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
function appOf(context) {
|
|
302
|
+
return context === null ? null : `${context.deviceId}\n${context.webappId}`;
|
|
303
|
+
}
|
|
304
|
+
export const ConfigForm = forwardRef(function ConfigForm({ onChange }, ref) {
|
|
305
|
+
const [state, setState] = useState(() => ({ generation: 0, after: Promise.resolve(), lost: [] }));
|
|
306
|
+
const slot = useRef(null);
|
|
307
|
+
const retiring = useRef(new Set());
|
|
308
|
+
useEffect(() => settings.onContextChanged((context, previous) => {
|
|
309
|
+
const old = slot.current;
|
|
310
|
+
slot.current = null;
|
|
311
|
+
setState(current => ({ ...current, generation: current.generation + 1, lost: [] }));
|
|
312
|
+
if (old) {
|
|
313
|
+
const entry = { app: appOf(previous), drained: old.retire() };
|
|
314
|
+
retiring.current.add(entry);
|
|
315
|
+
void entry.drained.finally(() => retiring.current.delete(entry));
|
|
316
|
+
}
|
|
317
|
+
const app = appOf(context);
|
|
318
|
+
const blocking = [...retiring.current].filter(entry => entry.app === null || app === null || entry.app === app);
|
|
319
|
+
const after = Promise.all(blocking.map(entry => entry.drained)).then(() => undefined);
|
|
320
|
+
setState(current => ({ ...current, after }));
|
|
321
|
+
}), []);
|
|
322
|
+
useImperativeHandle(ref, () => ({ flush: () => slot.current?.flush() ?? Promise.reject(replaced()) }), []);
|
|
323
|
+
return (_jsx(Form, { onChange: onChange, slot: slot, after: state.after, lost: state.lost, onLost: (field, why) => setState(previous => ({
|
|
324
|
+
...previous,
|
|
325
|
+
lost: [...previous.lost, `${field} was not saved to the previous app: ${why}`],
|
|
326
|
+
})) }, state.generation));
|
|
327
|
+
});
|
|
328
|
+
export async function closeSettings(form) {
|
|
329
|
+
try {
|
|
330
|
+
await form?.flush();
|
|
331
|
+
}
|
|
332
|
+
catch (err) {
|
|
333
|
+
if (!(err instanceof ConfigFormError && err.kind === 'unavailable'))
|
|
334
|
+
throw err;
|
|
335
|
+
}
|
|
336
|
+
settings.done();
|
|
337
|
+
}
|
|
338
|
+
function Form({ onChange, slot, after, lost, onLost }) {
|
|
339
|
+
const [view, setView] = useState({ kind: 'loading' });
|
|
340
|
+
const listener = useRef(onChange);
|
|
341
|
+
listener.current = onChange;
|
|
342
|
+
const loser = useRef(onLost);
|
|
343
|
+
loser.current = onLost;
|
|
344
|
+
const inputs = useRef(new Map());
|
|
345
|
+
useEffect(() => {
|
|
346
|
+
const created = createEngine({
|
|
347
|
+
after,
|
|
348
|
+
show: setView,
|
|
349
|
+
report: values => listener.current?.(values),
|
|
350
|
+
invalid: key => {
|
|
351
|
+
const input = inputs.current.get(key);
|
|
352
|
+
if (!input || input.checkValidity())
|
|
353
|
+
return null;
|
|
354
|
+
return input.validationMessage || 'this value is not allowed';
|
|
355
|
+
},
|
|
356
|
+
lost: (label, why) => loser.current(label, why),
|
|
357
|
+
});
|
|
358
|
+
slot.current = created;
|
|
359
|
+
return () => {
|
|
360
|
+
created.dispose();
|
|
361
|
+
if (slot.current === created)
|
|
362
|
+
slot.current = null;
|
|
363
|
+
};
|
|
364
|
+
}, [slot, after]);
|
|
365
|
+
const notes = lost.map((note, at) => (_jsx("p", { className: "bt-note", "data-tone": "err", children: note }, at)));
|
|
366
|
+
const retry = (_jsx("button", { type: "button", className: "bt-retry", onClick: () => slot.current?.reload(), children: "retry" }));
|
|
367
|
+
if (view.kind !== 'ready') {
|
|
368
|
+
return (_jsxs("div", { className: "bt-form", children: [_jsx("style", { children: STYLE }), notes, _jsx("p", { className: "bt-note", "data-tone": view.kind === 'failed' ? 'err' : undefined, children: view.kind === 'failed' ? view.reason : 'loading settings' }), view.kind === 'failed' ? retry : null] }));
|
|
369
|
+
}
|
|
370
|
+
return (_jsxs("div", { className: "bt-form", children: [_jsx("style", { children: STYLE }), notes, view.stale !== null ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "bt-note", "data-tone": "err", children: view.stale }), retry] })) : null, view.fields.length === 0 ? _jsx("p", { className: "bt-note", children: "no settings" }) : null, view.fields.map(field => {
|
|
371
|
+
const key = field.data.key;
|
|
372
|
+
return (_jsx(FieldRow, { field: field, value: view.values[key] ?? '', resettable: storedDefault(field) !== null && view.overridden.has(key), draft: view.drafts[key], error: view.errors[key] ?? null, bind: input => {
|
|
373
|
+
if (input)
|
|
374
|
+
inputs.current.set(key, input);
|
|
375
|
+
else
|
|
376
|
+
inputs.current.delete(key);
|
|
377
|
+
}, onDraft: text => slot.current?.draft(key, text), onFinish: () => slot.current?.finish(key), onCommit: value => slot.current?.commit(key, value), onReset: () => slot.current?.reset(key) }, key));
|
|
378
|
+
})] }));
|
|
379
|
+
}
|
|
380
|
+
function FieldRow({ error, resettable, onReset, ...control }) {
|
|
381
|
+
const { field } = control;
|
|
382
|
+
const id = `bt-field-${field.data.key}`;
|
|
383
|
+
const describedBy = field.data.description ? `bt-desc-${field.data.key}` : undefined;
|
|
384
|
+
const hint = constraints(field);
|
|
385
|
+
return (_jsxs("div", { className: "bt-field", children: [_jsxs("div", { className: "bt-head", children: [_jsx("label", { className: "bt-label", htmlFor: id, children: field.data.label }), resettable ? (_jsx("button", { type: "button", className: "bt-reset", onClick: onReset, children: "reset" })) : null] }), describedBy ? (_jsx("p", { id: describedBy, className: "bt-desc", children: field.data.description })) : null, _jsx(Control, { ...control, id: id, describedBy: describedBy, invalid: error !== null }), hint ? _jsx("p", { className: "bt-note", children: hint }) : null, error ? (_jsx("p", { className: "bt-note", "data-tone": "err", children: error })) : null] }));
|
|
386
|
+
}
|
|
387
|
+
function Control({ id, describedBy, field, value, draft, invalid, bind, onDraft, onFinish, onCommit, }) {
|
|
388
|
+
if (field.type === 'boolean') {
|
|
389
|
+
const on = value === 'true';
|
|
390
|
+
return (_jsxs("div", { className: "bt-toggle", children: [_jsx("span", { children: on ? 'enabled' : 'disabled' }), _jsx("input", { id: id, className: "bt-switch", type: "checkbox", role: "switch", "aria-describedby": describedBy, checked: on, onChange: () => onCommit(on ? 'false' : 'true') })] }));
|
|
391
|
+
}
|
|
392
|
+
if (field.type === 'enum') {
|
|
393
|
+
if (field.data.choices.length === 0)
|
|
394
|
+
return _jsx("p", { className: "bt-note", children: "this field declares no choices" });
|
|
395
|
+
return (_jsx("div", { className: "bt-choices", role: "group", id: id, "aria-describedby": describedBy, children: field.data.choices.map(choice => (_jsx("button", { type: "button", className: "bt-choice", "aria-pressed": choice === value, onClick: () => {
|
|
396
|
+
if (choice !== value)
|
|
397
|
+
onCommit(choice);
|
|
398
|
+
}, children: field.data.choiceLabels?.[choice] ?? choice }, choice))) }));
|
|
399
|
+
}
|
|
400
|
+
const common = {
|
|
401
|
+
id,
|
|
402
|
+
ref: bind,
|
|
403
|
+
className: 'bt-input',
|
|
404
|
+
value: draft ?? value,
|
|
405
|
+
'aria-invalid': invalid,
|
|
406
|
+
'aria-describedby': describedBy,
|
|
407
|
+
onChange: (event) => onDraft(event.currentTarget.value),
|
|
408
|
+
onBlur: onFinish,
|
|
409
|
+
onKeyDown: (event) => {
|
|
410
|
+
if (event.key === 'Enter')
|
|
411
|
+
event.currentTarget.blur();
|
|
412
|
+
},
|
|
413
|
+
};
|
|
414
|
+
if (field.type === 'number') {
|
|
415
|
+
return (_jsx("input", { ...common, type: "number", inputMode: "decimal", min: field.data.min ?? undefined, max: field.data.max ?? undefined, step: field.data.step ?? 'any' }));
|
|
416
|
+
}
|
|
417
|
+
return (_jsx("input", { ...common, type: field.type === 'secret' ? 'password' : 'text', autoCapitalize: "none", autoCorrect: "off", spellCheck: false, pattern: field.data.pattern ?? undefined, minLength: field.data.minLength ?? undefined, maxLength: field.data.maxLength ?? undefined, placeholder: field.type === 'secret' ? 'not set' : undefined }));
|
|
418
|
+
}
|
|
419
|
+
//# sourceMappingURL=form.js.map
|
package/dist/form.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../src/form.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAC;AAEzG,OAAO,EAAE,QAAQ,EAA4D,MAAM,eAAe,CAAC;AAQnG,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAEtB;IAEA;IAHlB,YACkB,IAAyB,EACzC,OAAe,EACC,SAAiC,EAAE;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAqB;QAEzB,WAAM,GAAN,MAAM,CAA6B;QAGnD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAsCD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAEzC,SAAS,QAAQ;IACf,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBb,CAAC;AAEF,SAAS,aAAa,CAAC,KAAkB;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,MAAqB,EAAE,MAAoB;IAC5D,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAsB;IACtC,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,MAAM,CAAC,GAAY;IAC1B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,KAAkB;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;QAC5F,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,OAAO,CAAI,MAAyB,EAAE,GAAW;IACxD,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,IAAI,CAAI,MAAyB,EAAE,IAAiB;IAC3D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAiB;IACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,KAAK,GAAU,MAAM,CAAC;IAC1B,IAAI,MAAM,GAAyB,IAAI,CAAC;IACxC,IAAI,IAAI,GAAiB,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAkC,EAAE,CAAC;IAC/C,IAAI,MAAM,GAAiB,EAAE,CAAC;IAC9B,IAAI,MAAM,GAA2B,EAAE,CAAC;IACxC,IAAI,OAAO,GAAkC,EAAE,CAAC;IAChD,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAS,EAAE,CAAC;IACvB,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;IAExG,MAAM,MAAM,GAAG,GAAiB,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO;QAC7B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO;QACnC,QAAQ,GAAG,SAAS,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,KAAK,CAAC;QACZ,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO;QAC7B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO;YAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK;oBAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAS,EAAiB,EAAE;QAC3D,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9C,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7B,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;YACnC,CAAC;YACD,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC;YAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9F,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,IAAI,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,EAAM,EAAQ,EAAE;QAC/B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;gBAAE,OAAO;QAC3D,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG;oBAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAkB,EAAE,CAC/B,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEjG,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAoB,EAAQ,EAAE;QACvD,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAQ,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QACnD,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9B,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAQ,EAAE;QACnC,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAE1B,OAAO;QACL,MAAM;QACN,KAAK,CAAC,GAAG,EAAE,IAAI;YACb,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO;YAC7B,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM;QACN,MAAM,CAAC,GAAG,EAAE,KAAK;YACf,IAAI,KAAK,KAAK,MAAM;gBAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,GAAG;YACP,IAAI,KAAK,KAAK,MAAM;gBAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,KAAK,KAAK,MAAM;gBAAE,MAAM,QAAQ,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,IAAI,EAAE,CAAC;YACb,IAAI,KAAK,KAAK,MAAM;gBAAE,MAAM,QAAQ,EAAE,CAAC;YACvC,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,IAAI,QAAQ,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,KAAK;gBAAE,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3F,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,MAAM;YACV,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YACpC,KAAK,GAAG,SAAS,CAAC;YAClB,UAAU,EAAE,CAAC;YACb,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;gBAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM;oBAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrG,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,OAAO;YACL,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,KAAK,GAAG,MAAM,CAAC;gBACf,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAMD,SAAS,KAAK,CAAC,OAA+B;IAC5C,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAoC,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG;IAC3G,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAAY,CAAC,CAAC;IAE7C,SAAS,CACP,GAAG,EAAE,CACH,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,KAAK,GAAa,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACxE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3G,OAAO,CACL,KAAC,IAAI,IAEH,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpB,GAAG,QAAQ;YACX,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,uCAAuC,GAAG,EAAE,CAAC;SAC/E,CAAC,CAAC,IATA,KAAK,CAAC,UAAU,CAWrB,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA6B;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC;YAAE,MAAM,GAAG,CAAC;IACjF,CAAC;IACD,QAAQ,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC;AASD,SAAS,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAa;IAC9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,EAA4B,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,YAAY,CAAC;YAC3B,KAAK;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;YAC5C,OAAO,EAAE,GAAG,CAAC,EAAE;gBACb,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACjD,OAAO,KAAK,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;YAChE,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAElB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CACnC,YAAY,SAAS,EAAC,SAAS,eAAW,KAAK,YAC5C,IAAI,IADC,EAAE,CAEN,CACL,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CACZ,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,sBAEvE,CACV,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CACL,eAAK,SAAS,EAAC,SAAS,aACtB,0BAAQ,KAAK,GAAS,EACrB,KAAK,EACN,YAAG,SAAS,EAAC,SAAS,eAAY,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YACzE,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,GACxD,EACH,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAClC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,SAAS,aACtB,0BAAQ,KAAK,GAAS,EACrB,KAAK,EACL,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CACrB,8BACE,YAAG,SAAS,EAAC,SAAS,eAAW,KAAK,YACnC,IAAI,CAAC,KAAK,GACT,EACH,KAAK,IACL,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,SAAS,4BAAgB,CAAC,CAAC,CAAC,IAAI,EACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,OAAO,CACL,KAAC,QAAQ,IAEP,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAC7B,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACrE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EACvB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAC/B,IAAI,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,KAAK;4BAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;4BACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAClC,CAAC,EACD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAC/C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACzC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EACnD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAblC,GAAG,CAcR,CACH,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC;AAcD,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,EAAY;IACpE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,eAAK,SAAS,EAAC,SAAS,aACtB,gBAAO,SAAS,EAAC,UAAU,EAAC,OAAO,EAAE,EAAE,YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,GACX,EACP,UAAU,CAAC,CAAC,CAAC,CACZ,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,sBAElD,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,WAAW,CAAC,CAAC,CAAC,CACb,YAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAC,SAAS,YACpC,KAAK,CAAC,IAAI,CAAC,WAAW,GACrB,CACL,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,OAAO,OAAK,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,KAAK,IAAI,GAAI,EAClF,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,SAAS,YAAE,IAAI,GAAK,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAK,CAAC,CAAC,CAAC,CACP,YAAG,SAAS,EAAC,SAAS,eAAW,KAAK,YACnC,KAAK,GACJ,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,EAAE,EACF,WAAW,EACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACyE;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,KAAK,KAAK,MAAM,CAAC;QAC5B,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,yBAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAQ,EAC1C,gBACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,WAAW,EACrB,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,sBACK,WAAW,EAC7B,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAC/C,IACE,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,YAAG,SAAS,EAAC,SAAS,+CAAmC,CAAC;QACtG,OAAO,CACL,cAAK,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,sBAAoB,WAAW,YAC3E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAChC,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,WAAW,kBACP,MAAM,KAAK,KAAK,EAC9B,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,MAAM,KAAK,KAAK;wBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC,YACA,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,MAAM,IAPvC,MAAM,CAQJ,CACV,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG;QACb,EAAE;QACF,GAAG,EAAE,IAAI;QACT,SAAS,EAAE,UAAU;QACrB,KAAK,EAAE,KAAK,IAAI,KAAK;QACrB,cAAc,EAAE,OAAO;QACvB,kBAAkB,EAAE,WAAW;QAC/B,QAAQ,EAAE,CAAC,KAA0C,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;QAC5F,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,CAAC,KAAsC,EAAE,EAAE;YACpD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;gBAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CACL,mBACM,MAAM,EACV,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,EAChC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,EAChC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAC9B,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,mBACM,MAAM,EACV,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EACnD,cAAc,EAAC,MAAM,EACrB,WAAW,EAAC,KAAK,EACjB,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,EACxC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAC5C,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAC5C,WAAW,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAC5D,CACH,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { BridgeToClientMsg, ClientToBridgeMsg, ClientToBridgeMsgData } from
|
|
|
3
3
|
import type { ClientSurfaces } from './dispatch.generated.js';
|
|
4
4
|
export * from '@bridgething/lib';
|
|
5
5
|
export * from '@bridgething/lib/client';
|
|
6
|
+
export { deviceName, type NamedDevice } from './device-name.js';
|
|
6
7
|
export type { ClientSurfaces } from './dispatch.generated.js';
|
|
7
8
|
export type ConnectionState = 'connecting' | 'open' | 'closing' | 'closed';
|
|
8
9
|
export type ClientEvent = {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Logger, LogVerbosity, walkUuidFields } from '@bridgething/lib';
|
|
|
3
3
|
import { newUuid } from '@bridgething/lib/uuid';
|
|
4
4
|
export * from '@bridgething/lib';
|
|
5
5
|
export * from '@bridgething/lib/client';
|
|
6
|
+
export { deviceName } from './device-name.js';
|
|
6
7
|
const DEFAULT_URL = 'ws://127.0.0.1:8891/';
|
|
7
8
|
const DEFAULT_REQUEST_TIMEOUT_MS = 30_000;
|
|
8
9
|
const RECONNECT_BACKOFF_MS = [500, 1_000, 2_000, 4_000, 8_000, 15_000];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIhD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|