@bicharts/chart-host 0.6.69 → 0.6.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/{chunk-KBFJTRYA.mjs → chunk-4FTLE3ZK.mjs} +63 -62
- package/dist/index.mjs +7 -1
- package/dist/react.mjs +1 -1
- package/dist/types/optionsVocabulary.d.ts +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -145,6 +145,39 @@ group.onChange(sel => console.log(sel.sourceId, sel.rows)); // SOURCE row indic
|
|
|
145
145
|
group.clear();
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
+
## Reader options
|
|
149
|
+
|
|
150
|
+
Everything a reader can tune lives in `options` - the `options` prop on `<BicChart>`, the
|
|
151
|
+
`options` you hand `createChartHost`, or a later `setOptions`. The full set, with each option's
|
|
152
|
+
default, bounds and whether it repaints the chart on screen, is exported as `OPTIONS_VOCABULARY`;
|
|
153
|
+
`LIVE_OPTION_KEYS` lists the ones that apply without a new chart.
|
|
154
|
+
|
|
155
|
+
**Card decks and carousels.** A chart that pages through several faces (a flippable multi-card
|
|
156
|
+
deck, a rotating carousel) reads these on every draw, so they all restyle live:
|
|
157
|
+
|
|
158
|
+
| Option | Values | Unset means |
|
|
159
|
+
| --- | --- | --- |
|
|
160
|
+
| `cardBackgroundColor` | any CSS color | the chart's own fill: a deck uses the page, a carousel a light tint |
|
|
161
|
+
| `flipIntervalMs` | `0` (manual only), or 500-120000 ms | the chart's own: manual for a deck, 5 s for a carousel |
|
|
162
|
+
| `flipDirection` | `"horizontal"`, `"vertical"` | `"horizontal"` (side to side) |
|
|
163
|
+
| `flipMode` | `"both"`, `"all"`, `"single"` (the deck only; a carousel has its own arrows) | `"both"` |
|
|
164
|
+
|
|
165
|
+
```tsx
|
|
166
|
+
<BicChart id="kpis" code={code} d3={d3}
|
|
167
|
+
options={{ width, height, cardBackgroundColor: "#f4c7b8", flipIntervalMs: 4000 }} />
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The fill is the only thing you set: the chart still chooses its text colors, and they are its
|
|
171
|
+
job to keep readable on a dark card.
|
|
172
|
+
|
|
173
|
+
**Clearing an option.** `setOptions` merges into what the chart already has, and so does a
|
|
174
|
+
changed `options` prop - a key you simply drop keeps its last value. To hand an option back to
|
|
175
|
+
the chart's own default, pass it explicitly as `undefined`:
|
|
176
|
+
|
|
177
|
+
```js
|
|
178
|
+
host.setOptions({ cardBackgroundColor: undefined, flipIntervalMs: undefined });
|
|
179
|
+
```
|
|
180
|
+
|
|
148
181
|
## Sizing is yours
|
|
149
182
|
|
|
150
183
|
`width`/`height` have **no defaults**. A chart draws once at whatever it is handed and does not
|
|
@@ -1878,86 +1878,86 @@ var Yt = new RegExp([String.raw`\bisMeasure\b`, String.raw`\bdataType\b`, String
|
|
|
1878
1878
|
/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */
|
|
1879
1879
|
var Z3 = 2;
|
|
1880
1880
|
var me2 = 400;
|
|
1881
|
-
function te(
|
|
1882
|
-
return !!k(
|
|
1881
|
+
function te(e) {
|
|
1882
|
+
return !!k(e);
|
|
1883
1883
|
}
|
|
1884
|
-
function F3(
|
|
1885
|
-
let
|
|
1886
|
-
for (let n of
|
|
1884
|
+
function F3(e) {
|
|
1885
|
+
let t = /* @__PURE__ */ new Set();
|
|
1886
|
+
for (let n of e) {
|
|
1887
1887
|
if (n == null) continue;
|
|
1888
1888
|
let o4 = u2(String(n));
|
|
1889
|
-
if (!m(o4) && !
|
|
1889
|
+
if (!m(o4) && !t.has(o4) && (t.add(o4), t.size >= me2)) break;
|
|
1890
1890
|
}
|
|
1891
|
-
return Array.from(
|
|
1891
|
+
return Array.from(t);
|
|
1892
1892
|
}
|
|
1893
|
-
function A2(
|
|
1894
|
-
let
|
|
1895
|
-
if (
|
|
1896
|
-
let n =
|
|
1893
|
+
function A2(e) {
|
|
1894
|
+
let t = F3(e);
|
|
1895
|
+
if (t.length === 0 || ne2(e) < 95) return false;
|
|
1896
|
+
let n = t.filter((a3) => te(a3) && !t3(a3)).length, o4 = t.filter((a3) => !te(a3) && !!t3(a3)).length;
|
|
1897
1897
|
return n >= 1 && n >= o4;
|
|
1898
1898
|
}
|
|
1899
|
-
function ce3(
|
|
1900
|
-
if (!t3(
|
|
1901
|
-
let n = k(
|
|
1902
|
-
return n ?
|
|
1899
|
+
function ce3(e, t) {
|
|
1900
|
+
if (!t3(e)) return false;
|
|
1901
|
+
let n = k(e);
|
|
1902
|
+
return n ? t === "world" ? true : G3.has(n) : false;
|
|
1903
1903
|
}
|
|
1904
|
-
function ne2(
|
|
1905
|
-
let
|
|
1906
|
-
if (
|
|
1904
|
+
function ne2(e) {
|
|
1905
|
+
let t = F3(e);
|
|
1906
|
+
if (t.length === 0) return 0;
|
|
1907
1907
|
let n = 0;
|
|
1908
|
-
for (let o4 of
|
|
1909
|
-
return Math.round(n /
|
|
1908
|
+
for (let o4 of t) te(o4) && n++;
|
|
1909
|
+
return Math.round(n / t.length * 1e3) / 10;
|
|
1910
1910
|
}
|
|
1911
|
-
function z2(
|
|
1912
|
-
let
|
|
1913
|
-
if (
|
|
1911
|
+
function z2(e) {
|
|
1912
|
+
let t = F3(e);
|
|
1913
|
+
if (t.length === 0) return 0;
|
|
1914
1914
|
let n = 0;
|
|
1915
|
-
for (let o4 of
|
|
1916
|
-
return Math.round(n /
|
|
1915
|
+
for (let o4 of t) t3(o4) && n++;
|
|
1916
|
+
return Math.round(n / t.length * 1e3) / 10;
|
|
1917
1917
|
}
|
|
1918
|
-
function oe2(
|
|
1919
|
-
let
|
|
1920
|
-
for (let n of
|
|
1918
|
+
function oe2(e) {
|
|
1919
|
+
let t = /* @__PURE__ */ new Set();
|
|
1920
|
+
for (let n of e) {
|
|
1921
1921
|
if (n == null) continue;
|
|
1922
1922
|
let o4 = String(n).trim();
|
|
1923
|
-
if (!m(u2(o4)) && !
|
|
1923
|
+
if (!m(u2(o4)) && !t.has(o4) && (t.add(o4), t.size >= me2)) break;
|
|
1924
1924
|
}
|
|
1925
|
-
return Array.from(
|
|
1925
|
+
return Array.from(t);
|
|
1926
1926
|
}
|
|
1927
|
-
function re2(
|
|
1928
|
-
let
|
|
1929
|
-
if (
|
|
1927
|
+
function re2(e) {
|
|
1928
|
+
let t = oe2(e);
|
|
1929
|
+
if (t.length === 0) return 0;
|
|
1930
1930
|
let n = 0;
|
|
1931
|
-
for (let o4 of
|
|
1932
|
-
return Math.round(n /
|
|
1931
|
+
for (let o4 of t) r3(o4).length > 0 && n++;
|
|
1932
|
+
return Math.round(n / t.length * 1e3) / 10;
|
|
1933
1933
|
}
|
|
1934
|
-
function de(
|
|
1935
|
-
return y(
|
|
1934
|
+
function de(e, t) {
|
|
1935
|
+
return y(t, fn) ? true : oe2(e).some((n) => /^\d{5}(-\d{4})?$/.test(n.replace(/\.0+$/, "")));
|
|
1936
1936
|
}
|
|
1937
|
-
function Bn2(
|
|
1938
|
-
let n = F3(
|
|
1937
|
+
function Bn2(e, t) {
|
|
1938
|
+
let n = F3(e);
|
|
1939
1939
|
if (n.length === 0) return 0;
|
|
1940
1940
|
let o4 = 0;
|
|
1941
|
-
for (let
|
|
1941
|
+
for (let a3 of n) j3(a3, t) && o4++;
|
|
1942
1942
|
return Math.round(o4 / n.length * 1e3) / 10;
|
|
1943
1943
|
}
|
|
1944
|
-
function ee3(
|
|
1944
|
+
function ee3(e, t) {
|
|
1945
1945
|
let n = 0;
|
|
1946
|
-
for (let o4 of F3(
|
|
1946
|
+
for (let o4 of F3(e)) t(o4) && n++;
|
|
1947
1947
|
return n;
|
|
1948
1948
|
}
|
|
1949
|
-
function jn(
|
|
1949
|
+
function jn(e, t) {
|
|
1950
1950
|
let n = 0;
|
|
1951
|
-
for (let o4 of oe2(
|
|
1951
|
+
for (let o4 of oe2(e)) t(o4) && n++;
|
|
1952
1952
|
return n;
|
|
1953
1953
|
}
|
|
1954
|
-
function Yn3(
|
|
1955
|
-
let
|
|
1954
|
+
function Yn3(e, t, n, o4, a3) {
|
|
1955
|
+
let u4 = [], l2 = [], i = {}, h4 = {}, C2 = new Set(e), y2 = (s2) => t.map((d2) => d2[s2]);
|
|
1956
1956
|
for (let s2 of ["city", "country"]) {
|
|
1957
1957
|
let d2 = n?.[s2];
|
|
1958
1958
|
d2 && C2.has(d2) && (i[s2] = d2);
|
|
1959
1959
|
}
|
|
1960
|
-
let g5 = new Set(
|
|
1960
|
+
let g5 = new Set(a3 ?? e);
|
|
1961
1961
|
for (let s2 of ["lat", "lon"]) {
|
|
1962
1962
|
let d2 = n?.[s2];
|
|
1963
1963
|
d2 && g5.has(d2) && (i[s2] = d2);
|
|
@@ -1965,14 +1965,14 @@ function Yn3(t, e, n, o4, u4) {
|
|
|
1965
1965
|
let f4 = n?.zip;
|
|
1966
1966
|
if (f4 && C2.has(f4)) {
|
|
1967
1967
|
let s2 = y2(f4), d2 = re2(s2);
|
|
1968
|
-
d2 < 95 ?
|
|
1968
|
+
d2 < 95 ? l2.push(`zip=${f4} (only ${d2}% of values read as ZIPs)`) : de(s2, f4) ? i.zip = f4 : l2.push(`zip=${f4} (all values are 3-4 digits with nothing to say they are postal)`);
|
|
1969
1969
|
}
|
|
1970
1970
|
let c2 = n?.state;
|
|
1971
1971
|
if (c2 && C2.has(c2)) {
|
|
1972
1972
|
let s2 = y2(c2), d2 = F3(s2);
|
|
1973
|
-
d2.length > 0 && d2.every((S2) => ce3(S2, o4)) ?
|
|
1973
|
+
d2.length > 0 && d2.every((S2) => ce3(S2, o4)) ? l2.push(`state=${c2} (every value is "CA", which is both Canada and California)`) : A2(s2) ? (l2.push(`state=${c2} (every value is a country, not a state)`), i.country || (i.country = c2)) : z2(s2) < 95 ? l2.push(`state=${c2} (only ${z2(s2)}% of values are states/provinces)`) : i.state = c2;
|
|
1974
1974
|
}
|
|
1975
|
-
let p4 = new Set(Object.values(i).filter(Boolean)), b4 =
|
|
1975
|
+
let p4 = new Set(Object.values(i).filter(Boolean)), b4 = e.filter((s2) => !p4.has(s2) && !s2.startsWith("__"));
|
|
1976
1976
|
if (!i.state) {
|
|
1977
1977
|
let s2 = null;
|
|
1978
1978
|
for (let d2 of b4) {
|
|
@@ -1980,16 +1980,16 @@ function Yn3(t, e, n, o4, u4) {
|
|
|
1980
1980
|
if (A2(S2)) continue;
|
|
1981
1981
|
let P4 = z2(S2);
|
|
1982
1982
|
if (P4 < 95) continue;
|
|
1983
|
-
let
|
|
1984
|
-
|
|
1983
|
+
let K3 = ee3(S2, (G4) => !!t3(G4)), Ne = ee3(S2, (G4) => !!t3(G4) && !ce3(G4, o4));
|
|
1984
|
+
K3 < Z3 && Ne < 1 || (!s2 || P4 > s2.pct) && (s2 = { name: d2, pct: P4 });
|
|
1985
1985
|
}
|
|
1986
|
-
s2 && (i.state = s2.name, p4.add(s2.name),
|
|
1986
|
+
s2 && (i.state = s2.name, p4.add(s2.name), u4.push(`state=${s2.name} (${s2.pct}% states/provinces)`));
|
|
1987
1987
|
}
|
|
1988
1988
|
if (!i.zip) for (let s2 of b4) {
|
|
1989
1989
|
if (p4.has(s2)) continue;
|
|
1990
1990
|
let d2 = y2(s2), S2 = re2(d2);
|
|
1991
1991
|
if (!(S2 < 95) && de(d2, s2) && !(jn(d2, (P4) => r3(P4).length > 0) < Z3)) {
|
|
1992
|
-
i.zip = s2, p4.add(s2),
|
|
1992
|
+
i.zip = s2, p4.add(s2), u4.push(`zip=${s2} (${S2}% ZIP codes)`);
|
|
1993
1993
|
break;
|
|
1994
1994
|
}
|
|
1995
1995
|
}
|
|
@@ -2001,29 +2001,30 @@ function Yn3(t, e, n, o4, u4) {
|
|
|
2001
2001
|
let S2 = ne2(y2(d2));
|
|
2002
2002
|
(!s2 || S2 > s2.pct) && (s2 = { name: d2, pct: S2 });
|
|
2003
2003
|
}
|
|
2004
|
-
s2 && (T && (
|
|
2004
|
+
s2 && (T && (l2.push(`country=${T} (only ${ne2(y2(T))}% of values are country identifiers; using ${s2.name} instead)`), h4.country = T), i.country = s2.name, p4.add(s2.name), u4.push(`country=${s2.name}`));
|
|
2005
2005
|
}
|
|
2006
2006
|
if (!i.city) {
|
|
2007
2007
|
let s2 = null;
|
|
2008
2008
|
for (let d2 of b4) {
|
|
2009
2009
|
if (p4.has(d2)) continue;
|
|
2010
2010
|
let S2 = y2(d2), P4 = Bn2(S2, o4);
|
|
2011
|
-
P4 < D3 || ee3(S2, (
|
|
2011
|
+
P4 < D3 || ee3(S2, (K3) => j3(K3, o4)) < Z3 || (!s2 || P4 > s2.pct) && (s2 = { name: d2, pct: P4 });
|
|
2012
2012
|
}
|
|
2013
|
-
s2 && (i.city = s2.name,
|
|
2013
|
+
s2 && (i.city = s2.name, u4.push(`city=${s2.name} (${s2.pct}% known cities)`));
|
|
2014
2014
|
}
|
|
2015
|
-
let
|
|
2015
|
+
let O4 = i.country ? y2(i.country) : [], R4 = !!i.country && A2(O4), L4 = R4 ? new Set(O4.map((s2) => k(s2 == null ? null : String(s2))).filter(Boolean)).size : 0, x3 = R4 && L4 >= 2, w3 = !!(i.lat && i.lon) && t.some((s2) => {
|
|
2016
2016
|
let d2 = +String(s2[i.lat] ?? "").trim(), S2 = +String(s2[i.lon] ?? "").trim();
|
|
2017
2017
|
return isFinite(d2) && isFinite(S2) && d2 >= -90 && d2 <= 90 && S2 >= -180 && S2 <= 180 && String(s2[i.lat] ?? "").trim() !== "" && String(s2[i.lon] ?? "").trim() !== "";
|
|
2018
2018
|
});
|
|
2019
|
-
return i.lat && i.lon && !w3 &&
|
|
2019
|
+
return i.lat && i.lon && !w3 && l2.push(`lat/lon=${i.lat}/${i.lon} (no row holds a usable coordinate pair)`), i.country && !x3 && !(i.city || i.state || i.zip || w3) && l2.push(R4 ? `country=${i.country} (every row resolves to the same country - nothing to place apart)` : `country=${i.country} (values are not country identifiers)`), { bind: !!(i.city || i.state || i.zip || x3 || w3) ? i : null, backfilled: u4, refused: l2, ...Object.keys(h4).length ? { labelFallback: h4 } : {} };
|
|
2020
2020
|
}
|
|
2021
|
-
var r = (
|
|
2021
|
+
var r = (e, ...t) => ({ part: e, langs: Object.freeze(t) });
|
|
2022
2022
|
var ie2 = Object.freeze({ jaar: r("year", "nl"), kwartaal: r("quarter", "nl"), maand: r("month", "nl"), dag: r("day", "nl", "sv", "da", "nb"), jahr: r("year", "de"), quartal: r("quarter", "de"), monat: r("month", "de"), tag: r("day", "de"), ann\u00E9e: r("year", "fr"), mois: r("month", "fr"), jour: r("day", "fr"), trimestre: r("quarter", "fr", "es", "pt", "it"), a\u00F1o: r("year", "es"), mes: r("month", "es"), d\u00EDa: r("day", "es"), ano: r("year", "pt"), m\u00EAs: r("month", "pt"), dia: r("day", "pt"), anno: r("year", "it"), mese: r("month", "it"), giorno: r("day", "it"), \u0433\u043E\u0434: r("year", "ru"), \u043C\u0435\u0441\u044F\u0446: r("month", "ru"), \u0440\u0456\u043A: r("year", "uk"), \u043C\u0456\u0441\u044F\u0446\u044C: r("month", "uk"), \u043A\u0432\u0430\u0440\u0442\u0430\u043B: r("quarter", "ru", "uk"), \u0434\u0435\u043D\u044C: r("day", "ru", "uk"), rok: r("year", "pl", "cs", "sk"), kwarta\u0142: r("quarter", "pl"), miesi\u0105c: r("month", "pl"), dzie\u0144: r("day", "pl"), \u010Dtvrtlet\u00ED: r("quarter", "cs"), m\u011Bs\u00EDc: r("month", "cs"), den: r("day", "cs"), \u0161tvr\u0165rok: r("quarter", "sk"), mesiac: r("month", "sk"), de\u0148: r("day", "sk"), \u00E5r: r("year", "sv", "da", "nb"), kvartal: r("quarter", "sv", "da", "nb"), m\u00E5nad: r("month", "sv"), m\u00E5ned: r("month", "da", "nb"), vuosi: r("year", "fi"), vuosinelj\u00E4nnes: r("quarter", "fi"), kuukausi: r("month", "fi"), p\u00E4iv\u00E4: r("day", "fi"), \u00E9v: r("year", "hu"), negyed\u00E9v: r("quarter", "hu"), h\u00F3nap: r("month", "hu"), nap: r("day", "hu"), y\u0131l: r("year", "tr"), \u00E7eyrek: r("quarter", "tr"), ay: r("month", "tr"), g\u00FCn: r("day", "tr"), \u03AD\u03C4\u03BF\u03C2: r("year", "el"), \u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF: r("quarter", "el"), \u03BC\u03AE\u03BD\u03B1\u03C2: r("month", "el"), \u03B7\u03BC\u03AD\u03C1\u03B1: r("day", "el"), an: r("year", "ro"), trimestru: r("quarter", "ro"), lun\u0103: r("month", "ro"), zi: r("day", "ro"), godina: r("year", "hr"), tromjese\u010Dje: r("quarter", "hr"), mjesec: r("month", "hr"), dan: r("day", "hr"), \u5E74: r("year", "ja", "zh"), \u56DB\u534A\u671F: r("quarter", "ja"), \u5B63\u5EA6: r("quarter", "zh"), \u6708: r("month", "ja", "zh"), \u65E5: r("day", "ja", "zh"), \uC5F0\uB3C4: r("year", "ko"), \uBD84\uAE30: r("quarter", "ko"), \uC6D4: r("month", "ko"), \uC77C: r("day", "ko"), tahun: r("year", "id"), kuartal: r("quarter", "id"), triwulan: r("quarter", "id"), bulan: r("month", "id"), hari: r("day", "id"), n\u0103m: r("year", "vi"), qu\u00FD: r("quarter", "vi"), th\u00E1ng: r("month", "vi"), ng\u00E0y: r("day", "vi"), \u0E1B\u0E35: r("year", "th"), \u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A: r("quarter", "th"), \u0E40\u0E14\u0E37\u0E2D\u0E19: r("month", "th"), \u0E27\u0E31\u0E19: r("day", "th"), \u0627\u0644\u0633\u0646\u0629: r("year", "ar"), \u0633\u0646\u0629: r("year", "ar"), \u0627\u0644\u0639\u0627\u0645: r("year", "ar"), \u0639\u0627\u0645: r("year", "ar"), \u0627\u0644\u0631\u0628\u0639: r("quarter", "ar"), \u0631\u0628\u0639: r("quarter", "ar"), "\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629": r("quarter", "ar"), \u0627\u0644\u0634\u0647\u0631: r("month", "ar"), \u0634\u0647\u0631: r("month", "ar"), \u0627\u0644\u064A\u0648\u0645: r("day", "ar"), \u064A\u0648\u0645: r("day", "ar"), \u05E9\u05E0\u05D4: r("year", "he"), \u05E8\u05D1\u05E2\u05D5\u05DF: r("quarter", "he"), \u05D7\u05D5\u05D3\u05E9: r("month", "he"), \u05D9\u05D5\u05DD: r("day", "he"), \u0935\u0930\u094D\u0937: r("year", "hi"), \u0938\u093E\u0932: r("year", "hi"), \u0924\u093F\u092E\u093E\u0939\u0940: r("quarter", "hi"), \u092E\u0939\u0940\u0928\u093E: r("month", "hi"), \u092E\u093E\u0939: r("month", "hi"), \u0926\u093F\u0928: r("day", "hi"), \u0633\u0627\u0644: r("year", "fa"), \u0645\u0627\u0647: r("month", "fa"), \u0631\u0648\u0632: r("day", "fa") });
|
|
2023
|
-
var Qn2 = Object.freeze(Array.from(new Set(Object.values(ie2).flatMap((
|
|
2023
|
+
var Qn2 = Object.freeze(Array.from(new Set(Object.values(ie2).flatMap((e) => e.langs))));
|
|
2024
2024
|
var fe = Object.freeze(["fa", "ar", "he", "th"]);
|
|
2025
2025
|
var wr = Object.freeze({ integer: "number", decimal: "number", double: "number", datetime: "date", date: "date", boolean: "boolean", string: "text" });
|
|
2026
|
-
var Nr = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict" });
|
|
2026
|
+
var Nr = Object.freeze({ RENDER_START: "render-start", RENDER_OK: "render-ok", RENDER_ERROR: "render-error", VIEW: "view", VIEW_VERDICT: "view-verdict", REDRAW: "redraw", INTERACT: "interact" });
|
|
2027
|
+
var Ar = Object.freeze(["open", "generate", "version", "rebind", "data", "sample", "fix", "resize", "other"]);
|
|
2027
2028
|
var Le = 2 ** 31 - 1;
|
|
2028
2029
|
|
|
2029
2030
|
// src/payload.ts
|
package/dist/index.mjs
CHANGED
|
@@ -122,7 +122,7 @@ import {
|
|
|
122
122
|
toSourceRows,
|
|
123
123
|
unpinScrolledAxis,
|
|
124
124
|
valuePlacementFlag
|
|
125
|
-
} from "./chunk-
|
|
125
|
+
} from "./chunk-4FTLE3ZK.mjs";
|
|
126
126
|
import "./chunk-A2GMXZP7.mjs";
|
|
127
127
|
import {
|
|
128
128
|
ACTIVE_TICK_CLASS,
|
|
@@ -212,6 +212,12 @@ var OPTIONS_VOCABULARY = Object.freeze({
|
|
|
212
212
|
flipIntervalMs: entry({ timing: "live", default: "", min: 0, max: FLIP_INTERVAL_MAX_MS }),
|
|
213
213
|
/** Which way a face turns, for any chart that turns between faces: side to side, or top to bottom. */
|
|
214
214
|
flipDirection: entry({ timing: "live", default: FLIP_DIRECTION_DEFAULT, values: ["horizontal", "vertical"] }),
|
|
215
|
+
/**
|
|
216
|
+
* The fill behind each card of a card deck and each face of a carousel. BLANK - "the chart's own" -
|
|
217
|
+
* is the default, and it differs by chart: a deck uses the page so its cards read as part of it, a
|
|
218
|
+
* carousel tints its faces so each reads as a surface. A color is a reader's choice.
|
|
219
|
+
*/
|
|
220
|
+
cardBackgroundColor: entry({ timing: "live", default: "" }),
|
|
215
221
|
/**
|
|
216
222
|
* Hover drop lines on a 3D chart. BLANK - "the chart's own" - is the default: off, unless the request
|
|
217
223
|
* that made the chart asked for them. "on" / "off" is a reader's choice and wins either way.
|
package/dist/react.mjs
CHANGED
|
@@ -60,6 +60,12 @@ export declare const OPTIONS_VOCABULARY: Readonly<{
|
|
|
60
60
|
flipIntervalMs: OptionVocabularyEntry;
|
|
61
61
|
/** Which way a face turns, for any chart that turns between faces: side to side, or top to bottom. */
|
|
62
62
|
flipDirection: OptionVocabularyEntry;
|
|
63
|
+
/**
|
|
64
|
+
* The fill behind each card of a card deck and each face of a carousel. BLANK - "the chart's own" -
|
|
65
|
+
* is the default, and it differs by chart: a deck uses the page so its cards read as part of it, a
|
|
66
|
+
* carousel tints its faces so each reads as a surface. A color is a reader's choice.
|
|
67
|
+
*/
|
|
68
|
+
cardBackgroundColor: OptionVocabularyEntry;
|
|
63
69
|
/**
|
|
64
70
|
* Hover drop lines on a 3D chart. BLANK - "the chart's own" - is the default: off, unless the request
|
|
65
71
|
* that made the chart asked for them. "on" / "off" is a reader's choice and wins either way.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/chart-host",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.74",
|
|
4
4
|
"description": "Run a BIC-generated D3 chart in any web host: compiles the generated render() function, applies the shared option defaults, resolves mark clicks (through tooltip overlays), owns the selection affordance, and translates row indices between cross-filtered charts. The same contract the BIC Power BI visual implements, minus Power BI. React bindings at @bicharts/chart-host/react.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|