@bicharts/chart-host 0.5.119 → 0.5.120
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.
|
@@ -435,7 +435,7 @@ var require_papaparse_min = __commonJS({
|
|
|
435
435
|
});
|
|
436
436
|
|
|
437
437
|
// src/contract.ts
|
|
438
|
-
var HOST_CONTRACT_VERSION = "1.
|
|
438
|
+
var HOST_CONTRACT_VERSION = "1.11.0";
|
|
439
439
|
var GEO_POINT_PRECISIONS = ["latlon", "city", "zip3", "state", "country"];
|
|
440
440
|
var MARK_CLASS = "d3-mark";
|
|
441
441
|
var LEGEND_MARK_CLASS = "d3-legend-mark";
|
|
@@ -447,6 +447,14 @@ var CONTAINER_SLOT_ANIM_STOP = "__llmAnimStop";
|
|
|
447
447
|
var CONTAINER_SLOT_XF_CLEAR = "__llmXfClear";
|
|
448
448
|
var CONTAINER_SLOT_INITIAL_XF_MARK = "__llmInitialXfMark";
|
|
449
449
|
var CONTAINER_SLOT_UI_STATE = "__lchUiState";
|
|
450
|
+
var VIEW_ONLY_UI_STATE_KEYS = Object.freeze(["camera", "llmZoom"]);
|
|
451
|
+
function withoutViewOnlyKeys(bag) {
|
|
452
|
+
if (!bag || typeof bag !== "object") return bag;
|
|
453
|
+
if (!VIEW_ONLY_UI_STATE_KEYS.some((k3) => Object.prototype.hasOwnProperty.call(bag, k3))) return bag;
|
|
454
|
+
const out = { ...bag };
|
|
455
|
+
for (const k3 of VIEW_ONLY_UI_STATE_KEYS) delete out[k3];
|
|
456
|
+
return out;
|
|
457
|
+
}
|
|
450
458
|
var HOST_CONTAINER_CLASS = "bic-chart-host";
|
|
451
459
|
var SELECTION_ACTIVE_CLASS = "lch-has-selection";
|
|
452
460
|
var MARK_SELECTED_CLASS = "lch-mark-selected";
|
|
@@ -3319,9 +3327,15 @@ var D3_PLUGIN_PACKAGES = {
|
|
|
3319
3327
|
};
|
|
3320
3328
|
function requiredD3Plugins(code) {
|
|
3321
3329
|
const out = /* @__PURE__ */ new Set();
|
|
3322
|
-
|
|
3323
|
-
|
|
3330
|
+
const body = stripJsComments(String(code || ""));
|
|
3331
|
+
const add = (name) => {
|
|
3332
|
+
const pkg = D3_PLUGIN_PACKAGES[name];
|
|
3324
3333
|
if (pkg) out.add(pkg);
|
|
3334
|
+
};
|
|
3335
|
+
for (const m2 of body.matchAll(/\bd3\s*\.\s*(\w+)/g)) add(m2[1]);
|
|
3336
|
+
for (const m2 of body.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g)) add(m2[1]);
|
|
3337
|
+
for (const m2 of body.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g)) {
|
|
3338
|
+
for (const part of m2[1].split(",")) add(part.split(":")[0].trim());
|
|
3325
3339
|
}
|
|
3326
3340
|
return [...out].sort();
|
|
3327
3341
|
}
|
|
@@ -3804,6 +3818,8 @@ export {
|
|
|
3804
3818
|
CONTAINER_SLOT_XF_CLEAR,
|
|
3805
3819
|
CONTAINER_SLOT_INITIAL_XF_MARK,
|
|
3806
3820
|
CONTAINER_SLOT_UI_STATE,
|
|
3821
|
+
VIEW_ONLY_UI_STATE_KEYS,
|
|
3822
|
+
withoutViewOnlyKeys,
|
|
3807
3823
|
HOST_CONTAINER_CLASS,
|
|
3808
3824
|
SELECTION_ACTIVE_CLASS,
|
|
3809
3825
|
MARK_SELECTED_CLASS,
|
package/dist/index.mjs
CHANGED
|
@@ -64,6 +64,7 @@ import {
|
|
|
64
64
|
SELECTION_ACTIVE_CLASS,
|
|
65
65
|
VALUE_AXIS_BASELINE_DEFAULT,
|
|
66
66
|
VALUE_AXIS_MIN_FIT,
|
|
67
|
+
VIEW_ONLY_UI_STATE_KEYS,
|
|
67
68
|
WHITE_TEXT_BG_LUM,
|
|
68
69
|
XFILTER_REFRESH_EVENT,
|
|
69
70
|
Xt,
|
|
@@ -130,8 +131,9 @@ import {
|
|
|
130
131
|
svgInkReach,
|
|
131
132
|
toRGBA,
|
|
132
133
|
unpinScrolledAxis,
|
|
133
|
-
valuePlacementFlag
|
|
134
|
-
|
|
134
|
+
valuePlacementFlag,
|
|
135
|
+
withoutViewOnlyKeys
|
|
136
|
+
} from "./chunk-CNFVXCOY.mjs";
|
|
135
137
|
import "./chunk-A2GMXZP7.mjs";
|
|
136
138
|
import "./chunk-GHODWOAL.mjs";
|
|
137
139
|
|
|
@@ -1392,6 +1394,11 @@ function aggLabel(agg) {
|
|
|
1392
1394
|
return "Sum";
|
|
1393
1395
|
}
|
|
1394
1396
|
}
|
|
1397
|
+
function measureLineLabel(agg, name2) {
|
|
1398
|
+
const col = String(name2 ?? "");
|
|
1399
|
+
const prefix = aggLabel(agg) + " of ";
|
|
1400
|
+
return col.trim().toLowerCase().startsWith(prefix.toLowerCase()) ? col.trim() : prefix + col;
|
|
1401
|
+
}
|
|
1395
1402
|
function isSynthetic(name2) {
|
|
1396
1403
|
return String(name2 ?? "").startsWith(SYNTHETIC_PREFIX);
|
|
1397
1404
|
}
|
|
@@ -1543,7 +1550,7 @@ function computeSelectionCard(payload, selectedRowIdxs, opts = {}) {
|
|
|
1543
1550
|
}
|
|
1544
1551
|
lines.push({
|
|
1545
1552
|
column: String(col?.name ?? ""),
|
|
1546
|
-
label:
|
|
1553
|
+
label: measureLineLabel(colAgg, String(col?.name ?? "")),
|
|
1547
1554
|
value,
|
|
1548
1555
|
valueText: value == null ? "\u2014" : fmtNumber(value, opts.cultureCode),
|
|
1549
1556
|
sharePct,
|
|
@@ -2455,6 +2462,7 @@ export {
|
|
|
2455
2462
|
TRANSPORT_LOST_CHECKING_MESSAGE,
|
|
2456
2463
|
VALUE_AXIS_BASELINE_DEFAULT,
|
|
2457
2464
|
VALUE_AXIS_MIN_FIT,
|
|
2465
|
+
VIEW_ONLY_UI_STATE_KEYS,
|
|
2458
2466
|
WHITE_TEXT_BG_LUM,
|
|
2459
2467
|
XFILTER_REFRESH_EVENT,
|
|
2460
2468
|
actionFor,
|
|
@@ -2593,5 +2601,6 @@ export {
|
|
|
2593
2601
|
transportFailureShouldRecover,
|
|
2594
2602
|
unpinScrolledAxis,
|
|
2595
2603
|
valuePlacementFlag,
|
|
2596
|
-
vegaSpecReadsDatesInLocalTime
|
|
2604
|
+
vegaSpecReadsDatesInLocalTime,
|
|
2605
|
+
withoutViewOnlyKeys
|
|
2597
2606
|
};
|
package/dist/react.mjs
CHANGED
package/dist/types/contract.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const HOST_CONTRACT_VERSION = "1.
|
|
1
|
+
export declare const HOST_CONTRACT_VERSION = "1.11.0";
|
|
2
2
|
export type GeoPointPrecision = "latlon" | "city" | "zip3" | "state" | "country";
|
|
3
3
|
/** Every valid tier, ordered most precise → coarsest. Runtime form of GeoPointPrecision. */
|
|
4
4
|
export declare const GEO_POINT_PRECISIONS: readonly GeoPointPrecision[];
|
|
@@ -17,6 +17,10 @@ export declare const CONTAINER_SLOT_ANIM_STOP = "__llmAnimStop";
|
|
|
17
17
|
export declare const CONTAINER_SLOT_XF_CLEAR = "__llmXfClear";
|
|
18
18
|
export declare const CONTAINER_SLOT_INITIAL_XF_MARK = "__llmInitialXfMark";
|
|
19
19
|
export declare const CONTAINER_SLOT_UI_STATE = "__lchUiState";
|
|
20
|
+
export declare const VIEW_ONLY_UI_STATE_KEYS: readonly string[];
|
|
21
|
+
/** The bag with every view-only key removed: what a host persists when the reader has not asked
|
|
22
|
+
* for their view to be remembered. Returns the SAME object when there was nothing to remove. */
|
|
23
|
+
export declare function withoutViewOnlyKeys<T extends Record<string, unknown>>(bag: T): T;
|
|
20
24
|
/**
|
|
21
25
|
* WHERE A CHART'S RESTING VIEW-STATE LIVES between draws (contract 1.6.0).
|
|
22
26
|
*
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { HOST_CONTRACT_VERSION, GEO_POINT_PRECISIONS, MARK_CLASS, LEGEND_MARK_CLASS, AXIS_FILTER_CLASS, ROW_IDX_ATTR, LIFT_SELECTED_CLASS, XFILTER_REFRESH_EVENT, CONTAINER_SLOT_ANIM_STOP, CONTAINER_SLOT_XF_CLEAR, CONTAINER_SLOT_INITIAL_XF_MARK, CONTAINER_SLOT_UI_STATE, HOST_CONTAINER_CLASS, SELECTION_ACTIVE_CLASS, MARK_SELECTED_CLASS, ACTIVE_TICK_CLASS, DIM_OPACITY_VAR, DIM_OPACITY_DEFAULT, chartOwnsTimeline, periodTickSuppressesFeedback, ANIM_PLAY_SPEED_DEFAULT, ANIM_PLAY_SPEED_MIN, ANIM_PLAY_SPEED_MAX, ANIM_LOOP_DELAY_DEFAULT, ANIM_LOOP_DELAY_MIN, ANIM_MAX_IDEAL_FRAMES_DEFAULT, ANIM_MAX_IDEAL_FRAMES_MIN, ANIM_MAX_IDEAL_FRAMES_MAX, ANIMATION_OPTION_KEYS, COLOR_SCALE_SELF_CLAMP_PCT_DEFAULT, COLOR_SCALE_SELF_CLAMP_PCT_MIN, COLOR_SCALE_SELF_CLAMP_PCT_MAX, FLIP_MODE_DEFAULT, APPROXIMATE_POSITIONS_DEFAULT, VALUE_AXIS_BASELINE_DEFAULT, SEASONAL_MARKERS_DEFAULT, MAX_MAP_POINTS_DEFAULT, type GeoPointPrecision, type GeoMapKind, type TimelineStyle, type FlipMode, type ApproximatePositions, type ValueAxisBaseline, type SeasonalMarkers, type ColorScaleScope, type RenderOptions, type ViewStateProvider, type ChartControlChange, } from "./contract";
|
|
1
|
+
export { HOST_CONTRACT_VERSION, GEO_POINT_PRECISIONS, MARK_CLASS, LEGEND_MARK_CLASS, AXIS_FILTER_CLASS, ROW_IDX_ATTR, LIFT_SELECTED_CLASS, XFILTER_REFRESH_EVENT, CONTAINER_SLOT_ANIM_STOP, CONTAINER_SLOT_XF_CLEAR, CONTAINER_SLOT_INITIAL_XF_MARK, CONTAINER_SLOT_UI_STATE, VIEW_ONLY_UI_STATE_KEYS, withoutViewOnlyKeys, HOST_CONTAINER_CLASS, SELECTION_ACTIVE_CLASS, MARK_SELECTED_CLASS, ACTIVE_TICK_CLASS, DIM_OPACITY_VAR, DIM_OPACITY_DEFAULT, chartOwnsTimeline, periodTickSuppressesFeedback, ANIM_PLAY_SPEED_DEFAULT, ANIM_PLAY_SPEED_MIN, ANIM_PLAY_SPEED_MAX, ANIM_LOOP_DELAY_DEFAULT, ANIM_LOOP_DELAY_MIN, ANIM_MAX_IDEAL_FRAMES_DEFAULT, ANIM_MAX_IDEAL_FRAMES_MIN, ANIM_MAX_IDEAL_FRAMES_MAX, ANIMATION_OPTION_KEYS, COLOR_SCALE_SELF_CLAMP_PCT_DEFAULT, COLOR_SCALE_SELF_CLAMP_PCT_MIN, COLOR_SCALE_SELF_CLAMP_PCT_MAX, FLIP_MODE_DEFAULT, APPROXIMATE_POSITIONS_DEFAULT, VALUE_AXIS_BASELINE_DEFAULT, SEASONAL_MARKERS_DEFAULT, MAX_MAP_POINTS_DEFAULT, type GeoPointPrecision, type GeoMapKind, type TimelineStyle, type FlipMode, type ApproximatePositions, type ValueAxisBaseline, type SeasonalMarkers, type ColorScaleScope, type RenderOptions, type ViewStateProvider, type ChartControlChange, } from "./contract";
|
|
2
2
|
export { resolveOptions, type ResolveOptionsInput } from "./defaults";
|
|
3
3
|
export { loadGeo, geoFromCache, registerGeo, registerGeoAsset, geoAssetFor, clearGeoCache, type GeoAssetName, } from "./geoLazy";
|
|
4
4
|
/** REPLACE the bundled city gazetteer with another packed table. Rarely needed — see the
|
|
@@ -84,6 +84,13 @@ type Agg = "sum" | "average" | "min" | "max" | "count" | "median" | "distinctcou
|
|
|
84
84
|
* spellings fall back to sum rather than throwing: a card is a courtesy, and refusing to draw
|
|
85
85
|
* one because a host wrote "Total" is a worse outcome than summing. */
|
|
86
86
|
export declare function normaliseAggregation(raw: string | undefined | null): Agg;
|
|
87
|
+
/** THE LINE'S LABEL: "<aggregation> of <column>", unless the column's name already says it.
|
|
88
|
+
* An Excel table copied from a pivot, or a Power BI implicit measure, arrives with a column
|
|
89
|
+
* named "Sum of Orders"; composing onto that printed "Sum of Sum of Orders" (dev, Excel add-in
|
|
90
|
+
* 1.0.0.47, a click on the order-fulfilment chart). Only the SAME aggregation's words are
|
|
91
|
+
* dropped: "Average of Sum of Orders" is a true statement - it averages per-row sums - and
|
|
92
|
+
* stays composed. */
|
|
93
|
+
export declare function measureLineLabel(agg: Agg, name: string): string;
|
|
87
94
|
/**
|
|
88
95
|
* The card for a selection, or NULL when there is nothing to say.
|
|
89
96
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/chart-host",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.120",
|
|
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",
|