@decidables/detectable-elements 0.2.4 → 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.
@@ -3,21 +3,21 @@
3
3
  * Copyright 2019 Google LLC
4
4
  * SPDX-License-Identifier: BSD-3-Clause
5
5
  */
6
- const t$2 = window,
7
- e$4 = t$2.ShadowRoot && (void 0 === t$2.ShadyCSS || t$2.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
8
- s$5 = Symbol(),
9
- n$5 = new WeakMap();
10
- let o$5 = class o {
6
+ const t$1 = window,
7
+ e$2 = t$1.ShadowRoot && (void 0 === t$1.ShadyCSS || t$1.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
8
+ s$3 = Symbol(),
9
+ n$3 = new WeakMap();
10
+ let o$3 = class o {
11
11
  constructor(t, e, n) {
12
- if (this._$cssResult$ = !0, n !== s$5) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
12
+ if (this._$cssResult$ = !0, n !== s$3) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
13
13
  this.cssText = t, this.t = e;
14
14
  }
15
15
  get styleSheet() {
16
16
  let t = this.o;
17
17
  const s = this.t;
18
- if (e$4 && void 0 === t) {
18
+ if (e$2 && void 0 === t) {
19
19
  const e = void 0 !== s && 1 === s.length;
20
- e && (t = n$5.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && n$5.set(s, t));
20
+ e && (t = n$3.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && n$3.set(s, t));
21
21
  }
22
22
  return t;
23
23
  }
@@ -25,18 +25,26 @@ let o$5 = class o {
25
25
  return this.cssText;
26
26
  }
27
27
  };
28
- const r$4 = t => new o$5("string" == typeof t ? t : t + "", void 0, s$5),
29
- S$2 = (s, n) => {
30
- e$4 ? s.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(e => {
28
+ const r$2 = t => new o$3("string" == typeof t ? t : t + "", void 0, s$3),
29
+ i$1 = (t, ...e) => {
30
+ const n = 1 === t.length ? t[0] : e.reduce((e, s, n) => e + (t => {
31
+ if (!0 === t._$cssResult$) return t.cssText;
32
+ if ("number" == typeof t) return t;
33
+ 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.");
34
+ })(s) + t[n + 1], t[0]);
35
+ return new o$3(n, t, s$3);
36
+ },
37
+ S$1 = (s, n) => {
38
+ e$2 ? s.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(e => {
31
39
  const n = document.createElement("style"),
32
- o = t$2.litNonce;
40
+ o = t$1.litNonce;
33
41
  void 0 !== o && n.setAttribute("nonce", o), n.textContent = e.cssText, s.appendChild(n);
34
42
  });
35
43
  },
36
- c$1 = e$4 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
44
+ c$1 = e$2 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
37
45
  let e = "";
38
46
  for (const s of t.cssRules) e += s.cssText;
39
- return r$4(e);
47
+ return r$2(e);
40
48
  })(t) : t;
41
49
 
42
50
  /**
@@ -44,16 +52,16 @@ const r$4 = t => new o$5("string" == typeof t ? t : t + "", void 0, s$5),
44
52
  * Copyright 2017 Google LLC
45
53
  * SPDX-License-Identifier: BSD-3-Clause
46
54
  */
47
- var s$4;
48
- const e$3 = window,
49
- r$3 = e$3.trustedTypes,
50
- h$2 = r$3 ? r$3.emptyScript : "",
51
- o$4 = e$3.reactiveElementPolyfillSupport,
52
- n$4 = {
55
+ var s$2;
56
+ const e$1 = window,
57
+ r$1 = e$1.trustedTypes,
58
+ h$1 = r$1 ? r$1.emptyScript : "",
59
+ o$2 = e$1.reactiveElementPolyfillSupport,
60
+ n$2 = {
53
61
  toAttribute(t, i) {
54
62
  switch (i) {
55
63
  case Boolean:
56
- t = t ? h$2 : null;
64
+ t = t ? h$1 : null;
57
65
  break;
58
66
  case Object:
59
67
  case Array:
@@ -81,17 +89,18 @@ const e$3 = window,
81
89
  return s;
82
90
  }
83
91
  },
84
- a$2 = (t, i) => i !== t && (i == i || t == t),
85
- l$4 = {
92
+ a$1 = (t, i) => i !== t && (i == i || t == t),
93
+ l$3 = {
86
94
  attribute: !0,
87
95
  type: String,
88
- converter: n$4,
96
+ converter: n$2,
89
97
  reflect: !1,
90
- hasChanged: a$2
91
- };
92
- let d$1 = class d extends HTMLElement {
98
+ hasChanged: a$1
99
+ },
100
+ d$1 = "finalized";
101
+ let u$1 = class u extends HTMLElement {
93
102
  constructor() {
94
- super(), this._$Ei = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this.u();
103
+ super(), this._$Ei = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu();
95
104
  }
96
105
  static addInitializer(t) {
97
106
  var i;
@@ -105,7 +114,7 @@ let d$1 = class d extends HTMLElement {
105
114
  void 0 !== e && (this._$Ev.set(e, s), t.push(e));
106
115
  }), t;
107
116
  }
108
- static createProperty(t, i = l$4) {
117
+ static createProperty(t, i = l$3) {
109
118
  if (i.state && (i.attribute = !1), this.finalize(), this.elementProperties.set(t, i), !i.noAccessor && !this.prototype.hasOwnProperty(t)) {
110
119
  const s = "symbol" == typeof t ? Symbol() : "__" + t,
111
120
  e = this.getPropertyDescriptor(t, s, i);
@@ -126,11 +135,11 @@ let d$1 = class d extends HTMLElement {
126
135
  };
127
136
  }
128
137
  static getPropertyOptions(t) {
129
- return this.elementProperties.get(t) || l$4;
138
+ return this.elementProperties.get(t) || l$3;
130
139
  }
131
140
  static finalize() {
132
- if (this.hasOwnProperty("finalized")) return !1;
133
- this.finalized = !0;
141
+ if (this.hasOwnProperty(d$1)) return !1;
142
+ this[d$1] = !0;
134
143
  const t = Object.getPrototypeOf(this);
135
144
  if (t.finalize(), void 0 !== t.h && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = new Map(), this.hasOwnProperty("properties")) {
136
145
  const t = this.properties,
@@ -151,7 +160,7 @@ let d$1 = class d extends HTMLElement {
151
160
  const s = i.attribute;
152
161
  return !1 === s ? void 0 : "string" == typeof s ? s : "string" == typeof t ? t.toLowerCase() : void 0;
153
162
  }
154
- u() {
163
+ _$Eu() {
155
164
  var t;
156
165
  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));
157
166
  }
@@ -171,7 +180,7 @@ let d$1 = class d extends HTMLElement {
171
180
  createRenderRoot() {
172
181
  var t;
173
182
  const s = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
174
- return S$2(s, this.constructor.elementStyles), s;
183
+ return S$1(s, this.constructor.elementStyles), s;
175
184
  }
176
185
  connectedCallback() {
177
186
  var t;
@@ -191,11 +200,11 @@ let d$1 = class d extends HTMLElement {
191
200
  attributeChangedCallback(t, i, s) {
192
201
  this._$AK(t, s);
193
202
  }
194
- _$EO(t, i, s = l$4) {
203
+ _$EO(t, i, s = l$3) {
195
204
  var e;
196
205
  const r = this.constructor._$Ep(t, s);
197
206
  if (void 0 !== r && !0 === s.reflect) {
198
- const h = (void 0 !== (null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) ? s.converter : n$4).toAttribute(i, s.type);
207
+ const h = (void 0 !== (null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) ? s.converter : n$2).toAttribute(i, s.type);
199
208
  this._$El = t, null == h ? this.removeAttribute(r) : this.setAttribute(r, h), this._$El = null;
200
209
  }
201
210
  }
@@ -207,13 +216,13 @@ let d$1 = class d extends HTMLElement {
207
216
  const t = e.getPropertyOptions(r),
208
217
  h = "function" == typeof t.converter ? {
209
218
  fromAttribute: t.converter
210
- } : void 0 !== (null === (s = t.converter) || void 0 === s ? void 0 : s.fromAttribute) ? t.converter : n$4;
219
+ } : void 0 !== (null === (s = t.converter) || void 0 === s ? void 0 : s.fromAttribute) ? t.converter : n$2;
211
220
  this._$El = r, this[r] = h.fromAttribute(i, t.type), this._$El = null;
212
221
  }
213
222
  }
214
223
  requestUpdate(t, i, s) {
215
224
  let e = !0;
216
- void 0 !== t && (((s = s || this.constructor.getPropertyOptions(t)).hasChanged || a$2)(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());
225
+ 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());
217
226
  }
218
227
  async _$Ej() {
219
228
  this.isUpdatePending = !0;
@@ -270,37 +279,37 @@ let d$1 = class d extends HTMLElement {
270
279
  updated(t) {}
271
280
  firstUpdated(t) {}
272
281
  };
273
- d$1.finalized = !0, d$1.elementProperties = new Map(), d$1.elementStyles = [], d$1.shadowRootOptions = {
282
+ u$1[d$1] = !0, u$1.elementProperties = new Map(), u$1.elementStyles = [], u$1.shadowRootOptions = {
274
283
  mode: "open"
275
- }, null == o$4 || o$4({
276
- ReactiveElement: d$1
277
- }), (null !== (s$4 = e$3.reactiveElementVersions) && void 0 !== s$4 ? s$4 : e$3.reactiveElementVersions = []).push("1.6.1");
284
+ }, null == o$2 || o$2({
285
+ ReactiveElement: u$1
286
+ }), (null !== (s$2 = e$1.reactiveElementVersions) && void 0 !== s$2 ? s$2 : e$1.reactiveElementVersions = []).push("1.6.3");
278
287
 
279
288
  /**
280
289
  * @license
281
290
  * Copyright 2017 Google LLC
282
291
  * SPDX-License-Identifier: BSD-3-Clause
283
292
  */
284
- var t$1;
285
- const i$1 = window,
286
- s$3 = i$1.trustedTypes,
287
- e$2 = s$3 ? s$3.createPolicy("lit-html", {
293
+ var t;
294
+ const i = window,
295
+ s$1 = i.trustedTypes,
296
+ e = s$1 ? s$1.createPolicy("lit-html", {
288
297
  createHTML: t => t
289
298
  }) : void 0,
290
- o$3 = "$lit$",
291
- n$3 = `lit$${(Math.random() + "").slice(9)}$`,
292
- l$3 = "?" + n$3,
293
- h$1 = `<${l$3}>`,
294
- r$2 = document,
295
- d = () => r$2.createComment(""),
296
- u = t => null === t || "object" != typeof t && "function" != typeof t,
299
+ o$1 = "$lit$",
300
+ n$1 = `lit$${(Math.random() + "").slice(9)}$`,
301
+ l$2 = "?" + n$1,
302
+ h = `<${l$2}>`,
303
+ r = document,
304
+ u = () => r.createComment(""),
305
+ d = t => null === t || "object" != typeof t && "function" != typeof t,
297
306
  c = Array.isArray,
298
307
  v = t => c(t) || "function" == typeof (null == t ? void 0 : t[Symbol.iterator]),
299
- a$1 = "[ \t\n\f\r]",
308
+ a = "[ \t\n\f\r]",
300
309
  f = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,
301
310
  _ = /-->/g,
302
311
  m = />/g,
303
- p = RegExp(`>|${a$1}(?:([^\\s"'>=/]+)(${a$1}*=${a$1}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
312
+ p = RegExp(`>|${a}(?:([^\\s"'>=/]+)(${a}*=${a}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`, "g"),
304
313
  g = /'/g,
305
314
  $ = /"/g,
306
315
  y$1 = /^(?:script|style|textarea|title)$/i,
@@ -314,28 +323,30 @@ const i$1 = window,
314
323
  T = Symbol.for("lit-noChange"),
315
324
  A = Symbol.for("lit-nothing"),
316
325
  E = new WeakMap(),
317
- C = r$2.createTreeWalker(r$2, 129, null, !1),
318
- P = (t, i) => {
319
- const s = t.length - 1,
320
- l = [];
321
- let r,
322
- d = 2 === i ? "<svg>" : "",
323
- u = f;
324
- for (let i = 0; i < s; i++) {
325
- const s = t[i];
326
- let e,
327
- c,
328
- v = -1,
329
- a = 0;
330
- 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);
331
- const w = u === p && t[i + 1].startsWith("/>") ? " " : "";
332
- d += u === f ? s + h$1 : v >= 0 ? (l.push(e), s.slice(0, v) + o$3 + s.slice(v) + n$3 + w) : s + n$3 + (-2 === v ? (l.push(void 0), i) : w);
333
- }
334
- const c = d + (t[s] || "<?>") + (2 === i ? "</svg>" : "");
335
- if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
336
- return [void 0 !== e$2 ? e$2.createHTML(c) : c, l];
337
- };
338
- class V {
326
+ C = r.createTreeWalker(r, 129, null, !1);
327
+ function P(t, i) {
328
+ if (!Array.isArray(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
329
+ return void 0 !== e ? e.createHTML(i) : i;
330
+ }
331
+ const V = (t, i) => {
332
+ const s = t.length - 1,
333
+ e = [];
334
+ let l,
335
+ r = 2 === i ? "<svg>" : "",
336
+ u = f;
337
+ for (let i = 0; i < s; i++) {
338
+ const s = t[i];
339
+ let d,
340
+ c,
341
+ v = -1,
342
+ a = 0;
343
+ 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);
344
+ const w = u === p && t[i + 1].startsWith("/>") ? " " : "";
345
+ 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);
346
+ }
347
+ return [P(t, r + (t[s] || "<?>") + (2 === i ? "</svg>" : "")), e];
348
+ };
349
+ class N {
339
350
  constructor({
340
351
  strings: t,
341
352
  _$litType$: i
@@ -343,11 +354,11 @@ class V {
343
354
  let h;
344
355
  this.parts = [];
345
356
  let r = 0,
346
- u = 0;
357
+ d = 0;
347
358
  const c = t.length - 1,
348
359
  v = this.parts,
349
- [a, f] = P(t, i);
350
- if (this.el = V.createElement(a, e), C.currentNode = this.el.content, 2 === i) {
360
+ [a, f] = V(t, i);
361
+ if (this.el = N.createElement(a, e), C.currentNode = this.el.content, 2 === i) {
351
362
  const t = this.el.content,
352
363
  i = t.firstChild;
353
364
  i.remove(), t.append(...i.childNodes);
@@ -356,17 +367,17 @@ class V {
356
367
  if (1 === h.nodeType) {
357
368
  if (h.hasAttributes()) {
358
369
  const t = [];
359
- for (const i of h.getAttributeNames()) if (i.endsWith(o$3) || i.startsWith(n$3)) {
360
- const s = f[u++];
370
+ for (const i of h.getAttributeNames()) if (i.endsWith(o$1) || i.startsWith(n$1)) {
371
+ const s = f[d++];
361
372
  if (t.push(i), void 0 !== s) {
362
- const t = h.getAttribute(s.toLowerCase() + o$3).split(n$3),
373
+ const t = h.getAttribute(s.toLowerCase() + o$1).split(n$1),
363
374
  i = /([.?@])?(.*)/.exec(s);
364
375
  v.push({
365
376
  type: 1,
366
377
  index: r,
367
378
  name: i[2],
368
379
  strings: t,
369
- ctor: "." === i[1] ? k : "?" === i[1] ? I : "@" === i[1] ? L : R
380
+ ctor: "." === i[1] ? H : "?" === i[1] ? L : "@" === i[1] ? z : k
370
381
  });
371
382
  } else v.push({
372
383
  type: 6,
@@ -376,45 +387,45 @@ class V {
376
387
  for (const i of t) h.removeAttribute(i);
377
388
  }
378
389
  if (y$1.test(h.tagName)) {
379
- const t = h.textContent.split(n$3),
390
+ const t = h.textContent.split(n$1),
380
391
  i = t.length - 1;
381
392
  if (i > 0) {
382
- h.textContent = s$3 ? s$3.emptyScript : "";
383
- for (let s = 0; s < i; s++) h.append(t[s], d()), C.nextNode(), v.push({
393
+ h.textContent = s$1 ? s$1.emptyScript : "";
394
+ for (let s = 0; s < i; s++) h.append(t[s], u()), C.nextNode(), v.push({
384
395
  type: 2,
385
396
  index: ++r
386
397
  });
387
- h.append(t[i], d());
398
+ h.append(t[i], u());
388
399
  }
389
400
  }
390
- } else if (8 === h.nodeType) if (h.data === l$3) v.push({
401
+ } else if (8 === h.nodeType) if (h.data === l$2) v.push({
391
402
  type: 2,
392
403
  index: r
393
404
  });else {
394
405
  let t = -1;
395
- for (; -1 !== (t = h.data.indexOf(n$3, t + 1));) v.push({
406
+ for (; -1 !== (t = h.data.indexOf(n$1, t + 1));) v.push({
396
407
  type: 7,
397
408
  index: r
398
- }), t += n$3.length - 1;
409
+ }), t += n$1.length - 1;
399
410
  }
400
411
  r++;
401
412
  }
402
413
  }
403
414
  static createElement(t, i) {
404
- const s = r$2.createElement("template");
415
+ const s = r.createElement("template");
405
416
  return s.innerHTML = t, s;
406
417
  }
407
418
  }
408
- function N(t, i, s = t, e) {
419
+ function S(t, i, s = t, e) {
409
420
  var o, n, l, h;
410
421
  if (i === T) return i;
411
422
  let r = void 0 !== e ? null === (o = s._$Co) || void 0 === o ? void 0 : o[e] : s._$Cl;
412
- const d = u(i) ? void 0 : i._$litDirective$;
413
- 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;
423
+ const u = d(i) ? void 0 : i._$litDirective$;
424
+ 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;
414
425
  }
415
- let S$1 = class S {
426
+ class M {
416
427
  constructor(t, i) {
417
- this.u = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
428
+ this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
418
429
  }
419
430
  get parentNode() {
420
431
  return this._$AM.parentNode;
@@ -422,7 +433,7 @@ let S$1 = class S {
422
433
  get _$AU() {
423
434
  return this._$AM._$AU;
424
435
  }
425
- v(t) {
436
+ u(t) {
426
437
  var i;
427
438
  const {
428
439
  el: {
@@ -430,34 +441,34 @@ let S$1 = class S {
430
441
  },
431
442
  parts: e
432
443
  } = this._$AD,
433
- o = (null !== (i = null == t ? void 0 : t.creationScope) && void 0 !== i ? i : r$2).importNode(s, !0);
444
+ o = (null !== (i = null == t ? void 0 : t.creationScope) && void 0 !== i ? i : r).importNode(s, !0);
434
445
  C.currentNode = o;
435
446
  let n = C.nextNode(),
436
447
  l = 0,
437
448
  h = 0,
438
- d = e[0];
439
- for (; void 0 !== d;) {
440
- if (l === d.index) {
449
+ u = e[0];
450
+ for (; void 0 !== u;) {
451
+ if (l === u.index) {
441
452
  let i;
442
- 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];
453
+ 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];
443
454
  }
444
- l !== (null == d ? void 0 : d.index) && (n = C.nextNode(), l++);
455
+ l !== (null == u ? void 0 : u.index) && (n = C.nextNode(), l++);
445
456
  }
446
- return o;
457
+ return C.currentNode = r, o;
447
458
  }
448
- p(t) {
459
+ v(t) {
449
460
  let i = 0;
450
- 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++;
461
+ 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++;
451
462
  }
452
- };
453
- class M {
463
+ }
464
+ class R {
454
465
  constructor(t, i, s, e) {
455
466
  var o;
456
- 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;
467
+ 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;
457
468
  }
458
469
  get _$AU() {
459
470
  var t, i;
460
- return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cm;
471
+ return null !== (i = null === (t = this._$AM) || void 0 === t ? void 0 : t._$AU) && void 0 !== i ? i : this._$Cp;
461
472
  }
462
473
  get parentNode() {
463
474
  let t = this._$AA.parentNode;
@@ -471,40 +482,40 @@ class M {
471
482
  return this._$AB;
472
483
  }
473
484
  _$AI(t, i = this) {
474
- 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);
485
+ 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);
475
486
  }
476
- S(t) {
487
+ k(t) {
477
488
  return this._$AA.parentNode.insertBefore(t, this._$AB);
478
489
  }
479
- T(t) {
480
- this._$AH !== t && (this._$AR(), this._$AH = this.S(t));
490
+ $(t) {
491
+ this._$AH !== t && (this._$AR(), this._$AH = this.k(t));
481
492
  }
482
- g(t) {
483
- this._$AH !== A && u(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r$2.createTextNode(t)), this._$AH = t;
493
+ _(t) {
494
+ this._$AH !== A && d(this._$AH) ? this._$AA.nextSibling.data = t : this.$(r.createTextNode(t)), this._$AH = t;
484
495
  }
485
- $(t) {
496
+ g(t) {
486
497
  var i;
487
498
  const {
488
499
  values: s,
489
500
  _$litType$: e
490
501
  } = t,
491
- o = "number" == typeof e ? this._$AC(t) : (void 0 === e.el && (e.el = V.createElement(e.h, this.options)), e);
492
- if ((null === (i = this._$AH) || void 0 === i ? void 0 : i._$AD) === o) this._$AH.p(s);else {
493
- const t = new S$1(o, this),
494
- i = t.v(this.options);
495
- t.p(s), this.T(i), this._$AH = t;
502
+ o = "number" == typeof e ? this._$AC(t) : (void 0 === e.el && (e.el = N.createElement(P(e.h, e.h[0]), this.options)), e);
503
+ if ((null === (i = this._$AH) || void 0 === i ? void 0 : i._$AD) === o) this._$AH.v(s);else {
504
+ const t = new M(o, this),
505
+ i = t.u(this.options);
506
+ t.v(s), this.$(i), this._$AH = t;
496
507
  }
497
508
  }
498
509
  _$AC(t) {
499
510
  let i = E.get(t.strings);
500
- return void 0 === i && E.set(t.strings, i = new V(t)), i;
511
+ return void 0 === i && E.set(t.strings, i = new N(t)), i;
501
512
  }
502
- k(t) {
513
+ T(t) {
503
514
  c(this._$AH) || (this._$AH = [], this._$AR());
504
515
  const i = this._$AH;
505
516
  let s,
506
517
  e = 0;
507
- 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++;
518
+ 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++;
508
519
  e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
509
520
  }
510
521
  _$AR(t = this._$AA.nextSibling, i) {
@@ -516,10 +527,10 @@ class M {
516
527
  }
517
528
  setConnected(t) {
518
529
  var i;
519
- void 0 === this._$AM && (this._$Cm = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
530
+ void 0 === this._$AM && (this._$Cp = t, null === (i = this._$AP) || void 0 === i || i.call(this, t));
520
531
  }
521
532
  }
522
- class R {
533
+ class k {
523
534
  constructor(t, i, s, e, o) {
524
535
  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;
525
536
  }
@@ -532,10 +543,10 @@ class R {
532
543
  _$AI(t, i = this, s, e) {
533
544
  const o = this.strings;
534
545
  let n = !1;
535
- if (void 0 === o) t = N(this, t, i, 0), n = !u(t) || t !== this._$AH && t !== T, n && (this._$AH = t);else {
546
+ if (void 0 === o) t = S(this, t, i, 0), n = !d(t) || t !== this._$AH && t !== T, n && (this._$AH = t);else {
536
547
  const e = t;
537
548
  let l, h;
538
- 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;
549
+ 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;
539
550
  }
540
551
  n && !e && this.j(t);
541
552
  }
@@ -543,7 +554,7 @@ class R {
543
554
  t === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, null != t ? t : "");
544
555
  }
545
556
  }
546
- class k extends R {
557
+ class H extends k {
547
558
  constructor() {
548
559
  super(...arguments), this.type = 3;
549
560
  }
@@ -551,22 +562,22 @@ class k extends R {
551
562
  this.element[this.name] = t === A ? void 0 : t;
552
563
  }
553
564
  }
554
- const H = s$3 ? s$3.emptyScript : "";
555
- class I extends R {
565
+ const I = s$1 ? s$1.emptyScript : "";
566
+ class L extends k {
556
567
  constructor() {
557
568
  super(...arguments), this.type = 4;
558
569
  }
559
570
  j(t) {
560
- t && t !== A ? this.element.setAttribute(this.name, H) : this.element.removeAttribute(this.name);
571
+ t && t !== A ? this.element.setAttribute(this.name, I) : this.element.removeAttribute(this.name);
561
572
  }
562
573
  }
563
- class L extends R {
574
+ class z extends k {
564
575
  constructor(t, i, s, e, o) {
565
576
  super(t, i, s, e, o), this.type = 5;
566
577
  }
567
578
  _$AI(t, i = this) {
568
579
  var s;
569
- if ((t = null !== (s = N(this, t, i, 0)) && void 0 !== s ? s : A) === T) return;
580
+ if ((t = null !== (s = S(this, t, i, 0)) && void 0 !== s ? s : A) === T) return;
570
581
  const e = this._$AH,
571
582
  o = t === A && e !== A || t.capture !== e.capture || t.once !== e.once || t.passive !== e.passive,
572
583
  n = t !== A && (e === A || o);
@@ -577,7 +588,7 @@ class L extends R {
577
588
  "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);
578
589
  }
579
590
  }
580
- class z {
591
+ class Z {
581
592
  constructor(t, i, s) {
582
593
  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
583
594
  }
@@ -585,307 +596,29 @@ class z {
585
596
  return this._$AM._$AU;
586
597
  }
587
598
  _$AI(t) {
588
- N(this, t);
599
+ S(this, t);
589
600
  }
590
601
  }
591
- const j = i$1.litHtmlPolyfillSupport;
592
- null == j || j(V, M), (null !== (t$1 = i$1.litHtmlVersions) && void 0 !== t$1 ? t$1 : i$1.litHtmlVersions = []).push("2.7.0");
593
- const B = (t, i, s) => {
602
+ const B = i.litHtmlPolyfillSupport;
603
+ null == B || B(N, R), (null !== (t = i.litHtmlVersions) && void 0 !== t ? t : i.litHtmlVersions = []).push("2.8.0");
604
+ const D = (t, i, s) => {
594
605
  var e, o;
595
606
  const n = null !== (e = null == s ? void 0 : s.renderBefore) && void 0 !== e ? e : i;
596
607
  let l = n._$litPart$;
597
608
  if (void 0 === l) {
598
609
  const t = null !== (o = null == s ? void 0 : s.renderBefore) && void 0 !== o ? o : null;
599
- n._$litPart$ = l = new M(i.insertBefore(d(), t), t, void 0, null != s ? s : {});
610
+ n._$litPart$ = l = new R(i.insertBefore(u(), t), t, void 0, null != s ? s : {});
600
611
  }
601
612
  return l._$AI(t), l;
602
613
  };
603
614
 
604
- /**
605
- * @license
606
- * Copyright 2019 Google LLC
607
- * SPDX-License-Identifier: BSD-3-Clause
608
- */
609
- const t = window.ShadowRoot && (void 0 === window.ShadyCSS || window.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
610
- e$1 = Symbol(),
611
- n$2 = new Map();
612
- let s$2 = class s {
613
- constructor(t, n) {
614
- if (this._$cssResult$ = !0, n !== e$1) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
615
- this.cssText = t;
616
- }
617
- get styleSheet() {
618
- let e = n$2.get(this.cssText);
619
- return t && void 0 === e && (n$2.set(this.cssText, e = new CSSStyleSheet()), e.replaceSync(this.cssText)), e;
620
- }
621
- toString() {
622
- return this.cssText;
623
- }
624
- };
625
- const o$2 = t => new s$2("string" == typeof t ? t : t + "", e$1),
626
- r$1 = (t, ...n) => {
627
- const o = 1 === t.length ? t[0] : n.reduce((e, n, s) => e + (t => {
628
- if (!0 === t._$cssResult$) return t.cssText;
629
- if ("number" == typeof t) return t;
630
- 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.");
631
- })(n) + t[s + 1], t[0]);
632
- return new s$2(o, e$1);
633
- },
634
- i = (e, n) => {
635
- t ? e.adoptedStyleSheets = n.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet) : n.forEach(t => {
636
- const n = document.createElement("style"),
637
- s = window.litNonce;
638
- void 0 !== s && n.setAttribute("nonce", s), n.textContent = t.cssText, e.appendChild(n);
639
- });
640
- },
641
- S = t ? t => t : t => t instanceof CSSStyleSheet ? (t => {
642
- let e = "";
643
- for (const n of t.cssRules) e += n.cssText;
644
- return o$2(e);
645
- })(t) : t;
646
-
647
- /**
648
- * @license
649
- * Copyright 2017 Google LLC
650
- * SPDX-License-Identifier: BSD-3-Clause
651
- */
652
- var s$1;
653
- const e = window.trustedTypes,
654
- r = e ? e.emptyScript : "",
655
- h = window.reactiveElementPolyfillSupport,
656
- o$1 = {
657
- toAttribute(t, i) {
658
- switch (i) {
659
- case Boolean:
660
- t = t ? r : null;
661
- break;
662
- case Object:
663
- case Array:
664
- t = null == t ? t : JSON.stringify(t);
665
- }
666
- return t;
667
- },
668
- fromAttribute(t, i) {
669
- let s = t;
670
- switch (i) {
671
- case Boolean:
672
- s = null !== t;
673
- break;
674
- case Number:
675
- s = null === t ? null : Number(t);
676
- break;
677
- case Object:
678
- case Array:
679
- try {
680
- s = JSON.parse(t);
681
- } catch (t) {
682
- s = null;
683
- }
684
- }
685
- return s;
686
- }
687
- },
688
- n$1 = (t, i) => i !== t && (i == i || t == t),
689
- l$2 = {
690
- attribute: !0,
691
- type: String,
692
- converter: o$1,
693
- reflect: !1,
694
- hasChanged: n$1
695
- };
696
- class a extends HTMLElement {
697
- constructor() {
698
- super(), this._$Et = new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$Ei = null, this.o();
699
- }
700
- static addInitializer(t) {
701
- var i;
702
- null !== (i = this.l) && void 0 !== i || (this.l = []), this.l.push(t);
703
- }
704
- static get observedAttributes() {
705
- this.finalize();
706
- const t = [];
707
- return this.elementProperties.forEach((i, s) => {
708
- const e = this._$Eh(s, i);
709
- void 0 !== e && (this._$Eu.set(e, s), t.push(e));
710
- }), t;
711
- }
712
- static createProperty(t, i = l$2) {
713
- if (i.state && (i.attribute = !1), this.finalize(), this.elementProperties.set(t, i), !i.noAccessor && !this.prototype.hasOwnProperty(t)) {
714
- const s = "symbol" == typeof t ? Symbol() : "__" + t,
715
- e = this.getPropertyDescriptor(t, s, i);
716
- void 0 !== e && Object.defineProperty(this.prototype, t, e);
717
- }
718
- }
719
- static getPropertyDescriptor(t, i, s) {
720
- return {
721
- get() {
722
- return this[i];
723
- },
724
- set(e) {
725
- const r = this[t];
726
- this[i] = e, this.requestUpdate(t, r, s);
727
- },
728
- configurable: !0,
729
- enumerable: !0
730
- };
731
- }
732
- static getPropertyOptions(t) {
733
- return this.elementProperties.get(t) || l$2;
734
- }
735
- static finalize() {
736
- if (this.hasOwnProperty("finalized")) return !1;
737
- this.finalized = !0;
738
- const t = Object.getPrototypeOf(this);
739
- if (t.finalize(), this.elementProperties = new Map(t.elementProperties), this._$Eu = new Map(), this.hasOwnProperty("properties")) {
740
- const t = this.properties,
741
- i = [...Object.getOwnPropertyNames(t), ...Object.getOwnPropertySymbols(t)];
742
- for (const s of i) this.createProperty(s, t[s]);
743
- }
744
- return this.elementStyles = this.finalizeStyles(this.styles), !0;
745
- }
746
- static finalizeStyles(i) {
747
- const s = [];
748
- if (Array.isArray(i)) {
749
- const e = new Set(i.flat(1 / 0).reverse());
750
- for (const i of e) s.unshift(S(i));
751
- } else void 0 !== i && s.push(S(i));
752
- return s;
753
- }
754
- static _$Eh(t, i) {
755
- const s = i.attribute;
756
- return !1 === s ? void 0 : "string" == typeof s ? s : "string" == typeof t ? t.toLowerCase() : void 0;
757
- }
758
- o() {
759
- var t;
760
- 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));
761
- }
762
- addController(t) {
763
- var i, s;
764
- (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));
765
- }
766
- removeController(t) {
767
- var i;
768
- null === (i = this._$Eg) || void 0 === i || i.splice(this._$Eg.indexOf(t) >>> 0, 1);
769
- }
770
- _$Em() {
771
- this.constructor.elementProperties.forEach((t, i) => {
772
- this.hasOwnProperty(i) && (this._$Et.set(i, this[i]), delete this[i]);
773
- });
774
- }
775
- createRenderRoot() {
776
- var t;
777
- const s = null !== (t = this.shadowRoot) && void 0 !== t ? t : this.attachShadow(this.constructor.shadowRootOptions);
778
- return i(s, this.constructor.elementStyles), s;
779
- }
780
- connectedCallback() {
781
- var t;
782
- void 0 === this.renderRoot && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
783
- var i;
784
- return null === (i = t.hostConnected) || void 0 === i ? void 0 : i.call(t);
785
- });
786
- }
787
- enableUpdating(t) {}
788
- disconnectedCallback() {
789
- var t;
790
- null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
791
- var i;
792
- return null === (i = t.hostDisconnected) || void 0 === i ? void 0 : i.call(t);
793
- });
794
- }
795
- attributeChangedCallback(t, i, s) {
796
- this._$AK(t, s);
797
- }
798
- _$ES(t, i, s = l$2) {
799
- var e, r;
800
- const h = this.constructor._$Eh(t, s);
801
- if (void 0 !== h && !0 === s.reflect) {
802
- const n = (null !== (r = null === (e = s.converter) || void 0 === e ? void 0 : e.toAttribute) && void 0 !== r ? r : o$1.toAttribute)(i, s.type);
803
- this._$Ei = t, null == n ? this.removeAttribute(h) : this.setAttribute(h, n), this._$Ei = null;
804
- }
805
- }
806
- _$AK(t, i) {
807
- var s, e, r;
808
- const h = this.constructor,
809
- n = h._$Eu.get(t);
810
- if (void 0 !== n && this._$Ei !== n) {
811
- const t = h.getPropertyOptions(n),
812
- l = t.converter,
813
- 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$1.fromAttribute;
814
- this._$Ei = n, this[n] = a(i, t.type), this._$Ei = null;
815
- }
816
- }
817
- requestUpdate(t, i, s) {
818
- let e = !0;
819
- void 0 !== t && (((s = s || this.constructor.getPropertyOptions(t)).hasChanged || n$1)(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_());
820
- }
821
- async _$E_() {
822
- this.isUpdatePending = !0;
823
- try {
824
- await this._$Ep;
825
- } catch (t) {
826
- Promise.reject(t);
827
- }
828
- const t = this.scheduleUpdate();
829
- return null != t && (await t), !this.isUpdatePending;
830
- }
831
- scheduleUpdate() {
832
- return this.performUpdate();
833
- }
834
- performUpdate() {
835
- var t;
836
- if (!this.isUpdatePending) return;
837
- this.hasUpdated, this._$Et && (this._$Et.forEach((t, i) => this[i] = t), this._$Et = void 0);
838
- let i = !1;
839
- const s = this._$AL;
840
- try {
841
- i = this.shouldUpdate(s), i ? (this.willUpdate(s), null === (t = this._$Eg) || void 0 === t || t.forEach(t => {
842
- var i;
843
- return null === (i = t.hostUpdate) || void 0 === i ? void 0 : i.call(t);
844
- }), this.update(s)) : this._$EU();
845
- } catch (t) {
846
- throw i = !1, this._$EU(), t;
847
- }
848
- i && this._$AE(s);
849
- }
850
- willUpdate(t) {}
851
- _$AE(t) {
852
- var i;
853
- null === (i = this._$Eg) || void 0 === i || i.forEach(t => {
854
- var i;
855
- return null === (i = t.hostUpdated) || void 0 === i ? void 0 : i.call(t);
856
- }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
857
- }
858
- _$EU() {
859
- this._$AL = new Map(), this.isUpdatePending = !1;
860
- }
861
- get updateComplete() {
862
- return this.getUpdateComplete();
863
- }
864
- getUpdateComplete() {
865
- return this._$Ep;
866
- }
867
- shouldUpdate(t) {
868
- return !0;
869
- }
870
- update(t) {
871
- void 0 !== this._$EC && (this._$EC.forEach((t, i) => this._$ES(i, this[i], t)), this._$EC = void 0), this._$EU();
872
- }
873
- updated(t) {}
874
- firstUpdated(t) {}
875
- }
876
- a.finalized = !0, a.elementProperties = new Map(), a.elementStyles = [], a.shadowRootOptions = {
877
- mode: "open"
878
- }, null == h || h({
879
- ReactiveElement: a
880
- }), (null !== (s$1 = globalThis.reactiveElementVersions) && void 0 !== s$1 ? s$1 : globalThis.reactiveElementVersions = []).push("1.3.1");
881
-
882
615
  /**
883
616
  * @license
884
617
  * Copyright 2017 Google LLC
885
618
  * SPDX-License-Identifier: BSD-3-Clause
886
619
  */
887
620
  var l$1, o;
888
- class s extends a {
621
+ class s extends u$1 {
889
622
  constructor() {
890
623
  super(...arguments), this.renderOptions = {
891
624
  host: this
@@ -898,7 +631,7 @@ class s extends a {
898
631
  }
899
632
  update(t) {
900
633
  const i = this.render();
901
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = B(i, this.renderRoot, this.renderOptions);
634
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = D(i, this.renderRoot, this.renderOptions);
902
635
  }
903
636
  connectedCallback() {
904
637
  var t;
@@ -919,20 +652,32 @@ const n = globalThis.litElementPolyfillSupport;
919
652
  null == n || n({
920
653
  LitElement: s
921
654
  });
922
- (null !== (o = globalThis.litElementVersions) && void 0 !== o ? o : globalThis.litElementVersions = []).push("3.3.0");
655
+ (null !== (o = globalThis.litElementVersions) && void 0 !== o ? o : globalThis.litElementVersions = []).push("3.3.3");
923
656
 
924
657
  function ascending$2(a, b) {
925
658
  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
926
659
  }
927
660
 
661
+ function descending(a, b) {
662
+ return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
663
+ }
664
+
928
665
  function bisector(f) {
929
- let delta = f;
930
- let compare1 = f;
931
- let compare2 = f;
666
+ let compare1, compare2, delta;
667
+
668
+ // If an accessor is specified, promote it to a comparator. In this case we
669
+ // can test whether the search value is (self-) comparable. We can’t do this
670
+ // for a comparator (except for specific, known comparators) because we can’t
671
+ // tell if the comparator is symmetric, and an asymmetric comparator can’t be
672
+ // used to test whether a single value is comparable.
932
673
  if (f.length !== 2) {
933
- delta = (d, x) => f(d) - x;
934
674
  compare1 = ascending$2;
935
675
  compare2 = (d, x) => ascending$2(f(d), x);
676
+ delta = (d, x) => f(d) - x;
677
+ } else {
678
+ compare1 = f === ascending$2 || f === descending ? f : zero$1;
679
+ compare2 = f;
680
+ delta = f;
936
681
  }
937
682
  function left(a, x, lo = 0, hi = a.length) {
938
683
  if (lo < hi) {
@@ -964,6 +709,9 @@ function bisector(f) {
964
709
  right
965
710
  };
966
711
  }
712
+ function zero$1() {
713
+ return 0;
714
+ }
967
715
 
968
716
  function number$2(x) {
969
717
  return x === null ? NaN : +x;
@@ -974,7 +722,7 @@ const bisectRight = ascendingBisect.right;
974
722
  bisector(number$2).center;
975
723
  var bisect = bisectRight;
976
724
 
977
- function count$1(values, valueof) {
725
+ function count(values, valueof) {
978
726
  let count = 0;
979
727
  if (valueof === undefined) {
980
728
  for (let value of values) {
@@ -993,7 +741,7 @@ function count$1(values, valueof) {
993
741
  return count;
994
742
  }
995
743
 
996
- function extent$1(values, valueof) {
744
+ function extent(values, valueof) {
997
745
  let min;
998
746
  let max;
999
747
  if (valueof === undefined) {
@@ -1080,56 +828,63 @@ function constant$5(x) {
1080
828
  return () => x;
1081
829
  }
1082
830
 
1083
- var e10$1 = Math.sqrt(50),
1084
- e5$1 = Math.sqrt(10),
1085
- e2$1 = Math.sqrt(2);
1086
- function ticks$1(start, stop, count) {
1087
- var reverse,
1088
- i = -1,
1089
- n,
1090
- ticks,
1091
- step;
831
+ const e10 = Math.sqrt(50),
832
+ e5 = Math.sqrt(10),
833
+ e2 = Math.sqrt(2);
834
+ function tickSpec(start, stop, count) {
835
+ const step = (stop - start) / Math.max(0, count),
836
+ power = Math.floor(Math.log10(step)),
837
+ error = step / Math.pow(10, power),
838
+ factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;
839
+ let i1, i2, inc;
840
+ if (power < 0) {
841
+ inc = Math.pow(10, -power) / factor;
842
+ i1 = Math.round(start * inc);
843
+ i2 = Math.round(stop * inc);
844
+ if (i1 / inc < start) ++i1;
845
+ if (i2 / inc > stop) --i2;
846
+ inc = -inc;
847
+ } else {
848
+ inc = Math.pow(10, power) * factor;
849
+ i1 = Math.round(start / inc);
850
+ i2 = Math.round(stop / inc);
851
+ if (i1 * inc < start) ++i1;
852
+ if (i2 * inc > stop) --i2;
853
+ }
854
+ if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);
855
+ return [i1, i2, inc];
856
+ }
857
+ function ticks(start, stop, count) {
1092
858
  stop = +stop, start = +start, count = +count;
1093
- if (start === stop && count > 0) return [start];
1094
- if (reverse = stop < start) n = start, start = stop, stop = n;
1095
- if ((step = tickIncrement$1(start, stop, count)) === 0 || !isFinite(step)) return [];
1096
- if (step > 0) {
1097
- let r0 = Math.round(start / step),
1098
- r1 = Math.round(stop / step);
1099
- if (r0 * step < start) ++r0;
1100
- if (r1 * step > stop) --r1;
1101
- ticks = new Array(n = r1 - r0 + 1);
1102
- while (++i < n) ticks[i] = (r0 + i) * step;
859
+ if (!(count > 0)) return [];
860
+ if (start === stop) return [start];
861
+ const reverse = stop < start,
862
+ [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);
863
+ if (!(i2 >= i1)) return [];
864
+ const n = i2 - i1 + 1,
865
+ ticks = new Array(n);
866
+ if (reverse) {
867
+ 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;
1103
868
  } else {
1104
- step = -step;
1105
- let r0 = Math.round(start * step),
1106
- r1 = Math.round(stop * step);
1107
- if (r0 / step < start) ++r0;
1108
- if (r1 / step > stop) --r1;
1109
- ticks = new Array(n = r1 - r0 + 1);
1110
- while (++i < n) ticks[i] = (r0 + i) / step;
1111
- }
1112
- if (reverse) ticks.reverse();
869
+ 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;
870
+ }
1113
871
  return ticks;
1114
872
  }
1115
- function tickIncrement$1(start, stop, count) {
1116
- var step = (stop - start) / Math.max(0, count),
1117
- power = Math.floor(Math.log(step) / Math.LN10),
1118
- error = step / Math.pow(10, power);
1119
- 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);
873
+ function tickIncrement(start, stop, count) {
874
+ stop = +stop, start = +start, count = +count;
875
+ return tickSpec(start, stop, count)[2];
1120
876
  }
1121
- function tickStep$1(start, stop, count) {
1122
- var step0 = Math.abs(stop - start) / Math.max(0, count),
1123
- step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
1124
- error = step0 / step1;
1125
- if (error >= e10$1) step1 *= 10;else if (error >= e5$1) step1 *= 5;else if (error >= e2$1) step1 *= 2;
1126
- return stop < start ? -step1 : step1;
877
+ function tickStep(start, stop, count) {
878
+ stop = +stop, start = +start, count = +count;
879
+ const reverse = stop < start,
880
+ inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);
881
+ return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
1127
882
  }
1128
883
 
1129
884
  function nice(start, stop, count) {
1130
885
  let prestep;
1131
886
  while (true) {
1132
- const step = tickIncrement$1(start, stop, count);
887
+ const step = tickIncrement(start, stop, count);
1133
888
  if (step === prestep || step === 0 || !isFinite(step)) {
1134
889
  return [start, stop];
1135
890
  } else if (step > 0) {
@@ -1143,19 +898,20 @@ function nice(start, stop, count) {
1143
898
  }
1144
899
  }
1145
900
 
1146
- function thresholdSturges$1(values) {
1147
- return Math.ceil(Math.log(count$1(values)) / Math.LN2) + 1;
901
+ function thresholdSturges(values) {
902
+ return Math.max(1, Math.ceil(Math.log(count(values)) / Math.LN2) + 1);
1148
903
  }
1149
904
 
1150
905
  function bin() {
1151
906
  var value = identity$6,
1152
- domain = extent$1,
1153
- threshold = thresholdSturges$1;
907
+ domain = extent,
908
+ threshold = thresholdSturges;
1154
909
  function histogram(data) {
1155
910
  if (!Array.isArray(data)) data = Array.from(data);
1156
911
  var i,
1157
912
  n = data.length,
1158
913
  x,
914
+ step,
1159
915
  values = new Array(n);
1160
916
  for (i = 0; i < n; ++i) {
1161
917
  values[i] = value(data[i], i, data);
@@ -1170,8 +926,13 @@ function bin() {
1170
926
  if (!Array.isArray(tz)) {
1171
927
  const max = x1,
1172
928
  tn = +tz;
1173
- if (domain === extent$1) [x0, x1] = nice(x0, x1, tn);
1174
- tz = ticks$1(x0, x1, tn);
929
+ if (domain === extent) [x0, x1] = nice(x0, x1, tn);
930
+ tz = ticks(x0, x1, tn);
931
+
932
+ // If the domain is aligned with the first tick (which it will by
933
+ // default), then we can use quantization rather than bisection to bin
934
+ // values, which is substantially faster.
935
+ if (tz[0] <= x0) step = tickIncrement(x0, x1, tn);
1175
936
 
1176
937
  // If the last threshold is coincident with the domain’s upper bound, the
1177
938
  // last bin will be zero-width. If the default domain is used, and this
@@ -1181,8 +942,8 @@ function bin() {
1181
942
  // coerce values or the domain to numbers, and thus must be careful to
1182
943
  // compare order (>=) rather than strict equality (===)!
1183
944
  if (tz[tz.length - 1] >= x1) {
1184
- if (max >= x1 && domain === extent$1) {
1185
- const step = tickIncrement$1(x0, x1, tn);
945
+ if (max >= x1 && domain === extent) {
946
+ const step = tickIncrement(x0, x1, tn);
1186
947
  if (isFinite(step)) {
1187
948
  if (step > 0) {
1188
949
  x1 = (Math.floor(x1 / step) + 1) * step;
@@ -1197,9 +958,13 @@ function bin() {
1197
958
  }
1198
959
 
1199
960
  // Remove any thresholds outside the domain.
1200
- var m = tz.length;
1201
- while (tz[0] <= x0) tz.shift(), --m;
1202
- while (tz[m - 1] > x1) tz.pop(), --m;
961
+ // Be careful not to mutate an array owned by the user!
962
+ var m = tz.length,
963
+ a = 0,
964
+ b = m;
965
+ while (tz[a] <= x0) ++a;
966
+ while (tz[b - 1] > x1) --b;
967
+ if (a || b < m) tz = tz.slice(a, b), m = b - a;
1203
968
  var bins = new Array(m + 1),
1204
969
  bin;
1205
970
 
@@ -1211,10 +976,26 @@ function bin() {
1211
976
  }
1212
977
 
1213
978
  // Assign data to bins by value, ignoring any outside the domain.
1214
- for (i = 0; i < n; ++i) {
1215
- x = values[i];
1216
- if (x != null && x0 <= x && x <= x1) {
1217
- bins[bisect(tz, x, 0, m)].push(data[i]);
979
+ if (isFinite(step)) {
980
+ if (step > 0) {
981
+ for (i = 0; i < n; ++i) {
982
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
983
+ bins[Math.min(m, Math.floor((x - x0) / step))].push(data[i]);
984
+ }
985
+ }
986
+ } else if (step < 0) {
987
+ for (i = 0; i < n; ++i) {
988
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
989
+ const j = Math.floor((x0 - x) * step);
990
+ bins[Math.min(m, j + (tz[j] <= x))].push(data[i]); // handle off-by-one due to rounding
991
+ }
992
+ }
993
+ }
994
+ } else {
995
+ for (i = 0; i < n; ++i) {
996
+ if ((x = values[i]) != null && x0 <= x && x <= x1) {
997
+ bins[bisect(tz, x, 0, m)].push(data[i]);
998
+ }
1218
999
  }
1219
1000
  }
1220
1001
  return bins;
@@ -1226,7 +1007,7 @@ function bin() {
1226
1007
  return arguments.length ? (domain = typeof _ === "function" ? _ : constant$5([_[0], _[1]]), histogram) : domain;
1227
1008
  };
1228
1009
  histogram.thresholds = function (_) {
1229
- return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? constant$5(slice$1.call(_)) : constant$5(_), histogram) : threshold;
1010
+ return arguments.length ? (threshold = typeof _ === "function" ? _ : constant$5(Array.isArray(_) ? slice$1.call(_) : _), histogram) : threshold;
1230
1011
  };
1231
1012
  return histogram;
1232
1013
  }
@@ -2603,15 +2384,15 @@ function Color() {}
2603
2384
  var darker = 0.7;
2604
2385
  var brighter = 1 / darker;
2605
2386
  var reI = "\\s*([+-]?\\d+)\\s*",
2606
- reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2607
- reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2387
+ reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",
2388
+ reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
2608
2389
  reHex = /^#([0-9a-f]{3,8})$/,
2609
- reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
2610
- reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
2611
- reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
2612
- reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
2613
- reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
2614
- reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
2390
+ reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`),
2391
+ reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`),
2392
+ reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`),
2393
+ reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`),
2394
+ reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`),
2395
+ reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
2615
2396
  var named = {
2616
2397
  aliceblue: 0xf0f8ff,
2617
2398
  antiquewhite: 0xfaebd7,
@@ -2763,15 +2544,16 @@ var named = {
2763
2544
  yellowgreen: 0x9acd32
2764
2545
  };
2765
2546
  define(Color, color, {
2766
- copy: function (channels) {
2547
+ copy(channels) {
2767
2548
  return Object.assign(new this.constructor(), this, channels);
2768
2549
  },
2769
- displayable: function () {
2550
+ displayable() {
2770
2551
  return this.rgb().displayable();
2771
2552
  },
2772
2553
  hex: color_formatHex,
2773
2554
  // Deprecated! Use color.formatHex.
2774
2555
  formatHex: color_formatHex,
2556
+ formatHex8: color_formatHex8,
2775
2557
  formatHsl: color_formatHsl,
2776
2558
  formatRgb: color_formatRgb,
2777
2559
  toString: color_formatRgb
@@ -2779,6 +2561,9 @@ define(Color, color, {
2779
2561
  function color_formatHex() {
2780
2562
  return this.rgb().formatHex();
2781
2563
  }
2564
+ function color_formatHex8() {
2565
+ return this.rgb().formatHex8();
2566
+ }
2782
2567
  function color_formatHsl() {
2783
2568
  return hslConvert(this).formatHsl();
2784
2569
  }
@@ -2825,36 +2610,48 @@ function Rgb(r, g, b, opacity) {
2825
2610
  this.opacity = +opacity;
2826
2611
  }
2827
2612
  define(Rgb, rgb, extend(Color, {
2828
- brighter: function (k) {
2613
+ brighter(k) {
2829
2614
  k = k == null ? brighter : Math.pow(brighter, k);
2830
2615
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
2831
2616
  },
2832
- darker: function (k) {
2617
+ darker(k) {
2833
2618
  k = k == null ? darker : Math.pow(darker, k);
2834
2619
  return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
2835
2620
  },
2836
- rgb: function () {
2621
+ rgb() {
2837
2622
  return this;
2838
2623
  },
2839
- displayable: function () {
2624
+ clamp() {
2625
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
2626
+ },
2627
+ displayable() {
2840
2628
  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;
2841
2629
  },
2842
2630
  hex: rgb_formatHex,
2843
2631
  // Deprecated! Use color.formatHex.
2844
2632
  formatHex: rgb_formatHex,
2633
+ formatHex8: rgb_formatHex8,
2845
2634
  formatRgb: rgb_formatRgb,
2846
2635
  toString: rgb_formatRgb
2847
2636
  }));
2848
2637
  function rgb_formatHex() {
2849
- return "#" + hex(this.r) + hex(this.g) + hex(this.b);
2638
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
2639
+ }
2640
+ function rgb_formatHex8() {
2641
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
2850
2642
  }
2851
2643
  function rgb_formatRgb() {
2852
- var a = this.opacity;
2853
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
2854
- 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 + ")");
2644
+ const a = clampa(this.opacity);
2645
+ return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
2646
+ }
2647
+ function clampa(opacity) {
2648
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
2649
+ }
2650
+ function clampi(value) {
2651
+ return Math.max(0, Math.min(255, Math.round(value) || 0));
2855
2652
  }
2856
2653
  function hex(value) {
2857
- value = Math.max(0, Math.min(255, Math.round(value) || 0));
2654
+ value = clampi(value);
2858
2655
  return (value < 16 ? "0" : "") + value.toString(16);
2859
2656
  }
2860
2657
  function hsla(h, s, l, a) {
@@ -2894,15 +2691,15 @@ function Hsl(h, s, l, opacity) {
2894
2691
  this.opacity = +opacity;
2895
2692
  }
2896
2693
  define(Hsl, hsl, extend(Color, {
2897
- brighter: function (k) {
2694
+ brighter(k) {
2898
2695
  k = k == null ? brighter : Math.pow(brighter, k);
2899
2696
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
2900
2697
  },
2901
- darker: function (k) {
2698
+ darker(k) {
2902
2699
  k = k == null ? darker : Math.pow(darker, k);
2903
2700
  return new Hsl(this.h, this.s, this.l * k, this.opacity);
2904
2701
  },
2905
- rgb: function () {
2702
+ rgb() {
2906
2703
  var h = this.h % 360 + (this.h < 0) * 360,
2907
2704
  s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
2908
2705
  l = this.l,
@@ -2910,15 +2707,24 @@ define(Hsl, hsl, extend(Color, {
2910
2707
  m1 = 2 * l - m2;
2911
2708
  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);
2912
2709
  },
2913
- displayable: function () {
2710
+ clamp() {
2711
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
2712
+ },
2713
+ displayable() {
2914
2714
  return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
2915
2715
  },
2916
- formatHsl: function () {
2917
- var a = this.opacity;
2918
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
2919
- return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")");
2716
+ formatHsl() {
2717
+ const a = clampa(this.opacity);
2718
+ return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
2920
2719
  }
2921
2720
  }));
2721
+ function clamph(value) {
2722
+ value = (value || 0) % 360;
2723
+ return value < 0 ? value + 360 : value;
2724
+ }
2725
+ function clampt(value) {
2726
+ return Math.max(0, Math.min(1, value || 0));
2727
+ }
2922
2728
 
2923
2729
  /* From FvD 13.37, CSS Color Module Level 3 */
2924
2730
  function hsl2rgb(h, m1, m2) {
@@ -4129,38 +3935,56 @@ const pi$1 = Math.PI,
4129
3935
  tau$1 = 2 * pi$1,
4130
3936
  epsilon$1 = 1e-6,
4131
3937
  tauEpsilon = tau$1 - epsilon$1;
4132
- function Path() {
4133
- this._x0 = this._y0 =
4134
- // start of current subpath
4135
- this._x1 = this._y1 = null; // end of current subpath
4136
- this._ = "";
4137
- }
4138
- function path() {
4139
- return new Path();
4140
- }
4141
- Path.prototype = path.prototype = {
4142
- constructor: Path,
4143
- moveTo: function (x, y) {
4144
- this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
4145
- },
4146
- closePath: function () {
4147
- if (this._x1 !== null) {
4148
- this._x1 = this._x0, this._y1 = this._y0;
4149
- this._ += "Z";
3938
+ function append$1(strings) {
3939
+ this._ += strings[0];
3940
+ for (let i = 1, n = strings.length; i < n; ++i) {
3941
+ this._ += arguments[i] + strings[i];
3942
+ }
3943
+ }
3944
+ function appendRound$1(digits) {
3945
+ let d = Math.floor(digits);
3946
+ if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
3947
+ if (d > 15) return append$1;
3948
+ const k = 10 ** d;
3949
+ return function (strings) {
3950
+ this._ += strings[0];
3951
+ for (let i = 1, n = strings.length; i < n; ++i) {
3952
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
4150
3953
  }
4151
- },
4152
- lineTo: function (x, y) {
4153
- this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
4154
- },
4155
- quadraticCurveTo: function (x1, y1, x, y) {
4156
- this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
4157
- },
4158
- bezierCurveTo: function (x1, y1, x2, y2, x, y) {
4159
- this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x) + "," + (this._y1 = +y);
4160
- },
4161
- arcTo: function (x1, y1, x2, y2, r) {
3954
+ };
3955
+ }
3956
+ class Path {
3957
+ constructor(digits) {
3958
+ this._x0 = this._y0 =
3959
+ // start of current subpath
3960
+ this._x1 = this._y1 = null; // end of current subpath
3961
+ this._ = "";
3962
+ this._append = digits == null ? append$1 : appendRound$1(digits);
3963
+ }
3964
+ moveTo(x, y) {
3965
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
3966
+ }
3967
+ closePath() {
3968
+ if (this._x1 !== null) {
3969
+ this._x1 = this._x0, this._y1 = this._y0;
3970
+ this._append`Z`;
3971
+ }
3972
+ }
3973
+ lineTo(x, y) {
3974
+ this._append`L${this._x1 = +x},${this._y1 = +y}`;
3975
+ }
3976
+ quadraticCurveTo(x1, y1, x, y) {
3977
+ this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;
3978
+ }
3979
+ bezierCurveTo(x1, y1, x2, y2, x, y) {
3980
+ this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;
3981
+ }
3982
+ arcTo(x1, y1, x2, y2, r) {
4162
3983
  x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
4163
- var x0 = this._x1,
3984
+
3985
+ // Is the radius negative? Error.
3986
+ if (r < 0) throw new Error(`negative radius: ${r}`);
3987
+ let x0 = this._x1,
4164
3988
  y0 = this._y1,
4165
3989
  x21 = x2 - x1,
4166
3990
  y21 = y2 - y1,
@@ -4168,12 +3992,9 @@ Path.prototype = path.prototype = {
4168
3992
  y01 = y0 - y1,
4169
3993
  l01_2 = x01 * x01 + y01 * y01;
4170
3994
 
4171
- // Is the radius negative? Error.
4172
- if (r < 0) throw new Error("negative radius: " + r);
4173
-
4174
3995
  // Is this path empty? Move to (x1,y1).
4175
3996
  if (this._x1 === null) {
4176
- this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
3997
+ this._append`M${this._x1 = x1},${this._y1 = y1}`;
4177
3998
  }
4178
3999
 
4179
4000
  // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
@@ -4183,12 +4004,12 @@ Path.prototype = path.prototype = {
4183
4004
  // Equivalently, is (x1,y1) coincident with (x2,y2)?
4184
4005
  // Or, is the radius zero? Line to (x1,y1).
4185
4006
  else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$1) || !r) {
4186
- this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
4007
+ this._append`L${this._x1 = x1},${this._y1 = y1}`;
4187
4008
  }
4188
4009
 
4189
4010
  // Otherwise, draw an arc!
4190
4011
  else {
4191
- var x20 = x2 - x0,
4012
+ let x20 = x2 - x0,
4192
4013
  y20 = y2 - y0,
4193
4014
  l21_2 = x21 * x21 + y21 * y21,
4194
4015
  l20_2 = x20 * x20 + y20 * y20,
@@ -4200,31 +4021,31 @@ Path.prototype = path.prototype = {
4200
4021
 
4201
4022
  // If the start tangent is not coincident with (x0,y0), line to.
4202
4023
  if (Math.abs(t01 - 1) > epsilon$1) {
4203
- this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
4024
+ this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
4204
4025
  }
4205
- this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
4026
+ this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
4206
4027
  }
4207
- },
4208
- arc: function (x, y, r, a0, a1, ccw) {
4028
+ }
4029
+ arc(x, y, r, a0, a1, ccw) {
4209
4030
  x = +x, y = +y, r = +r, ccw = !!ccw;
4210
- var dx = r * Math.cos(a0),
4031
+
4032
+ // Is the radius negative? Error.
4033
+ if (r < 0) throw new Error(`negative radius: ${r}`);
4034
+ let dx = r * Math.cos(a0),
4211
4035
  dy = r * Math.sin(a0),
4212
4036
  x0 = x + dx,
4213
4037
  y0 = y + dy,
4214
4038
  cw = 1 ^ ccw,
4215
4039
  da = ccw ? a0 - a1 : a1 - a0;
4216
4040
 
4217
- // Is the radius negative? Error.
4218
- if (r < 0) throw new Error("negative radius: " + r);
4219
-
4220
4041
  // Is this path empty? Move to (x0,y0).
4221
4042
  if (this._x1 === null) {
4222
- this._ += "M" + x0 + "," + y0;
4043
+ this._append`M${x0},${y0}`;
4223
4044
  }
4224
4045
 
4225
4046
  // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
4226
4047
  else if (Math.abs(this._x1 - x0) > epsilon$1 || Math.abs(this._y1 - y0) > epsilon$1) {
4227
- this._ += "L" + x0 + "," + y0;
4048
+ this._append`L${x0},${y0}`;
4228
4049
  }
4229
4050
 
4230
4051
  // Is this arc empty? We’re done.
@@ -4235,119 +4056,20 @@ Path.prototype = path.prototype = {
4235
4056
 
4236
4057
  // Is this a complete circle? Draw two arcs to complete the circle.
4237
4058
  if (da > tauEpsilon) {
4238
- this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
4059
+ this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
4239
4060
  }
4240
4061
 
4241
4062
  // Is this arc non-empty? Draw an arc!
4242
4063
  else if (da > epsilon$1) {
4243
- this._ += "A" + r + "," + r + ",0," + +(da >= pi$1) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
4064
+ this._append`A${r},${r},0,${+(da >= pi$1)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;
4244
4065
  }
4245
- },
4246
- rect: function (x, y, w, h) {
4247
- this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + +w + "v" + +h + "h" + -w + "Z";
4248
- },
4249
- toString: function () {
4250
- return this._;
4251
4066
  }
4252
- };
4253
-
4254
- function count(values, valueof) {
4255
- let count = 0;
4256
- if (valueof === undefined) {
4257
- for (let value of values) {
4258
- if (value != null && (value = +value) >= value) {
4259
- ++count;
4260
- }
4261
- }
4262
- } else {
4263
- let index = -1;
4264
- for (let value of values) {
4265
- if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
4266
- ++count;
4267
- }
4268
- }
4067
+ rect(x, y, w, h) {
4068
+ this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;
4269
4069
  }
4270
- return count;
4271
- }
4272
-
4273
- function extent(values, valueof) {
4274
- let min;
4275
- let max;
4276
- if (valueof === undefined) {
4277
- for (const value of values) {
4278
- if (value != null) {
4279
- if (min === undefined) {
4280
- if (value >= value) min = max = value;
4281
- } else {
4282
- if (min > value) min = value;
4283
- if (max < value) max = value;
4284
- }
4285
- }
4286
- }
4287
- } else {
4288
- let index = -1;
4289
- for (let value of values) {
4290
- if ((value = valueof(value, ++index, values)) != null) {
4291
- if (min === undefined) {
4292
- if (value >= value) min = max = value;
4293
- } else {
4294
- if (min > value) min = value;
4295
- if (max < value) max = value;
4296
- }
4297
- }
4298
- }
4070
+ toString() {
4071
+ return this._;
4299
4072
  }
4300
- return [min, max];
4301
- }
4302
-
4303
- var e10 = Math.sqrt(50),
4304
- e5 = Math.sqrt(10),
4305
- e2 = Math.sqrt(2);
4306
- function ticks(start, stop, count) {
4307
- var reverse,
4308
- i = -1,
4309
- n,
4310
- ticks,
4311
- step;
4312
- stop = +stop, start = +start, count = +count;
4313
- if (start === stop && count > 0) return [start];
4314
- if (reverse = stop < start) n = start, start = stop, stop = n;
4315
- if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
4316
- if (step > 0) {
4317
- let r0 = Math.round(start / step),
4318
- r1 = Math.round(stop / step);
4319
- if (r0 * step < start) ++r0;
4320
- if (r1 * step > stop) --r1;
4321
- ticks = new Array(n = r1 - r0 + 1);
4322
- while (++i < n) ticks[i] = (r0 + i) * step;
4323
- } else {
4324
- step = -step;
4325
- let r0 = Math.round(start * step),
4326
- r1 = Math.round(stop * step);
4327
- if (r0 / step < start) ++r0;
4328
- if (r1 / step > stop) --r1;
4329
- ticks = new Array(n = r1 - r0 + 1);
4330
- while (++i < n) ticks[i] = (r0 + i) / step;
4331
- }
4332
- if (reverse) ticks.reverse();
4333
- return ticks;
4334
- }
4335
- function tickIncrement(start, stop, count) {
4336
- var step = (stop - start) / Math.max(0, count),
4337
- power = Math.floor(Math.log(step) / Math.LN10),
4338
- error = step / Math.pow(10, power);
4339
- 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);
4340
- }
4341
- function tickStep(start, stop, count) {
4342
- var step0 = Math.abs(stop - start) / Math.max(0, count),
4343
- step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
4344
- error = step0 / step1;
4345
- if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;
4346
- return stop < start ? -step1 : step1;
4347
- }
4348
-
4349
- function thresholdSturges(values) {
4350
- return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;
4351
4073
  }
4352
4074
 
4353
4075
  var array$1 = Array.prototype;
@@ -4414,9 +4136,10 @@ function Contours () {
4414
4136
 
4415
4137
  // Convert number of thresholds into uniform thresholds.
4416
4138
  if (!Array.isArray(tz)) {
4417
- const e = extent(values),
4418
- ts = tickStep(e[0], e[1], tz);
4419
- tz = ticks(Math.floor(e[0] / ts) * ts, Math.floor(e[1] / ts - 1) * ts, tz);
4139
+ const e = extent(values, finite);
4140
+ tz = ticks(...nice(e[0], e[1], tz), tz);
4141
+ while (tz[tz.length - 1] >= e[1]) tz.pop();
4142
+ while (tz[1] < e[0]) tz.shift();
4420
4143
  } else {
4421
4144
  tz = tz.slice().sort(ascending);
4422
4145
  }
@@ -4426,10 +4149,12 @@ function Contours () {
4426
4149
  // Accumulate, smooth contour rings, assign holes to exterior rings.
4427
4150
  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
4428
4151
  function contour(values, value) {
4152
+ const v = value == null ? NaN : +value;
4153
+ if (isNaN(v)) throw new Error(`invalid value: ${value}`);
4429
4154
  var polygons = [],
4430
4155
  holes = [];
4431
- isorings(values, value, function (ring) {
4432
- smooth(ring, values, value);
4156
+ isorings(values, v, function (ring) {
4157
+ smooth(ring, values, v);
4433
4158
  if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);
4434
4159
  });
4435
4160
  holes.forEach(function (hole) {
@@ -4461,10 +4186,10 @@ function Contours () {
4461
4186
 
4462
4187
  // Special case for the first row (y = -1, t2 = t3 = 0).
4463
4188
  x = y = -1;
4464
- t1 = values[0] >= value;
4189
+ t1 = above(values[0], value);
4465
4190
  cases[t1 << 1].forEach(stitch);
4466
4191
  while (++x < dx - 1) {
4467
- t0 = t1, t1 = values[x + 1] >= value;
4192
+ t0 = t1, t1 = above(values[x + 1], value);
4468
4193
  cases[t0 | t1 << 1].forEach(stitch);
4469
4194
  }
4470
4195
  cases[t1 << 0].forEach(stitch);
@@ -4472,12 +4197,12 @@ function Contours () {
4472
4197
  // General case for the intermediate rows.
4473
4198
  while (++y < dy - 1) {
4474
4199
  x = -1;
4475
- t1 = values[y * dx + dx] >= value;
4476
- t2 = values[y * dx] >= value;
4200
+ t1 = above(values[y * dx + dx], value);
4201
+ t2 = above(values[y * dx], value);
4477
4202
  cases[t1 << 1 | t2 << 2].forEach(stitch);
4478
4203
  while (++x < dx - 1) {
4479
- t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
4480
- t3 = t2, t2 = values[y * dx + x + 1] >= value;
4204
+ t0 = t1, t1 = above(values[y * dx + dx + x + 1], value);
4205
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4481
4206
  cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
4482
4207
  }
4483
4208
  cases[t1 | t2 << 3].forEach(stitch);
@@ -4488,7 +4213,7 @@ function Contours () {
4488
4213
  t2 = values[y * dx] >= value;
4489
4214
  cases[t2 << 2].forEach(stitch);
4490
4215
  while (++x < dx - 1) {
4491
- t3 = t2, t2 = values[y * dx + x + 1] >= value;
4216
+ t3 = t2, t2 = above(values[y * dx + x + 1], value);
4492
4217
  cases[t2 << 2 | t3 << 3].forEach(stitch);
4493
4218
  }
4494
4219
  cases[t2 << 3].forEach(stitch);
@@ -4555,15 +4280,12 @@ function Contours () {
4555
4280
  y = point[1],
4556
4281
  xt = x | 0,
4557
4282
  yt = y | 0,
4558
- v0,
4559
- v1 = values[yt * dx + xt];
4283
+ v1 = valid(values[yt * dx + xt]);
4560
4284
  if (x > 0 && x < dx && xt === x) {
4561
- v0 = values[yt * dx + xt - 1];
4562
- point[0] = x + (value - v0) / (v1 - v0) - 0.5;
4285
+ point[0] = smooth1(x, valid(values[yt * dx + xt - 1]), v1, value);
4563
4286
  }
4564
4287
  if (y > 0 && y < dy && yt === y) {
4565
- v0 = values[(yt - 1) * dx + xt];
4566
- point[1] = y + (value - v0) / (v1 - v0) - 0.5;
4288
+ point[1] = smooth1(y, valid(values[(yt - 1) * dx + xt]), v1, value);
4567
4289
  }
4568
4290
  });
4569
4291
  }
@@ -4584,6 +4306,28 @@ function Contours () {
4584
4306
  return contours;
4585
4307
  }
4586
4308
 
4309
+ // When computing the extent, ignore infinite values (as well as invalid ones).
4310
+ function finite(x) {
4311
+ return isFinite(x) ? x : NaN;
4312
+ }
4313
+
4314
+ // Is the (possibly invalid) x greater than or equal to the (known valid) value?
4315
+ // Treat any invalid value as below negative infinity.
4316
+ function above(x, value) {
4317
+ return x == null ? false : +x >= value;
4318
+ }
4319
+
4320
+ // During smoothing, treat any invalid value as negative infinity.
4321
+ function valid(v) {
4322
+ return v == null || isNaN(v = +v) ? -Infinity : v;
4323
+ }
4324
+ function smooth1(x, v0, v1, value) {
4325
+ const a = value - v0;
4326
+ const b = v1 - v0;
4327
+ const d = isFinite(a) || isFinite(b) ? a / b : Math.sign(a) / Math.sign(b);
4328
+ return isNaN(d) ? x : x + d - 0.5;
4329
+ }
4330
+
4587
4331
  function formatDecimal (x) {
4588
4332
  return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10);
4589
4333
  }
@@ -5540,66 +5284,96 @@ function lengthPoint(x, y) {
5540
5284
  }
5541
5285
  var pathMeasure = lengthStream;
5542
5286
 
5543
- function PathString() {
5544
- this._string = [];
5545
- }
5546
- PathString.prototype = {
5547
- _radius: 4.5,
5548
- _circle: circle(4.5),
5549
- pointRadius: function (_) {
5550
- if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
5287
+ // Simple caching for constant-radius points.
5288
+ let cacheDigits, cacheAppend, cacheRadius, cacheCircle;
5289
+ class PathString {
5290
+ constructor(digits) {
5291
+ this._append = digits == null ? append : appendRound(digits);
5292
+ this._radius = 4.5;
5293
+ this._ = "";
5294
+ }
5295
+ pointRadius(_) {
5296
+ this._radius = +_;
5551
5297
  return this;
5552
- },
5553
- polygonStart: function () {
5298
+ }
5299
+ polygonStart() {
5554
5300
  this._line = 0;
5555
- },
5556
- polygonEnd: function () {
5301
+ }
5302
+ polygonEnd() {
5557
5303
  this._line = NaN;
5558
- },
5559
- lineStart: function () {
5304
+ }
5305
+ lineStart() {
5560
5306
  this._point = 0;
5561
- },
5562
- lineEnd: function () {
5563
- if (this._line === 0) this._string.push("Z");
5307
+ }
5308
+ lineEnd() {
5309
+ if (this._line === 0) this._ += "Z";
5564
5310
  this._point = NaN;
5565
- },
5566
- point: function (x, y) {
5311
+ }
5312
+ point(x, y) {
5567
5313
  switch (this._point) {
5568
5314
  case 0:
5569
5315
  {
5570
- this._string.push("M", x, ",", y);
5316
+ this._append`M${x},${y}`;
5571
5317
  this._point = 1;
5572
5318
  break;
5573
5319
  }
5574
5320
  case 1:
5575
5321
  {
5576
- this._string.push("L", x, ",", y);
5322
+ this._append`L${x},${y}`;
5577
5323
  break;
5578
5324
  }
5579
5325
  default:
5580
5326
  {
5581
- if (this._circle == null) this._circle = circle(this._radius);
5582
- this._string.push("M", x, ",", y, this._circle);
5327
+ this._append`M${x},${y}`;
5328
+ if (this._radius !== cacheRadius || this._append !== cacheAppend) {
5329
+ const r = this._radius;
5330
+ const s = this._;
5331
+ this._ = ""; // stash the old string so we can cache the circle path fragment
5332
+ this._append`m0,${r}a${r},${r} 0 1,1 0,${-2 * r}a${r},${r} 0 1,1 0,${2 * r}z`;
5333
+ cacheRadius = r;
5334
+ cacheAppend = this._append;
5335
+ cacheCircle = this._;
5336
+ this._ = s;
5337
+ }
5338
+ this._ += cacheCircle;
5583
5339
  break;
5584
5340
  }
5585
5341
  }
5586
- },
5587
- result: function () {
5588
- if (this._string.length) {
5589
- var result = this._string.join("");
5590
- this._string = [];
5591
- return result;
5592
- } else {
5593
- return null;
5594
- }
5595
5342
  }
5596
- };
5597
- function circle(radius) {
5598
- return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
5343
+ result() {
5344
+ const result = this._;
5345
+ this._ = "";
5346
+ return result.length ? result : null;
5347
+ }
5348
+ }
5349
+ function append(strings) {
5350
+ let i = 1;
5351
+ this._ += strings[0];
5352
+ for (const j = strings.length; i < j; ++i) {
5353
+ this._ += arguments[i] + strings[i];
5354
+ }
5355
+ }
5356
+ function appendRound(digits) {
5357
+ const d = Math.floor(digits);
5358
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${digits}`);
5359
+ if (d > 15) return append;
5360
+ if (d !== cacheDigits) {
5361
+ const k = 10 ** d;
5362
+ cacheDigits = d;
5363
+ cacheAppend = function append(strings) {
5364
+ let i = 1;
5365
+ this._ += strings[0];
5366
+ for (const j = strings.length; i < j; ++i) {
5367
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
5368
+ }
5369
+ };
5370
+ }
5371
+ return cacheAppend;
5599
5372
  }
5600
5373
 
5601
5374
  function index (projection, context) {
5602
- var pointRadius = 4.5,
5375
+ let digits = 3,
5376
+ pointRadius = 4.5,
5603
5377
  projectionStream,
5604
5378
  contextStream;
5605
5379
  function path(object) {
@@ -5626,11 +5400,13 @@ function index (projection, context) {
5626
5400
  return pathCentroid.result();
5627
5401
  };
5628
5402
  path.projection = function (_) {
5629
- return arguments.length ? (projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream, path) : projection;
5403
+ if (!arguments.length) return projection;
5404
+ projectionStream = _ == null ? (projection = null, identity$2) : (projection = _).stream;
5405
+ return path;
5630
5406
  };
5631
5407
  path.context = function (_) {
5632
5408
  if (!arguments.length) return context;
5633
- contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);
5409
+ contextStream = _ == null ? (context = null, new PathString(digits)) : new PathContext(context = _);
5634
5410
  if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
5635
5411
  return path;
5636
5412
  };
@@ -5639,7 +5415,17 @@ function index (projection, context) {
5639
5415
  pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
5640
5416
  return path;
5641
5417
  };
5642
- return path.projection(projection).context(context);
5418
+ path.digits = function (_) {
5419
+ if (!arguments.length) return digits;
5420
+ if (_ == null) digits = null;else {
5421
+ const d = Math.floor(_);
5422
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5423
+ digits = d;
5424
+ }
5425
+ if (context === null) contextStream = new PathString(digits);
5426
+ return path;
5427
+ };
5428
+ return path.projection(projection).digits(digits).context(context);
5643
5429
  }
5644
5430
 
5645
5431
  function transformer$1(methods) {
@@ -5934,7 +5720,7 @@ function continuous() {
5934
5720
  }
5935
5721
 
5936
5722
  function tickFormat(start, stop, count, specifier) {
5937
- var step = tickStep$1(start, stop, count),
5723
+ var step = tickStep(start, stop, count),
5938
5724
  precision;
5939
5725
  specifier = formatSpecifier(specifier == null ? ",f" : specifier);
5940
5726
  switch (specifier.type) {
@@ -5967,7 +5753,7 @@ function linearish(scale) {
5967
5753
  var domain = scale.domain;
5968
5754
  scale.ticks = function (count) {
5969
5755
  var d = domain();
5970
- return ticks$1(d[0], d[d.length - 1], count == null ? 10 : count);
5756
+ return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
5971
5757
  };
5972
5758
  scale.tickFormat = function (count, specifier) {
5973
5759
  var d = domain();
@@ -5988,7 +5774,7 @@ function linearish(scale) {
5988
5774
  step = i0, i0 = i1, i1 = step;
5989
5775
  }
5990
5776
  while (maxIter-- > 0) {
5991
- step = tickIncrement$1(start, stop, count);
5777
+ step = tickIncrement(start, stop, count);
5992
5778
  if (step === prestep) {
5993
5779
  d[i0] = start;
5994
5780
  d[i1] = stop;
@@ -6033,6 +5819,22 @@ function constant (x) {
6033
5819
  };
6034
5820
  }
6035
5821
 
5822
+ function withPath(shape) {
5823
+ let digits = 3;
5824
+ shape.digits = function (_) {
5825
+ if (!arguments.length) return digits;
5826
+ if (_ == null) {
5827
+ digits = null;
5828
+ } else {
5829
+ const d = Math.floor(_);
5830
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
5831
+ digits = d;
5832
+ }
5833
+ return shape;
5834
+ };
5835
+ return () => new Path(digits);
5836
+ }
5837
+
6036
5838
  function array (x) {
6037
5839
  return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like
6038
5840
  : Array.from(x); // Map, Set, iterable, string, or anything else
@@ -6086,7 +5888,8 @@ function line (x$1, y$1) {
6086
5888
  var defined = constant(true),
6087
5889
  context = null,
6088
5890
  curve = curveLinear,
6089
- output = null;
5891
+ output = null,
5892
+ path = withPath(line);
6090
5893
  x$1 = typeof x$1 === "function" ? x$1 : x$1 === undefined ? x : constant(x$1);
6091
5894
  y$1 = typeof y$1 === "function" ? y$1 : y$1 === undefined ? y : constant(y$1);
6092
5895
  function line(data) {
@@ -6336,6 +6139,48 @@ class DecidablesElement extends s {
6336
6139
  const ambientS = rotate ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px` : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;
6337
6140
  return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;
6338
6141
  }
6142
+ static get svgDefs() {
6143
+ const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6144
+
6145
+ const filters = shadows.elevations.map(z => {
6146
+ return `
6147
+ <filter id=${`shadow-${z}`} filterUnits="userSpaceOnUse" x="-100%" y="-100%" width="200%" height="200%">
6148
+ <feComponentTransfer in="SourceAlpha" result="solid">
6149
+ <feFuncA type="table" tableValues="0 1 1"/>
6150
+ </feComponentTransfer>
6151
+ <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6152
+ <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
6153
+ <feOffset in="solid" result="offA" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />
6154
+ ${shadows.mapUmbra[z].s === 0 ? '' : `<feMorphology in="offU" result="spreadU" operator=${shadows.mapUmbra[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`}
6155
+ ${shadows.mapPenumbra[z].s === 0 ? '' : `<feMorphology in="offP" result="spreadP" operator=${shadows.mapPenumbra[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`}
6156
+ ${shadows.mapAmbient[z].s === 0 ? '' : `<feMorphology in="offA" result="spreadA" operator=${shadows.mapAmbient[z].s > 0 ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`}
6157
+ <feGaussianBlur in=${shadows.mapUmbra[z].s === 0 ? 'offU' : 'spreadU'} result="blurU" stdDeviation=${shadows.mapUmbra[z].b / 2} />
6158
+ <feGaussianBlur in=${shadows.mapPenumbra[z].s === 0 ? 'offP' : 'spreadP'} result="blurP" stdDeviation=${shadows.mapPenumbra[z].b / 2} />
6159
+ <feGaussianBlur in=${shadows.mapAmbient[z].s === 0 ? 'offA' : 'spreadA'} result="blurA" stdDeviation=${shadows.mapAmbient[z].b / 2} />
6160
+ <feFlood in="SourceGraphic" result="opU" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />
6161
+ <feFlood in="SourceGraphic" result="opP" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />
6162
+ <feFlood in="SourceGraphic" result="opA" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />
6163
+ <feComposite in="opU" in2="blurU" result="shU" operator="in" />
6164
+ <feComposite in="opP" in2="blurP" result="shP" operator="in" />
6165
+ <feComposite in="opA" in2="blurA" result="shA" operator="in" />
6166
+ <feMorphology in="solid" result="smaller" operator="erode" radius="1" />
6167
+ <feComposite in="shU" in2="smaller" result="finalU" operator="out" />
6168
+ <feComposite in="shP" in2="smaller" result="finalP" operator="out" />
6169
+ <feComposite in="shA" in2="smaller" result="finalA" operator="out" />
6170
+ <feMerge>
6171
+ <feMergeNode in="finalU" />
6172
+ <feMergeNode in="finalP" />
6173
+ <feMergeNode in="finalA" />
6174
+ <feMergeNode in="SourceGraphic" />
6175
+ </feMerge>
6176
+ </filter>`;
6177
+ });
6178
+ return `
6179
+ <defs>
6180
+ ${filters}
6181
+ </defs>
6182
+ `;
6183
+ }
6339
6184
  static get svgFilters() {
6340
6185
  const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */
6341
6186
 
@@ -6343,7 +6188,7 @@ class DecidablesElement extends s {
6343
6188
  return b`
6344
6189
  <filter id=${`shadow-${z}`} x="-250%" y="-250%" width="600%" height="600%">
6345
6190
  <feComponentTransfer in="SourceAlpha" result="solid">
6346
- <feFuncA type="table" tableValues="0 1 1"/>
6191
+ <feFuncA type="table" tableValues="0 1 1"/>
6347
6192
  </feComponentTransfer>
6348
6193
  <feOffset in="solid" result="offU" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />
6349
6194
  <feOffset in="solid" result="offP" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />
@@ -6381,24 +6226,24 @@ class DecidablesElement extends s {
6381
6226
  `;
6382
6227
  }
6383
6228
  static get styles() {
6384
- return r$1`
6229
+ return i$1`
6385
6230
  :host {
6386
- ---shadow-0: var(--shadow-0, ${o$2(this.cssBoxShadow(0))});
6387
- ---shadow-2: var(--shadow-2, ${o$2(this.cssBoxShadow(2))});
6388
- ---shadow-4: var(--shadow-4, ${o$2(this.cssBoxShadow(4))});
6389
- ---shadow-8: var(--shadow-8, ${o$2(this.cssBoxShadow(8))});
6390
-
6391
- ---color-background: var(--color-background, ${o$2(this.greys.white)});
6392
- ---color-border: var(--color-border, ${o$2(this.greys.light75)});
6393
- ---color-text: var(--color-text, ${o$2(this.greys.dark75)});
6394
- ---color-text-inverse: var(--color-text-inverse, ${o$2(this.greys.white)});
6395
- ---color-link: var(--color-link, ${o$2(this.greys.dark25)});
6396
- ---color-element-background: var(--color-element-background, ${o$2(this.greys.light75)});
6397
- ---color-element-disabled: var(--color-element-disabled, ${o$2(this.greys.light50)});
6398
- ---color-element-enabled: var(--color-element-enabled, ${o$2(this.greys.dark25)});
6399
- ---color-element-selected: var(--color-element-selected, ${o$2(this.greys.grey)});
6400
- ---color-element-border: var(--color-element-border, ${o$2(this.greys.dark50)});
6401
- ---color-element-emphasis: var(--color-element-emphasis, ${o$2(this.greys.dark75)});
6231
+ ---shadow-0: var(--shadow-0, ${r$2(this.cssBoxShadow(0))});
6232
+ ---shadow-2: var(--shadow-2, ${r$2(this.cssBoxShadow(2))});
6233
+ ---shadow-4: var(--shadow-4, ${r$2(this.cssBoxShadow(4))});
6234
+ ---shadow-8: var(--shadow-8, ${r$2(this.cssBoxShadow(8))});
6235
+
6236
+ ---color-background: var(--color-background, ${r$2(this.greys.white)});
6237
+ ---color-border: var(--color-border, ${r$2(this.greys.light75)});
6238
+ ---color-text: var(--color-text, ${r$2(this.greys.dark75)});
6239
+ ---color-text-inverse: var(--color-text-inverse, ${r$2(this.greys.white)});
6240
+ ---color-link: var(--color-link, ${r$2(this.greys.dark25)});
6241
+ ---color-element-background: var(--color-element-background, ${r$2(this.greys.light75)});
6242
+ ---color-element-disabled: var(--color-element-disabled, ${r$2(this.greys.light50)});
6243
+ ---color-element-enabled: var(--color-element-enabled, ${r$2(this.greys.dark25)});
6244
+ ---color-element-selected: var(--color-element-selected, ${r$2(this.greys.grey)});
6245
+ ---color-element-border: var(--color-element-border, ${r$2(this.greys.dark50)});
6246
+ ---color-element-emphasis: var(--color-element-emphasis, ${r$2(this.greys.dark75)});
6402
6247
 
6403
6248
  ---font-family-base: var(--font-family-base, "Source Sans", sans-serif);
6404
6249
  ---font-family-math: var(--font-family-math, "Source Serif", serif);
@@ -6459,7 +6304,7 @@ class DecidablesButton extends DecidablesElement {
6459
6304
  this.disabled = false;
6460
6305
  }
6461
6306
  static get styles() {
6462
- return [super.styles, r$1`
6307
+ return [super.styles, i$1`
6463
6308
  :host {
6464
6309
  margin: 0.25rem;
6465
6310
  }
@@ -6584,11 +6429,11 @@ class DecidablesSlider extends DecidablesElement {
6584
6429
  this.value = event.target.value;
6585
6430
  }
6586
6431
  static get styles() {
6587
- return [super.styles, r$1`
6432
+ return [super.styles, i$1`
6588
6433
  :host {
6589
- ---shadow-2-rotate: var(--shadow-2-rotate, ${o$2(this.cssBoxShadow(2, true, false))});
6590
- ---shadow-4-rotate: var(--shadow-4-rotate, ${o$2(this.cssBoxShadow(4, true, false))});
6591
- ---shadow-8-rotate: var(--shadow-8-rotate, ${o$2(this.cssBoxShadow(8, true, false))});
6434
+ ---shadow-2-rotate: var(--shadow-2-rotate, ${r$2(this.cssBoxShadow(2, true, false))});
6435
+ ---shadow-4-rotate: var(--shadow-4-rotate, ${r$2(this.cssBoxShadow(4, true, false))});
6436
+ ---shadow-8-rotate: var(--shadow-8-rotate, ${r$2(this.cssBoxShadow(8, true, false))});
6592
6437
 
6593
6438
  display: flex;
6594
6439
 
@@ -6894,12 +6739,15 @@ class DecidablesSpinner extends DecidablesElement {
6894
6739
  this.value = event.target.value;
6895
6740
  }
6896
6741
  static get styles() {
6897
- return [super.styles, r$1`
6742
+ return [super.styles, i$1`
6898
6743
  :host {
6899
6744
  ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
6900
6745
  ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
6901
6746
  ---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");
6902
6747
 
6748
+ ---decidables-spinner-postfix: var(--decidables-spinner-postfix, "");
6749
+ ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);
6750
+
6903
6751
  display: block;
6904
6752
  }
6905
6753
 
@@ -6927,8 +6775,20 @@ class DecidablesSpinner extends DecidablesElement {
6927
6775
  content: var(---decidables-spinner-prefix);
6928
6776
  }
6929
6777
 
6778
+ label::after {
6779
+ position: absolute;
6780
+ right: 0.25rem;
6781
+ bottom: 1px;
6782
+
6783
+ font-size: var(---decidables-spinner-font-size);
6784
+ line-height: normal;
6785
+
6786
+ content: var(---decidables-spinner-postfix);
6787
+ }
6788
+
6930
6789
  input[type=number] {
6931
6790
  width: var(---decidables-spinner-input-width);
6791
+ padding-right: var(---decidables-spinner-postfix-padding);
6932
6792
 
6933
6793
  font-family: var(---font-family-base);
6934
6794
  font-size: var(---decidables-spinner-font-size);
@@ -7018,7 +6878,7 @@ class DecidablesSwitch extends DecidablesElement {
7018
6878
  }));
7019
6879
  }
7020
6880
  static get styles() {
7021
- return [super.styles, r$1`
6881
+ return [super.styles, i$1`
7022
6882
  :host {
7023
6883
  display: flex;
7024
6884
 
@@ -7170,7 +7030,7 @@ class DecidablesToggle extends DecidablesElement {
7170
7030
  this.disabled = false;
7171
7031
  }
7172
7032
  static get styles() {
7173
- return [super.styles, r$1`
7033
+ return [super.styles, i$1`
7174
7034
  fieldset {
7175
7035
  display: flex;
7176
7036
 
@@ -7245,7 +7105,7 @@ class DecidablesToggleOption extends DecidablesElement {
7245
7105
  }));
7246
7106
  }
7247
7107
  static get styles() {
7248
- return [super.styles, r$1`
7108
+ return [super.styles, i$1`
7249
7109
  :host {
7250
7110
  display: flex;
7251
7111
  }
@@ -7381,6 +7241,50 @@ const DecidablesConverterSet = {
7381
7241
  }
7382
7242
  };
7383
7243
 
7244
+ function DecidablesMixinResizeable(superClass) {
7245
+ return class extends superClass {
7246
+ static get properties() {
7247
+ return {
7248
+ width: {
7249
+ attribute: false,
7250
+ type: Number,
7251
+ reflect: false
7252
+ },
7253
+ height: {
7254
+ attribute: false,
7255
+ type: Number,
7256
+ reflect: false
7257
+ },
7258
+ rem: {
7259
+ attribute: false,
7260
+ type: Number,
7261
+ reflect: false
7262
+ }
7263
+ };
7264
+ }
7265
+ constructor() {
7266
+ super();
7267
+ this.width = NaN;
7268
+ this.height = NaN;
7269
+ this.rem = NaN;
7270
+ }
7271
+ getDimensions() {
7272
+ this.width = parseFloat(this.getComputedStyleValue('width'), 10);
7273
+ this.height = parseFloat(this.getComputedStyleValue('height'), 10);
7274
+ this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
7275
+ }
7276
+ connectedCallback() {
7277
+ super.connectedCallback();
7278
+ this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));
7279
+ this.resizeObserver.observe(this);
7280
+ }
7281
+ disconnectedCallback() {
7282
+ this.resizeObserver.unobserve(this);
7283
+ super.disconnectedCallback();
7284
+ }
7285
+ };
7286
+ }
7287
+
7384
7288
  /*
7385
7289
  DetectableElement Base Class - Not intended for instantiation!
7386
7290
  <detectable-element>
@@ -7431,55 +7335,55 @@ class DetectableElement extends DecidablesElement {
7431
7335
  }, {});
7432
7336
  }
7433
7337
  static get styles() {
7434
- return [super.styles, r$1`
7338
+ return [super.styles, i$1`
7435
7339
  :host {
7436
- ---color-h: var(--color-h, ${o$2(this.colors.h)});
7437
- ---color-m: var(--color-m, ${o$2(this.colors.m)});
7438
- ---color-fa: var(--color-fa, ${o$2(this.colors.fa)});
7439
- ---color-cr: var(--color-cr, ${o$2(this.colors.cr)});
7440
- ---color-hr: var(--color-hr, ${o$2(this.colors.hr)});
7441
- ---color-far: var(--color-far, ${o$2(this.colors.far)});
7442
- ---color-acc: var(--color-acc, ${o$2(this.colors.acc)});
7443
- ---color-d: var(--color-d, ${o$2(this.colors.d)});
7444
- ---color-c: var(--color-c, ${o$2(this.colors.c)});
7445
- ---color-s: var(--color-s, ${o$2(this.colors.s)});
7446
- ---color-present: var(--color-present, ${o$2(this.colors.present)});
7447
- ---color-absent: var(--color-absent, ${o$2(this.colors.absent)});
7448
- ---color-correct: var(--color-correct, ${o$2(this.colors.correct)});
7449
- ---color-error: var(--color-error, ${o$2(this.colors.error)});
7450
- ---color-nr: var(--color-nr, ${o$2(this.colors.nr)});
7451
-
7452
- ---color-h-light: var(--color-h-light, ${o$2(this.lights.h)});
7453
- ---color-m-light: var(--color-m-light, ${o$2(this.lights.m)});
7454
- ---color-fa-light: var(--color-fa-light, ${o$2(this.lights.fa)});
7455
- ---color-cr-light: var(--color-cr-light, ${o$2(this.lights.cr)});
7456
- ---color-hr-light: var(--color-hr-light, ${o$2(this.lights.hr)});
7457
- ---color-far-light: var(--color-far-light, ${o$2(this.lights.far)});
7458
- ---color-acc-light: var(--color-acc-light, ${o$2(this.lights.acc)});
7459
- ---color-d-light: var(--color-d-light, ${o$2(this.lights.d)});
7460
- ---color-c-light: var(--color-c-light, ${o$2(this.lights.c)});
7461
- ---color-s-light: var(--color-s-light, ${o$2(this.lights.s)});
7462
- ---color-present-light: var(--color-present-light, ${o$2(this.lights.present)});
7463
- ---color-absent-light: var(--color-absent-light, ${o$2(this.lights.absent)});
7464
- ---color-correct-light: var(--color-correct-light, ${o$2(this.lights.correct)});
7465
- ---color-error-light: var(--color-error-light, ${o$2(this.lights.error)});
7466
- ---color-nr-light: var(--color-nr-light, ${o$2(this.lights.nr)});
7467
-
7468
- ---color-h-dark: var(--color-h-dark, ${o$2(this.darks.h)});
7469
- ---color-m-dark: var(--color-m-dark, ${o$2(this.darks.m)});
7470
- ---color-fa-dark: var(--color-fa-dark, ${o$2(this.darks.fa)});
7471
- ---color-cr-dark: var(--color-cr-dark, ${o$2(this.darks.cr)});
7472
- ---color-hr-dark: var(--color-hr-dark, ${o$2(this.darks.hr)});
7473
- ---color-far-dark: var(--color-far-dark, ${o$2(this.darks.far)});
7474
- ---color-acc-dark: var(--color-acc-dark, ${o$2(this.darks.acc)});
7475
- ---color-d-dark: var(--color-d-dark, ${o$2(this.darks.d)});
7476
- ---color-c-dark: var(--color-c-dark, ${o$2(this.darks.c)});
7477
- ---color-s-dark: var(--color-s-dark, ${o$2(this.darks.s)});
7478
- ---color-present-dark: var(--color-present-dark, ${o$2(this.darks.present)});
7479
- ---color-absent-dark: var(--color-absent-dark, ${o$2(this.darks.absent)});
7480
- ---color-correct-dark: var(--color-correct-dark, ${o$2(this.darks.correct)});
7481
- ---color-error-dark: var(--color-error-dark, ${o$2(this.darks.error)});
7482
- ---color-nr-dark: var(--color-nr-dark, ${o$2(this.darks.nr)});
7340
+ ---color-h: var(--color-h, ${r$2(this.colors.h)});
7341
+ ---color-m: var(--color-m, ${r$2(this.colors.m)});
7342
+ ---color-fa: var(--color-fa, ${r$2(this.colors.fa)});
7343
+ ---color-cr: var(--color-cr, ${r$2(this.colors.cr)});
7344
+ ---color-hr: var(--color-hr, ${r$2(this.colors.hr)});
7345
+ ---color-far: var(--color-far, ${r$2(this.colors.far)});
7346
+ ---color-acc: var(--color-acc, ${r$2(this.colors.acc)});
7347
+ ---color-d: var(--color-d, ${r$2(this.colors.d)});
7348
+ ---color-c: var(--color-c, ${r$2(this.colors.c)});
7349
+ ---color-s: var(--color-s, ${r$2(this.colors.s)});
7350
+ ---color-present: var(--color-present, ${r$2(this.colors.present)});
7351
+ ---color-absent: var(--color-absent, ${r$2(this.colors.absent)});
7352
+ ---color-correct: var(--color-correct, ${r$2(this.colors.correct)});
7353
+ ---color-error: var(--color-error, ${r$2(this.colors.error)});
7354
+ ---color-nr: var(--color-nr, ${r$2(this.colors.nr)});
7355
+
7356
+ ---color-h-light: var(--color-h-light, ${r$2(this.lights.h)});
7357
+ ---color-m-light: var(--color-m-light, ${r$2(this.lights.m)});
7358
+ ---color-fa-light: var(--color-fa-light, ${r$2(this.lights.fa)});
7359
+ ---color-cr-light: var(--color-cr-light, ${r$2(this.lights.cr)});
7360
+ ---color-hr-light: var(--color-hr-light, ${r$2(this.lights.hr)});
7361
+ ---color-far-light: var(--color-far-light, ${r$2(this.lights.far)});
7362
+ ---color-acc-light: var(--color-acc-light, ${r$2(this.lights.acc)});
7363
+ ---color-d-light: var(--color-d-light, ${r$2(this.lights.d)});
7364
+ ---color-c-light: var(--color-c-light, ${r$2(this.lights.c)});
7365
+ ---color-s-light: var(--color-s-light, ${r$2(this.lights.s)});
7366
+ ---color-present-light: var(--color-present-light, ${r$2(this.lights.present)});
7367
+ ---color-absent-light: var(--color-absent-light, ${r$2(this.lights.absent)});
7368
+ ---color-correct-light: var(--color-correct-light, ${r$2(this.lights.correct)});
7369
+ ---color-error-light: var(--color-error-light, ${r$2(this.lights.error)});
7370
+ ---color-nr-light: var(--color-nr-light, ${r$2(this.lights.nr)});
7371
+
7372
+ ---color-h-dark: var(--color-h-dark, ${r$2(this.darks.h)});
7373
+ ---color-m-dark: var(--color-m-dark, ${r$2(this.darks.m)});
7374
+ ---color-fa-dark: var(--color-fa-dark, ${r$2(this.darks.fa)});
7375
+ ---color-cr-dark: var(--color-cr-dark, ${r$2(this.darks.cr)});
7376
+ ---color-hr-dark: var(--color-hr-dark, ${r$2(this.darks.hr)});
7377
+ ---color-far-dark: var(--color-far-dark, ${r$2(this.darks.far)});
7378
+ ---color-acc-dark: var(--color-acc-dark, ${r$2(this.darks.acc)});
7379
+ ---color-d-dark: var(--color-d-dark, ${r$2(this.darks.d)});
7380
+ ---color-c-dark: var(--color-c-dark, ${r$2(this.darks.c)});
7381
+ ---color-s-dark: var(--color-s-dark, ${r$2(this.darks.s)});
7382
+ ---color-present-dark: var(--color-present-dark, ${r$2(this.darks.present)});
7383
+ ---color-absent-dark: var(--color-absent-dark, ${r$2(this.darks.absent)});
7384
+ ---color-correct-dark: var(--color-correct-dark, ${r$2(this.darks.correct)});
7385
+ ---color-error-dark: var(--color-error-dark, ${r$2(this.darks.error)});
7386
+ ---color-nr-dark: var(--color-nr-dark, ${r$2(this.darks.nr)});
7483
7387
  }
7484
7388
  `];
7485
7389
  }
@@ -7493,7 +7397,7 @@ class DetectableElement extends DecidablesElement {
7493
7397
  Dots; Coherence;
7494
7398
  # Direction, Speed, Lifetime
7495
7399
  */
7496
- class RDKTask extends DetectableElement {
7400
+ class RDKTask extends DecidablesMixinResizeable(DetectableElement) {
7497
7401
  static get properties() {
7498
7402
  return {
7499
7403
  coherence: {
@@ -7550,21 +7454,6 @@ class RDKTask extends DetectableElement {
7550
7454
  attribute: false,
7551
7455
  type: Number,
7552
7456
  reflect: false
7553
- },
7554
- width: {
7555
- attribute: false,
7556
- type: Number,
7557
- reflect: false
7558
- },
7559
- height: {
7560
- attribute: false,
7561
- type: Number,
7562
- reflect: false
7563
- },
7564
- rem: {
7565
- attribute: false,
7566
- type: Number,
7567
- reflect: false
7568
7457
  }
7569
7458
  };
7570
7459
  }
@@ -7586,10 +7475,6 @@ class RDKTask extends DetectableElement {
7586
7475
  this.lifetime = 400; // Lifetime of each dot in milliseconds
7587
7476
  this.speed = 50; // Rate of dot movement in pixels per second
7588
7477
 
7589
- this.width = NaN; // Width of component in pixels
7590
- this.height = NaN; // Height of component in pixels
7591
- this.rem = NaN; // Pixels per rem for component
7592
-
7593
7478
  // Private
7594
7479
  this.firstUpdate = true;
7595
7480
  this.COHERENT = 0; // "Constant" for index to coherent dots
@@ -7615,7 +7500,7 @@ class RDKTask extends DetectableElement {
7615
7500
  }
7616
7501
 
7617
7502
  static get styles() {
7618
- return [super.styles, r$1`
7503
+ return [super.styles, i$1`
7619
7504
  :host {
7620
7505
  display: inline-block;
7621
7506
 
@@ -7666,27 +7551,6 @@ class RDKTask extends DetectableElement {
7666
7551
  /* eslint-disable-line class-methods-use-this */
7667
7552
  return x$1``;
7668
7553
  }
7669
- getDimensions() {
7670
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
7671
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
7672
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
7673
- // console.log(`rdk-task: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
7674
- }
7675
-
7676
- connectedCallback() {
7677
- super.connectedCallback();
7678
- window.addEventListener('resize', this.getDimensions.bind(this));
7679
- }
7680
- disconnectedCallback() {
7681
- window.removeEventListener('resize', this.getDimensions.bind(this));
7682
- super.disconnectedCallback();
7683
- }
7684
- firstUpdated(changedProperties) {
7685
- super.firstUpdated(changedProperties);
7686
-
7687
- // Get the width and height after initial render/update has occurred
7688
- this.getDimensions();
7689
- }
7690
7554
  update(changedProperties) {
7691
7555
  super.update(changedProperties);
7692
7556
 
@@ -7997,11 +7861,11 @@ customElements.define('rdk-task', RDKTask);
7997
7861
 
7998
7862
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
7999
7863
 
8000
- var jstatExports = {};
8001
- var jstat = {
8002
- get exports(){ return jstatExports; },
8003
- set exports(v){ jstatExports = v; },
8004
- };
7864
+ function getDefaultExportFromCjs (x) {
7865
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
7866
+ }
7867
+
7868
+ var jstat = {exports: {}};
8005
7869
 
8006
7870
  (function (module, exports) {
8007
7871
  (function (window, factory) {
@@ -12275,6 +12139,8 @@ var jstat = {
12275
12139
  return jStat;
12276
12140
  });
12277
12141
  })(jstat);
12142
+ var jstatExports = jstat.exports;
12143
+ var jStat = /*@__PURE__*/getDefaultExportFromCjs(jstatExports);
12278
12144
 
12279
12145
  /*
12280
12146
  SDTMath Static Class - Not intended for instantiation!
@@ -12394,28 +12260,28 @@ class SDTMath {
12394
12260
  return m / (m + cr);
12395
12261
  }
12396
12262
  static hrFar2D(hr, far, s = 1) {
12397
- if (s === 1) return jstatExports.normal.inv(hr, 0, 1) - jstatExports.normal.inv(far, 0, 1);
12398
- return Math.sqrt(2 / (s * s + 1)) * (s * jstatExports.normal.inv(hr, 0, 1) - jstatExports.normal.inv(far, 0, 1));
12263
+ if (s === 1) return jStat.normal.inv(hr, 0, 1) - jStat.normal.inv(far, 0, 1);
12264
+ return Math.sqrt(2 / (s * s + 1)) * (s * jStat.normal.inv(hr, 0, 1) - jStat.normal.inv(far, 0, 1));
12399
12265
  }
12400
12266
  static hrFar2C(hr, far, s = 1) {
12401
- if (s === 1) return -(jstatExports.normal.inv(hr, 0, 1) + jstatExports.normal.inv(far, 0, 1)) / 2;
12402
- return Math.sqrt(2 / (s * s + 1)) * (s / (s + 1)) * -(jstatExports.normal.inv(hr, 0, 1) + jstatExports.normal.inv(far, 0, 1));
12267
+ if (s === 1) return -(jStat.normal.inv(hr, 0, 1) + jStat.normal.inv(far, 0, 1)) / 2;
12268
+ return Math.sqrt(2 / (s * s + 1)) * (s / (s + 1)) * -(jStat.normal.inv(hr, 0, 1) + jStat.normal.inv(far, 0, 1));
12403
12269
  }
12404
12270
  static dC2Hr(d, c, s = 1) {
12405
- if (s === 1) return jstatExports.normal.cdf(d / 2 - c, 0, 1);
12406
- return jstatExports.normal.cdf(Math.sqrt((s * s + 1) / 2) * (d / (1 + s) - c / s), 0, 1);
12271
+ if (s === 1) return jStat.normal.cdf(d / 2 - c, 0, 1);
12272
+ return jStat.normal.cdf(Math.sqrt((s * s + 1) / 2) * (d / (1 + s) - c / s), 0, 1);
12407
12273
  }
12408
12274
  static dC2Far(d, c, s = 1) {
12409
- if (s === 1) return jstatExports.normal.cdf(-(d / 2 + c), 0, 1);
12410
- return jstatExports.normal.cdf(Math.sqrt((s * s + 1) / 2) * -(d / (1 + s) + c), 0, 1);
12275
+ if (s === 1) return jStat.normal.cdf(-(d / 2 + c), 0, 1);
12276
+ return jStat.normal.cdf(Math.sqrt((s * s + 1) / 2) * -(d / (1 + s) + c), 0, 1);
12411
12277
  }
12412
12278
  static dFar2Hr(d, far, s = 1) {
12413
- if (s === 1) return jstatExports.normal.cdf(d + jstatExports.normal.inv(far, 0, 1), 0, 1);
12414
- return jstatExports.normal.cdf((Math.sqrt((s * s + 1) / 2) * d + jstatExports.normal.inv(far, 0, 1)) / s, 0, 1);
12279
+ if (s === 1) return jStat.normal.cdf(d + jStat.normal.inv(far, 0, 1), 0, 1);
12280
+ return jStat.normal.cdf((Math.sqrt((s * s + 1) / 2) * d + jStat.normal.inv(far, 0, 1)) / s, 0, 1);
12415
12281
  }
12416
12282
  static cFar2Hr(c, far, s = 1) {
12417
- if (s === 1) return jstatExports.normal.cdf(-(2 * c) - jstatExports.normal.inv(far, 0, 1), 0, 1);
12418
- return jstatExports.normal.cdf(-Math.sqrt((s * s + 1) / 2) * ((s + 1) / s) * c - jstatExports.normal.inv(far, 0, 1), 0, 1);
12283
+ if (s === 1) return jStat.normal.cdf(-(2 * c) - jStat.normal.inv(far, 0, 1), 0, 1);
12284
+ return jStat.normal.cdf(-Math.sqrt((s * s + 1) / 2) * ((s + 1) / s) * c - jStat.normal.inv(far, 0, 1), 0, 1);
12419
12285
  }
12420
12286
  static d2MuN(d, s = 1) {
12421
12287
  if (s === 1) return -d / 2;
@@ -12448,16 +12314,16 @@ class SDTMath {
12448
12314
  return 1 / (h * Math.sqrt(2 * Math.PI));
12449
12315
  }
12450
12316
  static hr2Zhr(hr) {
12451
- return jstatExports.normal.inv(hr, 0, 1);
12317
+ return jStat.normal.inv(hr, 0, 1);
12452
12318
  }
12453
12319
  static far2Zfar(far) {
12454
- return jstatExports.normal.inv(far, 0, 1);
12320
+ return jStat.normal.inv(far, 0, 1);
12455
12321
  }
12456
12322
  static zhr2Hr(zhr) {
12457
- return jstatExports.normal.cdf(zhr, 0, 1);
12323
+ return jStat.normal.cdf(zhr, 0, 1);
12458
12324
  }
12459
12325
  static zfar2Far(zfar) {
12460
- return jstatExports.normal.cdf(zfar, 0, 1);
12326
+ return jStat.normal.cdf(zfar, 0, 1);
12461
12327
  }
12462
12328
  }
12463
12329
 
@@ -12478,7 +12344,7 @@ class SDTMath {
12478
12344
  Styles:
12479
12345
  ??
12480
12346
  */
12481
- class ROCSpace extends DetectableElement {
12347
+ class ROCSpace extends DecidablesMixinResizeable(DetectableElement) {
12482
12348
  static get properties() {
12483
12349
  return {
12484
12350
  contour: {
@@ -12530,21 +12396,6 @@ class ROCSpace extends DetectableElement {
12530
12396
  attribute: false,
12531
12397
  type: Number,
12532
12398
  reflect: false
12533
- },
12534
- width: {
12535
- attribute: false,
12536
- type: Number,
12537
- reflect: false
12538
- },
12539
- height: {
12540
- attribute: false,
12541
- type: Number,
12542
- reflect: false
12543
- },
12544
- rem: {
12545
- attribute: false,
12546
- type: Number,
12547
- reflect: false
12548
12399
  }
12549
12400
  };
12550
12401
  }
@@ -12576,9 +12427,6 @@ class ROCSpace extends DetectableElement {
12576
12427
  this.pointArray = [];
12577
12428
  this.isoDArray = [];
12578
12429
  this.isoCArray = [];
12579
- this.width = NaN;
12580
- this.height = NaN;
12581
- this.rem = NaN;
12582
12430
  this.alignState();
12583
12431
  }
12584
12432
  alignState() {
@@ -12665,7 +12513,7 @@ class ROCSpace extends DetectableElement {
12665
12513
  this.requestUpdate();
12666
12514
  }
12667
12515
  static get styles() {
12668
- return [super.styles, r$1`
12516
+ return [super.styles, i$1`
12669
12517
  :host {
12670
12518
  display: inline-block;
12671
12519
 
@@ -12805,27 +12653,6 @@ class ROCSpace extends DetectableElement {
12805
12653
  ${DetectableElement.svgFilters}
12806
12654
  `;
12807
12655
  }
12808
- getDimensions() {
12809
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
12810
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
12811
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
12812
- // console.log(`roc-space: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
12813
- }
12814
-
12815
- connectedCallback() {
12816
- super.connectedCallback();
12817
- window.addEventListener('resize', this.getDimensions.bind(this));
12818
- }
12819
- disconnectedCallback() {
12820
- window.removeEventListener('resize', this.getDimensions.bind(this));
12821
- super.disconnectedCallback();
12822
- }
12823
- firstUpdated(changedProperties) {
12824
- super.firstUpdated(changedProperties);
12825
-
12826
- // Get the width and height after initial render/update has occurred
12827
- this.getDimensions();
12828
- }
12829
12656
  update(changedProperties) {
12830
12657
  super.update(changedProperties);
12831
12658
  this.alignState();
@@ -12958,7 +12785,7 @@ class ROCSpace extends DetectableElement {
12958
12785
  const contours = Contours().size([n, n]).thresholds(contourThresholds);
12959
12786
  const contourColorStart = this.getComputedStyleValue(this.contour === 'bias' ? '---color-element-background' : this.contour === 'sensitivity' ? '---color-d' : this.contour === 'accuracy' ? '---color-acc-dark' : null);
12960
12787
  const contourColorEnd = this.getComputedStyleValue(this.contour === 'bias' ? '---color-c' : this.contour === 'sensitivity' ? '---color-element-background' : this.contour === 'accuracy' ? '---color-element-background' : null);
12961
- const contourColor = linear().domain(extent$1(contourThresholds)).interpolate(() => {
12788
+ const contourColor = linear().domain(extent(contourThresholds)).interpolate(() => {
12962
12789
  return interpolateRgb(contourColorStart, contourColorEnd);
12963
12790
  });
12964
12791
  // DATA-JOIN
@@ -13398,7 +13225,7 @@ class DetectableControl extends DetectableElement {
13398
13225
  reflect: true
13399
13226
  },
13400
13227
  state: {
13401
- atribute: false,
13228
+ attribute: false,
13402
13229
  type: String,
13403
13230
  reflect: false
13404
13231
  }
@@ -13502,7 +13329,7 @@ class DetectableControl extends DetectableElement {
13502
13329
  this.state = 'ended';
13503
13330
  }
13504
13331
  static get styles() {
13505
- return [super.styles, r$1`
13332
+ return [super.styles, i$1`
13506
13333
  :host {
13507
13334
  display: inline-block;
13508
13335
  }
@@ -13581,7 +13408,7 @@ customElements.define('detectable-control', DetectableControl);
13581
13408
  Styles:
13582
13409
  ??
13583
13410
  */
13584
- class SDTModel extends DetectableElement {
13411
+ class SDTModel extends DecidablesMixinResizeable(DetectableElement) {
13585
13412
  static get properties() {
13586
13413
  return {
13587
13414
  color: {
@@ -13658,21 +13485,6 @@ class SDTModel extends DetectableElement {
13658
13485
  attribute: false,
13659
13486
  type: Array,
13660
13487
  reflect: false
13661
- },
13662
- width: {
13663
- attribute: false,
13664
- type: Number,
13665
- reflect: false
13666
- },
13667
- height: {
13668
- attribute: false,
13669
- type: Number,
13670
- reflect: false
13671
- },
13672
- rem: {
13673
- attribute: false,
13674
- type: Number,
13675
- reflect: false
13676
13488
  }
13677
13489
  };
13678
13490
  }
@@ -13700,10 +13512,6 @@ class SDTModel extends DetectableElement {
13700
13512
  this.responses = ['present', 'absent']; // Allowable values of trial.response
13701
13513
  this.trials = []; // Array of simulated trials
13702
13514
 
13703
- this.width = NaN; // Width of component in pixels
13704
- this.height = NaN; // Height of component in pixels
13705
- this.rem = NaN; // Pixels per rem for component
13706
-
13707
13515
  // Private
13708
13516
  this.muN = NaN; // Mean of noise distribution
13709
13517
  this.muS = NaN; // Mean of signal distribution
@@ -13737,7 +13545,7 @@ class SDTModel extends DetectableElement {
13737
13545
  trial.duration = duration;
13738
13546
  trial.wait = wait;
13739
13547
  trial.iti = iti;
13740
- trial.evidence = jstatExports.normal.sample(0, 1);
13548
+ trial.evidence = jStat.normal.sample(0, 1);
13741
13549
  this.alignTrial(trial);
13742
13550
  this.trials.push(trial);
13743
13551
  this.requestUpdate();
@@ -13772,7 +13580,7 @@ class SDTModel extends DetectableElement {
13772
13580
  }
13773
13581
  }
13774
13582
  static get styles() {
13775
- return [super.styles, r$1`
13583
+ return [super.styles, i$1`
13776
13584
  :host {
13777
13585
  display: inline-block;
13778
13586
 
@@ -14038,27 +13846,6 @@ class SDTModel extends DetectableElement {
14038
13846
  bubbles: true
14039
13847
  }));
14040
13848
  }
14041
- getDimensions() {
14042
- this.width = parseFloat(this.getComputedStyleValue('width'), 10);
14043
- this.height = parseFloat(this.getComputedStyleValue('height'), 10);
14044
- this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);
14045
- // console.log(`sdt-model: width = ${this.width}, height = ${this.height}, rem = ${this.rem}`);
14046
- }
14047
-
14048
- connectedCallback() {
14049
- super.connectedCallback();
14050
- window.addEventListener('resize', this.getDimensions.bind(this));
14051
- }
14052
- disconnectedCallback() {
14053
- window.removeEventListener('resize', this.getDimensions.bind(this));
14054
- super.disconnectedCallback();
14055
- }
14056
- firstUpdated(changedProperties) {
14057
- super.firstUpdated(changedProperties);
14058
-
14059
- // Get the width and height after initial render/update has occurred
14060
- this.getDimensions();
14061
- }
14062
13849
  update(changedProperties) {
14063
13850
  super.update(changedProperties);
14064
13851
  this.alignState();
@@ -14353,12 +14140,12 @@ class SDTModel extends DetectableElement {
14353
14140
  const correctRejections = range(xScale.domain()[0], SDTMath.c2L(element.c, element.s), 0.05).map(e => {
14354
14141
  return {
14355
14142
  e: e,
14356
- p: jstatExports.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14143
+ p: jStat.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14357
14144
  };
14358
14145
  });
14359
14146
  correctRejections.push({
14360
14147
  e: SDTMath.c2L(element.c, element.s),
14361
- p: jstatExports.normal.pdf(SDTMath.c2L(element.c, element.s), SDTMath.d2MuN(element.d, element.s), 1)
14148
+ p: jStat.normal.pdf(SDTMath.c2L(element.c, element.s), SDTMath.d2MuN(element.d, element.s), 1)
14362
14149
  });
14363
14150
  correctRejections.push({
14364
14151
  e: SDTMath.c2L(element.c, element.s),
@@ -14388,12 +14175,12 @@ class SDTModel extends DetectableElement {
14388
14175
  const falseAlarms = range(SDTMath.c2L(element.c, element.s), xScale.domain()[1], 0.05).map(e => {
14389
14176
  return {
14390
14177
  e: e,
14391
- p: jstatExports.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14178
+ p: jStat.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14392
14179
  };
14393
14180
  });
14394
14181
  falseAlarms.push({
14395
14182
  e: xScale.domain()[1],
14396
- p: jstatExports.normal.pdf(xScale.domain()[1], SDTMath.d2MuN(element.d, element.s), 1)
14183
+ p: jStat.normal.pdf(xScale.domain()[1], SDTMath.d2MuN(element.d, element.s), 1)
14397
14184
  });
14398
14185
  falseAlarms.push({
14399
14186
  e: xScale.domain()[1],
@@ -14421,12 +14208,12 @@ class SDTModel extends DetectableElement {
14421
14208
  const noise = range(xScale.domain()[0], xScale.domain()[1], 0.05).map(e => {
14422
14209
  return {
14423
14210
  e: e,
14424
- p: jstatExports.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14211
+ p: jStat.normal.pdf(e, SDTMath.d2MuN(element.d, element.s), 1)
14425
14212
  };
14426
14213
  });
14427
14214
  noise.push({
14428
14215
  e: xScale.domain()[1],
14429
- p: jstatExports.normal.pdf(xScale.domain()[1], SDTMath.d2MuN(element.d, element.s), 1)
14216
+ p: jStat.normal.pdf(xScale.domain()[1], SDTMath.d2MuN(element.d, element.s), 1)
14430
14217
  });
14431
14218
  return line$1(noise);
14432
14219
  };
@@ -14503,12 +14290,12 @@ class SDTModel extends DetectableElement {
14503
14290
  const misses = range(xScale.domain()[0], SDTMath.c2L(element.c, element.s), 0.05).map(e => {
14504
14291
  return {
14505
14292
  e: e,
14506
- p: jstatExports.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14293
+ p: jStat.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14507
14294
  };
14508
14295
  });
14509
14296
  misses.push({
14510
14297
  e: SDTMath.c2L(element.c, element.s),
14511
- p: jstatExports.normal.pdf(SDTMath.c2L(element.c, element.s), SDTMath.d2MuS(element.d, element.s), element.s)
14298
+ p: jStat.normal.pdf(SDTMath.c2L(element.c, element.s), SDTMath.d2MuS(element.d, element.s), element.s)
14512
14299
  });
14513
14300
  misses.push({
14514
14301
  e: SDTMath.c2L(element.c, element.s),
@@ -14538,12 +14325,12 @@ class SDTModel extends DetectableElement {
14538
14325
  const hits = range(SDTMath.c2L(element.c, element.s), xScale.domain()[1], 0.05).map(e => {
14539
14326
  return {
14540
14327
  e: e,
14541
- p: jstatExports.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14328
+ p: jStat.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14542
14329
  };
14543
14330
  });
14544
14331
  hits.push({
14545
14332
  e: xScale.domain()[1],
14546
- p: jstatExports.normal.pdf(xScale.domain()[1], SDTMath.d2MuS(element.d, element.s), element.s)
14333
+ p: jStat.normal.pdf(xScale.domain()[1], SDTMath.d2MuS(element.d, element.s), element.s)
14547
14334
  });
14548
14335
  hits.push({
14549
14336
  e: xScale.domain()[1],
@@ -14571,12 +14358,12 @@ class SDTModel extends DetectableElement {
14571
14358
  const signal = range(xScale.domain()[0], xScale.domain()[1], 0.05).map(e => {
14572
14359
  return {
14573
14360
  e: e,
14574
- p: jstatExports.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14361
+ p: jStat.normal.pdf(e, SDTMath.d2MuS(element.d, element.s), element.s)
14575
14362
  };
14576
14363
  });
14577
14364
  signal.push({
14578
14365
  e: xScale.domain()[1],
14579
- p: jstatExports.normal.pdf(xScale.domain()[1], SDTMath.d2MuS(element.d, element.s), element.s)
14366
+ p: jStat.normal.pdf(xScale.domain()[1], SDTMath.d2MuS(element.d, element.s), element.s)
14580
14367
  });
14581
14368
  return line$1(signal);
14582
14369
  };
@@ -14658,13 +14445,13 @@ class SDTModel extends DetectableElement {
14658
14445
  sLabel.append('tspan').classed('value', true);
14659
14446
  // MERGE
14660
14447
  const sMerge = sEnter.merge(sUpdate);
14661
- sMerge.select('.line').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS - this.s)).attr('y1', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s) // FIX - no hardcoding
14662
- .attr('x2', xScale(this.muS + this.s)).attr('y2', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s); // FIX - no hardcoding
14663
- sMerge.select('.cap-left').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS - this.s)).attr('y1', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s + 5) // FIX - no hardcoding
14664
- .attr('x2', xScale(this.muS - this.s)).attr('y2', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 5); // FIX - no hardcoding
14665
- sMerge.select('.cap-right').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS + this.s)).attr('y1', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s + 5) // FIX - no hardcoding
14666
- .attr('x2', xScale(this.muS + this.s)).attr('y2', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 5); // FIX - no hardcoding
14667
- const sLabelTransition = sMerge.select('.label').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x', xScale(this.muS)).attr('y', yScale(jstatExports.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 3); // FIX - no hardcoding
14448
+ sMerge.select('.line').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS - this.s)).attr('y1', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s) // FIX - no hardcoding
14449
+ .attr('x2', xScale(this.muS + this.s)).attr('y2', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s); // FIX - no hardcoding
14450
+ sMerge.select('.cap-left').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS - this.s)).attr('y1', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s + 5) // FIX - no hardcoding
14451
+ .attr('x2', xScale(this.muS - this.s)).attr('y2', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 5); // FIX - no hardcoding
14452
+ sMerge.select('.cap-right').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x1', xScale(this.muS + this.s)).attr('y1', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s + 5) // FIX - no hardcoding
14453
+ .attr('x2', xScale(this.muS + this.s)).attr('y2', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 5); // FIX - no hardcoding
14454
+ const sLabelTransition = sMerge.select('.label').transition().duration(this.drag ? 0 : transitionDuration).ease(cubicOut).attr('x', xScale(this.muS)).attr('y', yScale(jStat.normal.pdf(this.s, 0, this.s)) + 10 / this.s - 3); // FIX - no hardcoding
14668
14455
  sLabelTransition.select('.value').tween('text', (datum, index, elements) => {
14669
14456
  const element = elements[index];
14670
14457
  const interpolateS = interpolate$1(element.s !== undefined ? element.s : this.s, this.s);
@@ -15132,7 +14919,7 @@ class DetectableResponse extends DetectableElement {
15132
14919
  this.e = 0;
15133
14920
  }
15134
14921
  static get styles() {
15135
- return [super.styles, r$1`
14922
+ return [super.styles, i$1`
15136
14923
  :host {
15137
14924
  display: inline-block;
15138
14925
  }
@@ -15526,7 +15313,7 @@ class DetectableTable extends DetectableElement {
15526
15313
  this.sendEvent();
15527
15314
  }
15528
15315
  static get styles() {
15529
- return [super.styles, r$1`
15316
+ return [super.styles, i$1`
15530
15317
  :host {
15531
15318
  display: inline-block;
15532
15319
  }
@@ -15899,7 +15686,7 @@ class SDTEquation extends DetectableElement {
15899
15686
  this.numeric = false;
15900
15687
  }
15901
15688
  static get styles() {
15902
- return [super.styles, r$1`
15689
+ return [super.styles, i$1`
15903
15690
  :host {
15904
15691
  display: block;
15905
15692
 
@@ -17254,7 +17041,7 @@ customElements.define('sdt-equation-mcr2fomr', SDTEquationMCr2Fomr);
17254
17041
  */
17255
17042
  class SDTExample extends DetectableElement {
17256
17043
  static get styles() {
17257
- return [super.styles, r$1`
17044
+ return [super.styles, i$1`
17258
17045
  :host {
17259
17046
  display: inline-block;
17260
17047