@decidables/detectable-elements 0.2.5 → 0.2.6

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 {
12
+ const t$1 = window,
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$3 = Symbol(),
15
+ n$3 = new WeakMap();
16
+ let o$3 = class o {
17
17
  constructor(t, e, n) {
18
- if (this._$cssResult$ = !0, n !== s$6) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
18
+ if (this._$cssResult$ = !0, n !== s$3) 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 = n$3.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && n$3.set(s, t));
27
27
  }
28
28
  return t;
29
29
  }
@@ -31,608 +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
- });
41
- },
42
- c$2 = e$5 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
43
- let e = "";
44
- for (const s of t.cssRules) e += s.cssText;
45
- return r$5(e);
46
- })(t) : t;
47
-
48
- /**
49
- * @license
50
- * Copyright 2017 Google LLC
51
- * SPDX-License-Identifier: BSD-3-Clause
52
- */
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
- case Boolean:
62
- t = t ? h$3 : null;
63
- break;
64
- case Object:
65
- case Array:
66
- t = null == t ? t : JSON.stringify(t);
67
- }
68
- return t;
69
- },
70
- fromAttribute(t, i) {
71
- let s = t;
72
- switch (i) {
73
- case Boolean:
74
- s = null !== t;
75
- break;
76
- case Number:
77
- s = null === t ? null : Number(t);
78
- break;
79
- case Object:
80
- case Array:
81
- try {
82
- s = JSON.parse(t);
83
- } catch (t) {
84
- s = null;
85
- }
86
- }
87
- return s;
88
- }
89
- },
90
- a$3 = (t, i) => i !== t && (i == i || t == t),
91
- l$5 = {
92
- attribute: !0,
93
- type: String,
94
- converter: n$5,
95
- reflect: !1,
96
- hasChanged: a$3
97
- };
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
- }
102
- static addInitializer(t) {
103
- var i;
104
- this.finalize(), (null !== (i = this.h) && void 0 !== i ? i : this.h = []).push(t);
105
- }
106
- 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);
119
- }
120
- }
121
- static getPropertyDescriptor(t, i, s) {
122
- return {
123
- get() {
124
- return this[i];
125
- },
126
- set(e) {
127
- const r = this[t];
128
- this[i] = e, this.requestUpdate(t, r, s);
129
- },
130
- configurable: !0,
131
- enumerable: !0
132
- };
133
- }
134
- static getPropertyOptions(t) {
135
- return this.elementProperties.get(t) || l$5;
136
- }
137
- 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")) {
142
- 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;
497
- }
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;
516
- }
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;
540
- }
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;
553
- }
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;
559
- }
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);
579
- }
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 => {
34
+ const r$2 = t => new o$3("string" == typeof t ? t : t + "", void 0, s$3),
35
+ i$1 = (t, ...e) => {
36
+ const n = 1 === t.length ? t[0] : e.reduce((e, s, n) => e + (t => {
619
37
  if (!0 === t._$cssResult$) return t.cssText;
620
38
  if ("number" == typeof t) return t;
621
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.");
622
- })(n) + t[s + 1], t[0]);
623
- return new s$3(o, e$2);
40
+ })(s) + t[n + 1], t[0]);
41
+ return new o$3(n, t, s$3);
624
42
  },
625
- i$1 = (e, n) => {
626
- t$1 ? e.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(t => {
43
+ S$1 = (s, n) => {
44
+ e$2 ? s.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(e => {
627
45
  const n = document.createElement("style"),
628
- s = window.litNonce;
629
- void 0 !== s && n.setAttribute("nonce", s), n.textContent = t.cssText, e.appendChild(n);
46
+ o = t$1.litNonce;
47
+ void 0 !== o && n.setAttribute("nonce", o), n.textContent = e.cssText, s.appendChild(n);
630
48
  });
631
49
  },
632
- S$1 = t$1 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
50
+ c$1 = e$2 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
633
51
  let e = "";
634
- for (const n of t.cssRules) e += n.cssText;
635
- return o$3(e);
52
+ for (const s of t.cssRules) e += s.cssText;
53
+ return r$2(e);
636
54
  })(t) : t;
637
55
 
638
56
  /**
@@ -641,14 +59,15 @@
641
59
  * SPDX-License-Identifier: BSD-3-Clause
642
60
  */
643
61
  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 = {
62
+ const e$1 = window,
63
+ r$1 = e$1.trustedTypes,
64
+ h$1 = r$1 ? r$1.emptyScript : "",
65
+ o$2 = e$1.reactiveElementPolyfillSupport,
66
+ n$2 = {
648
67
  toAttribute(t, i) {
649
68
  switch (i) {
650
69
  case Boolean:
651
- t = t ? r$1 : null;
70
+ t = t ? h$1 : null;
652
71
  break;
653
72
  case Object:
654
73
  case Array:
@@ -676,28 +95,29 @@
676
95
  return s;
677
96
  }
678
97
  },
679
- n$2 = (t, i) => i !== t && (i == i || t == t),
98
+ a$1 = (t, i) => i !== t && (i == i || t == t),
680
99
  l$3 = {
681
100
  attribute: !0,
682
101
  type: String,
683
- converter: o$2,
102
+ converter: n$2,
684
103
  reflect: !1,
685
- hasChanged: n$2
686
- };
687
- let a$1 = class a extends HTMLElement {
104
+ hasChanged: a$1
105
+ },
106
+ d$1 = "finalized";
107
+ let u$1 = class u extends HTMLElement {
688
108
  constructor() {
689
- super(), this._$Et = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$Ei = null, this.o();
109
+ super(), this._$Ei = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu();
690
110
  }
691
111
  static addInitializer(t) {
692
112
  var i;
693
- null !== (i = this.l) && void 0 !== i || (this.l = []), this.l.push(t);
113
+ this.finalize(), (null !== (i = this.h) && void 0 !== i ? i : this.h = []).push(t);
694
114
  }
695
115
  static get observedAttributes() {
696
116
  this.finalize();
697
117
  const t = [];
698
118
  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));
119
+ const e = this._$Ep(s, i);
120
+ void 0 !== e && (this._$Ev.set(e, s), t.push(e));
701
121
  }), t;
702
122
  }
703
123
  static createProperty(t, i = l$3) {
@@ -724,10 +144,10 @@
724
144
  return this.elementProperties.get(t) || l$3;
725
145
  }
726
146
  static finalize() {
727
- if (this.hasOwnProperty("finalized")) return !1;
728
- this.finalized = !0;
147
+ if (this.hasOwnProperty(d$1)) return !1;
148
+ this[d$1] = !0;
729
149
  const t = Object.getPrototypeOf(this);
730
- if (t.finalize(), this.elementProperties = new Map(t.elementProperties), this._$Eu = new Map(), this.hasOwnProperty("properties")) {
150
+ if (t.finalize(), void 0 !== t.h && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = new Map(), this.hasOwnProperty("properties")) {
731
151
  const t = this.properties,
732
152
  i = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
733
153
  for (const s of i) this.createProperty(s, t[s]);
@@ -738,39 +158,39 @@
738
158
  const s = [];
739
159
  if (Array.isArray(i)) {
740
160
  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));
161
+ for (const i of e) s.unshift(c$1(i));
162
+ } else void 0 !== i && s.push(c$1(i));
743
163
  return s;
744
164
  }
745
- static _$Eh(t, i) {
165
+ static _$Ep(t, i) {
746
166
  const s = i.attribute;
747
167
  return !1 === s ? void 0 : "string" == typeof s ? s : "string" == typeof t ? t.toLowerCase() : void 0;
748
168
  }
749
- o() {
169
+ _$Eu() {
750
170
  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));
171
+ 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));
752
172
  }
753
173
  addController(t) {
754
174
  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));
175
+ (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));
756
176
  }
757
177
  removeController(t) {
758
178
  var i;
759
- null === (i = this._$Eg) || void 0 === i || i.splice(this._$Eg.indexOf(t) >>> 0, 1);
179
+ null === (i = this._$ES) || void 0 === i || i.splice(this._$ES.indexOf(t) >>> 0, 1);
760
180
  }
