@decidables/detectable-elements 0.2.5 → 0.2.7

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.
@@ -9,21 +9,21 @@
9
9
  * Copyright 2019 Google LLC
10
10
  * SPDX-License-Identifier: BSD-3-Clause
11
11
  */
12
- const t$3 = window,
13
- e$5 = t$3.ShadowRoot && (void 0 === t$3.ShadyCSS || t$3.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
14
- s$6 = Symbol(),
15
- n$6 = new WeakMap();
16
- let o$6 = class o {
17
- constructor(t, e, n) {
18
- if (this._$cssResult$ = !0, n !== s$6) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
12
+ const t$1 = globalThis,
13
+ e$2 = t$1.ShadowRoot && (void 0 === t$1.ShadyCSS || t$1.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
14
+ s$2 = Symbol(),
15
+ o$3 = new WeakMap();
16
+ let n$2 = class n {
17
+ constructor(t, e, o) {
18
+ if (this._$cssResult$ = !0, o !== s$2) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
19
19
  this.cssText = t, this.t = e;
20
20
  }
21
21
  get styleSheet() {
22
22
  let t = this.o;
23
23
  const s = this.t;
24
- if (e$5 && void 0 === t) {
24
+ if (e$2 && void 0 === t) {
25
25
  const e = void 0 !== s && 1 === s.length;
26
- e && (t = n$6.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && n$6.set(s, t));
26
+ e && (t = o$3.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && o$3.set(s, t));
27
27
  }
28
28
  return t;
29
29
  }
@@ -31,18 +31,26 @@
31
31
  return this.cssText;
32
32
  }
33
33
  };
34
- const r$5 = t => new o$6("string" == typeof t ? t : t + "", void 0, s$6),
35
- S$3 = (s, n) => {
36
- e$5 ? s.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(e => {
37
- const n = document.createElement("style"),
38
- o = t$3.litNonce;
39
- void 0 !== o && n.setAttribute("nonce", o), n.textContent = e.cssText, s.appendChild(n);
40
- });
34
+ const r$3 = t => new n$2("string" == typeof t ? t : t + "", void 0, s$2),
35
+ i$2 = (t, ...e) => {
36
+ const o = 1 === t.length ? t[0] : e.reduce((e, s, o) => e + (t => {
37
+ if (!0 === t._$cssResult$) return t.cssText;
38
+ if ("number" == typeof t) return t;
39
+ throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
40
+ })(s) + t[o + 1], t[0]);
41
+ return new n$2(o, t, s$2);
41
42
  },
42
- c$2 = e$5 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
43
+ S$1 = (s, o) => {
44
+ if (e$2) s.adoptedStyleSheets = o.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet);else for (const e of o) {
45
+ const o = document.createElement("style"),
46
+ n = t$1.litNonce;
47
+ void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, s.appendChild(o);
48
+ }
49
+ },
50
+ c$2 = e$2 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
43
51
  let e = "";
44
52
  for (const s of t.cssRules) e += s.cssText;
45
- return r$5(e);
53
+ return r$3(e);
46
54
  })(t) : t;
47
55
 
48
56
  /**
@@ -50,16 +58,24 @@
50
58
  * Copyright 2017 Google LLC
51
59
  * SPDX-License-Identifier: BSD-3-Clause
52
60
  */
53
- var s$5;
54
- const e$4 = window,
55
- r$4 = e$4.trustedTypes,
56
- h$3 = r$4 ? r$4.emptyScript : "",
57
- o$5 = e$4.reactiveElementPolyfillSupport,
58
- n$5 = {
59
- toAttribute(t, i) {
60
- switch (i) {
61
+ const {
62
+ is: i$1,
63
+ defineProperty: e$1,
64
+ getOwnPropertyDescriptor: r$2,
65
+ getOwnPropertyNames: h$1,
66
+ getOwnPropertySymbols: o$2,
67
+ getPrototypeOf: n$1
68
+ } = Object,
69
+ a$1 = globalThis,
70
+ c$1 = a$1.trustedTypes,
71
+ l$1 = c$1 ? c$1.emptyScript : "",
72
+ p$1 = a$1.reactiveElementPolyfillSupport,
73
+ d$1 = (t, s) => t,
74
+ u$1 = {
75
+ toAttribute(t, s) {
76
+ switch (s) {
61
77
  case Boolean:
62
- t = t ? h$3 : null;
78
+ t = t ? l$1 : null;
63
79
  break;
64
80
  case Object:
65
81
  case Array:
@@ -67,752 +83,177 @@
67
83
  }
68
84
  return t;
69
85
  },
70
- fromAttribute(t, i) {
71
- let s = t;
72
- switch (i) {
86
+ fromAttribute(t, s) {
87
+ let i = t;
88
+ switch (s) {
73
89
  case Boolean:
74
- s = null !== t;
90
+ i = null !== t;
75
91
  break;
76
92
  case Number:
77
- s = null === t ? null : Number(t);
93
+ i = null === t ? null : Number(t);
78
94
  break;
79
95
  case Object:
80
96
  case Array:
81
97
  try {
82
- s = JSON.parse(t);
98
+ i = JSON.parse(t);
83
99
  } catch (t) {
84
- s = null;
100
+ i = null;
85
101
  }
86
102
  }
87
- return s;
103
+ return i;
88
104
  }
89
105
  },
90
- a$3 = (t, i) => i !== t && (i == i || t == t),
91
- l$5 = {
106
+ f$1 = (t, s) => !i$1(t, s),
107
+ y$2 = {
92
108
  attribute: !0,
93
109
  type: String,
94
- converter: n$5,
110
+ converter: u$1,
95
111
  reflect: !1,
96
- hasChanged: a$3
112
+ hasChanged: f$1
97
113
  };
98
- let d$2 = class d extends HTMLElement {
99
- constructor() {
100
- super(), this._$Ei = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this.u();
101
- }
114
+ Symbol.metadata ??= Symbol("metadata"), a$1.litPropertyMetadata ??= new WeakMap();
115
+ let b$1 = class b extends HTMLElement {
102
116
  static addInitializer(t) {
103
- var i;
104
- this.finalize(), (null !== (i = this.h) && void 0 !== i ? i : this.h = []).push(t);
117
+ this._$Ei(), (this.l ??= []).push(t);
105
118
  }
106
119
  static get observedAttributes() {
107
- this.finalize();
108
- const t = [];
109
- return this.elementProperties.forEach((i, s) => {
110
- const e = this._$Ep(s, i);
111
- void 0 !== e && (this._$Ev.set(e, s), t.push(e));
112
- }), t;
113
- }
114
- static createProperty(t, i = l$5) {
115
- if (i.state && (i.attribute = !1), this.finalize(), this.elementProperties.set(t, i), !i.noAccessor && !this.prototype.hasOwnProperty(t)) {
116
- const s = "symbol" == typeof t ? Symbol() : "__" + t,
117
- e = this.getPropertyDescriptor(t, s, i);
118
- void 0 !== e && Object.defineProperty(this.prototype, t, e);
120
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
121
+ }
122
+ static createProperty(t, s = y$2) {
123
+ if (s.state && (s.attribute = !1), this._$Ei(), this.elementProperties.set(t, s), !s.noAccessor) {
124
+ const i = Symbol(),
125
+ r = this.getPropertyDescriptor(t, i, s);
126
+ void 0 !== r && e$1(this.prototype, t, r);
119
127
  }
120
128
  }
121
- static getPropertyDescriptor(t, i, s) {
129
+ static getPropertyDescriptor(t, s, i) {
130
+ const {
131
+ get: e,
132
+ set: h
133
+ } = r$2(this.prototype, t) ?? {
134
+ get() {
135
+ return this[s];
136
+ },
137
+ set(t) {
138
+ this[s] = t;
139
+ }
140
+ };
122
141
  return {
123
142
  get() {
124
- return this[i];
143
+ return e?.call(this);
125
144
  },
126
- set(e) {
127
- const r = this[t];
128
- this[i] = e, this.requestUpdate(t, r, s);
145
+ set(s) {
146
+ const r = e?.call(this);
147
+ h.call(this, s), this.requestUpdate(t, r, i);
129
148
  },
130
149
  configurable: !0,
131
150
  enumerable: !0
132
151
  };
133
152
  }
134
153
  static getPropertyOptions(t) {
135
- return this.elementProperties.get(t) || l$5;
154
+ return this.elementProperties.get(t) ?? y$2;
155
+ }
156
+ static _$Ei() {
157
+ if (this.hasOwnProperty(d$1("elementProperties"))) return;
158
+ const t = n$1(this);
159
+ t.finalize(), void 0 !== t.l && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
136
160
  }
137
161
  static finalize() {
138
- if (this.hasOwnProperty("finalized")) return !1;
139
- this.finalized = !0;
140
- const t = Object.getPrototypeOf(this);
141
- if (t.finalize(), void 0 !== t.h && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = new Map(), this.hasOwnProperty("properties")) {
162
+ if (this.hasOwnProperty(d$1("finalized"))) return;
163
+ if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(d$1("properties"))) {
142
164
  const t = this.properties,
143
- i = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
144
- for (const s of i) this.createProperty(s, t[s]);
145
- }
146
- return this.elementStyles = this.finalizeStyles(this.styles), !0;
147
- }
148
- static finalizeStyles(i) {
149
- const s = [];
150
- if (Array.isArray(i)) {
151
- const e = new Set(i.flat(1 / 0).reverse());
152
- for (const i of e) s.unshift(c$2(i));
153
- } else void 0 !== i && s.push(c$2(i));
154
- return s;
155
- }
156
- static _$Ep(t, i) {
157
- const s = i.attribute;
158
- return !1 === s ? void 0 : "string" == typeof s ? s : "string" == typeof t ? t.toLowerCase() : void 0;
159
- }
160
- u() {
161
- var t;
162
- this._$E_ = new Promise(t => this.enableUpdating = t), this._$AL = new Map(), this._$Eg(), this.requestUpdate(), null === (t = this.constructor.h) || void 0 === t || t.forEach(t => t(this));
163
- }
164
- addController(t) {
165
- var i, s;
166
- (null !== (i = this._$ES) && void 0 !== i ? i : this._$ES = []).push(t), void 0 !== this.renderRoot && this.isConnected && (null === (s = t.hostConnected) || void 0 === s || s.call(t));
167
- }
168
- removeController(t) {
169
- var i;
170
- null === (i = this._$ES) || void 0 === i || i.splice(this._$ES.indexOf(t) >>> 0, 1);
171
- }
172
- _$Eg() {
173
- this.constructor.elementProperties.forEach((t, i) => {
174
- this.hasOwnProperty(i) && (this._$Ei.set(i, this[i]), delete this[i]);
175
- });
176
- }
177
- createRenderRoot() {
178
- var t;
179
- const s = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
180
- return S$3(s, this.constructor.elementStyles), s;
181
- }
182
- connectedCallback() {
183
- var t;
184
- void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$ES) || void 0 === t || t.forEach(t => {
185
- var i;
186
- return null === (i = t.hostConnected) || void 0 === i ? void 0 : i.call(t);
187
- });
188
- }
189
- enableUpdating(t) {}
190
- disconnectedCallback() {
191
- var t;
192
- null === (t = this._$ES) || void 0 === t || t.forEach(t => {
193
- var i;
194
- return null === (i = t.hostDisconnected) || void 0 === i ? void 0 : i.call(t);
195
- });
196
- }
197
- attributeChangedCallback(t, i, s) {
198
- this._$AK(t, s);
199
- }
200
- _$EO(t, i, s = l$5) {
201
- var e;
202
- const r = this.constructor._$Ep(t, s);
203
- if (void 0 !== r && !0 === s.reflect) {
204
- const h = (void 0 !== (null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) ? s.converter : n$5).toAttribute(i, s.type);
205
- this._$El = t, null == h ? this.removeAttribute(r) : this.setAttribute(r, h), this._$El = null;
206
- }
207
- }
208
- _$AK(t, i) {
209
- var s;
210
- const e = this.constructor,
211
- r = e._$Ev.get(t);
212
- if (void 0 !== r && this._$El !== r) {
213
- const t = e.getPropertyOptions(r),
214
- h = "function" == typeof t.converter ? {
215
- fromAttribute: t.converter
216
- } : void 0 !== (null === (s = t.converter) || void 0 === s ? void 0 : s.fromAttribute) ? t.converter : n$5;
217
- this._$El = r, this[r] = h.fromAttribute(i, t.type), this._$El = null;
218
- }
219
- }
220
- requestUpdate(t, i, s) {
221
- let e = !0;
222
- void 0 !== t && (((s = s || this.constructor.getPropertyOptions(t)).hasChanged || a$3)(this[t], i) ? (this._$AL.has(t) || this._$AL.set(t, i), !0 === s.reflect && this._$El !== t && (void 0 === this._$EC && (this._$EC = new Map()), this._$EC.set(t, s))) : e = !1), !this.isUpdatePending && e && (this._$E_ = this._$Ej());
223
- }
224
- async _$Ej() {
225
- this.isUpdatePending = !0;
226
- try {
227
- await this._$E_;
228
- } catch (t) {
229
- Promise.reject(t);
230
- }
231
- const t = this.scheduleUpdate();
232
- return null != t && (await t), !this.isUpdatePending;
233
- }
234
- scheduleUpdate() {
235
- return this.performUpdate();
236
- }
237
- performUpdate() {
238
- var t;
239
- if (!this.isUpdatePending) return;
240
- this.hasUpdated, this._$Ei && (this._$Ei.forEach((t, i) => this[i] = t), this._$Ei = void 0);
241
- let i = !1;
242
- const s = this._$AL;
243
- try {
244
- i = this.shouldUpdate(s), i ? (this.willUpdate(s), null === (t = this._$ES) || void 0 === t || t.forEach(t => {
245
- var i;
246
- return null === (i = t.hostUpdate) || void 0 === i ? void 0 : i.call(t);
247
- }), this.update(s)) : this._$Ek();
248
- } catch (t) {
249
- throw i = !1, this._$Ek(), t;
250
- }
251
- i && this._$AE(s);
252
- }
253
- willUpdate(t) {}
254
- _$AE(t) {
255
- var i;
256
- null === (i = this._$ES) || void 0 === i || i.forEach(t => {
257
- var i;
258
- return null === (i = t.hostUpdated) || void 0 === i ? void 0 : i.call(t);
259
- }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
260
- }
261
- _$Ek() {
262
- this._$AL = new Map(), this.isUpdatePending = !1;
263
- }
264
- get updateComplete() {
265
- return this.getUpdateComplete();
266
- }
267
- getUpdateComplete() {
268
- return this._$E_;
269
- }
270
- shouldUpdate(t) {
271
- return !0;
272
- }
273
- update(t) {
274
- void 0 !== this._$EC && (this._$EC.forEach((t, i) => this._$EO(i, this[i], t)), this._$EC = void 0), this._$Ek();
275
- }
276
- updated(t) {}
277
- firstUpdated(t) {}
278
- };
279
- d$2.finalized = !0, d$2.elementProperties = new Map(), d$2.elementStyles = [], d$2.shadowRootOptions = {
280
- mode: "open"
281
- }, null == o$5 || o$5({
282
- ReactiveElement: d$2
283
- }), (null !== (s$5 = e$4.reactiveElementVersions) && void 0 !== s$5 ? s$5 : e$4.reactiveElementVersions = []).push("1.6.1");
284
-
285
- /**
286
- * @license
287
- * Copyright 2017 Google LLC
288
- * SPDX-License-Identifier: BSD-3-Clause
289
- */
290
- var t$2;
291
- const i$2 = window,
292
- s$4 = i$2.trustedTypes,
293
- e$3 = s$4 ? s$4.createPolicy("lit-html", {
294
- createHTML: t => t
295
- }) : void 0,
296
- o$4 = "$lit$",
297
- n$4 = `lit$${(Math.random() + "").slice(9)}$`,
298
- l$4 = "?" + n$4,
299
- h$2 = `<${l$4}>`,
300
- r$3 = document,
301
- u$1 = () => r$3.createComment(""),
302
- d$1 = t => null === t || "object" != typeof t && "function" != typeof t,
303
- c$1 = Array.isArray,
304
- v$1 = t => c$1(t) || "function" == typeof (null == t ? void 0 : t[Symbol.iterator]),
305
- a$2 = "[ \t\n\f\r]",
306
- f$1 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
307
- _$1 = /-->/g,
308
- m$1 = />/g,
309
- p$1 = RegExp(`>|${a$2}(?:([^\\s"'>=/]+)(${a$2}*=${a$2}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
310
- g$1 = /'/g,
311
- $$1 = /"/g,
312
- y$2 = /^(?:script|style|textarea|title)$/i,
313
- T$1 = Symbol.for("lit-noChange"),
314
- A$1 = Symbol.for("lit-nothing"),
315
- E$1 = new WeakMap(),
316
- C$1 = r$3.createTreeWalker(r$3, 129, null, !1);
317
- function P$1(t, i) {
318
- if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
319
- return void 0 !== e$3 ? e$3.createHTML(i) : i;
320
- }
321
- const V$1 = (t, i) => {
322
- const s = t.length - 1,
323
- e = [];
324
- let l,
325
- r = 2 === i ? "<svg>" : "",
326
- u = f$1;
327
- for (let i = 0; i < s; i++) {
328
- const s = t[i];
329
- let d,
330
- c,
331
- v = -1,
332
- a = 0;
333
- for (; a < s.length && (u.lastIndex = a, c = u.exec(s), null !== c);) a = u.lastIndex, u === f$1 ? "!--" === c[1] ? u = _$1 : void 0 !== c[1] ? u = m$1 : void 0 !== c[2] ? (y$2.test(c[2]) && (l = RegExp("</" + c[2], "g")), u = p$1) : void 0 !== c[3] && (u = p$1) : u === p$1 ? ">" === c[0] ? (u = null != l ? l : f$1, v = -1) : void 0 === c[1] ? v = -2 : (v = u.lastIndex - c[2].length, d = c[1], u = void 0 === c[3] ? p$1 : '"' === c[3] ? $$1 : g$1) : u === $$1 || u === g$1 ? u = p$1 : u === _$1 || u === m$1 ? u = f$1 : (u = p$1, l = void 0);
334
- const w = u === p$1 && t[i + 1].startsWith("/>") ? " " : "";
335
- r += u === f$1 ? s + h$2 : v >= 0 ? (e.push(d), s.slice(0, v) + o$4 + s.slice(v) + n$4 + w) : s + n$4 + (-2 === v ? (e.push(void 0), i) : w);
336
- }
337
- return [P$1(t, r + (t[s] || "<?>") + (2 === i ? "</svg>" : "")), e];
338
- };
339
- let N$1 = class N {
340
- constructor({
341
- strings: t,
342
- _$litType$: i
343
- }, e) {
344
- let h;
345
- this.parts = [];
346
- let r = 0,
347
- d = 0;
348
- const c = t.length - 1,
349
- v = this.parts,
350
- [a, f] = V$1(t, i);
351
- if (this.el = N.createElement(a, e), C$1.currentNode = this.el.content, 2 === i) {
352
- const t = this.el.content,
353
- i = t.firstChild;
354
- i.remove(), t.append(...i.childNodes);
355
- }
356
- for (; null !== (h = C$1.nextNode()) && v.length < c;) {
357
- if (1 === h.nodeType) {
358
- if (h.hasAttributes()) {
359
- const t = [];
360
- for (const i of h.getAttributeNames()) if (i.endsWith(o$4) || i.startsWith(n$4)) {
361
- const s = f[d++];
362
- if (t.push(i), void 0 !== s) {
363
- const t = h.getAttribute(s.toLowerCase() + o$4).split(n$4),
364
- i = /([.?@])?(.*)/.exec(s);
365
- v.push({
366
- type: 1,
367
- index: r,
368
- name: i[2],
369
- strings: t,
370
- ctor: "." === i[1] ? H$1 : "?" === i[1] ? L$1 : "@" === i[1] ? z$1 : k$1
371
- });
372
- } else v.push({
373
- type: 6,
374
- index: r
375
- });
376
- }
377
- for (const i of t) h.removeAttribute(i);
378
- }
379
- if (y$2.test(h.tagName)) {
380
- const t = h.textContent.split(n$4),
381
- i = t.length - 1;
382
- if (i > 0) {
383
- h.textContent = s$4 ? s$4.emptyScript : "";
384
- for (let s = 0; s < i; s++) h.append(t[s], u$1()), C$1.nextNode(), v.push({
385
- type: 2,
386
- index: ++r
387
- });
388
- h.append(t[i], u$1());
389
- }
390
- }
391
- } else if (8 === h.nodeType) if (h.data === l$4) v.push({
392
- type: 2,
393
- index: r
394
- });else {
395
- let t = -1;
396
- for (; -1 !== (t = h.data.indexOf(n$4, t + 1));) v.push({
397
- type: 7,
398
- index: r
399
- }), t += n$4.length - 1;
400
- }
401
- r++;
402
- }
403
- }
404
- static createElement(t, i) {
405
- const s = r$3.createElement("template");
406
- return s.innerHTML = t, s;
407
- }
408
- };
409
- function S$2(t, i, s = t, e) {
410
- var o, n, l, h;
411
- if (i === T$1) return i;
412
- let r = void 0 !== e ? null === (o = s._$Co) || void 0 === o ? void 0 : o[e] : s._$Cl;
413
- const u = d$1(i) ? void 0 : i._$litDirective$;
414
- return (null == r ? void 0 : r.constructor) !== u && (null === (n = null == r ? void 0 : r._$AO) || void 0 === n || n.call(r, !1), void 0 === u ? r = void 0 : (r = new u(t), r._$AT(t, s, e)), void 0 !== e ? (null !== (l = (h = s)._$Co) && void 0 !== l ? l : h._$Co = [])[e] = r : s._$Cl = r), void 0 !== r && (i = S$2(t, r._$AS(t, i.values), r, e)), i;
415
- }
416
- let M$1 = class M {
417
- constructor(t, i) {
418
- this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
419
- }
420
- get parentNode() {
421
- return this._$AM.parentNode;
422
- }
423
- get _$AU() {
424
- return this._$AM._$AU;
425
- }
426
- u(t) {
427
- var i;
428
- const {
429
- el: {
430
- content: s
431
- },
432
- parts: e
433
- } = this._$AD,
434
- o = (null !== (i = null == t ? void 0 : t.creationScope) && void 0 !== i ? i : r$3).importNode(s, !0);
435
- C$1.currentNode = o;
436
- let n = C$1.nextNode(),
437
- l = 0,
438
- h = 0,
439
- u = e[0];
440
- for (; void 0 !== u;) {
441
- if (l === u.index) {
442
- let i;
443
- 2 === u.type ? i = new R$1(n, n.nextSibling, this, t) : 1 === u.type ? i = new u.ctor(n, u.name, u.strings, this, t) : 6 === u.type && (i = new Z(n, this, t)), this._$AV.push(i), u = e[++h];
444
- }
445
- l !== (null == u ? void 0 : u.index) && (n = C$1.nextNode(), l++);
446
- }
447
- return C$1.currentNode = r$3, o;
448
- }
449
- v(t) {
450
- let i = 0;
451
- for (const s of this._$AV) void 0 !== s && (void 0 !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
452
- }
453
- };
454
- let R$1 = class R {
455
- constructor(t, i, s, e) {
456
- var o;
457
- this.type = 2, this._$AH = A$1, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cp = null === (o = null == e ? void 0 : e.isConnected) || void 0 === o || o;
458
- }
459
- get _$AU() {
460
- var t, i;
461
- return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cp;
462
- }
463
- get parentNode() {
464
- let t = this._$AA.parentNode;
465
- const i = this._$AM;
466
- return void 0 !== i && 11 === (null == t ? void 0 : t.nodeType) && (t = i.parentNode), t;
467
- }
468
- get startNode() {
469
- return this._$AA;
470
- }
471
- get endNode() {
472
- return this._$AB;
473
- }
474
- _$AI(t, i = this) {
475
- t = S$2(this, t, i), d$1(t) ? t === A$1 || null == t || "" === t ? (this._$AH !== A$1 && this._$AR(), this._$AH = A$1) : t !== this._$AH && t !== T$1 && this._(t) : void 0 !== t._$litType$ ? this.g(t) : void 0 !== t.nodeType ? this.$(t) : v$1(t) ? this.T(t) : this._(t);
476
- }
477
- k(t) {
478
- return this._$AA.parentNode.insertBefore(t, this._$AB);
479
- }
480
- $(t) {
481
- this._$AH !== t && (this._$AR(), this._$AH = this.k(t));
482
- }
483
- _(t) {
484
- this._$AH !== A$1 && d$1(this._$AH) ? this._$AA.nextSibling.data = t : this.$(r$3.createTextNode(t)), this._$AH = t;
485
- }
486
- g(t) {
487
- var i;
488
- const {
489
- values: s,
490
- _$litType$: e
491
- } = t,
492
- o = "number" == typeof e ? this._$AC(t) : (void 0 === e.el && (e.el = N$1.createElement(P$1(e.h, e.h[0]), this.options)), e);
493
- if ((null === (i = this._$AH) || void 0 === i ? void 0 : i._$AD) === o) this._$AH.v(s);else {
494
- const t = new M$1(o, this),
495
- i = t.u(this.options);
496
- t.v(s), this.$(i), this._$AH = t;
165
+ s = [...h$1(t), ...o$2(t)];
166
+ for (const i of s) this.createProperty(i, t[i]);
497
167
  }
498
- }
499
- _$AC(t) {
500
- let i = E$1.get(t.strings);
501
- return void 0 === i && E$1.set(t.strings, i = new N$1(t)), i;
502
- }
503
- T(t) {
504
- c$1(this._$AH) || (this._$AH = [], this._$AR());
505
- const i = this._$AH;
506
- let s,
507
- e = 0;
508
- for (const o of t) e === i.length ? i.push(s = new R(this.k(u$1()), this.k(u$1()), this, this.options)) : s = i[e], s._$AI(o), e++;
509
- e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
510
- }
511
- _$AR(t = this._$AA.nextSibling, i) {
512
- var s;
513
- for (null === (s = this._$AP) || void 0 === s || s.call(this, !1, !0, i); t && t !== this._$AB;) {
514
- const i = t.nextSibling;
515
- t.remove(), t = i;
168
+ const t = this[Symbol.metadata];
169
+ if (null !== t) {
170
+ const s = litPropertyMetadata.get(t);
171
+ if (void 0 !== s) for (const [t, i] of s) this.elementProperties.set(t, i);
516
172
  }
517
- }
518
- setConnected(t) {
519
- var i;
520
- void 0 === this._$AM && (this._$Cp = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
521
- }
522
- };
523
- let k$1 = class k {
524
- constructor(t, i, s, e, o) {
525
- this.type = 1, this._$AH = A$1, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = o, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = A$1;
526
- }
527
- get tagName() {
528
- return this.element.tagName;
529
- }
530
- get _$AU() {
531
- return this._$AM._$AU;
532
- }
533
- _$AI(t, i = this, s, e) {
534
- const o = this.strings;
535
- let n = !1;
536
- if (void 0 === o) t = S$2(this, t, i, 0), n = !d$1(t) || t !== this._$AH && t !== T$1, n && (this._$AH = t);else {
537
- const e = t;
538
- let l, h;
539
- for (t = o[0], l = 0; l < o.length - 1; l++) h = S$2(this, e[s + l], i, l), h === T$1 && (h = this._$AH[l]), n || (n = !d$1(h) || h !== this._$AH[l]), h === A$1 ? t = A$1 : t !== A$1 && (t += (null != h ? h : "") + o[l + 1]), this._$AH[l] = h;
173
+ this._$Eh = new Map();
174
+ for (const [t, s] of this.elementProperties) {
175
+ const i = this._$Eu(t, s);
176
+ void 0 !== i && this._$Eh.set(i, t);
540
177
  }
541
- n && !e && this.j(t);
542
- }
543
- j(t) {
544
- t === A$1 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "");
545
- }
546
- };
547
- let H$1 = class H extends k$1 {
548
- constructor() {
549
- super(...arguments), this.type = 3;
550
- }
551
- j(t) {
552
- this.element[this.name] = t === A$1 ? void 0 : t;
178
+ this.elementStyles = this.finalizeStyles(this.styles);
553
179
  }
554
- };
555
- const I$1 = s$4 ? s$4.emptyScript : "";
556
- let L$1 = class L extends k$1 {
557
- constructor() {
558
- super(...arguments), this.type = 4;
180
+ static finalizeStyles(s) {
181
+ const i = [];
182
+ if (Array.isArray(s)) {
183
+ const e = new Set(s.flat(1 / 0).reverse());
184
+ for (const s of e) i.unshift(c$2(s));
185
+ } else void 0 !== s && i.push(c$2(s));
186
+ return i;
559
187
  }
560
- j(t) {
561
- t && t !== A$1 ? this.element.setAttribute(this.name, I$1) : this.element.removeAttribute(this.name);
562
- }
563
- };
564
- let z$1 = class z extends k$1 {
565
- constructor(t, i, s, e, o) {
566
- super(t, i, s, e, o), this.type = 5;
567
- }
568
- _$AI(t, i = this) {
569
- var s;
570
- if ((t = null !== (s = S$2(this, t, i, 0)) && void 0 !== s ? s : A$1) === T$1) return;
571
- const e = this._$AH,
572
- o = t === A$1 && e !== A$1 || t.capture !== e.capture || t.once !== e.once || t.passive !== e.passive,
573
- n = t !== A$1 && (e === A$1 || o);
574
- o && this.element.removeEventListener(this.name, this, e), n && this.element.addEventListener(this.name, this, t), this._$AH = t;
575
- }
576
- handleEvent(t) {
577
- var i, s;
578
- "function" == typeof this._$AH ? this._$AH.call(null !== (s = null === (i = this.options) || void 0 === i ? void 0 : i.host) && void 0 !== s ? s : this.element, t) : this._$AH.handleEvent(t);
188
+ static _$Eu(t, s) {
189
+ const i = s.attribute;
190
+ return !1 === i ? void 0 : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : void 0;
579
191
  }
580
- };
581
- class Z {
582
- constructor(t, i, s) {
583
- this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
584
- }
585
- get _$AU() {
586
- return this._$AM._$AU;
587
- }
588
- _$AI(t) {
589
- S$2(this, t);
590
- }
591
- }
592
- const B$1 = i$2.litHtmlPolyfillSupport;
593
- null == B$1 || B$1(N$1, R$1), (null !== (t$2 = i$2.litHtmlVersions) && void 0 !== t$2 ? t$2 : i$2.litHtmlVersions = []).push("2.8.0");
594
-
595
- /**
596
- * @license
597
- * Copyright 2019 Google LLC
598
- * SPDX-License-Identifier: BSD-3-Clause
599
- */
600
- const t$1 = window.ShadowRoot && (void 0 === window.ShadyCSS || window.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
601
- e$2 = Symbol(),
602
- n$3 = new Map();
603
- let s$3 = class s {
604
- constructor(t, n) {
605
- if (this._$cssResult$ = !0, n !== e$2) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
606
- this.cssText = t;
607
- }
608
- get styleSheet() {
609
- let e = n$3.get(this.cssText);
610
- return t$1 && void 0 === e && (n$3.set(this.cssText, e = new CSSStyleSheet()), e.replaceSync(this.cssText)), e;
611
- }
612
- toString() {
613
- return this.cssText;
614
- }
615
- };
616
- const o$3 = t => new s$3("string" == typeof t ? t : t + "", e$2),
617
- r$2 = (t, ...n) => {
618
- const o = 1 === t.length ? t[0] : n.reduce((e, n, s) => e + (t => {
619
- if (!0 === t._$cssResult$) return t.cssText;
620
- if ("number" == typeof t) return t;
621
- throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
622
- })(n) + t[s + 1], t[0]);
623
- return new s$3(o, e$2);
624
- },
625
- i$1 = (e, n) => {
626
- t$1 ? e.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(t => {
627
- const n = document.createElement("style"),
628
- s = window.litNonce;
629
- void 0 !== s && n.setAttribute("nonce", s), n.textContent = t.cssText, e.appendChild(n);
630
- });
631
- },
632
- S$1 = t$1 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
633
- let e = "";
634
- for (const n of t.cssRules) e += n.cssText;
635
- return o$3(e);
636
- })(t) : t;
637
-
638
- /**
639
- * @license
640
- * Copyright 2017 Google LLC
641
- * SPDX-License-Identifier: BSD-3-Clause
642
- */
643
- var s$2;
644
- const e$1 = window.trustedTypes,
645
- r$1 = e$1 ? e$1.emptyScript : "",
646
- h$1 = window.reactiveElementPolyfillSupport,
647
- o$2 = {
648
- toAttribute(t, i) {
649
- switch (i) {
650
- case Boolean:
651
- t = t ? r$1 : null;
652
- break;
653
- case Object:
654
- case Array:
655
- t = null == t ? t : JSON.stringify(t);
656
- }
657
- return t;
658
- },
659
- fromAttribute(t, i) {
660
- let s = t;
661
- switch (i) {
662
- case Boolean:
663
- s = null !== t;
664
- break;
665
- case Number:
666
- s = null === t ? null : Number(t);
667
- break;
668
- case Object:
669
- case Array:
670
- try {
671
- s = JSON.parse(t);
672
- } catch (t) {
673
- s = null;
674
- }
675
- }
676
- return s;
677
- }
678
- },
679
- n$2 = (t, i) => i !== t && (i == i || t == t),
680
- l$3 = {
681
- attribute: !0,
682
- type: String,
683
- converter: o$2,
684
- reflect: !1,
685
- hasChanged: n$2
686
- };
687
- let a$1 = class a extends HTMLElement {
688
192
  constructor() {
689
- super(), this._$Et = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$Ei = null, this.o();
193
+ super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
690
194
  }
691
- static addInitializer(t) {
692
- var i;
693
- null !== (i = this.l) && void 0 !== i || (this.l = []), this.l.push(t);
694
- }
695
- static get observedAttributes() {
696
- this.finalize();
697
- const t = [];
698
- return this.elementProperties.forEach((i, s) => {
699
- const e = this._$Eh(s, i);
700
- void 0 !== e && (this._$Eu.set(e, s), t.push(e));
701
- }), t;
702
- }
703
- static createProperty(t, i = l$3) {
704
- if (i.state && (i.attribute = !1), this.finalize(), this.elementProperties.set(t, i), !i.noAccessor && !this.prototype.hasOwnProperty(t)) {
705
- const s = "symbol" == typeof t ? Symbol() : "__" + t,
706
- e = this.getPropertyDescriptor(t, s, i);
707
- void 0 !== e && Object.defineProperty(this.prototype, t, e);
708
- }
709
- }
710
- static getPropertyDescriptor(t, i, s) {
711
- return {
712
- get() {
713
- return this[i];
714
- },
715
- set(e) {
716
- const r = this[t];
717
- this[i] = e, this.requestUpdate(t, r, s);
718
- },
719
- configurable: !0,
720
- enumerable: !0
721
- };
722
- }
723
- static getPropertyOptions(t) {
724
- return this.elementProperties.get(t) || l$3;
725
- }
726
- static finalize() {
727
- if (this.hasOwnProperty("finalized")) return !1;
728
- this.finalized = !0;
729
- const t = Object.getPrototypeOf(this);
730
- if (t.finalize(), this.elementProperties = new Map(t.elementProperties), this._$Eu = new Map(), this.hasOwnProperty("properties")) {
731
- const t = this.properties,
732
- i = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
733
- for (const s of i) this.createProperty(s, t[s]);
734
- }
735
- return this.elementStyles = this.finalizeStyles(this.styles), !0;
736
- }
737
- static finalizeStyles(i) {
738
- const s = [];
739
- if (Array.isArray(i)) {
740
- const e = new Set(i.flat(1 / 0).reverse());
741
- for (const i of e) s.unshift(S$1(i));
742
- } else void 0 !== i && s.push(S$1(i));
743
- return s;
744
- }
745
- static _$Eh(t, i) {
746
- const s = i.attribute;
747
- return !1 === s ? void 0 : "string" == typeof s ? s : "string" == typeof t ? t.toLowerCase() : void 0;
748
- }
749
- o() {
750
- var t;
751
- this._$Ep = new Promise(t => this.enableUpdating = t), this._$AL = new Map(), this._$Em(), this.requestUpdate(), null === (t = this.constructor.l) || void 0 === t || t.forEach(t => t(this));
195
+ _$Ev() {
196
+ this._$Eg = new Promise(t => this.enableUpdating = t), this._$AL = new Map(), this._$ES(), this.requestUpdate(), this.constructor.l?.forEach(t => t(this));
752
197
  }
753
198
  addController(t) {
754
- var i, s;
755
- (null !== (i = this._$Eg) && void 0 !== i ? i : this._$Eg = []).push(t), void 0 !== this.renderRoot && this.isConnected && (null === (s = t.hostConnected) || void 0 === s || s.call(t));
199
+ (this._$E_ ??= new Set()).add(t), void 0 !== this.renderRoot && this.isConnected && t.hostConnected?.();
756
200
  }
757
201
  removeController(t) {
758
- var i;
759
- null === (i = this._$Eg) || void 0 === i || i.splice(this._$Eg.indexOf(t) >>> 0, 1);
202
+ this._$E_?.delete(t);
760
203
  }
761
- _$Em() {
762
- this.constructor.elementProperties.forEach((t, i) => {
763
- this.hasOwnProperty(i) && (this._$Et.set(i, this[i]), delete this[i]);
764
- });
204
+ _$ES() {
205
+ const t = new Map(),
206
+ s = this.constructor.elementProperties;
207
+ for (const i of s.keys()) this.hasOwnProperty(i) && (t.set(i, this[i]), delete this[i]);
208
+ t.size > 0 && (this._$Ep = t);
765
209
  }
766
210
  createRenderRoot() {
767
- var t;
768
- const s = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
769
- return i$1(s, this.constructor.elementStyles), s;
211
+ const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
212
+ return S$1(t, this.constructor.elementStyles), t;
770
213
  }
771
214
  connectedCallback() {
772
- var t;
773
- void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
774
- var i;
775
- return null === (i = t.hostConnected) || void 0 === i ? void 0 : i.call(t);
776
- });
215
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$E_?.forEach(t => t.hostConnected?.());
777
216
  }
778
217
  enableUpdating(t) {}
779
218
  disconnectedCallback() {
780
- var t;
781
- null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
782
- var i;
783
- return null === (i = t.hostDisconnected) || void 0 === i ? void 0 : i.call(t);
784
- });
219
+ this._$E_?.forEach(t => t.hostDisconnected?.());
785
220
  }
786
- attributeChangedCallback(t, i, s) {
787
- this._$AK(t, s);
221
+ attributeChangedCallback(t, s, i) {
222
+ this._$AK(t, i);
788
223
  }
789
- _$ES(t, i, s = l$3) {
790
- var e, r;
791
- const h = this.constructor._$Eh(t, s);
792
- if (void 0 !== h && !0 === s.reflect) {
793
- const n = (null !== (r = null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) && void 0 !== r ? r : o$2.toAttribute)(i, s.type);
794
- this._$Ei = t, null == n ? this.removeAttribute(h) : this.setAttribute(h, n), this._$Ei = null;
224
+ _$EO(t, s) {
225
+ const i = this.constructor.elementProperties.get(t),
226
+ e = this.constructor._$Eu(t, i);
227
+ if (void 0 !== e && !0 === i.reflect) {
228
+ const r = (void 0 !== i.converter?.toAttribute ? i.converter : u$1).toAttribute(s, i.type);
229
+ this._$Em = t, null == r ? this.removeAttribute(e) : this.setAttribute(e, r), this._$Em = null;
795
230
  }
796
231
  }
797
- _$AK(t, i) {
798
- var s, e, r;
799
- const h = this.constructor,
800
- n = h._$Eu.get(t);
801
- if (void 0 !== n && this._$Ei !== n) {
802
- const t = h.getPropertyOptions(n),
803
- l = t.converter,
804
- a = null !== (r = null !== (e = null === (s = l) || void 0 === s ? void 0 : s.fromAttribute) && void 0 !== e ? e : "function" == typeof l ? l : null) && void 0 !== r ? r : o$2.fromAttribute;
805
- this._$Ei = n, this[n] = a(i, t.type), this._$Ei = null;
232
+ _$AK(t, s) {
233
+ const i = this.constructor,
234
+ e = i._$Eh.get(t);
235
+ if (void 0 !== e && this._$Em !== e) {
236
+ const t = i.getPropertyOptions(e),
237
+ r = "function" == typeof t.converter ? {
238
+ fromAttribute: t.converter
239
+ } : void 0 !== t.converter?.fromAttribute ? t.converter : u$1;
240
+ this._$Em = e, this[e] = r.fromAttribute(s, t.type), this._$Em = null;
241
+ }
242
+ }
243
+ requestUpdate(t, s, i, e = !1, r) {
244
+ if (void 0 !== t) {
245
+ if (i ??= this.constructor.getPropertyOptions(t), !(i.hasChanged ?? f$1)(e ? r : this[t], s)) return;
246
+ this.C(t, s, i);
806
247
  }
248
+ !1 === this.isUpdatePending && (this._$Eg = this._$EP());
807
249
  }
808
- requestUpdate(t, i, s) {
809
- let e = !0;
810
- void 0 !== t && (((s = s || this.constructor.getPropertyOptions(t)).hasChanged || n$2)(this[t], i) ? (this._$AL.has(t) || this._$AL.set(t, i), !0 === s.reflect && this._$Ei !== t && (void 0 === this._$EC && (this._$EC = new Map()), this._$EC.set(t, s))) : e = !1), !this.isUpdatePending && e && (this._$Ep = this._$E_());
250
+ C(t, s, i) {
251
+ this._$AL.has(t) || this._$AL.set(t, s), !0 === i.reflect && this._$Em !== t && (this._$Ej ??= new Set()).add(t);
811
252
  }
812
- async _$E_() {
253
+ async _$EP() {
813
254
  this.isUpdatePending = !0;
814
255
  try {
815
- await this._$Ep;
256
+ await this._$Eg;
816
257
  } catch (t) {
817
258
  Promise.reject(t);
818
259
  }
@@ -823,192 +264,184 @@
823
264
  return this.performUpdate();
824
265
  }
825
266
  performUpdate() {
826
- var t;
827
267
  if (!this.isUpdatePending) return;
828
- this.hasUpdated, this._$Et && (this._$Et.forEach((t, i) => this[i] = t), this._$Et = void 0);
829
- let i = !1;
268
+ if (!this.hasUpdated) {
269
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
270
+ for (const [t, s] of this._$Ep) this[t] = s;
271
+ this._$Ep = void 0;
272
+ }
273
+ const t = this.constructor.elementProperties;
274
+ if (t.size > 0) for (const [s, i] of t) !0 !== i.wrapped || this._$AL.has(s) || void 0 === this[s] || this.C(s, this[s], i);
275
+ }
276
+ let t = !1;
830
277
  const s = this._$AL;
831
278
  try {
832
- i = this.shouldUpdate(s), i ? (this.willUpdate(s), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
833
- var i;
834
- return null === (i = t.hostUpdate) || void 0 === i ? void 0 : i.call(t);
835
- }), this.update(s)) : this._$EU();
836
- } catch (t) {
837
- throw i = !1, this._$EU(), t;
279
+ t = this.shouldUpdate(s), t ? (this.willUpdate(s), this._$E_?.forEach(t => t.hostUpdate?.()), this.update(s)) : this._$ET();
280
+ } catch (s) {
281
+ throw t = !1, this._$ET(), s;
838
282
  }
839
- i && this._$AE(s);
283
+ t && this._$AE(s);
840
284
  }
841
285
  willUpdate(t) {}
842
286
  _$AE(t) {
843
- var i;
844
- null === (i = this._$Eg) || void 0 === i || i.forEach(t => {
845
- var i;
846
- return null === (i = t.hostUpdated) || void 0 === i ? void 0 : i.call(t);
847
- }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
287
+ this._$E_?.forEach(t => t.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
848
288
  }
849
- _$EU() {
289
+ _$ET() {
850
290
  this._$AL = new Map(), this.isUpdatePending = !1;
851
291
  }
852
292
  get updateComplete() {
853
293
  return this.getUpdateComplete();
854
294
  }
855
295
  getUpdateComplete() {
856
- return this._$Ep;
296
+ return this._$Eg;
857
297
  }
858
298
  shouldUpdate(t) {
859
299
  return !0;
860
300
  }
861
301
  update(t) {
862
- void 0 !== this._$EC && (this._$EC.forEach((t, i) => this._$ES(i, this[i], t)), this._$EC = void 0), this._$EU();
302
+ this._$Ej &&= this._$Ej.forEach(t => this._$EO(t, this[t])), this._$ET();
863
303
  }
864
304
  updated(t) {}
865
305
  firstUpdated(t) {}
866
306
  };
867
- a$1.finalized = !0, a$1.elementProperties = new Map(), a$1.elementStyles = [], a$1.shadowRootOptions = {
307
+ b$1.elementStyles = [], b$1.shadowRootOptions = {
868
308
  mode: "open"
869
- }, null == h$1 || h$1({
870
- ReactiveElement: a$1
871
- }), (null !== (s$2 = globalThis.reactiveElementVersions) && void 0 !== s$2 ? s$2 : globalThis.reactiveElementVersions = []).push("1.3.1");
309
+ }, b$1[d$1("elementProperties")] = new Map(), b$1[d$1("finalized")] = new Map(), p$1?.({
310
+ ReactiveElement: b$1
311
+ }), (a$1.reactiveElementVersions ??= []).push("2.0.2");
872
312
 
873
313
  /**
874
314
  * @license
875
315
  * Copyright 2017 Google LLC
876
316
  * SPDX-License-Identifier: BSD-3-Clause
877
317
  */
878
- var t;
879
- const i = window,
880
- s$1 = i.trustedTypes,
881
- e = s$1 ? s$1.createPolicy("lit-html", {
318
+ const t = globalThis,
319
+ i = t.trustedTypes,
320
+ s$1 = i ? i.createPolicy("lit-html", {
882
321
  createHTML: t => t
883
322
  }) : void 0,
884
- o$1 = "$lit$",
885
- n$1 = `lit$${(Math.random() + "").slice(9)}$`,
886
- l$2 = "?" + n$1,
887
- h = `<${l$2}>`,
888
- r = document,
889
- d = () => r.createComment(""),
890
- u = t => null === t || "object" != typeof t && "function" != typeof t,
891
- c = Array.isArray,
892
- v = t => c(t) || "function" == typeof (null == t ? void 0 : t[Symbol.iterator]),
893
- a = "[ \t\n\f\r]",
323
+ e = "$lit$",
324
+ h = `lit$${(Math.random() + "").slice(9)}$`,
325
+ o$1 = "?" + h,
326
+ n = `<${o$1}>`,
327
+ r$1 = document,
328
+ l = () => r$1.createComment(""),
329
+ c = t => null === t || "object" != typeof t && "function" != typeof t,
330
+ a = Array.isArray,
331
+ u = t => a(t) || "function" == typeof t?.[Symbol.iterator],
332
+ d = "[ \t\n\f\r]",
894
333
  f = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
895
- _ = /-->/g,
896
- m = />/g,
897
- p = RegExp(`>|${a}(?:([^\\s"'>=/]+)(${a}*=${a}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
898
- g = /'/g,
899
- $ = /"/g,
900
- y$1 = /^(?:script|style|textarea|title)$/i,
901
- w = t => (i, ...s) => ({
334
+ v = /-->/g,
335
+ _ = />/g,
336
+ m = RegExp(`>|${d}(?:([^\\s"'>=/]+)(${d}*=${d}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
337
+ p = /'/g,
338
+ g = /"/g,
339
+ $ = /^(?:script|style|textarea|title)$/i,
340
+ y$1 = t => (i, ...s) => ({
902
341
  _$litType$: t,
903
342
  strings: i,
904
343
  values: s
905
344
  }),
906
- x$1 = w(1),
907
- b = w(2),
908
- T = Symbol.for("lit-noChange"),
909
- A = Symbol.for("lit-nothing"),
910
- E = new WeakMap(),
911
- C = r.createTreeWalker(r, 129, null, !1),
912
- P = (t, i) => {
913
- const s = t.length - 1,
914
- l = [];
915
- let r,
916
- d = 2 === i ? "<svg>" : "",
917
- u = f;
918
- for (let i = 0; i < s; i++) {
919
- const s = t[i];
920
- let e,
921
- c,
922
- v = -1,
923
- a = 0;
924
- for (; a < s.length && (u.lastIndex = a, c = u.exec(s), null !== c);) a = u.lastIndex, u === f ? "!--" === c[1] ? u = _ : void 0 !== c[1] ? u = m : void 0 !== c[2] ? (y$1.test(c[2]) && (r = RegExp("</" + c[2], "g")), u = p) : void 0 !== c[3] && (u = p) : u === p ? ">" === c[0] ? (u = null != r ? r : f, v = -1) : void 0 === c[1] ? v = -2 : (v = u.lastIndex - c[2].length, e = c[1], u = void 0 === c[3] ? p : '"' === c[3] ? $ : g) : u === $ || u === g ? u = p : u === _ || u === m ? u = f : (u = p, r = void 0);
925
- const w = u === p && t[i + 1].startsWith("/>") ? " " : "";
926
- d += u === f ? s + h : v >= 0 ? (l.push(e), s.slice(0, v) + o$1 + s.slice(v) + n$1 + w) : s + n$1 + (-2 === v ? (l.push(void 0), i) : w);
927
- }
928
- const c = d + (t[s] || "<?>") + (2 === i ? "</svg>" : "");
929
- if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
930
- return [void 0 !== e ? e.createHTML(c) : c, l];
931
- };
345
+ x$1 = y$1(1),
346
+ b = y$1(2),
347
+ w = Symbol.for("lit-noChange"),
348
+ T = Symbol.for("lit-nothing"),
349
+ A = new WeakMap(),
350
+ E = r$1.createTreeWalker(r$1, 129);
351
+ function C(t, i) {
352
+ if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
353
+ return void 0 !== s$1 ? s$1.createHTML(i) : i;
354
+ }
355
+ const P = (t, i) => {
356
+ const s = t.length - 1,
357
+ o = [];
358
+ let r,
359
+ l = 2 === i ? "<svg>" : "",
360
+ c = f;
361
+ for (let i = 0; i < s; i++) {
362
+ const s = t[i];
363
+ let a,
364
+ u,
365
+ d = -1,
366
+ y = 0;
367
+ for (; y < s.length && (c.lastIndex = y, u = c.exec(s), null !== u);) y = c.lastIndex, c === f ? "!--" === u[1] ? c = v : void 0 !== u[1] ? c = _ : void 0 !== u[2] ? ($.test(u[2]) && (r = RegExp("</" + u[2], "g")), c = m) : void 0 !== u[3] && (c = m) : c === m ? ">" === u[0] ? (c = r ?? f, d = -1) : void 0 === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = void 0 === u[3] ? m : '"' === u[3] ? g : p) : c === g || c === p ? c = m : c === v || c === _ ? c = f : (c = m, r = void 0);
368
+ const x = c === m && t[i + 1].startsWith("/>") ? " " : "";
369
+ l += c === f ? s + n : d >= 0 ? (o.push(a), s.slice(0, d) + e + s.slice(d) + h + x) : s + h + (-2 === d ? i : x);
370
+ }
371
+ return [C(t, l + (t[s] || "<?>") + (2 === i ? "</svg>" : "")), o];
372
+ };
932
373
  class V {
933
374
  constructor({
934
375
  strings: t,
935
- _$litType$: i
936
- }, e) {
937
- let h;
376
+ _$litType$: s
377
+ }, n) {
378
+ let r;
938
379
  this.parts = [];
939
- let r = 0,
940
- u = 0;
941
- const c = t.length - 1,
942
- v = this.parts,
943
- [a, f] = P(t, i);
944
- if (this.el = V.createElement(a, e), C.currentNode = this.el.content, 2 === i) {
945
- const t = this.el.content,
946
- i = t.firstChild;
947
- i.remove(), t.append(...i.childNodes);
380
+ let c = 0,
381
+ a = 0;
382
+ const u = t.length - 1,
383
+ d = this.parts,
384
+ [f, v] = P(t, s);
385
+ if (this.el = V.createElement(f, n), E.currentNode = this.el.content, 2 === s) {
386
+ const t = this.el.content.firstChild;
387
+ t.replaceWith(...t.childNodes);
948
388
  }
949
- for (; null !== (h = C.nextNode()) && v.length < c;) {
950
- if (1 === h.nodeType) {
951
- if (h.hasAttributes()) {
952
- const t = [];
953
- for (const i of h.getAttributeNames()) if (i.endsWith(o$1) || i.startsWith(n$1)) {
954
- const s = f[u++];
955
- if (t.push(i), void 0 !== s) {
956
- const t = h.getAttribute(s.toLowerCase() + o$1).split(n$1),
957
- i = /([.?@])?(.*)/.exec(s);
958
- v.push({
959
- type: 1,
960
- index: r,
961
- name: i[2],
962
- strings: t,
963
- ctor: "." === i[1] ? k : "?" === i[1] ? I : "@" === i[1] ? L : R
964
- });
965
- } else v.push({
966
- type: 6,
967
- index: r
968
- });
969
- }
970
- for (const i of t) h.removeAttribute(i);
971
- }
972
- if (y$1.test(h.tagName)) {
973
- const t = h.textContent.split(n$1),
974
- i = t.length - 1;
975
- if (i > 0) {
976
- h.textContent = s$1 ? s$1.emptyScript : "";
977
- for (let s = 0; s < i; s++) h.append(t[s], d()), C.nextNode(), v.push({
389
+ for (; null !== (r = E.nextNode()) && d.length < u;) {
390
+ if (1 === r.nodeType) {
391
+ if (r.hasAttributes()) for (const t of r.getAttributeNames()) if (t.endsWith(e)) {
392
+ const i = v[a++],
393
+ s = r.getAttribute(t).split(h),
394
+ e = /([.?@])?(.*)/.exec(i);
395
+ d.push({
396
+ type: 1,
397
+ index: c,
398
+ name: e[2],
399
+ strings: s,
400
+ ctor: "." === e[1] ? k : "?" === e[1] ? H : "@" === e[1] ? I : R
401
+ }), r.removeAttribute(t);
402
+ } else t.startsWith(h) && (d.push({
403
+ type: 6,
404
+ index: c
405
+ }), r.removeAttribute(t));
406
+ if ($.test(r.tagName)) {
407
+ const t = r.textContent.split(h),
408
+ s = t.length - 1;
409
+ if (s > 0) {
410
+ r.textContent = i ? i.emptyScript : "";
411
+ for (let i = 0; i < s; i++) r.append(t[i], l()), E.nextNode(), d.push({
978
412
  type: 2,
979
- index: ++r
413
+ index: ++c
980
414
  });
981
- h.append(t[i], d());
415
+ r.append(t[s], l());
982
416
  }
983
417
  }
984
- } else if (8 === h.nodeType) if (h.data === l$2) v.push({
418
+ } else if (8 === r.nodeType) if (r.data === o$1) d.push({
985
419
  type: 2,
986
- index: r
420
+ index: c
987
421
  });else {
988
422
  let t = -1;
989
- for (; -1 !== (t = h.data.indexOf(n$1, t + 1));) v.push({
423
+ for (; -1 !== (t = r.data.indexOf(h, t + 1));) d.push({
990
424
  type: 7,
991
- index: r
992
- }), t += n$1.length - 1;
425
+ index: c
426
+ }), t += h.length - 1;
993
427
  }
994
- r++;
428
+ c++;
995
429
  }
996
430
  }
997
431
  static createElement(t, i) {
998
- const s = r.createElement("template");
432
+ const s = r$1.createElement("template");
999
433
  return s.innerHTML = t, s;
1000
434
  }
1001
435
  }
1002
436
  function N(t, i, s = t, e) {
1003
- var o, n, l, h;
1004
- if (i === T) return i;
1005
- let r = void 0 !== e ? null === (o = s._$Co) || void 0 === o ? void 0 : o[e] : s._$Cl;
1006
- const d = u(i) ? void 0 : i._$litDirective$;
1007
- return (null == r ? void 0 : r.constructor) !== d && (null === (n = null == r ? void 0 : r._$AO) || void 0 === n || n.call(r, !1), void 0 === d ? r = void 0 : (r = new d(t), r._$AT(t, s, e)), void 0 !== e ? (null !== (l = (h = s)._$Co) && void 0 !== l ? l : h._$Co = [])[e] = r : s._$Cl = r), void 0 !== r && (i = N(t, r._$AS(t, i.values), r, e)), i;
437
+ if (i === w) return i;
438
+ let h = void 0 !== e ? s._$Co?.[e] : s._$Cl;
439
+ const o = c(i) ? void 0 : i._$litDirective$;
440
+ return h?.constructor !== o && (h?._$AO?.(!1), void 0 === o ? h = void 0 : (h = new o(t), h._$AT(t, s, e)), void 0 !== e ? (s._$Co ??= [])[e] = h : s._$Cl = h), void 0 !== h && (i = N(t, h._$AS(t, i.values), h, e)), i;
1008
441
  }
1009
442
  class S {
1010
443
  constructor(t, i) {
1011
- this.u = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
444
+ this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
1012
445
  }
1013
446
  get parentNode() {
1014
447
  return this._$AM.parentNode;
@@ -1016,47 +449,44 @@
1016
449
  get _$AU() {
1017
450
  return this._$AM._$AU;
1018
451
  }
1019
- v(t) {
1020
- var i;
452
+ u(t) {
1021
453
  const {
1022
454
  el: {
1023
- content: s
455
+ content: i
1024
456
  },
1025
- parts: e
457
+ parts: s
1026
458
  } = this._$AD,
1027
- o = (null !== (i = null == t ? void 0 : t.creationScope) && void 0 !== i ? i : r).importNode(s, !0);
1028
- C.currentNode = o;
1029
- let n = C.nextNode(),
1030
- l = 0,
1031
- h = 0,
1032
- d = e[0];
1033
- for (; void 0 !== d;) {
1034
- if (l === d.index) {
459
+ e = (t?.creationScope ?? r$1).importNode(i, !0);
460
+ E.currentNode = e;
461
+ let h = E.nextNode(),
462
+ o = 0,
463
+ n = 0,
464
+ l = s[0];
465
+ for (; void 0 !== l;) {
466
+ if (o === l.index) {
1035
467
  let i;
1036
- 2 === d.type ? i = new M(n, n.nextSibling, this, t) : 1 === d.type ? i = new d.ctor(n, d.name, d.strings, this, t) : 6 === d.type && (i = new z(n, this, t)), this.u.push(i), d = e[++h];
468
+ 2 === l.type ? i = new M(h, h.nextSibling, this, t) : 1 === l.type ? i = new l.ctor(h, l.name, l.strings, this, t) : 6 === l.type && (i = new L(h, this, t)), this._$AV.push(i), l = s[++n];
1037
469
  }
1038
- l !== (null == d ? void 0 : d.index) && (n = C.nextNode(), l++);
470
+ o !== l?.index && (h = E.nextNode(), o++);
1039
471
  }
1040
- return o;
472
+ return E.currentNode = r$1, e;
1041
473
  }
1042
474
  p(t) {
1043
475
  let i = 0;
1044
- for (const s of this.u) void 0 !== s && (void 0 !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
476
+ for (const s of this._$AV) void 0 !== s && (void 0 !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
1045
477
  }
1046
478
  }
1047
479
  class M {
1048
- constructor(t, i, s, e) {
1049
- var o;
1050
- this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cm = null === (o = null == e ? void 0 : e.isConnected) || void 0 === o || o;
1051
- }
1052
480
  get _$AU() {
1053
- var t, i;
1054
- return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cm;
481
+ return this._$AM?._$AU ?? this._$Cv;
482
+ }
483
+ constructor(t, i, s, e) {
484
+ this.type = 2, this._$AH = T, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = e?.isConnected ?? !0;
1055
485
  }
1056
486
  get parentNode() {
1057
487
  let t = this._$AA.parentNode;
1058
488
  const i = this._$AM;
1059
- return void 0 !== i && 11 === (null == t ? void 0 : t.nodeType) && (t = i.parentNode), t;
489
+ return void 0 !== i && 11 === t?.nodeType && (t = i.parentNode), t;
1060
490
  }
1061
491
  get startNode() {
1062
492
  return this._$AA;
@@ -1065,113 +495,107 @@
1065
495
  return this._$AB;
1066
496
  }
1067
497
  _$AI(t, i = this) {
1068
- t = N(this, t, i), u(t) ? t === A || null == t || "" === t ? (this._$AH !== A && this._$AR(), this._$AH = A) : t !== this._$AH && t !== T && this.g(t) : void 0 !== t._$litType$ ? this.$(t) : void 0 !== t.nodeType ? this.T(t) : v(t) ? this.k(t) : this.g(t);
498
+ t = N(this, t, i), c(t) ? t === T || null == t || "" === t ? (this._$AH !== T && this._$AR(), this._$AH = T) : t !== this._$AH && t !== w && this._(t) : void 0 !== t._$litType$ ? this.g(t) : void 0 !== t.nodeType ? this.$(t) : u(t) ? this.T(t) : this._(t);
1069
499
  }
1070
- S(t) {
500
+ k(t) {
1071
501
  return this._$AA.parentNode.insertBefore(t, this._$AB);
1072
502
  }
1073
- T(t) {
1074
- this._$AH !== t && (this._$AR(), this._$AH = this.S(t));
503
+ $(t) {
504
+ this._$AH !== t && (this._$AR(), this._$AH = this.k(t));
1075
505
  }
1076
- g(t) {
1077
- this._$AH !== A && u(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r.createTextNode(t)), this._$AH = t;
506
+ _(t) {
507
+ this._$AH !== T && c(this._$AH) ? this._$AA.nextSibling.data = t : this.$(r$1.createTextNode(t)), this._$AH = t;
1078
508
  }
1079
- $(t) {
1080
- var i;
509
+ g(t) {
1081
510
  const {
1082
- values: s,
1083
- _$litType$: e
511
+ values: i,
512
+ _$litType$: s
1084
513
  } = t,
1085
- o = "number" == typeof e ? this._$AC(t) : (void 0 === e.el && (e.el = V.createElement(e.h, this.options)), e);
1086
- if ((null === (i = this._$AH) || void 0 === i ? void 0 : i._$AD) === o) this._$AH.p(s);else {
1087
- const t = new S(o, this),
1088
- i = t.v(this.options);
1089
- t.p(s), this.T(i), this._$AH = t;
514
+ e = "number" == typeof s ? this._$AC(t) : (void 0 === s.el && (s.el = V.createElement(C(s.h, s.h[0]), this.options)), s);
515
+ if (this._$AH?._$AD === e) this._$AH.p(i);else {
516
+ const t = new S(e, this),
517
+ s = t.u(this.options);
518
+ t.p(i), this.$(s), this._$AH = t;
1090
519
  }
1091
520
  }
1092
521
  _$AC(t) {
1093
- let i = E.get(t.strings);
1094
- return void 0 === i && E.set(t.strings, i = new V(t)), i;
522
+ let i = A.get(t.strings);
523
+ return void 0 === i && A.set(t.strings, i = new V(t)), i;
1095
524
  }
1096
- k(t) {
1097
- c(this._$AH) || (this._$AH = [], this._$AR());
525
+ T(t) {
526
+ a(this._$AH) || (this._$AH = [], this._$AR());
1098
527
  const i = this._$AH;
1099
528
  let s,
1100
529
  e = 0;
1101
- for (const o of t) e === i.length ? i.push(s = new M(this.S(d()), this.S(d()), this, this.options)) : s = i[e], s._$AI(o), e++;
530
+ for (const h of t) e === i.length ? i.push(s = new M(this.k(l()), this.k(l()), this, this.options)) : s = i[e], s._$AI(h), e++;
1102
531
  e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
1103
532
  }
1104
533
  _$AR(t = this._$AA.nextSibling, i) {
1105
- var s;
1106
- for (null === (s = this._$AP) || void 0 === s || s.call(this, !1, !0, i); t && t !== this._$AB;) {
534
+ for (this._$AP?.(!1, !0, i); t && t !== this._$AB;) {
1107
535
  const i = t.nextSibling;
1108
536
  t.remove(), t = i;
1109
537
  }
1110
538
  }
1111
539
  setConnected(t) {
1112
- var i;
1113
- void 0 === this._$AM && (this._$Cm = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
540
+ void 0 === this._$AM && (this._$Cv = t, this._$AP?.(t));
1114
541
  }
1115
542
  }
1116
543
  class R {
1117
- constructor(t, i, s, e, o) {
1118
- this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = o, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = A;
1119
- }
1120
544
  get tagName() {
1121
545
  return this.element.tagName;
1122
546
  }
1123
547
  get _$AU() {
1124
548
  return this._$AM._$AU;
1125
549
  }
550
+ constructor(t, i, s, e, h) {
551
+ this.type = 1, this._$AH = T, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = T;
552
+ }
1126
553
  _$AI(t, i = this, s, e) {
1127
- const o = this.strings;
1128
- let n = !1;
1129
- if (void 0 === o) t = N(this, t, i, 0), n = !u(t) || t !== this._$AH && t !== T, n && (this._$AH = t);else {
554
+ const h = this.strings;
555
+ let o = !1;
556
+ if (void 0 === h) t = N(this, t, i, 0), o = !c(t) || t !== this._$AH && t !== w, o && (this._$AH = t);else {
1130
557
  const e = t;
1131
- let l, h;
1132
- for (t = o[0], l = 0; l < o.length - 1; l++) h = N(this, e[s + l], i, l), h === T && (h = this._$AH[l]), n || (n = !u(h) || h !== this._$AH[l]), h === A ? t = A : t !== A && (t += (null != h ? h : "") + o[l + 1]), this._$AH[l] = h;
558
+ let n, r;
559
+ for (t = h[0], n = 0; n < h.length - 1; n++) r = N(this, e[s + n], i, n), r === w && (r = this._$AH[n]), o ||= !c(r) || r !== this._$AH[n], r === T ? t = T : t !== T && (t += (r ?? "") + h[n + 1]), this._$AH[n] = r;
1133
560
  }
1134
- n && !e && this.j(t);
561
+ o && !e && this.O(t);
1135
562
  }
1136
- j(t) {
1137
- t === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "");
563
+ O(t) {
564
+ t === T ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
1138
565
  }
1139
566
  }
1140
567
  class k extends R {
1141
568
  constructor() {
1142
569
  super(...arguments), this.type = 3;
1143
570
  }
1144
- j(t) {
1145
- this.element[this.name] = t === A ? void 0 : t;
571
+ O(t) {
572
+ this.element[this.name] = t === T ? void 0 : t;
1146
573
  }
1147
574
  }
1148
- const H = s$1 ? s$1.emptyScript : "";
1149
- class I extends R {
575
+ class H extends R {
1150
576
  constructor() {
1151
577
  super(...arguments), this.type = 4;
1152
578
  }
1153
- j(t) {
1154
- t && t !== A ? this.element.setAttribute(this.name, H) : this.element.removeAttribute(this.name);
579
+ O(t) {
580
+ this.element.toggleAttribute(this.name, !!t && t !== T);
1155
581
  }
1156
582
  }
1157
- class L extends R {
1158
- constructor(t, i, s, e, o) {
1159
- super(t, i, s, e, o), this.type = 5;
583
+ class I extends R {
584
+ constructor(t, i, s, e, h) {
585
+ super(t, i, s, e, h), this.type = 5;
1160
586
  }
1161
587
  _$AI(t, i = this) {
1162
- var s;
1163
- if ((t = null !== (s = N(this, t, i, 0)) && void 0 !== s ? s : A) === T) return;
1164
- const e = this._$AH,
1165
- o = t === A && e !== A || t.capture !== e.capture || t.once !== e.once || t.passive !== e.passive,
1166
- n = t !== A && (e === A || o);
1167
- o && this.element.removeEventListener(this.name, this, e), n && this.element.addEventListener(this.name, this, t), this._$AH = t;
588
+ if ((t = N(this, t, i, 0) ?? T) === w) return;
589
+ const s = this._$AH,
590
+ e = t === T && s !== T || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive,
591
+ h = t !== T && (s === T || e);
592
+ e && this.element.removeEventListener(this.name, this, s), h && this.element.addEventListener(this.name, this, t), this._$AH = t;
1168
593
  }
1169
594
  handleEvent(t) {
1170
- var i, s;
1171
- "function" == typeof this._$AH ? this._$AH.call(null !== (s = null === (i = this.options) || void 0 === i ? void 0 : i.host) && void 0 !== s ? s : this.element, t) : this._$AH.handleEvent(t);
595
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
1172
596
  }
1173
597
  }
1174
- class z {
598
+ class L {
1175
599
  constructor(t, i, s) {
1176
600
  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
1177
601
  }
@@ -1182,17 +606,16 @@
1182
606
  N(this, t);
1183
607
  }
1184
608
  }
1185
- const j = i.litHtmlPolyfillSupport;
1186
- null == j || j(V, M), (null !== (t = i.litHtmlVersions) && void 0 !== t ? t : i.litHtmlVersions = []).push("2.7.0");
1187
- const B = (t, i, s) => {
1188
- var e, o;
1189
- const n = null !== (e = null == s ? void 0 : s.renderBefore) && void 0 !== e ? e : i;
1190
- let l = n._$litPart$;
1191
- if (void 0 === l) {
1192
- const t = null !== (o = null == s ? void 0 : s.renderBefore) && void 0 !== o ? o : null;
1193
- n._$litPart$ = l = new M(i.insertBefore(d(), t), t, void 0, null != s ? s : {});
609
+ const Z = t.litHtmlPolyfillSupport;
610
+ Z?.(V, M), (t.litHtmlVersions ??= []).push("3.1.0");
611
+ const j = (t, i, s) => {
612
+ const e = s?.renderBefore ?? i;
613
+ let h = e._$litPart$;
614
+ if (void 0 === h) {
615
+ const t = s?.renderBefore ?? null;
616
+ e._$litPart$ = h = new M(i.insertBefore(l(), t), t, void 0, s ?? {});
1194
617
  }
1195
- return l._$AI(t), l;
618
+ return h._$AI(t), h;
1196
619
  };
1197
620
 
1198
621
  /**
@@ -1200,55 +623,63 @@
1200
623
  * Copyright 2017 Google LLC
1201
624
  * SPDX-License-Identifier: BSD-3-Clause
1202
625
  */
1203
- var l$1, o;
1204
- class s extends a$1 {
626
+ class s extends b$1 {
1205
627
  constructor() {
1206
628
  super(...arguments), this.renderOptions = {
1207
629
  host: this
1208
630
  }, this._$Do = void 0;
1209
631
  }
1210
632
  createRenderRoot() {
1211
- var t, e;
1212
- const i = super.createRenderRoot();
1213
- return null !== (t = (e = this.renderOptions).renderBefore) && void 0 !== t || (e.renderBefore = i.firstChild), i;
633
+ const t = super.createRenderRoot();
634
+ return this.renderOptions.renderBefore ??= t.firstChild, t;
1214
635
  }
1215
636
  update(t) {
1216
637
  const i = this.render();
1217
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = B(i, this.renderRoot, this.renderOptions);
638
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = j(i, this.renderRoot, this.renderOptions);
1218
639
  }
1219
640
  connectedCallback() {
1220
- var t;
1221
- super.connectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!0);
641
+ super.connectedCallback(), this._$Do?.setConnected(!0);
1222
642
  }
1223
643
  disconnectedCallback() {
1224
- var t;
1225
- super.disconnectedCallback(), null === (t = this._$Do) || void 0 === t || t.setConnected(!1);
644
+ super.disconnectedCallback(), this._$Do?.setConnected(!1);
1226
645
  }
1227
646
  render() {
1228
- return T;
647
+ return w;
1229
648
  }
1230
649
  }
1231
- s.finalized = !0, s._$litElement$ = !0, null === (l$1 = globalThis.litElementHydrateSupport) || void 0 === l$1 || l$1.call(globalThis, {
650
+ s._$litElement$ = !0, s[("finalized")] = !0, globalThis.litElementHydrateSupport?.({
1232
651
  LitElement: s
1233
652
  });
1234
- const n = globalThis.litElementPolyfillSupport;
1235
- null == n || n({
653
+ const r = globalThis.litElementPolyfillSupport;
654
+ r?.({
1236
655
  LitElement: s
1237
656
  });
1238
- (null !== (o = globalThis.litElementVersions) && void 0 !== o ? o : globalThis.litElementVersions = []).push("3.3.0");
657
+ (globalThis.litElementVersions ??= []).push("4.0.2");
1239
658
 
1240
659
  function ascending$2(a, b) {
1241
660
  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
1242
661
  }
1243
662
 
663
+ function descending(a, b) {
664
+ return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
665
+ }
666
+
1244
667
  function bisector(f) {
1245
- let delta = f;
1246
- let compare1 = f;
1247
- let compare2 = f;
668
+ let compare1, compare2, delta;
669
+
670
+ // If an accessor is specified, promote it to a comparator. In this case we
671
+ // can test whether the search value is (self-) comparable. We can’t do this
672
+ // for a comparator (except for specific, known comparators) because we can’t
673
+ // tell if the comparator is symmetric, and an asymmetric comparator can’t be
674
+ // used to test whether a single value is comparable.
1248
675
  if (f.length !== 2) {
1249
- delta = (d, x) => f(d) - x;
1250
676
  compare1 = ascending$2;
1251
677
  compare2 = (d, x) => ascending$2(f(d), x);
678
+ delta = (d, x) => f(d) - x;
679
+ } else {
680
+ compare1 = f === ascending$2 || f === descending ? f : zero$1;
681
+ compare2 = f;
682
+ delta = f;
1252
683
  }
1253
684
  function left(a, x, lo = 0, hi = a.length) {
1254
685
  if (lo < hi) {
@@ -1280,6 +711,9 @@
1280
711
  right
1281
712
  };
1282
713
  }
714
+ function zero$1() {
715
+ return 0;
716
+ }
1283
717
 
1284
718
  function number$2(x) {
1285
719
  return x === null ? NaN : +x;
@@ -1290,7 +724,7 @@
1290
724
  bisector(number$2).center;
1291
725
  var bisect = bisectRight;
1292
726
 
1293
- function count$1(values, valueof) {
727
+ function count(values, valueof) {
1294
728
  let count = 0;
1295
729
  if (valueof === undefined) {
1296
730
  for (let value of values) {
@@ -1309,7 +743,7 @@
1309
743
  return count;
1310
744
  }
1311
745
 
1312
- function extent$1(values, valueof) {
746
+ function extent(values, valueof) {
1313
747
  let min;
1314
748
  let max;
1315
749
  if (valueof === undefined) {
@@ -1396,56 +830,63 @@
1396
830
  return () => x;
1397
831
  }
1398
832
 
1399
- var e10$1 = Math.sqrt(50),
1400
- e5$1 = Math.sqrt(10),
1401
- e2$1 = Math.sqrt(2);
1402
- function ticks$1(start, stop, count) {
1403
- var reverse,
1404
- i = -1,
1405
- n,
1406
- ticks,
1407
- step;
833
+ const e10 = Math.sqrt(50),
834
+ e5 = Math.sqrt(10),
835
+ e2 = Math.sqrt(2);
836
+ function tickSpec(start, stop, count) {
837
+ const step = (stop - start) / Math.max(0, count),
838
+ power = Math.floor(Math.log10(step)),
839
+ error = step / Math.pow(10, power),
840
+ factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
841
+ let i1, i2, inc;
842
+ if (power < 0) {
843
+ inc = Math.pow(10, -power) / factor;
844
+ i1 = Math.round(start * inc);
845
+ i2 = Math.round(stop * inc);
846
+ if (i1 / inc < start) ++i1;
847
+ if (i2 / inc > stop) --i2;
848
+ inc = -inc;
849
+ } else {
850
+ inc = Math.pow(10, power) * factor;
851
+ i1 = Math.round(start / inc);
852
+ i2 = Math.round(stop / inc);
853
+ if (i1 * inc < start) ++i1;
854
+ if (i2 * inc > stop) --i2;
855
+ }
856
+ if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
857
+ return [i1, i2, inc];
858
+ }
859
+ function ticks(start, stop, count) {
1408
860
  stop = +stop, start = +start, count = +count;
1409
- if (start === stop && count > 0) return [start];
1410
- if (reverse = stop < start) n = start, start = stop, stop = n;
1411
- if ((step = tickIncrement$1(start, stop, count)) === 0 || !isFinite(step)) return [];
1412
- if (step > 0) {
1413
- let r0 = Math.round(start / step),
1414
- r1 = Math.round(stop / step);
1415
- if (r0 * step < start) ++r0;
1416
- if (r1 * step > stop) --r1;
1417
- ticks = new Array(n = r1 - r0 + 1);
1418
- while (++i < n) ticks[i] = (r0 + i) * step;
861
+ if (!(count > 0)) return [];
862
+ if (start === stop) return [start];
863
+ const reverse = stop < start,
864
+ [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
865
+ if (!(i2 >= i1)) return [];
866
+ const n = i2 - i1 + 1,
867
+ ticks = new Array(n);
868
+ if (reverse) {
869
+ if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;
1419
870
  } else {
1420
- step = -step;
1421
- let r0 = Math.round(start * step),
1422
- r1 = Math.round(stop * step);
1423
- if (r0 / step < start) ++r0;
1424
- if (r1 / step > stop) --r1;
1425
- ticks = new Array(n = r1 - r0 + 1);
1426
- while (++i < n) ticks[i] = (r0 + i) / step;
1427
- }
1428
- if (reverse) ticks.reverse();
871
+ if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;
872
+ }
1429
873
  return ticks;
1430
874
  }
1431
- function tickIncrement$1(start, stop, count) {
1432
- var step = (stop - start) / Math.max(0, count),
1433
- power = Math.floor(Math.log(step) / Math.LN10),
1434
- error = step / Math.pow(10, power);
1435
- return power >= 0 ? (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10$1 ? 10 : error >= e5$1 ? 5 : error >= e2$1 ? 2 : 1);
875
+ function tickIncrement(start, stop, count) {
876
+ stop = +stop, start = +start, count = +count;
877
+ return tickSpec(start, stop, count)[2];
1436
878
  }
1437
- function tickStep$1(start, stop, count) {
1438
- var step0 = Math.abs(stop - start) / Math.max(0, count),
1439
- step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
1440
- error = step0 / step1;
1441
- if (error >= e10$1) step1 *= 10;else if (error >= e5$1) step1 *= 5;else if (error >= e2$1) step1 *= 2;
1442
- return stop < start ? -step1 : step1;
879
+ function tickStep(start, stop, count) {
880
+ stop = +stop, start = +start, count = +count;
881
+ const reverse = stop < start,
882
+ inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
883
+ return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
1443
884
  }
1444
885
 
1445
886
  function nice(start, stop, count) {
1446
887
  let prestep;
1447
888
  while (true) {
1448
- const step = tickIncrement$1(start, stop, count);
889
+ const step = tickIncrement(start, stop, count);
1449
890
  if (step === prestep || step === 0 || !isFinite(step)) {
1450
891
  return [start, stop];
1451
892
  } else if (step > 0) {
@@ -1459,19 +900,20 @@
1459
900
  }
1460
901
  }
1461
902
 
1462
- function thresholdSturges$1(values) {
1463
- return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1;
903
+ function thresholdSturges(values) {
904
+ return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);
1464
905
  }
1465
906
 
1466
907
  function bin() {
1467
908
  var value = identity$6,
1468
- domain = extent$1,
1469
- threshold = thresholdSturges$1;
909
+ domain = extent,
910
+ threshold = thresholdSturges;
1470
911
  function histogram(data) {
1471
912
  if (!Array.isArray(data)) data = Array.from(data);
1472
913
  var i,
1473
914
  n = data.length,
1474
915
  x,
916
+ step,
1475
917
  values = new Array(n);
1476
918
  for (i = 0; i < n; ++i) {
1477
919
  values[i] = value(data[i], i, data);
@@ -1486,8 +928,13 @@
1486
928
  if (!Array.isArray(tz)) {
1487
929
  const max = x1,
1488
930
  tn = +tz;
1489
- if (domain === extent$1) [x0, x1] = nice(x0, x1, tn);
1490
- tz = ticks$1(x0, x1, tn);
931
+ if (domain === extent) [x0, x1] = nice(x0, x1, tn);
932
+ tz = ticks(x0, x1, tn);
933
+
934
+ // If the domain is aligned with the first tick (which it will by
935
+ // default), then we can use quantization rather than bisection to bin
936
+ // values, which is substantially faster.
937
+ if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
1491
938
 
1492
939
  // If the last threshold is coincident with the domain’s upper bound, the
1493
940
  // last bin will be zero-width. If the default domain is used, and this
@@ -1497,8 +944,8 @@
1497
944
  // coerce values or the domain to numbers, and thus must be careful to
1498
945
  // compare order (>=) rather than strict equality (===)!
1499
946
  if (tz[tz.length - 1] >= x1) {
1500
- if (max >= x1 && domain === extent$1) {
1501
- const step = tickIncrement$1(x0, x1, tn);
947
+ if (max >= x1 && domain === extent) {
948
+ const step = tickIncrement(x0, x1, tn);
1502
949
  if (isFinite(step)) {
1503
950
  if (step > 0) {
1504
951
  x1 = (Math.floor(x1 / step) + 1) * step;
@@ -1513,9 +960,13 @@
1513
960
  }
1514
961
 
1515
962
  // Remove any thresholds outside the domain.
1516
- var m = tz.length;
1517
- while (tz[0] <= x0) tz.shift(), --m;
1518
- while (tz[m - 1] > x1) tz.pop(), --m;
963
+ // Be careful not to mutate an array owned by the user!
964
+ var m = tz.length,
965
+ a = 0,
966
+ b = m;
967
+ while (tz[a] <= x0) ++a;
968
+ while (tz[b - 1] > x1) --b;
969
+ if (a || b < m) tz = tz.slice(a, b), m = b - a;
1519
970
  var bins = new Array(m + 1),
1520
971
  bin;
1521
972
 
@@ -1527,10 +978,26 @@
1527
978
  }
1528
979
 
1529
980
  // Assign data to bins by value, ignoring any outside the domain.
1530
- for (i = 0; i < n; ++i) {
1531
- x = values[i];
1532
- if (x != null && x0 <= x && x <= x1) {
1533
- bins[bisect(tz, x, 0, m)].push(data[i]);
981
+ if (isFinite(step)) {
982
+ if (step > 0) {
983
+ for (i = 0; i < n; ++i) {
984
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
985
+ bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
986
+ }
987
+ }
988
+ } else if (step < 0) {
989
+ for (i = 0; i < n; ++i) {
990
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
991
+ const j = Math.floor((x0 - x) * step);
992
+ bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
993
+ }
994
+ }
995
+ }
996
+ } else {
997
+ for (i = 0; i < n; ++i) {
998
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
999
+ bins[bisect(tz, x, 0, m)].push(data[i]);
1000
+ }
1534
1001
  }
1535
1002
  }
1536
1003
  return bins;
@@ -1542,7 +1009,7 @@
1542
1009
  return arguments.length ? (domain = typeof _ === "function" ? _ : constant$5([_[0], _[1]]), histogram) : domain;
1543
1010
  };
1544
1011
  histogram.thresholds = function (_) {
1545
- return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), histogram) : threshold;
1012
+ return arguments.length ? (threshold = typeof _ === "function" ? _ : constant$5(Array.isArray(_) ? slice$1.call(_) : _), histogram) : threshold;
1546
1013
  };
1547
1014
  return histogram;
1548
1015
  }
@@ -2919,15 +2386,15 @@
2919
2386
  var darker = 0.7;
2920
2387
  var brighter = 1 / darker;
2921
2388
  var reI = "\\s*([+-]?\\d+)\\s*",
2922
- reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2923
- reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2389
+ reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2390
+ reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2924
2391
  reHex = /^#([0-9a-f]{3,8})$/,
2925
- reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
2926
- reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
2927
- reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
2928
- reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
2929
- reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
2930
- reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
2392
+ reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
2393
+ reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
2394
+ reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
2395
+ reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
2396
+ reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
2397
+ reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
2931
2398
  var named = {
2932
2399
  aliceblue: 0xf0f8ff,
2933
2400
  antiquewhite: 0xfaebd7,
@@ -3079,15 +2546,16 @@
3079
2546
  yellowgreen: 0x9acd32
3080
2547
  };
3081
2548
  define(Color, color, {
3082
- copy: function (channels) {
2549
+ copy(channels) {
3083
2550
  return Object.assign(new this.constructor(), this, channels);
3084
2551
  },
3085
- displayable: function () {
2552
+ displayable() {
3086
2553
  return this.rgb().displayable();
3087
2554
  },
3088
2555
  hex: color_formatHex,
3089
2556
  // Deprecated! Use color.formatHex.
3090
2557
  formatHex: color_formatHex,
2558
+ formatHex8: color_formatHex8,
3091
2559
  formatHsl: color_formatHsl,
3092
2560
  formatRgb: color_formatRgb,
3093
2561
  toString: color_formatRgb
@@ -3095,6 +2563,9 @@
3095
2563
  function color_formatHex() {
3096
2564
  return this.rgb().formatHex();
3097
2565
  }
2566
+ function color_formatHex8() {
2567
+ return this.rgb().formatHex8();
2568
+ }
3098
2569
  function color_formatHsl() {
3099
2570
  return hslConvert(this).formatHsl();
3100
2571
  }
@@ -3141,36 +2612,48 @@
3141
2612
  this.opacity = +opacity;
3142
2613
  }
3143
2614
  define(Rgb, rgb, extend(Color, {
3144
- brighter: function (k) {
2615
+ brighter(k) {
3145
2616
  k = k == null ? brighter : Math.pow(brighter, k);
3146
2617
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3147
2618
  },
3148
- darker: function (k) {
2619
+ darker(k) {
3149
2620
  k = k == null ? darker : Math.pow(darker, k);
3150
2621
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3151
2622
  },
3152
- rgb: function () {
2623
+ rgb() {
3153
2624
  return this;
3154
2625
  },
3155
- displayable: function () {
2626
+ clamp() {
2627
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
2628
+ },
2629
+ displayable() {
3156
2630
  return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
3157
2631
  },
3158
2632
  hex: rgb_formatHex,
3159
2633
  // Deprecated! Use color.formatHex.
3160
2634
  formatHex: rgb_formatHex,
2635
+ formatHex8: rgb_formatHex8,
3161
2636
  formatRgb: rgb_formatRgb,
3162
2637
  toString: rgb_formatRgb
3163
2638
  }));
3164
2639
  function rgb_formatHex() {
3165
- return "#" + hex(this.r) + hex(this.g) + hex(this.b);
2640
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
2641
+ }
2642
+ function rgb_formatHex8() {
2643
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
3166
2644
  }
3167
2645
  function rgb_formatRgb() {
3168
- var a = this.opacity;
3169
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3170
- return (a === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? ")" : ", " + a + ")");
2646
+ const a = clampa(this.opacity);
2647
+ return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
2648
+ }
2649
+ function clampa(opacity) {
2650
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
2651
+ }
2652
+ function clampi(value) {
2653
+ return Math.max(0, Math.min(255, Math.round(value) || 0));
3171
2654
  }
3172
2655
  function hex(value) {
3173
- value = Math.max(0, Math.min(255, Math.round(value) || 0));
2656
+ value = clampi(value);
3174
2657
  return (value < 16 ? "0" : "") + value.toString(16);
3175
2658
  }
3176
2659
  function hsla(h, s, l, a) {
@@ -3210,15 +2693,15 @@
3210
2693
  this.opacity = +opacity;
3211
2694
  }
3212
2695
  define(Hsl, hsl, extend(Color, {
3213
- brighter: function (k) {
2696
+ brighter(k) {
3214
2697
  k = k == null ? brighter : Math.pow(brighter, k);
3215
2698
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
3216
2699
  },
3217
- darker: function (k) {
2700
+ darker(k) {
3218
2701
  k = k == null ? darker : Math.pow(darker, k);
3219
2702
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
3220
2703
  },
3221
- rgb: function () {
2704
+ rgb() {
3222
2705
  var h = this.h % 360 + (this.h < 0) * 360,
3223
2706
  s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
3224
2707
  l = this.l,
@@ -3226,15 +2709,24 @@
3226
2709
  m1 = 2 * l - m2;
3227
2710
  return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);
3228
2711
  },
3229
- displayable: function () {
2712
+ clamp() {
2713
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
2714
+ },
2715
+ displayable() {
3230
2716
  return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
3231
2717
  },
3232
- formatHsl: function () {
3233
- var a = this.opacity;
3234
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
3235
- return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")");
2718
+ formatHsl() {
2719
+ const a = clampa(this.opacity);
2720
+ return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
3236
2721
  }
3237
2722
  }));
2723
+ function clamph(value) {
2724
+ value = (value || 0) % 360;
2725
+ return value < 0 ? value + 360 : value;
2726
+ }
2727
+ function clampt(value) {
2728
+ return Math.max(0, Math.min(1, value || 0));
2729
+ }
3238
2730
 
3239
2731
  /* From FvD 13.37, CSS Color Module Level 3 */
3240
2732
  function hsl2rgb(h, m1, m2) {
@@ -4445,38 +3937,56 @@
4445
3937
  tau$1 = 2 * pi$1,
4446
3938
  epsilon$1 = 1e-6,
4447
3939
  tauEpsilon = tau$1 - epsilon$1;
4448
- function Path() {
4449
- this._x0 = this._y0 =
4450
- // start of current subpath
4451
- this._x1 = this._y1 = null; // end of current subpath
4452
- this._ = "";
4453
- }
4454
- function path() {
4455
- return new Path();
4456
- }
4457
- Path.prototype = path.prototype = {
4458
- constructor: Path,
4459
- moveTo: function (x, y) {
4460
- this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
4461
- },
4462
- closePath: function () {
3940
+ function append$1(strings) {
3941
+ this._ += strings[0];
3942
+ for (let i = 1, n = strings.length; i < n; ++i) {
3943
+ this._ += arguments[i] + strings[i];
3944
+ }
3945
+ }
3946
+ function appendRound$1(digits) {
3947
+ let d = Math.floor(digits);
3948
+ if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
3949
+ if (d > 15) return append$1;
3950
+ const k = 10 ** d;
3951
+ return function (strings) {
3952
+ this._ += strings[0];
3953
+ for (let i = 1, n = strings.length; i < n; ++i) {
3954
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
3955
+ }
3956
+ };
3957
+ }
3958
+ class Path {
3959
+ constructor(digits) {
3960
+ this._x0 = this._y0 =
3961
+ // start of current subpath
3962
+ this._x1 = this._y1 = null; // end of current subpath
3963
+ this._ = "";
3964
+ this._append = digits == null ? append$1 : appendRound$1(digits);
3965
+ }
3966
+ moveTo(x, y) {
3967
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
3968
+ }
3969
+ closePath() {
4463
3970
  if (this._x1 !== null) {
4464
3971
  this._x1 = this._x0, this._y1 = this._y0;
4465
- this._ += "Z";
3972
+ this._append`Z`;
4466
3973
  }
4467
- },
4468
- lineTo: function (x, y) {
4469
- this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
4470
- },
4471
- quadraticCurveTo: function (x1, y1, x, y) {
4472
- this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
4473
- },
4474
- bezierCurveTo: function (x1, y1, x2, y2, x, y) {
4475
- this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
4476
- },
4477
- arcTo: function (x1, y1, x2, y2, r) {
3974
+ }
3975
+ lineTo(x, y) {
3976
+ this._append`L${this._x1 = +x},${this._y1 = +y}`;
3977
+ }
3978
+ quadraticCurveTo(x1, y1, x, y) {
3979
+ this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
3980
+ }
3981
+ bezierCurveTo(x1, y1, x2, y2, x, y) {
3982
+ this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
3983
+ }
3984
+ arcTo(x1, y1, x2, y2, r) {
4478
3985
  x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
4479
- var x0 = this._x1,
3986
+
3987
+ // Is the radius negative? Error.
3988
+ if (r < 0) throw new Error(`negative radius: ${r}`);
3989
+ let x0 = this._x1,
4480
3990
  y0 = this._y1,
4481
3991
  x21 = x2 - x1,
4482
3992
  y21 = y2 - y1,
@@ -4484,12 +3994,9 @@
4484
3994
  y01 = y0 - y1,
4485
3995
  l01_2 = x01 * x01 + y01 * y01;
4486
3996
 
4487
- // Is the radius negative? Error.
4488
- if (r < 0) throw new Error("negative radius: " + r);
4489
-
4490
3997
  // Is this path empty? Move to (x1,y1).
4491
3998
  if (this._x1 === null) {
4492
- this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
3999
+ this._append`M${this._x1 = x1},${this._y1 = y1}`;
4493
4000
  }
4494
4001
 
4495
4002
  // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
@@ -4499,12 +4006,12 @@
4499
4006
  // Equivalently, is (x1,y1) coincident with (x2,y2)?
4500
4007
  // Or, is the radius zero? Line to (x1,y1).
4501
4008
  else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$1) || !r) {
4502
- this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
4009
+ this._append`L${this._x1 = x1},${this._y1 = y1}`;
4503
4010
  }
4504
4011
 
4505
4012
  // Otherwise, draw an arc!
4506
4013
  else {
4507
- var x20 = x2 - x0,
4014
+ let x20 = x2 - x0,
4508
4015
  y20 = y2 - y0,
4509
4016
  l21_2 = x21 * x21 + y21 * y21,
4510
4017
  l20_2 = x20 * x20 + y20 * y20,
@@ -4516,31 +4023,31 @@
4516
4023
 
4517
4024
  // If the start tangent is not coincident with (x0,y0), line to.
4518
4025
  if (Math.abs(t01 - 1) > epsilon$1) {
4519
- this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
4026
+ this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
4520
4027
  }
4521
- this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
4028
+ this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
4522
4029
  }
4523
- },
4524
- arc: function (x, y, r, a0, a1, ccw) {
4030
+ }
4031
+ arc(x, y, r, a0, a1, ccw) {
4525
4032
  x = +x, y = +y, r = +r, ccw = !!ccw;
4526
- var dx = r * Math.cos(a0),
4033
+
4034
+ // Is the radius negative? Error.
4035
+ if (r < 0) throw new Error(`negative radius: ${r}`);
4036
+ let dx = r * Math.cos(a0),
4527
4037
  dy = r * Math.sin(a0),
4528
4038
  x0 = x + dx,
4529
4039
  y0 = y + dy,
4530
4040
  cw = 1 ^ ccw,
4531
4041
  da = ccw ? a0 - a1 : a1 - a0;
4532
4042
 
4533
- // Is the radius negative? Error.
4534
- if (r < 0) throw new Error("negative radius: " + r);
4535
-
4536
4043
  // Is this path empty? Move to (x0,y0).
4537
4044
  if (this._x1 === null) {
4538
- this._ += "M" + x0 + "," + y0;
4045
+ this._append`M${x0},${y0}`;
4539
4046
  }
4540
4047
 
4541
4048
  // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
4542
4049
  else if (Math.abs(this._x1 - x0) > epsilon$1 || Math.abs(this._y1 - y0) > epsilon$1) {
4543
- this._ += "L" + x0 + "," + y0;
4050
+ this._append`L${x0},${y0}`;
4544
4051
  }
4545
4052
 
4546
4053
  // Is this arc empty? We’re done.
@@ -4551,119 +4058,20 @@
4551
4058
 
4552
4059
  // Is this a complete circle? Draw two arcs to complete the circle.
4553
4060
  if (da > tauEpsilon) {
4554
- this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
4061
+ this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
4555
4062
  }
4556
4063
 
4557
4064
  // Is this arc non-empty? Draw an arc!
4558
4065
  else if (da > epsilon$1) {
4559
- this._ += "A" + r + "," + r + ",0," + +(da >= pi$1) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
4066
+ this._append`A${r},${r},0,${+(da >= pi$1)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;
4560
4067
  }
4561
- },
4562
- rect: function (x, y, w, h) {
4563
- this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + +w + "v" + +h + "h" + -w + "Z";
4564
- },
4565
- toString: function () {
4566
- return this._;
4567
4068
  }
4568
- };
4569
-
4570
- function count(values, valueof) {
4571
- let count = 0;
4572
- if (valueof === undefined) {
4573
- for (let value of values) {
4574
- if (value != null && (value = +value) >= value) {
4575
- ++count;
4576
- }
4577
- }
4578
- } else {
4579
- let index = -1;
4580
- for (let value of values) {
4581
- if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
4582
- ++count;
4583
- }
4584
- }
4069
+ rect(x, y, w, h) {
4070
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
4585
4071
  }
4586
- return count;
4587
- }
4588
-
4589
- function extent(values, valueof) {
4590
- let min;
4591
- let max;
4592
- if (valueof === undefined) {
4593
- for (const value of values) {
4594
- if (value != null) {
4595
- if (min === undefined) {
4596
- if (value >= value) min = max = value;
4597
- } else {
4598
- if (min > value) min = value;
4599
- if (max < value) max = value;
4600
- }
4601
- }
4602
- }
4603
- } else {
4604
- let index = -1;
4605
- for (let value of values) {
4606
- if ((value = valueof(value, ++index, values)) != null) {
4607
- if (min === undefined) {
4608
- if (value >= value) min = max = value;
4609
- } else {
4610
- if (min > value) min = value;
4611
- if (max < value) max = value;
4612
- }
4613
- }
4614
- }
4072
+ toString() {
4073
+ return this._;
4615
4074
  }
4616
- return [min, max];
4617
- }
4618
-
4619
- var e10 = Math.sqrt(50),
4620
- e5 = Math.sqrt(10),
4621
- e2 = Math.sqrt(2);
4622
- function ticks(start, stop, count) {
4623
- var reverse,
4624
- i = -1,
4625
- n,
4626
- ticks,
4627
- step;
4628
- stop = +stop, start = +start, count = +count;
4629
- if (start === stop && count > 0) return [start];
4630
- if (reverse = stop < start) n = start, start = stop, stop = n;
4631
- if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
4632
- if (step > 0) {
4633
- let r0 = Math.round(start / step),
4634
- r1 = Math.round(stop / step);
4635
- if (r0 * step < start) ++r0;
4636
- if (r1 * step > stop) --r1;
4637
- ticks = new Array(n = r1 - r0 + 1);
4638
- while (++i < n) ticks[i] = (r0 + i) * step;
4639
- } else {
4640
- step = -step;
4641
- let r0 = Math.round(start * step),
4642
- r1 = Math.round(stop * step);
4643
- if (r0 / step < start) ++r0;
4644
- if (r1 / step > stop) --r1;
4645
- ticks = new Array(n = r1 - r0 + 1);
4646
- while (++i < n) ticks[i] = (r0 + i) / step;
4647
- }
4648
- if (reverse) ticks.reverse();
4649
- return ticks;
4650
- }
4651
- function tickIncrement(start, stop, count) {
4652
- var step = (stop - start) / Math.max(0, count),
4653
- power = Math.floor(Math.log(step) / Math.LN10),
4654
- error = step / Math.pow(10, power);
4655
- return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
4656
- }
4657
- function tickStep(start, stop, count) {
4658
- var step0 = Math.abs(stop - start) / Math.max(0, count),
4659
- step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
4660
- error = step0 / step1;
4661
- if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;
4662
- return stop < start ? -step1 : step1;
4663
- }
4664
-
4665
- function thresholdSturges(values) {
4666
- return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;
4667
4075
  }
4668
4076
 
4669
4077
  var array$1 = Array.prototype;
@@ -4730,9 +4138,10 @@
4730
4138
 
4731
4139
  // Convert number of thresholds into uniform thresholds.
4732
4140
  if (!Array.isArray(tz)) {
4733
- const e = extent(values),
4734
- ts = tickStep(e[0], e[1], tz);
4735
- tz = ticks(Math.floor(e[0] / ts) * ts, Math.floor(e[1] / ts - 1) * ts, tz);
4141
+ const e = extent(values, finite);
4142
+ tz = ticks(...nice(e[0], e[1], tz), tz);
4143
+ while (tz[tz.length - 1] >= e[1]) tz.pop();
4144
+ while (tz[1] < e[0]) tz.shift();
4736
4145
  } else {
4737
4146
  tz = tz.slice().sort(ascending);
4738
4147
  }
@@ -4742,10 +4151,12 @@
4742
4151
  // Accumulate, smooth contour rings, assign holes to exterior rings.
4743
4152
  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
4744
4153
  function contour(values, value) {
4154
+ const v = value == null ? NaN : +value;
4155
+ if (isNaN(v)) throw new Error(`invalid value: ${value}`);
4745
4156
  var polygons = [],
4746
4157
  holes = [];
4747
- isorings(values, value, function (ring) {
4748
- smooth(ring, values, value);
4158
+ isorings(values, v, function (ring) {
4159
+ smooth(ring, values, v);
4749
4160
  if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);
4750
4161
  });
4751
4162
  holes.forEach(function (hole) {
@@ -4777,10 +4188,10 @@
4777
4188
 
4778
4189
  // Special case for the first row (y = -1, t2 = t3 = 0).
4779
4190
  x = y = -1;
4780
- t1 = values[0] >= value;
4191
+ t1 = above(values[0], value);
4781
4192
  cases[t1 << 1].forEach(stitch);
4782
4193
  while (++x < dx - 1) {
4783
- t0 = t1, t1 = values[x + 1] >= value;
4194
+ t0 = t1, t1 = above(values[x + 1], value);
4784
4195
  cases[t0 | t1 << 1].forEach(stitch);
4785
4196
  }
4786
4197
  cases[t1 << 0].forEach(stitch);
@@ -4788,12 +4199,12 @@
4788
4199
  // General case for the intermediate rows.
4789
4200
  while (++y < dy - 1) {
4790
4201
  x = -1;
4791
- t1 = values[y * dx + dx] >= value;
4792
- t2 = values[y * dx] >= value;
4202
+ t1 = above(values[y * dx + dx], value);
4203
+ t2 = above(values[y * dx], value);
4793
4204
  cases[t1 << 1 | t2 << 2].forEach(stitch);
4794
4205
  while (++x < dx - 1) {
4795
- t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
4796
- t3 = t2, t2 = values[y * dx + x + 1] >= value;
4206
+ t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
4207
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4797
4208
  cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
4798
4209
  }
4799
4210
  cases[t1 | t2 << 3].forEach(stitch);
@@ -4804,7 +4215,7 @@
4804
4215
  t2 = values[y * dx] >= value;
4805
4216
  cases[t2 << 2].forEach(stitch);
4806
4217
  while (++x < dx - 1) {
4807
- t3 = t2, t2 = values[y * dx + x + 1] >= value;
4218
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4808
4219
  cases[t2 << 2 | t3 << 3].forEach(stitch);
4809
4220
  }
4810
4221
  cases[t2 << 3].forEach(stitch);
@@ -4871,15 +4282,12 @@
4871
4282
  y = point[1],
4872
4283
  xt = x | 0,
4873
4284
  yt = y | 0,
4874
- v0,
4875
- v1 = values[yt * dx + xt];
4285
+ v1 = valid(values[yt * dx + xt]);
4876
4286
  if (x > 0 && x < dx && xt === x) {
4877
- v0 = values[yt * dx + xt - 1];
4878
- point[0] = x + (value - v0) / (v1 - v0) - 0.5;
4287
+ point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
4879
4288
  }
4880
4289
  if (y > 0 && y < dy && yt === y) {
4881
- v0 = values[(yt - 1) * dx + xt];
4882
- point[1] = y + (value - v0) / (v1 - v0) - 0.5;
4290
+ point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
4883
4291
  }
4884
4292
  });
4885
4293
  }
@@ -4900,6 +4308,28 @@
4900
4308
  return contours;
4901
4309
  }
4902
4310
 
4311
+ // When computing the extent, ignore infinite values (as well as invalid ones).
4312
+ function finite(x) {
4313
+ return isFinite(x) ? x : NaN;
4314
+ }
4315
+
4316
+ // Is the (possibly invalid) x greater than or equal to the (known valid) value?
4317
+ // Treat any invalid value as below negative infinity.
4318
+ function above(x, value) {
4319
+ return x == null ? false : +x >= value;
4320
+ }
4321
+
4322
+ // During smoothing, treat any invalid value as negative infinity.
4323
+ function valid(v) {
4324
+ return v == null || isNaN(v = +v) ? -Infinity : v;
4325
+ }
4326
+ function smooth1(x, v0, v1, value) {
4327
+ const a = value - v0;
4328
+ const b = v1 - v0;
4329
+ const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
4330
+ return isNaN(d) ? x : x + d - 0.5;
4331
+ }
4332
+
4903
4333
  function formatDecimal (x) {
4904
4334
  return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
4905
4335
  }
@@ -5496,7 +4926,6 @@
5496
4926
  function corner(p, direction) {
5497
4927
  return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
5498
4928
  }
5499
-
5500
4929
  function compareIntersection(a, b) {
5501
4930
  return comparePoint(a.x, b.x);
5502
4931
  }
@@ -5856,66 +5285,96 @@
5856
5285
  }
5857
5286
  var pathMeasure = lengthStream;
5858
5287
 
5859
- function PathString() {
5860
- this._string = [];
5861
- }
5862
- PathString.prototype = {
5863
- _radius: 4.5,
5864
- _circle: circle(4.5),
5865
- pointRadius: function (_) {
5866
- if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
5288
+ // Simple caching for constant-radius points.
5289
+ let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
5290
+ class PathString {
5291
+ constructor(digits) {
5292
+ this._append = digits == null ? append : appendRound(digits);
5293
+ this._radius = 4.5;
5294
+ this._ = "";
5295
+ }
5296
+ pointRadius(_) {
5297
+ this._radius = +_;
5867
5298
  return this;
5868
- },
5869
- polygonStart: function () {
5299
+ }
5300
+ polygonStart() {
5870
5301
  this._line = 0;
5871
- },
5872
- polygonEnd: function () {
5302
+ }
5303
+ polygonEnd() {
5873
5304
  this._line = NaN;
5874
- },
5875
- lineStart: function () {
5305
+ }
5306
+ lineStart() {
5876
5307
  this._point = 0;
5877
- },
5878
- lineEnd: function () {
5879
- if (this._line === 0) this._string.push("Z");
5308
+ }
5309
+ lineEnd() {
5310
+ if (this._line === 0) this._ += "Z";
5880
5311
  this._point = NaN;
5881
- },
5882
- point: function (x, y) {
5312
+ }
5313
+ point(x, y) {
5883
5314
  switch (this._point) {
5884
5315
  case 0:
5885
5316
  {
5886
- this._string.push("M", x, ",", y);
5317
+ this._append`M${x},${y}`;
5887
5318
  this._point = 1;
5888
5319
  break;
5889
5320
  }
5890
5321
  case 1:
5891
5322
  {
5892
- this._string.push("L", x, ",", y);
5323
+ this._append`L${x},${y}`;
5893
5324
  break;
5894
5325
  }
5895
5326
  default:
5896
5327
  {
5897
- if (this._circle == null) this._circle = circle(this._radius);
5898
- this._string.push("M", x, ",", y, this._circle);
5328
+ this._append`M${x},${y}`;
5329
+ if (this._radius !== cacheRadius || this._append !== cacheAppend) {
5330
+ const r = this._radius;
5331
+ const s = this._;
5332
+ this._ = ""; // stash the old string so we can cache the circle path fragment
5333
+ this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
5334
+ cacheRadius = r;
5335
+ cacheAppend = this._append;
5336
+ cacheCircle = this._;
5337
+ this._ = s;
5338
+ }
5339
+ this._ += cacheCircle;
5899
5340
  break;
5900
5341
  }
5901
5342
  }
5902
- },
5903
- result: function () {
5904
- if (this._string.length) {
5905
- var result = this._string.join("");
5906
- this._string = [];
5907
- return result;
5908
- } else {
5909
- return null;
5910
- }
5911
5343
  }
5912
- };
5913
- function circle(radius) {
5914
- return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
5344
+ result() {
5345
+ const result = this._;
5346
+ this._ = "";
5347
+ return result.length ? result : null;
5348
+ }
5349
+ }
5350
+ function append(strings) {
5351
+ let i = 1;
5352
+ this._ += strings[0];
5353
+ for (const j = strings.length; i < j; ++i) {
5354
+ this._ += arguments[i] + strings[i];
5355
+ }
5356
+ }
5357
+ function appendRound(digits) {
5358
+ const d = Math.floor(digits);
5359
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
5360
+ if (d > 15) return append;
5361
+ if (d !== cacheDigits) {
5362
+ const k = 10 ** d;
5363
+ cacheDigits = d;
5364
+ cacheAppend = function append(strings) {
5365
+ let i = 1;
5366
+ this._ += strings[0];
5367
+ for (const j = strings.length; i < j; ++i) {
5368
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
5369
+ }
5370
+ };
5371
+ }
5372
+ return cacheAppend;
5915
5373
  }
5916
5374
 
5917
5375
  function index (projection, context) {
5918
- var pointRadius = 4.5,
5376
+ let digits = 3,
5377
+ pointRadius = 4.5,
5919
5378
  projectionStream,
5920
5379
  contextStream;
5921
5380
  function path(object) {
@@ -5942,11 +5401,13 @@
5942
5401
  return pathCentroid.result();
5943
5402
  };
5944
5403
  path.projection = function (_) {
5945
- return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream, path) : projection;
5404
+ if (!arguments.length) return projection;
5405
+ projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream;
5406
+ return path;
5946
5407
  };
5947
5408
  path.context = function (_) {
5948
5409
  if (!arguments.length) return context;
5949
- contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);
5410
+ contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
5950
5411
  if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
5951
5412
  return path;
5952
5413
  };
@@ -5955,7 +5416,17 @@
5955
5416
  pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
5956
5417
  return path;
5957
5418
  };
5958
- return path.projection(projection).context(context);
5419
+ path.digits = function (_) {
5420
+ if (!arguments.length) return digits;
5421
+ if (_ == null) digits = null;else {
5422
+ const d = Math.floor(_);
5423
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5424
+ digits = d;
5425
+ }
5426
+ if (context === null) contextStream = new PathString(digits);
5427
+ return path;
5428
+ };
5429
+ return path.projection(projection).digits(digits).context(context);
5959
5430
  }
5960
5431
 
5961
5432
  function transformer$1(methods) {
@@ -6250,7 +5721,7 @@
6250
5721
  }
6251
5722
 
6252
5723
  function tickFormat(start, stop, count, specifier) {
6253
- var step = tickStep$1(start, stop, count),
5724
+ var step = tickStep(start, stop, count),
6254
5725
  precision;
6255
5726
  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
6256
5727
  switch (specifier.type) {
@@ -6283,7 +5754,7 @@
6283
5754
  var domain = scale.domain;
6284
5755
  scale.ticks = function (count) {
6285
5756
  var d = domain();
6286
- return ticks$1(d[0], d[d.length - 1], count == null ? 10 : count);
5757
+ return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
6287
5758
  };
6288
5759
  scale.tickFormat = function (count, specifier) {
6289
5760
  var d = domain();
@@ -6304,7 +5775,7 @@
6304
5775
  step = i0, i0 = i1, i1 = step;
6305
5776
  }
6306
5777
  while (maxIter-- > 0) {
6307
- step = tickIncrement$1(start, stop, count);
5778
+ step = tickIncrement(start, stop, count);
6308
5779
  if (step === prestep) {
6309
5780
  d[i0] = start;
6310
5781
  d[i1] = stop;
@@ -6349,6 +5820,22 @@
6349
5820
  };
6350
5821
  }
6351
5822
 
5823
+ function withPath(shape) {
5824
+ let digits = 3;
5825
+ shape.digits = function (_) {
5826
+ if (!arguments.length) return digits;
5827
+ if (_ == null) {
5828
+ digits = null;
5829
+ } else {
5830
+ const d = Math.floor(_);
5831
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5832
+ digits = d;
5833
+ }
5834
+ return shape;
5835
+ };
5836
+ return () => new Path(digits);
5837
+ }
5838
+
6352
5839
  function array (x) {
6353
5840
  return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like
6354
5841
  : Array.from(x); // Map, Set, iterable, string, or anything else
@@ -6402,7 +5889,8 @@
6402
5889
  var defined = constant(true),
6403
5890
  context = null,
6404
5891
  curve = curveLinear,
6405
- output = null;
5892
+ output = null,
5893
+ path = withPath(line);
6406
5894
  x$1 = typeof x$1 === "function" ? x$1 : x$1 === undefined ? x : constant(x$1);
6407
5895
  y$1 = typeof y$1 === "function" ? y$1 : y$1 === undefined ? y : constant(y$1);
6408
5896
  function line(data) {
@@ -6636,7 +6124,6 @@
6636
6124
  };
6637
6125
  /* eslint-enable key-spacing, object-curly-newline */
6638
6126
  }
6639
-
6640
6127
  static cssBoxShadow(elevation, rotate = false, inverse = false) {
6641
6128
  const umbraO = this.shadows.opacityUmbra + this.shadows.opacityBoost;
6642
6129
  const penumbraO = this.shadows.opacityPenumbra + this.shadows.opacityBoost;
@@ -6652,6 +6139,48 @@
6652
6139
  const ambientS = rotate ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px` : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;
6653
6140
  return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;
6654
6141
  }
6142
+ static get svgDefs() {
6143
+ const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6144
+
6145
+ const filters = shadows.elevations.map(z => {
6146
+ return `
6147
+ <filter id=${`shadow-${z}`} filterUnits="userSpaceOnUse" x="-100%" y="-100%" width="200%" height="200%">
6148
+ <feComponentTransfer in="SourceAlpha" result="solid">
6149
+ <feFuncA type="table" tableValues="0 1 1"/>
6150
+ </feComponentTransfer>
6151
+ <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6152
+ <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
6153
+ <feOffset in="solid" result="offA" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />
6154
+ ${shadows.mapUmbra[z].s === 0 ? '' : `<feMorphology in="offU" result="spreadU" operator=${shadows.mapUmbra[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`}
6155
+ ${shadows.mapPenumbra[z].s === 0 ? '' : `<feMorphology in="offP" result="spreadP" operator=${shadows.mapPenumbra[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`}
6156
+ ${shadows.mapAmbient[z].s === 0 ? '' : `<feMorphology in="offA" result="spreadA" operator=${shadows.mapAmbient[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`}
6157
+ <feGaussianBlur in=${shadows.mapUmbra[z].s === 0 ? 'offU' : 'spreadU'} result="blurU" stdDeviation=${shadows.mapUmbra[z].b / 2} />
6158
+ <feGaussianBlur in=${shadows.mapPenumbra[z].s === 0 ? 'offP' : 'spreadP'} result="blurP" stdDeviation=${shadows.mapPenumbra[z].b / 2} />
6159
+ <feGaussianBlur in=${shadows.mapAmbient[z].s === 0 ? 'offA' : 'spreadA'} result="blurA" stdDeviation=${shadows.mapAmbient[z].b / 2} />
6160
+ <feFlood in="SourceGraphic" result="opU" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />
6161
+ <feFlood in="SourceGraphic" result="opP" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />
6162
+ <feFlood in="SourceGraphic" result="opA" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />
6163
+ <feComposite in="opU" in2="blurU" result="shU" operator="in" />
6164
+ <feComposite in="opP" in2="blurP" result="shP" operator="in" />
6165
+ <feComposite in="opA" in2="blurA" result="shA" operator="in" />
6166
+ <feMorphology in="solid" result="smaller" operator="erode" radius="1" />
6167
+ <feComposite in="shU" in2="smaller" result="finalU" operator="out" />
6168
+ <feComposite in="shP" in2="smaller" result="finalP" operator="out" />
6169
+ <feComposite in="shA" in2="smaller" result="finalA" operator="out" />
6170
+ <feMerge>
6171
+ <feMergeNode in="finalU" />
6172
+ <feMergeNode in="finalP" />
6173
+ <feMergeNode in="finalA" />
6174
+ <feMergeNode in="SourceGraphic" />
6175
+ </feMerge>
6176
+ </filter>`;
6177
+ });
6178
+ return `
6179
+ <defs>
6180
+ ${filters}
6181
+ </defs>
6182
+ `;
6183
+ }
6655
6184
  static get svgFilters() {
6656
6185
  const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6657
6186
 
@@ -6659,7 +6188,7 @@
6659
6188
  return b`
6660
6189
  <filter id=${`shadow-${z}`} x="-250%" y="-250%" width="600%" height="600%">
6661
6190
  <feComponentTransfer in="SourceAlpha" result="solid">
6662
- <feFuncA type="table" tableValues="0 1 1"/>
6191
+ <feFuncA type="table" tableValues="0 1 1"/>
6663
6192
  </feComponentTransfer>
6664
6193
  <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6665
6194
  <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
@@ -6697,24 +6226,24 @@
6697
6226
  `;
6698
6227
  }
6699
6228
  static get styles() {
6700
- return r$2`
6229
+ return i$2`
6701
6230
  :host {
6702
- ---shadow-0: var(--shadow-0, ${o$3(this.cssBoxShadow(0))});
6703
- ---shadow-2: var(--shadow-2, ${o$3(this.cssBoxShadow(2))});
6704
- ---shadow-4: var(--shadow-4, ${o$3(this.cssBoxShadow(4))});
6705
- ---shadow-8: var(--shadow-8, ${o$3(this.cssBoxShadow(8))});
6706
-
6707
- ---color-background: var(--color-background, ${o$3(this.greys.white)});
6708
- ---color-border: var(--color-border, ${o$3(this.greys.light75)});
6709
- ---color-text: var(--color-text, ${o$3(this.greys.dark75)});
6710
- ---color-text-inverse: var(--color-text-inverse, ${o$3(this.greys.white)});
6711
- ---color-link: var(--color-link, ${o$3(this.greys.dark25)});
6712
- ---color-element-background: var(--color-element-background, ${o$3(this.greys.light75)});
6713
- ---color-element-disabled: var(--color-element-disabled, ${o$3(this.greys.light50)});
6714
- ---color-element-enabled: var(--color-element-enabled, ${o$3(this.greys.dark25)});
6715
- ---color-element-selected: var(--color-element-selected, ${o$3(this.greys.grey)});
6716
- ---color-element-border: var(--color-element-border, ${o$3(this.greys.dark50)});
6717
- ---color-element-emphasis: var(--color-element-emphasis, ${o$3(this.greys.dark75)});
6231
+ ---shadow-0: var(--shadow-0, ${r$3(this.cssBoxShadow(0))});
6232
+ ---shadow-2: var(--shadow-2, ${r$3(this.cssBoxShadow(2))});
6233
+ ---shadow-4: var(--shadow-4, ${r$3(this.cssBoxShadow(4))});
6234
+ ---shadow-8: var(--shadow-8, ${r$3(this.cssBoxShadow(8))});
6235
+
6236
+ ---color-background: var(--color-background, ${r$3(this.greys.white)});
6237
+ ---color-border: var(--color-border, ${r$3(this.greys.light75)});
6238
+ ---color-text: var(--color-text, ${r$3(this.greys.dark75)});
6239
+ ---color-text-inverse: var(--color-text-inverse, ${r$3(this.greys.white)});
6240
+ ---color-link: var(--color-link, ${r$3(this.greys.dark25)});
6241
+ ---color-element-background: var(--color-element-background, ${r$3(this.greys.light75)});
6242
+ ---color-element-disabled: var(--color-element-disabled, ${r$3(this.greys.light50)});
6243
+ ---color-element-enabled: var(--color-element-enabled, ${r$3(this.greys.dark25)});
6244
+ ---color-element-selected: var(--color-element-selected, ${r$3(this.greys.grey)});
6245
+ ---color-element-border: var(--color-element-border, ${r$3(this.greys.dark50)});
6246
+ ---color-element-emphasis: var(--color-element-emphasis, ${r$3(this.greys.dark75)});
6718
6247
 
6719
6248
  ---font-family-base: var(--font-family-base, "Source Sans", sans-serif);
6720
6249
  ---font-family-math: var(--font-family-math, "Source Serif", serif);
@@ -6775,7 +6304,7 @@
6775
6304
  this.disabled = false;
6776
6305
  }
6777
6306
  static get styles() {
6778
- return [super.styles, r$2`
6307
+ return [super.styles, i$2`
6779
6308
  :host {
6780
6309
  margin: 0.25rem;
6781
6310
  }
@@ -6845,7 +6374,7 @@
6845
6374
  * Copyright 2018 Google LLC
6846
6375
  * SPDX-License-Identifier: BSD-3-Clause
6847
6376
  */
6848
- const l = l => null != l ? l : A$1;
6377
+ const o = o => o ?? T;
6849
6378
 
6850
6379
  class DecidablesSlider extends DecidablesElement {
6851
6380
  static get properties() {
@@ -6900,11 +6429,11 @@
6900
6429
  this.value = event.target.value;
6901
6430
  }
6902
6431
  static get styles() {
6903
- return [super.styles, r$2`
6432
+ return [super.styles, i$2`
6904
6433
  :host {
6905
- ---shadow-2-rotate: var(--shadow-2-rotate, ${o$3(this.cssBoxShadow(2, true, false))});
6906
- ---shadow-4-rotate: var(--shadow-4-rotate, ${o$3(this.cssBoxShadow(4, true, false))});
6907
- ---shadow-8-rotate: var(--shadow-8-rotate, ${o$3(this.cssBoxShadow(8, true, false))});
6434
+ ---shadow-2-rotate: var(--shadow-2-rotate, ${r$3(this.cssBoxShadow(2, true, false))});
6435
+ ---shadow-4-rotate: var(--shadow-4-rotate, ${r$3(this.cssBoxShadow(4, true, false))});
6436
+ ---shadow-8-rotate: var(--shadow-8-rotate, ${r$3(this.cssBoxShadow(8, true, false))});
6908
6437
 
6909
6438
  display: flex;
6910
6439
 
@@ -7158,9 +6687,9 @@
7158
6687
  <slot></slot>
7159
6688
  </label>
7160
6689
  <div class="range">
7161
- <input type="range" id="slider" min=${l(this.min)} max=${l(this.max)} step=${l(this.step)} .value=${this.value} @change=${this.changed.bind(this)} @input=${this.inputted.bind(this)}>
6690
+ <input type="range" id="slider" min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @change=${this.changed.bind(this)} @input=${this.inputted.bind(this)}>
7162
6691
  </div>
7163
- <decidables-spinner min=${l(this.min)} max=${l(this.max)} step=${l(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}></decidables-spinner>
6692
+ <decidables-spinner min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}></decidables-spinner>
7164
6693
  `;
7165
6694
  }
7166
6695
  }
@@ -7210,12 +6739,15 @@
7210
6739
  this.value = event.target.value;
7211
6740
  }
7212
6741
  static get styles() {
7213
- return [super.styles, r$2`
6742
+ return [super.styles, i$2`
7214
6743
  :host {
7215
6744
  ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
7216
6745
  ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
7217
6746
  ---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");
7218
6747
 
6748
+ ---decidables-spinner-postfix: var(--decidables-spinner-postfix, "");
6749
+ ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);
6750
+
7219
6751
  display: block;
7220
6752
  }
7221
6753
 
@@ -7243,8 +6775,20 @@
7243
6775
  content: var(---decidables-spinner-prefix);
7244
6776
  }
7245
6777
 
6778
+ label::after {
6779
+ position: absolute;
6780
+ right: 0.25rem;
6781
+ bottom: 1px;
6782
+
6783
+ font-size: var(---decidables-spinner-font-size);
6784
+ line-height: normal;
6785
+
6786
+ content: var(---decidables-spinner-postfix);
6787
+ }
6788
+
7246
6789
  input[type=number] {
7247
6790
  width: var(---decidables-spinner-input-width);
6791
+ padding-right: var(---decidables-spinner-postfix-padding);
7248
6792
 
7249
6793
  font-family: var(---font-family-base);
7250
6794
  font-size: var(---decidables-spinner-font-size);
@@ -7295,7 +6839,7 @@
7295
6839
  return x$1`
7296
6840
  <label>
7297
6841
  <slot></slot>
7298
- <input ?disabled=${this.disabled} type="number" min=${l(this.min)} max=${l(this.max)} step=${l(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>
6842
+ <input ?disabled=${this.disabled} type="number" min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>
7299
6843
  </label>
7300
6844
  `;
7301
6845
  }
@@ -7334,7 +6878,7 @@
7334
6878
  }));
7335
6879
  }
7336
6880
  static get styles() {
7337
- return [super.styles, r$2`
6881
+ return [super.styles, i$2`
7338
6882
  :host {
7339
6883
  display: flex;
7340
6884
 
@@ -7486,7 +7030,7 @@
7486
7030
  this.disabled = false;
7487
7031
  }
7488
7032
  static get styles() {
7489
- return [super.styles, r$2`
7033
+ return [super.styles, i$2`
7490
7034
  fieldset {
7491
7035
  display: flex;
7492
7036
 
@@ -7561,7 +7105,7 @@
7561
7105
  }));
7562
7106
  }
7563
7107
  static get styles() {
7564
- return [super.styles, r$2`
7108
+ return [super.styles, i$2`
7565
7109
  :host {
7566
7110
  display: flex;
7567
7111
  }
@@ -7697,6 +7241,50 @@
7697
7241
  }
7698
7242
  };
7699
7243
 
7244
+ function DecidablesMixinResizeable(superClass) {
7245
+ return class extends superClass {
7246
+ static get properties() {
7247
+ return {
7248
+ width: {
7249
+ attribute: false,
7250
+ type: Number,
7251
+ reflect: false
7252
+ },
7253
+ height: {
7254
+ attribute: false,
7255
+ type: Number,
7256
+ reflect: false
7257
+ },
7258
+ rem: {
7259
+ attribute: false,
7260
+ type: Number,
7261
+ reflect: false
7262
+ }
7263
+ };
7264
+ }
7265
+ constructor() {
7266
+ super();
7267
+ this.width = NaN;
7268
+ this.height = NaN;
7269
+ this.rem = NaN;
7270
+ }
7271
+ getDimensions() {
7272
+ this.width = parseFloat(this.getComputedStyleValue('width'), 10);
7273
+ this.height = parseFloat(this.getComputedStyleValue('height'), 10);
7274
+ this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
7275
+ }
7276
+ connectedCallback() {
7277
+ super.connectedCallback();
7278
+ this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));
7279
+ this.resizeObserver.observe(this);
7280
+ }
7281
+ disconnectedCallback() {
7282
+ this.resizeObserver.unobserve(this);
7283
+ super.disconnectedCallback();
7284
+ }
7285
+ };
7286
+ }
7287
+
7700
7288
  /*
7701
7289
  DetectableElement Base Class - Not intended for instantiation!
7702
7290
  <detectable-element>
@@ -7747,55 +7335,55 @@
7747
7335
  }, {});
7748
7336
  }
7749
7337
  static get styles() {
7750
- return [super.styles, r$2`
7338
+ return [super.styles, i$2`
7751
7339
  :host {
7752
- ---color-h: var(--color-h, ${o$3(this.colors.h)});
7753
- ---color-m: var(--color-m, ${o$3(this.colors.m)});
7754
- ---color-fa: var(--color-fa, ${o$3(this.colors.fa)});
7755
- ---color-cr: var(--color-cr, ${o$3(this.colors.cr)});
7756
- ---color-hr: var(--color-hr, ${o$3(this.colors.hr)});
7757
- ---color-far: var(--color-far, ${o$3(this.colors.far)});
7758
- ---color-acc: var(--color-acc, ${o$3(this.colors.acc)});
7759
- ---color-d: var(--color-d, ${o$3(this.colors.d)});
7760
- ---color-c: var(--color-c, ${o$3(this.colors.c)});
7761
- ---color-s: var(--color-s, ${o$3(this.colors.s)});
7762
- ---color-present: var(--color-present, ${o$3(this.colors.present)});
7763
- ---color-absent: var(--color-absent, ${o$3(this.colors.absent)});
7764
- ---color-correct: var(--color-correct, ${o$3(this.colors.correct)});
7765
- ---color-error: var(--color-error, ${o$3(this.colors.error)});
7766
- ---color-nr: var(--color-nr, ${o$3(this.colors.nr)});
7767
-
7768
- ---color-h-light: var(--color-h-light, ${o$3(this.lights.h)});
7769
- ---color-m-light: var(--color-m-light, ${o$3(this.lights.m)});
7770
- ---color-fa-light: var(--color-fa-light, ${o$3(this.lights.fa)});
7771
- ---color-cr-light: var(--color-cr-light, ${o$3(this.lights.cr)});
7772
- ---color-hr-light: var(--color-hr-light, ${o$3(this.lights.hr)});
7773
- ---color-far-light: var(--color-far-light, ${o$3(this.lights.far)});
7774
- ---color-acc-light: var(--color-acc-light, ${o$3(this.lights.acc)});
7775
- ---color-d-light: var(--color-d-light, ${o$3(this.lights.d)});
7776
- ---color-c-light: var(--color-c-light, ${o$3(this.lights.c)});
7777
- ---color-s-light: var(--color-s-light, ${o$3(this.lights.s)});
7778
- ---color-present-light: var(--color-present-light, ${o$3(this.lights.present)});
7779
- ---color-absent-light: var(--color-absent-light, ${o$3(this.lights.absent)});
7780
- ---color-correct-light: var(--color-correct-light, ${o$3(this.lights.correct)});
7781
- ---color-error-light: var(--color-error-light, ${o$3(this.lights.error)});
7782
- ---color-nr-light: var(--color-nr-light, ${o$3(this.lights.nr)});
7783
-
7784
- ---color-h-dark: var(--color-h-dark, ${o$3(this.darks.h)});
7785
- ---color-m-dark: var(--color-m-dark, ${o$3(this.darks.m)});
7786
- ---color-fa-dark: var(--color-fa-dark, ${o$3(this.darks.fa)});
7787
- ---color-cr-dark: var(--color-cr-dark, ${o$3(this.darks.cr)});
7788
- ---color-hr-dark: var(--color-hr-dark, ${o$3(this.darks.hr)});
7789
- ---color-far-dark: var(--color-far-dark, ${o$3(this.darks.far)});
7790
- ---color-acc-dark: var(--color-acc-dark, ${o$3(this.darks.acc)});
7791
- ---color-d-dark: var(--color-d-dark, ${o$3(this.darks.d)});
7792
- ---color-c-dark: var(--color-c-dark, ${o$3(this.darks.c)});
7793
- ---color-s-dark: var(--color-s-dark, ${o$3(this.darks.s)});
7794
- ---color-present-dark: var(--color-present-dark, ${o$3(this.darks.present)});
7795
- ---color-absent-dark: var(--color-absent-dark, ${o$3(this.darks.absent)});
7796
- ---color-correct-dark: var(--color-correct-dark, ${o$3(this.darks.correct)});
7797
- ---color-error-dark: var(--color-error-dark, ${o$3(this.darks.error)});
7798
- ---color-nr-dark: var(--color-nr-dark, ${o$3(this.darks.nr)});
7340
+ ---color-h: var(--color-h, ${r$3(this.colors.h)});
7341
+ ---color-m: var(--color-m, ${r$3(this.colors.m)});
7342
+ ---color-fa: var(--color-fa, ${r$3(this.colors.fa)});
7343
+ ---color-cr: var(--color-cr, ${r$3(this.colors.cr)});
7344
+ ---color-hr: var(--color-hr, ${r$3(this.colors.hr)});
7345
+ ---color-far: var(--color-far, ${r$3(this.colors.far)});
7346
+ ---color-acc: var(--color-acc, ${r$3(this.colors.acc)});
7347
+ ---color-d: var(--color-d, ${r$3(this.colors.d)});
7348
+ ---color-c: var(--color-c, ${r$3(this.colors.c)});
7349
+ ---color-s: var(--color-s, ${r$3(this.colors.s)});
7350
+ ---color-present: var(--color-present, ${r$3(this.colors.present)});
7351
+ ---color-absent: var(--color-absent, ${r$3(this.colors.absent)});
7352
+ ---color-correct: var(--color-correct, ${r$3(this.colors.correct)});
7353
+ ---color-error: var(--color-error, ${r$3(this.colors.error)});
7354
+ ---color-nr: var(--color-nr, ${r$3(this.colors.nr)});
7355
+
7356
+ ---color-h-light: var(--color-h-light, ${r$3(this.lights.h)});
7357
+ ---color-m-light: var(--color-m-light, ${r$3(this.lights.m)});
7358
+ ---color-fa-light: var(--color-fa-light, ${r$3(this.lights.fa)});
7359
+ ---color-cr-light: var(--color-cr-light, ${r$3(this.lights.cr)});
7360
+ ---color-hr-light: var(--color-hr-light, ${r$3(this.lights.hr)});
7361
+ ---color-far-light: var(--color-far-light, ${r$3(this.lights.far)});
7362
+ ---color-acc-light: var(--color-acc-light, ${r$3(this.lights.acc)});
7363
+ ---color-d-light: var(--color-d-light, ${r$3(this.lights.d)});
7364
+ ---color-c-light: var(--color-c-light, ${r$3(this.lights.c)});
7365
+ ---color-s-light: var(--color-s-light, ${r$3(this.lights.s)});
7366
+ ---color-present-light: var(--color-present-light, ${r$3(this.lights.present)});
7367
+ ---color-absent-light: var(--color-absent-light, ${r$3(this.lights.absent)});
7368
+ ---color-correct-light: var(--color-correct-light, ${r$3(this.lights.correct)});
7369
+ ---color-error-light: var(--color-error-light, ${r$3(this.lights.error)});
7370
+ ---color-nr-light: var(--color-nr-light, ${r$3(this.lights.nr)});
7371
+
7372
+ ---color-h-dark: var(--color-h-dark, ${r$3(this.darks.h)});
7373
+ ---color-m-dark: var(--color-m-dark, ${r$3(this.darks.m)});
7374
+ ---color-fa-dark: var(--color-fa-dark, ${r$3(this.darks.fa)});
7375
+ ---color-cr-dark: var(--color-cr-dark, ${r$3(this.darks.cr)});
7376
+ ---color-hr-dark: var(--color-hr-dark, ${r$3(this.darks.hr)});
7377
+ ---color-far-dark: var(--color-far-dark, ${r$3(this.darks.far)});
7378
+ ---color-acc-dark: var(--color-acc-dark, ${r$3(this.darks.acc)});
7379
+ ---color-d-dark: var(--color-d-dark, ${r$3(this.darks.d)});
7380
+ ---color-c-dark: var(--color-c-dark, ${r$3(this.darks.c)});
7381
+ ---color-s-dark: var(--color-s-dark, ${r$3(this.darks.s)});
7382
+ ---color-present-dark: var(--color-present-dark, ${r$3(this.darks.present)});
7383
+ ---color-absent-dark: var(--color-absent-dark, ${r$3(this.darks.absent)});
7384
+ ---color-correct-dark: var(--color-correct-dark, ${r$3(this.darks.correct)});
7385
+ ---color-error-dark: var(--color-error-dark, ${r$3(this.darks.error)});
7386
+ ---color-nr-dark: var(--color-nr-dark, ${r$3(this.darks.nr)});
7799
7387
  }
7800
7388
  `];
7801
7389
  }
@@ -7809,7 +7397,7 @@
7809
7397
  Dots; Coherence;
7810
7398
  # Direction, Speed, Lifetime
7811
7399
  */
7812
- class RDKTask extends DetectableElement {
7400
+ class RDKTask extends DecidablesMixinResizeable(DetectableElement) {
7813
7401
  static get properties() {
7814
7402
  return {
7815
7403
  coherence: {
@@ -7866,21 +7454,6 @@
7866
7454
  attribute: false,
7867
7455
  type: Number,
7868
7456
  reflect: false
7869
- },
7870
- width: {
7871
- attribute: false,
7872
- type: Number,
7873
- reflect: false
7874
- },
7875
- height: {
7876
- attribute: false,
7877
- type: Number,
7878
- reflect: false
7879
- },
7880
- rem: {
7881
- attribute: false,
7882
- type: Number,
7883
- reflect: false
7884
7457
  }
7885
7458
  };
7886
7459
  }
@@ -7902,10 +7475,6 @@
7902
7475
  this.lifetime = 400; // Lifetime of each dot in milliseconds
7903
7476
  this.speed = 50; // Rate of dot movement in pixels per second
7904
7477
 
7905
- this.width = NaN; // Width of component in pixels
7906
- this.height = NaN; // Height of component in pixels
7907
- this.rem = NaN; // Pixels per rem for component
7908
-
7909
7478
  // Private
7910
7479
  this.firstUpdate = true;
7911
7480
  this.COHERENT = 0; // "Constant" for index to coherent dots
@@ -7929,9 +7498,8 @@
7929
7498
  this.xScale = undefined; // D3 Scale for x-axis
7930
7499
  this.yScale = undefined; // D3 Scale for y-axis
7931
7500
  }
7932
-
7933
7501
  static get styles() {
7934
- return [super.styles, r$2`
7502
+ return [super.styles, i$2`
7935
7503
  :host {
7936
7504
  display: inline-block;
7937
7505
 
@@ -7982,27 +7550,6 @@
7982
7550
  /* eslint-disable-line class-methods-use-this */
7983
7551
  return x$1``;
7984
7552
  }
7985
- getDimensions() {
7986
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
7987
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
7988
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
7989
- // console.log(`rdk-task: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
7990
- }
7991
-
7992
- connectedCallback() {
7993
- super.connectedCallback();
7994
- window.addEventListener('resize', this.getDimensions.bind(this));
7995
- }
7996
- disconnectedCallback() {
7997
- window.removeEventListener('resize', this.getDimensions.bind(this));
7998
- super.disconnectedCallback();
7999
- }
8000
- firstUpdated(changedProperties) {
8001
- super.firstUpdated(changedProperties);
8002
-
8003
- // Get the width and height after initial render/update has occurred
8004
- this.getDimensions();
8005
- }
8006
7553
  update(changedProperties) {
8007
7554
  super.update(changedProperties);
8008
7555
 
@@ -11684,12 +11231,10 @@
11684
11231
  if (Q2[0].length === undefined) {
11685
11232
  Q2 = [Q2]; // The confusing jStat.multifly implementation threat nature process again.
11686
11233
  }
11687
-
11688
11234
  var x = jStat.multiply(jStat.multiply(RI, Q2), b);
11689
11235
  if (x.length === undefined) {
11690
11236
  x = [[x]]; // The confusing jStat.multifly implementation threat nature process again.
11691
11237
  }
11692
-
11693
11238
  if (array_mode) return x.map(function (i) {
11694
11239
  return i[0];
11695
11240
  });
@@ -12796,7 +12341,7 @@
12796
12341
  Styles:
12797
12342
  ??
12798
12343
  */
12799
- class ROCSpace extends DetectableElement {
12344
+ class ROCSpace extends DecidablesMixinResizeable(DetectableElement) {
12800
12345
  static get properties() {
12801
12346
  return {
12802
12347
  contour: {
@@ -12848,21 +12393,6 @@
12848
12393
  attribute: false,
12849
12394
  type: Number,
12850
12395
  reflect: false
12851
- },
12852
- width: {
12853
- attribute: false,
12854
- type: Number,
12855
- reflect: false
12856
- },
12857
- height: {
12858
- attribute: false,
12859
- type: Number,
12860
- reflect: false
12861
- },
12862
- rem: {
12863
- attribute: false,
12864
- type: Number,
12865
- reflect: false
12866
12396
  }
12867
12397
  };
12868
12398
  }
@@ -12894,9 +12424,6 @@
12894
12424
  this.pointArray = [];
12895
12425
  this.isoDArray = [];
12896
12426
  this.isoCArray = [];
12897
- this.width = NaN;
12898
- this.height = NaN;
12899
- this.rem = NaN;
12900
12427
  this.alignState();
12901
12428
  }
12902
12429
  alignState() {
@@ -12983,7 +12510,7 @@
12983
12510
  this.requestUpdate();
12984
12511
  }
12985
12512
  static get styles() {
12986
- return [super.styles, r$2`
12513
+ return [super.styles, i$2`
12987
12514
  :host {
12988
12515
  display: inline-block;
12989
12516
 
@@ -13123,27 +12650,6 @@
13123
12650
  ${DetectableElement.svgFilters}
13124
12651
  `;
13125
12652
  }
13126
- getDimensions() {
13127
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
13128
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
13129
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
13130
- // console.log(`roc-space: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
13131
- }
13132
-
13133
- connectedCallback() {
13134
- super.connectedCallback();
13135
- window.addEventListener('resize', this.getDimensions.bind(this));
13136
- }
13137
- disconnectedCallback() {
13138
- window.removeEventListener('resize', this.getDimensions.bind(this));
13139
- super.disconnectedCallback();
13140
- }
13141
- firstUpdated(changedProperties) {
13142
- super.firstUpdated(changedProperties);
13143
-
13144
- // Get the width and height after initial render/update has occurred
13145
- this.getDimensions();
13146
- }
13147
12653
  update(changedProperties) {
13148
12654
  super.update(changedProperties);
13149
12655
  this.alignState();
@@ -13276,7 +12782,7 @@
13276
12782
  const contours = Contours().size([n, n]).thresholds(contourThresholds);
13277
12783
  const contourColorStart = this.getComputedStyleValue(this.contour === 'bias' ? '---color-element-background' : this.contour === 'sensitivity' ? '---color-d' : this.contour === 'accuracy' ? '---color-acc-dark' : null);
13278
12784
  const contourColorEnd = this.getComputedStyleValue(this.contour === 'bias' ? '---color-c' : this.contour === 'sensitivity' ? '---color-element-background' : this.contour === 'accuracy' ? '---color-element-background' : null);
13279
- const contourColor = linear().domain(extent$1(contourThresholds)).interpolate(() => {
12785
+ const contourColor = linear().domain(extent(contourThresholds)).interpolate(() => {
13280
12786
  return interpolateRgb(contourColorStart, contourColorEnd);
13281
12787
  });
13282
12788
  // DATA-JOIN
@@ -13575,7 +13081,6 @@
13575
13081
  break;
13576
13082
  // no-op
13577
13083
  }
13578
-
13579
13084
  hr = this.zRoc ? SDTMath.zhr2Hr(hr) : hr;
13580
13085
  far = this.zRoc ? SDTMath.zfar2Far(far) : far;
13581
13086
  // Clamp FAR and HR to ROC Space
@@ -13820,7 +13325,7 @@
13820
13325
  this.state = 'ended';
13821
13326
  }
13822
13327
  static get styles() {
13823
- return [super.styles, r$2`
13328
+ return [super.styles, i$2`
13824
13329
  :host {
13825
13330
  display: inline-block;
13826
13331
  }
@@ -13899,7 +13404,7 @@
13899
13404
  Styles:
13900
13405
  ??
13901
13406
  */
13902
- class SDTModel extends DetectableElement {
13407
+ class SDTModel extends DecidablesMixinResizeable(DetectableElement) {
13903
13408
  static get properties() {
13904
13409
  return {
13905
13410
  color: {
@@ -13976,21 +13481,6 @@
13976
13481
  attribute: false,
13977
13482
  type: Array,
13978
13483
  reflect: false
13979
- },
13980
- width: {
13981
- attribute: false,
13982
- type: Number,
13983
- reflect: false
13984
- },
13985
- height: {
13986
- attribute: false,
13987
- type: Number,
13988
- reflect: false
13989
- },
13990
- rem: {
13991
- attribute: false,
13992
- type: Number,
13993
- reflect: false
13994
13484
  }
13995
13485
  };
13996
13486
  }
@@ -14018,10 +13508,6 @@
14018
13508
  this.responses = ['present', 'absent']; // Allowable values of trial.response
14019
13509
  this.trials = []; // Array of simulated trials
14020
13510
 
14021
- this.width = NaN; // Width of component in pixels
14022
- this.height = NaN; // Height of component in pixels
14023
- this.rem = NaN; // Pixels per rem for component
14024
-
14025
13511
  // Private
14026
13512
  this.muN = NaN; // Mean of noise distribution
14027
13513
  this.muS = NaN; // Mean of signal distribution
@@ -14090,7 +13576,7 @@
14090
13576
  }
14091
13577
  }
14092
13578
  static get styles() {
14093
- return [super.styles, r$2`
13579
+ return [super.styles, i$2`
14094
13580
  :host {
14095
13581
  display: inline-block;
14096
13582
 
@@ -14356,27 +13842,6 @@
14356
13842
  bubbles: true
14357
13843
  }));
14358
13844
  }
14359
- getDimensions() {
14360
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
14361
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
14362
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
14363
- // console.log(`sdt-model: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
14364
- }
14365
-
14366
- connectedCallback() {
14367
- super.connectedCallback();
14368
- window.addEventListener('resize', this.getDimensions.bind(this));
14369
- }
14370
- disconnectedCallback() {
14371
- window.removeEventListener('resize', this.getDimensions.bind(this));
14372
- super.disconnectedCallback();
14373
- }
14374
- firstUpdated(changedProperties) {
14375
- super.firstUpdated(changedProperties);
14376
-
14377
- // Get the width and height after initial render/update has occurred
14378
- this.getDimensions();
14379
- }
14380
13845
  update(changedProperties) {
14381
13846
  super.update(changedProperties);
14382
13847
  this.alignState();
@@ -15352,7 +14817,6 @@
15352
14817
 
15353
14818
  this.nr = 0; // Count of No Response trials
15354
14819
  }
15355
-
15356
14820
  get trialPayoff() {
15357
14821
  switch (this.outcome) {
15358
14822
  case 'h':
@@ -15450,7 +14914,7 @@
15450
14914
  this.e = 0;
15451
14915
  }
15452
14916
  static get styles() {
15453
- return [super.styles, r$2`
14917
+ return [super.styles, i$2`
15454
14918
  :host {
15455
14919
  display: inline-block;
15456
14920
  }
@@ -15737,7 +15201,6 @@
15737
15201
  this.crPayoff = undefined; // Correct Rejection payoff
15738
15202
  this.faPayoff = undefined; // False Alarm payoff
15739
15203
  }
15740
-
15741
15204
  alignState() {
15742
15205
  this.hr = SDTMath.hM2Hr(this.h, this.m);
15743
15206
  this.far = SDTMath.faCr2Far(this.fa, this.cr);
@@ -15844,7 +15307,7 @@
15844
15307
  this.sendEvent();
15845
15308
  }
15846
15309
  static get styles() {
15847
- return [super.styles, r$2`
15310
+ return [super.styles, i$2`
15848
15311
  :host {
15849
15312
  display: inline-block;
15850
15313
  }
@@ -16217,7 +15680,7 @@
16217
15680
  this.numeric = false;
16218
15681
  }
16219
15682
  static get styles() {
16220
- return [super.styles, r$2`
15683
+ return [super.styles, i$2`
16221
15684
  :host {
16222
15685
  display: block;
16223
15686
 
@@ -17572,7 +17035,7 @@
17572
17035
  */
17573
17036
  class SDTExample extends DetectableElement {
17574
17037
  static get styles() {
17575
- return [super.styles, r$2`
17038
+ return [super.styles, i$2`
17576
17039
  :host {
17577
17040
  display: inline-block;
17578
17041