761
- _$Em() {
181
+ _$Eg() {
762
182
  this.constructor.elementProperties.forEach((t, i) => {
763
- this.hasOwnProperty(i) && (this._$Et.set(i, this[i]), delete this[i]);
183
+ this.hasOwnProperty(i) && (this._$Ei.set(i, this[i]), delete this[i]);
764
184
  });
765
185
  }
766
186
  createRenderRoot() {
767
187
  var t;
768
188
  const s = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
769
- return i$1(s, this.constructor.elementStyles), s;
189
+ return S$1(s, this.constructor.elementStyles), s;
770
190
  }
771
191
  connectedCallback() {
772
192
  var t;
773
- void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
193
+ void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$ES) || void 0 === t || t.forEach(t => {
774
194
  var i;
775
195
  return null === (i = t.hostConnected) || void 0 === i ? void 0 : i.call(t);
776
196
  });
@@ -778,7 +198,7 @@
778
198
  enableUpdating(t) {}
779
199
  disconnectedCallback() {
780
200
  var t;
781
- null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
201
+ null === (t = this._$ES) || void 0 === t || t.forEach(t => {
782
202
  var i;
783
203
  return null === (i = t.hostDisconnected) || void 0 === i ? void 0 : i.call(t);
784
204
  });
@@ -786,33 +206,34 @@
786
206
  attributeChangedCallback(t, i, s) {
787
207
  this._$AK(t, s);
788
208
  }
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;
209
+ _$EO(t, i, s = l$3) {
210
+ var e;
211
+ const r = this.constructor._$Ep(t, s);
212
+ if (void 0 !== r && !0 === s.reflect) {
213
+ const h = (void 0 !== (null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) ? s.converter : n$2).toAttribute(i, s.type);
214
+ this._$El = t, null == h ? this.removeAttribute(r) : this.setAttribute(r, h), this._$El = null;
795
215
  }
796
216
  }
797
217
  _$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;
218
+ var s;
219
+ const e = this.constructor,
220
+ r = e._$Ev.get(t);
221
+ if (void 0 !== r && this._$El !== r) {
222
+ const t = e.getPropertyOptions(r),
223
+ h = "function" == typeof t.converter ? {
224
+ fromAttribute: t.converter
225
+ } : void 0 !== (null === (s = t.converter) || void 0 === s ? void 0 : s.fromAttribute) ? t.converter : n$2;
226
+ this._$El = r, this[r] = h.fromAttribute(i, t.type), this._$El = null;
806
227
  }
807
228
  }
808
229
  requestUpdate(t, i, s) {
809
230
  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_());
231
+ void 0 !== t && (((s = s || this.constructor.getPropertyOptions(t)).hasChanged || a$1)(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());
811
232
  }
812
- async _$E_() {
233
+ async _$Ej() {
813
234
  this.isUpdatePending = !0;
814
235
  try {
815
- await this._$Ep;
236
+ await this._$E_;
816
237
  } catch (t) {
817
238
  Promise.reject(t);
818
239
  }
@@ -825,50 +246,50 @@
825
246
  performUpdate() {
826
247
  var t;
827
248
  if (!this.isUpdatePending) return;
828
- this.hasUpdated, this._$Et && (this._$Et.forEach((t, i) => this[i] = t), this._$Et = void 0);
249
+ this.hasUpdated, this._$Ei && (this._$Ei.forEach((t, i) => this[i] = t), this._$Ei = void 0);
829
250
  let i = !1;
830
251
  const s = this._$AL;
831
252
  try {
832
- i = this.shouldUpdate(s), i ? (this.willUpdate(s), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
253
+ i = this.shouldUpdate(s), i ? (this.willUpdate(s), null === (t = this._$ES) || void 0 === t || t.forEach(t => {
833
254
  var i;
834
255
  return null === (i = t.hostUpdate) || void 0 === i ? void 0 : i.call(t);
835
- }), this.update(s)) : this._$EU();
256
+ }), this.update(s)) : this._$Ek();
836
257
  } catch (t) {
837
- throw i = !1, this._$EU(), t;
258
+ throw i = !1, this._$Ek(), t;
838
259
  }
839
260
  i && this._$AE(s);
840
261
  }
841
262
  willUpdate(t) {}
842
263
  _$AE(t) {
843
264
  var i;
844
- null === (i = this._$Eg) || void 0 === i || i.forEach(t => {
265
+ null === (i = this._$ES) || void 0 === i || i.forEach(t => {
845
266
  var i;
846
267
  return null === (i = t.hostUpdated) || void 0 === i ? void 0 : i.call(t);
847
268
  }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
848
269
  }
849
- _$EU() {
270
+ _$Ek() {
850
271
  this._$AL = new Map(), this.isUpdatePending = !1;
851
272
  }
852
273
  get updateComplete() {
853
274
  return this.getUpdateComplete();
854
275
  }
855
276
  getUpdateComplete() {
856
- return this._$Ep;
277
+ return this._$E_;
857
278
  }
858
279
  shouldUpdate(t) {
859
280
  return !0;
860
281
  }
861
282
  update(t) {
862
- void 0 !== this._$EC && (this._$EC.forEach((t, i) => this._$ES(i, this[i], t)), this._$EC = void 0), this._$EU();
283
+ void 0 !== this._$EC && (this._$EC.forEach((t, i) => this._$EO(i, this[i], t)), this._$EC = void 0), this._$Ek();
863
284
  }
864
285
  updated(t) {}
865
286
  firstUpdated(t) {}
866
287
  };
867
- a$1.finalized = !0, a$1.elementProperties = new Map(), a$1.elementStyles = [], a$1.shadowRootOptions = {
288
+ u$1[d$1] = !0, u$1.elementProperties = new Map(), u$1.elementStyles = [], u$1.shadowRootOptions = {
868
289
  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");
290
+ }, null == o$2 || o$2({
291
+ ReactiveElement: u$1
292
+ }), (null !== (s$2 = e$1.reactiveElementVersions) && void 0 !== s$2 ? s$2 : e$1.reactiveElementVersions = []).push("1.6.3");
872
293
 
873
294
  /**
874
295
  * @license
@@ -886,8 +307,8 @@
886
307
  l$2 = "?" + n$1,
887
308
  h = `<${l$2}>`,
888
309
  r = document,
889
- d = () => r.createComment(""),
890
- u = t => null === t || "object" != typeof t && "function" != typeof t,
310
+ u = () => r.createComment(""),
311
+ d = t => null === t || "object" != typeof t && "function" != typeof t,
891
312
  c = Array.isArray,
892
313
  v = t => c(t) || "function" == typeof (null == t ? void 0 : t[Symbol.iterator]),
893
314
  a = "[ \t\n\f\r]",
@@ -908,28 +329,30 @@
908
329
  T = Symbol.for("lit-noChange"),
909
330
  A = Symbol.for("lit-nothing"),
910
331
  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
- };
932
- class V {
332
+ C = r.createTreeWalker(r, 129, null, !1);
333
+ function P(t, i) {
334
+ if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
335
+ return void 0 !== e ? e.createHTML(i) : i;
336
+ }
337
+ const V = (t, i) => {
338
+ const s = t.length - 1,
339
+ e = [];
340
+ let l,
341
+ r = 2 === i ? "<svg>" : "",
342
+ u = f;
343
+ for (let i = 0; i < s; i++) {
344
+ const s = t[i];
345
+ let d,
346
+ c,
347
+ v = -1,
348
+ a = 0;
349
+ 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]) && (l = RegExp("</" + c[2], "g")), u = p) : void 0 !== c[3] && (u = p) : u === p ? ">" === c[0] ? (u = null != l ? l : f, v = -1) : void 0 === c[1] ? v = -2 : (v = u.lastIndex - c[2].length, d = c[1], u = void 0 === c[3] ? p : '"' === c[3] ? $ : g) : u === $ || u === g ? u = p : u === _ || u === m ? u = f : (u = p, l = void 0);
350
+ const w = u === p && t[i + 1].startsWith("/>") ? " " : "";
351
+ r += u === f ? s + h : v >= 0 ? (e.push(d), s.slice(0, v) + o$1 + s.slice(v) + n$1 + w) : s + n$1 + (-2 === v ? (e.push(void 0), i) : w);
352
+ }
353
+ return [P(t, r + (t[s] || "<?>") + (2 === i ? "</svg>" : "")), e];
354
+ };
355
+ class N {
933
356
  constructor({
934
357
  strings: t,
935
358
  _$litType$: i
@@ -937,11 +360,11 @@
937
360
  let h;
938
361
  this.parts = [];
939
362
  let r = 0,
940
- u = 0;
363
+ d = 0;
941
364
  const c = t.length - 1,
942
365
  v = this.parts,
943
- [a, f] = P(t, i);
944
- if (this.el = V.createElement(a, e), C.currentNode = this.el.content, 2 === i) {
366
+ [a, f] = V(t, i);
367
+ if (this.el = N.createElement(a, e), C.currentNode = this.el.content, 2 === i) {
945
368
  const t = this.el.content,
946
369
  i = t.firstChild;
947
370
  i.remove(), t.append(...i.childNodes);
@@ -951,7 +374,7 @@
951
374
  if (h.hasAttributes()) {
952
375
  const t = [];
953
376
  for (const i of h.getAttributeNames()) if (i.endsWith(o$1) || i.startsWith(n$1)) {
954
- const s = f[u++];
377
+ const s = f[d++];
955
378
  if (t.push(i), void 0 !== s) {
956
379
  const t = h.getAttribute(s.toLowerCase() + o$1).split(n$1),
957
380
  i = /([.?@])?(.*)/.exec(s);
@@ -960,7 +383,7 @@
960
383
  index: r,
961
384
  name: i[2],
962
385
  strings: t,
963
- ctor: "." === i[1] ? k : "?" === i[1] ? I : "@" === i[1] ? L : R
386
+ ctor: "." === i[1] ? H : "?" === i[1] ? L : "@" === i[1] ? z : k
964
387
  });
965
388
  } else v.push({
966
389
  type: 6,
@@ -974,11 +397,11 @@
974
397
  i = t.length - 1;
975
398
  if (i > 0) {
976
399
  h.textContent = s$1 ? s$1.emptyScript : "";
977
- for (let s = 0; s < i; s++) h.append(t[s], d()), C.nextNode(), v.push({
400
+ for (let s = 0; s < i; s++) h.append(t[s], u()), C.nextNode(), v.push({
978
401
  type: 2,
979
402
  index: ++r
980
403
  });
981
- h.append(t[i], d());
404
+ h.append(t[i], u());
982
405
  }
983
406
  }
984
407
  } else if (8 === h.nodeType) if (h.data === l$2) v.push({
@@ -999,16 +422,16 @@
999
422
  return s.innerHTML = t, s;
1000
423
  }
1001
424
  }
1002
- function N(t, i, s = t, e) {
425
+ function S(t, i, s = t, e) {
1003
426
  var o, n, l, h;
1004
427
  if (i === T) return i;
1005
428
  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;
429
+ const u = d(i) ? void 0 : i._$litDirective$;
430
+ 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(t, r._$AS(t, i.values), r, e)), i;
1008
431
  }
1009
- class S {
432
+ class M {
1010
433
  constructor(t, i) {
1011
- this.u = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
434
+ this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
1012
435
  }
1013
436
  get parentNode() {
1014
437
  return this._$AM.parentNode;
@@ -1016,7 +439,7 @@
1016
439
  get _$AU() {
1017
440
  return this._$AM._$AU;
1018
441
  }
1019
- v(t) {
442
+ u(t) {
1020
443
  var i;
1021
444
  const {
1022
445
  el: {
@@ -1029,29 +452,29 @@
1029
452
  let n = C.nextNode(),
1030
453
  l = 0,
1031
454
  h = 0,
1032
- d = e[0];
1033
- for (; void 0 !== d;) {
1034
- if (l === d.index) {
455
+ u = e[0];
456
+ for (; void 0 !== u;) {
457
+ if (l === u.index) {
1035
458
  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];
459
+ 2 === u.type ? i = new R(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];
1037
460
  }
1038
- l !== (null == d ? void 0 : d.index) && (n = C.nextNode(), l++);
461
+ l !== (null == u ? void 0 : u.index) && (n = C.nextNode(), l++);
1039
462
  }
1040
- return o;
463
+ return C.currentNode = r, o;
1041
464
  }
1042
- p(t) {
465
+ v(t) {
1043
466
  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++;
467
+ 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
468
  }
1046
469
  }
1047
- class M {
470
+ class R {
1048
471
  constructor(t, i, s, e) {
1049
472
  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;
473
+ this.type = 2, this._$AH = A, 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;
1051
474
  }
1052
475
  get _$AU() {
1053
476
  var t, i;
1054
- return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cm;
477
+ return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cp;
1055
478
  }
1056
479
  get parentNode() {
1057
480
  let t = this._$AA.parentNode;
@@ -1065,40 +488,40 @@
1065
488
  return this._$AB;
1066
489
  }
1067
490
  _$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);
491
+ t = S(this, t, i), d(t) ? t === A || null == t || "" === t ? (this._$AH !== A && this._$AR(), this._$AH = A) : t !== this._$AH && t !== T && this._(t) : void 0 !== t._$litType$ ? this.g(t) : void 0 !== t.nodeType ? this.$(t) : v(t) ? this.T(t) : this._(t);
1069
492
  }
1070
- S(t) {
493
+ k(t) {
1071
494
  return this._$AA.parentNode.insertBefore(t, this._$AB);
1072
495
  }
1073
- T(t) {
1074
- this._$AH !== t && (this._$AR(), this._$AH = this.S(t));
496
+ $(t) {
497
+ this._$AH !== t && (this._$AR(), this._$AH = this.k(t));
1075
498
  }
1076
- g(t) {
1077
- this._$AH !== A && u(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r.createTextNode(t)), this._$AH = t;
499
+ _(t) {
500
+ this._$AH !== A && d(this._$AH) ? this._$AA.nextSibling.data = t : this.$(r.createTextNode(t)), this._$AH = t;
1078
501
  }
1079
- $(t) {
502
+ g(t) {
1080
503
  var i;
1081
504
  const {
1082
505
  values: s,
1083
506
  _$litType$: e
1084
507
  } = 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;
508
+ o = "number" == typeof e ? this._$AC(t) : (void 0 === e.el && (e.el = N.createElement(P(e.h, e.h[0]), this.options)), e);
509
+ if ((null === (i = this._$AH) || void 0 === i ? void 0 : i._$AD) === o) this._$AH.v(s);else {
510
+ const t = new M(o, this),
511
+ i = t.u(this.options);
512
+ t.v(s), this.$(i), this._$AH = t;
1090
513
  }
1091
514
  }
1092
515
  _$AC(t) {
1093
516
  let i = E.get(t.strings);
1094
- return void 0 === i && E.set(t.strings, i = new V(t)), i;
517
+ return void 0 === i && E.set(t.strings, i = new N(t)), i;
1095
518
  }
1096
- k(t) {
519
+ T(t) {
1097
520
  c(this._$AH) || (this._$AH = [], this._$AR());
1098
521
  const i = this._$AH;
1099
522
  let s,
1100
523
  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++;
524
+ for (const o of t) e === i.length ? i.push(s = new R(this.k(u()), this.k(u()), this, this.options)) : s = i[e], s._$AI(o), e++;
1102
525
  e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
1103
526
  }
1104
527
  _$AR(t = this._$AA.nextSibling, i) {
@@ -1110,10 +533,10 @@
1110
533
  }
1111
534
  setConnected(t) {
1112
535
  var i;
1113
- void 0 === this._$AM && (this._$Cm = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
536
+ void 0 === this._$AM && (this._$Cp = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
1114
537
  }
1115
538
  }
1116
- class R {
539
+ class k {
1117
540
  constructor(t, i, s, e, o) {
1118
541
  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
542
  }
@@ -1126,10 +549,10 @@
1126
549
  _$AI(t, i = this, s, e) {
1127
550
  const o = this.strings;
1128
551
  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 {
552
+ if (void 0 === o) t = S(this, t, i, 0), n = !d(t) || t !== this._$AH && t !== T, n && (this._$AH = t);else {
1130
553
  const e = t;
1131
554
  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;
555
+ for (t = o[0], l = 0; l < o.length - 1; l++) h = S(this, e[s + l], i, l), h === T && (h = this._$AH[l]), n || (n = !d(h) || h !== this._$AH[l]), h === A ? t = A : t !== A && (t += (null != h ? h : "") + o[l + 1]), this._$AH[l] = h;
1133
556
  }
1134
557
  n && !e && this.j(t);
1135
558
  }
@@ -1137,7 +560,7 @@
1137
560
  t === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "");
1138
561
  }
1139
562
  }
1140
- class k extends R {
563
+ class H extends k {
1141
564
  constructor() {
1142
565
  super(...arguments), this.type = 3;
1143
566
  }
@@ -1145,22 +568,22 @@
1145
568
  this.element[this.name] = t === A ? void 0 : t;
1146
569
  }
1147
570
  }
1148
- const H = s$1 ? s$1.emptyScript : "";
1149
- class I extends R {
571
+ const I = s$1 ? s$1.emptyScript : "";
572
+ class L extends k {
1150
573
  constructor() {
1151
574
  super(...arguments), this.type = 4;
1152
575
  }
1153
576
  j(t) {
1154
- t && t !== A ? this.element.setAttribute(this.name, H) : this.element.removeAttribute(this.name);
577
+ t && t !== A ? this.element.setAttribute(this.name, I) : this.element.removeAttribute(this.name);
1155
578
  }
1156
579
  }
1157
- class L extends R {
580
+ class z extends k {
1158
581
  constructor(t, i, s, e, o) {
1159
582
  super(t, i, s, e, o), this.type = 5;
1160
583
  }
1161
584
  _$AI(t, i = this) {
1162
585
  var s;
1163
- if ((t = null !== (s = N(this, t, i, 0)) && void 0 !== s ? s : A) === T) return;
586
+ if ((t = null !== (s = S(this, t, i, 0)) && void 0 !== s ? s : A) === T) return;
1164
587
  const e = this._$AH,
1165
588
  o = t === A && e !== A || t.capture !== e.capture || t.once !== e.once || t.passive !== e.passive,
1166
589
  n = t !== A && (e === A || o);
@@ -1171,7 +594,7 @@
1171
594
  "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);
1172
595
  }
1173
596
  }
1174
- class z {
597
+ class Z {
1175
598
  constructor(t, i, s) {
1176
599
  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
1177
600
  }
@@ -1179,18 +602,18 @@
1179
602
  return this._$AM._$AU;
1180
603
  }
1181
604
  _$AI(t) {
1182
- N(this, t);
605
+ S(this, t);
1183
606
  }
1184
607
  }
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) => {
608
+ const B = i.litHtmlPolyfillSupport;
609
+ null == B || B(N, R), (null !== (t = i.litHtmlVersions) && void 0 !== t ? t : i.litHtmlVersions = []).push("2.8.0");
610
+ const D = (t, i, s) => {
1188
611
  var e, o;
1189
612
  const n = null !== (e = null == s ? void 0 : s.renderBefore) && void 0 !== e ? e : i;
1190
613
  let l = n._$litPart$;
1191
614
  if (void 0 === l) {
1192
615
  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 : {});
616
+ n._$litPart$ = l = new R(i.insertBefore(u(), t), t, void 0, null != s ? s : {});
1194
617
  }
1195
618
  return l._$AI(t), l;
1196
619
  };
@@ -1201,7 +624,7 @@
1201
624
  * SPDX-License-Identifier: BSD-3-Clause
1202
625
  */
1203
626
  var l$1, o;
1204
- class s extends a$1 {
627
+ class s extends u$1 {
1205
628
  constructor() {
1206
629
  super(...arguments), this.renderOptions = {
1207
630
  host: this
@@ -1214,7 +637,7 @@
1214
637
  }
1215
638
  update(t) {
1216
639
  const i = this.render();
1217
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = B(i, this.renderRoot, this.renderOptions);
640
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = D(i, this.renderRoot, this.renderOptions);
1218
641
  }
1219
642
  connectedCallback() {
1220
643
  var t;
@@ -1235,20 +658,32 @@
1235
658
  null == n || n({
1236
659
  LitElement: s
1237
660
  });
1238
- (null !== (o = globalThis.litElementVersions) && void 0 !== o ? o : globalThis.litElementVersions = []).push("3.3.0");
661
+ (null !== (o = globalThis.litElementVersions) && void 0 !== o ? o : globalThis.litElementVersions = []).push("3.3.3");
1239
662
 
1240
663
  function ascending$2(a, b) {
1241
664
  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
1242
665
  }
1243
666
 
667
+ function descending(a, b) {
668
+ return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
669
+ }
670
+
1244
671
  function bisector(f) {
1245
- let delta = f;
1246
- let compare1 = f;
1247
- let compare2 = f;
672
+ let compare1, compare2, delta;
673
+
674
+ // If an accessor is specified, promote it to a comparator. In this case we
675
+ // can test whether the search value is (self-) comparable. We can’t do this
676
+ // for a comparator (except for specific, known comparators) because we can’t
677
+ // tell if the comparator is symmetric, and an asymmetric comparator can’t be
678
+ // used to test whether a single value is comparable.
1248
679
  if (f.length !== 2) {
1249
- delta = (d, x) => f(d) - x;
1250
680
  compare1 = ascending$2;
1251
681
  compare2 = (d, x) => ascending$2(f(d), x);
682
+ delta = (d, x) => f(d) - x;
683
+ } else {
684
+ compare1 = f === ascending$2 || f === descending ? f : zero$1;
685
+ compare2 = f;
686
+ delta = f;
1252
687
  }
1253
688
  function left(a, x, lo = 0, hi = a.length) {
1254
689
  if (lo < hi) {
@@ -1280,6 +715,9 @@
1280
715
  right
1281
716
  };
1282
717
  }
718
+ function zero$1() {
719
+ return 0;
720
+ }
1283
721
 
1284
722
  function number$2(x) {
1285
723
  return x === null ? NaN : +x;
@@ -1290,7 +728,7 @@
1290
728
  bisector(number$2).center;
1291
729
  var bisect = bisectRight;
1292
730
 
1293
- function count$1(values, valueof) {
731
+ function count(values, valueof) {
1294
732
  let count = 0;
1295
733
  if (valueof === undefined) {
1296
734
  for (let value of values) {
@@ -1309,7 +747,7 @@
1309
747
  return count;
1310
748
  }
1311
749
 
1312
- function extent$1(values, valueof) {
750
+ function extent(values, valueof) {
1313
751
  let min;
1314
752
  let max;
1315
753
  if (valueof === undefined) {
@@ -1396,56 +834,63 @@
1396
834
  return () => x;
1397
835
  }
1398
836
 
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;
837
+ const e10 = Math.sqrt(50),
838
+ e5 = Math.sqrt(10),
839
+ e2 = Math.sqrt(2);
840
+ function tickSpec(start, stop, count) {
841
+ const step = (stop - start) / Math.max(0, count),
842
+ power = Math.floor(Math.log10(step)),
843
+ error = step / Math.pow(10, power),
844
+ factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
845
+ let i1, i2, inc;
846
+ if (power < 0) {
847
+ inc = Math.pow(10, -power) / factor;
848
+ i1 = Math.round(start * inc);
849
+ i2 = Math.round(stop * inc);
850
+ if (i1 / inc < start) ++i1;
851
+ if (i2 / inc > stop) --i2;
852
+ inc = -inc;
853
+ } else {
854
+ inc = Math.pow(10, power) * factor;
855
+ i1 = Math.round(start / inc);
856
+ i2 = Math.round(stop / inc);
857
+ if (i1 * inc < start) ++i1;
858
+ if (i2 * inc > stop) --i2;
859
+ }
860
+ if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
861
+ return [i1, i2, inc];
862
+ }
863
+ function ticks(start, stop, count) {
1408
864
  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;
865
+ if (!(count > 0)) return [];
866
+ if (start === stop) return [start];
867
+ const reverse = stop < start,
868
+ [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
869
+ if (!(i2 >= i1)) return [];
870
+ const n = i2 - i1 + 1,
871
+ ticks = new Array(n);
872
+ if (reverse) {
873
+ 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
874
  } 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();
875
+ 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;
876
+ }
1429
877
  return ticks;
1430
878
  }
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);
879
+ function tickIncrement(start, stop, count) {
880
+ stop = +stop, start = +start, count = +count;
881
+ return tickSpec(start, stop, count)[2];
1436
882
  }
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;
883
+ function tickStep(start, stop, count) {
884
+ stop = +stop, start = +start, count = +count;
885
+ const reverse = stop < start,
886
+ inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
887
+ return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
1443
888
  }
1444
889
 
1445
890
  function nice(start, stop, count) {
1446
891
  let prestep;
1447
892
  while (true) {
1448
- const step = tickIncrement$1(start, stop, count);
893
+ const step = tickIncrement(start, stop, count);
1449
894
  if (step === prestep || step === 0 || !isFinite(step)) {
1450
895
  return [start, stop];
1451
896
  } else if (step > 0) {
@@ -1459,19 +904,20 @@
1459
904
  }
1460
905
  }
1461
906
 
1462
- function thresholdSturges$1(values) {
1463
- return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1;
907
+ function thresholdSturges(values) {
908
+ return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);
1464
909
  }
1465
910
 
1466
911
  function bin() {
1467
912
  var value = identity$6,
1468
- domain = extent$1,
1469
- threshold = thresholdSturges$1;
913
+ domain = extent,
914
+ threshold = thresholdSturges;
1470
915
  function histogram(data) {
1471
916
  if (!Array.isArray(data)) data = Array.from(data);
1472
917
  var i,
1473
918
  n = data.length,
1474
919
  x,
920
+ step,
1475
921
  values = new Array(n);
1476
922
  for (i = 0; i < n; ++i) {
1477
923
  values[i] = value(data[i], i, data);
@@ -1486,8 +932,13 @@
1486
932
  if (!Array.isArray(tz)) {
1487
933
  const max = x1,
1488
934
  tn = +tz;
1489
- if (domain === extent$1) [x0, x1] = nice(x0, x1, tn);
1490
- tz = ticks$1(x0, x1, tn);
935
+ if (domain === extent) [x0, x1] = nice(x0, x1, tn);
936
+ tz = ticks(x0, x1, tn);
937
+
938
+ // If the domain is aligned with the first tick (which it will by
939
+ // default), then we can use quantization rather than bisection to bin
940
+ // values, which is substantially faster.
941
+ if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
1491
942
 
1492
943
  // If the last threshold is coincident with the domain’s upper bound, the
1493
944
  // last bin will be zero-width. If the default domain is used, and this
@@ -1497,8 +948,8 @@
1497
948
  // coerce values or the domain to numbers, and thus must be careful to
1498
949
  // compare order (>=) rather than strict equality (===)!
1499
950
  if (tz[tz.length - 1] >= x1) {
1500
- if (max >= x1 && domain === extent$1) {
1501
- const step = tickIncrement$1(x0, x1, tn);
951
+ if (max >= x1 && domain === extent) {
952
+ const step = tickIncrement(x0, x1, tn);
1502
953
  if (isFinite(step)) {
1503
954
  if (step > 0) {
1504
955
  x1 = (Math.floor(x1 / step) + 1) * step;
@@ -1513,9 +964,13 @@
1513
964
  }
1514
965
 
1515
966
  // 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;
967
+ // Be careful not to mutate an array owned by the user!
968
+ var m = tz.length,
969
+ a = 0,
970
+ b = m;
971
+ while (tz[a] <= x0) ++a;
972
+ while (tz[b - 1] > x1) --b;
973
+ if (a || b < m) tz = tz.slice(a, b), m = b - a;
1519
974
  var bins = new Array(m + 1),
1520
975
  bin;
1521
976
 
@@ -1527,10 +982,26 @@
1527
982
  }
1528
983
 
1529
984
  // 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]);
985
+ if (isFinite(step)) {
986
+ if (step > 0) {
987
+ for (i = 0; i < n; ++i) {
988
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
989
+ bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
990
+ }
991
+ }
992
+ } else if (step < 0) {
993
+ for (i = 0; i < n; ++i) {
994
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
995
+ const j = Math.floor((x0 - x) * step);
996
+ bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
997
+ }
998
+ }
999
+ }
1000
+ } else {
1001
+ for (i = 0; i < n; ++i) {
1002
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
1003
+ bins[bisect(tz, x, 0, m)].push(data[i]);
1004
+ }
1534
1005
  }
1535
1006
  }
1536
1007
  return bins;
@@ -1542,7 +1013,7 @@
1542
1013
  return arguments.length ? (domain = typeof _ === "function" ? _ : constant$5([_[0], _[1]]), histogram) : domain;
1543
1014
  };
1544
1015
  histogram.thresholds = function (_) {
1545
- return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), histogram) : threshold;
1016
+ return arguments.length ? (threshold = typeof _ === "function" ? _ : constant$5(Array.isArray(_) ? slice$1.call(_) : _), histogram) : threshold;
1546
1017
  };
1547
1018
  return histogram;
1548
1019
  }
@@ -2919,15 +2390,15 @@
2919
2390
  var darker = 0.7;
2920
2391
  var brighter = 1 / darker;
2921
2392
  var reI = "\\s*([+-]?\\d+)\\s*",
2922
- reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2923
- reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2393
+ reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2394
+ reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2924
2395
  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] + "\\)$");
2396
+ reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
2397
+ reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
2398
+ reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
2399
+ reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
2400
+ reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
2401
+ reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
2931
2402
  var named = {
2932
2403
  aliceblue: 0xf0f8ff,
2933
2404
  antiquewhite: 0xfaebd7,
@@ -3079,15 +2550,16 @@
3079
2550
  yellowgreen: 0x9acd32
3080
2551
  };
3081
2552
  define(Color, color, {
3082
- copy: function (channels) {
2553
+ copy(channels) {
3083
2554
  return Object.assign(new this.constructor(), this, channels);
3084
2555
  },
3085
- displayable: function () {
2556
+ displayable() {
3086
2557
  return this.rgb().displayable();
3087
2558
  },
3088
2559
  hex: color_formatHex,
3089
2560
  // Deprecated! Use color.formatHex.
3090
2561
  formatHex: color_formatHex,
2562
+ formatHex8: color_formatHex8,
3091
2563
  formatHsl: color_formatHsl,
3092
2564
  formatRgb: color_formatRgb,
3093
2565
  toString: color_formatRgb
@@ -3095,6 +2567,9 @@
3095
2567
  function color_formatHex() {
3096
2568
  return this.rgb().formatHex();
3097
2569
  }
2570
+ function color_formatHex8() {
2571
+ return this.rgb().formatHex8();
2572
+ }
3098
2573
  function color_formatHsl() {
3099
2574
  return hslConvert(this).formatHsl();
3100
2575
  }
@@ -3141,36 +2616,48 @@
3141
2616
  this.opacity = +opacity;
3142
2617
  }
3143
2618
  define(Rgb, rgb, extend(Color, {
3144
- brighter: function (k) {
2619
+ brighter(k) {
3145
2620
  k = k == null ? brighter : Math.pow(brighter, k);
3146
2621
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3147
2622
  },
3148
- darker: function (k) {
2623
+ darker(k) {
3149
2624
  k = k == null ? darker : Math.pow(darker, k);
3150
2625
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
3151
2626
  },
3152
- rgb: function () {
2627
+ rgb() {
3153
2628
  return this;
3154
2629
  },
3155
- displayable: function () {
2630
+ clamp() {
2631
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
2632
+ },
2633
+ displayable() {
3156
2634
  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
2635
  },
3158
2636
  hex: rgb_formatHex,
3159
2637
  // Deprecated! Use color.formatHex.
3160
2638
  formatHex: rgb_formatHex,
2639
+ formatHex8: rgb_formatHex8,
3161
2640
  formatRgb: rgb_formatRgb,
3162
2641
  toString: rgb_formatRgb
3163
2642
  }));
3164
2643
  function rgb_formatHex() {
3165
- return "#" + hex(this.r) + hex(this.g) + hex(this.b);
2644
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
2645
+ }
2646
+ function rgb_formatHex8() {
2647
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
3166
2648
  }
3167
2649
  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 + ")");
2650
+ const a = clampa(this.opacity);
2651
+ return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
2652
+ }
2653
+ function clampa(opacity) {
2654
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
2655
+ }
2656
+ function clampi(value) {
2657
+ return Math.max(0, Math.min(255, Math.round(value) || 0));
3171
2658
  }
3172
2659
  function hex(value) {
3173
- value = Math.max(0, Math.min(255, Math.round(value) || 0));
2660
+ value = clampi(value);
3174
2661
  return (value < 16 ? "0" : "") + value.toString(16);
3175
2662
  }
3176
2663
  function hsla(h, s, l, a) {
@@ -3210,15 +2697,15 @@
3210
2697
  this.opacity = +opacity;
3211
2698
  }
3212
2699
  define(Hsl, hsl, extend(Color, {
3213
- brighter: function (k) {
2700
+ brighter(k) {
3214
2701
  k = k == null ? brighter : Math.pow(brighter, k);
3215
2702
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
3216
2703
  },
3217
- darker: function (k) {
2704
+ darker(k) {
3218
2705
  k = k == null ? darker : Math.pow(darker, k);
3219
2706
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
3220
2707
  },
3221
- rgb: function () {
2708
+ rgb() {
3222
2709
  var h = this.h % 360 + (this.h < 0) * 360,
3223
2710
  s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
3224
2711
  l = this.l,
@@ -3226,15 +2713,24 @@
3226
2713
  m1 = 2 * l - m2;
3227
2714
  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
2715
  },
3229
- displayable: function () {
2716
+ clamp() {
2717
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
2718
+ },
2719
+ displayable() {
3230
2720
  return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
3231
2721
  },
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 + ")");
2722
+ formatHsl() {
2723
+ const a = clampa(this.opacity);
2724
+ return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
3236
2725
  }
3237
2726
  }));
2727
+ function clamph(value) {
2728
+ value = (value || 0) % 360;
2729
+ return value < 0 ? value + 360 : value;
2730
+ }
2731
+ function clampt(value) {
2732
+ return Math.max(0, Math.min(1, value || 0));
2733
+ }
3238
2734
 
3239
2735
  /* From FvD 13.37, CSS Color Module Level 3 */
3240
2736
  function hsl2rgb(h, m1, m2) {
@@ -4445,38 +3941,56 @@
4445
3941
  tau$1 = 2 * pi$1,
4446
3942
  epsilon$1 = 1e-6,
4447
3943
  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 () {
4463
- if (this._x1 !== null) {
4464
- this._x1 = this._x0, this._y1 = this._y0;
4465
- this._ += "Z";
3944
+ function append$1(strings) {
3945
+ this._ += strings[0];
3946
+ for (let i = 1, n = strings.length; i < n; ++i) {
3947
+ this._ += arguments[i] + strings[i];
3948
+ }
3949
+ }
3950
+ function appendRound$1(digits) {
3951
+ let d = Math.floor(digits);
3952
+ if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
3953
+ if (d > 15) return append$1;
3954
+ const k = 10 ** d;
3955
+ return function (strings) {
3956
+ this._ += strings[0];
3957
+ for (let i = 1, n = strings.length; i < n; ++i) {
3958
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
4466
3959
  }
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) {
3960
+ };
3961
+ }
3962
+ class Path {
3963
+ constructor(digits) {
3964
+ this._x0 = this._y0 =
3965
+ // start of current subpath
3966
+ this._x1 = this._y1 = null; // end of current subpath
3967
+ this._ = "";
3968
+ this._append = digits == null ? append$1 : appendRound$1(digits);
3969
+ }
3970
+ moveTo(x, y) {
3971
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
3972
+ }
3973
+ closePath() {
3974
+ if (this._x1 !== null) {
3975
+ this._x1 = this._x0, this._y1 = this._y0;
3976
+ this._append`Z`;
3977
+ }
3978
+ }
3979
+ lineTo(x, y) {
3980
+ this._append`L${this._x1 = +x},${this._y1 = +y}`;
3981
+ }
3982
+ quadraticCurveTo(x1, y1, x, y) {
3983
+ this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
3984
+ }
3985
+ bezierCurveTo(x1, y1, x2, y2, x, y) {
3986
+ this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
3987
+ }
3988
+ arcTo(x1, y1, x2, y2, r) {
4478
3989
  x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
4479
- var x0 = this._x1,
3990
+
3991
+ // Is the radius negative? Error.
3992
+ if (r < 0) throw new Error(`negative radius: ${r}`);
3993
+ let x0 = this._x1,
4480
3994
  y0 = this._y1,
4481
3995
  x21 = x2 - x1,
4482
3996
  y21 = y2 - y1,
@@ -4484,12 +3998,9 @@
4484
3998
  y01 = y0 - y1,
4485
3999
  l01_2 = x01 * x01 + y01 * y01;
4486
4000
 
4487
- // Is the radius negative? Error.
4488
- if (r < 0) throw new Error("negative radius: " + r);
4489
-
4490
4001
  // Is this path empty? Move to (x1,y1).
4491
4002
  if (this._x1 === null) {
4492
- this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
4003
+ this._append`M${this._x1 = x1},${this._y1 = y1}`;
4493
4004
  }
4494
4005
 
4495
4006
  // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
@@ -4499,12 +4010,12 @@
4499
4010
  // Equivalently, is (x1,y1) coincident with (x2,y2)?
4500
4011
  // Or, is the radius zero? Line to (x1,y1).
4501
4012
  else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$1) || !r) {
4502
- this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
4013
+ this._append`L${this._x1 = x1},${this._y1 = y1}`;
4503
4014
  }
4504
4015
 
4505
4016
  // Otherwise, draw an arc!
4506
4017
  else {
4507
- var x20 = x2 - x0,
4018
+ let x20 = x2 - x0,
4508
4019
  y20 = y2 - y0,
4509
4020
  l21_2 = x21 * x21 + y21 * y21,
4510
4021
  l20_2 = x20 * x20 + y20 * y20,
@@ -4516,31 +4027,31 @@
4516
4027
 
4517
4028
  // If the start tangent is not coincident with (x0,y0), line to.
4518
4029
  if (Math.abs(t01 - 1) > epsilon$1) {
4519
- this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
4030
+ this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
4520
4031
  }
4521
- this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
4032
+ this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
4522
4033
  }
4523
- },
4524
- arc: function (x, y, r, a0, a1, ccw) {
4034
+ }
4035
+ arc(x, y, r, a0, a1, ccw) {
4525
4036
  x = +x, y = +y, r = +r, ccw = !!ccw;
4526
- var dx = r * Math.cos(a0),
4037
+
4038
+ // Is the radius negative? Error.
4039
+ if (r < 0) throw new Error(`negative radius: ${r}`);
4040
+ let dx = r * Math.cos(a0),
4527
4041
  dy = r * Math.sin(a0),
4528
4042
  x0 = x + dx,
4529
4043
  y0 = y + dy,
4530
4044
  cw = 1 ^ ccw,
4531
4045
  da = ccw ? a0 - a1 : a1 - a0;
4532
4046
 
4533
- // Is the radius negative? Error.
4534
- if (r < 0) throw new Error("negative radius: " + r);
4535
-
4536
4047
  // Is this path empty? Move to (x0,y0).
4537
4048
  if (this._x1 === null) {
4538
- this._ += "M" + x0 + "," + y0;
4049
+ this._append`M${x0},${y0}`;
4539
4050
  }
4540
4051
 
4541
4052
  // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
4542
4053
  else if (Math.abs(this._x1 - x0) > epsilon$1 || Math.abs(this._y1 - y0) > epsilon$1) {
4543
- this._ += "L" + x0 + "," + y0;
4054
+ this._append`L${x0},${y0}`;
4544
4055
  }
4545
4056
 
4546
4057
  // Is this arc empty? We’re done.
@@ -4551,119 +4062,20 @@
4551
4062
 
4552
4063
  // Is this a complete circle? Draw two arcs to complete the circle.
4553
4064
  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);
4065
+ 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
4066
  }
4556
4067
 
4557
4068
  // Is this arc non-empty? Draw an arc!
4558
4069
  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));
4070
+ 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
4071
  }
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
4072
  }
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
- }
4073
+ rect(x, y, w, h) {
4074
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
4585
4075
  }
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
- }
4076
+ toString() {
4077
+ return this._;
4615
4078
  }
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
4079
  }
4668
4080
 
4669
4081
  var array$1 = Array.prototype;
@@ -4730,9 +4142,10 @@
4730
4142
 
4731
4143
  // Convert number of thresholds into uniform thresholds.
4732
4144
  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);
4145
+ const e = extent(values, finite);
4146
+ tz = ticks(...nice(e[0], e[1], tz), tz);
4147
+ while (tz[tz.length - 1] >= e[1]) tz.pop();
4148
+ while (tz[1] < e[0]) tz.shift();
4736
4149
  } else {
4737
4150
  tz = tz.slice().sort(ascending);
4738
4151
  }
@@ -4742,10 +4155,12 @@
4742
4155
  // Accumulate, smooth contour rings, assign holes to exterior rings.
4743
4156
  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
4744
4157
  function contour(values, value) {
4158
+ const v = value == null ? NaN : +value;
4159
+ if (isNaN(v)) throw new Error(`invalid value: ${value}`);
4745
4160
  var polygons = [],
4746
4161
  holes = [];
4747
- isorings(values, value, function (ring) {
4748
- smooth(ring, values, value);
4162
+ isorings(values, v, function (ring) {
4163
+ smooth(ring, values, v);
4749
4164
  if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);
4750
4165
  });
4751
4166
  holes.forEach(function (hole) {
@@ -4777,10 +4192,10 @@
4777
4192
 
4778
4193
  // Special case for the first row (y = -1, t2 = t3 = 0).
4779
4194
  x = y = -1;
4780
- t1 = values[0] >= value;
4195
+ t1 = above(values[0], value);
4781
4196
  cases[t1 << 1].forEach(stitch);
4782
4197
  while (++x < dx - 1) {
4783
- t0 = t1, t1 = values[x + 1] >= value;
4198
+ t0 = t1, t1 = above(values[x + 1], value);
4784
4199
  cases[t0 | t1 << 1].forEach(stitch);
4785
4200
  }
4786
4201
  cases[t1 << 0].forEach(stitch);
@@ -4788,12 +4203,12 @@
4788
4203
  // General case for the intermediate rows.
4789
4204
  while (++y < dy - 1) {
4790
4205
  x = -1;
4791
- t1 = values[y * dx + dx] >= value;
4792
- t2 = values[y * dx] >= value;
4206
+ t1 = above(values[y * dx + dx], value);
4207
+ t2 = above(values[y * dx], value);
4793
4208
  cases[t1 << 1 | t2 << 2].forEach(stitch);
4794
4209
  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;
4210
+ t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
4211
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4797
4212
  cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
4798
4213
  }
4799
4214
  cases[t1 | t2 << 3].forEach(stitch);
@@ -4804,7 +4219,7 @@
4804
4219
  t2 = values[y * dx] >= value;
4805
4220
  cases[t2 << 2].forEach(stitch);
4806
4221
  while (++x < dx - 1) {
4807
- t3 = t2, t2 = values[y * dx + x + 1] >= value;
4222
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4808
4223
  cases[t2 << 2 | t3 << 3].forEach(stitch);
4809
4224
  }
4810
4225
  cases[t2 << 3].forEach(stitch);
@@ -4871,15 +4286,12 @@
4871
4286
  y = point[1],
4872
4287
  xt = x | 0,
4873
4288
  yt = y | 0,
4874
- v0,
4875
- v1 = values[yt * dx + xt];
4289
+ v1 = valid(values[yt * dx + xt]);
4876
4290
  if (x > 0 && x < dx && xt === x) {
4877
- v0 = values[yt * dx + xt - 1];
4878
- point[0] = x + (value - v0) / (v1 - v0) - 0.5;
4291
+ point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
4879
4292
  }
4880
4293
  if (y > 0 && y < dy && yt === y) {
4881
- v0 = values[(yt - 1) * dx + xt];
4882
- point[1] = y + (value - v0) / (v1 - v0) - 0.5;
4294
+ point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
4883
4295
  }
4884
4296
  });
4885
4297
  }
@@ -4900,6 +4312,28 @@
4900
4312
  return contours;
4901
4313
  }
4902
4314
 
4315
+ // When computing the extent, ignore infinite values (as well as invalid ones).
4316
+ function finite(x) {
4317
+ return isFinite(x) ? x : NaN;
4318
+ }
4319
+
4320
+ // Is the (possibly invalid) x greater than or equal to the (known valid) value?
4321
+ // Treat any invalid value as below negative infinity.
4322
+ function above(x, value) {
4323
+ return x == null ? false : +x >= value;
4324
+ }
4325
+
4326
+ // During smoothing, treat any invalid value as negative infinity.
4327
+ function valid(v) {
4328
+ return v == null || isNaN(v = +v) ? -Infinity : v;
4329
+ }
4330
+ function smooth1(x, v0, v1, value) {
4331
+ const a = value - v0;
4332
+ const b = v1 - v0;
4333
+ const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
4334
+ return isNaN(d) ? x : x + d - 0.5;
4335
+ }
4336
+
4903
4337
  function formatDecimal (x) {
4904
4338
  return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
4905
4339
  }
@@ -5856,66 +5290,96 @@
5856
5290
  }
5857
5291
  var pathMeasure = lengthStream;
5858
5292
 
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;
5293
+ // Simple caching for constant-radius points.
5294
+ let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
5295
+ class PathString {
5296
+ constructor(digits) {
5297
+ this._append = digits == null ? append : appendRound(digits);
5298
+ this._radius = 4.5;
5299
+ this._ = "";
5300
+ }
5301
+ pointRadius(_) {
5302
+ this._radius = +_;
5867
5303
  return this;
5868
- },
5869
- polygonStart: function () {
5304
+ }
5305
+ polygonStart() {
5870
5306
  this._line = 0;
5871
- },
5872
- polygonEnd: function () {
5307
+ }
5308
+ polygonEnd() {
5873
5309
  this._line = NaN;
5874
- },
5875
- lineStart: function () {
5310
+ }
5311
+ lineStart() {
5876
5312
  this._point = 0;
5877
- },
5878
- lineEnd: function () {
5879
- if (this._line === 0) this._string.push("Z");
5313
+ }
5314
+ lineEnd() {
5315
+ if (this._line === 0) this._ += "Z";
5880
5316
  this._point = NaN;
5881
- },
5882
- point: function (x, y) {
5317
+ }
5318
+ point(x, y) {
5883
5319
  switch (this._point) {
5884
5320
  case 0:
5885
5321
  {
5886
- this._string.push("M", x, ",", y);
5322
+ this._append`M${x},${y}`;
5887
5323
  this._point = 1;
5888
5324
  break;
5889
5325
  }
5890
5326
  case 1:
5891
5327
  {
5892
- this._string.push("L", x, ",", y);
5328
+ this._append`L${x},${y}`;
5893
5329
  break;
5894
5330
  }
5895
5331
  default:
5896
5332
  {
5897
- if (this._circle == null) this._circle = circle(this._radius);
5898
- this._string.push("M", x, ",", y, this._circle);
5333
+ this._append`M${x},${y}`;
5334
+ if (this._radius !== cacheRadius || this._append !== cacheAppend) {
5335
+ const r = this._radius;
5336
+ const s = this._;
5337
+ this._ = ""; // stash the old string so we can cache the circle path fragment
5338
+ this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
5339
+ cacheRadius = r;
5340
+ cacheAppend = this._append;
5341
+ cacheCircle = this._;
5342
+ this._ = s;
5343
+ }
5344
+ this._ += cacheCircle;
5899
5345
  break;
5900
5346
  }
5901
5347
  }
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
5348
  }
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";
5349
+ result() {
5350
+ const result = this._;
5351
+ this._ = "";
5352
+ return result.length ? result : null;
5353
+ }
5354
+ }
5355
+ function append(strings) {
5356
+ let i = 1;
5357
+ this._ += strings[0];
5358
+ for (const j = strings.length; i < j; ++i) {
5359
+ this._ += arguments[i] + strings[i];
5360
+ }
5361
+ }
5362
+ function appendRound(digits) {
5363
+ const d = Math.floor(digits);
5364
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
5365
+ if (d > 15) return append;
5366
+ if (d !== cacheDigits) {
5367
+ const k = 10 ** d;
5368
+ cacheDigits = d;
5369
+ cacheAppend = function append(strings) {
5370
+ let i = 1;
5371
+ this._ += strings[0];
5372
+ for (const j = strings.length; i < j; ++i) {
5373
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
5374
+ }
5375
+ };
5376
+ }
5377
+ return cacheAppend;
5915
5378
  }
5916
5379
 
5917
5380
  function index (projection, context) {
5918
- var pointRadius = 4.5,
5381
+ let digits = 3,
5382
+ pointRadius = 4.5,
5919
5383
  projectionStream,
5920
5384
  contextStream;
5921
5385
  function path(object) {
@@ -5942,11 +5406,13 @@
5942
5406
  return pathCentroid.result();
5943
5407
  };
5944
5408
  path.projection = function (_) {
5945
- return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream, path) : projection;
5409
+ if (!arguments.length) return projection;
5410
+ projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream;
5411
+ return path;
5946
5412
  };
5947
5413
  path.context = function (_) {
5948
5414
  if (!arguments.length) return context;
5949
- contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);
5415
+ contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
5950
5416
  if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
5951
5417
  return path;
5952
5418
  };
@@ -5955,7 +5421,17 @@
5955
5421
  pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
5956
5422
  return path;
5957
5423
  };
5958
- return path.projection(projection).context(context);
5424
+ path.digits = function (_) {
5425
+ if (!arguments.length) return digits;
5426
+ if (_ == null) digits = null;else {
5427
+ const d = Math.floor(_);
5428
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5429
+ digits = d;
5430
+ }
5431
+ if (context === null) contextStream = new PathString(digits);
5432
+ return path;
5433
+ };
5434
+ return path.projection(projection).digits(digits).context(context);
5959
5435
  }
5960
5436
 
5961
5437
  function transformer$1(methods) {
@@ -6250,7 +5726,7 @@
6250
5726
  }
6251
5727
 
6252
5728
  function tickFormat(start, stop, count, specifier) {
6253
- var step = tickStep$1(start, stop, count),
5729
+ var step = tickStep(start, stop, count),
6254
5730
  precision;
6255
5731
  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
6256
5732
  switch (specifier.type) {
@@ -6283,7 +5759,7 @@
6283
5759
  var domain = scale.domain;
6284
5760
  scale.ticks = function (count) {
6285
5761
  var d = domain();
6286
- return ticks$1(d[0], d[d.length - 1], count == null ? 10 : count);
5762
+ return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
6287
5763
  };
6288
5764
  scale.tickFormat = function (count, specifier) {
6289
5765
  var d = domain();
@@ -6304,7 +5780,7 @@
6304
5780
  step = i0, i0 = i1, i1 = step;
6305
5781
  }
6306
5782
  while (maxIter-- > 0) {
6307
- step = tickIncrement$1(start, stop, count);
5783
+ step = tickIncrement(start, stop, count);
6308
5784
  if (step === prestep) {
6309
5785
  d[i0] = start;
6310
5786
  d[i1] = stop;
@@ -6349,6 +5825,22 @@
6349
5825
  };
6350
5826
  }
6351
5827
 
5828
+ function withPath(shape) {
5829
+ let digits = 3;
5830
+ shape.digits = function (_) {
5831
+ if (!arguments.length) return digits;
5832
+ if (_ == null) {
5833
+ digits = null;
5834
+ } else {
5835
+ const d = Math.floor(_);
5836
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5837
+ digits = d;
5838
+ }
5839
+ return shape;
5840
+ };
5841
+ return () => new Path(digits);
5842
+ }
5843
+
6352
5844
  function array (x) {
6353
5845
  return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like
6354
5846
  : Array.from(x); // Map, Set, iterable, string, or anything else
@@ -6402,7 +5894,8 @@
6402
5894
  var defined = constant(true),
6403
5895
  context = null,
6404
5896
  curve = curveLinear,
6405
- output = null;
5897
+ output = null,
5898
+ path = withPath(line);
6406
5899
  x$1 = typeof x$1 === "function" ? x$1 : x$1 === undefined ? x : constant(x$1);
6407
5900
  y$1 = typeof y$1 === "function" ? y$1 : y$1 === undefined ? y : constant(y$1);
6408
5901
  function line(data) {
@@ -6652,6 +6145,48 @@
6652
6145
  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
6146
  return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;
6654
6147
  }
6148
+ static get svgDefs() {
6149
+ const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6150
+
6151
+ const filters = shadows.elevations.map(z => {
6152
+ return `
6153
+ <filter id=${`shadow-${z}`} filterUnits="userSpaceOnUse" x="-100%" y="-100%" width="200%" height="200%">
6154
+ <feComponentTransfer in="SourceAlpha" result="solid">
6155
+ <feFuncA type="table" tableValues="0 1 1"/>
6156
+ </feComponentTransfer>
6157
+ <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6158
+ <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
6159
+ <feOffset in="solid" result="offA" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />
6160
+ ${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)} />`}
6161
+ ${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)} />`}
6162
+ ${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)} />`}
6163
+ <feGaussianBlur in=${shadows.mapUmbra[z].s === 0 ? 'offU' : 'spreadU'} result="blurU" stdDeviation=${shadows.mapUmbra[z].b / 2} />
6164
+ <feGaussianBlur in=${shadows.mapPenumbra[z].s === 0 ? 'offP' : 'spreadP'} result="blurP" stdDeviation=${shadows.mapPenumbra[z].b / 2} />
6165
+ <feGaussianBlur in=${shadows.mapAmbient[z].s === 0 ? 'offA' : 'spreadA'} result="blurA" stdDeviation=${shadows.mapAmbient[z].b / 2} />
6166
+ <feFlood in="SourceGraphic" result="opU" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />
6167
+ <feFlood in="SourceGraphic" result="opP" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />
6168
+ <feFlood in="SourceGraphic" result="opA" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />
6169
+ <feComposite in="opU" in2="blurU" result="shU" operator="in" />
6170
+ <feComposite in="opP" in2="blurP" result="shP" operator="in" />
6171
+ <feComposite in="opA" in2="blurA" result="shA" operator="in" />
6172
+ <feMorphology in="solid" result="smaller" operator="erode" radius="1" />
6173
+ <feComposite in="shU" in2="smaller" result="finalU" operator="out" />
6174
+ <feComposite in="shP" in2="smaller" result="finalP" operator="out" />
6175
+ <feComposite in="shA" in2="smaller" result="finalA" operator="out" />
6176
+ <feMerge>
6177
+ <feMergeNode in="finalU" />
6178
+ <feMergeNode in="finalP" />
6179
+ <feMergeNode in="finalA" />
6180
+ <feMergeNode in="SourceGraphic" />
6181
+ </feMerge>
6182
+ </filter>`;
6183
+ });
6184
+ return `
6185
+ <defs>
6186
+ ${filters}
6187
+ </defs>
6188
+ `;
6189
+ }
6655
6190
  static get svgFilters() {
6656
6191
  const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6657
6192
 
@@ -6659,7 +6194,7 @@
6659
6194
  return b`
6660
6195
  <filter id=${`shadow-${z}`} x="-250%" y="-250%" width="600%" height="600%">
6661
6196
  <feComponentTransfer in="SourceAlpha" result="solid">
6662
- <feFuncA type="table" tableValues="0 1 1"/>
6197
+ <feFuncA type="table" tableValues="0 1 1"/>
6663
6198
  </feComponentTransfer>
6664
6199
  <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6665
6200
  <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
@@ -6697,24 +6232,24 @@
6697
6232
  `;
6698
6233
  }
6699
6234
  static get styles() {
6700
- return r$2`
6235
+ return i$1`
6701
6236
  :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)});
6237
+ ---shadow-0: var(--shadow-0, ${r$2(this.cssBoxShadow(0))});
6238
+ ---shadow-2: var(--shadow-2, ${r$2(this.cssBoxShadow(2))});
6239
+ ---shadow-4: var(--shadow-4, ${r$2(this.cssBoxShadow(4))});
6240
+ ---shadow-8: var(--shadow-8, ${r$2(this.cssBoxShadow(8))});
6241
+
6242
+ ---color-background: var(--color-background, ${r$2(this.greys.white)});
6243
+ ---color-border: var(--color-border, ${r$2(this.greys.light75)});
6244
+ ---color-text: var(--color-text, ${r$2(this.greys.dark75)});
6245
+ ---color-text-inverse: var(--color-text-inverse, ${r$2(this.greys.white)});
6246
+ ---color-link: var(--color-link, ${r$2(this.greys.dark25)});
6247
+ ---color-element-background: var(--color-element-background, ${r$2(this.greys.light75)});
6248
+ ---color-element-disabled: var(--color-element-disabled, ${r$2(this.greys.light50)});
6249
+ ---color-element-enabled: var(--color-element-enabled, ${r$2(this.greys.dark25)});
6250
+ ---color-element-selected: var(--color-element-selected, ${r$2(this.greys.grey)});
6251
+ ---color-element-border: var(--color-element-border, ${r$2(this.greys.dark50)});
6252
+ ---color-element-emphasis: var(--color-element-emphasis, ${r$2(this.greys.dark75)});
6718
6253
 
6719
6254
  ---font-family-base: var(--font-family-base, "Source Sans", sans-serif);
6720
6255
  ---font-family-math: var(--font-family-math, "Source Serif", serif);
@@ -6775,7 +6310,7 @@
6775
6310
  this.disabled = false;
6776
6311
  }
6777
6312
  static get styles() {
6778
- return [super.styles, r$2`
6313
+ return [super.styles, i$1`
6779
6314
  :host {
6780
6315
  margin: 0.25rem;
6781
6316
  }
@@ -6845,7 +6380,7 @@
6845
6380
  * Copyright 2018 Google LLC
6846
6381
  * SPDX-License-Identifier: BSD-3-Clause
6847
6382
  */
6848
- const l = l => null != l ? l : A$1;
6383
+ const l = l => null != l ? l : A;
6849
6384
 
6850
6385
  class DecidablesSlider extends DecidablesElement {
6851
6386
  static get properties() {
@@ -6900,11 +6435,11 @@
6900
6435
  this.value = event.target.value;
6901
6436
  }
6902
6437
  static get styles() {
6903
- return [super.styles, r$2`
6438
+ return [super.styles, i$1`
6904
6439
  :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))});
6440
+ ---shadow-2-rotate: var(--shadow-2-rotate, ${r$2(this.cssBoxShadow(2, true, false))});
6441
+ ---shadow-4-rotate: var(--shadow-4-rotate, ${r$2(this.cssBoxShadow(4, true, false))});
6442
+ ---shadow-8-rotate: var(--shadow-8-rotate, ${r$2(this.cssBoxShadow(8, true, false))});
6908
6443
 
6909
6444
  display: flex;
6910
6445
 
@@ -7210,12 +6745,15 @@
7210
6745
  this.value = event.target.value;
7211
6746
  }
7212
6747
  static get styles() {
7213
- return [super.styles, r$2`
6748
+ return [super.styles, i$1`
7214
6749
  :host {
7215
6750
  ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
7216
6751
  ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
7217
6752
  ---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");
7218
6753
 
6754
+ ---decidables-spinner-postfix: var(--decidables-spinner-postfix, "");
6755
+ ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);
6756
+
7219
6757
  display: block;
7220
6758
  }
7221
6759
 
@@ -7243,8 +6781,20 @@
7243
6781
  content: var(---decidables-spinner-prefix);
7244
6782
  }
7245
6783
 
6784
+ label::after {
6785
+ position: absolute;
6786
+ right: 0.25rem;
6787
+ bottom: 1px;
6788
+
6789
+ font-size: var(---decidables-spinner-font-size);
6790
+ line-height: normal;
6791
+
6792
+ content: var(---decidables-spinner-postfix);
6793
+ }
6794
+
7246
6795
  input[type=number] {
7247
6796
  width: var(---decidables-spinner-input-width);
6797
+ padding-right: var(---decidables-spinner-postfix-padding);
7248
6798
 
7249
6799
  font-family: var(---font-family-base);
7250
6800
  font-size: var(---decidables-spinner-font-size);
@@ -7334,7 +6884,7 @@
7334
6884
  }));
7335
6885
  }
7336
6886
  static get styles() {
7337
- return [super.styles, r$2`
6887
+ return [super.styles, i$1`
7338
6888
  :host {
7339
6889
  display: flex;
7340
6890
 
@@ -7486,7 +7036,7 @@
7486
7036
  this.disabled = false;
7487
7037
  }
7488
7038
  static get styles() {
7489
- return [super.styles, r$2`
7039
+ return [super.styles, i$1`
7490
7040
  fieldset {
7491
7041
  display: flex;
7492
7042
 
@@ -7561,7 +7111,7 @@
7561
7111
  }));
7562
7112
  }
7563
7113
  static get styles() {
7564
- return [super.styles, r$2`
7114
+ return [super.styles, i$1`
7565
7115
  :host {
7566
7116
  display: flex;
7567
7117
  }
@@ -7697,6 +7247,50 @@
7697
7247
  }
7698
7248
  };
7699
7249
 
7250
+ function DecidablesMixinResizeable(superClass) {
7251
+ return class extends superClass {
7252
+ static get properties() {
7253
+ return {
7254
+ width: {
7255
+ attribute: false,
7256
+ type: Number,
7257
+ reflect: false
7258
+ },
7259
+ height: {
7260
+ attribute: false,
7261
+ type: Number,
7262
+ reflect: false
7263
+ },
7264
+ rem: {
7265
+ attribute: false,
7266
+ type: Number,
7267
+ reflect: false
7268
+ }
7269
+ };
7270
+ }
7271
+ constructor() {
7272
+ super();
7273
+ this.width = NaN;
7274
+ this.height = NaN;
7275
+ this.rem = NaN;
7276
+ }
7277
+ getDimensions() {
7278
+ this.width = parseFloat(this.getComputedStyleValue('width'), 10);
7279
+ this.height = parseFloat(this.getComputedStyleValue('height'), 10);
7280
+ this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
7281
+ }
7282
+ connectedCallback() {
7283
+ super.connectedCallback();
7284
+ this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));
7285
+ this.resizeObserver.observe(this);
7286
+ }
7287
+ disconnectedCallback() {
7288
+ this.resizeObserver.unobserve(this);
7289
+ super.disconnectedCallback();
7290
+ }
7291
+ };
7292
+ }
7293
+
7700
7294
  /*
7701
7295
  DetectableElement Base Class - Not intended for instantiation!
7702
7296
  <detectable-element>
@@ -7747,55 +7341,55 @@
7747
7341
  }, {});
7748
7342
  }
7749
7343
  static get styles() {
7750
- return [super.styles, r$2`
7344
+ return [super.styles, i$1`
7751
7345
  :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)});
7346
+ ---color-h: var(--color-h, ${r$2(this.colors.h)});
7347
+ ---color-m: var(--color-m, ${r$2(this.colors.m)});
7348
+ ---color-fa: var(--color-fa, ${r$2(this.colors.fa)});
7349
+ ---color-cr: var(--color-cr, ${r$2(this.colors.cr)});
7350
+ ---color-hr: var(--color-hr, ${r$2(this.colors.hr)});
7351
+ ---color-far: var(--color-far, ${r$2(this.colors.far)});
7352
+ ---color-acc: var(--color-acc, ${r$2(this.colors.acc)});
7353
+ ---color-d: var(--color-d, ${r$2(this.colors.d)});
7354
+ ---color-c: var(--color-c, ${r$2(this.colors.c)});
7355
+ ---color-s: var(--color-s, ${r$2(this.colors.s)});
7356
+ ---color-present: var(--color-present, ${r$2(this.colors.present)});
7357
+ ---color-absent: var(--color-absent, ${r$2(this.colors.absent)});
7358
+ ---color-correct: var(--color-correct, ${r$2(this.colors.correct)});
7359
+ ---color-error: var(--color-error, ${r$2(this.colors.error)});
7360
+ ---color-nr: var(--color-nr, ${r$2(this.colors.nr)});
7361
+
7362
+ ---color-h-light: var(--color-h-light, ${r$2(this.lights.h)});
7363
+ ---color-m-light: var(--color-m-light, ${r$2(this.lights.m)});
7364
+ ---color-fa-light: var(--color-fa-light, ${r$2(this.lights.fa)});
7365
+ ---color-cr-light: var(--color-cr-light, ${r$2(this.lights.cr)});
7366
+ ---color-hr-light: var(--color-hr-light, ${r$2(this.lights.hr)});
7367
+ ---color-far-light: var(--color-far-light, ${r$2(this.lights.far)});
7368
+ ---color-acc-light: var(--color-acc-light, ${r$2(this.lights.acc)});
7369
+ ---color-d-light: var(--color-d-light, ${r$2(this.lights.d)});
7370
+ ---color-c-light: var(--color-c-light, ${r$2(this.lights.c)});
7371
+ ---color-s-light: var(--color-s-light, ${r$2(this.lights.s)});
7372
+ ---color-present-light: var(--color-present-light, ${r$2(this.lights.present)});
7373
+ ---color-absent-light: var(--color-absent-light, ${r$2(this.lights.absent)});
7374
+ ---color-correct-light: var(--color-correct-light, ${r$2(this.lights.correct)});
7375
+ ---color-error-light: var(--color-error-light, ${r$2(this.lights.error)});
7376
+ ---color-nr-light: var(--color-nr-light, ${r$2(this.lights.nr)});
7377
+
7378
+ ---color-h-dark: var(--color-h-dark, ${r$2(this.darks.h)});
7379
+ ---color-m-dark: var(--color-m-dark, ${r$2(this.darks.m)});
7380
+ ---color-fa-dark: var(--color-fa-dark, ${r$2(this.darks.fa)});
7381
+ ---color-cr-dark: var(--color-cr-dark, ${r$2(this.darks.cr)});
7382
+ ---color-hr-dark: var(--color-hr-dark, ${r$2(this.darks.hr)});
7383
+ ---color-far-dark: var(--color-far-dark, ${r$2(this.darks.far)});
7384
+ ---color-acc-dark: var(--color-acc-dark, ${r$2(this.darks.acc)});
7385
+ ---color-d-dark: var(--color-d-dark, ${r$2(this.darks.d)});
7386
+ ---color-c-dark: var(--color-c-dark, ${r$2(this.darks.c)});
7387
+ ---color-s-dark: var(--color-s-dark, ${r$2(this.darks.s)});
7388
+ ---color-present-dark: var(--color-present-dark, ${r$2(this.darks.present)});
7389
+ ---color-absent-dark: var(--color-absent-dark, ${r$2(this.darks.absent)});
7390
+ ---color-correct-dark: var(--color-correct-dark, ${r$2(this.darks.correct)});
7391
+ ---color-error-dark: var(--color-error-dark, ${r$2(this.darks.error)});
7392
+ ---color-nr-dark: var(--color-nr-dark, ${r$2(this.darks.nr)});
7799
7393
  }
7800
7394
  `];
7801
7395
  }
@@ -7809,7 +7403,7 @@
7809
7403
  Dots; Coherence;
7810
7404
  # Direction, Speed, Lifetime
7811
7405
  */
7812
- class RDKTask extends DetectableElement {
7406
+ class RDKTask extends DecidablesMixinResizeable(DetectableElement) {
7813
7407
  static get properties() {
7814
7408
  return {
7815
7409
  coherence: {
@@ -7866,21 +7460,6 @@
7866
7460
  attribute: false,
7867
7461
  type: Number,
7868
7462
  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
7463
  }
7885
7464
  };
7886
7465
  }
@@ -7902,10 +7481,6 @@
7902
7481
  this.lifetime = 400; // Lifetime of each dot in milliseconds
7903
7482
  this.speed = 50; // Rate of dot movement in pixels per second
7904
7483
 
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
7484
  // Private
7910
7485
  this.firstUpdate = true;
7911
7486
  this.COHERENT = 0; // "Constant" for index to coherent dots
@@ -7931,7 +7506,7 @@
7931
7506
  }
7932
7507
 
7933
7508
  static get styles() {
7934
- return [super.styles, r$2`
7509
+ return [super.styles, i$1`
7935
7510
  :host {
7936
7511
  display: inline-block;
7937
7512
 
@@ -7982,27 +7557,6 @@
7982
7557
  /* eslint-disable-line class-methods-use-this */
7983
7558
  return x$1``;
7984
7559
  }
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
7560
  update(changedProperties) {
8007
7561
  super.update(changedProperties);
8008
7562
 
@@ -12796,7 +12350,7 @@
12796
12350
  Styles:
12797
12351
  ??
12798
12352
  */
12799
- class ROCSpace extends DetectableElement {
12353
+ class ROCSpace extends DecidablesMixinResizeable(DetectableElement) {
12800
12354
  static get properties() {
12801
12355
  return {
12802
12356
  contour: {
@@ -12848,21 +12402,6 @@
12848
12402
  attribute: false,
12849
12403
  type: Number,
12850
12404
  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
12405
  }
12867
12406
  };
12868
12407
  }
@@ -12894,9 +12433,6 @@
12894
12433
  this.pointArray = [];
12895
12434
  this.isoDArray = [];
12896
12435
  this.isoCArray = [];
12897
- this.width = NaN;
12898
- this.height = NaN;
12899
- this.rem = NaN;
12900
12436
  this.alignState();
12901
12437
  }
12902
12438
  alignState() {
@@ -12983,7 +12519,7 @@
12983
12519
  this.requestUpdate();
12984
12520
  }
12985
12521
  static get styles() {
12986
- return [super.styles, r$2`
12522
+ return [super.styles, i$1`
12987
12523
  :host {
12988
12524
  display: inline-block;
12989
12525
 
@@ -13123,27 +12659,6 @@
13123
12659
  ${DetectableElement.svgFilters}
13124
12660
  `;
13125
12661
  }
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
12662
  update(changedProperties) {
13148
12663
  super.update(changedProperties);
13149
12664
  this.alignState();
@@ -13276,7 +12791,7 @@
13276
12791
  const contours = Contours().size([n, n]).thresholds(contourThresholds);
13277
12792
  const contourColorStart = this.getComputedStyleValue(this.contour === 'bias' ? '---color-element-background' : this.contour === 'sensitivity' ? '---color-d' : this.contour === 'accuracy' ? '---color-acc-dark' : null);
13278
12793
  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(() => {
12794
+ const contourColor = linear().domain(extent(contourThresholds)).interpolate(() => {
13280
12795
  return interpolateRgb(contourColorStart, contourColorEnd);
13281
12796
  });
13282
12797
  // DATA-JOIN
@@ -13820,7 +13335,7 @@
13820
13335
  this.state = 'ended';
13821
13336
  }
13822
13337
  static get styles() {
13823
- return [super.styles, r$2`
13338
+ return [super.styles, i$1`
13824
13339
  :host {
13825
13340
  display: inline-block;
13826
13341
  }
@@ -13899,7 +13414,7 @@
13899
13414
  Styles:
13900
13415
  ??
13901
13416
  */
13902
- class SDTModel extends DetectableElement {
13417
+ class SDTModel extends DecidablesMixinResizeable(DetectableElement) {
13903
13418
  static get properties() {
13904
13419
  return {
13905
13420
  color: {
@@ -13976,21 +13491,6 @@
13976
13491
  attribute: false,
13977
13492
  type: Array,
13978
13493
  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
13494
  }
13995
13495
  };
13996
13496
  }
@@ -14018,10 +13518,6 @@
14018
13518
  this.responses = ['present', 'absent']; // Allowable values of trial.response
14019
13519
  this.trials = []; // Array of simulated trials
14020
13520
 
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
13521
  // Private
14026
13522
  this.muN = NaN; // Mean of noise distribution
14027
13523
  this.muS = NaN; // Mean of signal distribution
@@ -14090,7 +13586,7 @@
14090
13586
  }
14091
13587
  }
14092
13588
  static get styles() {
14093
- return [super.styles, r$2`
13589
+ return [super.styles, i$1`
14094
13590
  :host {
14095
13591
  display: inline-block;
14096
13592
 
@@ -14356,27 +13852,6 @@
14356
13852
  bubbles: true
14357
13853
  }));
14358
13854
  }
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
13855
  update(changedProperties) {
14381
13856
  super.update(changedProperties);
14382
13857
  this.alignState();
@@ -15450,7 +14925,7 @@
15450
14925
  this.e = 0;
15451
14926
  }
15452
14927
  static get styles() {
15453
- return [super.styles, r$2`
14928
+ return [super.styles, i$1`
15454
14929
  :host {
15455
14930
  display: inline-block;
15456
14931
  }
@@ -15844,7 +15319,7 @@
15844
15319
  this.sendEvent();
15845
15320
  }
15846
15321
  static get styles() {
15847
- return [super.styles, r$2`
15322
+ return [super.styles, i$1`
15848
15323
  :host {
15849
15324
  display: inline-block;
15850
15325
  }
@@ -16217,7 +15692,7 @@
16217
15692
  this.numeric = false;
16218
15693
  }
16219
15694
  static get styles() {
16220
- return [super.styles, r$2`
15695
+ return [super.styles, i$1`
16221
15696
  :host {
16222
15697
  display: block;
16223
15698
 
@@ -17572,7 +17047,7 @@
17572
17047
  */
17573
17048
  class SDTExample extends DetectableElement {
17574
17049
  static get styles() {
17575
- return [super.styles, r$2`
17050
+ return [super.styles, i$1`
17576
17051
  :host {
17577
17052
  display: inline-block;
17578
17053